@lemoncat7/dsh-theme-xiaohei 0.4.5 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -91
- package/docs/releases/0.4.6.md +17 -0
- package/docs/releases/README.md +14 -0
- package/lib/bloub-heixiu/layout.d.ts +16 -0
- package/lib/bloub-heixiu/layout.js +14 -0
- package/lib/bloub-heixiu/runtime.js +41 -10
- package/lib/client.companion.js +100 -0
- package/lib/client.decorations.js +1 -1
- package/lib/client.js +32 -128
- package/lib/companion-entry.d.ts +3 -0
- package/lib/companion-entry.js +3 -0
- package/lib/deferred-companion.d.ts +5 -0
- package/lib/deferred-companion.js +9 -0
- package/lib/deferred-decorations.d.ts +1 -1
- package/lib/deferred-decorations.js +2 -2
- package/lib/host-dom.d.ts +1 -1
- package/lib/host-dom.js +6 -2
- package/lib/plugin.js +2 -2
- package/package.json +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
window.__ModuleLoader__.load({ id: "@lemoncat7/dsh-theme-xiaohei", chunk: "client.decorations.js", factory: (require) => { var module = { exports: {} }; var exports = module.exports;
|
|
2
|
-
"use strict";var Q=Object.defineProperty;var Re=Object.getOwnPropertyDescriptor;var Ae=Object.getOwnPropertyNames;var Ie=Object.prototype.hasOwnProperty;var Te=(e,r)=>{for(var t in r)Q(e,t,{get:r[t],enumerable:!0})},_e=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Ae(r))!Ie.call(e,o)&&o!==t&&Q(e,o,{get:()=>r[o],enumerable:!(i=Re(r,o))||i.enumerable});return e};var ke=e=>_e(Q({},"__esModule",{value:!0}),e);var De={};Te(De,{installDecorations:()=>Se});module.exports=ke(De);var B=new WeakMap;function oe(e,r){let t=e.defaultView;if(e.body===void 0||t===null||typeof t.MutationObserver!="function")return()=>{};let i=B.get(e);if(i===void 0){let a=new Set,n={listeners:a,queued:!1},d=()=>{if(n.queued=!1,delete n.frame,B.get(e)===n)for(let s of[...a])try{s()}catch(l){t.setTimeout(()=>{throw l},0)}};n.observer=new t.MutationObserver(()=>{n.queued||(n.queued=!0,typeof t.requestAnimationFrame=="function"?n.frame=t.requestAnimationFrame(d):queueMicrotask(d))}),n.observer.observe(e.body,{childList:!0,subtree:!0}),B.set(e,n),i=n}i.listeners.add(r);let o=!0;return()=>{if(!o)return;o=!1;let a=B.get(e);a!==void 0&&(a.listeners.delete(r),!(a.listeners.size>0)&&(a.observer?.disconnect(),a.frame!==void 0&&t.cancelAnimationFrame(a.frame),B.delete(e)))}}var U="[data-slot='sidebar']",ee={sidebar:U,sidebarShell:`#root ${U} > div`,sidebarColumn:`#root :has(> ${U})`,composerCard:"#root [data-composer-card='true']",composerHeroMark:"#root .xiaohei-brand-mark[data-brand-context='hero']",composerHeroRow:"[class*='_headline']"};var se="dsh-theme-xiaohei/scene-layer";var W={pose:"hidden",left:0,top:0,width:0,height:0},te=.71,ce=.63,He=.44;function de(e){let{sidebar:r,scroll:t,flow:i,viewportWidth:o,viewportHeight:a,controls:n}=e,d=Math.min(r.bottom,a)-148,s=Math.max(r.top+24,96);if(d-s<130||r.right>i.left)return W;let l=i.right+56,f=Math.min(250,t.right-l-20,(d-s)*te,340*te);if(f>=190){let u=f/te;return{pose:"seated",left:t.right-f-16,top:s+(d-s-u)*.6,width:f,height:u}}let c=o>760?52:0,m=i.left-c-r.right;if(m>=66){let u=Math.min(104,m-12,(d-s)*ce),_=u/ce;return{pose:"peek",left:r.right-6,top:s+Math.min(160,(d-s-_)*.5),width:u,height:_}}if(r.right-r.left>100)return W;let p=r.left+7,h=Math.min(60,i.left-c-p-10);if(h<40)return W;let g=h/He,v=n.filter(u=>u.right>p&&u.left<p+h).map(u=>({start:Math.max(s,u.top-12),end:Math.min(d,u.bottom+12)})).filter(u=>u.end>u.start).sort((u,_)=>u.start-_.start),b=s,E={start:s,end:s};for(let u of[...v,{start:d,end:d}])u.start-b>E.end-E.start&&(E={start:b,end:u.start}),b=Math.max(b,u.end);return E.end-E.start<g+12?W:{pose:"halfpeek",left:p,top:E.start+(E.end-E.start-g)*.45,width:h,height:g}}function le(e,r){let t="seated",i=e.now(),o,a=!0,n=!1,d=()=>{o!==void 0&&e.clearTimeout(o),o=void 0},s=c=>{c!==t&&(t=c,r(c))},l=()=>{if(d(),a||n||t==="doze")return;let c=t==="seated"?3e4:18e4;o=e.setTimeout(f,Math.max(1,i+c-e.now()))};function f(){if(o=void 0,a||n)return;let c=e.now()-i;s(c>=18e4?"doze":c>=3e4?"chin":"seated"),l()}return{get pose(){return t},activity(){if(a||n)return;let c=e.now();t==="seated"&&c-i<1e3||(i=c,t!=="seated"&&(s("seated"),l()))},setPaused(c){n||c===a||(a=c,d(),i=e.now(),s("seated"),a||l())},dispose(){n=!0,d()}}}var Y=["seated","peek","chin","doze","halfpeek"];function Le(e){let r=new Map;function t(i){let o=r.get(i);return o||(o=Promise.resolve().then(()=>e(i)).catch(a=>{throw r.delete(i),a}),r.set(i,o)),o}return{async pose(i,o){return(await t(`./client.pose-${i}-${o}.js`)).image},async rig(i,o){return i==="doze"||!Y.includes(i)?void 0:(await t(`./client.rig-${i}-${o}.js`)).rig}}}var G=Le(e=>require.async(e));function ue(e,r,t=Math.random){let i,o=!1,a="",n,d=0,s=0,l=()=>{i!==void 0&&e.clearTimeout(i),i=void 0};function f(){a="",r(void 0,0),n&&!o&&(i=e.setTimeout(m,2800+t()*2800))}function c(p){let h=n?.[p];if(!h||o)return;l(),a=p;let g=e.performance.now(),v=()=>{if(i=void 0,!n||o)return;let b=Math.min(1,(e.performance.now()-g)/h.duration);if(r(a,b),b>=1){f();return}i=e.setTimeout(v,1e3/60)};v()}function m(){if(i=void 0,!n||o)return;let p=Object.keys(n).filter(v=>v!=="blink"&&v!=="attention"),h=p.filter(v=>v.startsWith("ear")),g=h.length&&d>=2?h[s++%h.length]:t()<.72&&n.blink||!p.length?"blink":p[Math.floor(t()*p.length)];g.startsWith("ear")?d=0:d++,c(g)}return{setClips(p){o||p===n||(l(),n=p,a="",d=0,s=0,r(void 0,0),n&&(i=e.setTimeout(m,1200+t()*800)))},attention(){a||c("attention")},dispose(){o=!0,l(),n=void 0,r(void 0,0)}}}var he=e=>{let r=Math.max(0,Math.min(1,e));return r*r*(3-2*r)};function ne(e){return e<=0||e>=1?0:e<.3?he(e/.3):e<.4?1:1-he((e-.4)/.6)}function me(e){return ne((e-.12)/.16)}var re={seated:[{left:[285,223],right:[326,224],upper:[302,188],lower:[310,276],iris:[309,230,13,20,0],skin:[315,258]},{left:[373,221],right:[421,226],upper:[387,186],lower:[393,277],iris:[393,228,15,22,0],skin:[391,261]}],peek:[{left:[80,214],right:[119,221],upper:[103,186],lower:[91,267],iris:[102,225,14,20,.25],skin:[110,253]},{left:[171,252],right:[210,265],upper:[195,221],lower:[175,300],iris:[186,260,15,20,.4],skin:[186,288]}],chin:[{left:[252,252],right:[290,247],upper:[266,223],lower:[287,297],iris:[278,258,14,19,-.3],skin:[291,285]},{left:[339,234],right:[387,227],upper:[358,196],lower:[365,280],iris:[361,235,15,21,-.25],skin:[367,269]}],halfpeek:[{left:[89,390],right:[159,395],upper:[116,337],lower:[110,471],iris:[116,401,23,30,.22],skin:[117,445]}]};function V(e,r){if(!Number.isFinite(e)||!Number.isFinite(r))return[0,0];let t=Math.max(1,Math.hypot(e,r));return[e/t,r/t]}function ie(e,r){let t=Math.max(0,Math.min(1,r)),i=(e.left[1]+e.right[1])/2,o=(e.lower[1]-i)*.24,a=[(e.left[0]+e.right[0])/2,i+o+(e.right[0]-e.left[0])*.18],n=d=>[d[0]+(a[0]-d[0])*t,d[1]+(a[1]-d[1])*t];return{upper:n(e.upper),lower:n(e.lower),left:[e.left[0],e.left[1]+o*t],right:[e.right[0],e.right[1]+o*t]}}function J(e,r,t){let i=0,o=1;for(let d=0;d<14;d++){let s=(i+o)/2,l=1-s;l*l*e.left[0]+2*l*s*r[0]+s*s*e.right[0]<t?i=s:o=s}let a=(i+o)/2,n=1-a;return n*n*e.left[1]+2*n*a*r[1]+a*a*e.right[1]}function fe(e,r,t){let i=Math.floor(t.left[0]-9),o=Math.ceil(t.right[0]+9),a=Math.floor(Math.min(t.upper[1],t.left[1],t.right[1])-5),n=Math.ceil(Math.max(t.lower[1],t.left[1],t.right[1])+5),d=o-i,s=n-a,l=()=>{let y=e.createElement("canvas");return y.width=d,y.height=s,y},f=l(),c=l(),m=l(),p=f.getContext("2d"),h=c.getContext("2d"),g=m.getContext("2d"),v=r.getImageData(0,0,r.canvas.width,r.canvas.height),b=(y,w)=>{let M=(Math.max(0,Math.min(v.height-1,Math.round(w/2)))*v.width+Math.max(0,Math.min(v.width-1,Math.round(y/2))))*4;return[v.data[M],v.data[M+1],v.data[M+2]]},E=b(...t.skin),u=p.createImageData(d,s),_=h.createImageData(d,s),k=y=>y.every((w,M)=>Math.abs(w-E[M])<25),z=(y,w,M)=>{if(k(M))return M;let P=[E[0]*.05,E[1]*.05,E[2]*.05],A=.05;for(let x of[6,12,20,30])for(let D=0;D<8;D++){let C=b(y+Math.cos(D*Math.PI/4)*x,w+Math.sin(D*Math.PI/4)*x);if(!k(C))continue;let H=1/x;A+=H;for(let T=0;T<3;T++)P[T]+=C[T]*H}return P.map(x=>Math.round(x/A))};for(let y=0;y<d;y++){let w=i+y,M=J(t,t.upper,w);for(let P=0;P<s;P++){let A=a+P,x=b(w,A),D=(P*d+y)*4,C=1-(x[0]+x[1]+x[2])/Math.max(1,E[0]+E[1]+E[2]),H=x[1]>x[0]*1.15&&x[1]>x[2]*1.12,q=A>=M-12&&A<=M+3&&!H?Math.max(0,Math.min(1,(C-.3)/.35)):0;u.data.set([...x,Math.round(q*255)],D),_.data.set([...z(w,A,x),255],D)}}p.putImageData(u,0,0),h.putImageData(_,0,0);let I=g.createImageData(d,s);for(let y=0;y<u.data.length;y+=4)I.data[y+3]=u.data[y+3]>4?255:0;g.putImageData(I,0,0);let R=l(),S=R.getContext("2d");for(let[y,w]of[[0,0],[-1,0],[1,0],[0,-1],[0,1]])S.drawImage(m,y,w);return g.drawImage(R,0,0),g.translate(-i,-a),g.beginPath(),g.moveTo(t.left[0]-7,t.left[1]),g.quadraticCurveTo(t.upper[0],t.upper[1]-4,t.right[0]+7,t.right[1]),g.quadraticCurveTo(t.lower[0],t.lower[1]+20,t.left[0]-7,t.left[1]),g.closePath(),g.fill(),h.globalCompositeOperation="destination-in",h.filter="blur(0.65px)",h.drawImage(m,0,0),h.filter="none",{ink:f,skin:c,left:i,top:a,width:d,height:s}}function pe(e,r,t){let i=e.canvas.ownerDocument,o=i.createElement("canvas");o.width=r.width,o.height=r.height;let a=o.getContext("2d",{willReadFrequently:!0});a.drawImage(r,0,0);let n=f=>{let c=a.getImageData(Math.round(f[0]/2),Math.round(f[1]/2),1,1).data;return[c[0],c[1],c[2]]},d=f=>`rgb(${f.map(c=>Math.round(c)).join(" ")})`,s=t.map(f=>{let[c,m,p,h,g]=f.iris,v=i.createElement("canvas");v.width=Math.ceil(p*2+4),v.height=Math.ceil(h*2+4);let b=v.getContext("2d");return b.translate(v.width/2,v.height/2),b.rotate(g),b.beginPath(),b.ellipse(0,0,p,h,0,0,Math.PI*2),b.clip(),b.rotate(-g),b.drawImage(r,0,0,r.width,r.height,-c,-m,r.width*2,r.height*2),{eye:f,iris:v,skin:n(f.skin),material:fe(i,a,f)}});function l(f,c){let{upper:m,lower:p,left:h,right:g}=ie(f,c);e.beginPath(),e.moveTo(...h),e.quadraticCurveTo(...m,...g),e.quadraticCurveTo(...p,...h),e.closePath()}return(f,c)=>{let[m,p]=V(...f);e.save(),e.scale(.5,.5);for(let{eye:h,iris:g,skin:v,material:b}of s){let[E,u,_,k]=h.iris;if(e.save(),e.drawImage(b.skin,b.left,b.top),e.save(),l(h,0),e.clip(),c<.999){e.save(),l(h,c),e.clip();let I=e.createLinearGradient(0,u-k,0,u+k),S=(v[0]+v[1]+v[2])/765>.65?[255,253,241]:[166,185,193];I.addColorStop(0,d(S.map(M=>M*.83))),I.addColorStop(.5,d(S)),e.fillStyle=I,e.fillRect(E-70,u-70,140,140);let y=m*_*.26,w=p*k*.13;e.drawImage(g,E-g.width/2+y,u-g.height/2+w),e.restore()}e.restore();let z=ie(h,c);for(let I=0;I<b.width;I++){let R=b.left+I,S=J({...h,left:z.left,right:z.right},z.upper,R)-J(h,h.upper,R);e.drawImage(b.ink,I,0,1,b.height,R,b.top+S,1,b.height)}e.restore()}e.restore()}}var F=[[284,328],[310,347],[324,373],[319,398],[307,423],[307,448],[319,464]];function ge(e,r,t,i){let o=Math.max(1,t-r),a=Math.max(0,Math.min(1,(t-e)/o));return a===0?0:Math.sin(i)*Math.min(20,o*.55)*a*a}function be(e,r){return e.reduce((t,i,o)=>{let a=t[o-1],n=(a?.angle??0)+(r[o]??0);if(!a)t.push({x:i[0],y:i[1],angle:n});else{let d=e[o-1],s=i[0]-d[0],l=i[1]-d[1],f=Math.cos(a.angle),c=Math.sin(a.angle);t.push({x:a.x+s*f-l*c,y:a.y+s*c+l*f,angle:n})}return t},[])}function we(e,r,t=F){let i=1/0,o=0,a=0;for(let n=0;n<t.length-1;n++){let d=t[n],s=t[n+1],l=s[0]-d[0],f=s[1]-d[1],c=Math.max(0,Math.min(1,((e-d[0])*l+(r-d[1])*f)/(l*l+f*f))),m=(e-d[0]-l*c)**2+(r-d[1]-f*c)**2;m<i&&(i=m,o=n,a=c)}return{x:e,y:r,bone:o,weight:a}}function ve(e,r,t=F){let i=0,o=0;for(let a=0;a<2;a++){let n=e.bone+a,d=t[n],s=r[n],l=a?e.weight:1-e.weight,f=e.x-d[0],c=e.y-d[1],m=Math.cos(s.angle),p=Math.sin(s.angle);i+=l*(s.x+f*m-c*p),o+=l*(s.y+f*p+c*m)}return[i,o]}function ae(e,r,t){let i=Math.max(0,Math.min(1,e)),o=Math.sin(Math.PI*i)**2;return Array.from({length:r},(a,n)=>o*(t?n?.12:0:.32)*Math.sin(i*Math.PI*(t?3:4)-n*(t?.65:1.1)))}function ye(e,r,t,i=[]){let o=t.get(r.layers.body.src),a=o?pe(e,o,i):void 0,n=r.layers.tail,d=[],s=[];if(n){let[c,m,p,h]=n.box,g=Math.ceil((p-c)/10),v=Math.ceil((h-m)/10);for(let b=0;b<=v;b++)for(let E=0;E<=g;E++)d.push(we(c+(p-c)*E/g,m+(h-m)*b/v));for(let b=0;b<v;b++)for(let E=0;E<g;E++){let u=b*(g+1)+E;s.push([u,u+1,u+g+1],[u+1,u+g+2,u+g+1])}}function l(c){let m=r.layers[c],p=m&&t.get(m.src);if(m&&p){let[h,g,v,b]=m.box;e.drawImage(p,h,g,v-h,b-g)}}function f(c){if(!n)return;let m=t.get(n.src);if(!m)return;if(c<=0||c>=1){l("tail");return}let p=be(F,ae(c,F.length,!0)),h=d.map(b=>ve(b,p)),[g,v]=n.box;for(let b of s){let[E,u,_]=b,k=d[E],z=d[u],I=d[_],R=h[E],S=h[u],y=h[_],w=z.x-k.x,M=z.y-k.y,P=I.x-k.x,A=I.y-k.y,x=w*A-M*P,D=((S[0]-R[0])*A-(y[0]-R[0])*M)/x,C=((S[1]-R[1])*A-(y[1]-R[1])*M)/x,H=((y[0]-R[0])*w-(S[0]-R[0])*P)/x,T=((y[1]-R[1])*w-(S[1]-R[1])*P)/x;e.save(),e.beginPath();let q=(R[0]+S[0]+y[0])/3,O=(R[1]+S[1]+y[1])/3;[R,S,y].forEach((L,$)=>{let X=L[0]-q,j=L[1]-O,N=1+1.2/Math.max(1,Math.hypot(X,j));$?e.lineTo(q+X*N,O+j*N):e.moveTo(q+X*N,O+j*N)}),e.closePath(),e.clip(),e.transform(D,C,H,T,R[0]-D*(k.x-g)-H*(k.y-v),R[1]-C*(k.x-g)-T*(k.y-v)),e.drawImage(m,0,0),e.restore()}}return(c,m,p=[0,0])=>{e.clearRect(0,0,r.size[0],r.size[1]);let h=c==="attention"?Math.max(0,Math.min(1,(m-.03)/.65)):m,g=ae(h,r.ears.length,!1);r.ears.forEach(([,b],E)=>{let u=r.layers["ear"+E],_=u&&t.get(u.src);if(!u||!_)return;let k=c==="attention"||c==="ear"+E?g[E]:0;if(Math.abs(k)<1e-8){l("ear"+E);return}let[z,I,R,S]=u.box;for(let y=0;y<_.height;y++){let w=I+y*(S-I)/_.height;e.drawImage(_,0,y,_.width,1,z+ge(w,I,b,k),w,R-z,(S-I)/_.height)}}),l("body"),f(c==="attention"?Math.max(0,Math.min(1,(m-.22)/.78)):c==="tail"?m:0);let v=c==="blink"?ne(m):c==="attention"?me(m):0;a?.(p,v)}}function Ee(e,r){let t=[0,0],i=[0,0],o,a=0,n=!1;function d(l){if(o=void 0,n)return;let f=Math.min(64,Math.max(0,l-a));a=l;let c=1-Math.exp(-f/95);t=[t[0]+(i[0]-t[0])*c,t[1]+(i[1]-t[1])*c];let m=Math.hypot(t[0]-i[0],t[1]-i[1])<.001;m&&(t=i),r(t),m||(o=e.requestAnimationFrame(d))}function s(){o!==void 0&&e.cancelAnimationFrame(o),o=void 0}return{target(l,f){n||(i=V(l,f),o===void 0&&Math.hypot(t[0]-i[0],t[1]-i[1])>=.001&&(a=e.performance.now(),o=e.requestAnimationFrame(d)))},reset(){s(),i=t=[0,0],r(t)},dispose(){n=!0,s()}}}function Ce(e){let r=e.defaultView,t=r.matchMedia("(prefers-reduced-motion: reduce)"),i=new Map,o=new Map,a=!1,n,d,s,l,f="",c="",m=0,p=!1,h=0,g="",v,b=-1/0,E=[0,0],u,_=0,k,z=()=>{l&&n&&(l(u,_,E),n.dataset.motion=u??"rig-rest")},I=Ee(r,C=>{E=C,z()}),R=()=>{v!==void 0&&r.clearTimeout(v),v=void 0};function S(C){if(o.has(C))return o.get(C);if(i.has(C))return Promise.resolve();let H=new r.Image;H.src=C;let T=H.decode().then(()=>{a||i.set(C,H)},()=>{}).finally(()=>o.delete(C));return o.set(C,T),T}let y=ue(r,(C,H)=>{!s||!n||!l||(u=C,_=H,z())});function w(){if(a)return;let C=e.documentElement.dataset.xiaoheiAppearance==="light"?"light":"dark",H=e.documentElement.hasAttribute("data-xiaohei-sidebar-resizing"),T=!e.hidden&&!t.matches&&!H&&n?`${f}-${C}`:"";if(T===g&&c===C)return;g=T,R(),l=void 0,y.setClips(void 0),I.reset(),k=void 0,u=void 0,_=0;let q=++m;if(s?.remove(),s=void 0,n&&(n.dataset.motion="rest"),d=void 0,c=C,p=!1,!T||!n)return;let O=n;G.rig(f,C).then(async L=>{if(!L||a||q!==m||(await Promise.all(Object.values(L.layers).map(X=>S(X.src))),a||q!==m||Object.values(L.layers).some(X=>!i.get(X.src))))return;d=L,s=e.createElement("canvas"),s.className="xiaohei-character-motion",s.width=L.size[0],s.height=L.size[1];let $=s.getContext("2d");if(!$){s=void 0;return}O.append(s),l=ye($,L,i,re[f]),y.setClips({blink:{duration:280},...Object.fromEntries(L.ears.map((X,j)=>["ear"+j,{duration:1050}])),...L.layers.tail?{tail:{duration:2400}}:{},attention:{duration:2400}})}).catch(()=>{})}let M=C=>{if(!n||!l||C.pointerType!=="mouse")return;let H=r.performance.now();(!k||H-h>=100)&&(k=n.getBoundingClientRect(),h=H);let T=k,q=re[f];if(d&&q?.length){let L=Math.min(T.width/d.size[0],T.height/d.size[1]),$=q.reduce((Z,K)=>Z+K.iris[0],0)/q.length/2,X=q.reduce((Z,K)=>Z+K.iris[1],0)/q.length/2,j=T.left+$*L,N=T.top+(T.height-d.size[1]*L)/2+X*L;I.target((C.clientX-j)/Math.max(220,r.innerWidth*.32),(C.clientY-N)/Math.max(180,r.innerHeight*.32))}let O=C.clientX>=T.left-70&&C.clientX<=T.right+70&&C.clientY>=T.top-50&&C.clientY<=T.bottom+50;if(O||R(),O&&!p&&H-b>6e3){let L=m;v=r.setTimeout(()=>{v=void 0,!a&&p&&L===m&&(b=r.performance.now(),y.attention())},180)}p=O};t.addEventListener("change",w);let P=()=>{I.target(0,0),p=!1,R()},A=C=>{C.relatedTarget||P()},x=()=>{k=void 0};e.addEventListener("pointerout",A),r.addEventListener("blur",P),r.addEventListener("resize",x),e.addEventListener("visibilitychange",w),e.addEventListener("pointermove",M,{passive:!0});let D=new r.MutationObserver(w);return D.observe(e.documentElement,{attributes:!0,attributeFilter:["data-xiaohei-appearance","data-xiaohei-sidebar-resizing"]}),{setPose(C,H){(C!==n||f!==H)&&(R(),m++,g="",l=void 0,y.setClips(void 0),I.reset(),k=void 0,s?.remove(),s=void 0,d=void 0,n&&(n.dataset.motion="rest")),n=C,f=H,w()},dispose(){a=!0,R(),m++,y.dispose(),I.dispose(),s?.remove(),l=void 0,i.clear(),o.clear(),n&&(n.dataset.motion="rest"),t.removeEventListener("change",w),D.disconnect(),e.removeEventListener("visibilitychange",w),e.removeEventListener("pointermove",M),e.removeEventListener("pointerout",A),r.removeEventListener("blur",P),r.removeEventListener("resize",x)}}}var Me="dsh-theme-xiaohei/wallpaper-character";function xe(e=typeof document>"u"?void 0:document,r=G.pose){let t=e?.defaultView;if(!e||!t)return()=>{};let i=!1,o,a,n,d=[],s=!0,l={pose:"hidden",left:0,top:0,width:0,height:0},f=new Map,c=new Set,m=new Set,p=typeof t.matchMedia=="function"?Ce(e):void 0,h=le({now:()=>t.performance.now(),setTimeout:(w,M)=>t.setTimeout(w,M),clearTimeout:w=>t.clearTimeout(w)},()=>u()),g=new WeakMap,v=typeof t.ResizeObserver=="function"?new t.ResizeObserver(w=>{for(let M of w){let P=g.get(M.target),A=M.contentRect.width,x=M.contentRect.height;g.set(M.target,{width:A,height:x}),(!P||P.width!==A||M.target===d[0]&&P.height!==x)&&(s=!0)}s&&(u(),_())}):void 0;function b(){if(i||!e)return;if(e.documentElement?.hasAttribute("data-xiaohei-sidebar-resizing")){s=!0,n&&n.dataset.pose!=="hidden"&&(n.dataset.pose="hidden"),h.setPaused(!0),p?.setPose(void 0,"hidden"),_();return}let w=e.getElementById(se),M=[e.querySelector(ee.sidebarShell),e.querySelector("[data-conversation-scroll]"),e.querySelector("[data-chat-flow]"),e.querySelector(ee.composerCard)];if(M.some((O,L)=>O!==d[L])){d=M,v?.disconnect();for(let O of d)O&&v?.observe(O);s=!0}if(!w){n?.remove(),n=void 0,h.setPaused(!0),p?.setPose(void 0,"hidden");return}if(!n||n.parentElement!==w){n?.remove(),e.getElementById(Me)?.remove(),n=e.createElement("div"),n.id=Me,n.className="xiaohei-wallpaper-character",n.setAttribute("aria-hidden","true"),n.dataset.pose="hidden";for(let O of Y){let L=e.createElement("span");L.className=`xiaohei-wallpaper-character__${O}`,n.append(L)}w.append(n),s=!0}if(!s){E();return}s=!1;let[P,A,x,D]=d;if(!P||!A||!D){l={...l,pose:"hidden"},E();return}let C=P.getBoundingClientRect(),H=C.width<100?[...P.querySelectorAll('button,a,input,[role="button"],[role="treeitem"]')].map(O=>O.getBoundingClientRect()).filter(O=>O.width>0&&O.height>0):[],T=D.getBoundingClientRect(),q=x?.getBoundingClientRect()??{left:T.left+16,right:T.right-16,top:0,bottom:0};l=de({sidebar:C,scroll:A.getBoundingClientRect(),flow:q,viewportWidth:t.innerWidth,viewportHeight:t.innerHeight,controls:H}),E()}function E(){if(!n||i)return;h.setPaused(e.hidden||l.pose!=="seated");let w=e.hidden?"hidden":l.pose==="seated"?h.pose:l.pose;if(w==="hidden"){n.dataset.pose!=="hidden"&&(n.dataset.pose="hidden"),p?.setPose(void 0,"hidden");return}let M=e.documentElement.dataset.xiaoheiAppearance==="light"?"light":"dark",P=`${w}-${M}`;if(!f.has(P)){p?.setPose(void 0,"hidden"),(l.pose!=="seated"||!["seated","chin","doze"].includes(n.dataset.pose??""))&&(n.dataset.pose="hidden"),!c.has(P)&&!m.has(P)&&(c.add(P),r(w,M).then(async x=>{if(i)return;let D=new t.Image;D.src=x,await D.decode(),!i&&(c.delete(P),f.set(P,x),u())}).catch(()=>{c.delete(P),m.add(P)}));return}let A=n.querySelector(`.xiaohei-wallpaper-character__${w}`);A.dataset.appearance!==M&&(A.style.setProperty(`--xiaohei-${w}-art`,`url("${f.get(P)}")`),A.dataset.appearance=M);for(let x of["left","top","width","height"]){let D=`${Math.round(l[x]*100)/100}px`;A.style[x]!==D&&(A.style[x]=D)}A.dataset.ready||(A.dataset.ready="true"),n.dataset.pose!==w&&(n.dataset.pose=w),p?.setPose(A,w)}function u(){i||o!==void 0||(o=t.requestAnimationFrame(()=>{o=void 0,b()}))}function _(){a!==void 0&&t.clearTimeout(a),a=t.setTimeout(()=>{a=void 0,s=!0,u()},240)}let k=oe(e,u),z=new t.MutationObserver(u);z.observe(e.documentElement,{attributes:!0,attributeFilter:["data-xiaohei-appearance"]});let I=()=>{s=!0,u(),_()};t.addEventListener("resize",I,{passive:!0});let R=()=>h.activity(),S=["pointermove","pointerdown","keydown","input","wheel"];for(let w of S)e.addEventListener(w,R,{passive:!0,capture:!0});let y=()=>{e.hidden&&h.setPaused(!0),u()};return e.addEventListener("visibilitychange",y),u(),()=>{i=!0,o!==void 0&&t.cancelAnimationFrame(o),a!==void 0&&t.clearTimeout(a),k(),v?.disconnect(),z.disconnect(),h.dispose(),p?.dispose();for(let w of S)e.removeEventListener(w,R,!0);e.removeEventListener("visibilitychange",y),t.removeEventListener("resize",I),n?.remove()}}var Pe=`
|
|
2
|
+
"use strict";var Q=Object.defineProperty;var Re=Object.getOwnPropertyDescriptor;var Ae=Object.getOwnPropertyNames;var Ie=Object.prototype.hasOwnProperty;var Te=(e,r)=>{for(var t in r)Q(e,t,{get:r[t],enumerable:!0})},_e=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Ae(r))!Ie.call(e,o)&&o!==t&&Q(e,o,{get:()=>r[o],enumerable:!(i=Re(r,o))||i.enumerable});return e};var ke=e=>_e(Q({},"__esModule",{value:!0}),e);var De={};Te(De,{installDecorations:()=>Se});module.exports=ke(De);var B=new WeakMap;function oe(e,r){let t=e.defaultView;if(e.body===void 0||t===null||typeof t.MutationObserver!="function")return()=>{};let i=B.get(e);if(i===void 0){let a=new Set,n={listeners:a,queued:!1,records:[]},d=()=>{if(n.queued=!1,delete n.frame,B.get(e)!==n)return;let s=n.records;n.records=[];for(let u of[...a])try{u(s)}catch(h){t.setTimeout(()=>{throw h},0)}};n.observer=new t.MutationObserver((s=[])=>{n.records.push(...s),!n.queued&&(n.queued=!0,typeof t.requestAnimationFrame=="function"?n.frame=t.requestAnimationFrame(d):queueMicrotask(d))}),n.observer.observe(e.body,{childList:!0,subtree:!0}),B.set(e,n),i=n}i.listeners.add(r);let o=!0;return()=>{if(!o)return;o=!1;let a=B.get(e);a!==void 0&&(a.listeners.delete(r),!(a.listeners.size>0)&&(a.observer?.disconnect(),a.frame!==void 0&&t.cancelAnimationFrame(a.frame),B.delete(e)))}}var U="[data-slot='sidebar']",ee={sidebar:U,sidebarShell:`#root ${U} > div`,sidebarColumn:`#root :has(> ${U})`,composerCard:"#root [data-composer-card='true']",composerHeroMark:"#root .xiaohei-brand-mark[data-brand-context='hero']",composerHeroRow:"[class*='_headline']"};var se="dsh-theme-xiaohei/scene-layer";var W={pose:"hidden",left:0,top:0,width:0,height:0},te=.71,ce=.63,He=.44;function de(e){let{sidebar:r,scroll:t,flow:i,viewportWidth:o,viewportHeight:a,controls:n}=e,d=Math.min(r.bottom,a)-148,s=Math.max(r.top+24,96);if(d-s<130||r.right>i.left)return W;let u=i.right+56,h=Math.min(250,t.right-u-20,(d-s)*te,340*te);if(h>=190){let l=h/te;return{pose:"seated",left:t.right-h-16,top:s+(d-s-l)*.6,width:h,height:l}}let c=o>760?52:0,f=i.left-c-r.right;if(f>=66){let l=Math.min(104,f-12,(d-s)*ce),_=l/ce;return{pose:"peek",left:r.right-6,top:s+Math.min(160,(d-s-_)*.5),width:l,height:_}}if(r.right-r.left>100)return W;let p=r.left+7,m=Math.min(60,i.left-c-p-10);if(m<40)return W;let g=m/He,v=n.filter(l=>l.right>p&&l.left<p+m).map(l=>({start:Math.max(s,l.top-12),end:Math.min(d,l.bottom+12)})).filter(l=>l.end>l.start).sort((l,_)=>l.start-_.start),b=s,E={start:s,end:s};for(let l of[...v,{start:d,end:d}])l.start-b>E.end-E.start&&(E={start:b,end:l.start}),b=Math.max(b,l.end);return E.end-E.start<g+12?W:{pose:"halfpeek",left:p,top:E.start+(E.end-E.start-g)*.45,width:m,height:g}}function ue(e,r){let t="seated",i=e.now(),o,a=!0,n=!1,d=()=>{o!==void 0&&e.clearTimeout(o),o=void 0},s=c=>{c!==t&&(t=c,r(c))},u=()=>{if(d(),a||n||t==="doze")return;let c=t==="seated"?3e4:18e4;o=e.setTimeout(h,Math.max(1,i+c-e.now()))};function h(){if(o=void 0,a||n)return;let c=e.now()-i;s(c>=18e4?"doze":c>=3e4?"chin":"seated"),u()}return{get pose(){return t},activity(){if(a||n)return;let c=e.now();t==="seated"&&c-i<1e3||(i=c,t!=="seated"&&(s("seated"),u()))},setPaused(c){n||c===a||(a=c,d(),i=e.now(),s("seated"),a||u())},dispose(){n=!0,d()}}}var Y=["seated","peek","chin","doze","halfpeek"];function Le(e){let r=new Map;function t(i){let o=r.get(i);return o||(o=Promise.resolve().then(()=>e(i)).catch(a=>{throw r.delete(i),a}),r.set(i,o)),o}return{async pose(i,o){return(await t(`./client.pose-${i}-${o}.js`)).image},async rig(i,o){return i==="doze"||!Y.includes(i)?void 0:(await t(`./client.rig-${i}-${o}.js`)).rig}}}var G=Le(e=>require.async(e));function le(e,r,t=Math.random){let i,o=!1,a="",n,d=0,s=0,u=()=>{i!==void 0&&e.clearTimeout(i),i=void 0};function h(){a="",r(void 0,0),n&&!o&&(i=e.setTimeout(f,2800+t()*2800))}function c(p){let m=n?.[p];if(!m||o)return;u(),a=p;let g=e.performance.now(),v=()=>{if(i=void 0,!n||o)return;let b=Math.min(1,(e.performance.now()-g)/m.duration);if(r(a,b),b>=1){h();return}i=e.setTimeout(v,1e3/60)};v()}function f(){if(i=void 0,!n||o)return;let p=Object.keys(n).filter(v=>v!=="blink"&&v!=="attention"),m=p.filter(v=>v.startsWith("ear")),g=m.length&&d>=2?m[s++%m.length]:t()<.72&&n.blink||!p.length?"blink":p[Math.floor(t()*p.length)];g.startsWith("ear")?d=0:d++,c(g)}return{setClips(p){o||p===n||(u(),n=p,a="",d=0,s=0,r(void 0,0),n&&(i=e.setTimeout(f,1200+t()*800)))},attention(){a||c("attention")},dispose(){o=!0,u(),n=void 0,r(void 0,0)}}}var he=e=>{let r=Math.max(0,Math.min(1,e));return r*r*(3-2*r)};function ne(e){return e<=0||e>=1?0:e<.3?he(e/.3):e<.4?1:1-he((e-.4)/.6)}function me(e){return ne((e-.12)/.16)}var re={seated:[{left:[285,223],right:[326,224],upper:[302,188],lower:[310,276],iris:[309,230,13,20,0],skin:[315,258]},{left:[373,221],right:[421,226],upper:[387,186],lower:[393,277],iris:[393,228,15,22,0],skin:[391,261]}],peek:[{left:[80,214],right:[119,221],upper:[103,186],lower:[91,267],iris:[102,225,14,20,.25],skin:[110,253]},{left:[171,252],right:[210,265],upper:[195,221],lower:[175,300],iris:[186,260,15,20,.4],skin:[186,288]}],chin:[{left:[252,252],right:[290,247],upper:[266,223],lower:[287,297],iris:[278,258,14,19,-.3],skin:[291,285]},{left:[339,234],right:[387,227],upper:[358,196],lower:[365,280],iris:[361,235,15,21,-.25],skin:[367,269]}],halfpeek:[{left:[89,390],right:[159,395],upper:[116,337],lower:[110,471],iris:[116,401,23,30,.22],skin:[117,445]}]};function V(e,r){if(!Number.isFinite(e)||!Number.isFinite(r))return[0,0];let t=Math.max(1,Math.hypot(e,r));return[e/t,r/t]}function ie(e,r){let t=Math.max(0,Math.min(1,r)),i=(e.left[1]+e.right[1])/2,o=(e.lower[1]-i)*.24,a=[(e.left[0]+e.right[0])/2,i+o+(e.right[0]-e.left[0])*.18],n=d=>[d[0]+(a[0]-d[0])*t,d[1]+(a[1]-d[1])*t];return{upper:n(e.upper),lower:n(e.lower),left:[e.left[0],e.left[1]+o*t],right:[e.right[0],e.right[1]+o*t]}}function J(e,r,t){let i=0,o=1;for(let d=0;d<14;d++){let s=(i+o)/2,u=1-s;u*u*e.left[0]+2*u*s*r[0]+s*s*e.right[0]<t?i=s:o=s}let a=(i+o)/2,n=1-a;return n*n*e.left[1]+2*n*a*r[1]+a*a*e.right[1]}function fe(e,r,t){let i=Math.floor(t.left[0]-9),o=Math.ceil(t.right[0]+9),a=Math.floor(Math.min(t.upper[1],t.left[1],t.right[1])-5),n=Math.ceil(Math.max(t.lower[1],t.left[1],t.right[1])+5),d=o-i,s=n-a,u=()=>{let y=e.createElement("canvas");return y.width=d,y.height=s,y},h=u(),c=u(),f=u(),p=h.getContext("2d"),m=c.getContext("2d"),g=f.getContext("2d"),v=r.getImageData(0,0,r.canvas.width,r.canvas.height),b=(y,w)=>{let M=(Math.max(0,Math.min(v.height-1,Math.round(w/2)))*v.width+Math.max(0,Math.min(v.width-1,Math.round(y/2))))*4;return[v.data[M],v.data[M+1],v.data[M+2]]},E=b(...t.skin),l=p.createImageData(d,s),_=m.createImageData(d,s),k=y=>y.every((w,M)=>Math.abs(w-E[M])<25),z=(y,w,M)=>{if(k(M))return M;let P=[E[0]*.05,E[1]*.05,E[2]*.05],A=.05;for(let x of[6,12,20,30])for(let D=0;D<8;D++){let C=b(y+Math.cos(D*Math.PI/4)*x,w+Math.sin(D*Math.PI/4)*x);if(!k(C))continue;let H=1/x;A+=H;for(let T=0;T<3;T++)P[T]+=C[T]*H}return P.map(x=>Math.round(x/A))};for(let y=0;y<d;y++){let w=i+y,M=J(t,t.upper,w);for(let P=0;P<s;P++){let A=a+P,x=b(w,A),D=(P*d+y)*4,C=1-(x[0]+x[1]+x[2])/Math.max(1,E[0]+E[1]+E[2]),H=x[1]>x[0]*1.15&&x[1]>x[2]*1.12,q=A>=M-12&&A<=M+3&&!H?Math.max(0,Math.min(1,(C-.3)/.35)):0;l.data.set([...x,Math.round(q*255)],D),_.data.set([...z(w,A,x),255],D)}}p.putImageData(l,0,0),m.putImageData(_,0,0);let I=g.createImageData(d,s);for(let y=0;y<l.data.length;y+=4)I.data[y+3]=l.data[y+3]>4?255:0;g.putImageData(I,0,0);let R=u(),S=R.getContext("2d");for(let[y,w]of[[0,0],[-1,0],[1,0],[0,-1],[0,1]])S.drawImage(f,y,w);return g.drawImage(R,0,0),g.translate(-i,-a),g.beginPath(),g.moveTo(t.left[0]-7,t.left[1]),g.quadraticCurveTo(t.upper[0],t.upper[1]-4,t.right[0]+7,t.right[1]),g.quadraticCurveTo(t.lower[0],t.lower[1]+20,t.left[0]-7,t.left[1]),g.closePath(),g.fill(),m.globalCompositeOperation="destination-in",m.filter="blur(0.65px)",m.drawImage(f,0,0),m.filter="none",{ink:h,skin:c,left:i,top:a,width:d,height:s}}function pe(e,r,t){let i=e.canvas.ownerDocument,o=i.createElement("canvas");o.width=r.width,o.height=r.height;let a=o.getContext("2d",{willReadFrequently:!0});a.drawImage(r,0,0);let n=h=>{let c=a.getImageData(Math.round(h[0]/2),Math.round(h[1]/2),1,1).data;return[c[0],c[1],c[2]]},d=h=>`rgb(${h.map(c=>Math.round(c)).join(" ")})`,s=t.map(h=>{let[c,f,p,m,g]=h.iris,v=i.createElement("canvas");v.width=Math.ceil(p*2+4),v.height=Math.ceil(m*2+4);let b=v.getContext("2d");return b.translate(v.width/2,v.height/2),b.rotate(g),b.beginPath(),b.ellipse(0,0,p,m,0,0,Math.PI*2),b.clip(),b.rotate(-g),b.drawImage(r,0,0,r.width,r.height,-c,-f,r.width*2,r.height*2),{eye:h,iris:v,skin:n(h.skin),material:fe(i,a,h)}});function u(h,c){let{upper:f,lower:p,left:m,right:g}=ie(h,c);e.beginPath(),e.moveTo(...m),e.quadraticCurveTo(...f,...g),e.quadraticCurveTo(...p,...m),e.closePath()}return(h,c)=>{let[f,p]=V(...h);e.save(),e.scale(.5,.5);for(let{eye:m,iris:g,skin:v,material:b}of s){let[E,l,_,k]=m.iris;if(e.save(),e.drawImage(b.skin,b.left,b.top),e.save(),u(m,0),e.clip(),c<.999){e.save(),u(m,c),e.clip();let I=e.createLinearGradient(0,l-k,0,l+k),S=(v[0]+v[1]+v[2])/765>.65?[255,253,241]:[166,185,193];I.addColorStop(0,d(S.map(M=>M*.83))),I.addColorStop(.5,d(S)),e.fillStyle=I,e.fillRect(E-70,l-70,140,140);let y=f*_*.26,w=p*k*.13;e.drawImage(g,E-g.width/2+y,l-g.height/2+w),e.restore()}e.restore();let z=ie(m,c);for(let I=0;I<b.width;I++){let R=b.left+I,S=J({...m,left:z.left,right:z.right},z.upper,R)-J(m,m.upper,R);e.drawImage(b.ink,I,0,1,b.height,R,b.top+S,1,b.height)}e.restore()}e.restore()}}var F=[[284,328],[310,347],[324,373],[319,398],[307,423],[307,448],[319,464]];function ge(e,r,t,i){let o=Math.max(1,t-r),a=Math.max(0,Math.min(1,(t-e)/o));return a===0?0:Math.sin(i)*Math.min(20,o*.55)*a*a}function be(e,r){return e.reduce((t,i,o)=>{let a=t[o-1],n=(a?.angle??0)+(r[o]??0);if(!a)t.push({x:i[0],y:i[1],angle:n});else{let d=e[o-1],s=i[0]-d[0],u=i[1]-d[1],h=Math.cos(a.angle),c=Math.sin(a.angle);t.push({x:a.x+s*h-u*c,y:a.y+s*c+u*h,angle:n})}return t},[])}function we(e,r,t=F){let i=1/0,o=0,a=0;for(let n=0;n<t.length-1;n++){let d=t[n],s=t[n+1],u=s[0]-d[0],h=s[1]-d[1],c=Math.max(0,Math.min(1,((e-d[0])*u+(r-d[1])*h)/(u*u+h*h))),f=(e-d[0]-u*c)**2+(r-d[1]-h*c)**2;f<i&&(i=f,o=n,a=c)}return{x:e,y:r,bone:o,weight:a}}function ve(e,r,t=F){let i=0,o=0;for(let a=0;a<2;a++){let n=e.bone+a,d=t[n],s=r[n],u=a?e.weight:1-e.weight,h=e.x-d[0],c=e.y-d[1],f=Math.cos(s.angle),p=Math.sin(s.angle);i+=u*(s.x+h*f-c*p),o+=u*(s.y+h*p+c*f)}return[i,o]}function ae(e,r,t){let i=Math.max(0,Math.min(1,e)),o=Math.sin(Math.PI*i)**2;return Array.from({length:r},(a,n)=>o*(t?n?.12:0:.32)*Math.sin(i*Math.PI*(t?3:4)-n*(t?.65:1.1)))}function ye(e,r,t,i=[]){let o=t.get(r.layers.body.src),a=o?pe(e,o,i):void 0,n=r.layers.tail,d=[],s=[];if(n){let[c,f,p,m]=n.box,g=Math.ceil((p-c)/10),v=Math.ceil((m-f)/10);for(let b=0;b<=v;b++)for(let E=0;E<=g;E++)d.push(we(c+(p-c)*E/g,f+(m-f)*b/v));for(let b=0;b<v;b++)for(let E=0;E<g;E++){let l=b*(g+1)+E;s.push([l,l+1,l+g+1],[l+1,l+g+2,l+g+1])}}function u(c){let f=r.layers[c],p=f&&t.get(f.src);if(f&&p){let[m,g,v,b]=f.box;e.drawImage(p,m,g,v-m,b-g)}}function h(c){if(!n)return;let f=t.get(n.src);if(!f)return;if(c<=0||c>=1){u("tail");return}let p=be(F,ae(c,F.length,!0)),m=d.map(b=>ve(b,p)),[g,v]=n.box;for(let b of s){let[E,l,_]=b,k=d[E],z=d[l],I=d[_],R=m[E],S=m[l],y=m[_],w=z.x-k.x,M=z.y-k.y,P=I.x-k.x,A=I.y-k.y,x=w*A-M*P,D=((S[0]-R[0])*A-(y[0]-R[0])*M)/x,C=((S[1]-R[1])*A-(y[1]-R[1])*M)/x,H=((y[0]-R[0])*w-(S[0]-R[0])*P)/x,T=((y[1]-R[1])*w-(S[1]-R[1])*P)/x;e.save(),e.beginPath();let q=(R[0]+S[0]+y[0])/3,O=(R[1]+S[1]+y[1])/3;[R,S,y].forEach((L,$)=>{let X=L[0]-q,j=L[1]-O,N=1+1.2/Math.max(1,Math.hypot(X,j));$?e.lineTo(q+X*N,O+j*N):e.moveTo(q+X*N,O+j*N)}),e.closePath(),e.clip(),e.transform(D,C,H,T,R[0]-D*(k.x-g)-H*(k.y-v),R[1]-C*(k.x-g)-T*(k.y-v)),e.drawImage(f,0,0),e.restore()}}return(c,f,p=[0,0])=>{e.clearRect(0,0,r.size[0],r.size[1]);let m=c==="attention"?Math.max(0,Math.min(1,(f-.03)/.65)):f,g=ae(m,r.ears.length,!1);r.ears.forEach(([,b],E)=>{let l=r.layers["ear"+E],_=l&&t.get(l.src);if(!l||!_)return;let k=c==="attention"||c==="ear"+E?g[E]:0;if(Math.abs(k)<1e-8){u("ear"+E);return}let[z,I,R,S]=l.box;for(let y=0;y<_.height;y++){let w=I+y*(S-I)/_.height;e.drawImage(_,0,y,_.width,1,z+ge(w,I,b,k),w,R-z,(S-I)/_.height)}}),u("body"),h(c==="attention"?Math.max(0,Math.min(1,(f-.22)/.78)):c==="tail"?f:0);let v=c==="blink"?ne(f):c==="attention"?me(f):0;a?.(p,v)}}function Ee(e,r){let t=[0,0],i=[0,0],o,a=0,n=!1;function d(u){if(o=void 0,n)return;let h=Math.min(64,Math.max(0,u-a));a=u;let c=1-Math.exp(-h/95);t=[t[0]+(i[0]-t[0])*c,t[1]+(i[1]-t[1])*c];let f=Math.hypot(t[0]-i[0],t[1]-i[1])<.001;f&&(t=i),r(t),f||(o=e.requestAnimationFrame(d))}function s(){o!==void 0&&e.cancelAnimationFrame(o),o=void 0}return{target(u,h){n||(i=V(u,h),o===void 0&&Math.hypot(t[0]-i[0],t[1]-i[1])>=.001&&(a=e.performance.now(),o=e.requestAnimationFrame(d)))},reset(){s(),i=t=[0,0],r(t)},dispose(){n=!0,s()}}}function Ce(e){let r=e.defaultView,t=r.matchMedia("(prefers-reduced-motion: reduce)"),i=new Map,o=new Map,a=!1,n,d,s,u,h="",c="",f=0,p=!1,m=0,g="",v,b=-1/0,E=[0,0],l,_=0,k,z=()=>{u&&n&&(u(l,_,E),n.dataset.motion=l??"rig-rest")},I=Ee(r,C=>{E=C,z()}),R=()=>{v!==void 0&&r.clearTimeout(v),v=void 0};function S(C){if(o.has(C))return o.get(C);if(i.has(C))return Promise.resolve();let H=new r.Image;H.src=C;let T=H.decode().then(()=>{a||i.set(C,H)},()=>{}).finally(()=>o.delete(C));return o.set(C,T),T}let y=le(r,(C,H)=>{!s||!n||!u||(l=C,_=H,z())});function w(){if(a)return;let C=e.documentElement.dataset.xiaoheiAppearance==="light"?"light":"dark",H=e.documentElement.hasAttribute("data-xiaohei-sidebar-resizing"),T=!e.hidden&&!t.matches&&!H&&n?`${h}-${C}`:"";if(T===g&&c===C)return;g=T,R(),u=void 0,y.setClips(void 0),I.reset(),k=void 0,l=void 0,_=0;let q=++f;if(s?.remove(),s=void 0,n&&(n.dataset.motion="rest"),d=void 0,c=C,p=!1,!T||!n)return;let O=n;G.rig(h,C).then(async L=>{if(!L||a||q!==f||(await Promise.all(Object.values(L.layers).map(X=>S(X.src))),a||q!==f||Object.values(L.layers).some(X=>!i.get(X.src))))return;d=L,s=e.createElement("canvas"),s.className="xiaohei-character-motion",s.width=L.size[0],s.height=L.size[1];let $=s.getContext("2d");if(!$){s=void 0;return}O.append(s),u=ye($,L,i,re[h]),y.setClips({blink:{duration:280},...Object.fromEntries(L.ears.map((X,j)=>["ear"+j,{duration:1050}])),...L.layers.tail?{tail:{duration:2400}}:{},attention:{duration:2400}})}).catch(()=>{})}let M=C=>{if(!n||!u||C.pointerType!=="mouse")return;let H=r.performance.now();(!k||H-m>=100)&&(k=n.getBoundingClientRect(),m=H);let T=k,q=re[h];if(d&&q?.length){let L=Math.min(T.width/d.size[0],T.height/d.size[1]),$=q.reduce((Z,K)=>Z+K.iris[0],0)/q.length/2,X=q.reduce((Z,K)=>Z+K.iris[1],0)/q.length/2,j=T.left+$*L,N=T.top+(T.height-d.size[1]*L)/2+X*L;I.target((C.clientX-j)/Math.max(220,r.innerWidth*.32),(C.clientY-N)/Math.max(180,r.innerHeight*.32))}let O=C.clientX>=T.left-70&&C.clientX<=T.right+70&&C.clientY>=T.top-50&&C.clientY<=T.bottom+50;if(O||R(),O&&!p&&H-b>6e3){let L=f;v=r.setTimeout(()=>{v=void 0,!a&&p&&L===f&&(b=r.performance.now(),y.attention())},180)}p=O};t.addEventListener("change",w);let P=()=>{I.target(0,0),p=!1,R()},A=C=>{C.relatedTarget||P()},x=()=>{k=void 0};e.addEventListener("pointerout",A),r.addEventListener("blur",P),r.addEventListener("resize",x),e.addEventListener("visibilitychange",w),e.addEventListener("pointermove",M,{passive:!0});let D=new r.MutationObserver(w);return D.observe(e.documentElement,{attributes:!0,attributeFilter:["data-xiaohei-appearance","data-xiaohei-sidebar-resizing"]}),{setPose(C,H){(C!==n||h!==H)&&(R(),f++,g="",u=void 0,y.setClips(void 0),I.reset(),k=void 0,s?.remove(),s=void 0,d=void 0,n&&(n.dataset.motion="rest")),n=C,h=H,w()},dispose(){a=!0,R(),f++,y.dispose(),I.dispose(),s?.remove(),u=void 0,i.clear(),o.clear(),n&&(n.dataset.motion="rest"),t.removeEventListener("change",w),D.disconnect(),e.removeEventListener("visibilitychange",w),e.removeEventListener("pointermove",M),e.removeEventListener("pointerout",A),r.removeEventListener("blur",P),r.removeEventListener("resize",x)}}}var Me="dsh-theme-xiaohei/wallpaper-character";function xe(e=typeof document>"u"?void 0:document,r=G.pose){let t=e?.defaultView;if(!e||!t)return()=>{};let i=!1,o,a,n,d=[],s=!0,u={pose:"hidden",left:0,top:0,width:0,height:0},h=new Map,c=new Set,f=new Set,p=typeof t.matchMedia=="function"?Ce(e):void 0,m=ue({now:()=>t.performance.now(),setTimeout:(w,M)=>t.setTimeout(w,M),clearTimeout:w=>t.clearTimeout(w)},()=>l()),g=new WeakMap,v=typeof t.ResizeObserver=="function"?new t.ResizeObserver(w=>{for(let M of w){let P=g.get(M.target),A=M.contentRect.width,x=M.contentRect.height;g.set(M.target,{width:A,height:x}),(!P||P.width!==A||M.target===d[0]&&P.height!==x)&&(s=!0)}s&&(l(),_())}):void 0;function b(){if(i||!e)return;if(e.documentElement?.hasAttribute("data-xiaohei-sidebar-resizing")){s=!0,n&&n.dataset.pose!=="hidden"&&(n.dataset.pose="hidden"),m.setPaused(!0),p?.setPose(void 0,"hidden"),_();return}let w=e.getElementById(se),M=[e.querySelector(ee.sidebarShell),e.querySelector("[data-conversation-scroll]"),e.querySelector("[data-chat-flow]"),e.querySelector(ee.composerCard)];if(M.some((O,L)=>O!==d[L])){d=M,v?.disconnect();for(let O of d)O&&v?.observe(O);s=!0}if(!w){n?.remove(),n=void 0,m.setPaused(!0),p?.setPose(void 0,"hidden");return}if(!n||n.parentElement!==w){n?.remove(),e.getElementById(Me)?.remove(),n=e.createElement("div"),n.id=Me,n.className="xiaohei-wallpaper-character",n.setAttribute("aria-hidden","true"),n.dataset.pose="hidden";for(let O of Y){let L=e.createElement("span");L.className=`xiaohei-wallpaper-character__${O}`,n.append(L)}w.append(n),s=!0}if(!s){E();return}s=!1;let[P,A,x,D]=d;if(!P||!A||!D){u={...u,pose:"hidden"},E();return}let C=P.getBoundingClientRect(),H=C.width<100?[...P.querySelectorAll('button,a,input,[role="button"],[role="treeitem"]')].map(O=>O.getBoundingClientRect()).filter(O=>O.width>0&&O.height>0):[],T=D.getBoundingClientRect(),q=x?.getBoundingClientRect()??{left:T.left+16,right:T.right-16,top:0,bottom:0};u=de({sidebar:C,scroll:A.getBoundingClientRect(),flow:q,viewportWidth:t.innerWidth,viewportHeight:t.innerHeight,controls:H}),E()}function E(){if(!n||i)return;m.setPaused(e.hidden||u.pose!=="seated");let w=e.hidden?"hidden":u.pose==="seated"?m.pose:u.pose;if(w==="hidden"){n.dataset.pose!=="hidden"&&(n.dataset.pose="hidden"),p?.setPose(void 0,"hidden");return}let M=e.documentElement.dataset.xiaoheiAppearance==="light"?"light":"dark",P=`${w}-${M}`;if(!h.has(P)){p?.setPose(void 0,"hidden"),(u.pose!=="seated"||!["seated","chin","doze"].includes(n.dataset.pose??""))&&(n.dataset.pose="hidden"),!c.has(P)&&!f.has(P)&&(c.add(P),r(w,M).then(async x=>{if(i)return;let D=new t.Image;D.src=x,await D.decode(),!i&&(c.delete(P),h.set(P,x),l())}).catch(()=>{c.delete(P),f.add(P)}));return}let A=n.querySelector(`.xiaohei-wallpaper-character__${w}`);A.dataset.appearance!==M&&(A.style.setProperty(`--xiaohei-${w}-art`,`url("${h.get(P)}")`),A.dataset.appearance=M);for(let x of["left","top","width","height"]){let D=`${Math.round(u[x]*100)/100}px`;A.style[x]!==D&&(A.style[x]=D)}A.dataset.ready||(A.dataset.ready="true"),n.dataset.pose!==w&&(n.dataset.pose=w),p?.setPose(A,w)}function l(){i||o!==void 0||(o=t.requestAnimationFrame(()=>{o=void 0,b()}))}function _(){a!==void 0&&t.clearTimeout(a),a=t.setTimeout(()=>{a=void 0,s=!0,l()},240)}let k=oe(e,l),z=new t.MutationObserver(l);z.observe(e.documentElement,{attributes:!0,attributeFilter:["data-xiaohei-appearance"]});let I=()=>{s=!0,l(),_()};t.addEventListener("resize",I,{passive:!0});let R=()=>m.activity(),S=["pointermove","pointerdown","keydown","input","wheel"];for(let w of S)e.addEventListener(w,R,{passive:!0,capture:!0});let y=()=>{e.hidden&&m.setPaused(!0),l()};return e.addEventListener("visibilitychange",y),l(),()=>{i=!0,o!==void 0&&t.cancelAnimationFrame(o),a!==void 0&&t.clearTimeout(a),k(),v?.disconnect(),z.disconnect(),m.dispose(),p?.dispose();for(let w of S)e.removeEventListener(w,R,!0);e.removeEventListener("visibilitychange",y),t.removeEventListener("resize",I),n?.remove()}}var Pe=`
|
|
3
3
|
.xiaohei-wallpaper-character {
|
|
4
4
|
position: absolute;
|
|
5
5
|
inset: 0;
|