sprae 10.12.2 → 10.12.3

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/dist/sprae.min.js CHANGED
@@ -1,5 +1,5 @@
1
- var k,x,O=(e,n,t=new Set)=>(n={get value(){return k?.deps.push(t.add(k)),e},set value(r){if(r!==e){e=r;for(let l of t)x?x.add(l):l()}},peek(){return e}},n.toJSON=n.then=n.toString=n.valueOf=()=>n.value,n),h=(e,n,t,r)=>(t=l=>{n?.call?.(),l=k,k=t;try{n=e()}finally{k=l}},r=t.deps=[],t(),l=>{for(n?.call?.();l=r.pop();)l.delete(t)}),L=(e,n=O(),t,r)=>(t={get value(){return r||(r=h(()=>n.value=e())),n.value},peek:n.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),D=e=>{let n=x;n||(x=new Set);try{e()}finally{if(!n){n=x,x=null;for(const t of n)t()}}},K=(e,n,t)=>(n=k,k=null,t=e(),k=n,t);function Z(e){O=e.signal,h=e.effect,L=e.computed,D=e.batch||(n=>n()),K=e.untracked||D}var w=Symbol("signals"),$=Symbol("length");function E(e,n){if(!e||e[w])return e;if(Array.isArray(e))return G(e);if(e.constructor!==Object||e[Symbol.toStringTag])return e;let t={...n?.[w]},r=O(Object.values(e).length);const l=new Proxy(t,{get:(s,i)=>i===$?r:i===w?t:t[i]?.valueOf(),set:(s,i,o,u)=>(u=t[i],I(t,i,o),u??++r.value,1),deleteProperty:(s,i)=>(t[i]&&(q(t,i),r.value--),1),ownKeys(){return r.value,Reflect.ownKeys(t)}});for(let s in e){const i=Object.getOwnPropertyDescriptor(e,s);i?.get?(t[s]=L(i.get.bind(l)))._set=i.set?.bind(l):(t[s]=void 0,I(t,s,e[s]))}return l}var z={push:1,pop:1,shift:1,unshift:1,splice:1};function G(e){let n;if(e[w])return e;let t=O(e.length),r=Array(e.length).fill();const l=new Proxy(r,{get(s,i){if(typeof i=="symbol")return i===$?t:i===w?r:r[i];if(i==="length")return z[n]?t.peek():t.value;if(n=i,r[i])return r[i].valueOf();if(i<r.length)return(r[i]=O(E(e[i]))).value},set(s,i,o){if(i==="length"){for(let u=o,m=r.length;u<m;u++)delete l[u];return t.value=r.length=o,!0}return I(r,i,o),i>=t.peek()&&(t.value=r.length=Number(i)+1),!0},deleteProperty:(s,i)=>(r[i]&&q(r,i),1)});return l}function I(e,n,t){let r=e[n];if(n[0]==="_")e[n]=t;else if(!r)e[n]=r=t?.peek?t:O(E(t));else if(t!==r.peek())if(r._set)r._set(t);else if(Array.isArray(t)&&Array.isArray(r.peek())){const l=r.peek();l[$]?K(()=>{D(()=>{let s=0,i=t.length;for(;s<i;s++)l[s]=t[s];l.length=i})}):r.value=t}else r.value=E(t)}function q(e,n){const t=e[n],r=t[Symbol.dispose];r&&delete t[Symbol.dispose],delete e[n],r?.()}var T=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),p={},b=new WeakMap;function v(e,n){if(!e?.childNodes)return;if(b.has(e))return Object.assign(b.get(e),n);const t=E(n||{}),r=[];return l(e),b.has(e)||b.set(e,t),e[T]=()=>{for(;r.length;)r.pop()();b.delete(e),e[T]=null},t;function l(s,i=s.parentNode){if(s.childNodes){for(let o=0;o<s.attributes?.length;){let u=s.attributes[o];if(u.name[0]===":"){s.removeAttribute(u.name);let m=u.name.slice(1).split(":");for(let A of m){let c=p[A]||p.default,a=(c.parse||j)(u.value),y=c(s,a,t,A);y&&r.push(y)}if(b.has(s))return s[T]&&r.push(s[T]);if(s.parentNode!==i)return}else o++}for(let o of[...s.childNodes])l(o,s)}}}var F={},j=(e,n,t)=>{if(t=F[e=e.trim()])return t;try{t=B(e)}catch(r){J(r,n,e)}return F[e]=t},J=(e,n,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
1
+ var _,N,x=(e,n,t=new Set)=>(n={get value(){return _?.deps.push(t.add(_)),e},set value(r){if(r!==e){e=r;for(let l of t)N?N.add(l):l()}},peek(){return e}},n.toJSON=n.then=n.toString=n.valueOf=()=>n.value,n),P=(e,n,t,r)=>(t=l=>{n?.call?.(),l=_,_=t;try{n=e()}finally{_=l}},r=t.deps=[],t(),l=>{for(n?.call?.();l=r.pop();)l.delete(t)}),L=(e,n=x(),t,r)=>(t={get value(){return r||(r=P(()=>n.value=e())),n.value},peek:n.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),D=e=>{let n=N;n||(N=new Set);try{e()}finally{if(!n){n=N,N=null;for(const t of n)t()}}},K=(e,n,t)=>(n=_,_=null,t=e(),_=n,t);function Z(e){x=e.signal,P=e.effect,L=e.computed,D=e.batch||(n=>n()),K=e.untracked||D}var k=Symbol("signals"),W=Symbol("length");function O(e,n){if(!e||e[k])return e;if(Array.isArray(e))return G(e);if(e.constructor!==Object||e[Symbol.toStringTag])return e;let t={...n?.[k]},r=x(Object.values(e).length);const l=new Proxy(t,{get:(s,i)=>i===W?r:i===k?t:t[i]?.valueOf(),set:(s,i,o,a)=>(a=t[i],I(t,i,o),a??++r.value,1),deleteProperty:(s,i)=>(t[i]&&(q(t,i),r.value--),1),ownKeys(){return r.value,Reflect.ownKeys(t)}});for(let s in e){const i=Object.getOwnPropertyDescriptor(e,s);i?.get?(t[s]=L(i.get.bind(l)))._set=i.set?.bind(l):(t[s]=void 0,I(t,s,e[s]))}return l}var z={push:1,pop:1,shift:1,unshift:1,splice:1};function G(e){let n;if(e[k])return e;let t=x(e.length),r=Array(e.length).fill();const l=new Proxy(r,{get(s,i){if(typeof i=="symbol")return i===W?t:i===k?r:r[i];if(i==="length")return z[n]?t.peek():t.value;if(n=i,r[i])return r[i].valueOf();if(i<r.length)return(r[i]=x(O(e[i]))).value},set(s,i,o){if(i==="length"){for(let a=o,h=r.length;a<h;a++)delete l[a];return t.value=r.length=o,!0}return I(r,i,o),i>=t.peek()&&(t.value=r.length=Number(i)+1),!0},deleteProperty:(s,i)=>(r[i]&&q(r,i),1)});return l}function I(e,n,t){let r=e[n];if(n[0]==="_")e[n]=t;else if(!r)e[n]=r=t?.peek?t:x(O(t));else if(t!==r.peek())if(r._set)r._set(t);else if(Array.isArray(t)&&Array.isArray(r.peek())){const l=r.peek();l[W]?K(()=>{D(()=>{let s=0,i=t.length;for(;s<i;s++)l[s]=t[s];l.length=i})}):r.value=t}else r.value=O(t)}function q(e,n){const t=e[n],r=t[Symbol.dispose];r&&delete t[Symbol.dispose],delete e[n],r?.()}var $=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),p={},y=new WeakMap;function g(e,n){if(!e?.childNodes)return;if(y.has(e))return Object.assign(y.get(e),n);const t=O(n||{}),r=[];return l(e),y.has(e)||y.set(e,t),e[$]=()=>{for(;r.length;)r.pop()();y.delete(e),e[$]=null},t;function l(s,i=s.parentNode){if(s.childNodes){for(let o=0;o<s.attributes?.length;){let a=s.attributes[o];if(a.name[0]===":"){s.removeAttribute(a.name);let h=a.name.slice(1).split(":");for(let v of h){let c=p[v]||p.default,u=(c.parse||T)(a.value),m=c(s,u,t,v);m&&r.push(P(m)),r.push(()=>s.setAttributeNode(a))}if(y.has(s))return s[$]&&r.push(s[$]);if(s.parentNode!==i)return}else o++}for(let o of[...s.childNodes])l(o,s)}}}var F={},T=(e,n,t)=>{if(t=F[e=e.trim()])return t;try{t=B(e)}catch(r){J(r,n,e)}return F[e]=t},J=(e,n,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
2
2
 
3
3
  ${n}${t?`="${t}"
4
4
 
5
- `:""}`,expr:t})},B;v.use=e=>{e.signal&&Z(e),e.compile&&(B=e.compile)};var C=e=>{if(!e.nodeType)return e;let n=e.content.cloneNode(!0),t=[...e.attributes],r=document.createTextNode(""),l=(n.append(r),[...n.childNodes]);return{childNodes:l,content:n,remove:()=>n.append(...l),replaceWith(s){s!==r&&(r.before(s),n.append(...l))},attributes:t,removeAttribute(s){t.splice(t.findIndex(i=>i.name===s),1)}}},H=Symbol("if");p.if=(e,n,t)=>{let r=e.nextElementSibling,l=document.createTextNode(""),s,i,o;return e.replaceWith(l),i=e.content?C(e):e,b.set(i,null),r?.hasAttribute(":else")&&(r.removeAttribute(":else"),r.hasAttribute(":if")||(r.remove(),o=r.content?C(r):r,b.set(o,null))),h(()=>{const u=n(t)?i:e[H]?null:o;r&&(r[H]=u===i),s!=u&&(s&&(s.remove(),s[Symbol.dispose]?.()),(s=u)&&(l.before(s.content||s),b.get(s)===null&&b.delete(s),v(s,t)))})},p.each=(e,[n,t,r],l)=>{const s=document.createTextNode("");e.replaceWith(s);let i,o,u=0;const m=L(()=>{o=null;let a=r(l);return typeof a=="number"&&(a=Array.from({length:a},(y,d)=>d+1)),a?.constructor===Object&&(o=Object.keys(a),a=Object.values(a)),a||[]}),A=()=>{K(()=>{var a,y;let d=0,g=m.value,N=g.length;if(i&&!i[$]){for(let S of i[w]||[])S[Symbol.dispose]();i=null,u=0}if(N<u)i.length=N;else{if(!i)i=g;else for(;d<u;d++)i[d]=g[d];for(;d<N;d++){i[d]=g[d];let S=d,P=E({[n]:i[w]?.[S]||i[S],[t]:o?o[S]:S},l),_=e.content?C(e):e.cloneNode(!0);s.before(_.content||_),v(_,P),((y=i[a=w]||(i[a]=[]))[d]||(y[d]={}))[Symbol.dispose]=()=>{_[Symbol.dispose]?.(),_.remove()}}}u=N})};let c=0;return h(()=>{m.value[$]?.value,c?c++:(A(),queueMicrotask(()=>(c&&A(),c=0)))})},p.each.parse=e=>{let[n,t]=e.split(/\s+in\s+/),[r,l="$"]=n.split(/\s*,\s*/);return[r,l,j(t)]},p.ref=(e,n,t)=>{t[n]=e},p.ref.parse=e=>e,p.with=(e,n,t)=>{let r;return h(()=>{let l=n(t);v(e,r?l:r=E(l,t))})},p.html=(e,n,t)=>{let r=n(t);if(!r)return;let l=(r.content||r).cloneNode(!0);e.replaceChildren(l),v(e,t)},p.text=(e,n,t)=>(e.content&&e.replaceWith(e=C(e).childNodes[0]),h(()=>{let r=n(t);e.textContent=r??""})),p.class=(e,n,t)=>{let r=new Set;return h(()=>{let l=n(t),s=new Set;l&&(typeof l=="string"?l.split(" ").map(i=>s.add(i)):Array.isArray(l)?l.map(i=>i&&s.add(i)):Object.entries(l).map(([i,o])=>o&&s.add(i)));for(let i of r)s.has(i)?s.delete(i):e.classList.remove(i);for(let i of r=s)e.classList.add(i)})},p.style=(e,n,t)=>{let r=e.getAttribute("style");return h(()=>{let l=n(t);if(typeof l=="string")e.setAttribute("style",r+(r.endsWith(";")?"":"; ")+l);else{r&&e.setAttribute("style",r);for(let s in l)s[0]=="-"?e.style.setProperty(s,l[s]):e.style[s]=l[s]}})},p.default=(e,n,t,r)=>{if(!r.startsWith("on"))return h(()=>{let c=n(t);if(r)M(e,r,c);else for(let a in c)M(e,Y(a),c[a])});const l=r.split("..").map(c=>{let a={evt:"",target:e,test:()=>!0};return a.evt=(c.startsWith("on")?c.slice(2):c).replace(/\.(\w+)?-?([-\w]+)?/g,(y,d,g="")=>(a.test=Q[d]?.(a,...g.split("-"))||a.test,"")),a});if(l.length==1)return h(()=>A(n(t),l[0]));let s,i,o,u=0;const m=c=>{o=A(a=>(o(),i=c?.(a),(u=++u%l.length)?m(i):s&&m(s)),l[u])};return h(()=>(s=n(t),!o&&m(s),()=>s=null));function A(c,{evt:a,target:y,test:d,defer:g,stop:N,prevent:S,immediate:P,..._}){g&&(c=g(c));const R=W=>{try{d(W)&&(N&&(P?W.stopImmediatePropagation():W.stopPropagation()),S&&W.preventDefault(),c?.(W))}catch(X){J(X,`:on${a}`,c)}};return y.addEventListener(a,R,_),()=>y.removeEventListener(a,R,_)}};var Q={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},throttle(e,n){e.defer=t=>U(t,n?Number(n)||0:108)},debounce(e,n){e.defer=t=>V(t,n?Number(n)||0:108)},outside:e=>n=>{let t=e.target;return!(t.contains(n.target)||n.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>n=>n.target===e.target,ctrl:(e,...n)=>t=>f.ctrl(t)&&n.every(r=>f[r]?f[r](t):t.key===r),shift:(e,...n)=>t=>f.shift(t)&&n.every(r=>f[r]?f[r](t):t.key===r),alt:(e,...n)=>t=>f.alt(t)&&n.every(r=>f[r]?f[r](t):t.key===r),meta:(e,...n)=>t=>f.meta(t)&&n.every(r=>f[r]?f[r](t):t.key===r),arrow:()=>f.arrow,enter:()=>f.enter,esc:()=>f.esc,tab:()=>f.tab,space:()=>f.space,delete:()=>f.delete,digit:()=>f.digit,letter:()=>f.letter,char:()=>f.char},f={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},M=(e,n,t)=>{t==null||t===!1?e.removeAttribute(n):e.setAttribute(n,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},U=(e,n)=>{let t,r,l=s=>{t=!0,setTimeout(()=>{if(t=!1,r)return r=!1,l(s),e(s)},n)};return s=>t?r=!0:(l(s),e(s))},V=(e,n)=>{let t;return r=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(r)},n)}},Y=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(n,t)=>(t?"-":"")+n.toLowerCase());p.value=(e,[n,t],r)=>{const l=e.type==="text"||e.type===""?i=>e.setAttribute("value",e.value=i??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(i,o,u)=>(o=e.selectionStart,u=e.selectionEnd,e.setAttribute("value",e.value=i??""),o&&e.setSelectionRange(o,u)):e.type==="checkbox"?i=>(e.checked=i,M(e,"checked",i)):e.type==="select-one"?i=>{for(let o of e.options)o.value==i?o.setAttribute("selected",""):o.removeAttribute("selected");e.value=i}:e.type==="select-multiple"?i=>{for(let o of e.options)o.removeAttribute("selected");for(let o of i)e.querySelector(`[value="${o}"]`).setAttribute("selected","")}:i=>e.value=i;e.type?.startsWith("select")&&v(e,r);const s=e.type==="checkbox"?i=>t(r,e.checked):e.type==="select-multiple"?i=>t(r,[...e.selectedOptions].map(o=>o.value)):i=>t(r,e.value);return e.oninput=e.onchange=s,h(()=>l(n(r)))},p.value.parse=e=>{let n=[j(e)];try{const t=j(`${e}=__;`);n.push((r,l)=>{r.__=l;let s=t(r,l);return delete r.__,s})}catch{}return n},p.fx=(e,n,t)=>h(()=>n(t)),v.use({compile:e=>v.constructor(`with (arguments[0]) { return ${e} };`)});var ee=v;export{ee as default};
5
+ `:""}`,expr:t})},B;g.use=e=>{e.signal&&Z(e),e.compile&&(B=e.compile)};var j=e=>{if(!e.nodeType)return e;let n=e.content.cloneNode(!0),t=[...e.attributes],r=document.createTextNode(""),l=(n.append(r),[...n.childNodes]);return{childNodes:l,content:n,remove:()=>n.append(...l),replaceWith(s){s!==r&&(r.before(s),n.append(...l))},attributes:t,removeAttribute(s){t.splice(t.findIndex(i=>i.name===s),1)},setAttributeNode(){}}},H=Symbol("if");p.if=(e,n,t)=>{let r=e.nextElementSibling,l=document.createTextNode(""),s,i,o;return e.replaceWith(l),i=e.content?j(e):e,y.set(i,null),r?.hasAttribute(":else")&&(r.removeAttribute(":else"),r.hasAttribute(":if")||(r.remove(),o=r.content?j(r):r,y.set(o,null))),()=>{const a=n(t)?i:e[H]?null:o;r&&(r[H]=a===i),s!=a&&(s&&(s.remove(),s[Symbol.dispose]?.()),(s=a)&&(l.before(s.content||s),y.get(s)===null&&y.delete(s),g(s,t)))}},p.each=(e,[n,t,r],l)=>{const s=document.createTextNode("");e.replaceWith(s);let i,o,a=0;const h=L(()=>{o=null;let u=r(l);return typeof u=="number"&&(u=Array.from({length:u},(m,d)=>d+1)),u?.constructor===Object&&(o=Object.keys(u),u=Object.values(u)),u||[]}),v=()=>{K(()=>{var u,m;let d=0,b=h.value,w=b.length;if(i&&!i[W]){for(let A of i[k]||[])A[Symbol.dispose]();i=null,a=0}if(w<a)i.length=w;else{if(!i)i=b;else for(;d<a;d++)i[d]=b[d];for(;d<w;d++){i[d]=b[d];let A=d,C=O({[n]:i[k]?.[A]||i[A],[t]:o?o[A]:A},l),S=e.content?j(e):e.cloneNode(!0);s.before(S.content||S),g(S,C),((m=i[u=k]||(i[u]=[]))[d]||(m[d]={}))[Symbol.dispose]=()=>{S[Symbol.dispose]?.(),S.remove()}}}a=w})};let c=0;return()=>{h.value[W]?.value,c?c++:(v(),queueMicrotask(()=>(c&&v(),c=0)))}},p.each.parse=e=>{let[n,t]=e.split(/\s+in\s+/),[r,l="$"]=n.split(/\s*,\s*/);return[r,l,T(t)]},p.ref=(e,n,t)=>{t[n]=e},p.ref.parse=e=>e,p.with=(e,n,t)=>{let r;return()=>{let l=n(t);g(e,r?l:r=O(l,t))}},p.html=(e,n,t)=>{let r=n(t);if(!r)return;let l=(r.content||r).cloneNode(!0);e.replaceChildren(l),g(e,t)},p.text=(e,n,t)=>(e.content&&e.replaceWith(e=j(e).childNodes[0]),()=>{let r=n(t);e.textContent=r??""}),p.class=(e,n,t)=>{let r=new Set;return()=>{let l=n(t),s=new Set;l&&(typeof l=="string"?l.split(" ").map(i=>s.add(i)):Array.isArray(l)?l.map(i=>i&&s.add(i)):Object.entries(l).map(([i,o])=>o&&s.add(i)));for(let i of r)s.has(i)?s.delete(i):e.classList.remove(i);for(let i of r=s)e.classList.add(i)}},p.style=(e,n,t)=>{let r=e.getAttribute("style");return()=>{let l=n(t);if(typeof l=="string")e.setAttribute("style",r+(r.endsWith(";")?"":"; ")+l);else{r&&e.setAttribute("style",r);for(let s in l)s[0]=="-"?e.style.setProperty(s,l[s]):e.style[s]=l[s]}}},p.default=(e,n,t,r)=>{if(!r.startsWith("on"))return()=>{let c=n(t);if(r)M(e,r,c);else for(let u in c)M(e,Y(u),c[u])};const l=r.split("..").map(c=>{let u={evt:"",target:e,test:()=>!0};return u.evt=(c.startsWith("on")?c.slice(2):c).replace(/\.(\w+)?-?([-\w]+)?/g,(m,d,b="")=>(u.test=Q[d]?.(u,...b.split("-"))||u.test,"")),u});if(l.length==1)return()=>v(n(t),l[0]);let s,i,o,a=0;const h=c=>{o=v(u=>(o(),i=c?.(u),(a=++a%l.length)?h(i):s&&h(s)),l[a])};return()=>(s=n(t),!o&&h(s),()=>s=null);function v(c,{evt:u,target:m,test:d,defer:b,stop:w,prevent:A,immediate:C,...S}){b&&(c=b(c));const R=E=>{try{d(E)&&(w&&(C?E.stopImmediatePropagation():E.stopPropagation()),A&&E.preventDefault(),c?.(E))}catch(X){J(X,`:on${u}`,c)}};return m.addEventListener(u,R,S),()=>m.removeEventListener(u,R,S)}};var Q={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},throttle(e,n){e.defer=t=>U(t,n?Number(n)||0:108)},debounce(e,n){e.defer=t=>V(t,n?Number(n)||0:108)},outside:e=>n=>{let t=e.target;return!(t.contains(n.target)||n.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>n=>n.target===e.target,ctrl:(e,...n)=>t=>f.ctrl(t)&&n.every(r=>f[r]?f[r](t):t.key===r),shift:(e,...n)=>t=>f.shift(t)&&n.every(r=>f[r]?f[r](t):t.key===r),alt:(e,...n)=>t=>f.alt(t)&&n.every(r=>f[r]?f[r](t):t.key===r),meta:(e,...n)=>t=>f.meta(t)&&n.every(r=>f[r]?f[r](t):t.key===r),arrow:()=>f.arrow,enter:()=>f.enter,esc:()=>f.esc,tab:()=>f.tab,space:()=>f.space,delete:()=>f.delete,digit:()=>f.digit,letter:()=>f.letter,char:()=>f.char},f={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},M=(e,n,t)=>{t==null||t===!1?e.removeAttribute(n):e.setAttribute(n,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},U=(e,n)=>{let t,r,l=s=>{t=!0,setTimeout(()=>{if(t=!1,r)return r=!1,l(s),e(s)},n)};return s=>t?r=!0:(l(s),e(s))},V=(e,n)=>{let t;return r=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(r)},n)}},Y=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(n,t)=>(t?"-":"")+n.toLowerCase());p.value=(e,[n,t],r)=>{const l=e.type==="text"||e.type===""?i=>e.setAttribute("value",e.value=i??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(i,o,a)=>(o=e.selectionStart,a=e.selectionEnd,e.setAttribute("value",e.value=i??""),o&&e.setSelectionRange(o,a)):e.type==="checkbox"?i=>(e.checked=i,M(e,"checked",i)):e.type==="select-one"?i=>{for(let o of e.options)o.value==i?o.setAttribute("selected",""):o.removeAttribute("selected");e.value=i}:e.type==="select-multiple"?i=>{for(let o of e.options)o.removeAttribute("selected");for(let o of i)e.querySelector(`[value="${o}"]`).setAttribute("selected","")}:i=>e.value=i;e.type?.startsWith("select")&&g(e,r);const s=e.type==="checkbox"?i=>t(r,e.checked):e.type==="select-multiple"?i=>t(r,[...e.selectedOptions].map(o=>o.value)):i=>t(r,e.value);return e.oninput=e.onchange=s,()=>l(n(r))},p.value.parse=e=>{let n=[T(e)];try{const t=T(`${e}=__;`);n.push((r,l)=>{r.__=l;let s=t(r,l);return delete r.__,s})}catch{}return n},p.fx=(e,n,t)=>()=>n(t),g.use({compile:e=>g.constructor(`with (arguments[0]) { return ${e} };`)});var ee=g;export{ee as default};
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["sprae.js"],
4
- "sourcesContent": ["// signal.js\nvar current;\nvar batched;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = /* @__PURE__ */ new Set();\n try {\n fn();\n } finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n};\nvar untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || ((fn) => fn());\n untracked = s.untracked || batch;\n}\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"length\");\nfunction store(values, parent) {\n if (!values) return values;\n if (values[_signals]) return values;\n if (Array.isArray(values)) return list(values);\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);\n const state = new Proxy(signals, {\n get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),\n set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),\n // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n _len.value;\n return Reflect.ownKeys(signals);\n }\n });\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key);\n if (desc?.get) {\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n } else {\n signals[key] = void 0;\n set(signals, key, values[key]);\n }\n }\n return state;\n}\nvar mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n });\n else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar directive = {};\nvar memo = /* @__PURE__ */ new WeakMap();\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init(el);\n if (!memo.has(el)) memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n };\n return state;\n function init(el2, parent = el2.parentNode) {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i];\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n let names = attr2.name.slice(1).split(\":\");\n for (let name of names) {\n let dir = directive[name] || directive.default;\n let evaluate = (dir.parse || parse)(attr2.value);\n let dispose = dir(el2, evaluate, state, name);\n if (dispose) disposes.push(dispose);\n }\n if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent) return;\n } else i++;\n }\n for (let child of [...el2.childNodes]) init(child, el2);\n }\n ;\n}\nvar evalMemo = {};\nvar parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n};\nvar err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling, holder = document.createTextNode(\"\"), curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n memo.set(ifEl, null);\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);\n }\n return effect(() => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n memo.get(curEl) === null && memo.delete(curEl);\n sprae(curEl, state);\n }\n }\n });\n};\n\n// directive/each.js\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n let cur, keys2, prevl = 0;\n const items = computed(() => {\n keys2 = null;\n let items2 = evaluate(state);\n if (typeof items2 === \"number\") items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object) keys2 = Object.keys(items2), items2 = Object.values(items2);\n return items2 || [];\n });\n const update = () => {\n untracked(() => {\n var _a, _b;\n let i = 0, newItems = items.value, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) {\n s[Symbol.dispose]();\n }\n cur = null, prevl = 0;\n }\n if (newl < prevl) {\n cur.length = newl;\n } else {\n if (!cur) {\n cur = newItems;\n } else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i];\n }\n }\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n });\n };\n let planned = 0;\n return effect(() => {\n items.value[_change]?.value;\n if (!planned) {\n update();\n queueMicrotask(() => (planned && update(), planned = 0));\n } else planned++;\n });\n};\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n return [itemVar, idxVar, parse(itemsExpr)];\n};\n\n// directive/ref.js\ndirective.ref = (el, expr, state) => {\n state[expr] = el;\n};\ndirective.ref.parse = (expr) => expr;\n\n// directive/with.js\ndirective.with = (el, evaluate, rootState) => {\n let state;\n return effect(() => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState));\n });\n};\n\n// directive/html.js\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl) return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n\n// directive/text.js\ndirective.text = (el, evaluate, state) => {\n if (el.content) el.replaceWith(el = frag(el).childNodes[0]);\n return effect(() => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n });\n};\n\n// directive/class.js\ndirective.class = (el, evaluate, state) => {\n let cur = /* @__PURE__ */ new Set();\n return effect(() => {\n let v = evaluate(state);\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n });\n};\n\n// directive/style.js\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return effect(() => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n });\n};\n\n// directive/default.js\ndirective.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\")) return effect(() => {\n let value = evaluate(state);\n if (name) attr(target, name, value);\n else for (let key in value) attr(target, dashcase(key), value[key]);\n });\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n if (ctxs.length == 1) return effect(() => addListener(evaluate(state), ctxs[0]));\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return effect(() => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null));\n function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n }\n ;\n};\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndirective.value = (el, [getValue, setValue], state) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n if (el.type?.startsWith(\"select\")) sprae(el, state);\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : el.type === \"select-multiple\" ? (e) => setValue(state, [...el.selectedOptions].map((o) => o.value)) : (e) => setValue(state, el.value);\n el.oninput = el.onchange = handleChange;\n return effect(() => update(getValue(state)));\n};\ndirective.value.parse = (expr) => {\n let evaluate = [parse(expr)];\n try {\n const set2 = parse(`${expr}=__;`);\n evaluate.push((state, value) => {\n state.__ = value;\n let result = set2(state, value);\n delete state.__;\n return result;\n });\n } catch (e) {\n }\n return evaluate;\n};\n\n// directive/fx.js\ndirective.fx = (el, evaluate, state) => {\n return effect(() => evaluate(state));\n};\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
5
- "mappings": "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",
6
- "names": ["current", "batched", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "fxs", "untracked", "use", "_signals", "_change", "store", "values", "parent", "list", "signals", "_len", "state", "_", "key", "set", "del", "desc", "mut", "lastProp", "i", "l", "cur", "del2", "_dispose", "directive", "memo", "sprae", "el", "disposes", "init", "el2", "attr2", "names", "name", "dir", "evaluate", "parse", "dispose", "child", "evalMemo", "expr", "compile", "err", "frag", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "next", "holder", "curEl", "ifEl", "elseEl", "newEl", "itemVar", "idxVar", "keys2", "prevl", "items", "items2", "update", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "leftSide", "itemsExpr", "rootState", "value", "clsx", "cls", "v2", "k", "initStyle", "target", "attr", "dashcase", "ctxs", "ctx", "match", "mod", "param", "mods", "addListener", "startFn", "nextFn", "off", "nextListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "limit", "throttle", "wait", "debounce", "keys", "p", "pause", "block", "timeout", "str", "getValue", "setValue", "from", "to", "handleChange", "set2", "result", "sprae_default"]
4
+ "sourcesContent": ["// signal.js\nvar current;\nvar batched;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = /* @__PURE__ */ new Set();\n try {\n fn();\n } finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n};\nvar untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || ((fn) => fn());\n untracked = s.untracked || batch;\n}\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"length\");\nfunction store(values, parent) {\n if (!values) return values;\n if (values[_signals]) return values;\n if (Array.isArray(values)) return list(values);\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);\n const state = new Proxy(signals, {\n get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),\n set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),\n // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n _len.value;\n return Reflect.ownKeys(signals);\n }\n });\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key);\n if (desc?.get) {\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n } else {\n signals[key] = void 0;\n set(signals, key, values[key]);\n }\n }\n return state;\n}\nvar mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n });\n else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar directive = {};\nvar memo = /* @__PURE__ */ new WeakMap();\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init(el);\n if (!memo.has(el)) memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n };\n return state;\n function init(el2, parent = el2.parentNode) {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i];\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n let names = attr2.name.slice(1).split(\":\");\n for (let name of names) {\n let dir = directive[name] || directive.default;\n let evaluate = (dir.parse || parse)(attr2.value);\n let fn = dir(el2, evaluate, state, name);\n if (fn) disposes.push(effect(fn));\n disposes.push(() => el2.setAttributeNode(attr2));\n }\n if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent) return;\n } else i++;\n }\n for (let child of [...el2.childNodes]) init(child, el2);\n }\n ;\n}\nvar evalMemo = {};\nvar parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n};\nvar err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n },\n setAttributeNode() {\n }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling, holder = document.createTextNode(\"\"), curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n memo.set(ifEl, null);\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);\n }\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n memo.get(curEl) === null && memo.delete(curEl);\n sprae(curEl, state);\n }\n }\n };\n};\n\n// directive/each.js\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n let cur, keys2, prevl = 0;\n const items = computed(() => {\n keys2 = null;\n let items2 = evaluate(state);\n if (typeof items2 === \"number\") items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object) keys2 = Object.keys(items2), items2 = Object.values(items2);\n return items2 || [];\n });\n const update = () => {\n untracked(() => {\n var _a, _b;\n let i = 0, newItems = items.value, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) {\n s[Symbol.dispose]();\n }\n cur = null, prevl = 0;\n }\n if (newl < prevl) {\n cur.length = newl;\n } else {\n if (!cur) {\n cur = newItems;\n } else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i];\n }\n }\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n });\n };\n let planned = 0;\n return () => {\n items.value[_change]?.value;\n if (!planned) {\n update();\n queueMicrotask(() => (planned && update(), planned = 0));\n } else planned++;\n };\n};\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n return [itemVar, idxVar, parse(itemsExpr)];\n};\n\n// directive/ref.js\ndirective.ref = (el, expr, state) => {\n state[expr] = el;\n};\ndirective.ref.parse = (expr) => expr;\n\n// directive/with.js\ndirective.with = (el, evaluate, rootState) => {\n let state;\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState));\n };\n};\n\n// directive/html.js\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl) return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n\n// directive/text.js\ndirective.text = (el, evaluate, state) => {\n if (el.content) el.replaceWith(el = frag(el).childNodes[0]);\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n};\n\n// directive/class.js\ndirective.class = (el, evaluate, state) => {\n let cur = /* @__PURE__ */ new Set();\n return () => {\n let v = evaluate(state);\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n };\n};\n\n// directive/style.js\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n };\n};\n\n// directive/default.js\ndirective.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\")) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value);\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return () => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null);\n function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n }\n ;\n};\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndirective.value = (el, [getValue, setValue], state) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n if (el.type?.startsWith(\"select\")) sprae(el, state);\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : el.type === \"select-multiple\" ? (e) => setValue(state, [...el.selectedOptions].map((o) => o.value)) : (e) => setValue(state, el.value);\n el.oninput = el.onchange = handleChange;\n return () => update(getValue(state));\n};\ndirective.value.parse = (expr) => {\n let evaluate = [parse(expr)];\n try {\n const set2 = parse(`${expr}=__;`);\n evaluate.push((state, value) => {\n state.__ = value;\n let result = set2(state, value);\n delete state.__;\n return result;\n });\n } catch (e) {\n }\n return evaluate;\n};\n\n// directive/fx.js\ndirective.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n};\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["current", "batched", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "fxs", "untracked", "use", "_signals", "_change", "store", "values", "parent", "list", "signals", "_len", "state", "_", "key", "set", "del", "desc", "mut", "lastProp", "i", "l", "cur", "del2", "_dispose", "directive", "memo", "sprae", "el", "disposes", "init", "el2", "attr2", "names", "name", "dir", "evaluate", "parse", "child", "evalMemo", "expr", "compile", "err", "frag", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "next", "holder", "curEl", "ifEl", "elseEl", "newEl", "itemVar", "idxVar", "keys2", "prevl", "items", "items2", "update", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "leftSide", "itemsExpr", "rootState", "value", "clsx", "cls", "v2", "k", "initStyle", "target", "attr", "dashcase", "ctxs", "ctx", "match", "mod", "param", "mods", "addListener", "startFn", "nextFn", "off", "nextListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "limit", "throttle", "wait", "debounce", "keys", "p", "pause", "block", "timeout", "str", "getValue", "setValue", "from", "to", "handleChange", "set2", "result", "sprae_default"]
7
7
  }
package/dist/sprae.umd.js CHANGED
@@ -199,8 +199,9 @@ function sprae(el, values) {
199
199
  for (let name of names) {
200
200
  let dir = directive[name] || directive.default;
201
201
  let evaluate = (dir.parse || parse)(attr2.value);
202
- let dispose = dir(el2, evaluate, state, name);
203
- if (dispose) disposes.push(dispose);
202
+ let fn = dir(el2, evaluate, state, name);
203
+ if (fn) disposes.push(effect(fn));
204
+ disposes.push(() => el2.setAttributeNode(attr2));
204
205
  }
205
206
  if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);
206
207
  if (el2.parentNode !== parent) return;
@@ -254,6 +255,8 @@ ${dir}${expr ? `="${expr}"
254
255
  attributes,
255
256
  removeAttribute(name) {
256
257
  attributes.splice(attributes.findIndex((a) => a.name === name), 1);
258
+ },
259
+ setAttributeNode() {
257
260
  }
258
261
  };
