@norbert_bodziony/bloub 0.3.0 → 0.6.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.
Files changed (66) hide show
  1. package/README.md +32 -5
  2. package/dist/package/assets/boule.webp +0 -0
  3. package/dist/package/assets/cloe-corps.webp +0 -0
  4. package/dist/package/assets/cloe-oeil0-x.webp +0 -0
  5. package/dist/package/assets/cloe-oeil0-y.webp +0 -0
  6. package/dist/package/assets/cloe-oeil1-x.webp +0 -0
  7. package/dist/package/assets/cloe-oeil1-y.webp +0 -0
  8. package/dist/package/assets/forme-capsule.webp +0 -0
  9. package/dist/package/assets/forme-carre.webp +0 -0
  10. package/dist/package/assets/forme-cercle.webp +0 -0
  11. package/dist/package/assets/forme-galet.webp +0 -0
  12. package/dist/package/assets/forme-goutte.webp +0 -0
  13. package/dist/package/assets/forme-hexagone.webp +0 -0
  14. package/dist/package/assets/forme-losange.webp +0 -0
  15. package/dist/package/assets/forme-nuage.webp +0 -0
  16. package/dist/package/assets/forme-pentagone.webp +0 -0
  17. package/dist/package/assets/forme-squircle.webp +0 -0
  18. package/dist/package/assets/forme-triangle.webp +0 -0
  19. package/dist/package/assets/fred-corps.webp +0 -0
  20. package/dist/package/assets/fred-oeil0-x.webp +0 -0
  21. package/dist/package/assets/fred-oeil0-y.webp +0 -0
  22. package/dist/package/assets/fred-oeil1-x.webp +0 -0
  23. package/dist/package/assets/fred-oeil1-y.webp +0 -0
  24. package/dist/package/assets/malu-corps.webp +0 -0
  25. package/dist/package/assets/malu-oeil0-x.webp +0 -0
  26. package/dist/package/assets/malu-oeil0-y.webp +0 -0
  27. package/dist/package/assets/malu-oeil1-x.webp +0 -0
  28. package/dist/package/assets/malu-oeil1-y.webp +0 -0
  29. package/dist/package/assets/nexo-corps.webp +0 -0
  30. package/dist/package/assets/nexo-oeil0-x.webp +0 -0
  31. package/dist/package/assets/nexo-oeil0-y.webp +0 -0
  32. package/dist/package/assets/nexo-oeil1-x.webp +0 -0
  33. package/dist/package/assets/nexo-oeil1-y.webp +0 -0
  34. package/dist/package/assets/vita-corps.webp +0 -0
  35. package/dist/package/assets/vita-oeil0-x.webp +0 -0
  36. package/dist/package/assets/vita-oeil0-y.webp +0 -0
  37. package/dist/package/assets/vita-oeil1-x.webp +0 -0
  38. package/dist/package/assets/vita-oeil1-y.webp +0 -0
  39. package/dist/package/assets/yoshi-corps.webp +0 -0
  40. package/dist/package/assets/yoshi-oeil0-x.webp +0 -0
  41. package/dist/package/assets/yoshi-oeil0-y.webp +0 -0
  42. package/dist/package/assets/yoshi-oeil1-x.webp +0 -0
  43. package/dist/package/assets/yoshi-oeil1-y.webp +0 -0
  44. package/dist/package/chunks/BloubBot-_XolrDe1.js +2226 -0
  45. package/dist/package/chunks/BloubBot-server-V9r0a_k-.js +1 -0
  46. package/dist/package/index.js +2 -2115
  47. package/dist/package/plush-server.js +1 -0
  48. package/dist/package/plush.js +1202 -0
  49. package/dist/package/server.js +1 -1
  50. package/dist/package/types/bot/engine.d.ts +57 -1
  51. package/dist/package/types/bot/skins.d.ts +1 -1
  52. package/dist/package/types/bot/states.d.ts +2 -0
  53. package/dist/package/types/components/BloubBot.d.ts +48 -1
  54. package/dist/package/types/index.d.ts +1 -1
  55. package/dist/package/types/plush/PlushBot.d.ts +64 -0
  56. package/dist/package/types/plush/assets.d.ts +1 -0
  57. package/dist/package/types/plush/body.d.ts +28 -0
  58. package/dist/package/types/plush/catalogue.d.ts +56 -0
  59. package/dist/package/types/plush/index.d.ts +5 -0
  60. package/dist/package/types/plush/layer.d.ts +36 -0
  61. package/dist/package/types/plush/motion.d.ts +236 -0
  62. package/dist/package/types/plush/slices.d.ts +49 -0
  63. package/dist/package/types/plush/tint.d.ts +27 -0
  64. package/dist/package/types/plush/transition.d.ts +33 -0
  65. package/dist/package/types/plush/warp.d.ts +10 -0
  66. package/package.json +13 -2
