wissive 0.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.
@@ -0,0 +1,187 @@
1
+ (function(p,y){typeof exports=="object"&&typeof module<"u"?y(exports):typeof define=="function"&&define.amd?define(["exports"],y):(p=typeof globalThis<"u"?globalThis:p||self,y(p.Wissive={}))})(this,function(p){"use strict";var co=Object.defineProperty;var ho=(p,y,ne)=>y in p?co(p,y,{enumerable:!0,configurable:!0,writable:!0,value:ne}):p[y]=ne;var M=(p,y,ne)=>ho(p,typeof y!="symbol"?y+"":y,ne);function y(o={}){return{eyeOpen:1,eyeScale:1,eyeType:0,eyeGap:32,eyeY:45,mouthY:63,mouthCurve:0,mouthWidth:.8,mouthOpen:0,mouthType:0,browY:0,browTilt:0,cheek:0,bob:0,shiftX:0,tears:0,gazeX:0,gazeY:0,turnAngle:0,zzz:0,sweat:0,storm:0,scribble:0,puff:0,...o}}const ne={name:"mochi",emotion:"happy",baseColor:"#F2A9B8",silhouette:"heart",motion:{stiffness:220,damping:14,idleSpeed:3.2,idleAmplitude:2.5,idleIntervalMin:6e3,idleIntervalMax:12e3,motionType:"bouncy"},expressions:{idle:[y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:0}),y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:0,bob:-1.5}),y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:0,bob:1}),y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:0})],near:[y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:0,bob:-1.5}),y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:0,bob:-2.5})],hover:[y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:.3,bob:-4}),y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:.3,bob:-4.5})],click:[y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:.5,bob:-7}),y({eyeType:2,eyeScale:1,eyeGap:28.33,eyeY:43.33,mouthType:0,mouthY:53.33,mouthWidth:.39,mouthCurve:.43,cheek:.5,bob:-6})]}},je={name:"zumi",emotion:"flutter",baseColor:"#F2CB4E",silhouette:"round-blob",motion:{stiffness:300,damping:10,idleSpeed:4.5,idleAmplitude:3.8,idleIntervalMin:4e3,idleIntervalMax:9e3,motionType:"flutter"},expressions:{idle:[y({eyeType:2,eyeScale:1,eyeGap:30,eyeY:43.33,mouthType:3,mouthY:45.83,mouthWidth:.27,mouthCurve:0,cheek:.3}),y({eyeType:2,eyeScale:1,eyeGap:30,eyeY:43.33,mouthType:3,mouthY:45.83,mouthWidth:.27,mouthCurve:0,cheek:.4,bob:-1.5}),y({eyeType:2,eyeScale:1,eyeGap:30,eyeY:43.33,mouthType:3,mouthY:45.83,mouthWidth:.27,mouthCurve:0,cheek:.35,bob:1})],near:[y({eyeType:2,eyeScale:1,eyeGap:30,eyeY:43.33,mouthType:3,mouthY:45.83,mouthWidth:.27,mouthCurve:0,cheek:.5,bob:-2})],hover:[y({eyeType:2,eyeScale:1,eyeGap:30,eyeY:43.33,mouthType:3,mouthY:45.83,mouthWidth:.27,mouthCurve:0,cheek:.7,bob:-4})],click:[y({eyeType:2,eyeScale:1,eyeGap:30,eyeY:43.33,mouthType:3,mouthY:45.83,mouthWidth:.27,mouthCurve:0,cheek:.9,bob:-6})]}},_e={name:"suri",emotion:"pleasure",baseColor:"#F28FC2",silhouette:"elongated-oval",motion:{stiffness:140,damping:18,idleSpeed:1.8,idleAmplitude:1.8,idleIntervalMin:7e3,idleIntervalMax:14e3,motionType:"serene"},expressions:{idle:[y({eyeType:1,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:0,mouthY:53.33,mouthWidth:.36,mouthCurve:.48,cheek:.4}),y({eyeType:1,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:0,mouthY:53.33,mouthWidth:.36,mouthCurve:.48,cheek:.5,bob:1})],near:[y({eyeType:1,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:0,mouthY:53.33,mouthWidth:.36,mouthCurve:.48,cheek:.6,bob:2})],hover:[y({eyeType:1,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:0,mouthY:53.33,mouthWidth:.36,mouthCurve:.48,cheek:.75,bob:3.5})],click:[y({eyeType:1,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:0,mouthY:53.33,mouthWidth:.36,mouthCurve:.48,cheek:.9,bob:5})]}},Re={name:"nima",emotion:"peaceful",baseColor:"#9AC9A0",silhouette:"ghost-blob",motion:{stiffness:110,damping:22,idleSpeed:1.2,idleAmplitude:2,idleIntervalMin:8e3,idleIntervalMax:15e3,motionType:"float"},expressions:{idle:[y({eyeType:14,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:14,mouthY:51.67,mouthWidth:0,mouthCurve:0}),y({eyeType:14,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:14,mouthY:51.67,mouthWidth:0,mouthCurve:0,bob:1.5})],near:[y({eyeType:14,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:14,mouthY:51.67,mouthWidth:0,mouthCurve:0,bob:2})],hover:[y({eyeType:14,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:14,mouthY:51.67,mouthWidth:0,mouthCurve:0,cheek:.3,bob:3})],click:[y({eyeType:14,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:14,mouthY:51.67,mouthWidth:0,mouthCurve:0,cheek:.5,bob:4.5})]}},he={name:"cota",emotion:"normal",baseColor:"#C9DCD3",silhouette:"oval",motion:{stiffness:160,damping:18,idleSpeed:1.5,idleAmplitude:1.2,idleIntervalMin:8e3,idleIntervalMax:16e3,motionType:"calm"},expressions:{idle:[y({eyeType:0,eyeScale:1,eyeGap:23.33,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0}),y({eyeType:0,eyeScale:1,eyeGap:23.33,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,bob:-.8})],near:[y({eyeType:0,eyeScale:1,eyeGap:23.33,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,bob:1.2})],hover:[y({eyeType:0,eyeScale:1,eyeGap:23.33,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,cheek:.2,bob:2.5})],click:[y({eyeType:0,eyeScale:1,eyeGap:23.33,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,cheek:.4,bob:4})]}},Ze={name:"dozy",emotion:"tired",baseColor:"#D6DBCF",silhouette:"wide-oval",motion:{stiffness:90,damping:24,idleSpeed:.9,idleAmplitude:2.8,idleIntervalMin:6e3,idleIntervalMax:12e3,motionType:"droop"},expressions:{idle:[y({eyeType:15,eyeScale:.85,eyeGap:26.67,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.24,mouthCurve:0,sweat:1,puff:.7,bob:1.5}),y({eyeType:15,eyeScale:.85,eyeGap:26.67,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.24,mouthCurve:0,sweat:1,puff:.7,bob:2.5})],near:[y({eyeType:15,eyeScale:.85,eyeGap:26.67,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.24,mouthCurve:0,sweat:1,puff:.7,bob:3.5})],hover:[y({eyeType:15,eyeScale:.85,eyeGap:26.67,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.24,mouthCurve:0,sweat:1,puff:.85,bob:4.5})],click:[y({eyeType:15,eyeScale:.85,eyeGap:26.67,eyeY:45.83,mouthType:3,mouthY:56.67,mouthWidth:.24,mouthCurve:0,sweat:1,puff:1,bob:6.5})]}},Ne={name:"lumo",emotion:"sad",baseColor:"#7FA6D9",silhouette:"teardrop-blob",motion:{stiffness:100,damping:20,idleSpeed:1.1,idleAmplitude:2.2,idleIntervalMin:7e3,idleIntervalMax:13e3,motionType:"sob"},expressions:{idle:[y({eyeType:16,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:3,mouthY:55,mouthWidth:.3,mouthCurve:0,tears:1,bob:1.8}),y({eyeType:16,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:3,mouthY:55,mouthWidth:.3,mouthCurve:0,tears:1,bob:2.8})],near:[y({eyeType:16,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:3,mouthY:55,mouthWidth:.3,mouthCurve:0,tears:1,bob:3.5})],hover:[y({eyeType:16,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:3,mouthY:55,mouthWidth:.3,mouthCurve:0,tears:1,bob:4.8})],click:[y({eyeType:16,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:3,mouthY:55,mouthWidth:.3,mouthCurve:0,tears:1,bob:6})]}},Je={name:"fidge",emotion:"anxiety",baseColor:"#A99BD9",silhouette:"cloud-blob",motion:{stiffness:350,damping:8,idleSpeed:5.5,idleAmplitude:1.5,idleIntervalMin:3e3,idleIntervalMax:7e3,motionType:"jitter"},expressions:{idle:[y({eyeType:5,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:13,mouthY:56.67,mouthWidth:.08,mouthCurve:0}),y({eyeType:5,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:13,mouthY:56.67,mouthWidth:.08,mouthCurve:0,shiftX:1.5})],near:[y({eyeType:5,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:13,mouthY:56.67,mouthWidth:.08,mouthCurve:0,shiftX:2.5})],hover:[y({eyeType:5,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:13,mouthY:56.67,mouthWidth:.08,mouthCurve:0,shiftX:4})],click:[y({eyeType:5,eyeScale:1,eyeGap:25,eyeY:43.33,mouthType:13,mouthY:56.67,mouthWidth:.08,mouthCurve:0,shiftX:6})]}},Qe={name:"brix",emotion:"anger",baseColor:"#D9566A",silhouette:"flame-blob",motion:{stiffness:280,damping:12,idleSpeed:3.8,idleAmplitude:2,idleIntervalMin:4e3,idleIntervalMax:8e3,motionType:"fiery"},expressions:{idle:[y({eyeType:17,eyeScale:1,eyeGap:28.33,eyeY:46.67,mouthType:0,mouthY:61.67,mouthWidth:.33,mouthCurve:-.48}),y({eyeType:17,eyeScale:1,eyeGap:28.33,eyeY:46.67,mouthType:0,mouthY:61.67,mouthWidth:.33,mouthCurve:-.48})],near:[y({eyeType:17,eyeScale:1,eyeGap:28.33,eyeY:46.67,mouthType:0,mouthY:61.67,mouthWidth:.33,mouthCurve:-.48})],hover:[y({eyeType:17,eyeScale:1,eyeGap:28.33,eyeY:46.67,mouthType:0,mouthY:61.67,mouthWidth:.33,mouthCurve:-.48})],click:[y({eyeType:17,eyeScale:1,eyeGap:28.33,eyeY:46.67,mouthType:0,mouthY:61.67,mouthWidth:.33,mouthCurve:-.48})]}},Ve={name:"wilt",emotion:"disappointed",baseColor:"#EBD98A",silhouette:"droopy-blob",motion:{stiffness:100,damping:22,idleSpeed:1,idleAmplitude:2,idleIntervalMin:7e3,idleIntervalMax:14e3,motionType:"wilt"},expressions:{idle:[y({eyeType:15,eyeScale:1.15,eyeGap:25,eyeY:43.33,mouthType:0,mouthY:63.33,mouthWidth:.45,mouthCurve:-.54,bob:1.5}),y({eyeType:15,eyeScale:1.15,eyeGap:25,eyeY:43.33,mouthType:0,mouthY:63.33,mouthWidth:.45,mouthCurve:-.54,bob:2.5})],near:[y({eyeType:15,eyeScale:1.15,eyeGap:25,eyeY:43.33,mouthType:0,mouthY:63.33,mouthWidth:.45,mouthCurve:-.54,bob:3.5})],hover:[y({eyeType:15,eyeScale:1.15,eyeGap:25,eyeY:43.33,mouthType:0,mouthY:63.33,mouthWidth:.45,mouthCurve:-.54,bob:4.5})],click:[y({eyeType:15,eyeScale:1.15,eyeGap:25,eyeY:43.33,mouthType:0,mouthY:63.33,mouthWidth:.45,mouthCurve:-.54,bob:6})]}},qe={name:"knot",emotion:"stress",baseColor:"#C97F76",silhouette:"bear-blob",motion:{stiffness:320,damping:9,idleSpeed:4.8,idleAmplitude:2.2,idleIntervalMin:3500,idleIntervalMax:7500,motionType:"dizzy"},expressions:{idle:[y({eyeType:18,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:58.33,mouthWidth:.42,mouthCurve:0,storm:1,scribble:1}),y({eyeType:18,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:58.33,mouthWidth:.42,mouthCurve:0,storm:1,scribble:1,shiftX:1.5})],near:[y({eyeType:18,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:58.33,mouthWidth:.42,mouthCurve:0,storm:1,scribble:1,shiftX:3})],hover:[y({eyeType:18,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:58.33,mouthWidth:.42,mouthCurve:0,storm:1,scribble:1,shiftX:4.5})],click:[y({eyeType:18,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:58.33,mouthWidth:.42,mouthCurve:0,storm:1,scribble:1,shiftX:6.5})]}},Ue={name:"snug",emotion:"sleepy",baseColor:"#AFCBE0",silhouette:"soft-round",motion:{stiffness:85,damping:25,idleSpeed:.7,idleAmplitude:2.2,idleIntervalMin:6e3,idleIntervalMax:12e3,motionType:"snooze"},expressions:{idle:[y({eyeType:19,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:56.67,mouthWidth:.27,mouthCurve:0,zzz:1,bob:.5}),y({eyeType:19,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:56.67,mouthWidth:.27,mouthCurve:0,zzz:1,bob:1.5})],near:[y({eyeType:19,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:56.67,mouthWidth:.27,mouthCurve:0,zzz:1,bob:2.5})],hover:[y({eyeType:19,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:56.67,mouthWidth:.27,mouthCurve:0,zzz:1,bob:3.8})],click:[y({eyeType:19,eyeScale:1,eyeGap:26.67,eyeY:45,mouthType:3,mouthY:56.67,mouthWidth:.27,mouthCurve:0,zzz:1,bob:5.5})]}},He={name:"pip",emotion:"surprised",baseColor:"#F0B98A",silhouette:"octopus-blob",motion:{stiffness:250,damping:12,idleSpeed:2.8,idleAmplitude:3,idleIntervalMin:5e3,idleIntervalMax:1e4,motionType:"pop"},expressions:{idle:[y({eyeType:20,eyeScale:.8,eyeGap:21.67,eyeY:43.33,mouthType:1,mouthY:55,mouthWidth:.21,mouthCurve:0}),y({eyeType:20,eyeScale:.8,eyeGap:21.67,eyeY:43.33,mouthType:1,mouthY:55,mouthWidth:.21,mouthCurve:0,bob:-2})],near:[y({eyeType:20,eyeScale:.8,eyeGap:21.67,eyeY:43.33,mouthType:1,mouthY:55,mouthWidth:.21,mouthCurve:0,bob:-3})],hover:[y({eyeType:20,eyeScale:.8,eyeGap:21.67,eyeY:43.33,mouthType:1,mouthY:55,mouthWidth:.21,mouthCurve:0,bob:-5})],click:[y({eyeType:20,eyeScale:.8,eyeGap:21.67,eyeY:43.33,mouthType:1,mouthY:55,mouthWidth:.21,mouthCurve:0,bob:-8})]}},Ke={name:"void",emotion:"numbness",baseColor:"#D9C6E0",silhouette:"wave-blob",motion:{stiffness:100,damping:24,idleSpeed:.8,idleAmplitude:1.5,idleIntervalMin:9e3,idleIntervalMax:18e3,motionType:"drift"},expressions:{idle:[y({eyeType:20,eyeScale:.75,eyeGap:23.33,eyeY:44.17,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0}),y({eyeType:20,eyeScale:.75,eyeGap:23.33,eyeY:44.17,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,bob:1})],near:[y({eyeType:20,eyeScale:.75,eyeGap:23.33,eyeY:44.17,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,bob:2})],hover:[y({eyeType:20,eyeScale:.75,eyeGap:23.33,eyeY:44.17,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,bob:3})],click:[y({eyeType:20,eyeScale:.75,eyeGap:23.33,eyeY:44.17,mouthType:3,mouthY:56.67,mouthWidth:.33,mouthCurve:0,bob:4.5})]}},H={mochi:ne,zumi:je,suri:_e,nima:Re,cota:he,dozy:Ze,lumo:Ne,fidge:Je,brix:Qe,wilt:Ve,knot:qe,snug:Ue,pip:He,void:Ke};function Ee(o){const t=o.toLowerCase();return H[t]?H[t]:Object.values(H).find(i=>i.emotion===t)||ne}function et(o,t={}){const{stiffness:e=180,damping:i=18,mass:s=1}=t,c={current:o,target:o,velocity:0};return{state:c,setTarget(a){c.target=a},setCurrent(a){c.current=a,c.target=a,c.velocity=0},update(a){const $=a/4;let g=!1;for(let d=0;d<4;d++){const v=c.current-c.target,k=-e*v,x=-i*c.velocity,z=(k+x)/s;c.velocity+=z*$,c.current+=c.velocity*$,(Math.abs(c.velocity)>1e-4||Math.abs(c.current-c.target)>1e-4)&&(g=!0)}return g||(c.current=c.target,c.velocity=0),g}}}function tt(o,t){const e=Object.keys(o),i={};for(const s of e)i[s]=et(o[s],t);return{getValues(){const s={};for(const c of e)s[c]=i[c].state.current;return s},setTargets(s){for(const c in s)c in i&&i[c].setTarget(s[c])},setValues(s){for(const c in s)c in i&&i[c].setCurrent(s[c])},update(s){let c=!1;for(const a of e)i[a].update(s)&&(c=!0);return c}}}function Zt(o,t){const e={...o};switch(t){case"sleeping":e.eyeOpen=.05,e.eyeType=2,e.mouthCurve=.2,e.browY=3,e.browTilt=-.1,e.cheek=.2,e.zzz=1;break;case"drowsy":case"powering-down":e.eyeOpen=.35,e.mouthCurve=0,e.browY=4,e.browTilt=.1,e.zzz=.55,e.sweat=.8,e.puff=.7;break;case"bored":e.eyeOpen=.45,e.mouthCurve=-.2,e.browY=2,e.gazeX=6,e.puff=.4;break;case"waking":case"spawning":e.eyeOpen=.75,e.eyeScale=1.1,e.mouthCurve=.4,e.browY=-2;break;case"angry":e.eyeType=3,e.browTilt=-.75,e.mouthCurve=-.65,e.mouthOpen=.2,e.eyeScale=1.15,e.storm=1;break;case"alerting":case"notifying":e.eyeScale=1.3,e.browTilt=-.4,e.mouthOpen=.45,e.mouthCurve=.1;break;case"suspicious":e.browTilt=-.5,e.eyeScale=.9,e.mouthCurve=-.3,e.gazeX=-8;break;case"excited":case"celebrate":e.eyeScale=1.35,e.mouthCurve=.9,e.mouthOpen=.55,e.cheek=.85,e.browY=-4;break;case"happy":case"playful":e.eyeScale=1.15,e.mouthCurve=.75,e.cheek=.6,e.browY=-2;break;case"laughing":e.eyeType=2,e.mouthCurve=.95,e.mouthOpen=.7,e.cheek=.9,e.bob=-3;break;case"proud":e.eyeScale=1.1,e.mouthCurve=.65,e.browY=-3,e.bob=-4;break;case"thinking":case"searching":e.browTilt=.5,e.eyeScale=1.1,e.mouthWidth=.6,e.mouthCurve=.1,e.shiftX=-4;break;case"dictating":case"listening":case"writing":case"humming":e.mouthOpen=.45,e.mouthCurve=.4,e.eyeScale=1.08,e.cheek=.4;break;case"loading":case"orbit":case"radar":case"progress":e.eyeScale=1.15,e.mouthCurve=.3,e.browY=-2;break;case"surprised":e.eyeScale=1.45,e.mouthOpen=.75,e.mouthCurve=0,e.browY=-7;break;case"scared":e.eyeScale=1.4,e.mouthOpen=.8,e.mouthCurve=-.55,e.browTilt=.5;break;case"confused":e.browTilt=.65,e.mouthCurve=-.3,e.shiftX=-5,e.scribble=1;break;case"curious":e.browTilt=-.3,e.eyeScale=1.2,e.mouthCurve=.45,e.shiftX=3;break;case"shy":e.eyeScale=.85,e.gazeY=6,e.cheek=.95,e.mouthCurve=.35;break;case"sad":e.browTilt=.6,e.mouthCurve=-.65,e.tears=.8,e.browY=2;break}return e}class ot{constructor(){M(this,"currentState","idle");M(this,"lastIndices",{})}getState(){return this.currentState}setState(t){const e=this.currentState!==t;return this.currentState=t,e}resolvePool(t,e=this.currentState){let i=[];if(t[e]&&t[e].length>0)i=t[e];else switch(e){case"happy":case"excited":case"playful":case"celebrate":case"laughing":case"proud":i=t.hover||t.idle;break;case"surprised":case"scared":case"alerting":case"notifying":case"bouncing":i=t.click||t.hover||t.idle;break;case"suspicious":case"angry":i=t.click||t.idle;break;case"curious":case"thinking":case"searching":case"listening":case"working":case"confused":case"shy":case"sad":case"dictating":case"writing":case"sending":case"receiving":case"uploading":case"dragging":case"humming":case"loading":case"orbit":case"radar":case"progress":i=t.near||t.hover||t.idle;break;default:i=t[e]||t.idle;break}return i.map(s=>Zt(s,e))}pickVariant(t,e=this.currentState){if(!t||t.length===0)throw new Error(`Empty variant pool for state "${e}"`);if(t.length===1)return this.lastIndices[e]=0,t[0];const i=this.lastIndices[e]??-1;let s=Math.floor(Math.random()*t.length);for(;s===i;)s=Math.floor(Math.random()*t.length);return this.lastIndices[e]=s,t[s]}}class Nt{constructor(){M(this,"callbacks",new Set);M(this,"handle",null);M(this,"lastTime",0)}add(t){this.callbacks.add(t),this.handle||(this.lastTime=performance.now(),this.tick=this.tick.bind(this),this.handle=requestAnimationFrame(this.tick))}remove(t){this.callbacks.delete(t),this.callbacks.size===0&&this.handle!==null&&(cancelAnimationFrame(this.handle),this.handle=null)}get size(){return this.callbacks.size}tick(t){const e=Math.min((t-this.lastTime)/1e3,.1);this.lastTime=t,this.callbacks.forEach(i=>i(e)),this.callbacks.size>0?this.handle=requestAnimationFrame(this.tick):this.handle=null}}const O=new Nt;function it(o=2.2,t=.25){const e=[],i=o*Math.PI*2;for(let s=0;s<=i;s+=t){const c=s/i;e.push([Math.cos(s)*c,Math.sin(s)*c])}return e}function nt(o){switch(o){case"circle":return"M 50 13 A 37 37 0 1 0 50 87 A 37 37 0 1 0 50 13 Z";case"heart":return"M 50 21.67 C 54.17 17.5 65 12.5 74.17 16.67 C 85 21.67 89.17 35.83 85 48.33 C 80.83 61.67 66.67 74.17 50 74.17 C 33.33 74.17 19.17 61.67 15 48.33 C 10.83 35.83 15 21.67 25.83 16.67 C 35 12.5 45.83 17.5 50 21.67 Z";case"capsule":return"M 26 26 L 74 26 C 88 26 88 74 74 74 L 26 74 C 12 74 12 26 26 26 Z";case"rounded-squircle":return"M 32 18 L 68 18 C 84 18 84 32 84 50 C 84 68 84 82 68 82 L 32 82 C 16 82 16 68 16 50 C 16 32 16 18 32 18 Z";case"pear-blob":return"M 50 14 C 66 14 72 32 80 54 C 86 70 80 86 50 86 C 20 86 14 70 20 54 C 28 32 34 14 50 14 Z";case"egg-oval":return"M 18 54 C 18 26 32 14 50 14 C 68 14 82 26 82 54 C 82 74 70 84 50 84 C 30 84 18 74 18 54 Z";case"starburst-puff":return"M 34 18 C 50 24 50 24 66 18 C 78 18 84 30 80 46 C 84 62 78 82 66 82 C 50 76 50 76 34 82 C 22 82 16 62 20 46 C 16 30 22 18 34 18 Z";case"pill-vertical":return"M 26 28 C 26 12 74 12 74 28 L 74 72 C 74 88 26 88 26 72 Z";case"round-blob":return"M 86.5 53.64 C 86.5 73.98 70.16 77.2 50 77.2 C 29.84 77.2 13.5 73.98 13.5 53.64 C 13.5 33.29 29.84 16.8 50 16.8 C 70.16 16.8 86.5 33.29 86.5 53.64 Z";case"ghost-blob":return"M 50 14.17 C 70 14.17 83.33 29.17 83.33 47.5 L 83.33 70 C 83.33 75 78.33 75.83 75.83 71.67 C 73.33 65.83 67.5 65.83 65 71.67 C 62.5 77.5 56.67 77.5 54.17 71.67 C 51.67 65.83 45.83 65.83 43.33 71.67 C 40.83 77.5 35 77.5 32.5 71.67 C 30 65.83 24.17 65.83 21.67 71.67 C 19.17 75.83 16.67 75 16.67 70 L 16.67 47.5 C 16.67 29.17 30 14.17 50 14.17 Z";case"oval":return"M 45.24 12.83 C 58.45 10.98 74.32 28.1 76.87 46.26 C 79.31 63.59 69.61 78.41 54.76 80.5 C 39.9 82.59 26.49 71.01 24.06 53.68 C 21.51 35.52 32.04 14.69 45.24 12.83 Z";case"elongated-oval":return"M 86.38 54.82 C 87.03 78.56 86.38 75.48 49.94 76.67 C 13.52 77.86 13.5 75.67 13.5 54.82 C 13.5 33.97 29.81 17.07 49.94 17.07 C 70.06 17.07 86.38 33.97 86.38 54.82 Z";case"teardrop-blob":return"M 50 14.17 C 70 14.17 84.17 28.33 84.17 47.5 C 84.17 69.17 69.17 81.67 49.17 81.67 C 30 81.67 15.83 68.33 15.83 47.5 C 15.83 28.33 30 14.17 50 14.17 Z";case"flame-blob":return"M 20 43.33 L 25.83 18.33 L 36.67 35 L 47.5 13.33 L 58.33 33.33 L 70 20 L 75.83 43.33 C 82.5 51.67 80 65.83 70 74.17 C 58.33 83.33 38.33 81.67 27.5 72.5 C 18.33 65 14.17 51.67 20 43.33 Z";case"droopy-blob":return"M 47.83 15.03 C 64.86 12.2 79.26 26.85 79.26 43.84 C 79.26 62.72 77.35 73.65 59.63 78.17 C 41.9 82.69 18.53 73.61 19.16 56.42 C 19.16 33.97 20.59 24.37 35.7 17.57 C 39.66 15.66 43.78 15.72 47.83 15.03 Z M 13.5 49.19 A 6.92 6.92 0 1 0 27.34 49.19 A 6.92 6.92 0 1 0 13.5 49.19 Z M 72.66 49.19 A 6.92 6.92 0 1 0 86.5 49.19 A 6.92 6.92 0 1 0 72.66 49.19 Z";case"bear-blob":return"M 85.2 51.24 C 85.2 71.22 69.15 78.94 49.35 78.94 C 29.55 78.94 13.5 71.22 13.5 51.24 C 13.5 31.26 29.55 15.06 49.35 15.06 C 69.15 15.06 85.2 31.26 85.2 51.24 Z M 86.5 29.08 C 86.5 34.3 81.98 38.53 76.4 38.53 C 70.82 38.53 66.29 34.3 66.29 29.08 C 66.29 23.86 70.82 19.63 76.4 19.63 C 81.98 19.63 86.5 23.86 86.5 29.08 Z M 13.5 29.08 A 10.1 9.45 0 1 0 33.7 29.08 A 10.1 9.45 0 1 0 13.5 29.08 Z";case"spiky-blob":return"M 50 12 C 76 12 88 26 88 48 C 88 64 88 78 84 86 C 78 82 72 92 64 86 C 56 82 50 90 44 86 C 36 92 30 82 12 48 C 12 26 24 12 50 12 Z";case"cloud-blob":return"M 50 12.5 C 60 9.17 69.17 15.83 71.67 21.67 C 79.17 24.17 83.33 32.5 80.83 40 C 85.83 47.5 83.33 57.5 78.33 61.67 C 76.67 70.83 68.33 76.67 60 74.17 C 53.33 80 42.5 80 35.83 74.17 C 27.5 76.67 20 70 18.33 61.67 C 13.33 56.67 11.67 47.5 16.67 40 C 14.17 32.5 20 24.17 27.5 21.67 C 30.83 15 40 9.17 50 12.5 Z";case"wide-oval":return"M 50 20.83 C 73.33 20.83 87.5 31.67 87.5 47.5 C 87.5 64.17 73.33 75.83 50 75.83 C 26.67 75.83 12.5 64.17 12.5 47.5 C 12.5 31.67 26.67 20.83 50 20.83 Z";case"soft-round":return"M 50 15 C 73.33 15 85 26.67 85 48.33 C 85 70 73.33 80 50 80 C 26.67 80 15 70 15 48.33 C 15 26.67 26.67 15 50 15 Z";case"octopus-blob":return"M 50 12.5 C 70 12.5 83.33 27.5 83.33 47.5 L 83.33 65.83 C 83.33 73.33 77.5 75 74.17 69.17 C 71.67 65 66.67 65 64.17 69.17 C 61.67 73.33 56.67 73.33 54.17 69.17 C 51.67 65 46.67 65 44.17 69.17 C 41.67 73.33 36.67 73.33 34.17 69.17 C 31.67 65 26.67 65 24.17 69.17 C 20.83 75 16.67 73.33 16.67 65.83 L 16.67 47.5 C 16.67 27.5 30 12.5 50 12.5 Z";case"wave-blob":return"M 50 13.33 C 63.33 13.33 75 20 76.67 31.67 C 77.5 40 70 43.33 76.67 50 C 82.5 56.67 75 73.33 56.67 76.67 C 50 78.33 43.33 78.33 36.67 75.83 C 21.67 70.83 17.5 58.33 23.33 51.67 C 28.33 45.83 21.67 41.67 23.33 33.33 C 25.83 20.83 36.67 13.33 50 13.33 Z";default:return"M 50 12 C 78 12 90 26 90 52 C 90 78 78 88 50 88 C 22 88 10 78 10 52 C 10 26 22 12 50 12 Z"}}const Jt="M -4 2 C 2 2 5 -2 1 -5 C -3 -8 -10 -6 -10 -1 C -10 5 -2 8 4 4 C 9 1 7 -6 0 -7";function Qt(o,t,e,i,s,c=""){return`<g transform="translate(${o.toFixed(2)}, ${t.toFixed(2)}) scale(${e.toFixed(3)})" ${c}>
2
+ <path d="${Jt}" stroke="${i}" stroke-width="${(s/e).toFixed(2)}" stroke-linecap="round" stroke-linejoin="round" fill="none" />
3
+ </g>`}function xe(o,t,e,i,s={},c=0){const a=c||(typeof performance<"u"?performance.now()/1e3:Date.now()/1e3),h="#2C2C2A",$="#F0997B",g=3.5,v=nt(o).split(/(?=M )/).map(r=>r.trim()).filter(Boolean).map(r=>`<path d="${r}" fill="${t}" />`).join(""),{flipX:k=!1,emphasis:x=!1}=s,z=Math.max(-13.2,Math.min(13.2,e.gazeX??0)),j=Math.max(-8.4,Math.min(8.4,e.gazeY??0)),L=(e.eyeGap??32)/2,W=(e.eyeY??45)+j,R=50-L+z,J=50+L+z,ee=40,re=50+(e.shiftX??0),te=e.turnAngle??0,ae=r=>{const l=r-re,C=Math.max(-ee,Math.min(ee,l)),T=Math.asin(C/ee),X=T+te,b=Math.cos(X),P=b>0,I=re+ee*Math.sin(X),w=P?Math.max(0,b/Math.cos(T)):0;return{projX:I,scaleX:w,isVisible:P}},G=ae(R),A=ae(J),n=(e.eyeScale??1)*(x?1.15:1),De=Math.round(e.eyeType??0);let ue="",Me="";const de=(r,l,C,T)=>{if(C<=.01)return"";const X=n*C,b=`transform="translate(${r}, ${l}) scale(${C.toFixed(2)}, 1) translate(${-r}, ${-l})"`;switch(De){case 1:return`<g ${b}><path d="M ${r-5.83*n} ${l+1.67*n} Q ${r} ${l-5.83*n} ${r+5.83*n} ${l+1.67*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`;case 2:return T?`<g ${b}><path d="M ${r+3.33*n} ${l-5*n} L ${r-3.33*n} ${l} L ${r+3.33*n} ${l+5*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" stroke-linejoin="round" fill="none" /></g>`:`<g ${b}><path d="M ${r-3.33*n} ${l-5*n} L ${r+3.33*n} ${l} L ${r-3.33*n} ${l+5*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" stroke-linejoin="round" fill="none" /></g>`;case 3:return T?`<g ${b}><line x1="${r-5*n}" y1="${l+3*n}" x2="${r+5*n}" y2="${l-3*n}" stroke="${h}" stroke-width="3.2" stroke-linecap="round" /></g>`:`<g ${b}><line x1="${r-5*n}" y1="${l-3*n}" x2="${r+5*n}" y2="${l+3*n}" stroke="${h}" stroke-width="3.2" stroke-linecap="round" /></g>`;case 4:return T?`<g ${b}><line x1="${r-5*n}" y1="${l-3*n}" x2="${r+5*n}" y2="${l+3*n}" stroke="${h}" stroke-width="3.2" stroke-linecap="round" /></g>`:`<g ${b}><line x1="${r-5*n}" y1="${l+3*n}" x2="${r+5*n}" y2="${l-3*n}" stroke="${h}" stroke-width="3.2" stroke-linecap="round" /></g>`;case 5:return`<g ${b}>
4
+ <ellipse cx="${r}" cy="${l}" rx="${5*n}" ry="${5.83*n}" fill="#ffffff" />
5
+ <circle cx="${r}" cy="${l+.83*n}" r="${2.17*n}" fill="${h}" />
6
+ </g>`;case 6:return`<g ${b} fill="#E3536C"><path d="M ${r} ${l+5*n} C ${r-8*n} ${l-2*n} ${r-5*n} ${l-7*n} ${r} ${l-3*n} C ${r+5*n} ${l-7*n} ${r+8*n} ${l-2*n} ${r} ${l+5*n} Z" /></g>`;case 7:return`<g ${b} stroke="${h}" stroke-width="3.2">
7
+ <line x1="${r-4.5*n}" y1="${l-4.5*n}" x2="${r+4.5*n}" y2="${l+4.5*n}" stroke-linecap="round" />
8
+ <line x1="${r-4.5*n}" y1="${l+4.5*n}" x2="${r+4.5*n}" y2="${l-4.5*n}" stroke-linecap="round" />
9
+ </g>`;case 8:return`<g ${b} stroke="${h}" stroke-width="2.8" stroke-linecap="round">
10
+ <line x1="${r-5*n}" y1="${l-2}" x2="${r+5*n}" y2="${l-2}" />
11
+ <line x1="${r-5*n}" y1="${l+2}" x2="${r+5*n}" y2="${l+2}" />
12
+ </g>`;case 9:return T?"":`<g transform="translate(0, 0)">
13
+ <path d="M ${G.projX-12} ${l-2} L ${A.projX+12} ${l-2}" stroke="${h}" stroke-width="2.8" />
14
+ <rect x="${G.projX-9}" y="${l-6}" width="16" height="12" rx="3" fill="${h}" />
15
+ <rect x="${A.projX-7}" y="${l-6}" width="16" height="12" rx="3" fill="${h}" />
16
+ </g>`;case 10:return T?`<g ${b}><circle cx="${r}" cy="${l}" r="${3.2*n}" fill="${h}" /></g>`:`<g ${b}><ellipse cx="${r}" cy="${l}" rx="${6*n}" ry="${8*n}" fill="${h}" /></g>`;case 11:return T?`<g ${b}><circle cx="${r}" cy="${l}" r="${4.2*n}" fill="${h}" /></g>`:`<g ${b}><line x1="${r-5*n}" y1="${l}" x2="${r+5*n}" y2="${l}" stroke="${h}" stroke-width="3.2" stroke-linecap="round" /></g>`;case 12:return`<g ${b}>
17
+ <ellipse cx="${r}" cy="${l}" rx="${3*n}" ry="${6*n}" fill="${h}" />
18
+ </g>`;case 13:return`<g ${b}><circle cx="${r}" cy="${l}" r="${6.5*n}" fill="${h}" /></g>`;case 14:return`<g ${b}><path d="M ${r-5.83*n} ${l-1.67*n} Q ${r} ${l+5.83*n} ${r+5.83*n} ${l-1.67*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`;case 15:return T?`<g ${b}><path d="M ${r+6.67*n} ${l+2.5*n} Q ${r} ${l-5*n} ${r-6.67*n} ${l-.83*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`:`<g ${b}><path d="M ${r-6.67*n} ${l+2.5*n} Q ${r} ${l-5*n} ${r+6.67*n} ${l-.83*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`;case 16:return`<g ${b}><path d="M ${r} ${l-4.17*n} L ${r} ${l+3.33*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`;case 17:return T?`<g ${b}><path d="M ${r+5.83*n} ${l-6.67*n} L ${r-5*n} ${l+.83*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`:`<g ${b}><path d="M ${r-5.83*n} ${l-6.67*n} L ${r+5*n} ${l+.83*n}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`;case 18:{const w=4.6*n,E=it().map(([D,oe],fe)=>{const K=(r+D*w).toFixed(2),ie=(l+oe*w).toFixed(2);return`${fe===0?"M":"L"} ${K} ${ie}`}).join(" ");return`<g ${b}><path d="${E}" stroke="${h}" stroke-width="1.3" stroke-linecap="round" fill="none" /></g>`}case 19:return`<g ${b}>
19
+ <circle cx="${r}" cy="${l}" r="${4.5*n}" fill="none" stroke="${h}" stroke-width="2.63" />
20
+ <path d="M ${r-2.83*n} ${l-.42*n} Q ${r} ${l+2.83*n} ${r+2.83*n} ${l-.42*n}" stroke="${h}" stroke-width="2.63" stroke-linecap="round" fill="none" />
21
+ </g>`;case 20:return`<g ${b}><circle cx="${r}" cy="${l}" r="${3.67*n}" fill="none" stroke="${h}" stroke-width="2.8" /></g>`;case 21:{const w=6*n,E=w*.22,D=`M ${r} ${l-w} Q ${r+E} ${l-E} ${r+w} ${l} Q ${r+E} ${l+E} ${r} ${l+w} Q ${r-E} ${l+E} ${r-w} ${l} Q ${r-E} ${l-E} ${r} ${l-w} Z`;return`<g ${b}><path d="${D}" fill="${h}" /></g>`}case 22:return`<g ${b}>
22
+ <ellipse cx="${r}" cy="${l}" rx="${5.5*n}" ry="${3.3*n}" fill="#ffffff" stroke="${h}" stroke-width="1.4" />
23
+ <circle cx="${r-2.2*n}" cy="${l}" r="${1.8*n}" fill="${h}" />
24
+ </g>`;case 23:return T?`<g ${b}><ellipse cx="${r}" cy="${l}" rx="${2.83*n}" ry="${Math.max(.5,2.83*n*Math.max(.05,e.eyeOpen))}" fill="${h}" /></g>`:`<g ${b}><path d="M ${r-5*n} ${l} Q ${r} ${l+4*n} ${r+5*n} ${l}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" /></g>`;case 24:{const w=4.2*n,E=5.8*n;return`<g ${b}>
25
+ <ellipse cx="${r}" cy="${l}" rx="${w}" ry="${E}" fill="${h}" />
26
+ <circle cx="${r-w*.35}" cy="${l-E*.4}" r="${1.3*n}" fill="#ffffff" />
27
+ </g>`}case 25:return T?`<g ${b}>
28
+ <path d="M ${r-5*n} ${l} Q ${r} ${l+2*n} ${r+5*n} ${l}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" />
29
+ <line x1="${r+5*n}" y1="${l-.5*n}" x2="${r+7*n}" y2="${l-2.5*n}" stroke="${h}" stroke-width="2" stroke-linecap="round" />
30
+ </g>`:`<g ${b}>
31
+ <path d="M ${r-5*n} ${l} Q ${r} ${l+2*n} ${r+5*n} ${l}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" fill="none" />
32
+ <line x1="${r-5*n}" y1="${l-.5*n}" x2="${r-7*n}" y2="${l-2.5*n}" stroke="${h}" stroke-width="2" stroke-linecap="round" />
33
+ </g>`;case 26:return`<g ${b}>
34
+ <circle cx="${r}" cy="${l}" r="${5*n}" fill="none" stroke="${h}" stroke-width="2.2" />
35
+ <circle cx="${r+1.6*n}" cy="${l+1.6*n}" r="${1.7*n}" fill="${h}" />
36
+ </g>`;case 27:{const w=4*n,E=8*n;return`<g ${b}><path d="M ${r-w} ${l+E} L ${r-w} ${l-E} L ${r+w} ${l-E} L ${r+w} ${l+E}" stroke="${h}" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" fill="none" /></g>`}case 28:return`<g ${b}><ellipse cx="${r}" cy="${l}" rx="${4.5*n}" ry="${3*n}" fill="${h}" /></g>`;case 29:return`<g ${b}>
37
+ <path d="M ${r-4*n} ${l-3*n} Q ${r} ${l-6*n} ${r+4*n} ${l-2.5*n}" stroke="${h}" stroke-width="2" stroke-linecap="round" fill="none" />
38
+ <circle cx="${r}" cy="${l+1.5*n}" r="${1.6*n}" fill="${h}" />
39
+ </g>`;case 30:return T?`<g ${b}><path d="M ${r+6*n} ${l-6*n} L ${r+2*n} ${l-3*n} L ${r+5*n} ${l-1*n} L ${r-3*n} ${l+2*n}" stroke="${h}" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" fill="none" /></g>`:`<g ${b}><path d="M ${r-6*n} ${l-6*n} L ${r-2*n} ${l-3*n} L ${r-5*n} ${l-1*n} L ${r+3*n} ${l+2*n}" stroke="${h}" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" fill="none" /></g>`;case 31:return`<g ${b}>
40
+ <circle cx="${r}" cy="${l}" r="${4*n}" fill="none" stroke="${h}" stroke-width="2" />
41
+ <circle cx="${r}" cy="${l}" r="${1.3*n}" fill="${h}" />
42
+ </g>`;case 0:default:const P=2.83*X,I=Math.max(.5,P*Math.max(.05,e.eyeOpen));return`<ellipse cx="${r.toFixed(2)}" cy="${l.toFixed(2)}" rx="${P.toFixed(2)}" ry="${I.toFixed(2)}" fill="${h}" />`}};ue=G.isVisible?de(G.projX,W,G.scaleX,!1):"",Me=A.isVisible?de(A.projX,W,A.scaleX,!0):"";let le="";const se=e.tears??0;if(se>.01){const r=Math.min(1,se),l=a*.36%1;let C=0,T=r,X=1;if(l<.25){const b=l/.25;C=b*1.2,X=.75+b*.35,T=r*(.3+b*.7)}else if(l<.82){const b=(l-.25)/.57;C=1.2+b*10.5,X=1.1-b*.2,T=r}else{const b=(l-.82)/.18;C=11.7+b*2.5,X=.9-b*.4,T=r*(1-b)}if(e.cascadeTears)le=`
43
+ <g opacity="${T.toFixed(2)}">
44
+ <path d="M ${G.projX-3} ${W+4} L ${G.projX-6} 88 L ${G.projX+2} 88 Z" fill="#7FA6D9" opacity="0.85" />
45
+ <path d="M ${A.projX-2} ${W+4} L ${A.projX-2} 88 L ${A.projX+6} 88 Z" fill="#7FA6D9" opacity="0.85" />
46
+ </g>
47
+ `;else{const b=(W+7).toFixed(2),P=(G.projX-1.2).toFixed(2),I=(A.projX+1.2).toFixed(2),w=parseFloat(P),E=parseFloat(I),D=parseFloat(b);le=`
48
+ <g opacity="${T.toFixed(2)}">
49
+ <g transform="translate(0, ${C.toFixed(2)}) scale(${X.toFixed(2)})">
50
+ <!-- Lágrima redondita ojo izquierdo -->
51
+ <path d="M ${P} ${(D-2.5).toFixed(2)} C ${(w+2.2).toFixed(2)} ${(D-.5).toFixed(2)} ${(w+2.2).toFixed(2)} ${(D+2.2).toFixed(2)} ${P} ${(D+3.2).toFixed(2)} C ${(w-2.2).toFixed(2)} ${(D+2.2).toFixed(2)} ${(w-2.2).toFixed(2)} ${(D-.5).toFixed(2)} ${P} ${(D-2.5).toFixed(2)} Z" fill="#ffffff" />
52
+ <!-- Lágrima redondita ojo derecho -->
53
+ <path d="M ${I} ${(D-2.5).toFixed(2)} C ${(E+2.2).toFixed(2)} ${(D-.5).toFixed(2)} ${(E+2.2).toFixed(2)} ${(D+2.2).toFixed(2)} ${I} ${(D+3.2).toFixed(2)} C ${(E-2.2).toFixed(2)} ${(D+2.2).toFixed(2)} ${(E-2.2).toFixed(2)} ${(D-.5).toFixed(2)} ${I} ${(D-2.5).toFixed(2)} Z" fill="#ffffff" />
54
+ </g>
55
+ </g>
56
+ `}}let Z="";if(e.zzz){const r=a*.75,l=3;Z+=`<g stroke="${h}" fill="none" stroke-linecap="round" stroke-linejoin="round">`;for(let C=0;C<l;C++){const T=(r+C/l)%1,X=68+T*20+Math.sin(T*Math.PI*2)*2,b=30-T*26,P=.5+Math.sin(T*Math.PI)*.65,I=Math.sin(T*Math.PI)*.95,w=(1.8+P*.7).toFixed(2),E=P.toFixed(2);I>.01&&(Z+=`
57
+ <g transform="translate(${X.toFixed(2)}, ${b.toFixed(2)}) scale(${E}) translate(-72, -31)" opacity="${I.toFixed(2)}">
58
+ <path d="M 68 28 L 76 28 L 68 34 L 76 34" stroke-width="${w}" />
59
+ </g>
60
+ `)}Z+="</g>"}if(e.sweat){const r=[{x:80,delay:0,scale:1},{x:20,delay:.4,scale:.85},{x:71,delay:.7,scale:.7}],l=Math.min(1,e.sweat);Z+='<g fill="#7FA6D9">';for(const C of r){const T=(a*1.2+C.delay)%1,X=25+T*7,b=l*Math.sin(T*Math.PI);b>.01&&(Z+=`
61
+ <g transform="translate(${C.x}, ${X.toFixed(2)}) scale(${C.scale}) translate(-80, -25)" opacity="${b.toFixed(2)}">
62
+ <path d="M 76 26 C 76 22 80 20 80 20 C 80 20 84 22 84 26 C 84 28.5 82.2 30 80 30 C 77.8 30 76 28.5 76 26 Z" />
63
+ </g>
64
+ `)}Z+="</g>"}if(e.storm){const r=Math.min(1,e.storm),l=Math.sin(a*1.4)*1.2,C=Math.sin(a*1.4+1.8)*1.2,T=.85+Math.sin(a*1.4)*.15,X=.85+Math.sin(a*1.4+1.8)*.15;Z+=`
65
+ <g opacity="${r.toFixed(2)}" fill="#8a8a86">
66
+ <path transform="translate(${l.toFixed(2)}, ${(Math.abs(l)*-.4).toFixed(2)})" opacity="${T.toFixed(2)}" d="M 22 6 C 22 3 25 1.5 27 2.3 C 27.6 0.5 30 -0.3 31.7 1 C 33.3 -0.7 36.5 0.3 36.5 3 C 38.2 3 39.5 4.5 39 6.2 C 39 8 37.3 9 35.6 9 L 24 9 C 22.3 9 22 7.5 22 6 Z" />
67
+ <path transform="translate(${C.toFixed(2)}, ${(Math.abs(C)*-.4).toFixed(2)})" opacity="${X.toFixed(2)}" d="M 62 8 C 62 5.3 64.8 3.9 66.6 4.6 C 67.2 3 69.4 2.3 71 3.5 C 72.5 1.9 75.4 2.8 75.4 5.3 C 77 5.3 78.2 6.7 77.7 8.2 C 77.7 9.8 76.1 10.7 74.6 10.7 L 63.8 10.7 C 62.3 10.7 62 9.4 62 8 Z" />
68
+ </g>
69
+ `}if(e.scribble){const r=Math.min(1,e.scribble),l=Math.sin(a*1.6)*6,C=1+Math.sin(a*2.3)*.06;Z+=`
70
+ <g transform="translate(50, 3) rotate(${l.toFixed(2)}) translate(-50, -3)" opacity="${r.toFixed(2)}">
71
+ ${Qt(50,3,C,"#5B7FD6",2.3)}
72
+ </g>
73
+ `}if(e.puff){const r=a*.55%1,l=e.mouthY??63,C=68+r*12,T=l-r*10,X=.4+r*.9,b=Math.min(1,e.puff)*Math.sin(r*Math.PI)*.8;b>.01&&(Z+=`
74
+ <g fill="#B9BDB6" opacity="${b.toFixed(2)}" transform="translate(${C.toFixed(2)}, ${T.toFixed(2)}) scale(${X.toFixed(2)})">
75
+ <circle cx="0" cy="0" r="3.4" />
76
+ <circle cx="3" cy="-1.2" r="2.1" />
77
+ <circle cx="-2.4" cy="-1" r="1.8" />
78
+ </g>
79
+ `)}let me="";if(e.browY!==0||e.browTilt!==0){const r=32+e.browY+j*.5,l=e.browTilt,C=-e.browTilt;me=`
80
+ <g transform="rotate(${l}, ${G.projX}, ${r})">
81
+ <line x1="${G.projX-6}" y1="${r}" x2="${G.projX+6}" y2="${r}" stroke="${h}" stroke-width="2.8" stroke-linecap="round" />
82
+ </g>
83
+ <g transform="rotate(${C}, ${A.projX}, ${r})">
84
+ <line x1="${A.projX-6}" y1="${r}" x2="${A.projX+6}" y2="${r}" stroke="${h}" stroke-width="2.8" stroke-linecap="round" />
85
+ </g>
86
+ `}const ve=Math.round(e.mouthType??0),S=Math.max(0,14*e.mouthWidth),m=50+z*.6,u=(e.mouthY??63)+j*.4;let Y="";switch(ve){case 1:Y=`<ellipse cx="${m}" cy="${u}" rx="${S}" ry="${S*1.24}" fill="#B3554A" />`;break;case 2:{const r=S*2/4;let l=`M ${m-S} ${u}`;for(let C=1;C<=4;C++)l+=` L ${m-S+r*C} ${u+(C%2?2.83:0)}`;Y=`<path d="${l}" fill="none" stroke="${h}" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round" />`;break}case 3:Y=`<line x1="${m-S}" y1="${u}" x2="${m+S}" y2="${u}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" />`;break;case 13:Y=`<circle cx="${m}" cy="${u}" r="${S*2}" fill="none" stroke="${h}" stroke-width="2.8" />`;break;case 14:Y="";break;case 4:Y=`
87
+ <rect x="${m-10}" y="${u-4}" width="20" height="8" rx="2" fill="#ffffff" stroke="${h}" stroke-width="2.5" />
88
+ <line x1="${m-10}" y1="${u}" x2="${m+10}" y2="${u}" stroke="${h}" stroke-width="1.8" />
89
+ <line x1="${m-3}" y1="${u-4}" x2="${m-3}" y2="${u+4}" stroke="${h}" stroke-width="1.5" />
90
+ <line x1="${m+3}" y1="${u-4}" x2="${m+3}" y2="${u+4}" stroke="${h}" stroke-width="1.5" />
91
+ `;break;case 5:Y=`
92
+ <path d="M ${m-12} ${u-2} Q ${m} ${u+12} ${m+12} ${u-2} Z" fill="${h}" />
93
+ <path d="M ${m-10} ${u-2} L ${m+10} ${u-2} L ${m+8} ${u+2} L ${m-8} ${u+2} Z" fill="#ffffff" />
94
+ `;break;case 6:Y=`<path d="M ${m-13} ${u-3} Q ${m} ${u+14} ${m+13} ${u-3} Z" fill="#E87C8A" stroke="${h}" stroke-width="2.5" />`;break;case 7:Y=`
95
+ <g stroke="${h}" stroke-width="3.5" stroke-linecap="round">
96
+ <line x1="${m-5}" y1="${u-5}" x2="${m+5}" y2="${u+5}" />
97
+ <line x1="${m-5}" y1="${u+5}" x2="${m+5}" y2="${u-5}" />
98
+ </g>
99
+ `;break;case 8:Y=`
100
+ <g>
101
+ <line x1="12" y1="${u-2}" x2="${m-14}" y2="${u-2}" stroke="#ffffff" stroke-width="2" />
102
+ <line x1="12" y1="${u+4}" x2="${m-14}" y2="${u+4}" stroke="#ffffff" stroke-width="2" />
103
+ <line x1="88" y1="${u-2}" x2="${m+14}" y2="${u-2}" stroke="#ffffff" stroke-width="2" />
104
+ <line x1="88" y1="${u+4}" x2="${m+14}" y2="${u+4}" stroke="#ffffff" stroke-width="2" />
105
+ <rect x="${m-15}" y="${u-7}" width="30" height="16" rx="3" fill="#ffffff" stroke="${h}" stroke-width="2.2" />
106
+ </g>
107
+ `;break;case 9:Y=`<path d="M ${m-6} ${u} Q ${m-3} ${u-3} ${m} ${u} Q ${m+3} ${u-3} ${m+6} ${u}" fill="none" stroke="${h}" stroke-width="2.8" stroke-linecap="round" />`;break;case 10:Y=`<circle cx="${m}" cy="${u}" r="2.5" fill="${h}" />`;break;case 11:Y=`<line x1="${m-6}" y1="${u+3}" x2="${m+6}" y2="${u-3}" stroke="${h}" stroke-width="3" stroke-linecap="round" />`;break;case 12:Y=`<path d="M ${m-S} ${u+4} Q ${m} ${u-6} ${m+S} ${u+4}" fill="none" stroke="${h}" stroke-width="3.2" stroke-linecap="round" />`;break;case 15:Y=`
108
+ <path d="M ${m-S} ${u} Q ${m} ${u+6} ${m+S} ${u}" fill="none" stroke="${h}" stroke-width="${g}" stroke-linecap="round" />
109
+ <path d="M ${m-3} ${u+2} Q ${m} ${u+10} ${m+3} ${u+2} Z" fill="#E3536C" />
110
+ `;break;case 16:Y=`<path d="M ${m-S} ${u} Q ${m+S*.3} ${u} ${m+S} ${u-5}" fill="none" stroke="${h}" stroke-width="${g}" stroke-linecap="round" />`;break;case 17:Y=`<path d="M ${m-3.5} ${u-2} L ${m+3.5} ${u-2} L ${m} ${u+4} Z" fill="#E3536C" />`;break;case 18:Y=`<path d="M ${m-3} ${u-4} Q ${m+3} ${u-4} ${m-1} ${u} Q ${m+3} ${u+4} ${m-3} ${u+4}" fill="none" stroke="${h}" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" />`;break;case 19:Y=`<path d="M ${m-6} ${u-4} L ${m+6} ${u-4} L ${m+4} ${u+5} L ${m-4} ${u+5} Z" fill="#B3554A" stroke="${h}" stroke-width="2" />`;break;case 20:Y=`<ellipse cx="${m}" cy="${u}" rx="3" ry="1.4" fill="none" stroke="${h}" stroke-width="2.2" />`;break;case 21:{const r=S;let l="";for(let C=1;C<4;C++){const T=m-r+2*r/4*C;l+=`<line x1="${T.toFixed(2)}" y1="${u-4}" x2="${T.toFixed(2)}" y2="${u+4}" stroke="${h}" stroke-width="1.3" />`}Y=`<rect x="${(m-r).toFixed(2)}" y="${u-4}" width="${(r*2).toFixed(2)}" height="8" rx="2" fill="#ffffff" stroke="${h}" stroke-width="2.2" />${l}`;break}case 22:Y=`
111
+ <path d="M ${m-S} ${u} Q ${m} ${u+5} ${m+S} ${u}" fill="none" stroke="${h}" stroke-width="${g}" stroke-linecap="round" />
112
+ <path d="M ${m+S-3} ${u+2} Q ${m+S+3} ${u+6} ${m+S-1} ${u+9} Q ${m+S-5} ${u+6} ${m+S-3} ${u+2} Z" fill="#E3536C" />
113
+ `;break;case 23:Y=`
114
+ <path d="M ${m-S*1.1} ${u-3} Q ${m} ${u+10} ${m+S*1.1} ${u-3} Z" fill="#8a2f36" />
115
+ <ellipse cx="${m}" cy="${u+4}" rx="${S*.6}" ry="4" fill="#E3536C" />
116
+ `;break;case 24:Y=`
117
+ <path d="M ${m-S} ${u} Q ${m} ${u+7} ${m+S} ${u-2}" fill="none" stroke="${h}" stroke-width="${g}" stroke-linecap="round" />
118
+ <ellipse cx="${m+S*.3}" cy="${u+3}" rx="2" ry="1.2" fill="#E3536C" opacity="0.7" />
119
+ `;break;case 0:default:if(e.mouthCurve===0)Y=`<line x1="${m-S}" y1="${u}" x2="${m+S}" y2="${u}" stroke="${h}" stroke-width="${g}" stroke-linecap="round" />`;else{const r=u+e.mouthCurve*14;Y=`<path d="M ${m-S} ${u} Q ${m} ${r.toFixed(2)} ${m+S} ${u}" fill="none" stroke="${h}" stroke-width="${g}" stroke-linecap="round" />`}break}const ye=Math.max(0,Math.min(1,e.cheek));let _="";e.blushStripes?_=`
120
+ <g stroke="#E3536C" stroke-width="2" opacity="0.75" stroke-linecap="round">
121
+ <line x1="20" y1="52" x2="24" y2="58" />
122
+ <line x1="24" y1="52" x2="28" y2="58" />
123
+ <line x1="28" y1="52" x2="32" y2="58" />
124
+ <line x1="68" y1="52" x2="72" y2="58" />
125
+ <line x1="72" y1="52" x2="76" y2="58" />
126
+ <line x1="76" y1="52" x2="80" y2="58" />
127
+ </g>
128
+ `:ye>.01&&(_=`
129
+ <ellipse cx="${27+z*.4}" cy="${56+j*.4}" rx="6" ry="4" fill="${$}" opacity="${ye.toFixed(2)}" />
130
+ <ellipse cx="${73+z*.4}" cy="${56+j*.4}" rx="6" ry="4" fill="${$}" opacity="${ye.toFixed(2)}" />
131
+ `);const ce=[`translate(${(e.shiftX??0).toFixed(2)}, ${e.bob.toFixed(2)})`,k?"translate(100, 0) scale(-1, 1)":"",x?"translate(50, 50) scale(1.1) translate(-50, -50)":""].filter(Boolean).join(" ");return`
132
+ <svg width="${i}" height="${i}" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" style="overflow: visible;">
133
+ <defs>
134
+ <style>
135
+ @keyframes wissive-zzz-loop {
136
+ 0% { transform: translate(0px, 4px) scale(0.55); opacity: 0; }
137
+ 18% { transform: translate(3px, -2px) scale(0.85); opacity: 0.95; }
138
+ 55% { transform: translate(8px, -11px) scale(1.1); opacity: 1; }
139
+ 85% { transform: translate(14px, -19px) scale(0.85); opacity: 0.6; }
140
+ 100% { transform: translate(18px, -25px) scale(0.5); opacity: 0; }
141
+ }
142
+ @keyframes wissive-tear-drip {
143
+ 0% { transform: translateY(-2px) scaleY(0.7); opacity: 0.4; }
144
+ 50% { transform: translateY(5px) scaleY(1.18); opacity: 0.95; }
145
+ 85% { transform: translateY(12px) scaleY(0.8); opacity: 0.3; }
146
+ 100% { transform: translateY(15px) scaleY(0.3); opacity: 0; }
147
+ }
148
+ @keyframes wissive-sweat-slide {
149
+ 0% { transform: translateY(0px); opacity: 0.4; }
150
+ 50% { transform: translateY(5px); opacity: 0.95; }
151
+ 100% { transform: translateY(9px); opacity: 0.15; }
152
+ }
153
+ .wissive-zzz-1 { animation: wissive-zzz-loop 3s cubic-bezier(0.33, 0, 0.25, 1) infinite 0s; transform-box: fill-box; transform-origin: center; }
154
+ .wissive-zzz-2 { animation: wissive-zzz-loop 3s cubic-bezier(0.33, 0, 0.25, 1) infinite -1s; transform-box: fill-box; transform-origin: center; }
155
+ .wissive-zzz-3 { animation: wissive-zzz-loop 3s cubic-bezier(0.33, 0, 0.25, 1) infinite -2s; transform-box: fill-box; transform-origin: center; }
156
+ .wissive-anim-tear { animation: wissive-tear-drip 1.8s cubic-bezier(0.4, 0, 0.6, 1) infinite; transform-box: fill-box; transform-origin: top center; }
157
+ .wissive-anim-sweat { animation: wissive-sweat-slide 2.2s ease-in-out infinite; transform-box: fill-box; transform-origin: top center; }
158
+ </style>
159
+ </defs>
160
+ <g transform="${ce}">
161
+ <!-- Silueta del cuerpo (una o varias subformas: cuerpo + orejas, brazos…) -->
162
+ ${v}
163
+ <!-- Mejillas o Rayas -->
164
+ ${_}
165
+ <!-- Accesorios (ZZZ, Gotas) -->
166
+ ${Z}
167
+ <!-- Lágrimas -->
168
+ ${le}
169
+ <!-- Ojos -->
170
+ ${ue}
171
+ ${Me}
172
+ <!-- Cejas -->
173
+ ${me}
174
+ <!-- Boca -->
175
+ ${Y}
176
+ </g>
177
+ </svg>
178
+ `}function Vt(o,t,e,i,s={}){return xe(o,t,e,i,s)}function Fe(){return typeof window>"u"||typeof window.matchMedia!="function"?!0:window.matchMedia("(hover: hover)").matches}function at(){return typeof window>"u"?!1:typeof window.matchMedia=="function"&&window.matchMedia("(hover: none)").matches||"ontouchstart"in window||typeof navigator<"u"&&navigator.maxTouchPoints>0}const $e=new Set;let ge=!1;function st(o){const t=o.clientX,e=o.clientY,i=(typeof window<"u"?window.innerWidth:1e3)/2||1,s=(typeof window<"u"?window.innerHeight:1e3)/2||1;for(const c of $e){const a=c.element.getBoundingClientRect(),h=a.left+a.width/2,$=a.top+a.height/2;if(c.onGazeMove){const v=Math.max(-.6,Math.min(.6,(t-h)/i)),k=Math.max(-.6,Math.min(.6,(e-$)/s));c.onGazeMove(22*v,14*k)}if(c.isActive())continue;const d=Math.hypot(t-h,e-$)<=c.nearRadius;d!==c.isNear&&(c.isNear=d,c.onNearChange(d))}}function qt(o){$e.add(o),!ge&&typeof window<"u"&&(window.addEventListener("mousemove",st,{passive:!0}),ge=!0)}function Ut(o){$e.delete(o),$e.size===0&&ge&&typeof window<"u"&&(window.removeEventListener("mousemove",st),ge=!1)}function rt(o,t,e=120){if(typeof window>"u")return()=>{};let i=!1,s=!1,c=!1,a=!1;const h=()=>{i=!0,t.onHoverStart()},$=()=>{i=!1,s=!1,t.onHoverEnd()},g=J=>{J.button===0&&(s=!0,t.onClickStart())},d=()=>{s&&(s=!1,t.onClickEnd())},v=()=>{s=!0,t.onClickStart()},k=()=>{s&&(s=!1,t.onClickEnd())},x=()=>{s&&(s=!1,t.onClickEnd())},z=()=>{c=!0,t.onHoverStart()},j=()=>{c=!1,a&&(a=!1,s=!1,t.onClickEnd()),t.onHoverEnd()},L=J=>{(J.key==="Enter"||J.key===" ")&&(J.preventDefault(),a||(a=!0,s=!0,t.onClickStart()))},W=J=>{(J.key==="Enter"||J.key===" ")&&(J.preventDefault(),a&&(a=!1,s=!1,t.onClickEnd()))};o.addEventListener("mouseenter",h),o.addEventListener("mouseleave",$),o.addEventListener("mousedown",g),window.addEventListener("mouseup",d),o.addEventListener("focus",z),o.addEventListener("blur",j),o.addEventListener("keydown",L),o.addEventListener("keyup",W),o.addEventListener("touchstart",v,{passive:!0}),window.addEventListener("touchend",k,{passive:!0}),window.addEventListener("touchcancel",x,{passive:!0});const R={element:o,nearRadius:e,isNear:!1,isActive:()=>i||s||c,onNearChange:t.onNearChange,onGazeMove:t.onGazeMove};return(Fe()||t.onGazeMove)&&qt(R),()=>{o.removeEventListener("mouseenter",h),o.removeEventListener("mouseleave",$),o.removeEventListener("mousedown",g),window.removeEventListener("mouseup",d),o.removeEventListener("focus",z),o.removeEventListener("blur",j),o.removeEventListener("keydown",L),o.removeEventListener("keyup",W),o.removeEventListener("touchstart",v),window.removeEventListener("touchend",k),window.removeEventListener("touchcancel",x),Ut(R)}}let Ae;function ze(){return Ae||(Ae=import("cuelume").catch(()=>null)),Ae}class lt{constructor(){M(this,"enabled",!0);M(this,"volume",.6);ze().then(t=>{try{t==null||t.setVolume(this.volume)}catch{}})}setEnabled(t){this.enabled=t}isEnabled(){return this.enabled}setVolumeLevel(t){this.volume=Math.max(0,Math.min(1,t)),ze().then(e=>{try{e==null||e.setVolume(this.volume)}catch{}})}getVolumeLevel(){return this.volume}playCue(t,e={}){this.enabled&&ze().then(i=>{try{i==null||i.play(t,{volume:e.volume??this.volume})}catch{}})}playSound(t,e){if(!this.enabled)return;let i="tick";switch(t){case"happy":i=e==="click"?"sparkle":"chime";break;case"flutter":i=e==="click"?"pulse":"bloom";break;case"pleasure":i=e==="click"?"bloom":"droplet";break;case"peaceful":i=e==="click"?"arrival":"whisper";break;case"normal":i=e==="click"?"toggle":"tick";break;case"tired":case"sleepy":i=e==="click"?"loading":"whisper";break;case"sad":case"disappointed":i=e==="click"?"scan":"droplet";break;case"anxiety":case"stress":i=e==="click"?"pulse":"tick";break;case"anger":i=e==="click"?"press":"release";break;case"surprised":i=e==="click"?"success":"chime";break;case"numbness":i=e==="click"?"ready":"page";break;default:i=e==="click"?"sparkle":"tick";break}this.playCue(i)}}const q=new lt;function ct(o){q.setEnabled(o)}function ht(){return q.isEnabled()}function ut(o){q.setVolumeLevel(o)}function dt(){return q.getVolumeLevel()}class mt{constructor(t,e){M(this,"particles",[]);M(this,"canvas");M(this,"ctx");M(this,"animating",!1);M(this,"rafId",null);M(this,"size");M(this,"dpr");M(this,"tick",()=>{const t=this.canvas.width,e=this.canvas.height;this.ctx.clearRect(0,0,t,e);const i=.016;for(let s=this.particles.length-1;s>=0;s--){const c=this.particles[s];if(c.life-=i,c.life<=0){this.particles.splice(s,1);continue}c.vx*=.95,c.vy*=.95,c.swayFreq&&c.swayAmp&&(c.x+=Math.sin((c.maxLife-c.life)*c.swayFreq)*c.swayAmp),c.x+=c.vx,c.y+=c.vy,c.rotation+=c.rotSpeed,this.drawParticle(c)}this.particles.length>0?this.rafId=requestAnimationFrame(this.tick):(this.animating=!1,this.ctx.clearRect(0,0,t,e))});this.size=e,this.dpr=typeof window<"u"&&window.devicePixelRatio||1,this.canvas=document.createElement("canvas"),this.setupCanvas(),t.style.position="relative",t.style.overflow="visible",t.appendChild(this.canvas),this.ctx=this.canvas.getContext("2d")}setupCanvas(){const t=this.dpr,e=this.size*2.5;this.canvas.width=e*t,this.canvas.height=e*t,this.canvas.style.cssText=`
179
+ position: absolute;
180
+ top: -${this.size*.75}px;
181
+ left: -${this.size*.75}px;
182
+ width: ${e}px;
183
+ height: ${e}px;
184
+ pointer-events: none;
185
+ z-index: 10;
186
+ `}resize(t){this.size=t,this.dpr=typeof window<"u"&&window.devicePixelRatio||1,this.setupCanvas()}burst(t,e=8,i,s){const c=this.size*2.5,a=i??c/2,h=s??c/2;for(let $=0;$<e;$++){const g=Math.PI*2*$/e+(Math.random()-.5)*.7,d=2.5+Math.random()*3.5,v=this.createParticle(t,a,h,g,d);this.particles.push(v)}this.animating||(this.animating=!0,this.tick())}createParticle(t,e,i,s,c){const a=10+Math.random()*15,h=e+Math.cos(s)*a,$=i+Math.sin(s)*a,g=.6+Math.random()*.5,d={x:h,y:$,vx:Math.cos(s)*c,vy:Math.sin(s)*c-1.2,life:g,maxLife:g,size:(6+Math.random()*8)*(this.size/120),rotation:Math.random()*Math.PI*2,rotSpeed:(Math.random()-.5)*.2,shape:"circle",color:"#F2A9B8",opacity:1},v=Math.random()>.6,k=x=>x[Math.floor(Math.random()*x.length)];switch(t){case"happy":d.shape=v?"sparkle":"heart",d.color=k(["#F2A9B8","#E3536C","#FF8FAB","#FFD1DC","#FFF0F5"]),d.vy-=.6;break;case"pleasure":d.shape=v?"circle":"petal",d.color=k(["#F28FC2","#FFC2DE","#FFE3F0","#E5739F"]),d.vy+=.9,d.vx*=.6,d.rotSpeed*=2.5,d.swayFreq=5+Math.random()*3,d.swayAmp=.9+Math.random()*.5;break;case"flutter":d.shape=v?"sparkle":"star",d.color=k(["#F2CB4E","#FFD700","#FFA500","#FFF4CC"]),d.vy-=1,d.vx*=1.5,d.rotSpeed*=2;break;case"peaceful":d.shape=v?"circle":"ring",d.color=k(["#9AC9A0","#B5E8B5","#7FD17F","#E8F5E9"]),d.vy-=.8,d.swayFreq=8+Math.random()*4,d.swayAmp=.4+Math.random()*.4;break;case"normal":d.shape=v?"circle":"dot",d.color=k(["#C9DCD3","#A8C7BB","#E4F0EA","#8FB3A4"]),d.size*=.65,d.vx*=.5,d.vy*=.5;break;case"tired":d.shape=v?"ring":"zzz",d.color=k(["#D6DBCF","#BFC7B8","#EDF0E8","#A9B3A0"]),d.vy-=1.2,d.vx*=.25,d.swayFreq=6+Math.random()*4,d.swayAmp=.5;break;case"sleepy":d.shape=v?"zzz":"bubble",d.color=k(["#AFCBE0","#D3E8F5","#ffffff","#8FB6D1"]),d.size*=1.35,d.vy-=1.5,d.vx*=.2,d.swayFreq=3+Math.random()*2,d.swayAmp=.7;break;case"sad":d.shape=v?"circle":"drop",d.color=k(["#7FA6D9","#A0C4E8","#6B9ACF","#E1F5FE"]),d.vy+=1.8,d.vx*=.3;break;case"disappointed":d.shape=v?"drop":"shard",d.color=k(["#EBD98A","#C9B86B","#F5E9B8","#A89550"]),d.vy+=1.2,d.vx*=.8,d.rotSpeed*=4;break;case"anxiety":d.shape=v?"circle":"zigzag",d.color=k(["#A99BD9","#C4B5F0","#8B7BC4","#D1C4E9"]),d.size*=.8,d.vx*=1.4;break;case"stress":d.shape=v?"zigzag":"spiral",d.color=k(["#C97F76","#E09A91","#A85F57","#F0BDB6"]),d.size*=.9,d.rotSpeed*=6,d.swayFreq=12+Math.random()*6,d.swayAmp=.6;break;case"anger":d.shape=v?"diamond":"ember",d.color=k(["#D9566A","#FF4444","#FF6B35","#FFA033"]),d.vy-=1.4,d.vx*=.7,d.size*=.9;break;case"surprised":d.shape=v?"dot":"burst",d.color=k(["#F0B98A","#FFCFA3","#FF9F1C","#FFE8D1"]),d.size*=1.15,d.vx*=1.8,d.vy*=1.8;break;case"numbness":d.shape=v?"dot":"glitch",d.color=k(["#D9C6E0","#C0A8CC","#EDE2F0","#A98FB8"]),d.vx*=.25,d.vy*=.25,d.life*=.6,d.rotSpeed=0;break;default:d.shape=v?"sparkle":"circle",d.color=k(["#F2A9B8","#F2CB4E","#9AC9A0"]);break}return d}drawParticle(t){const e=this.ctx,i=this.dpr,s=1-t.life/t.maxLife;let c=1;s<.18?c=s/.18:s>.65&&(c=(1-s)/.35),c=Math.max(0,Math.min(1.2,c));const a=t.size*c;if(a<=.1)return;const h=Math.max(0,Math.min(1,t.life/t.maxLife*1.2));switch(e.save(),e.translate(t.x*i,t.y*i),e.rotate(t.rotation),e.globalAlpha=h,t.shape){case"heart":e.fillStyle=t.color,e.beginPath(),e.moveTo(0,a*.35*i),e.bezierCurveTo(-a*.7*i,-a*.1*i,-a*.8*i,-a*.8*i,0,-a*.45*i),e.bezierCurveTo(a*.8*i,-a*.8*i,a*.7*i,-a*.1*i,0,a*.35*i),e.closePath(),e.fill();break;case"star":{e.fillStyle=t.color,e.beginPath();const $=5,g=a*i,d=a*.45*i;for(let v=0;v<$*2;v++){const k=v%2===0?g:d,x=v*Math.PI/$-Math.PI/2,z=Math.cos(x)*k,j=Math.sin(x)*k;v===0?e.moveTo(z,j):e.lineTo(z,j)}e.closePath(),e.fill();break}case"sparkle":{e.fillStyle=t.color,e.beginPath();const $=a*1.1*i;e.moveTo(0,-$),e.quadraticCurveTo(0,0,$,0),e.quadraticCurveTo(0,0,0,$),e.quadraticCurveTo(0,0,-$,0),e.quadraticCurveTo(0,0,0,-$),e.closePath(),e.fill();break}case"drop":e.fillStyle=t.color,e.beginPath(),e.moveTo(0,-a*.8*i),e.bezierCurveTo(a*.7*i,-a*.2*i,a*.6*i,a*.7*i,0,a*.7*i),e.bezierCurveTo(-a*.6*i,a*.7*i,-a*.7*i,-a*.2*i,0,-a*.8*i),e.closePath(),e.fill();break;case"diamond":e.fillStyle=t.color,e.beginPath(),e.moveTo(0,-a*i),e.lineTo(a*.65*i,0),e.lineTo(0,a*i),e.lineTo(-a*.65*i,0),e.closePath(),e.fill();break;case"zigzag":e.strokeStyle=t.color,e.lineWidth=Math.max(2,a*.25)*i,e.lineCap="round",e.lineJoin="round",e.beginPath(),e.moveTo(-a*.6*i,-a*.5*i),e.lineTo(-a*.1*i,-a*.1*i),e.lineTo(-a*.3*i,a*.1*i),e.lineTo(a*.6*i,a*.5*i),e.stroke();break;case"ring":e.strokeStyle=t.color,e.lineWidth=Math.max(1.5,a*.25)*i,e.beginPath(),e.arc(0,0,a*.55*i,0,Math.PI*2),e.stroke();break;case"zzz":e.strokeStyle=t.color,e.lineWidth=Math.max(2,a*.25)*i,e.lineCap="round",e.lineJoin="round",e.beginPath(),e.moveTo(-a*.4*i,-a*.5*i),e.lineTo(a*.4*i,-a*.5*i),e.lineTo(-a*.4*i,a*.5*i),e.lineTo(a*.4*i,a*.5*i),e.stroke();break;case"petal":e.fillStyle=t.color,e.beginPath(),e.moveTo(0,-a*.9*i),e.quadraticCurveTo(a*.75*i,-a*.1*i,0,a*.9*i),e.quadraticCurveTo(-a*.75*i,-a*.1*i,0,-a*.9*i),e.closePath(),e.fill();break;case"spiral":{e.strokeStyle=t.color,e.lineWidth=Math.max(1.5,a*.2)*i,e.lineCap="round",e.beginPath();const $=a*.85*i;it().forEach(([g,d],v)=>{const k=g*$,x=d*$;v===0?e.moveTo(k,x):e.lineTo(k,x)}),e.stroke();break}case"bubble":e.strokeStyle=t.color,e.lineWidth=Math.max(1,a*.14)*i,e.beginPath(),e.arc(0,0,a*.6*i,0,Math.PI*2),e.stroke(),e.fillStyle=t.color,e.globalAlpha*=.7,e.beginPath(),e.arc(-a*.22*i,-a*.24*i,a*.13*i,0,Math.PI*2),e.fill();break;case"ember":{e.fillStyle=t.color,e.beginPath(),e.moveTo(0,-a*.95*i),e.bezierCurveTo(a*.5*i,-a*.2*i,a*.62*i,a*.55*i,0,a*.75*i),e.bezierCurveTo(-a*.62*i,a*.55*i,-a*.5*i,-a*.2*i,0,-a*.95*i),e.closePath(),e.fill();break}case"shard":e.fillStyle=t.color,e.beginPath(),e.moveTo(0,-a*.9*i),e.lineTo(a*.55*i,-a*.15*i),e.lineTo(a*.2*i,a*.85*i),e.lineTo(-a*.45*i,a*.3*i),e.closePath(),e.fill();break;case"burst":{e.strokeStyle=t.color,e.lineWidth=Math.max(1.5,a*.22)*i,e.lineCap="round",e.beginPath();for(let $=0;$<4;$++){const g=$*Math.PI/2,d=a*.3*i,v=a*i;e.moveTo(Math.cos(g)*d,Math.sin(g)*d),e.lineTo(Math.cos(g)*v,Math.sin(g)*v)}e.stroke();break}case"dot":e.fillStyle=t.color,e.beginPath(),e.arc(0,0,a*.28*i,0,Math.PI*2),e.fill();break;case"glitch":e.fillStyle=t.color,e.fillRect(-a*.6*i,-a*.28*i,a*1.2*i,a*.22*i),e.globalAlpha*=.6,e.fillRect(-a*.25*i,a*.06*i,a*.9*i,a*.16*i);break;case"circle":default:e.fillStyle=t.color,e.beginPath(),e.arc(0,0,a*.5*i,0,Math.PI*2),e.fill();break}e.restore()}destroy(){this.rafId!==null&&cancelAnimationFrame(this.rafId),this.particles=[],this.canvas.remove()}}class yt{constructor(t,e,i){M(this,"posX",0);M(this,"posY",0);M(this,"velX",0);M(this,"velY",0);M(this,"dragging",!1);M(this,"startPointerX",0);M(this,"startPointerY",0);M(this,"lastPointerX",0);M(this,"lastPointerY",0);M(this,"lastPointerTime",0);M(this,"velocitySamples",[]);M(this,"MAX_SAMPLES",6);M(this,"springK",.08);M(this,"springD",.82);M(this,"tossDecay",.96);M(this,"maxStretch",.25);M(this,"animating",!1);M(this,"rafId",null);M(this,"onUpdate");M(this,"onDragStart");M(this,"onDragEnd");M(this,"el");M(this,"handlePointerDown",t=>{t.preventDefault(),this.startDrag(t.clientX,t.clientY)});M(this,"handlePointerMove",t=>{this.dragging&&this.moveDrag(t.clientX,t.clientY)});M(this,"handlePointerUp",()=>{this.dragging&&this.endDrag()});M(this,"handleTouchDown",t=>{t.preventDefault();const e=t.touches[0];this.startDrag(e.clientX,e.clientY)});M(this,"handleTouchMove",t=>{if(!this.dragging)return;t.preventDefault();const e=t.touches[0];this.moveDrag(e.clientX,e.clientY)});M(this,"handleTouchUp",()=>{this.dragging&&this.endDrag()});M(this,"physicsTick",()=>{if(this.dragging){this.emitState(),this.rafId=requestAnimationFrame(this.physicsTick);return}const t=-this.springK*this.posX,e=-this.springK*this.posY;this.velX=(this.velX+t)*this.springD,this.velY=(this.velY+e)*this.springD,this.velX*=this.tossDecay,this.velY*=this.tossDecay,this.posX+=this.velX,this.posY+=this.velY,this.emitState();const i=Math.hypot(this.posX,this.posY),s=Math.hypot(this.velX,this.velY);if(i<.3&&s<.1){this.posX=0,this.posY=0,this.velX=0,this.velY=0,this.animating=!1,this.emitState();return}this.rafId=requestAnimationFrame(this.physicsTick)});this.el=t,this.onUpdate=e,this.onDragStart=i==null?void 0:i.onDragStart,this.onDragEnd=i==null?void 0:i.onDragEnd,this.el.addEventListener("mousedown",this.handlePointerDown),window.addEventListener("mousemove",this.handlePointerMove),window.addEventListener("mouseup",this.handlePointerUp),this.el.addEventListener("touchstart",this.handleTouchDown,{passive:!1}),window.addEventListener("touchmove",this.handleTouchMove,{passive:!1}),window.addEventListener("touchend",this.handleTouchUp)}startDrag(t,e){var i;this.dragging=!0,this.startPointerX=t-this.posX,this.startPointerY=e-this.posY,this.lastPointerX=t,this.lastPointerY=e,this.lastPointerTime=performance.now(),this.velocitySamples=[],this.velX=0,this.velY=0,this.el.style.cursor="grabbing",(i=this.onDragStart)==null||i.call(this),this.startPhysicsLoop()}moveDrag(t,e){const i=performance.now(),s=Math.max(1,i-this.lastPointerTime);this.velocitySamples.push({x:(t-this.lastPointerX)/s,y:(e-this.lastPointerY)/s}),this.velocitySamples.length>this.MAX_SAMPLES&&this.velocitySamples.shift(),this.posX=t-this.startPointerX,this.posY=e-this.startPointerY,this.lastPointerX=t,this.lastPointerY=e,this.lastPointerTime=i}endDrag(){var t;if(this.dragging=!1,this.el.style.cursor="pointer",this.velocitySamples.length>0){let e=0,i=0;for(const h of this.velocitySamples)e+=h.x,i+=h.y;const s=this.velocitySamples.length;this.velX=e/s*16,this.velY=i/s*16;const c=25,a=Math.hypot(this.velX,this.velY);a>c&&(this.velX=this.velX/a*c,this.velY=this.velY/a*c)}(t=this.onDragEnd)==null||t.call(this),this.startPhysicsLoop()}startPhysicsLoop(){this.animating||(this.animating=!0,this.rafId=requestAnimationFrame(this.physicsTick))}emitState(){let t=1,e=1,i=0;if(this.dragging){const s=this.posX,c=this.posY,a=Math.hypot(s,c),h=Math.min(this.maxStretch,a*.002),$=Math.atan2(c,s);t=1+h*Math.abs(Math.cos($)),e=1-h*.5*Math.abs(Math.cos($)),Math.abs(Math.sin($))>Math.abs(Math.cos($))&&(e=1+h*Math.abs(Math.sin($)),t=1-h*.5*Math.abs(Math.sin($))),i=Math.atan2(c,s)*.06}else{const s=Math.hypot(this.velX,this.velY),c=Math.min(this.maxStretch,s*.012),a=Math.atan2(this.velY,this.velX);t=1+c*Math.abs(Math.cos(a)),e=1-c*.6*Math.abs(Math.cos(a)),Math.abs(Math.sin(a))>Math.abs(Math.cos(a))&&(e=1+c*Math.abs(Math.sin(a)),t=1-c*.6*Math.abs(Math.sin(a))),i=Math.atan2(this.velY,this.velX)*.04}this.onUpdate({offsetX:this.posX,offsetY:this.posY,scaleX:t,scaleY:e,rotation:i,isDragging:this.dragging})}destroy(){this.rafId!==null&&cancelAnimationFrame(this.rafId),this.el.removeEventListener("mousedown",this.handlePointerDown),window.removeEventListener("mousemove",this.handlePointerMove),window.removeEventListener("mouseup",this.handlePointerUp),this.el.removeEventListener("touchstart",this.handleTouchDown),window.removeEventListener("touchmove",this.handleTouchMove),window.removeEventListener("touchend",this.handleTouchUp)}}function ft(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function pt(o){if(typeof window>"u"||!window.matchMedia)return()=>{};const t=window.matchMedia("(prefers-reduced-motion: reduce)"),e=i=>o(i.matches);return t.addEventListener?(t.addEventListener("change",e),()=>t.removeEventListener("change",e)):(t.addListener(e),()=>t.removeListener(e))}function Ht(o){let t=o.trim().replace("#","");if(t.length===3&&(t=t.split("").map(e=>e+e).join("")),t.length===6){const e=parseInt(t,16);return[(e>>16&255)/255,(e>>8&255)/255,(e&255)/255]}return[0,0,0]}function Pe(o){const[t,e,i]=Ht(o),s=$=>$<=.03928?$/12.92:Math.pow(($+.055)/1.055,2.4),c=s(t),a=s(e),h=s(i);return .2126*c+.7152*a+.0722*h}function bt(o,t){const e=Pe(o),i=Pe(t),s=Math.max(e,i),c=Math.min(e,i);return(s+.05)/(c+.05)}function Kt(o,t,e=3){const i=bt(o,t);return{ratio:Number(i.toFixed(2)),passes:i>=e}}const eo={happy:{baseColor:"#F7C6CE",strokeColor:"#1c1917"},excited:{baseColor:"#FFD54F",strokeColor:"#1c1917"},celebrate:{baseColor:"#FF80AB",strokeColor:"#1c1917"},laughing:{baseColor:"#FFE082",strokeColor:"#1c1917"},playful:{baseColor:"#F48FB1",strokeColor:"#1c1917"},proud:{baseColor:"#CE93D8",strokeColor:"#1c1917"},idle:{baseColor:"#F7C6CE",strokeColor:"#1c1917"},sleeping:{baseColor:"#9FA8DA",strokeColor:"#1A237E"},drowsy:{baseColor:"#C5CAE9",strokeColor:"#283593"},"powering-down":{baseColor:"#78909C",strokeColor:"#263238"},bored:{baseColor:"#B0BEC5",strokeColor:"#37474F"},angry:{baseColor:"#EF5350",strokeColor:"#B71C1C"},alerting:{baseColor:"#FF7043",strokeColor:"#BF360C"},notifying:{baseColor:"#FFA726",strokeColor:"#E65100"},suspicious:{baseColor:"#D4E157",strokeColor:"#33691E"},thinking:{baseColor:"#4DD0E1",strokeColor:"#006064"},searching:{baseColor:"#26C6DA",strokeColor:"#004D40"},loading:{baseColor:"#4FC3F7",strokeColor:"#01579B"},listening:{baseColor:"#81C784",strokeColor:"#1B5E20"},dictating:{baseColor:"#AED581",strokeColor:"#33691E"},writing:{baseColor:"#FFF176",strokeColor:"#F57F17"},orbit:{baseColor:"#80DEEA",strokeColor:"#00838F"},radar:{baseColor:"#4DB6AC",strokeColor:"#004D40"},progress:{baseColor:"#64B5F6",strokeColor:"#0D47A1"},sad:{baseColor:"#90CAF9",strokeColor:"#1565C0"},scared:{baseColor:"#B39DDB",strokeColor:"#4527A0"},confused:{baseColor:"#FFE082",strokeColor:"#E65100"},curious:{baseColor:"#A5D6A7",strokeColor:"#1B5E20"},shy:{baseColor:"#F48FB1",strokeColor:"#880E4F"},waking:{baseColor:"#FFF59D",strokeColor:"#F57F17"},spawning:{baseColor:"#E1BEE7",strokeColor:"#4A148C"}};function $t(o){let t=o.trim().replace("#","");t.length===3&&(t=t.split("").map(i=>i+i).join(""));const e=parseInt(t,16);return isNaN(e)?{r:247,g:198,b:206}:{r:e>>16&255,g:e>>8&255,b:e&255}}function gt(o,t,e){const i=$t(o),s=$t(t),c=Math.max(0,Math.min(1,e)),a=Math.round(i.r+(s.r-i.r)*c),h=Math.round(i.g+(s.g-i.g)*c),$=Math.round(i.b+(s.b-i.b)*c),g=d=>d.toString(16).padStart(2,"0");return`#${g(a)}${g(h)}${g($)}`}function to(o,t){return{baseColor:t,strokeColor:"#1c1917"}}function Q(o,t,e){const i=o/t%1;return i<e?Math.sin(i/e*Math.PI):0}const Ie={bouncy(o,t,e,i){const s=Math.abs(Math.sin(t*e));o.bob+=s*i-i*.5,o.cheek+=s*.15,o.eyeScale+=s*.04,o.turnAngle+=Math.sin(t*e*.5)*.05},flutter(o,t,e,i){const s=Math.sin(t*e);o.shiftX+=s*i,o.bob+=Math.cos(t*e*.7)*i*.5,o.turnAngle+=s*.06,o.eyeScale-=Math.abs(s)*.03},serene(o,t,e,i){const s=Math.sin(t*e);o.bob+=s*i,o.eyeScale+=s*.05,o.cheek+=(s+1)*.06,o.turnAngle+=Math.sin(t*e*.4-.6)*.045},float(o,t,e,i){o.bob+=Math.sin(t*e)*i,o.shiftX+=Math.sin(t*e*.5)*i*1.1,o.turnAngle+=Math.sin(t*e*.5-.9)*.07},calm(o,t,e,i){const s=Math.sin(t*e);o.bob+=s*i,o.eyeScale+=s*.025,o.gazeX+=Math.sin(t*e*.23)*2.5,o.turnAngle+=Math.sin(t*e*.31)*.03},droop(o,t,e,i){const s=t*e*.18%1,c=s<.82?s/.82:1-(s-.82)/.18;o.bob+=c*i*2.2,o.eyeOpen=Math.max(0,o.eyeOpen-c*.45),o.browY+=c*2,o.turnAngle+=c*.12},sob(o,t,e,i){const s=Math.sin(t*e)+Math.sin(t*e*2.7)*.4;o.bob+=s*i,o.browY+=1+Math.sin(t*e)*.8,o.gazeY+=1.5,o.mouthCurve-=.05+Math.abs(Math.sin(t*e))*.05},jitter(o,t,e,i){o.shiftX+=(Math.random()-.5)*i,o.bob+=(Math.random()-.5)*i,o.gazeX+=Math.sin(t*e*1.7)*4+(Math.random()-.5)*2,o.turnAngle+=(Math.random()-.5)*.03},fiery(o,t,e,i){const s=Math.sin(t*e*3.1)*.35,c=Math.pow(Math.max(0,Math.sin(t*e*.35)),6);o.bob+=s*i-c*i*1.8,o.shiftX+=s*i*.5,o.eyeScale+=c*.18,o.browY-=c*2.5,o.browTilt-=c*.25},wilt(o,t,e,i){const s=(Math.sin(t*e*.6)+1)/2;o.bob+=s*i*1.8,o.mouthCurve-=s*.12,o.browY+=s*1.6,o.eyeScale-=s*.05},dizzy(o,t,e,i){o.shiftX+=Math.sin(t*e)*i,o.bob+=Math.cos(t*e)*i*.7,o.turnAngle+=Math.sin(t*e)*.14,o.gazeX+=Math.cos(t*e)*3},snooze(o,t,e,i){const s=Math.sin(t*e);o.bob+=s*i*1.6,o.eyeScale+=s*.06,o.eyeOpen*=.35,o.cheek+=(s+1)*.05,o.turnAngle+=Math.sin(t*e-.8)*.05},pop(o,t,e,i){const s=Q(t,1/(e*.1),.18),c=Math.sin(t*e*1.6)*.18;o.bob+=c*i-s*i*2.2,o.eyeScale+=c*.02+s*.22,o.browY-=s*3,o.mouthOpen+=s*.25},drift(o,t,e,i){o.bob+=Math.sin(t*e)*i*.6;const s=Q(t,3.7,.04);o.shiftX+=s*(Math.random()-.5)*5,o.gazeX+=s*(Math.random()-.5)*6,o.eyeScale-=s*.08}};function Mt(o,t,e,i,s,c=1){(Ie[o]||Ie.calm)(t,e,i,s*c)}const vt={sleeping(o,t){const e=Math.sin(t*.9);o.eyeOpen=.05,o.bob+=e*2.4,o.eyeScale+=e*.04,o.bob+=Q(t,9,.15)*1.8},waking(o,t){const e=Q(t,4,.4);o.bob+=Math.sin(t*2.2)*1.6-e*3,o.eyeOpen=Math.min(1,.35+e*.65),o.eyeScale+=e*.1,o.turnAngle+=Math.sin(t*1.1)*.06},listening(o,t){o.turnAngle+=.1+Math.sin(t*1.4)*.03,o.bob+=Q(t,2.6,.25)*2.2,o.eyeScale+=.06,o.gazeY-=.8},thinking(o,t){o.gazeX+=-6+Math.sin(t*.9)*3,o.gazeY+=-4+Math.cos(t*.7)*2,o.browY-=1+Math.sin(t*1.3)*.8,o.turnAngle+=Math.sin(t*.6)*.05},searching(o,t){o.gazeX+=Math.sin(t*5.5)*11,o.gazeY+=Math.sin(t*2.3)*2.5,o.turnAngle+=Math.sin(t*5.5)*.05,o.eyeScale+=.05},working(o,t){o.bob+=Math.sin(t*3.4)*1.4,o.turnAngle+=Math.sin(t*3.4-.5)*.035,o.gazeY+=1.5,o.mouthWidth*=.9},excited(o,t){o.bob+=-Math.abs(Math.sin(t*7))*5.5,o.eyeScale+=.1+Math.abs(Math.sin(t*7))*.06,o.cheek+=.2,o.turnAngle+=Math.sin(t*3.5)*.07},surprised(o,t){o.bob+=Math.sin(t*9)*.9,o.eyeScale+=.12,o.browY-=1.5,o.shiftX+=Math.sin(t*13)*.4},suspicious(o,t){o.gazeX+=-7+Math.sin(t*.5)*2.5,o.eyeScale-=.08,o.browTilt-=.12,o.bob+=Math.sin(t*.8)*.5},angry(o,t){o.shiftX+=(Math.random()-.5)*3,o.bob+=(Math.random()-.5)*2;const e=Q(t,2.2,.3);o.browY-=e*2,o.browTilt-=e*.2},drowsy(o,t){const e=(Math.sin(t*.8)+1)/2;o.bob+=e*3,o.eyeOpen=Math.max(.08,.5-e*.4),o.eyeOpen+=Q(t,6.5,.08)*.5,o.browY+=e*2},happy(o,t){o.bob+=-Math.abs(Math.sin(t*3.2))*2.4,o.cheek+=.15+Math.abs(Math.sin(t*3.2))*.1,o.turnAngle+=Math.sin(t*1.6)*.05},curious(o,t){o.turnAngle+=Math.sin(t*1.2)*.13,o.gazeX+=Math.sin(t*2.1)*6,o.eyeScale+=.08,o.bob+=Math.sin(t*2.4)*1},confused(o,t){o.turnAngle+=Math.sin(t*.9)*.16,o.shiftX+=Math.sin(t*.9)*1.8,o.browTilt+=.15+Math.sin(t*1.7)*.1,o.gazeX+=Math.sin(t*.6)*4},bored(o,t){o.shiftX+=Math.sin(t*.5)*2.2,o.gazeX+=6+Math.sin(t*.3)*3,o.eyeOpen=Math.min(o.eyeOpen,.5),o.bob+=Q(t,7,.2)*2},proud(o,t){o.bob+=-2+Math.sin(t*1.1)*.8,o.turnAngle+=Math.sin(t*.7)*.04,o.gazeY-=2,o.cheek+=.1},shy(o,t){o.bob+=1.5+Math.sin(t*1.3)*.7,o.gazeX+=-4+Math.sin(t*.9)*1.5,o.gazeY+=4,o.cheek+=.25,o.eyeScale-=.06},sad(o,t){o.bob+=2+Math.sin(t*.9)*1.4,o.gazeY+=3,o.browY+=1.5,o.turnAngle+=Math.sin(t*.5)*.03},laughing(o,t){o.bob+=-Math.abs(Math.sin(t*9))*4,o.mouthOpen+=.2+Math.abs(Math.sin(t*9))*.3,o.cheek+=.3,o.turnAngle+=Math.sin(t*4.5)*.05},scared(o,t){o.shiftX+=Math.sin(t*22)*1.2,o.bob+=1.2+Math.sin(t*18)*.8,o.eyeScale+=.14,o.browTilt+=.2},playful(o,t){o.bob+=(Math.sin(t*4.3)+Math.sin(t*6.7)*.5)*1.8,o.turnAngle+=Math.sin(t*3.1)*.11,o.shiftX+=Math.sin(t*2.2)*1.5,o.cheek+=.18},celebrate(o,t){o.bob+=-Math.abs(Math.sin(t*5))*7,o.turnAngle+=Math.sin(t*2.5)*.18,o.cheek+=.35,o.eyeScale+=.1},orbit(o,t){o.gazeX+=Math.cos(t*2.2)*10,o.gazeY+=Math.sin(t*2.2)*6,o.turnAngle+=Math.cos(t*2.2)*.06},radar(o,t){const e=Math.sin(t*1.6);o.gazeX+=Math.sign(e)*Math.pow(Math.abs(e),.45)*11,o.turnAngle+=e*.05,o.eyeScale+=.04},progress(o,t){const e=Math.pow(Math.max(0,Math.sin(t*3)),3);o.bob+=-e*3,o.eyeScale+=e*.09},spawning(o,t){const e=Math.exp(-(t*1.5%6)*.7);o.bob+=-Math.sin(t*6)*4*e,o.eyeScale+=e*.15},humming(o,t){o.bob+=Math.sin(t*2.6)*1.6,o.mouthOpen+=.1+Math.abs(Math.sin(t*2.6))*.08,o.turnAngle+=Math.sin(t*1.3)*.05,o.cheek+=.12},loading(o,t){o.eyeScale+=Math.sin(t*1.8)*.08,o.bob+=Math.sin(t*1.8)*1.2,o.gazeY+=Math.sin(t*.9)*1.5},dictating(o,t){o.mouthOpen=.25+Math.abs(Math.sin(t*11))*.4,o.bob+=Math.sin(t*2)*.6,o.browY-=.5},writing(o,t){o.gazeY+=4,o.gazeX+=Math.sin(t*4.5)*5,o.bob+=Math.abs(Math.sin(t*4.5))*1.2},sending(o,t){const e=Q(t,1.6,.3);o.shiftX+=e*4,o.bob+=-e*2,o.turnAngle+=e*.08},receiving(o,t){const e=Q(t,1.6,.3);o.shiftX+=-e*4,o.bob+=e*1.5,o.eyeScale+=e*.12},uploading(o,t){const e=1-t*.7%1;o.bob+=e*4-2,o.gazeY-=2,o.eyeScale+=(1-e)*.05},notifying(o,t){const e=Q(t,2.4,.12)+Q(t-.22,2.4,.12);o.bob+=-e*4,o.eyeScale+=e*.12,o.turnAngle+=e*.06},alerting(o,t){o.shiftX+=Math.sin(t*16)*2.5,o.bob+=Math.sin(t*12)*1.5,o.eyeScale+=.16,o.browY-=2},dragging(o,t){o.turnAngle+=Math.sin(t*2.4-1.2)*.14,o.shiftX+=Math.sin(t*2.4)*2,o.bob+=Math.cos(t*2.4-1.2)*1.5},bouncing(o,t){o.bob+=-Math.abs(Math.sin(t*5.5))*8},"powering-down"(o,t){const e=Math.min(1,t%8/8);o.bob+=e*4,o.eyeOpen=Math.max(.03,.4-e*.37),o.eyeOpen+=Q(t,2.7,.05)*.3,o.eyeScale-=e*.1}};function kt(o,t,e,i,s){const c=vt[o];return c?(c(t,e,i,s),!0):!1}const Ct=600;function Tt(o){let t=null,e=!1;const i=()=>{t!==null&&(clearTimeout(t),t=null),e=!1};return{play:(c,a={})=>{if(i(),c.length===0)return;const h=a.mode??"once";e=!0;let $=0,g=1;const d=()=>{if(!e)return;const v=c[$];o.applyStep(o.resolveStep(v)),t=setTimeout(()=>{var k;if(h==="ping-pong")c.length>1&&(($+g>=c.length||$+g<0)&&(g=-g),$+=g);else if($+=1,$>=c.length)if(h==="loop")$=0;else{i(),(k=a.onComplete)==null||k.call(a);return}d()},v.duration??Ct)};d()},stop:i,isPlaying:()=>e}}const Le=[{label:"Interacción",states:["idle","near","hover","click"]},{label:"Ciclo de vida",states:["sleeping","waking","listening","thinking","searching","working"]},{label:"Reacciones",states:["excited","surprised","suspicious","angry","drowsy","happy","curious","confused","bored","proud","shy","sad","laughing","scared","playful","celebrate"]},{label:"Morfos de agente",states:["orbit","radar","progress"]},{label:"Ciclo de producto",states:["spawning","humming","loading","dictating","writing","sending","receiving","uploading","notifying","alerting","dragging","bouncing","powering-down"]}],St=Le.flatMap(o=>o.states),wt=["idle","near","hover","click"],Yt=Le.find(o=>o.label==="Reacciones").states,Et=St.filter(o=>!wt.includes(o));function xt(o,t){return o??t??Yt}function Ft(o,t){if(o.length<=1)return o[0];let e=o[Math.floor(Math.random()*o.length)];for(;e===t;)e=o[Math.floor(Math.random()*o.length)];return e}class At{constructor(t=[],e={}){M(this,"instances",new Map);M(this,"options");M(this,"connectedPairs",new Map);M(this,"isRunning",!1);M(this,"update",()=>{const t=Array.from(this.instances.values());if(t.length<2)return;const e=new Set;for(let i=0;i<t.length;i++)for(let s=i+1;s<t.length;s++){const c=t[i],a=t[s],h=c.getPosition(),$=a.getPosition(),g=$.x-h.x,d=$.y-h.y,v=Math.hypot(g,d);if(v<=this.options.proximityThreshold&&v>0){const k=this.getPairKey(c.id,a.id);if(e.add(k),this.options.enableGazeSync){const z=Math.max(-.8,Math.min(.8,g/160))*22,j=Math.max(-.8,Math.min(.8,d/160))*14;c.setGaze({x:z,y:j}),a.setGaze({x:-z,y:-j})}let x=this.connectedPairs.get(k);x?Math.random()<.08&&this.options.enableSynergies&&(c.triggerParticles(1),a.triggerParticles(1)):(x={idA:c.id,idB:a.id,connectedSince:Date.now()},this.connectedPairs.set(k,x),this.triggerSynergy(c,a))}}for(const[i,s]of this.connectedPairs.entries())if(!e.has(i)){const c=this.instances.get(s.idA),a=this.instances.get(s.idB);c&&c.setGaze({x:0,y:0}),a&&a.setGaze({x:0,y:0}),this.connectedPairs.delete(i)}});this.options={proximityThreshold:e.proximityThreshold??220,enableGazeSync:e.enableGazeSync??!0,enableSynergies:e.enableSynergies??!0},t.forEach(i=>this.add(i)),this.start()}add(t){!t||!t.id||this.instances.set(t.id,t)}remove(t){!t||!t.id||this.instances.delete(t.id)}start(){this.isRunning||(this.isRunning=!0,O.add(this.update))}stop(){this.isRunning&&(this.isRunning=!1,O.remove(this.update))}getPairKey(t,e){return t<e?`${t}:${e}`:`${e}:${t}`}triggerSynergy(t,e){if(!this.options.enableSynergies)return;const i=t.emotionCategory||"happy",s=e.emotionCategory||"happy";if(q.playSound(i,"hover"),t.triggerParticles(6),e.triggerParticles(6),i==="happy"&&s==="happy")t.bounce(),e.bounce();else if(i==="happy"&&s==="sad"||i==="sad"&&s==="happy"){const c=i==="happy"?t:e,a=i==="sad"?t:e;c.setEmotion("hover"),a.setEmotion("near")}else(i==="intense"||s==="intense")&&(t.spin(.5),e.spin(.5))}destroy(){this.stop(),this.instances.clear(),this.connectedPairs.clear()}}function zt(o=[],t={}){return new At(o,t)}const Pt="wissive:custom:";function oo(o){const t={};for(const e in o)t[e]=o[e].map(i=>({...i}));return t}function It(o,t={}){var g,d,v;const e=t.eyesFrom?H[t.eyesFrom]:void 0,i=t.mouthFrom?H[t.mouthFrom]:void 0,s=t.motionFrom?H[t.motionFrom]:void 0,c=t.particlesFrom?H[t.particlesFrom]:void 0,a=t.soundFrom?H[t.soundFrom]:void 0,h=oo(he.expressions);for(const k in h){const x=e&&(((g=e.expressions[k])==null?void 0:g[0])??e.expressions.idle[0]),z=i&&(((d=i.expressions[k])==null?void 0:d[0])??i.expressions.idle[0]);h[k]=h[k].map(j=>({...j,...x&&{eyeType:x.eyeType,eyeScale:x.eyeScale},...z&&{mouthType:z.mouthType,mouthCurve:z.mouthCurve,mouthWidth:z.mouthWidth},...t.eyeTypeOverride!==void 0&&{eyeType:t.eyeTypeOverride},...t.mouthTypeOverride!==void 0&&{mouthType:t.mouthTypeOverride}}))}const $=(v=t.stateBank)==null?void 0:v.filter(k=>Et.includes(k));return{name:o,emotion:"custom",baseColor:t.baseColor||he.baseColor,silhouette:t.silhouette||"circle",motion:s?{...s.motion}:{...he.motion},expressions:h,particleEmotion:c==null?void 0:c.emotion,soundEmotion:a==null?void 0:a.emotion,...$&&$.length>0&&{autonomousStatePool:$}}}function Lt(o,t){localStorage.setItem(Pt+o,JSON.stringify(t))}function io(o){const t=localStorage.getItem(Pt+o);return t?JSON.parse(t):null}function no(o,t={}){const e=It(o,t);return H[o]=e,Lt(o,e),e}const ao={idle:1,near:.7,hover:.5,click:.35},Xt={xs:48,sm:80,base:120,lg:160,xl:200,"2xl":240};function Xe(o="base"){return typeof o=="number"?o:Xt[o]??120}function Dt(o,t){const{target:e,size:i="base",interactive:s=!0,draggable:c=!0,nearRadius:a=120,sound:h=!0,flipX:$=!1,emphasis:g=!1,gazeTracking:d=!1,ambientParticles:v=!0,autonomousStates:k=!0,autonomousStatePool:x,reducedMotion:z="auto",theme:j="auto"}=t,L=Ee(o)||Ee("mochi"),W=L.motion;let R=Xe(i),J=z,ee=j,re=L.baseColor;const te=L.particleEmotion||L.emotion,ae=L.soundEmotion||L.emotion,G=()=>typeof J=="boolean"?J:ft(),A=document.createElement("div");A.className="wissive-wrapper",A.style.width=`${R}px`,A.style.height=`${R}px`,A.style.display="inline-block",A.style.position="relative";const n=document.createElement("div");n.className="wissive-emoji",n.setAttribute("role","img"),s&&n.setAttribute("tabindex","0");const De={idle:"Reposo",near:"Cerca",hover:"Hover",click:"Presionado"},ue=f=>{n.setAttribute("aria-label",`${L.name} (${L.emotion}) emoji - Estado: ${De[f]||f}`)};ue("idle"),n.style.width=`${R}px`,n.style.height=`${R}px`,n.style.display="inline-block",n.style.userSelect="none",n.style.cursor=s?"pointer":"default",n.style.willChange="transform",n.style.transformOrigin="center center",A.appendChild(n),e.appendChild(A);const Me=pt(()=>{oe()});let de=$,le=g,se=d,Z=h,me=c,ve=v,S=k,m=xt(x,L.autonomousStatePool);const u=new ot,Y=L.expressions.idle,ye=u.pickVariant(Y,"idle"),_=tt(ye,{stiffness:W.stiffness,damping:W.damping});let ce=!1,r=!1,l=!1,C=Math.random()*100,T=!1,X=null,b=null;const P=new mt(A,R);let I={offsetX:0,offsetY:0,scaleX:1,scaleY:1,rotation:0},w=null;const E=()=>{w||(w=new yt(n,f=>{I=f,D()},{onDragStart:()=>{Z&&q.playSound(ae,"click")},onDragEnd:()=>{P.burst(te,10),Z&&q.playSound(ae,"bounce")}}))};me&&s&&E();const D=()=>{const f=G(),F=f?0:W.idleSpeed*.35,B=f?0:.04,U=1+B*Math.cos(C*F),V=1-B*Math.sin(C*F),be=I.offsetX!==0||I.offsetY!==0||I.scaleX!==1||I.scaleY!==1;let Oe,We,Be;be?(Oe=U*I.scaleX,We=V*I.scaleY,Be=I.rotation):(Oe=U,We=V,Be=0);const ro=I.offsetX,lo=I.offsetY;n.style.transform=`translate(${ro.toFixed(1)}px, ${lo.toFixed(1)}px) rotate(${(Be*180/Math.PI).toFixed(2)}deg) scale(${Oe.toFixed(4)}, ${We.toFixed(4)})`},oe=()=>{const f=_.getValues(),F=u.getState();let B=L.baseColor;if(typeof ee=="object"&&ee.baseColor&&(B=ee.baseColor),re=gt(re,B,.15),T&&(f.eyeOpen=.05),!G()&&!kt(F,f,C,W.idleSpeed,W.idleAmplitude)){const V=ao[F]??1;Mt(W.motionType,f,C,W.idleSpeed,W.idleAmplitude,V)}D(),n.innerHTML=xe(L.silhouette,re,f,R,{flipX:de,emphasis:le},C)},fe=(f=u.getState())=>{u.setState(f);const F=u.resolvePool(L.expressions,f);if(!(!F||F.length===0)){if(F.length===1){const B=u.pickVariant(F,f);_.setTargets(B),O.add(N);return}T=!0,O.add(N),setTimeout(()=>{const B=u.pickVariant(F,f);_.setTargets(B),O.add(N),setTimeout(()=>{T=!1,O.add(N)},120)},100)}},K=f=>{ue(f),fe(f)},ie=Tt({resolveStep(f){return{...f.state?u.pickVariant(u.resolvePool(L.expressions,f.state),f.state):{},...f.params}},applyStep(f){_.setTargets(f),O.add(N)}}),N=f=>{C+=f;const F=_.update(f);oe(),!F&&u.getState()!=="idle"&&O.remove(N)};O.add(N);const Ot=()=>{const B=3e3+Math.random()*4e3;b=window.setTimeout(()=>{u.getState()==="idle"&&!T&&(T=!0,O.add(N),X=window.setTimeout(()=>{T=!1,O.add(N)},180)),Ot()},B)};Ot();let ke=null;const Wt=()=>{const f=W.idleIntervalMin,F=W.idleIntervalMax,B=f+Math.random()*(F-f);ke=window.setTimeout(()=>{u.getState()==="idle"&&!ie.isPlaying()&&fe("idle"),Wt()},B)};Wt();let Ce=null,Te=null;const Bt=()=>{const B=3500+Math.random()*4500;Ce=window.setTimeout(()=>{if(u.getState()==="idle"&&!se&&!ie.isPlaying()){const U=[{x:-9,y:0},{x:9,y:0},{x:-7,y:-4},{x:7,y:-4},{x:0,y:-5},{x:0,y:4}],V=U[Math.floor(Math.random()*U.length)];_.setTargets({gazeX:V.x,gazeY:V.y}),O.add(N);const be=1200+Math.random()*1500;Te=window.setTimeout(()=>{se||(_.setTargets({gazeX:0,gazeY:0}),O.add(N))},be)}Bt()},B)};Bt();let Se=null;const jt=()=>{const B=3500+Math.random()*5e3;Se=window.setTimeout(()=>{if(ve&&!G()){const U=u.getState();if(U==="idle"||U==="near"||U==="hover"){const V=Math.floor(2+Math.random()*3);P.burst(te,V)}}jt()},B)};jt();let we=null,Ye=null,_t=null;const Rt=()=>{const B=5e3+Math.random()*6e3;we=window.setTimeout(()=>{if(S&&m.length>0&&!G()&&!ie.isPlaying()&&u.getState()==="idle"&&!ce&&!r&&!l){const V=Ft(m,_t);_t=V,K(V);const be=1800+Math.random()*2200;Ye=window.setTimeout(()=>{u.getState()===V&&!ce&&!r&&!l&&K("idle")},be)}Rt()},B)};Rt();const so=()=>{ke!==null&&(clearTimeout(ke),ke=null),b!==null&&(clearTimeout(b),b=null),X!==null&&(clearTimeout(X),X=null),Ce!==null&&(clearTimeout(Ce),Ce=null),Te!==null&&(clearTimeout(Te),Te=null),Se!==null&&(clearTimeout(Se),Se=null),we!==null&&(clearTimeout(we),we=null),Ye!==null&&(clearTimeout(Ye),Ye=null)};let Ge=null;const pe=()=>l?"click":r?"hover":ce?"near":"idle";return s&&(Ge=rt(n,{onHoverStart:()=>{r=!0,Z&&q.playSound(ae,"hover"),K(pe())},onHoverEnd:()=>{r=!1,K(pe())},onClickStart:()=>{l=!0,Z&&q.playSound(ae,"click"),G()||P.burst(te,8),K(pe())},onClickEnd:()=>{l=!1,K(pe())},onNearChange:f=>{ce=f,K(pe())},onGazeMove:(f,F)=>{se&&(_.setTargets({gazeX:f,gazeY:F}),O.add(N))}},a)),{id:"wissive-"+Math.random().toString(36).substring(2,9),name:L.name,emotionCategory:L.emotion,getElement(){return n},getPosition(){const f=n.getBoundingClientRect();return{x:f.left+f.width/2,y:f.top+f.height/2}},getCurrentState(){return u.getState()},setEmotion(f){G()||(f==="click"?P.burst(te,8):f==="hover"&&P.burst(te,4)),K(f)},spin(f=1){const F=_.getValues().turnAngle||0;_.setTargets({turnAngle:F+Math.PI*2*f}),O.add(N)},bounce(){Z&&q.playSound(ae,"bounce"),G()||P.burst(te,5);const f=_.getValues().bob||0;_.setTargets({bob:f-14}),O.add(N)},setGaze(f){_.setTargets({gazeX:f.x,gazeY:f.y}),O.add(N)},setGazeTracking(f){se=f,f||(_.setTargets({gazeX:0,gazeY:0}),O.add(N))},setSound(f){Z=f},setDraggable(f){me=f,f&&!w&&s?E():!f&&w&&(w.destroy(),w=null,I={offsetX:0,offsetY:0,scaleX:1,scaleY:1,rotation:0,isDragging:!1},D())},setFlipX(f){de=f,oe()},setEmphasis(f){le=f,oe()},setAmbientParticles(f){ve=f},setAutonomousStates(f){S=f},setAutonomousStatePool(f){m=f},setReducedMotion(f){J=f,oe()},setTheme(f){ee=f,oe()},setSize(f){R=Xe(f),A.style.width=`${R}px`,A.style.height=`${R}px`,n.style.width=`${R}px`,n.style.height=`${R}px`,P.resize(R),oe()},triggerParticles(f=8){G()||P.burst(te,f)},playSequence(f,F){ie.play(f,F)},stopSequence(){ie.stop(),fe(u.getState())},isSequencePlaying(){return ie.isPlaying()},destroy(){ie.stop(),so(),Me(),O.remove(N),P.destroy(),w&&w.destroy(),Ge&&Ge(),A.remove()}}}const Gt={create:Dt,createGroup:zt,setGlobalSound:ct,isGlobalSoundEnabled:ht,setGlobalVolume:ut,getGlobalVolume:dt,supportsHover:Fe,isTouchDevice:at};p.ALL_STATES=St,p.ALL_WANDERABLE_STATES=Et,p.AUTONOMOUS_STATES=Yt,p.DEFAULT_STEP_MS=Ct,p.DragPhysics=yt,p.EMOJI_BRIX=Qe,p.EMOJI_COTA=he,p.EMOJI_DOZY=Ze,p.EMOJI_FIDGE=Je,p.EMOJI_KNOT=qe,p.EMOJI_LUMO=Ne,p.EMOJI_MOCHI=ne,p.EMOJI_NIMA=Re,p.EMOJI_PIP=He,p.EMOJI_SNUG=Ue,p.EMOJI_SURI=_e,p.EMOJI_VOID=Ke,p.EMOJI_WILT=Ve,p.EMOJI_ZUMI=je,p.EmojiGroup=At,p.IDLE_MOTIONS=Ie,p.LIB=H,p.PERSONALITY_DRIVEN_STATES=wt,p.ParticleEmitter=mt,p.SIZE_PRESETS=Xt,p.STATE_GROUPS=Le,p.STATE_MOTIONS=vt,p.STATE_THEME_MAP=eo,p.SoundEngine=lt,p.StateManager=ot,p.Wissive=Gt,p.applyIdleMotion=Mt,p.applyStateMotion=kt,p.attachEventListeners=rt,p.blendColors=gt,p.buildCustomEmoji=It,p.buildFace=xe,p.checkContrast=Kt,p.createCustomEmoji=no,p.createEmoji=Dt,p.createEmojiGroup=zt,p.createMultiSpring=tt,p.createSequencePlayer=Tt,p.default=Gt,p.getContrastRatio=bt,p.getEmojiDefinition=Ee,p.getGlobalVolume=dt,p.getLuminance=Pe,p.getSilhouettePath=nt,p.getThemeForState=to,p.isGlobalSoundEnabled=ht,p.isReducedMotionPreferred=ft,p.isTouchDevice=at,p.loadCustomEmoji=io,p.makeSpring=et,p.pickWithoutRepeat=Ft,p.renderSvgElement=Vt,p.resolveAutonomousStatePool=xt,p.resolveSize=Xe,p.saveCustomEmoji=Lt,p.setGlobalSound=ct,p.setGlobalVolume=ut,p.sharedLoop=O,p.soundEngine=q,p.subscribeToReducedMotion=pt,p.supportsHover=Fe,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
187
+ //# sourceMappingURL=wissive.umd.js.map