diff --git a/dist/sigpro.esm.js b/dist/sigpro.esm.js index 5271529..4680af5 100644 --- a/dist/sigpro.esm.js +++ b/dist/sigpro.esm.js @@ -98,9 +98,8 @@ var batch = (fn) => { return fn(); } finally { batchDepth--; - if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) { + if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) flush(); - } } }; var trackUpdate = (subs, trigger = false) => { @@ -514,8 +513,6 @@ var mount = (comp, target) => { MOUNTED_NODES.set(t, inst); return inst; }; - -// sigpro_ESM.js if (typeof window !== "undefined") { "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((tag) => { window[tag] = (props, children) => h(tag, props, children); diff --git a/dist/sigpro.esm.min.js b/dist/sigpro.esm.min.js index 220db39..919a006 100644 --- a/dist/sigpro.esm.min.js +++ b/dist/sigpro.esm.min.js @@ -1 +1 @@ -var _=(e)=>typeof e==="function",O=(e)=>e&&typeof e==="object",E=Array.isArray,b=typeof document<"u"?document:null,P=(e)=>e?._isRuntime?e.container:e instanceof Node?e:b.createTextNode(e==null?"":String(e)),d=null,m=null,v=!1,R=0,T=new Set,V=new WeakMap,j=Symbol("iter"),k=new WeakMap,W="http://www.w3.org/2000/svg",I="http://www.w3.org/1999/xlink",q=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),g=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let o=[e];while(o.length){let n=o.pop();if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._children)n._children.forEach((r)=>o.push(r)),n._children.clear();if(n._deps)n._deps.forEach((r)=>r.delete(n)),n._deps.clear()}},S=(e)=>{if(m)(m._cleanups||=new Set).add(e)},F=(e)=>{let o=d;d=null;try{return e()}finally{d=o}},A=(e,o=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((i)=>i.delete(n));if(n._cleanups)n._cleanups.forEach((i)=>i()),n._cleanups.clear();let r=d,s=m;d=m=n;try{return n._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=r,m=s}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=o,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=m,m)(m._children||=new Set).add(n);return n},M=()=>{if(v)return;v=!0;let e=Array.from(T).sort((o,n)=>o._depth-n._depth);T.clear();for(let o of e)if(!o._disposed)o();v=!1},K=(e)=>{R++;try{return e()}finally{if(R--,R===0&&T.size>0&&!v)M()}},w=(e,o=!1)=>{if(!o&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(o&&e.size>0){let n=!1;for(let r of e){if(r===d||r._disposed)continue;if(r._isComputed){if(r._dirty=!0,r._subs)w(r._subs,!0)}else T.add(r),n=!0}if(n&&!v&&R===0)queueMicrotask(M)}},U=(e,o=null)=>{let n=new Set;if(_(e)){let r,s=()=>{if(s._dirty){let i=d;d=s;try{let t=e();if(!Object.is(r,t))r=t,w(n,!0)}finally{d=i}s._dirty=!1}return w(n),r};return s._isComputed=!0,s._subs=n,s._dirty=!0,s._deps=null,s._disposed=!1,s}if(o)try{e=JSON.parse(localStorage.getItem(o))??e}catch(r){}return(...r)=>{if(r.length){let s=_(r[0])?r[0](e):r[0];if(!Object.is(e,s)){if(e=s,o)localStorage.setItem(o,JSON.stringify(e));w(n,!0)}}return w(n),e}},D=(e)=>{if(!O(e))return e;let o=V.get(e);if(o)return o;let n=new Map,r=(i)=>{let t=n.get(i);if(!t)n.set(i,t=new Set);return t},s=new Proxy(e,{get(i,t,c){if(typeof t!=="symbol")w(r(t));return D(Reflect.get(i,t,c))},set(i,t,c,l){let a=Reflect.has(i,t),f=Reflect.get(i,t,l),u=Reflect.set(i,t,c,l);if(u&&!Object.is(f,c)){if(w(r(t),!0),!a)w(r(j),!0)}return u},deleteProperty(i,t){let c=Reflect.deleteProperty(i,t);if(c)w(r(t),!0),w(r(j),!0);return c},ownKeys(i){return w(r(j)),Reflect.ownKeys(i)}});return V.set(e,s),s},C=(e,o)=>{if(o===void 0){let r=A(e);return r(),()=>g(r)}let n=A(()=>{let r=Array.isArray(e)?e.map((s)=>s()):e();F(()=>o(r))});return n(),()=>g(n)},B=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((o)=>o()),e._cleanups.clear();if(e._ownerEffect)g(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((o)=>B(o))},z=/^\s*(javascript|data|vbscript):/i,J=new Set(["src","href","formaction","action","background","code","archive"]),Q=(e)=>J.has(e)||e.startsWith("on"),L=(e,o)=>{if(o==null||o===!1)return null;if(Q(e)){let n=String(o);if(z.test(n))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return o},x=(e,o={},n=[])=>{if(o instanceof Node||E(o)||!O(o))n=o,o={};if(_(e)){let t=A(()=>{let f=e(o,{children:n,emit:(u,...h)=>o[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return t._result=f,f});t();let c=t._result;if(c==null)return null;let l=c instanceof Node||E(c)&&c.every((f)=>f instanceof Node)?c:b.createTextNode(String(c)),a=(f)=>{if(O(f)&&!f._isRuntime)f._mounts=t._mounts||[],f._cleanups=t._cleanups||new Set,f._ownerEffect=t};return E(l)?l.forEach(a):a(l),l}let r=q.has(e),s=r?b.createElementNS(W,e):b.createElement(e);s._cleanups=new Set;for(let t of Object.keys(o)){let c=o[t];if(t==="ref"){_(c)?c(s):c.current=s;continue}if(r&&t.startsWith("xlink:")){let l=L(t.slice(6),c);l==null?s.removeAttributeNS(I,t.slice(6)):s.setAttributeNS(I,t.slice(6),l);continue}if(t.startsWith("on")){let l=t.slice(2).toLowerCase();s.addEventListener(l,c);let a=()=>s.removeEventListener(l,c);s._cleanups.add(a),S(a)}else if(_(c)){let l=A(()=>{let a=L(t,c());if(t==="class")s.className=a||"";else if(a==null)s.removeAttribute(t);else if(t==="style"&&typeof a==="string")s.setAttribute("style",a);else if(t in s&&!r)s[t]=a;else s.setAttribute(t,a===!0?"":a)});if(l(),s._cleanups.add(()=>g(l)),S(()=>g(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(s.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";s.addEventListener(a,(f)=>c(f.target[t]))}}else{let l=L(t,c);if(l!=null)if(t==="style"&&typeof l==="string")s.setAttribute("style",l);else if(t in s&&!r)s[t]=l;else s.setAttribute(t,l===!0?"":l)}}let i=(t)=>{if(E(t))return t.forEach(i);if(_(t)){let c=b.createTextNode("");s.appendChild(c);let l=[],a=A(()=>{let f=t(),u=(E(f)?f:[f]).map(P);l.forEach((p)=>{if(p._isRuntime)p.destroy();else B(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((G)=>G());h=y}l=u});a(),s._cleanups.add(()=>g(a)),S(()=>g(a))}else{let c=P(t);if(s.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(n),s},$=(e)=>{let o=new Set,n=m,r=d,s=b.createElement("div");s.style.display="contents",s.setAttribute("role","presentation"),m={_cleanups:o},d=null;let i=(t)=>{if(!t)return;if(t._isRuntime)o.add(t.destroy),s.appendChild(t.container);else if(E(t))t.forEach(i);else s.appendChild(t instanceof Node?t:b.createTextNode(String(t==null?"":t)))};try{i(e({onCleanup:(t)=>o.add(t)}))}finally{m=n,d=r}return{_isRuntime:!0,container:s,destroy:()=>{o.forEach((t)=>t()),B(s),s.remove()}}},X=(e,o,n=null)=>{let r=b.createTextNode(""),s=x("div",{style:"display:contents"},[r]),i=null;return C(()=>!!(_(e)?e():e),(t)=>{if(i)i.destroy(),i=null;let c=t?o:n;if(c)i=$(()=>_(c)?c():c),s.insertBefore(i.container,r)}),S(()=>i?.destroy()),s},H=(e,o,n)=>{let r=b.createTextNode(""),s=x("div",{style:"display:contents"},[r]),i=new Map;return C(()=>(_(e)?e():e)||[],(t)=>{let c=new Map,l=[],a=t||[];for(let u=0;uo(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=r;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)s.insertBefore(p,f);f=p}i=c}),s},N=(e)=>{let o=()=>window.location.hash.slice(1)||"/",n=U(o()),r=()=>n(o());window.addEventListener("hashchange",r),S(()=>window.removeEventListener("hashchange",r));let s=x("div",{class:"router-hook"}),i=null;return C([n],()=>{let t=n(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=t.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=t.split("/").filter(Boolean)[f]}),N.params(l),i=$(()=>_(c.component)?c.component(l):c.component),s.replaceChildren(i.container)}}),s};N.params=U({});N.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");N.back=()=>window.history.back();N.path=()=>window.location.hash.replace(/^#/,"")||"/";var Y=(e)=>e.children,Z=(e,o)=>{let n=typeof o==="string"?b.querySelector(o):o;if(!n)return;if(k.has(n))k.get(n).destroy();let r=$(_(e)?e:()=>e);return n.replaceChildren(r.container),k.set(n,r),r};if(typeof window<"u")"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(o,n)=>x(e,o,n)});export{X as when,C as watch,N as router,S as onUnmount,Z as mount,O as isObj,_ as isFunc,E as isArr,x as h,H as each,K as batch,Y as Fragment,D as $$,U as $}; +var w=(e)=>typeof e==="function",j=(e)=>e&&typeof e==="object",g=Array.isArray,E=typeof document<"u"?document:null,U=(e)=>e?._isRuntime?e.container:e instanceof Node?e:E.createTextNode(e==null?"":String(e)),d=null,_=null,S=!1,x=0,R=new Set,V=new WeakMap,C=Symbol("iter"),k=new WeakMap,G="http://www.w3.org/2000/svg",I="http://www.w3.org/1999/xlink",W=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),b=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let s=[e];while(s.length){let n=s.pop();if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._children)n._children.forEach((r)=>s.push(r)),n._children.clear();if(n._deps)n._deps.forEach((r)=>r.delete(n)),n._deps.clear()}},N=(e)=>{if(_)(_._cleanups||=new Set).add(e)},q=(e)=>{let s=d;d=null;try{return e()}finally{d=s}},v=(e,s=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((i)=>i.delete(n));if(n._cleanups)n._cleanups.forEach((i)=>i()),n._cleanups.clear();let r=d,o=_;d=_=n;try{return n._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=r,_=o}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=s,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=_,_)(_._children||=new Set).add(n);return n},M=()=>{if(S)return;S=!0;let e=Array.from(R).sort((s,n)=>s._depth-n._depth);R.clear();for(let s of e)if(!s._disposed)s();S=!1},Q=(e)=>{x++;try{return e()}finally{if(x--,x===0&&R.size>0&&!S)M()}},m=(e,s=!1)=>{if(!s&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(s&&e.size>0){let n=!1;for(let r of e){if(r===d||r._disposed)continue;if(r._isComputed){if(r._dirty=!0,r._subs)m(r._subs,!0)}else R.add(r),n=!0}if(n&&!S&&x===0)queueMicrotask(M)}},$=(e,s=null)=>{let n=new Set;if(w(e)){let r,o=()=>{if(o._dirty){let i=d;d=o;try{let t=e();if(!Object.is(r,t))r=t,m(n,!0)}finally{d=i}o._dirty=!1}return m(n),r};return o._isComputed=!0,o._subs=n,o._dirty=!0,o._deps=null,o._disposed=!1,o}if(s)try{e=JSON.parse(localStorage.getItem(s))??e}catch(r){}return(...r)=>{if(r.length){let o=w(r[0])?r[0](e):r[0];if(!Object.is(e,o)){if(e=o,s)localStorage.setItem(s,JSON.stringify(e));m(n,!0)}}return m(n),e}},K=(e)=>{if(!j(e))return e;let s=V.get(e);if(s)return s;let n=new Map,r=(i)=>{let t=n.get(i);if(!t)n.set(i,t=new Set);return t},o=new Proxy(e,{get(i,t,c){if(typeof t!=="symbol")m(r(t));return K(Reflect.get(i,t,c))},set(i,t,c,l){let a=Reflect.has(i,t),f=Reflect.get(i,t,l),u=Reflect.set(i,t,c,l);if(u&&!Object.is(f,c)){if(m(r(t),!0),!a)m(r(C),!0)}return u},deleteProperty(i,t){let c=Reflect.deleteProperty(i,t);if(c)m(r(t),!0),m(r(C),!0);return c},ownKeys(i){return m(r(C)),Reflect.ownKeys(i)}});return V.set(e,o),o},B=(e,s)=>{if(s===void 0){let r=v(e);return r(),()=>b(r)}let n=v(()=>{let r=Array.isArray(e)?e.map((o)=>o()):e();q(()=>s(r))});return n(),()=>b(n)},P=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((s)=>s()),e._cleanups.clear();if(e._ownerEffect)b(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((s)=>P(s))},z=/^\s*(javascript|data|vbscript):/i,F=new Set(["src","href","formaction","action","background","code","archive"]),J=(e)=>F.has(e)||e.startsWith("on"),L=(e,s)=>{if(s==null||s===!1)return null;if(J(e)){let n=String(s);if(z.test(n))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return s},O=(e,s={},n=[])=>{if(s instanceof Node||g(s)||!j(s))n=s,s={};if(w(e)){let t=v(()=>{let f=e(s,{children:n,emit:(u,...h)=>s[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return t._result=f,f});t();let c=t._result;if(c==null)return null;let l=c instanceof Node||g(c)&&c.every((f)=>f instanceof Node)?c:E.createTextNode(String(c)),a=(f)=>{if(j(f)&&!f._isRuntime)f._mounts=t._mounts||[],f._cleanups=t._cleanups||new Set,f._ownerEffect=t};return g(l)?l.forEach(a):a(l),l}let r=W.has(e),o=r?E.createElementNS(G,e):E.createElement(e);o._cleanups=new Set;for(let t of Object.keys(s)){let c=s[t];if(t==="ref"){w(c)?c(o):c.current=o;continue}if(r&&t.startsWith("xlink:")){let l=L(t.slice(6),c);l==null?o.removeAttributeNS(I,t.slice(6)):o.setAttributeNS(I,t.slice(6),l);continue}if(t.startsWith("on")){let l=t.slice(2).toLowerCase();o.addEventListener(l,c);let a=()=>o.removeEventListener(l,c);o._cleanups.add(a),N(a)}else if(w(c)){let l=v(()=>{let a=L(t,c());if(t==="class")o.className=a||"";else if(a==null)o.removeAttribute(t);else if(t==="style"&&typeof a==="string")o.setAttribute("style",a);else if(t in o&&!r)o[t]=a;else o.setAttribute(t,a===!0?"":a)});if(l(),o._cleanups.add(()=>b(l)),N(()=>b(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(o.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";o.addEventListener(a,(f)=>c(f.target[t]))}}else{let l=L(t,c);if(l!=null)if(t==="style"&&typeof l==="string")o.setAttribute("style",l);else if(t in o&&!r)o[t]=l;else o.setAttribute(t,l===!0?"":l)}}let i=(t)=>{if(g(t))return t.forEach(i);if(w(t)){let c=E.createTextNode("");o.appendChild(c);let l=[],a=v(()=>{let f=t(),u=(g(f)?f:[f]).map(U);l.forEach((p)=>{if(p._isRuntime)p.destroy();else P(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((D)=>D());h=y}l=u});a(),o._cleanups.add(()=>b(a)),N(()=>b(a))}else{let c=U(t);if(o.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(n),o},T=(e)=>{let s=new Set,n=_,r=d,o=E.createElement("div");o.style.display="contents",o.setAttribute("role","presentation"),_={_cleanups:s},d=null;let i=(t)=>{if(!t)return;if(t._isRuntime)s.add(t.destroy),o.appendChild(t.container);else if(g(t))t.forEach(i);else o.appendChild(t instanceof Node?t:E.createTextNode(String(t==null?"":t)))};try{i(e({onCleanup:(t)=>s.add(t)}))}finally{_=n,d=r}return{_isRuntime:!0,container:o,destroy:()=>{s.forEach((t)=>t()),P(o),o.remove()}}},X=(e,s,n=null)=>{let r=E.createTextNode(""),o=O("div",{style:"display:contents"},[r]),i=null;return B(()=>!!(w(e)?e():e),(t)=>{if(i)i.destroy(),i=null;let c=t?s:n;if(c)i=T(()=>w(c)?c():c),o.insertBefore(i.container,r)}),N(()=>i?.destroy()),o},H=(e,s,n)=>{let r=E.createTextNode(""),o=O("div",{style:"display:contents"},[r]),i=new Map;return B(()=>(w(e)?e():e)||[],(t)=>{let c=new Map,l=[],a=t||[];for(let u=0;us(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=r;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)o.insertBefore(p,f);f=p}i=c}),o},A=(e)=>{let s=()=>window.location.hash.slice(1)||"/",n=$(s()),r=()=>n(s());window.addEventListener("hashchange",r),N(()=>window.removeEventListener("hashchange",r));let o=O("div",{class:"router-hook"}),i=null;return B([n],()=>{let t=n(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=t.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=t.split("/").filter(Boolean)[f]}),A.params(l),i=T(()=>w(c.component)?c.component(l):c.component),o.replaceChildren(i.container)}}),o};A.params=$({});A.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");A.back=()=>window.history.back();A.path=()=>window.location.hash.replace(/^#/,"")||"/";var Y=(e)=>e.children,Z=(e,s)=>{let n=typeof s==="string"?E.querySelector(s):s;if(!n)return;if(k.has(n))k.get(n).destroy();let r=T(w(e)?e:()=>e);return n.replaceChildren(r.container),k.set(n,r),r};if(typeof window<"u")"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(s,n)=>O(e,s,n)});export{X as when,B as watch,A as router,N as onUnmount,Z as mount,j as isObj,w as isFunc,g as isArr,O as h,H as each,Q as batch,Y as Fragment,K as $$,$}; diff --git a/dist/sigpro.js b/dist/sigpro.js index 4b85778..b45f817 100644 --- a/dist/sigpro.js +++ b/dist/sigpro.js @@ -99,9 +99,8 @@ return fn(); } finally { batchDepth--; - if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) { + if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) flush(); - } } }; var trackUpdate = (subs, trigger = false) => { @@ -515,12 +514,14 @@ MOUNTED_NODES.set(t, inst); return inst; }; - - // sigpro_IIFE.js if (typeof window !== "undefined") { - Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((tag) => { window[tag] = (props, children) => h(tag, props, children); }); } + + // sigpro_umd.js + if (typeof window !== "undefined") { + Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); + } })(); diff --git a/dist/sigpro.min.js b/dist/sigpro.min.js index 311d1c4..68b9fae 100644 --- a/dist/sigpro.min.js +++ b/dist/sigpro.min.js @@ -1 +1 @@ -(()=>{var _=(e)=>typeof e==="function",O=(e)=>e&&typeof e==="object",g=Array.isArray,b=typeof document<"u"?document:null,V=(e)=>e?._isRuntime?e.container:e instanceof Node?e:b.createTextNode(e==null?"":String(e)),d=null,m=null,A=!1,T=0,C=new Set,I=new WeakMap,k=Symbol("iter"),L=new WeakMap,J="http://www.w3.org/2000/svg",M="http://www.w3.org/1999/xlink",Q=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),E=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let s=[e];while(s.length){let n=s.pop();if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._children)n._children.forEach((r)=>s.push(r)),n._children.clear();if(n._deps)n._deps.forEach((r)=>r.delete(n)),n._deps.clear()}},S=(e)=>{if(m)(m._cleanups||=new Set).add(e)},X=(e)=>{let s=d;d=null;try{return e()}finally{d=s}},x=(e,s=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((i)=>i.delete(n));if(n._cleanups)n._cleanups.forEach((i)=>i()),n._cleanups.clear();let r=d,o=m;d=m=n;try{return n._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=r,m=o}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=s,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=m,m)(m._children||=new Set).add(n);return n},D=()=>{if(A)return;A=!0;let e=Array.from(C).sort((s,n)=>s._depth-n._depth);C.clear();for(let s of e)if(!s._disposed)s();A=!1},G=(e)=>{T++;try{return e()}finally{if(T--,T===0&&C.size>0&&!A)D()}},w=(e,s=!1)=>{if(!s&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(s&&e.size>0){let n=!1;for(let r of e){if(r===d||r._disposed)continue;if(r._isComputed){if(r._dirty=!0,r._subs)w(r._subs,!0)}else C.add(r),n=!0}if(n&&!A&&T===0)queueMicrotask(D)}},j=(e,s=null)=>{let n=new Set;if(_(e)){let r,o=()=>{if(o._dirty){let i=d;d=o;try{let t=e();if(!Object.is(r,t))r=t,w(n,!0)}finally{d=i}o._dirty=!1}return w(n),r};return o._isComputed=!0,o._subs=n,o._dirty=!0,o._deps=null,o._disposed=!1,o}if(s)try{e=JSON.parse(localStorage.getItem(s))??e}catch(r){}return(...r)=>{if(r.length){let o=_(r[0])?r[0](e):r[0];if(!Object.is(e,o)){if(e=o,s)localStorage.setItem(s,JSON.stringify(e));w(n,!0)}}return w(n),e}},B=(e)=>{if(!O(e))return e;let s=I.get(e);if(s)return s;let n=new Map,r=(i)=>{let t=n.get(i);if(!t)n.set(i,t=new Set);return t},o=new Proxy(e,{get(i,t,c){if(typeof t!=="symbol")w(r(t));return B(Reflect.get(i,t,c))},set(i,t,c,l){let a=Reflect.has(i,t),f=Reflect.get(i,t,l),u=Reflect.set(i,t,c,l);if(u&&!Object.is(f,c)){if(w(r(t),!0),!a)w(r(k),!0)}return u},deleteProperty(i,t){let c=Reflect.deleteProperty(i,t);if(c)w(r(t),!0),w(r(k),!0);return c},ownKeys(i){return w(r(k)),Reflect.ownKeys(i)}});return I.set(e,o),o},R=(e,s)=>{if(s===void 0){let r=x(e);return r(),()=>E(r)}let n=x(()=>{let r=Array.isArray(e)?e.map((o)=>o()):e();X(()=>s(r))});return n(),()=>E(n)},P=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((s)=>s()),e._cleanups.clear();if(e._ownerEffect)E(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((s)=>P(s))},H=/^\s*(javascript|data|vbscript):/i,Y=new Set(["src","href","formaction","action","background","code","archive"]),Z=(e)=>Y.has(e)||e.startsWith("on"),U=(e,s)=>{if(s==null||s===!1)return null;if(Z(e)){let n=String(s);if(H.test(n))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return s},v=(e,s={},n=[])=>{if(s instanceof Node||g(s)||!O(s))n=s,s={};if(_(e)){let t=x(()=>{let f=e(s,{children:n,emit:(u,...h)=>s[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return t._result=f,f});t();let c=t._result;if(c==null)return null;let l=c instanceof Node||g(c)&&c.every((f)=>f instanceof Node)?c:b.createTextNode(String(c)),a=(f)=>{if(O(f)&&!f._isRuntime)f._mounts=t._mounts||[],f._cleanups=t._cleanups||new Set,f._ownerEffect=t};return g(l)?l.forEach(a):a(l),l}let r=Q.has(e),o=r?b.createElementNS(J,e):b.createElement(e);o._cleanups=new Set;for(let t of Object.keys(s)){let c=s[t];if(t==="ref"){_(c)?c(o):c.current=o;continue}if(r&&t.startsWith("xlink:")){let l=U(t.slice(6),c);l==null?o.removeAttributeNS(M,t.slice(6)):o.setAttributeNS(M,t.slice(6),l);continue}if(t.startsWith("on")){let l=t.slice(2).toLowerCase();o.addEventListener(l,c);let a=()=>o.removeEventListener(l,c);o._cleanups.add(a),S(a)}else if(_(c)){let l=x(()=>{let a=U(t,c());if(t==="class")o.className=a||"";else if(a==null)o.removeAttribute(t);else if(t==="style"&&typeof a==="string")o.setAttribute("style",a);else if(t in o&&!r)o[t]=a;else o.setAttribute(t,a===!0?"":a)});if(l(),o._cleanups.add(()=>E(l)),S(()=>E(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(o.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";o.addEventListener(a,(f)=>c(f.target[t]))}}else{let l=U(t,c);if(l!=null)if(t==="style"&&typeof l==="string")o.setAttribute("style",l);else if(t in o&&!r)o[t]=l;else o.setAttribute(t,l===!0?"":l)}}let i=(t)=>{if(g(t))return t.forEach(i);if(_(t)){let c=b.createTextNode("");o.appendChild(c);let l=[],a=x(()=>{let f=t(),u=(g(f)?f:[f]).map(V);l.forEach((p)=>{if(p._isRuntime)p.destroy();else P(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((z)=>z());h=y}l=u});a(),o._cleanups.add(()=>E(a)),S(()=>E(a))}else{let c=V(t);if(o.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(n),o},$=(e)=>{let s=new Set,n=m,r=d,o=b.createElement("div");o.style.display="contents",o.setAttribute("role","presentation"),m={_cleanups:s},d=null;let i=(t)=>{if(!t)return;if(t._isRuntime)s.add(t.destroy),o.appendChild(t.container);else if(g(t))t.forEach(i);else o.appendChild(t instanceof Node?t:b.createTextNode(String(t==null?"":t)))};try{i(e({onCleanup:(t)=>s.add(t)}))}finally{m=n,d=r}return{_isRuntime:!0,container:o,destroy:()=>{s.forEach((t)=>t()),P(o),o.remove()}}},W=(e,s,n=null)=>{let r=b.createTextNode(""),o=v("div",{style:"display:contents"},[r]),i=null;return R(()=>!!(_(e)?e():e),(t)=>{if(i)i.destroy(),i=null;let c=t?s:n;if(c)i=$(()=>_(c)?c():c),o.insertBefore(i.container,r)}),S(()=>i?.destroy()),o},q=(e,s,n)=>{let r=b.createTextNode(""),o=v("div",{style:"display:contents"},[r]),i=new Map;return R(()=>(_(e)?e():e)||[],(t)=>{let c=new Map,l=[],a=t||[];for(let u=0;us(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=r;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)o.insertBefore(p,f);f=p}i=c}),o},N=(e)=>{let s=()=>window.location.hash.slice(1)||"/",n=j(s()),r=()=>n(s());window.addEventListener("hashchange",r),S(()=>window.removeEventListener("hashchange",r));let o=v("div",{class:"router-hook"}),i=null;return R([n],()=>{let t=n(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=t.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=t.split("/").filter(Boolean)[f]}),N.params(l),i=$(()=>_(c.component)?c.component(l):c.component),o.replaceChildren(i.container)}}),o};N.params=j({});N.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");N.back=()=>window.history.back();N.path=()=>window.location.hash.replace(/^#/,"")||"/";var F=(e)=>e.children,K=(e,s)=>{let n=typeof s==="string"?b.querySelector(s):s;if(!n)return;if(L.has(n))L.get(n).destroy();let r=$(_(e)?e:()=>e);return n.replaceChildren(r.container),L.set(n,r),r};if(typeof window<"u")Object.assign(window,{$:j,$$:B,watch:R,h:v,Fragment:F,when:W,each:q,router:N,mount:K,batch:G,onUnmount:S,isArr:g,isFunc:_,isObj:O}),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(s,n)=>v(e,s,n)});})(); +(()=>{var _=(e)=>typeof e==="function",O=(e)=>e&&typeof e==="object",g=Array.isArray,b=typeof document<"u"?document:null,V=(e)=>e?._isRuntime?e.container:e instanceof Node?e:b.createTextNode(e==null?"":String(e)),d=null,m=null,A=!1,T=0,C=new Set,I=new WeakMap,k=Symbol("iter"),L=new WeakMap,J="http://www.w3.org/2000/svg",M="http://www.w3.org/1999/xlink",Q=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),E=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let o=[e];while(o.length){let n=o.pop();if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._children)n._children.forEach((r)=>o.push(r)),n._children.clear();if(n._deps)n._deps.forEach((r)=>r.delete(n)),n._deps.clear()}},S=(e)=>{if(m)(m._cleanups||=new Set).add(e)},X=(e)=>{let o=d;d=null;try{return e()}finally{d=o}},x=(e,o=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((i)=>i.delete(n));if(n._cleanups)n._cleanups.forEach((i)=>i()),n._cleanups.clear();let r=d,s=m;d=m=n;try{return n._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=r,m=s}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=o,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=m,m)(m._children||=new Set).add(n);return n},D=()=>{if(A)return;A=!0;let e=Array.from(C).sort((o,n)=>o._depth-n._depth);C.clear();for(let o of e)if(!o._disposed)o();A=!1},G=(e)=>{T++;try{return e()}finally{if(T--,T===0&&C.size>0&&!A)D()}},w=(e,o=!1)=>{if(!o&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(o&&e.size>0){let n=!1;for(let r of e){if(r===d||r._disposed)continue;if(r._isComputed){if(r._dirty=!0,r._subs)w(r._subs,!0)}else C.add(r),n=!0}if(n&&!A&&T===0)queueMicrotask(D)}},j=(e,o=null)=>{let n=new Set;if(_(e)){let r,s=()=>{if(s._dirty){let i=d;d=s;try{let t=e();if(!Object.is(r,t))r=t,w(n,!0)}finally{d=i}s._dirty=!1}return w(n),r};return s._isComputed=!0,s._subs=n,s._dirty=!0,s._deps=null,s._disposed=!1,s}if(o)try{e=JSON.parse(localStorage.getItem(o))??e}catch(r){}return(...r)=>{if(r.length){let s=_(r[0])?r[0](e):r[0];if(!Object.is(e,s)){if(e=s,o)localStorage.setItem(o,JSON.stringify(e));w(n,!0)}}return w(n),e}},B=(e)=>{if(!O(e))return e;let o=I.get(e);if(o)return o;let n=new Map,r=(i)=>{let t=n.get(i);if(!t)n.set(i,t=new Set);return t},s=new Proxy(e,{get(i,t,c){if(typeof t!=="symbol")w(r(t));return B(Reflect.get(i,t,c))},set(i,t,c,l){let a=Reflect.has(i,t),f=Reflect.get(i,t,l),u=Reflect.set(i,t,c,l);if(u&&!Object.is(f,c)){if(w(r(t),!0),!a)w(r(k),!0)}return u},deleteProperty(i,t){let c=Reflect.deleteProperty(i,t);if(c)w(r(t),!0),w(r(k),!0);return c},ownKeys(i){return w(r(k)),Reflect.ownKeys(i)}});return I.set(e,s),s},R=(e,o)=>{if(o===void 0){let r=x(e);return r(),()=>E(r)}let n=x(()=>{let r=Array.isArray(e)?e.map((s)=>s()):e();X(()=>o(r))});return n(),()=>E(n)},P=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((o)=>o()),e._cleanups.clear();if(e._ownerEffect)E(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((o)=>P(o))},H=/^\s*(javascript|data|vbscript):/i,Y=new Set(["src","href","formaction","action","background","code","archive"]),Z=(e)=>Y.has(e)||e.startsWith("on"),U=(e,o)=>{if(o==null||o===!1)return null;if(Z(e)){let n=String(o);if(H.test(n))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return o},v=(e,o={},n=[])=>{if(o instanceof Node||g(o)||!O(o))n=o,o={};if(_(e)){let t=x(()=>{let f=e(o,{children:n,emit:(u,...h)=>o[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return t._result=f,f});t();let c=t._result;if(c==null)return null;let l=c instanceof Node||g(c)&&c.every((f)=>f instanceof Node)?c:b.createTextNode(String(c)),a=(f)=>{if(O(f)&&!f._isRuntime)f._mounts=t._mounts||[],f._cleanups=t._cleanups||new Set,f._ownerEffect=t};return g(l)?l.forEach(a):a(l),l}let r=Q.has(e),s=r?b.createElementNS(J,e):b.createElement(e);s._cleanups=new Set;for(let t of Object.keys(o)){let c=o[t];if(t==="ref"){_(c)?c(s):c.current=s;continue}if(r&&t.startsWith("xlink:")){let l=U(t.slice(6),c);l==null?s.removeAttributeNS(M,t.slice(6)):s.setAttributeNS(M,t.slice(6),l);continue}if(t.startsWith("on")){let l=t.slice(2).toLowerCase();s.addEventListener(l,c);let a=()=>s.removeEventListener(l,c);s._cleanups.add(a),S(a)}else if(_(c)){let l=x(()=>{let a=U(t,c());if(t==="class")s.className=a||"";else if(a==null)s.removeAttribute(t);else if(t==="style"&&typeof a==="string")s.setAttribute("style",a);else if(t in s&&!r)s[t]=a;else s.setAttribute(t,a===!0?"":a)});if(l(),s._cleanups.add(()=>E(l)),S(()=>E(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(s.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";s.addEventListener(a,(f)=>c(f.target[t]))}}else{let l=U(t,c);if(l!=null)if(t==="style"&&typeof l==="string")s.setAttribute("style",l);else if(t in s&&!r)s[t]=l;else s.setAttribute(t,l===!0?"":l)}}let i=(t)=>{if(g(t))return t.forEach(i);if(_(t)){let c=b.createTextNode("");s.appendChild(c);let l=[],a=x(()=>{let f=t(),u=(g(f)?f:[f]).map(V);l.forEach((p)=>{if(p._isRuntime)p.destroy();else P(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((z)=>z());h=y}l=u});a(),s._cleanups.add(()=>E(a)),S(()=>E(a))}else{let c=V(t);if(s.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(n),s},$=(e)=>{let o=new Set,n=m,r=d,s=b.createElement("div");s.style.display="contents",s.setAttribute("role","presentation"),m={_cleanups:o},d=null;let i=(t)=>{if(!t)return;if(t._isRuntime)o.add(t.destroy),s.appendChild(t.container);else if(g(t))t.forEach(i);else s.appendChild(t instanceof Node?t:b.createTextNode(String(t==null?"":t)))};try{i(e({onCleanup:(t)=>o.add(t)}))}finally{m=n,d=r}return{_isRuntime:!0,container:s,destroy:()=>{o.forEach((t)=>t()),P(s),s.remove()}}},W=(e,o,n=null)=>{let r=b.createTextNode(""),s=v("div",{style:"display:contents"},[r]),i=null;return R(()=>!!(_(e)?e():e),(t)=>{if(i)i.destroy(),i=null;let c=t?o:n;if(c)i=$(()=>_(c)?c():c),s.insertBefore(i.container,r)}),S(()=>i?.destroy()),s},q=(e,o,n)=>{let r=b.createTextNode(""),s=v("div",{style:"display:contents"},[r]),i=new Map;return R(()=>(_(e)?e():e)||[],(t)=>{let c=new Map,l=[],a=t||[];for(let u=0;uo(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=r;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)s.insertBefore(p,f);f=p}i=c}),s},N=(e)=>{let o=()=>window.location.hash.slice(1)||"/",n=j(o()),r=()=>n(o());window.addEventListener("hashchange",r),S(()=>window.removeEventListener("hashchange",r));let s=v("div",{class:"router-hook"}),i=null;return R([n],()=>{let t=n(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=t.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=t.split("/").filter(Boolean)[f]}),N.params(l),i=$(()=>_(c.component)?c.component(l):c.component),s.replaceChildren(i.container)}}),s};N.params=j({});N.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");N.back=()=>window.history.back();N.path=()=>window.location.hash.replace(/^#/,"")||"/";var F=(e)=>e.children,K=(e,o)=>{let n=typeof o==="string"?b.querySelector(o):o;if(!n)return;if(L.has(n))L.get(n).destroy();let r=$(_(e)?e:()=>e);return n.replaceChildren(r.container),L.set(n,r),r};if(typeof window<"u")"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(o,n)=>v(e,o,n)});if(typeof window<"u")Object.assign(window,{$:j,$$:B,watch:R,h:v,Fragment:F,when:W,each:q,router:N,mount:K,batch:G,onUnmount:S,isArr:g,isFunc:_,isObj:O});})(); diff --git a/docs/sigpro.js b/docs/sigpro.js index 4b85778..b45f817 100644 --- a/docs/sigpro.js +++ b/docs/sigpro.js @@ -99,9 +99,8 @@ return fn(); } finally { batchDepth--; - if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) { + if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) flush(); - } } }; var trackUpdate = (subs, trigger = false) => { @@ -515,12 +514,14 @@ MOUNTED_NODES.set(t, inst); return inst; }; - - // sigpro_IIFE.js if (typeof window !== "undefined") { - Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((tag) => { window[tag] = (props, children) => h(tag, props, children); }); } + + // sigpro_umd.js + if (typeof window !== "undefined") { + Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); + } })(); diff --git a/package.json b/package.json index 1e51f12..14a8acf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sigpro", - "version": "1.2.31", + "version": "1.2.32", "type": "module", "license": "MIT", "author": { @@ -41,11 +41,11 @@ "scripts": { "clean": "rm -rf dist", "prebuild": "npm run clean", - "build:iife": "bun build ./sigpro_IIFE.js --bundle --outfile=./dist/sigpro.js --format=iife --global-name=SigPro", - "build:iife:min": "bun build ./sigpro_IIFE.js --bundle --outfile=./dist/sigpro.min.js --format=iife --global-name=SigPro --minify", - "build:esm": "bun build ./sigpro_ESM.js --bundle --outfile=./dist/sigpro.esm.js --format=esm", - "build:esm:min": "bun build ./sigpro_ESM.js --bundle --outfile=./dist/sigpro.esm.min.js --format=esm --minify", - "build:docs": "bun build ./sigpro_IIFE.js --bundle --outfile=./docs/sigpro.js --format=iife --global-name=SigPro", + "build:iife": "bun build ./sigpro_umd.js --bundle --outfile=./dist/sigpro.js --format=iife --global-name=sp", + "build:iife:min": "bun build ./sigpro_umd.js --bundle --outfile=./dist/sigpro.min.js --format=iife --global-name=sp --minify", + "build:esm": "bun build ./sigpro.js --bundle --outfile=./dist/sigpro.esm.js --format=esm", + "build:esm:min": "bun build ./sigpro.js --bundle --outfile=./dist/sigpro.esm.min.js --format=esm --minify", + "build:docs": "bun build ./sigpro_umd.js --bundle --outfile=./docs/sigpro.js --format=iife --global-name=sp", "build": "bun run build:iife && bun run build:iife:min && bun run build:esm && bun run build:esm:min && bun run build:docs", "docs": "bun x serve docs", "prepublishOnly": "npm run build" diff --git a/sigpro.js b/sigpro.js index 0842690..fb33a67 100644 --- a/sigpro.js +++ b/sigpro.js @@ -93,9 +93,7 @@ const batch = fn => { return fn() } finally { batchDepth-- - if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) { - flush() - } + if (batchDepth === 0 && effectQueue.size > 0 && !isFlushing) flush() } } @@ -509,4 +507,10 @@ const mount = (comp, target) => { return inst } +if (typeof window !== "undefined") { + "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video" + .split(" ") + .forEach(tag => { window[tag] = (props, children) => h(tag, props, children) }) +} + export { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } \ No newline at end of file diff --git a/sigpro_ESM.js b/sigpro_ESM.js deleted file mode 100644 index 05192ce..0000000 --- a/sigpro_ESM.js +++ /dev/null @@ -1,7 +0,0 @@ -import { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } from "./sigpro.js" -if (typeof window !== "undefined") { - "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video" - .split(" ") - .forEach(tag => { window[tag] = (props, children) => h(tag, props, children) }) -} -export { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } \ No newline at end of file diff --git a/sigpro_IIFE.js b/sigpro_IIFE.js deleted file mode 100644 index f08c625..0000000 --- a/sigpro_IIFE.js +++ /dev/null @@ -1,8 +0,0 @@ -import { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } from "./sigpro.js" - -if (typeof window !== "undefined") { - Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }) - "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video" - .split(" ") - .forEach(tag => { window[tag] = (props, children) => h(tag, props, children) }) -} \ No newline at end of file diff --git a/sigpro_umd.js b/sigpro_umd.js new file mode 100644 index 0000000..12b2ef4 --- /dev/null +++ b/sigpro_umd.js @@ -0,0 +1,5 @@ +import { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } from "./sigpro.js" + +if (typeof window !== "undefined") { + Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }) +} \ No newline at end of file