259
262
  };
@@ -265,7 +268,6 @@ var _prevIf;
265
268
  var init_if = __esm({
266
269
  "directive/if.js"() {
267
270
  init_core();
268
- init_signal();
269
271
  _prevIf = Symbol("if");
270
272
  directive.if = (el, evaluate, state) => {
271
273
  let next = el.nextElementSibling, holder = document.createTextNode(""), curEl, ifEl, elseEl;
@@ -276,7 +278,7 @@ var init_if = __esm({
276
278
  next.removeAttribute(":else");
277
279
  if (!next.hasAttribute(":if")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);
278
280
  }
279
- return effect(() => {
281
+ return () => {
280
282
  const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;
281
283
  if (next) next[_prevIf] = newEl === ifEl;
282
284
  if (curEl != newEl) {
@@ -287,7 +289,7 @@ var init_if = __esm({
287
289
  sprae(curEl, state);
288
290
  }
289
291
  }
290
- });
292
+ };
291
293
  };
292
294
  }
293
295
  });
@@ -346,13 +348,13 @@ var init_each = __esm({
346
348
  });
347
349
  };
348
350
  let planned = 0;
349
- return effect(() => {
351
+ return () => {
350
352
  items.value[_change]?.value;
351
353
  if (!planned) {
352
354
  update();
353
355
  queueMicrotask(() => (planned && update(), planned = 0));
354
356
  } else planned++;
355
- });
357
+ };
356
358
  };
