gale/bundle.js
2025-08-01 11:13:10 -04:00

4 lines
5.8 KiB
JavaScript

var ue=Object.defineProperty;var _e=(e,t)=>{for(var r in t)ue(e,r,{get:t[r],enumerable:!0})};var y=Object.getPrototypeOf,b,k,w,T,z={isConnected:1},ye=1e3,O,pe={},Se=y(z),Q=y(y),p,Z=(e,t,r,l)=>(e??(setTimeout(r,l),new Set)).add(t),q=(e,t,r)=>{let l=w;w=t;try{return e(r)}catch(n){return console.error(n),r}finally{w=l}},P=e=>e.filter(t=>t._dom?.isConnected),U=e=>O=Z(O,e,()=>{for(let t of O)t._bindings=P(t._bindings),t._listeners=P(t._listeners);O=p},ye),I={get val(){return w?._getters?.add(this),this.rawVal},get oldVal(){return w?._getters?.add(this),this._oldVal},set val(e){w?._setters?.add(this),e!==this.rawVal&&(this.rawVal=e,this._bindings.length+this._listeners.length?(k?.add(this),b=Z(b,this,ve)):this._oldVal=e)}},Y=e=>({__proto__:I,rawVal:e,_oldVal:e,_bindings:[],_listeners:[]}),V=(e,t)=>{let r={_getters:new Set,_setters:new Set},l={f:e},n=T;T=[];let i=q(e,r,t);i=(i??document).nodeType?i:new Text(i);for(let o of r._getters)r._setters.has(o)||(U(o),o._bindings.push(l));for(let o of T)o._dom=i;return T=n,l._dom=i},G=(e,t=Y(),r)=>{let l={_getters:new Set,_setters:new Set},n={f:e,s:t};n._dom=r??T?.push(n)??z,t.val=q(e,l,t.rawVal);for(let i of l._getters)l._setters.has(i)||(U(i),i._listeners.push(n));return t},j=(e,...t)=>{for(let r of t.flat(1/0)){let l=y(r??0),n=l===I?V(()=>r.val):l===Q?V(r):r;n!=p&&e.append(n)}return e},ee=(e,t,...r)=>{let[{is:l,...n},...i]=y(r[0]??0)===Se?r:[{},...r],o=e?document.createElementNS(e,t,{is:l}):document.createElement(t,{is:l});for(let[d,g]of Object.entries(n)){let u=_=>_?Object.getOwnPropertyDescriptor(_,d)??u(y(_)):p,C=t+","+d,c=pe[C]??=u(y(o))?.set??0,a=d.startsWith("on")?(_,h)=>{let f=d.slice(2);o.removeEventListener(f,h),o.addEventListener(f,_)}:c?c.bind(o):o.setAttribute.bind(o,d),s=y(g??0);d.startsWith("on")||s===Q&&(g=G(g),s=I),s===I?V(()=>(a(g.val,g._oldVal),o)):a(g)}return j(o,i)},J=e=>({get:(t,r)=>ee.bind(p,e,r)}),te=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),ve=()=>{let e=0,t=[...b].filter(l=>l.rawVal!==l._oldVal);do{k=new Set;for(let l of new Set(t.flatMap(n=>n._listeners=P(n._listeners))))G(l.f,l.s,l._dom),l._dom=p}while(++e<100&&(t=[...k]).length);let r=[...b].filter(l=>l.rawVal!==l._oldVal);b=p;for(let l of new Set(r.flatMap(n=>n._bindings=P(n._bindings))))te(l._dom,V(l.f,l._dom)),l._dom=p;for(let l of r)l._oldVal=l.rawVal},M={tags:new Proxy(e=>new Proxy(ee,J(e)),J()),hydrate:(e,t)=>te(e,V(t,e)),add:j,state:Y,derive:G};var W={};_e(W,{calc:()=>Ce,compact:()=>B,list:()=>Re,noreactive:()=>Pe,raw:()=>de,reactive:()=>R,replace:()=>ge,stateFields:()=>Ie});var{fromEntries:le,entries:D,keys:E,hasOwn:F,getPrototypeOf:K,create:we,assign:me}=Object,{get:ne,set:re,deleteProperty:Te,ownKeys:be}=Reflect,{state:$,derive:Ve,add:Ae}=M,x,De=1e3,X,L,v=Symbol(),oe=Symbol(),H=Symbol(),S=Symbol(),A=Symbol(),ie=Symbol(),Ce=e=>(e[oe]=1,e),m=e=>e instanceof Object&&!(e instanceof Function)&&!e[ie],ae=e=>{if(e?.[oe]){let t=$();return Ve(()=>{let r=e();m(t.rawVal)&&m(r)?ge(t.rawVal,r):t.val=R(r)}),t}else return $(R(e))},Oe=e=>{let t=Array.isArray(e)?[]:{__proto__:K(e)};for(let[r,l]of D(e))t[r]=ae(l);return t[H]=[],t[S]=$(1),t},se={get:(e,t,r)=>t===v?e:F(e,t)?Array.isArray(e)&&t==="length"?(e[S].val,e.length):e[t].val:ne(e,t,r),set:(e,t,r,l)=>F(e,t)?Array.isArray(e)&&t==="length"?(r!==e.length&&++e[S].val,e.length=r,1):(e[t].val=R(r),1):t in e?re(e,t,r,l):re(e,t,ae(r))&&(++e[S].val,N(e).forEach(ce.bind(X,l,t,e[t],L)),1),deleteProperty:(e,t)=>(Te(e,t)&&$e(e,t),++e[S].val),ownKeys:e=>(e[S].val,be(e))},R=e=>!m(e)||e[v]?e:new Proxy(Oe(e),se),Pe=e=>(e[ie]=1,e),Ie=e=>e[v],Me=K($()),xe=e=>new Proxy(e,{get:(t,r,l)=>K(t[r]??0)===Me?{val:de(t[r].rawVal)}:ne(t,r,l)}),de=e=>e?.[v]?new Proxy(xe(e[v]),se):e,N=e=>e[H]=e[H].filter(t=>t._containerDom.isConnected),ce=(e,t,r,l,{_containerDom:n,f:i})=>{let o=Array.isArray(e),d=o?Number(t):t;Ae(n,()=>n[A][t]=i(r,()=>delete e[t],d)),o&&!l&&d!==e.length-1&&n.insertBefore(n.lastChild,n[A][E(e).find(g=>Number(g)>d)])},$e=(e,t)=>{for(let r of N(e)){let l=r._containerDom[A];l[t]?.remove(),delete l[t]}},He=e=>(x??(x=(setTimeout(()=>(x.forEach(N),x=X),De),new Set))).add(e),Re=(e,t,r)=>{let l={_containerDom:e instanceof Function?e():e,f:r},n=t[v];l._containerDom[A]={},n[H].push(l),He(n);for(let[i,o]of D(n))ce(t,i,o,1,l);return l._containerDom},fe=(e,t)=>{for(let[n,i]of D(t)){let o=e[n];m(o)&&m(i)?fe(o,i):e[n]=i}for(let n in e)F(t,n)||delete e[n];let r=E(t),l=Array.isArray(e);if(l||E(e).some((n,i)=>n!==r[i])){let n=e[v];if(l)e.length=t.length;else{++n[S].val;let i={...n};for(let o of r)delete n[o];for(let o of r)n[o]=i[o]}for(let{_containerDom:i}of N(n)){let{firstChild:o,[A]:d}=i;for(let g of r)o===d[g]?o=o.nextSibling:i.insertBefore(d[g],o)}}return e},ge=(e,t)=>{L=1;try{return fe(e,t instanceof Function?Array.isArray(e)?t(e.filter(r=>1)):le(t(D(e))):t)}finally{L=X}},B=e=>Array.isArray(e)?e.filter(t=>1).map(B):m(e)?me(we(K(e)),le(D(e).map(([t,r])=>[t,B(r)]))):e;var he=(e,t="")=>{let r="@",l=":",n=".",i="^",o=(c,a,s)=>{let _=Object.keys(a).map(h=>{let f=a[h];switch(h[0]){case r:return o(`@media(max-width:${h.substring(r.length)})`,f,s);case l:return o(`&${h}`,f,s);case n:return o(`${h}${s}`,f,s);case i:return o(`&:hover .${h.substring(i.length)}${s}`,f,s)}return`${h.replace(/([a-z])([A-Z])/g,"$1-$2")}: ${f};`});return`${c}{${_.join(`
`)}}`},d=(c,a)=>{let s=a.lastIndexOf(c)+c.length;return s?a.substring(s):a},g=c=>{let a=van.tags[c],s=[],_=new Proxy((...h)=>{let f=a(...h);return f.className=s.join(u+" ")+u+" "+f.className,s=[],f},{get(h,f){return s.push(f.substring(f.lastIndexOf(".")+1)),_}});return _},u=t?"_"+t:"",C=Object.keys(e).map(c=>o("."+c+u,e[c],u)).join(`
`);return globalThis.document?.head.insertAdjacentHTML("beforeend",`<style data-sheet="${u}">${C}</style>`),{Tag(...c){return c.map(a=>d(i,d(n,a))).join(u+" ")+u},CSS:C,DOM:new Proxy({},{get(c,a){return g(a)}}),Div:new Proxy({},{get(c,a){return g("div")[a]}})}};globalThis.van=M;globalThis.vanX=W;globalThis.Gale=he;