sprae 10.10.5 → 10.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- (function($,g){typeof exports=="object"&&typeof module=="object"?module.exports=g():typeof define=="function"&&define.amd?define("sprae",[],g):typeof exports=="object"?exports.sprae=g():$.sprae=g()})(typeof self<"u"?self:typeof globalThis<"u"?globalThis:void 0,()=>{var $={},g={exports:$},R=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,ge=Object.prototype.hasOwnProperty,p=(e,r)=>function(){return e&&(r=(0,e[ee(e)[0]])(e=0)),r},te=(e,r)=>{for(var t in r)R(e,t,{get:r[t],enumerable:!0})},_e=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ee(r))!ge.call(e,s)&&s!==t&&R(e,s,{get:()=>r[s],enumerable:!(i=ve(r,s))||i.enumerable});return e},je=e=>_e(R({},"__esModule",{value:!0}),e);function we(e){C=e.signal,y=e.effect,B=e.computed,q=e.batch||(r=>r()),F=e.untracked||q}var C,y,F,q,B,b=p({"signal.js"(){}});function P(e,r){if(!e||e[w])return e;if(Array.isArray(e))return xe(e);if(e.constructor!==Object)return e;let t={...r?.[w]},i=C(Object.values(e).length);const s=new Proxy(t,{get:(a,n)=>n===E?i:n===w?t:t[n]?.valueOf(),set:(a,n,o,u)=>(u=t[n],H(t,n,o),u??++i.value,1),deleteProperty:(a,n)=>(t[n]&&(re(t,n),i.value--),1),ownKeys(){return i.value,Reflect.ownKeys(t)}});for(let a in e){const n=Object.getOwnPropertyDescriptor(e,a);n?.get?(t[a]=B(n.get.bind(s)))._set=n.set?.bind(s):(t[a]=void 0,H(t,a,e[a]))}return s}function xe(e){let r;if(e[w])return e;let t=C(e.length),i=Array(e.length).fill();const s=new Proxy(i,{get(a,n){if(typeof n=="symbol")return n===E?t:n===w?i:i[n];if(n==="length")return ie[r]?t.peek():t.value;if(r=n,i[n])return i[n].valueOf();if(n<i.length)return(i[n]=C(P(e[n]))).value},set(a,n,o){if(n==="length"){for(let u=o,_=i.length;u<_;u++)delete s[u];return t.value=i.length=o,!0}return H(i,n,o),n>=t.peek()&&(t.value=i.length=Number(n)+1),!0},deleteProperty:(a,n)=>(i[n]&&re(i,n),1)});return s}function H(e,r,t){let i=e[r];if(r[0]==="_")e[r]=t;else if(!i)e[r]=i=t?.peek?t:C(P(t));else if(t!==i.peek())if(i._set)i._set(t);else if(Array.isArray(t)&&Array.isArray(i.peek())){const s=i.peek();s[E]?F(()=>{q(()=>{let a=0,n=t.length;for(;a<n;a++)s[a]=t[a];s.length=n})}):i.value=t}else i.value=P(t)}function re(e,r){const t=e[r],i=t[Symbol.dispose];i&&delete t[Symbol.dispose],delete e[r],i?.()}var w,E,ie,I=p({"store.js"(){b(),w=Symbol("signals"),E=Symbol("length"),ie={push:1,pop:1,shift:1,unshift:1,splice:1}}});function x(e,r){if(!e?.childNodes)return;if(v.has(e))return Object.assign(v.get(e),r);const t=P(r||{}),i=[];return s(e),v.has(e)||v.set(e,t),e[J]=()=>{for(;i.length;)i.pop()();v.delete(e)},t;function s(a,n=a.parentNode){if(!!a.childNodes){for(let o=0;o<a.attributes?.length;){let u=a.attributes[o];if(u.name[0]===":"){a.removeAttribute(u.name);let _=u.name.slice(1).split(":");for(let A of _){let f=d[A]||d.default,l=(f.parse||L)(u.value),j=f(a,l,t,A);j&&i.push(j)}if(v.has(a))return a[J]&&i.push(a[J]);if(a.parentNode!==n)return}else o++}for(let o of[...a.childNodes])s(o,a)}}}var J,d,v,V,L,X,ne,D,m=p({"core.js"(){b(),I(),J=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),d={},v=new WeakMap,V={},L=(e,r,t)=>{if(t=V[e=e.trim()])return t;try{t=ne(e)}catch(i){X(i,r,e)}return V[e]=t},X=(e,r,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
1
+ (function(C,g){typeof exports=="object"&&typeof module=="object"?module.exports=g():typeof define=="function"&&define.amd?define("sprae",[],g):typeof exports=="object"?exports.sprae=g():C.sprae=g()})(typeof self<"u"?self:typeof globalThis<"u"?globalThis:void 0,()=>{var C={},g={exports:C},B=Object.defineProperty,fe=Object.getOwnPropertyDescriptor,U=Object.getOwnPropertyNames,de=Object.prototype.hasOwnProperty,p=(e,r)=>function(){return e&&(r=(0,e[U(e)[0]])(e=0)),r},pe=(e,r)=>{for(var t in r)B(e,t,{get:r[t],enumerable:!0})},he=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of U(r))!de.call(e,s)&&s!==t&&B(e,s,{get:()=>r[s],enumerable:!(i=fe(r,s))||i.enumerable});return e},ye=e=>he(B({},"__esModule",{value:!0}),e);function me(e){P=e.signal,y=e.effect,I=e.computed,J=e.batch||(r=>r()),R=e.untracked||J}var O,E,P,y,I,J,R,b=p({"signal.js"(){P=(e,r,t=new Set)=>(r={get value(){return O?.deps.push(t.add(O)),e},set value(i){if(i!==e){e=i;for(let s of t)E?E.add(s):s()}},peek(){return e}},r.toJSON=r.then=r.toString=r.valueOf=()=>r.value,r),y=(e,r,t,i)=>(t=s=>{r?.call?.(),s=O,O=t;try{r=e()}finally{O=s}},i=t.deps=[],t(),s=>{for(r?.call?.();s=i.pop();)s.delete(t)}),I=(e,r=P(),t,i)=>(t={get value(){return i||(i=y(()=>r.value=e())),r.value},peek:r.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),J=e=>{let r=E;r||(E=new Set);try{e()}finally{if(!r){r=E,E=null;for(const t of r)t()}}},R=(e,r,t)=>(r=O,O=null,t=e(),O=r,t)}});function T(e,r){if(!e||e[w])return e;if(Array.isArray(e))return be(e);if(e.constructor!==Object)return e;let t={...r?.[w]},i=P(Object.values(e).length);const s=new Proxy(t,{get:(a,n)=>n===W?i:n===w?t:t[n]?.valueOf(),set:(a,n,o,u)=>(u=t[n],H(t,n,o),u??++i.value,1),deleteProperty:(a,n)=>(t[n]&&(Y(t,n),i.value--),1),ownKeys(){return i.value,Reflect.ownKeys(t)}});for(let a in e){const n=Object.getOwnPropertyDescriptor(e,a);n?.get?(t[a]=I(n.get.bind(s)))._set=n.set?.bind(s):(t[a]=void 0,H(t,a,e[a]))}return s}function be(e){let r;if(e[w])return e;let t=P(e.length),i=Array(e.length).fill();const s=new Proxy(i,{get(a,n){if(typeof n=="symbol")return n===W?t:n===w?i:i[n];if(n==="length")return ee[r]?t.peek():t.value;if(r=n,i[n])return i[n].valueOf();if(n<i.length)return(i[n]=P(T(e[n]))).value},set(a,n,o){if(n==="length"){for(let u=o,_=i.length;u<_;u++)delete s[u];return t.value=i.length=o,!0}return H(i,n,o),n>=t.peek()&&(t.value=i.length=Number(n)+1),!0},deleteProperty:(a,n)=>(i[n]&&Y(i,n),1)});return s}function H(e,r,t){let i=e[r];if(r[0]==="_")e[r]=t;else if(!i)e[r]=i=t?.peek?t:P(T(t));else if(t!==i.peek())if(i._set)i._set(t);else if(Array.isArray(t)&&Array.isArray(i.peek())){const s=i.peek();s[W]?R(()=>{J(()=>{let a=0,n=t.length;for(;a<n;a++)s[a]=t[a];s.length=n})}):i.value=t}else i.value=T(t)}function Y(e,r){const t=e[r],i=t[Symbol.dispose];i&&delete t[Symbol.dispose],delete e[r],i?.()}var w,W,ee,F=p({"store.js"(){b(),w=Symbol("signals"),W=Symbol("length"),ee={push:1,pop:1,shift:1,unshift:1,splice:1}}});function A(e,r){if(!e?.childNodes)return;if(v.has(e))return Object.assign(v.get(e),r);const t=T(r||{}),i=[];return s(e),v.has(e)||v.set(e,t),e[q]=()=>{for(;i.length;)i.pop()();v.delete(e)},t;function s(a,n=a.parentNode){if(!!a.childNodes){for(let o=0;o<a.attributes?.length;){let u=a.attributes[o];if(u.name[0]===":"){a.removeAttribute(u.name);let _=u.name.slice(1).split(":");for(let k of _){let f=d[k]||d.default,l=(f.parse||L)(u.value),j=f(a,l,t,k);j&&i.push(j)}if(v.has(a))return a[q]&&i.push(a[q]);if(a.parentNode!==n)return}else o++}for(let o of[...a.childNodes])s(o,a)}}}var q,d,v,V,L,X,te,D,m=p({"core.js"(){b(),F(),q=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),d={},v=new WeakMap,V={},L=(e,r,t)=>{if(t=V[e=e.trim()])return t;try{t=te(e)}catch(i){X(i,r,e)}return V[e]=t},X=(e,r,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
2
2
 
3
3
  ${r}${t?`="${t}"
4
4
 
5
- `:""}`,expr:t})},x.use=e=>{e.signal&&we(e),e.compile&&(ne=e.compile)},D=e=>{if(!e.nodeType)return e;let r=e.content.cloneNode(!0),t=[...e.attributes],i=document.createTextNode(""),s=(r.append(i),[...r.childNodes]);return{childNodes:s,content:r,remove:()=>r.append(...s),replaceWith(a){a!==i&&(i.before(a),r.append(...s))},attributes:t,removeAttribute(a){t.splice(t.findIndex(n=>n.name===a),1)}}}}}),se={};te(se,{batch:()=>oe,computed:()=>ae,effect:()=>z,signal:()=>Z,untracked:()=>le});var k,T,Z,z,ae,oe,le,Oe=p({"node_modules/ulive/dist/ulive.es.js"(){Z=(e,r,t=new Set)=>(r={get value(){return k?.deps.push(t.add(k)),e},set value(i){if(i!==e){e=i;for(let s of t)T?T.add(s):s()}},peek(){return e}},r.toJSON=r.then=r.toString=r.valueOf=()=>r.value,r),z=(e,r,t,i)=>(t=s=>{r?.call?.(),s=k,k=t;try{r=e()}finally{k=s}},i=t.deps=[],t(),s=>{for(r?.call?.();s=i.pop();)s.delete(t)}),ae=(e,r=Z(),t,i)=>(t={get value(){return i||(i=z(()=>r.value=e())),r.value},peek:r.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),oe=e=>{let r=T;r||(T=new Set);try{e()}finally{if(!r){r=T,T=null;for(const t of r)t()}}},le=(e,r,t)=>(r=k,k=null,t=e(),k=r,t)}}),G,ke=p({"directive/if.js"(){m(),b(),G=Symbol("if"),d.if=(e,r,t)=>{let i=e.nextElementSibling,s=document.createTextNode(""),a,n,o;return e.replaceWith(s),n=e.content?D(e):e,v.set(n,null),i?.hasAttribute(":else")&&(i.removeAttribute(":else"),i.hasAttribute(":if")||(i.remove(),o=i.content?D(i):i,v.set(o,null))),y(()=>{const u=r(t)?n:e[G]?null:o;i&&(i[G]=u===n),a!=u&&(a?.remove(),(a=u)&&(s.before(a.content||a),v.get(a)===null&&v.delete(a),x(a,t)))})}}}),Ae=p({"directive/each.js"(){m(),I(),b(),d.each=(e,[r,t,i],s)=>{const a=document.createTextNode("");e.replaceWith(a);let n,o,u=0;const _=B(()=>{o=null;let l=i(s);return typeof l=="number"&&(l=Array.from({length:l},(j,h)=>h+1)),l?.constructor===Object&&(o=Object.keys(l),l=Object.values(l)),l||[]}),A=()=>{F(()=>{var l,j;let h=0,O=_.value,W=O.length;if(n&&!n[E]){for(let S of n[w]||[])S[Symbol.dispose]();n=null,u=0}if(W<u)n.length=W;else{if(!n)n=O;else for(;h<u;h++)n[h]=O[h];for(;h<W;h++){n[h]=O[h];let S=h,Y=P({[r]:n[w]?.[S]||n[S],[t]:o?o[S]:S},s),N=e.content?D(e):e.cloneNode(!0);a.before(N.content||N),x(N,Y),((j=n[l=w]||(n[l]=[]))[h]||(j[h]={}))[Symbol.dispose]=()=>{N[Symbol.dispose](),N.remove()}}}u=W})};let f=0;return y(()=>{_.value[E]?.value,f?f++:(A(),queueMicrotask(()=>(f&&A(),f=0)))})},d.each.parse=e=>{let[r,t]=e.split(/\s+in\s+/),[i,s="$"]=r.split(/\s*,\s*/);return[i,s,L(t)]}}}),Se=p({"directive/ref.js"(){m(),I(),d.ref=(e,r,t)=>{t[r]=e},d.ref.parse=e=>e}}),Ne=p({"directive/with.js"(){m(),I(),b(),d.with=(e,r,t)=>{let i;return y(()=>{let s=r(t);x(e,i?s:i=P(s,t))})}}}),Ie={},ue=p({"directive/html.js"(){m(),d.html=(e,r,t)=>{let i=r(t);if(!i)return;let s=(i.content||i).cloneNode(!0);e.replaceChildren(s),x(e,t)}}}),Pe=p({"directive/text.js"(){m(),b(),d.text=(e,r,t)=>(e.content&&e.replaceWith(e=D(e).childNodes[0]),y(()=>{let i=r(t);e.textContent=i??""}))}}),Ee=p({"directive/class.js"(){m(),b(),d.class=(e,r,t)=>{let i=new Set;return y(()=>{let s=r(t),a=new Set;s&&(typeof s=="string"?s.split(" ").map(n=>a.add(n)):Array.isArray(s)?s.map(n=>n&&a.add(n)):Object.entries(s).map(([n,o])=>o&&a.add(n)));for(let n of i)a.has(n)?a.delete(n):e.classList.remove(n);for(let n of i=a)e.classList.add(n)})}}}),Te=p({"directive/style.js"(){m(),b(),d.style=(e,r,t)=>{let i=e.getAttribute("style");return y(()=>{let s=r(t);if(typeof s=="string")e.setAttribute("style",i+(i.endsWith(";")?"":"; ")+s);else{i&&e.setAttribute("style",i);for(let a in s)a[0]=="-"?e.style.setProperty(a,s[a]):e.style[a]=s[a]}})}}}),ce,c,K,fe,de,Q,U=p({"directive/default.js"(){m(),b(),d.default=(e,r,t,i)=>{if(!i.startsWith("on"))return y(()=>{let f=r(t);if(i)K(e,i,f);else for(let l in f)K(e,Q(l),f[l])});const s=i.split("..").map(f=>{let l={evt:"",target:e,test:()=>!0};return l.evt=(f.startsWith("on")?f.slice(2):f).replace(/\.(\w+)?-?([-\w]+)?/g,(j,h,O="")=>(l.test=ce[h]?.(l,...O.split("-"))||l.test,"")),l});if(s.length==1)return y(()=>A(r(t),s[0]));let a,n,o,u=0;const _=f=>{o=A(l=>(o(),n=f?.(l),(u=++u%s.length)?_(n):a&&_(a)),s[u])};return y(()=>(a=r(t),!o&&_(a),()=>a=null));function A(f,{evt:l,target:j,test:h,defer:O,stop:W,prevent:S,immediate:Y,...N}){O&&(f=O(f));const be=M=>{try{h(M)&&(W&&(Y?M.stopImmediatePropagation():M.stopPropagation()),S&&M.preventDefault(),f?.(M))}catch(Me){X(Me,`:on${l}`,f)}};return j.addEventListener(l,be,N),()=>j.removeEventListener(l,be,N)}},ce={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,r){e.defer=t=>fe(t,r?Number(r)||0:108)},debounce(e,r){e.defer=t=>de(t,r?Number(r)||0:108)},outside:e=>r=>{let t=e.target;return!(t.contains(r.target)||r.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>r=>r.target===e.target,ctrl:(e,...r)=>t=>c.ctrl(t)&&r.every(i=>c[i]?c[i](t):t.key===i),shift:(e,...r)=>t=>c.shift(t)&&r.every(i=>c[i]?c[i](t):t.key===i),alt:(e,...r)=>t=>c.alt(t)&&r.every(i=>c[i]?c[i](t):t.key===i),meta:(e,...r)=>t=>c.meta(t)&&r.every(i=>c[i]?c[i](t):t.key===i),arrow:()=>c.arrow,enter:()=>c.enter,esc:()=>c.esc,tab:()=>c.tab,space:()=>c.space,delete:()=>c.delete,digit:()=>c.digit,letter:()=>c.letter,char:()=>c.char},c={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)},K=(e,r,t)=>{t==null||t===!1?e.removeAttribute(r):e.setAttribute(r,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},fe=(e,r)=>{let t,i,s=a=>{t=!0,setTimeout(()=>{if(t=!1,i)return i=!1,s(a),e(a)},r)};return a=>t?i=!0:(s(a),e(a))},de=(e,r)=>{let t;return i=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(i)},r)}},Q=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(r,t)=>(t?"-":"")+r.toLowerCase())}}),We=p({"directive/value.js"(){m(),U(),b(),d.value=(e,[r,t],i)=>{const s=e.type==="text"||e.type===""?n=>e.setAttribute("value",e.value=n??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(n,o,u)=>(o=e.selectionStart,u=e.selectionEnd,e.setAttribute("value",e.value=n??""),o&&e.setSelectionRange(o,u)):e.type==="checkbox"?n=>(e.checked=n,K(e,"checked",n)):e.type==="select-one"?n=>{for(let o in e.options)o.removeAttribute("selected");e.value=n,e.selectedOptions[0]?.setAttribute("selected","")}:n=>e.value=n,a=e.type==="checkbox"?n=>t(i,e.checked):n=>t(i,e.value);return e.addEventListener("input",a),e.addEventListener("change",a),y(()=>s(r(i)))},d.value.parse=e=>{let r=[L(e)];try{r.push(L(`${e}=arguments[1];`))}catch{}return r}}}),$e=p({"directive/fx.js"(){m(),b(),d.fx=(e,r,t)=>y(()=>r(t))}}),pe={};te(pe,{default:()=>he});var he,Ce=p({"sprae.js"(){m(),Oe(),ke(),Ae(),Se(),Ne(),ue(),Pe(),Ee(),Te(),We(),$e(),U(),x.use(se),x.use({compile:e=>x.constructor(`with (arguments[0]) { return ${e} };`)}),he=x}}),Je={},Le=p({"directive/data.js"(){m(),b(),d.data=(e,r,t)=>y(()=>{let i=r(t);for(let s in i)e.dataset[s]=i[s]})}}),Re={},De=p({"directive/aria.js"(){m(),U(),b(),d.aria=(e,r,t)=>{const i=s=>{for(let a in s)K(e,"aria-"+Q(a),s[a]==null?null:s[a]+"")};return y(()=>i(r(t)))}}}),{default:ye}=(Ce(),je(pe));Le(),De(),ue(),g.exports=ye;var me=document.currentScript?.getAttribute("init")||null;if(me&&ye(document.documentElement,JSON.parse(me)),typeof g.exports=="object"&&typeof $=="object"){var Ke=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Object.getOwnPropertyNames(r))!Object.prototype.hasOwnProperty.call(e,s)&&s!==t&&Object.defineProperty(e,s,{get:()=>r[s],enumerable:!(i=Object.getOwnPropertyDescriptor(r,s))||i.enumerable});return e};g.exports=Ke(g.exports,$)}return g.exports});
5
+ `:""}`,expr:t})},A.use=e=>{e.signal&&me(e),e.compile&&(te=e.compile)},D=e=>{if(!e.nodeType)return e;let r=e.content.cloneNode(!0),t=[...e.attributes],i=document.createTextNode(""),s=(r.append(i),[...r.childNodes]);return{childNodes:s,content:r,remove:()=>r.append(...s),replaceWith(a){a!==i&&(i.before(a),r.append(...s))},attributes:t,removeAttribute(a){t.splice(t.findIndex(n=>n.name===a),1)}}}}}),Z,ve=p({"directive/if.js"(){m(),b(),Z=Symbol("if"),d.if=(e,r,t)=>{let i=e.nextElementSibling,s=document.createTextNode(""),a,n,o;return e.replaceWith(s),n=e.content?D(e):e,v.set(n,null),i?.hasAttribute(":else")&&(i.removeAttribute(":else"),i.hasAttribute(":if")||(i.remove(),o=i.content?D(i):i,v.set(o,null))),y(()=>{const u=r(t)?n:e[Z]?null:o;i&&(i[Z]=u===n),a!=u&&(a?.remove(),(a=u)&&(s.before(a.content||a),v.get(a)===null&&v.delete(a),A(a,t)))})}}}),ge=p({"directive/each.js"(){m(),F(),b(),d.each=(e,[r,t,i],s)=>{const a=document.createTextNode("");e.replaceWith(a);let n,o,u=0;const _=I(()=>{o=null;let l=i(s);return typeof l=="number"&&(l=Array.from({length:l},(j,h)=>h+1)),l?.constructor===Object&&(o=Object.keys(l),l=Object.values(l)),l||[]}),k=()=>{R(()=>{var l,j;let h=0,x=_.value,$=x.length;if(n&&!n[W]){for(let S of n[w]||[])S[Symbol.dispose]();n=null,u=0}if($<u)n.length=$;else{if(!n)n=x;else for(;h<u;h++)n[h]=x[h];for(;h<$;h++){n[h]=x[h];let S=h,Q=T({[r]:n[w]?.[S]||n[S],[t]:o?o[S]:S},s),N=e.content?D(e):e.cloneNode(!0);a.before(N.content||N),A(N,Q),((j=n[l=w]||(n[l]=[]))[h]||(j[h]={}))[Symbol.dispose]=()=>{N[Symbol.dispose](),N.remove()}}}u=$})};let f=0;return y(()=>{_.value[W]?.value,f?f++:(k(),queueMicrotask(()=>(f&&k(),f=0)))})},d.each.parse=e=>{let[r,t]=e.split(/\s+in\s+/),[i,s="$"]=r.split(/\s*,\s*/);return[i,s,L(t)]}}}),_e=p({"directive/ref.js"(){m(),F(),d.ref=(e,r,t)=>{t[r]=e},d.ref.parse=e=>e}}),je=p({"directive/with.js"(){m(),F(),b(),d.with=(e,r,t)=>{let i;return y(()=>{let s=r(t);A(e,i?s:i=T(s,t))})}}}),We={},re=p({"directive/html.js"(){m(),d.html=(e,r,t)=>{let i=r(t);if(!i)return;let s=(i.content||i).cloneNode(!0);e.replaceChildren(s),A(e,t)}}}),we=p({"directive/text.js"(){m(),b(),d.text=(e,r,t)=>(e.content&&e.replaceWith(e=D(e).childNodes[0]),y(()=>{let i=r(t);e.textContent=i??""}))}}),xe=p({"directive/class.js"(){m(),b(),d.class=(e,r,t)=>{let i=new Set;return y(()=>{let s=r(t),a=new Set;s&&(typeof s=="string"?s.split(" ").map(n=>a.add(n)):Array.isArray(s)?s.map(n=>n&&a.add(n)):Object.entries(s).map(([n,o])=>o&&a.add(n)));for(let n of i)a.has(n)?a.delete(n):e.classList.remove(n);for(let n of i=a)e.classList.add(n)})}}}),Oe=p({"directive/style.js"(){m(),b(),d.style=(e,r,t)=>{let i=e.getAttribute("style");return y(()=>{let s=r(t);if(typeof s=="string")e.setAttribute("style",i+(i.endsWith(";")?"":"; ")+s);else{i&&e.setAttribute("style",i);for(let a in s)a[0]=="-"?e.style.setProperty(a,s[a]):e.style[a]=s[a]}})}}}),ie,c,K,ne,se,z,G=p({"directive/default.js"(){m(),b(),d.default=(e,r,t,i)=>{if(!i.startsWith("on"))return y(()=>{let f=r(t);if(i)K(e,i,f);else for(let l in f)K(e,z(l),f[l])});const s=i.split("..").map(f=>{let l={evt:"",target:e,test:()=>!0};return l.evt=(f.startsWith("on")?f.slice(2):f).replace(/\.(\w+)?-?([-\w]+)?/g,(j,h,x="")=>(l.test=ie[h]?.(l,...x.split("-"))||l.test,"")),l});if(s.length==1)return y(()=>k(r(t),s[0]));let a,n,o,u=0;const _=f=>{o=k(l=>(o(),n=f?.(l),(u=++u%s.length)?_(n):a&&_(a)),s[u])};return y(()=>(a=r(t),!o&&_(a),()=>a=null));function k(f,{evt:l,target:j,test:h,defer:x,stop:$,prevent:S,immediate:Q,...N}){x&&(f=x(f));const ce=M=>{try{h(M)&&($&&(Q?M.stopImmediatePropagation():M.stopPropagation()),S&&M.preventDefault(),f?.(M))}catch(Te){X(Te,`:on${l}`,f)}};return j.addEventListener(l,ce,N),()=>j.removeEventListener(l,ce,N)}},ie={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,r){e.defer=t=>ne(t,r?Number(r)||0:108)},debounce(e,r){e.defer=t=>se(t,r?Number(r)||0:108)},outside:e=>r=>{let t=e.target;return!(t.contains(r.target)||r.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>r=>r.target===e.target,ctrl:(e,...r)=>t=>c.ctrl(t)&&r.every(i=>c[i]?c[i](t):t.key===i),shift:(e,...r)=>t=>c.shift(t)&&r.every(i=>c[i]?c[i](t):t.key===i),alt:(e,...r)=>t=>c.alt(t)&&r.every(i=>c[i]?c[i](t):t.key===i),meta:(e,...r)=>t=>c.meta(t)&&r.every(i=>c[i]?c[i](t):t.key===i),arrow:()=>c.arrow,enter:()=>c.enter,esc:()=>c.esc,tab:()=>c.tab,space:()=>c.space,delete:()=>c.delete,digit:()=>c.digit,letter:()=>c.letter,char:()=>c.char},c={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)},K=(e,r,t)=>{t==null||t===!1?e.removeAttribute(r):e.setAttribute(r,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},ne=(e,r)=>{let t,i,s=a=>{t=!0,setTimeout(()=>{if(t=!1,i)return i=!1,s(a),e(a)},r)};return a=>t?i=!0:(s(a),e(a))},se=(e,r)=>{let t;return i=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(i)},r)}},z=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(r,t)=>(t?"-":"")+r.toLowerCase())}}),Ae=p({"directive/value.js"(){m(),G(),b(),d.value=(e,[r,t],i)=>{const s=e.type==="text"||e.type===""?n=>e.setAttribute("value",e.value=n??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(n,o,u)=>(o=e.selectionStart,u=e.selectionEnd,e.setAttribute("value",e.value=n??""),o&&e.setSelectionRange(o,u)):e.type==="checkbox"?n=>(e.checked=n,K(e,"checked",n)):e.type==="select-one"?n=>{for(let o in e.options)o.removeAttribute("selected");e.value=n,e.selectedOptions[0]?.setAttribute("selected","")}:n=>e.value=n,a=e.type==="checkbox"?n=>t(i,e.checked):n=>t(i,e.value);return e.addEventListener("input",a),e.addEventListener("change",a),y(()=>s(r(i)))},d.value.parse=e=>{let r=[L(e)];try{const t=L(`${e}=__;`);r.push((i,s)=>{i.__=s;let a=t(i,s);return delete i.__,a})}catch{}return r}}}),ke=p({"directive/fx.js"(){m(),b(),d.fx=(e,r,t)=>y(()=>r(t))}}),ae={};pe(ae,{default:()=>oe});var oe,Se=p({"sprae.js"(){m(),ve(),ge(),_e(),je(),re(),we(),xe(),Oe(),Ae(),ke(),G(),A.use({compile:e=>A.constructor(`with (arguments[0]) { return ${e} };`)}),oe=A}}),$e={},Ne=p({"directive/data.js"(){m(),b(),d.data=(e,r,t)=>y(()=>{let i=r(t);for(let s in i)e.dataset[s]=i[s]})}}),Ce={},Pe=p({"directive/aria.js"(){m(),G(),b(),d.aria=(e,r,t)=>{const i=s=>{for(let a in s)K(e,"aria-"+z(a),s[a]==null?null:s[a]+"")};return y(()=>i(r(t)))}}}),{default:le}=(Se(),ye(ae));Ne(),Pe(),re(),g.exports=le;var ue=document.currentScript?.getAttribute("init")||null;if(ue&&le(document.documentElement,JSON.parse(ue)),typeof g.exports=="object"&&typeof C=="object"){var Ee=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Object.getOwnPropertyNames(r))!Object.prototype.hasOwnProperty.call(e,s)&&s!==t&&Object.defineProperty(e,s,{get:()=>r[s],enumerable:!(i=Object.getOwnPropertyDescriptor(r,s))||i.enumerable});return e};g.exports=Ee(g.exports,C)}return g.exports});
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["sprae.umd.js"],
4
- "sourcesContent": ["(function (g, f) {if (\"object\" == typeof exports && \"object\" == typeof module) {module.exports = f();} else if (\"function\" == typeof define && define.amd) {define(\"sprae\", [], f);} else if (\"object\" == typeof exports) {exports[\"sprae\"] = f();} else {g[\"sprae\"] = f();}}(typeof self !== 'undefined' ? self : typeof globalThis !== 'undefined' ? globalThis : this, () => {var exports = {};var module = { exports };\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// signal.js\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}\nvar signal, effect, untracked, batch, computed;\nvar init_signal = __esm({\n \"signal.js\"() {\n }\n});\n\n// store.js\nfunction store(values, parent) {\n if (!values)\n return values;\n if (values[_signals])\n return values;\n if (Array.isArray(values))\n return list(values);\n if (values.constructor !== Object)\n 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 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}\nfunction list(values) {\n let lastProp;\n if (values[_signals])\n 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\")\n return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\")\n return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key])\n return signals[key].valueOf();\n if (key < signals.length)\n 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++)\n delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek())\n _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] === \"_\")\n signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek())\n ;\n else if (s._set)\n s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change])\n untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++)\n 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)\n delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\nvar _signals, _change, mut;\nvar init_store = __esm({\n \"store.js\"() {\n init_signal();\n _signals = Symbol(\"signals\");\n _change = Symbol(\"length\");\n mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\n }\n});\n\n// core.js\nfunction sprae(el, values) {\n if (!el?.childNodes)\n return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init2(el);\n if (!memo.has(el))\n memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length)\n disposes.pop()();\n memo.delete(el);\n };\n return state;\n function init2(el2, parent = el2.parentNode) {\n if (!el2.childNodes)\n 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)\n disposes.push(dispose);\n }\n if (memo.has(el2))\n return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent)\n return;\n } else\n i++;\n }\n for (let child of [...el2.childNodes])\n init2(child, el2);\n }\n ;\n}\nvar _dispose, directive, memo, evalMemo, parse, err, compile, frag;\nvar init_core = __esm({\n \"core.js\"() {\n init_signal();\n init_store();\n _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\n directive = {};\n memo = /* @__PURE__ */ new WeakMap();\n evalMemo = {};\n parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()])\n return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n };\n err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n };\n sprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n };\n frag = (tpl) => {\n if (!tpl.nodeType)\n 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)\n 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});\n\n// node_modules/ulive/dist/ulive.es.js\nvar ulive_es_exports = {};\n__export(ulive_es_exports, {\n batch: () => batch2,\n computed: () => computed2,\n effect: () => effect2,\n signal: () => signal2,\n untracked: () => untracked2\n});\nvar current, batched, signal2, effect2, computed2, batch2, untracked2;\nvar init_ulive_es = __esm({\n \"node_modules/ulive/dist/ulive.es.js\"() {\n signal2 = (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)\n return;\n v = val;\n for (let sub of obs)\n batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n }, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\n effect2 = (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())\n dep.delete(fx);\n });\n computed2 = (fn, s = signal2(), c, e) => (c = {\n get value() {\n e || (e = effect2(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n }, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\n batch2 = (fn) => {\n let fxs = batched;\n if (!fxs)\n 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)\n fx();\n }\n }\n };\n untracked2 = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n }\n});\n\n// directive/if.js\nvar _prevIf;\nvar init_if = __esm({\n \"directive/if.js\"() {\n init_core();\n init_signal();\n _prevIf = Symbol(\"if\");\n directive.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\"))\n 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)\n next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n curEl?.remove();\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});\n\n// directive/each.js\nvar init_each = __esm({\n \"directive/each.js\"() {\n init_core();\n init_store();\n init_signal();\n directive.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\")\n items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object)\n 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\n planned++;\n });\n };\n directive.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});\n\n// directive/ref.js\nvar init_ref = __esm({\n \"directive/ref.js\"() {\n init_core();\n init_store();\n directive.ref = (el, expr, state) => {\n state[expr] = el;\n };\n directive.ref.parse = (expr) => expr;\n }\n});\n\n// directive/with.js\nvar init_with = __esm({\n \"directive/with.js\"() {\n init_core();\n init_store();\n init_signal();\n directive.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});\n\n// directive/html.js\nvar html_exports = {};\nvar init_html = __esm({\n \"directive/html.js\"() {\n init_core();\n directive.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl)\n return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n };\n }\n});\n\n// directive/text.js\nvar init_text = __esm({\n \"directive/text.js\"() {\n init_core();\n init_signal();\n directive.text = (el, evaluate, state) => {\n if (el.content)\n 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});\n\n// directive/class.js\nvar init_class = __esm({\n \"directive/class.js\"() {\n init_core();\n init_signal();\n directive.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\")\n v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v))\n v.map((v2) => v2 && clsx.add(v2));\n else\n Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur)\n if (clsx.has(cls))\n clsx.delete(cls);\n else\n el.classList.remove(cls);\n for (let cls of cur = clsx)\n el.classList.add(cls);\n });\n };\n }\n});\n\n// directive/style.js\nvar init_style = __esm({\n \"directive/style.js\"() {\n init_core();\n init_signal();\n directive.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return effect(() => {\n let v = evaluate(state);\n if (typeof v === \"string\")\n el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle)\n el.setAttribute(\"style\", initStyle);\n for (let k in v)\n k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n });\n };\n }\n});\n\n// directive/default.js\nvar mods, keys, attr, throttle, debounce, dashcase;\nvar init_default = __esm({\n \"directive/default.js\"() {\n init_core();\n init_signal();\n directive.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\"))\n return effect(() => {\n let value = evaluate(state);\n if (name)\n attr(target, name, value);\n else\n for (let key in value)\n 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)\n 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)\n 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 };\n mods = {\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 once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\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 outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target))\n return false;\n if (e.target.isConnected === false)\n return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1)\n return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\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 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 };\n 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 };\n attr = (el, name, v) => {\n if (v == null || v === false)\n el.removeAttribute(name);\n else\n el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n };\n throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned)\n return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause)\n return planned = true;\n block(e);\n return fn(e);\n };\n };\n 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 };\n dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n };\n }\n});\n\n// directive/value.js\nvar init_value = __esm({\n \"directive/value.js\"() {\n init_core();\n init_default();\n init_signal();\n directive.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) => (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to)) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let option in el.options)\n option.removeAttribute(\"selected\");\n el.value = value;\n el.selectedOptions[0]?.setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : (e) => setValue(state, el.value);\n el.addEventListener(\"input\", handleChange);\n el.addEventListener(\"change\", handleChange);\n return effect(() => update(getValue(state)));\n };\n directive.value.parse = (expr) => {\n let evaluate = [parse(expr)];\n try {\n evaluate.push(parse(`${expr}=arguments[1];`));\n } catch (e) {\n }\n return evaluate;\n };\n }\n});\n\n// directive/fx.js\nvar init_fx = __esm({\n \"directive/fx.js\"() {\n init_core();\n init_signal();\n directive.fx = (el, evaluate, state) => {\n return effect(() => evaluate(state));\n };\n }\n});\n\n// sprae.js\nvar sprae_exports = {};\n__export(sprae_exports, {\n default: () => sprae_default\n});\nvar sprae_default;\nvar init_sprae = __esm({\n \"sprae.js\"() {\n init_core();\n init_ulive_es();\n init_if();\n init_each();\n init_ref();\n init_with();\n init_html();\n init_text();\n init_class();\n init_style();\n init_value();\n init_fx();\n init_default();\n sprae.use(ulive_es_exports);\n sprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\n sprae_default = sprae;\n }\n});\n\n// directive/data.js\nvar data_exports = {};\nvar init_data = __esm({\n \"directive/data.js\"() {\n init_core();\n init_signal();\n directive[\"data\"] = (el, evaluate, state) => {\n return effect(() => {\n let value = evaluate(state);\n for (let key in value)\n el.dataset[key] = value[key];\n });\n };\n }\n});\n\n// directive/aria.js\nvar aria_exports = {};\nvar init_aria = __esm({\n \"directive/aria.js\"() {\n init_core();\n init_default();\n init_signal();\n directive[\"aria\"] = (el, evaluate, state) => {\n const update = (value) => {\n for (let key in value)\n attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n };\n return effect(() => update(evaluate(state)));\n };\n }\n});\n\n// sprae.umd.cjs\nvar { default: sprae2 } = (init_sprae(), __toCommonJS(sprae_exports));\ninit_data();\ninit_aria();\ninit_html();\nmodule.exports = sprae2;\nvar init = document.currentScript?.getAttribute(\"init\") || null;\nif (init)\n sprae2(document.documentElement, JSON.parse(init));\n;if (typeof module.exports == \"object\" && typeof exports == \"object\") {\n var __cp = (to, from, except, desc) => {\n if ((from && typeof from === \"object\") || typeof from === \"function\") {\n for (let key of Object.getOwnPropertyNames(from)) {\n if (!Object.prototype.hasOwnProperty.call(to, key) && key !== except)\n Object.defineProperty(to, key, {\n get: () => from[key],\n enumerable: !(desc = Object.getOwnPropertyDescriptor(from, key)) || desc.enumerable,\n });\n }\n }\n return to;\n };\n module.exports = __cp(module.exports, exports);\n}\nreturn module.exports;\n}))\n"],
5
- "mappings": "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",
6
- "names": ["g", "f", "exports", "module", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "__esm", "fn", "res", "__export", "target", "all", "name", "__copyProps", "to", "from", "except", "desc", "key", "__toCommonJS", "mod", "use", "s", "signal", "effect", "computed", "batch", "untracked", "init_signal", "store", "values", "parent", "_signals", "list", "signals", "_len", "state", "_", "_change", "v", "set", "del", "lastProp", "mut", "i", "l", "cur", "del2", "init_store", "sprae", "el", "memo", "disposes", "init2", "_dispose", "el2", "attr2", "names", "dir", "directive", "evaluate", "parse", "dispose", "child", "evalMemo", "err", "compile", "frag", "init_core", "expr", "e", "tpl", "content", "attributes", "ref", "childNodes", "a", "ulive_es_exports", "batch2", "computed2", "effect2", "signal2", "untracked2", "current", "batched", "init_ulive_es", "obs", "val", "sub", "teardown", "fx", "deps", "prev", "dep", "c", "fxs", "_prevIf", "init_if", "next", "holder", "curEl", "ifEl", "elseEl", "newEl", "init_each", "itemVar", "idxVar", "keys2", "prevl", "items", "items2", "update", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "leftSide", "itemsExpr", "init_ref", "init_with", "rootState", "html_exports", "init_html", "init_text", "value", "init_class", "clsx", "cls", "v2", "k", "init_style", "initStyle", "mods", "keys", "attr", "throttle", "debounce", "dashcase", "init_default", "ctxs", "ctx", "match", "param", "addListener", "startFn", "nextFn", "off", "nextListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "limit", "wait", "p", "pause", "block", "timeout", "str", "init_value", "getValue", "setValue", "option", "handleChange", "init_fx", "sprae_exports", "sprae_default", "init_sprae", "data_exports", "init_data", "aria_exports", "init_aria", "sprae2", "init", "__cp"]
4
+ "sourcesContent": ["(function (g, f) {if (\"object\" == typeof exports && \"object\" == typeof module) {module.exports = f();} else if (\"function\" == typeof define && define.amd) {define(\"sprae\", [], f);} else if (\"object\" == typeof exports) {exports[\"sprae\"] = f();} else {g[\"sprae\"] = f();}}(typeof self !== 'undefined' ? self : typeof globalThis !== 'undefined' ? globalThis : this, () => {var exports = {};var module = { exports };\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// signal.js\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}\nvar current, batched, signal, effect, computed, batch, untracked;\nvar init_signal = __esm({\n \"signal.js\"() {\n 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)\n return;\n v = val;\n for (let sub of obs)\n batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n }, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\n 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())\n dep.delete(fx);\n });\n 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);\n batch = (fn) => {\n let fxs = batched;\n if (!fxs)\n 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)\n fx();\n }\n }\n };\n untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n }\n});\n\n// store.js\nfunction store(values, parent) {\n if (!values)\n return values;\n if (values[_signals])\n return values;\n if (Array.isArray(values))\n return list(values);\n if (values.constructor !== Object)\n 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 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}\nfunction list(values) {\n let lastProp;\n if (values[_signals])\n 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\")\n return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\")\n return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key])\n return signals[key].valueOf();\n if (key < signals.length)\n 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++)\n delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek())\n _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] === \"_\")\n signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek())\n ;\n else if (s._set)\n s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change])\n untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++)\n 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)\n delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\nvar _signals, _change, mut;\nvar init_store = __esm({\n \"store.js\"() {\n init_signal();\n _signals = Symbol(\"signals\");\n _change = Symbol(\"length\");\n mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\n }\n});\n\n// core.js\nfunction sprae(el, values) {\n if (!el?.childNodes)\n return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init2(el);\n if (!memo.has(el))\n memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length)\n disposes.pop()();\n memo.delete(el);\n };\n return state;\n function init2(el2, parent = el2.parentNode) {\n if (!el2.childNodes)\n 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)\n disposes.push(dispose);\n }\n if (memo.has(el2))\n return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent)\n return;\n } else\n i++;\n }\n for (let child of [...el2.childNodes])\n init2(child, el2);\n }\n ;\n}\nvar _dispose, directive, memo, evalMemo, parse, err, compile, frag;\nvar init_core = __esm({\n \"core.js\"() {\n init_signal();\n init_store();\n _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\n directive = {};\n memo = /* @__PURE__ */ new WeakMap();\n evalMemo = {};\n parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()])\n return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n };\n err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n };\n sprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n };\n frag = (tpl) => {\n if (!tpl.nodeType)\n 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)\n 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});\n\n// directive/if.js\nvar _prevIf;\nvar init_if = __esm({\n \"directive/if.js\"() {\n init_core();\n init_signal();\n _prevIf = Symbol(\"if\");\n directive.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\"))\n 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)\n next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n curEl?.remove();\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});\n\n// directive/each.js\nvar init_each = __esm({\n \"directive/each.js\"() {\n init_core();\n init_store();\n init_signal();\n directive.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\")\n items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object)\n 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\n planned++;\n });\n };\n directive.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});\n\n// directive/ref.js\nvar init_ref = __esm({\n \"directive/ref.js\"() {\n init_core();\n init_store();\n directive.ref = (el, expr, state) => {\n state[expr] = el;\n };\n directive.ref.parse = (expr) => expr;\n }\n});\n\n// directive/with.js\nvar init_with = __esm({\n \"directive/with.js\"() {\n init_core();\n init_store();\n init_signal();\n directive.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});\n\n// directive/html.js\nvar html_exports = {};\nvar init_html = __esm({\n \"directive/html.js\"() {\n init_core();\n directive.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl)\n return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n };\n }\n});\n\n// directive/text.js\nvar init_text = __esm({\n \"directive/text.js\"() {\n init_core();\n init_signal();\n directive.text = (el, evaluate, state) => {\n if (el.content)\n 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});\n\n// directive/class.js\nvar init_class = __esm({\n \"directive/class.js\"() {\n init_core();\n init_signal();\n directive.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\")\n v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v))\n v.map((v2) => v2 && clsx.add(v2));\n else\n Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur)\n if (clsx.has(cls))\n clsx.delete(cls);\n else\n el.classList.remove(cls);\n for (let cls of cur = clsx)\n el.classList.add(cls);\n });\n };\n }\n});\n\n// directive/style.js\nvar init_style = __esm({\n \"directive/style.js\"() {\n init_core();\n init_signal();\n directive.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return effect(() => {\n let v = evaluate(state);\n if (typeof v === \"string\")\n el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle)\n el.setAttribute(\"style\", initStyle);\n for (let k in v)\n k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n });\n };\n }\n});\n\n// directive/default.js\nvar mods, keys, attr, throttle, debounce, dashcase;\nvar init_default = __esm({\n \"directive/default.js\"() {\n init_core();\n init_signal();\n directive.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\"))\n return effect(() => {\n let value = evaluate(state);\n if (name)\n attr(target, name, value);\n else\n for (let key in value)\n 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)\n 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)\n 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 };\n mods = {\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 once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\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 outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target))\n return false;\n if (e.target.isConnected === false)\n return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1)\n return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\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 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 };\n 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 };\n attr = (el, name, v) => {\n if (v == null || v === false)\n el.removeAttribute(name);\n else\n el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n };\n throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned)\n return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause)\n return planned = true;\n block(e);\n return fn(e);\n };\n };\n 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 };\n dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n };\n }\n});\n\n// directive/value.js\nvar init_value = __esm({\n \"directive/value.js\"() {\n init_core();\n init_default();\n init_signal();\n directive.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) => (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to)) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let option in el.options)\n option.removeAttribute(\"selected\");\n el.value = value;\n el.selectedOptions[0]?.setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : (e) => setValue(state, el.value);\n el.addEventListener(\"input\", handleChange);\n el.addEventListener(\"change\", handleChange);\n return effect(() => update(getValue(state)));\n };\n directive.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});\n\n// directive/fx.js\nvar init_fx = __esm({\n \"directive/fx.js\"() {\n init_core();\n init_signal();\n directive.fx = (el, evaluate, state) => {\n return effect(() => evaluate(state));\n };\n }\n});\n\n// sprae.js\nvar sprae_exports = {};\n__export(sprae_exports, {\n default: () => sprae_default\n});\nvar sprae_default;\nvar init_sprae = __esm({\n \"sprae.js\"() {\n init_core();\n init_if();\n init_each();\n init_ref();\n init_with();\n init_html();\n init_text();\n init_class();\n init_style();\n init_value();\n init_fx();\n init_default();\n sprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\n sprae_default = sprae;\n }\n});\n\n// directive/data.js\nvar data_exports = {};\nvar init_data = __esm({\n \"directive/data.js\"() {\n init_core();\n init_signal();\n directive[\"data\"] = (el, evaluate, state) => {\n return effect(() => {\n let value = evaluate(state);\n for (let key in value)\n el.dataset[key] = value[key];\n });\n };\n }\n});\n\n// directive/aria.js\nvar aria_exports = {};\nvar init_aria = __esm({\n \"directive/aria.js\"() {\n init_core();\n init_default();\n init_signal();\n directive[\"aria\"] = (el, evaluate, state) => {\n const update = (value) => {\n for (let key in value)\n attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n };\n return effect(() => update(evaluate(state)));\n };\n }\n});\n\n// sprae.umd.cjs\nvar { default: sprae2 } = (init_sprae(), __toCommonJS(sprae_exports));\ninit_data();\ninit_aria();\ninit_html();\nmodule.exports = sprae2;\nvar init = document.currentScript?.getAttribute(\"init\") || null;\nif (init)\n sprae2(document.documentElement, JSON.parse(init));\n;if (typeof module.exports == \"object\" && typeof exports == \"object\") {\n var __cp = (to, from, except, desc) => {\n if ((from && typeof from === \"object\") || typeof from === \"function\") {\n for (let key of Object.getOwnPropertyNames(from)) {\n if (!Object.prototype.hasOwnProperty.call(to, key) && key !== except)\n Object.defineProperty(to, key, {\n get: () => from[key],\n enumerable: !(desc = Object.getOwnPropertyDescriptor(from, key)) || desc.enumerable,\n });\n }\n }\n return to;\n };\n module.exports = __cp(module.exports, exports);\n}\nreturn module.exports;\n}))\n"],
5
+ "mappings": "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",
6
+ "names": ["g", "f", "exports", "module", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "__esm", "fn", "res", "__export", "target", "all", "name", "__copyProps", "to", "from", "except", "desc", "key", "__toCommonJS", "mod", "use", "s", "signal", "effect", "computed", "batch", "untracked", "current", "batched", "init_signal", "v", "obs", "val", "sub", "teardown", "fx", "deps", "prev", "dep", "c", "e", "fxs", "store", "values", "parent", "_signals", "list", "signals", "_len", "state", "_", "_change", "set", "del", "lastProp", "mut", "i", "l", "cur", "del2", "init_store", "sprae", "el", "memo", "disposes", "init2", "_dispose", "el2", "attr2", "names", "dir", "directive", "evaluate", "parse", "dispose", "child", "evalMemo", "err", "compile", "frag", "init_core", "expr", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "init_if", "next", "holder", "curEl", "ifEl", "elseEl", "newEl", "init_each", "itemVar", "idxVar", "keys2", "prevl", "items", "items2", "update", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "leftSide", "itemsExpr", "init_ref", "init_with", "rootState", "html_exports", "init_html", "init_text", "value", "init_class", "clsx", "cls", "v2", "k", "init_style", "initStyle", "mods", "keys", "attr", "throttle", "debounce", "dashcase", "init_default", "ctxs", "ctx", "match", "param", "addListener", "startFn", "nextFn", "off", "nextListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "limit", "wait", "p", "pause", "block", "timeout", "str", "init_value", "getValue", "setValue", "option", "handleChange", "set2", "result", "init_fx", "sprae_exports", "sprae_default", "init_sprae", "data_exports", "init_data", "aria_exports", "init_aria", "sprae2", "init", "__cp"]
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sprae",
3
3
  "description": "DOM microhydration.",
4
- "version": "10.10.5",
4
+ "version": "10.11.0",
5
5
  "main": "./sprae.js",
6
6
  "module": "./sprae.js",
7
7
  "unpkg": "dist/sprae.umd.min.js",
@@ -14,9 +14,6 @@
14
14
  "directive",
15
15
  "dist"
16
16
  ],
17
- "dependencies": {
18
- "ulive": "^1.0.2"
19
- },
20
17
  "devDependencies": {
21
18
  "@preact/signals": "^1.3.0",
22
19
  "@webreflection/signal": "^2.1.2",
package/readme.md CHANGED
@@ -14,7 +14,7 @@ A light alternative to alpine, petite-vue etc.
14
14
  </div>
15
15
 
16
16
  <script type="module">
17
- import sprae from 'sprae'
17
+ import sprae from './sprae.js'
18
18
 
19
19
  // init
20
20
  const container = document.querySelector('#container');
@@ -105,13 +105,13 @@ Set style value.
105
105
 
106
106
  ```html
107
107
  <!-- extends style -->
108
- <div style="foo: bar" :style="'baz-baz: qux'">
108
+ <div style="foo: bar" :style="'bar-baz: qux'">
109
109
 
110
110
  <!-- object -->
111
- <div :style="{bazBaz: 'qux'}"></div>
111
+ <div :style="{barBaz: 'qux'}"></div>
112
112
 
113
113
  <!-- CSS variable -->
114
- <div :style="{'--baz-baz': qux}"></div>
114
+ <div :style="{'--bar-baz': qux}"></div>
115
115
  ```
116
116
 
117
117
  #### `:value="value"`
@@ -163,8 +163,8 @@ Expose element with `name`.
163
163
  <textarea :ref="text" placeholder="Enter text..."></textarea>
164
164
 
165
165
  <!-- iterable items -->
166
- <li :each="item in items" :ref="item">
167
- <input :onfocus..onblur="e => (item.classList.add('editing'), e => item.classList.remove('editing'))"/>
166
+ <li :each="item in items" :ref="li">
167
+ <input :onfocus..onblur="e => (li.classList.add('editing'), e => li.classList.remove('editing'))"/>
168
168
  </li>
169
169
  ```
170
170
 
@@ -176,7 +176,7 @@ Run effect, not changing any attribute.
176
176
  <div :fx="a.value ? foo() : bar()" />
177
177
 
178
178
  <!-- cleanup function -->
179
- <div :fx="id = setInterval(tick, interval), () => clearInterval(tick)" />
179
+ <div :fx="id = setInterval(tick, 1000), () => clearInterval(id)" />
180
180
  ```
181
181
 
182
182
  #### `:on<event>="handler"`, `:on<in>..on<out>="handler"`
@@ -283,15 +283,15 @@ Trigger when element is connected / disconnected from DOM.
283
283
 
284
284
  ## Signals
285
285
 
286
- Sprae uses signals for reactivity and can take signal values as inputs.<br/>
287
- Signals provider can be switched to any preact-flavored implementation:
286
+ Sprae uses _preact-flavored signals_ for reactivity and can take _signal_ values as inputs.<br/>
287
+ Signals can be switched to any preact/compatible implementation:
288
288
 
289
289
  ```js
290
290
  import sprae from 'sprae';
291
291
  import { signal, computed, effect, batch, untracked } from 'sprae/signal';
292
292
  import * as signals from '@preact/signals-core';
293
293
 
294
- // switch provider to @preact/signals-core
294
+ // switch sprae signals to @preact/signals-core
295
295
  sprae.use(signals);
296
296
 
297
297
  // use signal as state value
@@ -304,11 +304,11 @@ name.value = 'Dolly';
304
304
 
305
305
  Provider | Size | Feature
306
306
  :---|:---|:---
307
- [`ulive`](https://ghub.io/ulive) (default) | 350b | Minimal implementation, basic performance, good for small states.
307
+ [`ulive`](https://ghub.io/ulive) | 350b | Minimal implementation, basic performance, good for small states.
308
308
  [`@webreflection/signal`](https://ghub.io/@webreflection/signal) | 531b | Class-based, better performance, good for small-medium states.
309
309
  [`usignal`](https://ghub.io/usignal) | 850b | Class-based with optimizations, good for medium states.
310
310
  [`@preact/signals-core`](https://ghub.io/@preact/signals-core) | 1.47kb | Best performance, good for any states, industry standard.
311
- [`signal-polyfill`](https://ghub.com/signal-polyfill) | 2.5kb | Proposal signals. Use via [adapter](https://gist.github.com/dy/bbac687464ccf5322ab0e2fd0680dc4d).
311
+ [`signal-polyfill`](https://ghub.io/signal-polyfill) | 2.5kb | Proposal signals. Use via [adapter](https://gist.github.com/dy/bbac687464ccf5322ab0e2fd0680dc4d).
312
312
 
313
313
 
314
314
  ## Evaluator
@@ -375,9 +375,13 @@ sprae.use({ compile })
375
375
  * State getters/setters work as computed effects, eg. `sprae(el, { x:1, get x2(){ return this.x * 2} })`.
376
376
  * `this` keyword is not used, to get access to current element use `<input :ref="el" :text="el.value"/>`.
377
377
  * Async/await is not supported in attributes, it's a strong indicator you need to put these methods into state.
378
+ * `:each` doesn't need `key` since it uses direct mapping, see [#44](https://github.com/dy/sprae/issues/44).
379
+ * Event attributes always expect a function value `:onevt="event => handle()"`, see [#46](https://github.com/dy/sprae/issues/46).
378
380
 
379
381
  ## Justification
380
382
 
383
+ Modern frontend stack is unhealthy like non-organic / processed food. There are few resorts, but:
384
+
381
385
  * [Template-parts](https://github.com/dy/template-parts) is stuck with native HTML quirks ([parsing table](https://github.com/github/template-parts/issues/24), [SVG attributes](https://github.com/github/template-parts/issues/25), [liquid syntax](https://shopify.github.io/liquid/tags/template/#raw) conflict etc).
382
386
  * [Alpine](https://github.com/alpinejs/alpine) / [petite-vue](https://github.com/vuejs/petite-vue) / [lucia](https://github.com/aidenyabi/lucia) escape native HTML quirks, but have excessive API (`:`, `x-`, `{}`, `@`, `$`), tend to [self-encapsulate](https://github.com/alpinejs/alpine/discussions/3223) and not care about size/performance.
383
387
 
package/signal.js CHANGED
@@ -1,5 +1,59 @@
1
+ // ulive copy, stable minimal implementation
2
+ let current, batched;
3
+
4
+ export let signal = (v, s, obs = new Set) => (
5
+ s = {
6
+ get value() {
7
+ current?.deps.push(obs.add(current));
8
+ return v
9
+ },
10
+ set value(val) {
11
+ if (val === v) return
12
+ v = val;
13
+ for (let sub of obs) batched ? batched.add(sub) : sub(); // notify effects
14
+ },
15
+ peek() { return v },
16
+ },
17
+ s.toJSON = s.then = s.toString = s.valueOf = () => s.value,
18
+ s
19
+ ),
20
+ effect = (fn, teardown, fx, deps) => (
21
+ fx = (prev) => {
22
+ teardown?.call?.();
23
+ prev = current, current = fx;
24
+ try { teardown = fn(); } finally { current = prev; }
25
+ },
26
+ deps = fx.deps = [],
27
+
28
+ fx(),
29
+ (dep) => { teardown?.call?.(); while (dep = deps.pop()) dep.delete(fx); }
30
+ ),
31
+ computed = (fn, s = signal(), c, e) => (
32
+ c = {
33
+ get value() {
34
+ e ||= effect(() => s.value = fn());
35
+ return s.value
36
+ },
37
+ peek: s.peek
38
+ },
39
+ c.toJSON = c.then = c.toString = c.valueOf = () => c.value,
40
+ c
41
+ ),
42
+ batch = (fn) => {
43
+ let fxs = batched;
44
+ if (!fxs) batched = new Set;
45
+ try { fn(); }
46
+ finally {
47
+ if (!fxs) {
48
+ fxs = batched;
49
+ batched = null;
50
+ for (const fx of fxs) fx();
51
+ }
52
+ }
53
+ },
54
+ untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);
55
+
1
56
  // signals adapter - allows switching signals implementation and not depend on core
2
- export let signal, effect, untracked, batch, computed;
3
57
 
4
58
  export function use(s) {
5
59
  signal = s.signal
package/sprae.js CHANGED
@@ -1,7 +1,5 @@
1
1
  import sprae from './core.js'
2
2
 
3
- import * as signals from 'ulive'
4
-
5
3
  // default directives
6
4
  import './directive/if.js'
7
5
  import './directive/each.js'
@@ -15,10 +13,7 @@ import './directive/value.js'
15
13
  import './directive/fx.js'
16
14
  import './directive/default.js'
17
15
 
18
- // default signals
19
- sprae.use(signals)
20
-
21
16
  // default compiler (indirect new Function to avoid detector)
22
17
  sprae.use({ compile: expr => sprae.constructor(`with (arguments[0]) { return ${expr} };`) })
23
18
 
24
- export default sprae
19
+ export default sprae