357
359
  directive.each.parse = (expr) => {
358
360
  let [leftSide, itemsExpr] = expr.split(/\s+in\s+/);
@@ -379,13 +381,12 @@ var init_with = __esm({
379
381
  "directive/with.js"() {
380
382
  init_core();
381
383
  init_store();
382
- init_signal();
383
384
  directive.with = (el, evaluate, rootState) => {
384
385
  let state;
385
- return effect(() => {
386
+ return () => {
386
387
  let values = evaluate(rootState);
387
388
  sprae(el, state ? values : state = store(values, rootState));
388
- });
389
+ };
389
390
  };
390
391
  }
391
392
  });
@@ -409,13 +410,12 @@ var init_html = __esm({
409
410
  var init_text = __esm({
410
411
  "directive/text.js"() {
411
412
  init_core();
412
- init_signal();
413
413
  directive.text = (el, evaluate, state) => {
414
414
  if (el.content) el.replaceWith(el = frag(el).childNodes[0]);
415
- return effect(() => {
415
+ return () => {
416
416
  let value = evaluate(state);
417
417
  el.textContent = value == null ? "" : value;
418
- });
418
+ };
419
419
  };
420
420
  }
421
421
  });
@@ -424,10 +424,9 @@ var init_text = __esm({
424
424
  var init_class = __esm({
425
425
  "directive/class.js"() {
426
426
  init_core();
427
- init_signal();
428
427
  directive.class = (el, evaluate, state) => {
429
428
  let cur = /* @__PURE__ */ new Set();
430
- return effect(() => {
429
+ return () => {
431
430
  let v = evaluate(state);
432
431
  let clsx = /* @__PURE__ */ new Set();
433
432
  if (v) {
@@ -438,7 +437,7 @@ var init_class = __esm({
438
437
  for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);
439
438
  else el.classList.remove(cls);
440
439
  for (let cls of cur = clsx) el.classList.add(cls);
441
- });
440
+ };
442
441
  };
443
442
  }
444
443
  });
@@ -447,17 +446,16 @@ var init_class = __esm({
447
446
  var init_style = __esm({
448
447
  "directive/style.js"() {
449
448
  init_core();
450
- init_signal();
451
449
  directive.style = (el, evaluate, state) => {
452
450
  let initStyle = el.getAttribute("style");
453
- return effect(() => {
451
+ return () => {
454
452
  let v = evaluate(state);
455
453
  if (typeof v === "string") el.setAttribute("style", initStyle + (initStyle.endsWith(";") ? "" : "; ") + v);
456
454
  else {
457
455
  if (initStyle) el.setAttribute("style", initStyle);
458
456
  for (let k in v) k[0] == "-" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];
459
457
  }
460
- });
458
+ };
461
459
  };
462
460
  }
463
461
  });
@@ -467,13 +465,12 @@ var mods, keys, attr, throttle, debounce, dashcase;
467
465
  var init_default = __esm({
468
466
  "directive/default.js"() {
469
467
  init_core();
470
- init_signal();
471
468
  directive.default = (target, evaluate, state, name) => {
472
- if (!name.startsWith("on")) return effect(() => {
469
+ if (!name.startsWith("on")) return () => {
473
470
  let value = evaluate(state);
474
471
  if (name) attr(target, name, value);
475
472
  else for (let key in value) attr(target, dashcase(key), value[key]);
476
- });
473
+ };
477
474
  const ctxs = name.split("..").map((e) => {
478
475
  let ctx = { evt: "", target, test: () => true };
479
476
  ctx.evt = (e.startsWith("on") ? e.slice(2) : e).replace(
@@ -482,12 +479,12 @@ var init_default = __esm({
482
479
  );
483
480
  return ctx;
484
481
  });
485
- if (ctxs.length == 1) return effect(() => addListener(evaluate(state), ctxs[0]));
482
+ if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0]);
486
483
  let startFn, nextFn, off, idx = 0;
487
484
  const nextListener = (fn) => {
488
485
  off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);
489
486
  };
490
- return effect(() => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null));
487
+ return () => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null);
491
488
  function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {
492
489
  if (defer) fn = defer(fn);
493
490
  const cb = (e) => {
@@ -616,7 +613,6 @@ var init_value = __esm({
616
613
  init_core();
617
614
  init_core();
618
615
  init_default();
619
- init_signal();
620
616
  directive.value = (el, [getValue, setValue], state) => {
621
617
  const update = el.type === "text" || el.type === "" ? (value) => el.setAttribute("value", el.value = value == null ? "" : value) : el.tagName === "TEXTAREA" || el.type === "text" || el.type === "" ? (value, from, to) => (
622
618
  // we retain selection in input
@@ -632,7 +628,7 @@ var init_value = __esm({
632
628
  if (el.type?.startsWith("select")) sprae(el, state);
633
629
  const handleChange = el.type === "checkbox" ? (e) => setValue(state, el.checked) : el.type === "select-multiple" ? (e) => setValue(state, [...el.selectedOptions].map((o) => o.value)) : (e) => setValue(state, el.value);
634
630
  el.oninput = el.onchange = handleChange;
635
- return effect(() => update(getValue(state)));
631
+ return () => update(getValue(state));
636
632
  };
637
633
  directive.value.parse = (expr) => {
638
634
  let evaluate = [parse(expr)];
@@ -655,9 +651,8 @@ var init_value = __esm({
655
651
  var init_fx = __esm({
656
652
  "directive/fx.js"() {
657
653
  init_core();
658
- init_signal();
659
654
  directive.fx = (el, evaluate, state) => {
660
- return effect(() => evaluate(state));
655
+ return () => evaluate(state);
661
656
  };
662
657
  }
663
658
  });
@@ -692,12 +687,11 @@ var data_exports = {};
692
687
  var init_data = __esm({
693
688
  "directive/data.js"() {
694
689
  init_core();
695
- init_signal();
696
690
  directive["data"] = (el, evaluate, state) => {
697
- return effect(() => {
691
+ return () => {
698
692
  let value = evaluate(state);
699
693
  for (let key in value) el.dataset[key] = value[key];
700
- });
694
+ };
701
695
  };
702
696
  }
703
697
  });
@@ -708,12 +702,11 @@ var init_aria = __esm({
708
702
  "directive/aria.js"() {
709
703
  init_core();
710
704
  init_default();
711
- init_signal();
712
705
  directive["aria"] = (el, evaluate, state) => {
713
706
  const update = (value) => {
714
707
  for (let key in value) attr(el, "aria-" + dashcase(key), value[key] == null ? null : value[key] + "");
715
708
  };
716
- return effect(() => update(evaluate(state)));
709
+ return () => update(evaluate(state));
717
710
  };
718
711
  }
719
712
  });