@@ -0,0 +1 @@
1
+ import{A as e,B as t,G as n,H as r,I as i,J as a,K as o,M as s,R as c,T as l,U as u,W as d,X as f,Y as p,k as m,q as h,t as ee}from"./chunks/BloubBot-server-V9r0a_k-.js";import{escape as g,memo as _,mergeProps as v,scope as y,ssr as b,ssrAttribute as x,ssrGroup as S,ssrHydrationKey as C,ssrStyle as w,ssrStyleProperty as T}from"@solidjs/web";import{For as E,Show as D,createEffect as O,createMemo as k,createSignal as A,createUniqueId as j,onCleanup as M,untrack as N}from"solid-js";var P={"boule.webp":new URL(`./assets/boule.webp`,import.meta.url).href,"cloe-corps.webp":new URL(`./assets/cloe-corps.webp`,import.meta.url).href,"cloe-oeil0-x.webp":new URL(`./assets/cloe-oeil0-x.webp`,import.meta.url).href,"cloe-oeil0-y.webp":new URL(`./assets/cloe-oeil0-y.webp`,import.meta.url).href,"cloe-oeil1-x.webp":new URL(`./assets/cloe-oeil1-x.webp`,import.meta.url).href,"cloe-oeil1-y.webp":new URL(`./assets/cloe-oeil1-y.webp`,import.meta.url).href,"forme-capsule.webp":new URL(`./assets/forme-capsule.webp`,import.meta.url).href,"forme-carre.webp":new URL(`./assets/forme-carre.webp`,import.meta.url).href,"forme-cercle.webp":new URL(`./assets/forme-cercle.webp`,import.meta.url).href,"forme-galet.webp":new URL(`./assets/forme-galet.webp`,import.meta.url).href,"forme-goutte.webp":new URL(`./assets/forme-goutte.webp`,import.meta.url).href,"forme-hexagone.webp":new URL(`./assets/forme-hexagone.webp`,import.meta.url).href,"forme-losange.webp":new URL(`./assets/forme-losange.webp`,import.meta.url).href,"forme-nuage.webp":new URL(`./assets/forme-nuage.webp`,import.meta.url).href,"forme-pentagone.webp":new URL(`./assets/forme-pentagone.webp`,import.meta.url).href,"forme-squircle.webp":new URL(`./assets/forme-squircle.webp`,import.meta.url).href,"forme-triangle.webp":new URL(`./assets/forme-triangle.webp`,import.meta.url).href,"fred-corps.webp":new URL(`./assets/fred-corps.webp`,import.meta.url).href,"fred-oeil0-x.webp":new URL(`./assets/fred-oeil0-x.webp`,import.meta.url).href,"fred-oeil0-y.webp":new URL(`./assets/fred-oeil0-y.webp`,import.meta.url).href,"fred-oeil1-x.webp":new URL(`./assets/fred-oeil1-x.webp`,import.meta.url).href,"fred-oeil1-y.webp":new URL(`./assets/fred-oeil1-y.webp`,import.meta.url).href,"malu-corps.webp":new URL(`./assets/malu-corps.webp`,import.meta.url).href,"malu-oeil0-x.webp":new URL(`./assets/malu-oeil0-x.webp`,import.meta.url).href,"malu-oeil0-y.webp":new URL(`./assets/malu-oeil0-y.webp`,import.meta.url).href,"malu-oeil1-x.webp":new URL(`./assets/malu-oeil1-x.webp`,import.meta.url).href,"malu-oeil1-y.webp":new URL(`./assets/malu-oeil1-y.webp`,import.meta.url).href,"nexo-corps.webp":new URL(`./assets/nexo-corps.webp`,import.meta.url).href,"nexo-oeil0-x.webp":new URL(`./assets/nexo-oeil0-x.webp`,import.meta.url).href,"nexo-oeil0-y.webp":new URL(`./assets/nexo-oeil0-y.webp`,import.meta.url).href,"nexo-oeil1-x.webp":new URL(`./assets/nexo-oeil1-x.webp`,import.meta.url).href,"nexo-oeil1-y.webp":new URL(`./assets/nexo-oeil1-y.webp`,import.meta.url).href,"vita-corps.webp":new URL(`./assets/vita-corps.webp`,import.meta.url).href,"vita-oeil0-x.webp":new URL(`./assets/vita-oeil0-x.webp`,import.meta.url).href,"vita-oeil0-y.webp":new URL(`./assets/vita-oeil0-y.webp`,import.meta.url).href,"vita-oeil1-x.webp":new URL(`./assets/vita-oeil1-x.webp`,import.meta.url).href,"vita-oeil1-y.webp":new URL(`./assets/vita-oeil1-y.webp`,import.meta.url).href,"yoshi-corps.webp":new URL(`./assets/yoshi-corps.webp`,import.meta.url).href,"yoshi-oeil0-x.webp":new URL(`./assets/yoshi-oeil0-x.webp`,import.meta.url).href,"yoshi-oeil0-y.webp":new URL(`./assets/yoshi-oeil0-y.webp`,import.meta.url).href,"yoshi-oeil1-x.webp":new URL(`./assets/yoshi-oeil1-x.webp`,import.meta.url).href,"yoshi-oeil1-y.webp":new URL(`./assets/yoshi-oeil1-y.webp`,import.meta.url).href},F=[`cercle`,`galet`,`squircle`,`capsule`,`triangle`,`hexagone`,`nuage`,`goutte`,`carre`,`losange`,`pentagone`],te=[`idle`,`wink`,`wide`,`thinking`,`notify`,`asleep`,`failed`],I=(e,t,n=0)=>({w:e,h:t,tilt:n,open:1}),ne={nexo:[[.8463031722054379,1.1432813538461537,.035,-.065],[.8463031722054379,1.1432813538461537,-.015,-.058]],vita:[[1.1065201648485468,1.3715440577454037,.034055756216271146,-.05281578999623958],[.9879326262863181,.704834060505008,-.026029860323685244,-.05510519721699535]],cloe:[[.7330933320692096,.5707016106480031,.024552162164021694,-.038398427223289566],[.7626944185432071,.5431152830931956,-.041541687753233185,-.03950575553898529]],malu:[[1.0586630508735577,1.201687371851717,.009231984564124829,-.0044476764477897265],[.8266234890168364,.8621901641452211,-.026116871314858032,.0003016649469345866]],yoshi:[[.8527194256418902,.7757119056093287,.03916727618687797,.007869041986432974],[.8797267768823489,.7829079218623657,-.028381687537700435,.012892774756514975]],fred:[[1.7586780224155572,1.667393362265376,.039353114938410254,-.035566855454058126],[1.8556643796915675,1.6423739844251715,-.055407781997306026,-.03778285688705488]]},L=(e,t,n,[r,i,a,o])=>{let s=Math.min(n.w,n.h),c=n.w>n.h?n.w-s:0,l=n.h>n.w?n.h-s:0,u=`${e}-oeil${t}`;return{file:`${u}-x.webp`,images:{x:`${u}-x.webp`,y:`${u}-y.webp`},court:s,kw:(r-c)/s,kh:(i-l)/s,dx:a,dy:o}};function R(e,t,n,r,i,a,o,s=0){let[c,l]=ne[e];return{id:e,shape:t,ink:n,body:`${e}-corps.webp`,pads:[L(e,0,i[0],c),L(e,1,i[1],l)],face:{id:`plush-${e}`,gaze:{yaw:a,pitch:o,roll:s},split:r,eyes:i}}}var z=[R(`nexo`,`squircle`,`#e45206`,16,[I(.205,.43,-28),I(.205,.43,35)],1,-7,-1),R(`vita`,`hexagone`,`#22c377`,17,[I(.27,.51,3),I(.49,.13,-4)],-4,5,8),R(`cloe`,`triangle`,`#df2986`,20,[I(.33,.12,28),I(.34,.11,-26)],3,16),R(`malu`,`cercle`,`#9a55ef`,15,[I(.23,.42,-3),I(.19,.18)],9,4,-8),R(`yoshi`,`capsule`,`#e94741`,18,[I(.3,.16,17),I(.31,.15,-18)],11,20,2),R(`fred`,`hexagone`,`#efb428`,21,[I(.46,.5),I(.48,.5)],7,-3)],re=new Map(z.map(e=>[e.id,e])),ie={...re.get(`fred`).pads[0],dx:0,dy:0},ae=e=>`forme-${e}.webp`,oe=`boule.webp`,se=[`flip`,`pop`,`warp`,`dissolve`,`cut`],B=`flip`,V=l.SHAPE_MORPH,ce=m.get(`notify`),H=e=>ce.pose(e).notif?.r??0,U=H(10),le=e=>H(e)/U,W=(()=>{for(let e=1;e<5e3;e++)if(H(e/1e3)===U&&H((e-1)/1e3)!==U)return e/1e3;return V})(),G=V/2,ue={cut:V,warp:V,dissolve:V,flip:V*2,pop:G+W},de={corps:`avant`,melange:0,sx:1,sy:1,bascule:!1,fini:!1},K={corps:`apres`,melange:1,sx:1,sy:1,bascule:!0,fini:!0};function fe(e,t){if(t<0)return de;let n=ue[e];if(t>=n)return K;let r=t/n;switch(e){case`cut`:return{...K,fini:!1};case`warp`:case`dissolve`:return{corps:`deux`,melange:p.easeOutQuint(r),sx:1,sy:1,bascule:!0,fini:!1};case`flip`:{let e=p.easeInOutCubic(r),t=e>=.5;return{corps:t?`apres`:`avant`,melange:+!!t,sx:Math.abs(Math.cos(Math.PI*e)),sy:1,bascule:t,fini:!1}}case`pop`:{if(t<G){let e=1-p.easeInOutCubic(t/G);return{corps:`avant`,melange:0,sx:e,sy:e,bascule:!1,fini:!1}}let e=t-G,n=p.easeOutQuint(a(e/W))*le(e);return{corps:`apres`,melange:1,sx:n,sy:n,bascule:!0,fini:!1}}}}function pe(e,t,n){let r=p.easeOutQuint(a(n/V));return t.map((t,n)=>f(e[n]??t,t,r))}var q=316,me=[`<image`,``,``,``,``,``,``,`></image>`],he=[`<foreignObject`,``,``,``,``,` style="`,`"><canvas`,``,` style="`,`"></canvas></foreignObject>`],ge=[`<filter`,``,` filterUnits="userSpaceOnUse" primitiveUnits="userSpaceOnUse"`,``,``,``,` color-interpolation-filters="sRGB"><feTurbulence type="fractalNoise" baseFrequency="0.05" numOctaves="4" seed="7"></feTurbulence><feColorMatrix type="matrix" values="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1"></feColorMatrix><feComponentTransfer><feFuncR type="linear"`,``,`></feFuncR><feFuncG type="linear"`,``,`></feFuncG><feFuncB type="linear"`,``,`></feFuncB></feComponentTransfer></filter>`],_e=[`<mask`,``,` maskUnits="userSpaceOnUse"`,``,``,``,`><rect`,``,``,``,` filter="`,`"></rect></mask>`],ve=[`<defs`,`><!--$-->`,`<!--/--><!--$-->`,`<!--/--><!--$-->`,`<!--/--><!--$-->`,`<!--/--></defs>`],J=(e,t)=>D({when:e,children:e=>{var n,r;return n=C(),r=()=>x(`href`,g(e(),!0)),b(me,n,r,x(`x`,-158),x(`y`,-158),x(`width`,g(q,!0)),x(`height`,g(q,!0)),x(`mask`,t?`url(#${g(t,!0)})`:g(void 0,!0)))}});function ye(e){let t=()=>e.rendu().corps===`deux`,[n,r]=A(!1),i=()=>e.transition===`warp`&&t(),a=()=>e.transition===`dissolve`&&t();return[D({get when(){return i()},get children(){return be(v(e,{onPret:r}))}}),D({get when(){return a()},get children(){return Se({get passage(){return e.passage},melange:()=>e.rendu().melange})}}),D({get when(){return _(()=>!(i()&&n()))()&&!a()},get children(){return J(e.rendu().corps===`avant`?e.passage.avant.url:e.passage.apres.url)}})]}function be(e){let[t,n]=A(!1),r=Math.round((e.size??q)*(globalThis.devicePixelRatio||1)),i=()=>null,a=null;M(()=>{a?.detruit(),e.onPret(!1)}),O(()=>e.passage,t=>{a??=i();let{avant:r,apres:o}=t;!a||!r.url||!o.url||(n(!1),e.onPret(!1),a.corps(r.url,o.url).then(()=>{n(!0),e.onPret(!0)}))}),O(()=>{if(!t())return null;let n=e.passage;return{p:n,s:e.clock()-n.debut,melange:e.rendu().melange}},e=>{if(!e||!a)return;let{p:t,s:n,melange:r}=e;a.dessine(t.avant.radii,t.apres.radii,pe(t.avant.radii,t.apres.radii,n),r)});var o=C();return b(he,o,x(`x`,-158),x(`y`,-158),x(`width`,g(q,!0)),x(`height`,g(q,!0)),()=>T(`display:`,t()?`inline`:`none`),x(`width`,g(r,!0)),x(`height`,g(r,!0)),T(`width:`,`100%`)+T(`;height:`,`100%`)+T(`;display:`,`block`))}var xe=.12;function Se(e){var t,n,r,i,a;let o=j(),s=t=>{let n=e.melange(),r=-1/(.4*xe),i=(n*1.12+.75)/xe;return t?{pente:20.833333333333332,origine:1-i}:{pente:r,origine:i}},c=(e,t)=>{var n,r;return n=C(),r=S(()=>[x(`slope`,g(s(t).pente,!0)),x(`intercept`,g(s(t).origine,!0)),x(`slope`,g(s(t).pente,!0)),x(`intercept`,g(s(t).origine,!0)),x(`slope`,g(s(t).pente,!0)),x(`intercept`,g(s(t).origine,!0))],6),b(ge,n,x(`id`,g(e,!0)),x(`x`,-158),x(`y`,-158),x(`width`,g(q,!0)),x(`height`,g(q,!0)),r,r,r,r,r,r)},l=(e,t)=>{var n;return n=C(),b(_e,n,x(`id`,g(e,!0)),x(`x`,-158),x(`y`,-158),x(`width`,g(q,!0)),x(`height`,g(q,!0)),x(`x`,-158),x(`y`,-158),x(`width`,g(q,!0)),x(`height`,g(q,!0)),`url(#${g(t,!0)})`)};return[(t=C(),n=y(()=>g(c(`${o}-fa`,!0))),r=y(()=>g(c(`${o}-fb`,!1))),i=y(()=>g(l(`${o}-ma`,`${o}-fa`))),a=y(()=>g(l(`${o}-mb`,`${o}-fb`))),b(ve,t,n,r,i,a)),_(()=>g(J(e.passage.avant.url,`${o}-ma`))),_(()=>g(J(e.passage.apres.url,`${o}-mb`)))]}var Ce=.5;function we(e,t,n){let r=Math.min(t,n),i=t>=n,a=(Math.max(t,n)-r)/2,[o,s]=i?[e.kw*r,e.kh*r]:[e.kh*r,e.kw*r],c=Ce*r,l=o+2*c,u=(e,t,n,r)=>i?{src:`x`,x:e,y:-s/2,w:t-e,h:s,viewBox:`${n/l} 0 ${(r-n)/l} 1`}:{src:`y`,x:-s/2,y:e,w:s,h:t-e,viewBox:`0 ${n/l} 1 ${(r-n)/l}`},d=[],f=(e,t,n,r)=>{d.push(u(e,t,n,r)),d.push(u(-t,-e,l-r,l-n))},p=Math.max(c,a/3);p===c?f(-a-o/2,Math.min(-a+c,0),0,o/2+Math.min(a,c)):f(-a-o/2,-a,0,o/2);for(let e=+(p===c);e*p<a-1e-9*r;e++){let t=-a+e*p,n=Math.min(t+p,0),r=o/2+e%2*c;f(t,n,r,r+(n-t)/p*c)}return d}function Te(e){let t=0,n=0;for(let r of e)t=Math.max(t,Math.abs(r.x),Math.abs(r.x+r.w)),n=Math.max(n,Math.abs(r.y),Math.abs(r.y+r.h));return{x:t,y:n}}var Ee=e=>e===`thinking`||e===`asleep`||e===`failed`?`idle`:e,Y=e=>m.get(e===`asleep`?`sleep`:e===`failed`?`idle`:e).morph,De={yaw:0,pitch:0,mix:0,spin:0,wander:.4},Oe={yaw:18,pitch:22,mix:1,spin:0,wander:.4},ke={yaw:0,pitch:0,mix:0,spin:0,wander:.15,blink:0},Ae=e=>e===`thinking`?Oe:e===`asleep`?ke:De,je=(e,t,n)=>({yaw:f(e.yaw,t.yaw,n),pitch:f(e.pitch,t.pitch,n),mix:f(e.mix,t.mix,n),spin:f(e.spin,t.spin,n),wander:f(e.wander,t.wander,n),...e.blink===void 0&&t.blink===void 0?{}:{blink:f(e.blink??1,t.blink??1,n)}}),Me=(e,t,n)=>r=>je(e,t,p.easeOutQuint(a(r/n))),Ne=.8,Pe=e=>e<=0||e>=.8?0:12*Math.sin(2*h*e/Ne)*Math.sin(Math.PI*e/Ne);function Fe(e,t){let n=Me(e,Ae(t),Y(t));return t===`failed`?e=>{let t=n(e);return{...t,spin:t.spin+Pe(e)}}:n}var Ie=t.get(`somnolent`),Le={w:.3,h:m.get(`wink`).pose(0).eyes[1].h,open:1,tilt:0},Re={id:`plush-asleep`,gaze:Ie.gaze,split:Ie.split,eyes:[{...Le},{...Le}]},ze=t.get(`triste`),Be=1.8,Ve=[.6,1.7],He=e=>+(e.eyes[1].w*e.eyes[1].h>e.eyes[0].w*e.eyes[0].h),Ue=new WeakMap;function We(e){let t=Ue.get(e);if(!t){let{w:n,h:r}=e.eyes[He(e)],i=n/r>Ve[0]&&n/r<Ve[1]?n/Be:r,a=e=>({w:n,h:i,tilt:ze.eyes[e].tilt,open:1});t={id:`${e.id}-failed`,gaze:{...ze.gaze},split:e.split,eyes:[a(0),a(1)]},Ue.set(e,t)}return t}var Ge=new WeakMap;function Ke(e,t){let n=Ge.get(e);if(!n){let r=e[He(t)];n=[{...r,dx:e[0].dx,dy:e[0].dy},{...r,dx:e[1].dx,dy:e[1].dy}],Ge.set(e,n)}return n}var qe={from:null,at:-1/0,start:1},Je=(e,t)=>e.from?e.start+(1-e.start)*p.easeOutQuint(a((t-e.at)/l.SHAPE_MORPH)):1,Ye=(e,t,n)=>({from:t,at:n,start:1-Je(e,n)});function Xe(e,t){let n=e.map(()=>({x:0,y:0}));if(t===1||!e.length)return n;let r=0,i=0;for(let{m:t}of e)r+=(t[4]??0)/e.length,i+=(t[5]??0)/e.length;let a=Math.hypot(r,i);if(a<1e-6)return n;let o=r/a,s=i/a,c=-1/0;for(let{m:t,w:n,h:r}of e){let[e=1,i=0,a=0,l=1,u=0,d=0]=t,f=Math.hypot(n/2*(e*o+i*s),r/2*(a*o+l*s));c=Math.max(c,u*o+d*s+f)}let l=r+(c-a)*o,u=i+(c-a)*s;return e.map(({m:e})=>({x:(t-1)*((e[4]??0)-l),y:(t-1)*((e[5]??0)-u)}))}var Ze=e=>(e.match(/-?[\d.]+(?:e-?\d+)?/g)??[]).map(Number),Qe=30/205,$e=.1,et=r(0);function tt(e,t){if(t>=1)return;let[n=1,r=0,i=0,a=1]=e,o=r/t,s=a/t,c=n*a-r*i;return`matrix(${(a*n-i*o)/c},${(n*o-r*n)/c},${(a*i-i*s)/c},${(n*s-r*i)/c},0,0)`}function nt(e,t,n,r,i){if(n>=1)return{w:r,h:i};let[a=1,o=0,s=0,c=1]=e,l=o/t,u=c/t;return{w:r*Math.hypot(a,l*n)/Math.hypot(a,l),h:i*Math.hypot(s,u*n)/Math.hypot(s,u)}}function rt(e,t,n,r,i){if(t>=n)return null;let[,,,,o=0,s=0]=e,c=a((t-et)/(n-et)),l=Math.min(r.x,r.y),u=Qe*2*l,d=Math.max(u,Math.hypot(i.x-r.x+l,i.y-r.y+l)-l),f=u+c**8*(d-u),p=$e*2*l,m=[];for(let e=3;e>=0;e--){let t=f+p*e/4;m.push({w:r.x+t,h:r.y+t,r:l+t,alpha:1/(e+1)})}return{x:o,y:s,s:c,bands:m}}var it=(e,t)=>e===`asleep`?Re:e===`failed`?We(t):null,at=.62,ot=-1.3,st=.6,ct=.3,X={phase:0,at:-1/0,from:0,on:!1,exit:1};function Z(e,t){let n=t-e.at;return e.on?e.from+(1-e.from)*p.easeOutCubic(a(n/ct)):e.from*(1-p.easeOutQuint(a(n/e.exit)))}function lt(e,t,n,r){if(t===e.on)return e;let i=Z(e,n);return{phase:t&&i<.001?n:e.phase,at:n,from:i,on:t,exit:Y(r)}}function ut(t,r){let i=Z(t,r);return i<.001?[]:n.map((n,a)=>{let o=e(r-t.phase,a);return{x:at+n*st,y:ot,r:d*st*(1+(u-1)*o)*(.5+.5*i),opacity:i*(.55+.45*o)}})}var dt=3,ft={x:.55,y:-.74},pt={x:1.25,y:-1.38},mt=[.1,.2];function ht(e,t){let n=Z(e,t);if(n<.001)return[];let r=[];for(let i=0;i<dt;i++){let o=(((t-e.phase)/3-i/dt)%1+1)%1,s=a(o/.15)*a((1-o)/.45);s*n<.001||r.push({x:f(ft.x,pt.x,o)+Math.sin(o*h)*.04,y:f(ft.y,pt.y,o),size:f(mt[0],mt[1],o),opacity:s*n})}return r}var gt=[`<g`,``,``,`><!--$-->`,`<!--/--><!--$-->`,`<!--/--></g>`],_t=[`<g`,``,``,` style="`,`">`,`</g>`],vt=[`<svg`,``,``,``,``,``,` preserveAspectRatio="none" style="`,`"><image`,` width="1" height="1" preserveAspectRatio="none"></image></svg>`],yt=[`<g`,``,`><!--$-->`,`<!--/--><g`,``,`><!--$-->`,`<!--/--><!--$-->`,`<!--/--></g></g>`],bt=[`<g`,``,``,`><path d="`,`" fill="none" stroke="#1c1a1d"`,` stroke-linecap="round"`,`></path></g>`],xt=[`<mask`,``,`><g transform="`,`"><g`,`><g`,`>`,`</g></g></g></mask>`],St=[`<rect`,``,``,``,``,``,` fill="#fff"`,`></rect>`],Ct=[`<image`,``,``,``,``,``,``,`></image>`],wt=[`<path`,``,` fill="none"`,``,` stroke-linecap="round" stroke-linejoin="round"`,`></path>`],Tt=[`<image`,``,``,``,``,``,`></image>`],Q=.8,Et=.24,$=e=>Math.round(e*10)/10,Dt=.42,Ot=.2,kt=`mix-blend-mode:plus-lighter`,At=`isolation:isolate`;function jt(e){var t,n,r,i;let a=()=>e.context.frame(),o=k(()=>(a(),e.frozen?K:fe(e.transition,e.context.clock()-e.passage.debut)));O(()=>{let{bascule:e,fini:t}=o();return`${e}|${t}`},t=>{let[n,r]=t.split(`|`);e.onStep?.({bascule:n===`true`,fini:r===`true`})});let s=()=>{let{sx:e,sy:t}=o();return e===1&&t===1?void 0:`scale(${e},${t})`},c=k(()=>(a(),ut(e.dots,e.context.time()))),l=k(()=>(a(),ht(e.zs,e.context.time()))),u=k(()=>(a(),e.padFade?Je(e.padFade,e.context.clock()):1)),d=k(()=>(a(),Z(e.zs,e.context.time()))),f=k(()=>{let t=e.eyeScale??1;return t===1?null:Xe(a().eyes.map((t,n)=>{let r=e.pads[n]??e.pads[0],i=Ze(t.matrix);return i[4]=(i[4]??0)+r.dx*100,i[5]=(i[5]??0)+r.dy*100,{m:i,w:t.w,h:t.h}}),t)}),p=()=>e.eyeScale&&e.eyeScale!==1?` scale(${e.eyeScale})`:``;return[(t=C(),n=S(()=>[x(`opacity`,g(a().bodyAlpha,!0)),x(`transform`,g(s(),!0))],2),r=g(ye({get passage(){return e.passage},get transition(){return e.transition},rendu:o,get clock(){return e.context.clock},get size(){return e.size}})),i=g(E({get each(){return a().eyes},keyed:!1,children:(t,n)=>{var r,i,a,o,s,c,l,m;let h=()=>e.pads[n]??e.pads[0],ee=()=>{let t=e.padFade?.from,r=t?.[n]??t?.[0];return r&&r.file!==h().file&&u()<1?r:null},_=k(()=>Ze(t().matrix)),v=k(()=>nt(_(),t().open,t().rest,t().w,t().h)),T=k(()=>we(h(),v().w,v().h)),O=k(()=>tt(_(),t().open)),A=k(()=>{let e={x:v().w/2,y:v().h/2};return rt(_(),t().open,t().rest,e,Te(T()))}),j=`${e.context.uid}-paupiere-${n}`,M=()=>h().dx*100+(f()?.[n]?.x??0),N=()=>h().dy*100+(f()?.[n]?.y??0),P=(t,n,r)=>{let i=()=>n().length>1;var a=C(),o=S(()=>[x(`opacity`,r()<1?g(r(),!0):g(void 0,!0)),x(`transform`,g(O(),!0)),w(i()?At:void 0)],3),s=g(E({get each(){return n()},keyed:!1,children:n=>{var r,a;return r=C(),a=S(()=>[x(`x`,g(n().x,!0)),x(`y`,g(n().y,!0)),x(`width`,g(n().w,!0)),x(`height`,g(n().h,!0)),x(`viewBox`,g(n().viewBox,!0)),w(i()?kt:void 0),x(`href`,g(e.padHref(t().images[n().src]),!0))],7),b(vt,r,a,a,a,a,a,a,a)}}));return b(_t,a,o,o,o,s)},F=()=>`translate(${M()},${N()}) ${t().matrix}${p()}`;return[D({get when(){return d()<1},get children(){return r=C(),i=()=>x(`mask`,A()?`url(#${g(j,!0)})`:g(void 0,!0)),a=g(D({get when(){return A()},children:e=>{let t=()=>M()+e().x,n=()=>N()+e().y;var r=C(),i=S(()=>[`translate(${g(t(),!0)},${g(n(),!0)}) scale(1,${g(e().s,!0)}) translate(${-t()},${-n()})`,x(`transform`,g(F(),!0)),x(`transform`,g(O(),!0))],3),a=g(E({get each(){return e().bands},keyed:!1,children:e=>{var t,n;return t=C(),n=S(()=>[x(`x`,-e().w),x(`y`,-e().h),x(`width`,2*g(e().w,!0)),x(`height`,2*g(e().h,!0)),x(`rx`,g(e().r,!0)),x(`fill-opacity`,g(e().alpha,!0))],6),b(St,t,n,n,n,n,n,n)}}));return b(xt,r,x(`id`,g(j,!0)),i,i,i,a)}})),o=S(()=>[x(`transform`,g(F(),!0)),x(`opacity`,g(t().alpha,!0))],2),s=g(D({get when(){return ee()},children:e=>{let t=k(()=>we(e(),v().w,v().h));return P(e,t,()=>(1-d())*(1-u()))}})),c=y(()=>g(P(h,T,()=>(1-d())*(ee()?u():1)))),b(yt,r,i,a,o,o,s,c)}}),D({get when(){return d()>0},get children(){return l=C(),m=S(()=>[x(`transform`,g(F(),!0)),x(`opacity`,g(t().alpha,!0)),`M${g($(-t().w/2),!0)},0Q0,${g($(t().w*Dt),!0)} ${g($(t().w/2),!0)},0`,x(`stroke-width`,g($(t().w*Ot),!0)),x(`opacity`,g(d(),!0))],5),b(bt,l,m,m,m,m,m)}})]}})),b(gt,t,n,n,r,i)),D({get when(){return e.dot},children:e=>E({get each(){return c()},keyed:!1,children:t=>{var n,r;return n=C(),r=S(()=>[x(`href`,g(e(),!0)),x(`x`,(g(t().x,!0)-g(t().r,!0)/g(Q,!0))*g(100,!0)),x(`y`,(g(t().y,!0)-g(t().r,!0)/g(Q,!0))*g(100,!0)),x(`width`,2*g(t().r,!0)/g(Q,!0)*g(100,!0)),x(`height`,2*g(t().r,!0)/g(Q,!0)*g(100,!0)),x(`opacity`,g(t().opacity,!0))],6),b(Ct,n,r,r,r,r,r,r)}})}),E({get each(){return l()},keyed:!1,children:t=>{let n=()=>{let{x:e,y:n,size:r}=t(),i=r*100/2,a=e*100,o=n*100;return`M${$(a-i)},${$(o-i)}H${$(a+i)}L${$(a-i)},${$(o+i)}H${$(a+i)}`};var r=C(),i=S(()=>[x(`d`,g(n(),!0)),x(`stroke`,g(e.context.ink(),!0)),x(`stroke-width`,g($(t().size*100*Et),!0)),x(`opacity`,g(t().opacity,!0))],4);return b(wt,r,i,i,i,i)}}),D({get when(){return _(()=>!!e.notif)()?a().notif:null},children:t=>{var n,r;return n=C(),r=S(()=>[x(`href`,g(e.notif,!0)),x(`x`,g(t().x,!0)-g(t().r,!0)/g(Q,!0)),x(`y`,g(t().y,!0)-g(t().r,!0)/g(Q,!0)),x(`width`,2*g(t().r,!0)/g(Q,!0)),x(`height`,2*g(t().r,!0)/g(Q,!0))],5),b(Tt,n,r,r,r,r,r)}})]}var Mt=.55,Nt={gamma:.6,sheen:.08},Pt=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,Ft=e=>e<=.0031308?e*12.92:1.055*e**(1/2.4)-.055;function It(e){let t=Number.parseInt(e.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function Lt(e,{gamma:t,sheen:n}=Nt){let r=It(e).map(e=>Pt(e/255)),i=Pt(Mt),a=new Uint8ClampedArray(768);for(let e=0;e<256;e++){let o=(Pt(e/255)/i)**t,s=n*Math.max(0,(e/255-Mt)/.44999999999999996)**2;for(let t=0;t<3;t++){let n=Math.min(1,r[t]*o);a[e*3+t]=Math.round(Ft(n+(1-n)*s)*255)}}return a}var Rt=new Map;function zt(e){return new Promise((t,n)=>{let r=new Image;r.crossOrigin=`anonymous`,r.onload=()=>t(r),r.onerror=()=>n(Error(`plush: image introuvable ${e}`)),r.src=e})}function Bt(e,t){let n=`${t.toLowerCase()} ${e}`,r=Rt.get(n);return r||(r=zt(e).then(e=>{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`,{willReadFrequently:!0});r.drawImage(e,0,0);let i=r.getImageData(0,0,n.width,n.height),a=Lt(t),o=i.data;for(let e=0;e<o.length;e+=4){let t=o[e]*3;o[e]=a[t],o[e+1]=a[t+1],o[e+2]=a[t+2]}return r.putImageData(i,0,0),new Promise(e=>n.toBlob(t=>e(t?URL.createObjectURL(t):n.toDataURL()),`image/webp`,.92))}),r.catch(()=>Rt.delete(n)),Rt.set(n,r)),r}var Vt=2.4;function Ht(e){let n=k(()=>e.character?re.get(e.character)??null:null),r=t=>e.assetBase?`${e.assetBase}${t}`:P[t]??``,a=k(()=>{let t=n();if(t)return t.ink;let r=e.color??`encre`;return s.get(r)?.hex??(/^#[0-9a-f]{6}$/i.test(r)?r:`#0a0a0c`)}),u=k(()=>n()?.shape??e.shape??`cercle`),d=t.get(c),f=()=>e.state??`idle`,p=()=>e.transition??`flip`,m=k(()=>{let e=n(),t=e?{url:r(e.body),hex:null}:{url:r(ae(u())),hex:a()};return{clef:`${t.hex??``}|${t.url}`,source:t,shape:u(),pads:e?.pads??[ie,ie],face:e?.face??null}}),h=e=>({url:e.url,radii:i.get(e.shape)?.radii??[]}),g=N(()=>{let{source:e,...t}=m();return{...t,url:null}}),[v,y]=A({avant:g,apres:g,debut:-1/0}),[b,x]=A(!0),S=null,C=!1,w=null;function T(t){let n=N(v);if(n.apres.clef===t.clef){S=null,y({avant:n.avant.clef===t.clef?t:n.avant,apres:t,debut:n.debut});return}if(C&&N(p)!==`cut`){S=t;return}if(S=null,!w||N(()=>e.frozenAt)!==void 0||n.apres.url===null||N(p)===`cut`){y({avant:t,apres:t,debut:-1/0}),x(!0);return}C=!0,w.hold(ue[N(p)]),y({avant:n.apres,apres:t,debut:w.clock()}),x(fe(N(p),0).bascule)}function E(e){x(e.bascule),e.fini&&(C=!1,S&&T(S))}let D=()=>{let e=v();return b()?e.apres:e.avant},j=k(()=>{let n=it(f(),D().face??d);if(n)return n;let r=e.expression;return r===void 0?D().face??d:typeof r==`string`?t.get(r)??d:r}),F=e=>e===`failed`?Ke(D().pads,D().face??d):D().pads,te=k(()=>F(f())),I=new Set;O(()=>D().pads.flatMap(e=>[r(e.images.x),r(e.images.y)]).join(`|`),e=>{if(!(typeof Image>`u`)){I.clear();for(let t of e.split(`|`)){if(!t)continue;let e=new Image;e.src=t,I.add(e)}}}),M(()=>I.clear());let ne=k(()=>{let e=v();return{avant:h(e.avant),apres:h(e.apres),debut:e.debut}}),[L,R]=A(null),[z,se]=A(null),B=!0;M(()=>{B=!1});function V(e,t){let n=0;O(()=>{let{url:t,hex:n}=e();return`${n??``}|${t}`},e=>{let[r,i]=e.split(`|`),a=++n;if(!r)return void t(i);typeof document>`u`||Bt(i,r).then(e=>B&&a===n&&t(e),()=>B&&a===n&&t(null))})}V(()=>m().source,e=>{let{source:t,...n}=N(m);T({...n,url:e})}),V(()=>({url:r(oe),hex:a()}),R),V(()=>({url:r(oe),hex:o}),se);let ce=Ae(N(f)),H=ce,U=e=>({run:t=>H=e(t)}),[le,W]=A(U(()=>ce));O(f,(e,t)=>{t!==void 0&&W(U(Fe(H,e)))});let[G,de]=A(N(f)===`thinking`?{...X,from:1,on:!0}:X),[K,pe]=A(N(f)===`asleep`?{...X,from:1,on:!0}:X),[q,me]=A(qe);O(f,(t,n)=>{if(!w||n===void 0||t===`failed`==(n===`failed`)||N(()=>e.frozenAt)!==void 0)return;let r=N(()=>F(n));me(e=>Ye(e,r,w.clock()))}),O(f,e=>{w&&(w.hold(Math.max(Y(e),e===`failed`?Ne:0,ct,l.SHAPE_MORPH)),de(t=>lt(t,e===`thinking`,w.clock(),e)),pe(t=>lt(t,e===`asleep`,w.clock(),e)))});let he=N(()=>[{state:Ee(f()),duration:Vt}]);return ee({get size(){return e.size},get shape(){return D().shape},get color(){return a()},get expression(){return j()},get state(){return Ee(f())},cycle:he,get fps(){return e.fps},get autoPause(){return e.autoPause},get paused(){return e.paused},get frozenAt(){return e.frozenAt},get follow(){return _(()=>!!e.follow)()?f()===`idle`||f()===`wink`||f()===`wide`||f()===`notify`:e.follow},get gaze(){return le().run},get initialPhase(){return e.initialPhase},get ariaLabel(){return e.ariaLabel??`Animated plush Bloub avatar`},get class(){return e.class},get style(){return e.style},layer:t=>(w=t,jt({context:t,get passage(){return ne()},get transition(){return p()},get frozen(){return e.frozenAt!==void 0},onStep:E,get size(){return e.size},get pads(){return te()},get eyeScale(){return e.eyeScale},get padFade(){return q()},padHref:r,get dot(){return L()},get notif(){return z()},get dots(){return G()},get zs(){return K()}}))})}export{B as DEFAULT_TRANSITION,z as PLUSH_CHARACTERS,re as PLUSH_CHARACTER_BY_ID,F as PLUSH_SHAPES,te as PLUSH_STATES,se as PLUSH_TRANSITIONS,Ht as PlushBot,Lt as tintRamp};