sprae 12.4.4 → 12.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,8 @@ export default (el, st, ex, name) => {
15
15
  return (v) => {
16
16
  _new = new Set
17
17
  if (v) clsx(typeof v === 'function' ? v(el.className) : v).split(' ').map(c => c && _new.add(c))
18
- for (let c of _cur) if (_new.has(c)) _new.delete(c); else el.classList.remove(c);
19
- for (let c of _cur = _new) el.classList.add(c)
18
+ for (let c of _cur) if (!_new.has(c)) el.classList.remove(c);
19
+ for (let c of _new) if (!_cur.has(c)) el.classList.add(c);
20
+ _cur = _new
20
21
  }
21
22
  }
package/directive/html.js CHANGED
@@ -1,4 +1,4 @@
1
- import sprae, { _dispose } from "../core.js"
1
+ import sprae, { untracked, frag, _dispose, _state } from "../core.js"
2
2
 
3
3
  /**
4
4
  * HTML directive - sets innerHTML and initializes nested directives.
@@ -8,24 +8,42 @@ import sprae, { _dispose } from "../core.js"
8
8
  * @returns {(v: string | ((html: string) => string)) => void | (() => void)} Update function
9
9
  */
10
10
  export default (el, state) => {
11
- // <template :html="a"/> - fragment case: use placeholder + range
11
+ // <template :html="a"/> - fragment case: use placeholder + frag
12
12
  if (el.content) {
13
- let doc = el.ownerDocument,
14
- start = doc.createTextNode(''),
15
- end = doc.createTextNode(''),
16
- range = doc.createRange()
17
- el.replaceWith(start, end)
13
+ let _el, html = el.innerHTML,
14
+ doc = el.ownerDocument,
15
+ holder = el._holder
16
+
17
+ if (!holder) el.replaceWith(holder = doc.createTextNode(''))
18
+
18
19
  return v => {
19
- v = typeof v === 'function' ? v('') : v
20
- range.setStartAfter(start)
21
- range.setEndBefore(end)
22
- range.deleteContents()
20
+ if (typeof v === 'function') v = v(html)
21
+
22
+ // :if case: remove current content from DOM
23
+ if (el._holder) el.remove(), el.content.replaceChildren()
24
+ _el?.remove()
25
+
23
26
  if (v != null && v !== '') {
24
- let frag = range.createContextualFragment(v)
25
- sprae(frag, state)
26
- range.insertNode(frag)
27
+ _el = frag((_el = doc.createElement('template'), _el.innerHTML = html = v, _el))
28
+
29
+ untracked(() => sprae(_el, state))
30
+
31
+ holder.before(_el.content)
32
+
33
+ // :if case: update childNodes in-place for remove() closure
34
+ if (el._holder) el.childNodes.splice(0, Infinity, ..._el.childNodes)
35
+
36
+ return _el[_dispose]
27
37
  }
38
+ else if (el._holder) el.childNodes.length = 0, html = ''
28
39
  }
29
40
  }
30
- return v => (v = typeof v === 'function' ? v(el.innerHTML) : v, el.innerHTML = v == null ? "" : v, sprae(el, state), el[_dispose])
41
+
42
+ return v => (
43
+ v = typeof v === 'function' ? v(el.innerHTML) : v,
44
+ el.innerHTML = v == null ? "" : v,
45
+ el[_state] &&= null,
46
+ untracked(() => sprae(el, state)),
47
+ el[_dispose]
48
+ )
31
49
  }
@@ -13,8 +13,8 @@ export default (el, rootState) => {
13
13
  let state = el[_state] = store({}, rootState), init = false
14
14
 
15
15
  // <template :scope="{}" /> or previously initialized template
16
- let _el = el.content ? frag(el) : el, _holder
17
- if (el.content) el.replaceWith(_holder = el.ownerDocument.createTextNode(''))
16
+ let holder, _frag = el.content && frag(el)
17
+ if (_frag) el.replaceWith(holder = el.ownerDocument.createTextNode(''))
18
18
 
19
19
  // 1st run spraes subtree with values from scope, it can be postponed by modifiers (we isolate reads from parent effect)
20
20
  // 2nd+ runs update subscope
@@ -35,6 +35,6 @@ export default (el, rootState) => {
35
35
  }
36
36
 
37
37
  // Object.assign(subscope, call(values, subscope))
38
- return !init && (init = true, delete el[_state], untracked(() => (_holder?.before(_el.content || _el), sprae(_el, state))))
38
+ return !init && (init = true, !holder && (delete el[_state]), untracked(() => (holder?.before(_frag.content || el), sprae(_frag || el, state))))
39
39
  }
40
40
  }
package/dist/sprae.js CHANGED
@@ -1,3 +1,3 @@
1
- var Ve=Object.defineProperty;var Fe=(e,r)=>{for(var t in r)Ve(e,t,{get:r[t],enumerable:!0})};var g=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),d=Symbol("state"),J=Symbol("on"),R=Symbol("off"),Q=Symbol("init"),U=":",_,V,X,F=e=>e(),M=F,H={},k={},Y=null,v=null,He=e=>{if(!e?.tagName)return"";let r=e.tagName.toLowerCase();return e.id?r+="#"+e.id:e.className&&(r+="."+e.className.split(" ")[0]),`<${r}>`},G=(e,r)=>{let t=`\u2234 ${e}`;if(v&&(t+=`
2
- in ${He(v)}`),Y&&r){let o=r.length>100?r.slice(0,80)+`\u2026 (${r.length} chars)`:r;t+=`
3
- ${Y}="${o}"`}console.error(t)},ee=(e=document.body,r)=>{if(e[d])return Object.assign(e[d],r);r=z(r||{});let t=[],o=[];e[J]=()=>!o&&(o=t.map(i=>i())),e[R]=()=>(o?.map(i=>i()),o=null),e[g]||(e[g]=()=>(e[R](),e[R]=e[J]=e[g]=e[Q]=e[d]=null));let n=e[Q]=i=>{let s=i.attributes,a;if(s)for(let c=0;c<s.length;){let{name:l,value:p}=s[c];if(l.startsWith(U)){if(i.removeAttribute(l),Y=l,v=i,t.push(a=fe(i,l.slice(U.length),p,r)),o.push(a()),d in i)return}else c++}if(i.firstChild!==void 0){let c=i.firstChild,l;for(;c;)l=c.nextSibling,c.nodeType==1&&n(c),c=l}else for(let c of i.childNodes)c.nodeType==1&&n(c)};return n(e),e[d]===void 0&&(e[d]=r),r};ee.version="12.4.4";var fe,pe,h=e=>{let r=de[e=e.trim()];if(r)return r;try{r=pe(e||"undefined")}catch(t){G(t,e)}return de[e]=function(t,o,n){try{let i=r?.call(this,t);return o?i?.then?(i.then(s=>n=o(s)).catch(s=>G(s,e)),()=>typeof n=="function"&&n()):o(i):i}catch(i){G(i,e)}}},de={},te=e=>(e.compile&&(pe=e.compile),e.prefix&&(U=e.prefix),e.signal&&(_=e.signal),e.effect&&(V=e.effect),e.computed&&(X=e.computed),e.batch&&(F=e.batch),e.untracked&&(M=e.untracked),e.dir&&(fe=e.dir)),W=(e,r)=>{for(;r.length;){let[t,...o]=r.pop().split("-"),n=k[t],i;if(n&&(i=n(e,...o))!==e){for(let s in e)i[s]??(i[s]=e[s]);e=i}}return e},q=null,P=e=>{q?.disconnect(),e(),q?.observe(q._root,{childList:!0,subtree:!0})},me=(e=document.body,r)=>{let t=z(r);return ee(e,t),q=new MutationObserver(o=>{for(let n of o){for(let i of n.addedNodes)i.nodeType===1&&i[d]===void 0&&e.contains(i)&&e[Q](i);for(let i of n.removedNodes)i.nodeType===1&&!e.contains(i)&&i[g]?.()}}),q._root=e,q.observe(e,{childList:!0,subtree:!0}),t},S=e=>{if(!e.nodeType)return e;let r=e.ownerDocument,t=e.content.cloneNode(!0),o=[...e.attributes],n=r.createTextNode(""),i=(t.append(n),[...t.childNodes]);return{ownerDocument:r,childNodes:i,content:t,remove:()=>t.append(...i),replaceWith(s){s!==n&&(n.before(s),t.append(...i))},attributes:o,removeAttribute(s){o.splice(o.findIndex(a=>a.name===s),1)}}},he=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(r,t)=>(t?"-":"")+r.toLowerCase()),w=(e,r,t)=>t==null||t===!1?e.removeAttribute(r):e.setAttribute(r,t===!0?"":t),re=(e,r=[])=>e?typeof e=="string"?e:(Array.isArray(e)?e.map(re):Object.entries(e).reduce((t,[o,n])=>n?[...t,o]:t,[])).join(" "):"",$=(e,r)=>{let t=0,o,n=typeof r=="function"?r:r?s=>setTimeout(s,r):queueMicrotask,i=s=>{o=s,t++||(e(o),n((a=t>1)=>(t=0,a&&i(o))))};return i},ye=(e,r,t)=>{let o=typeof r=="function"?r:r?n=>setTimeout(n,r):queueMicrotask;return t?(n=>i=>!n&&(e(i),n=1,o(()=>n=0)))():((n=0)=>(i,s=++n)=>o(()=>s==n&&e(i)))()},f=ee;var N=Symbol("signals"),C=Symbol("change"),ne=Symbol("set"),oe=!0,A=(e,r)=>{if(!e||e[Symbol.toStringTag]||e[N])return e;if(e.constructor!==Object)return Array.isArray(e)?ze(e):e;let t=Object.keys(e).length,o={},n=new Proxy(Object.assign(o,{[C]:_(t),[N]:o}),{get:(s,a)=>a in o?o[a]?o[a].valueOf():o[a]:r?r[a]:typeof globalThis[a]=="function"&&!globalThis[a].prototype?globalThis[a].bind(globalThis):globalThis[a],set:(s,a,c)=>a in o?(ge(o,a,c),1):(oe=!1,r&&a in r?r[a]=c:(Z(o,a,c),o[C].value=++t),oe=!0,1),deleteProperty:(s,a)=>(a in o&&(a[0]!="_"&&o[a]?.[Symbol.dispose]?.(),delete o[a],o[C].value=--t),1),ownKeys:()=>(o[C].value,Reflect.ownKeys(o)),has:(s,a)=>a in o?!0:r?a in r:oe}),i=Object.getOwnPropertyDescriptors(e);for(let s in e)i[s]?.get?(o[s]=X(i[s].get.bind(n)))[ne]=i[s].set?.bind(n):Z(o,s,e[s]);return n},ze=(e,r=globalThis)=>{let t=Array(e.length).fill(null),o=!1,n=a=>function(){return o=!0,a.apply(this,arguments)},i=_(e.length),s=new Proxy(Object.assign(t,{[C]:i,[N]:t,push:n(t.push),pop:n(t.pop),shift:n(t.shift),unshift:n(t.unshift),splice:n(t.splice)}),{get(a,c){return c==="length"?o?(o=!1,t.length):i.value:typeof c=="symbol"||isNaN(c)?t[c]?.valueOf()??r[c]:(t[c]??(t[c]=_(A(e[c])))).valueOf()},set(a,c,l){if(c==="length"){for(let p=l;p<t.length;p++)delete s[p];i.value=t.length=l}else c>=t.length?(Z(t,c,l),s.length=+c+1):t[c]?ge(t,c,l):Z(t,c,l);return 1},deleteProperty:(a,c)=>(t[c]?.[Symbol.dispose]?.(),delete t[c],1)});return s},Z=(e,r,t)=>e[r]=r[0]=="_"||t?.peek?t:_(A(t)),ge=(e,r,t,o,n)=>r[0]==="_"?e[r]=t:t!==(n=(o=e[r]).peek())&&(o[ne]?o[ne](t):Array.isArray(t)&&Array.isArray(n)?C in n?M(()=>F(()=>{for(let i=0;i<t.length;i++)n[i]=t[i];n.length=t.length})):o.value=t:o.value=A(t)),z=A;var ie={};Fe(ie,{batch:()=>Je,computed:()=>Be,effect:()=>_e,signal:()=>xe,untracked:()=>Xe});var j,be=0,I,xe=(e,r,t=new Set,o=()=>r.value)=>r={get value(){return j?.deps.add(t.add(j)),e},set value(n){if(n!==e){e=n;for(let i of t)I?I.add(i):i()}},peek(){return e},toJSON:o,toString:o,valueOf:o},_e=(e,r,t,o)=>(t=n=>{let i=r;if(r=null,i?.call?.(),n=j,j=t,be++>10)throw"Cycle detected";try{r=e()}finally{j=n,be--}},t.fn=e,o=t.deps=new Set,t(),n=>{r?.call?.();for(n of o)n.delete(t);o.clear()}),Be=(e,r=xe(),t,o,n=()=>t.value)=>t={get value(){return o||(o=_e(()=>r.value=e())),r.value},peek:r.peek,toJSON:n,toString:n,valueOf:n},Je=(e,r=!I,t)=>{I??(I=new Set);try{e()}finally{if(r){[I,t]=[null,I];for(let o of t)o()}}},Xe=(e,r,t)=>(r=j,j=null,t=e(),j=r,t);var Se=(e,r)=>{var i,s;let t,o,n;return e._holder?f(o=e,r):(e[i=d]??(e[i]=null),o=e.content?S(e):e,o[s=d]??(o[s]=null),P(()=>e.replaceWith(t=e.ownerDocument.createTextNode(""))),o._holder=t._holder=t,t._clauses=[o._clause=[o,!1]],t.update=$(()=>{let a=t._clauses.find(([,c])=>c);a!=n&&P(()=>{n?.[0].remove(),n?.[0][R]?.(),(n=a)&&(t.before(n[0].content||n[0]),n[0][d]?n[0][J]?.():(delete n[0][d],f(n[0],r)))})})),a=>{o._clause[1]=a,o._holder.update()}};var we=e=>{var o;let r,t=e;for(r=e.content?S(e):e,r[o=d]??(r[o]=null);t&&!(r._holder=t._holder);)t=t.previousSibling;return e.remove(),e[d]=null,r._holder._clauses.push(r._clause=[r,!0]),r._holder.update};var Ne=e=>(e.content&&e.replaceWith(e=S(e).childNodes[0]),r=>(r=typeof r=="function"?r(e.textContent):r,e.textContent=r??""));var Ae=(e,r,t,o)=>{let n=new Set,i;return s=>{i=new Set,s&&re(typeof s=="function"?s(e.className):s).split(" ").map(a=>a&&i.add(a));for(let a of n)i.has(a)?i.delete(a):e.classList.remove(a);for(let a of n=i)e.classList.add(a)}};var Oe=(e,r,t,o)=>{let n;return i=>{if(n===void 0&&(n=e.getAttribute("style")??""),i=typeof i=="function"?i(e.style):i,typeof i=="string")w(e,"style",n?n+"; "+i:i);else{n&&w(e,"style",n);for(let s in i)s[0]=="-"?e.style.setProperty(s,i[s]):s[0]>"A"&&(e.style[s]=i[s])}}};var Te=()=>e=>typeof e=="function"&&e();var se=(e,r=h(`${e}=__`))=>(t,o)=>{t.__=o,r(t),delete t.__},Ce=(e,r,t)=>{try{let o=se(t),n=e.type==="checkbox"?()=>o(r,e.checked):e.type==="select-multiple"?()=>o(r,[...e.selectedOptions].map(i=>i.value)):()=>o(r,e.selectedIndex<0?null:isNaN(e.valueAsNumber)?e.value:e.valueAsNumber);e.oninput=e.onchange=n,e.type?.startsWith("select")&&(new MutationObserver(n).observe(e,{childList:!0,subtree:!0,attributes:!0}),f(e,r)),h(t)(r)??n()}catch{}return e.type==="text"||e.type===""||e.tagName==="TEXTAREA"?(o,n,i)=>(n=e.selectionStart,i=e.selectionEnd,e.setAttribute("value",e.value=o??""),n&&e.setSelectionRange(n,i)):e.type==="checkbox"?o=>(e.checked=o,w(e,"checked",o)):e.type==="radio"?o=>e.value===o&&(e.checked=o,w(e,"checked",o)):e.type==="select-one"?o=>{for(let n of e.options)n.value==o?n.setAttribute("selected",""):n.removeAttribute("selected");e.value=o}:e.type==="select-multiple"?o=>{for(let n of e.options)n.removeAttribute("selected");for(let n of o)e.querySelector(`[value="${n}"]`).setAttribute("selected","")}:o=>e.value=o};var De=(e,r,t)=>{let o=h(t)(r);if(typeof o=="function")return{[Symbol.dispose]:o(e)};se(t)(r,e)};var je=(e,r)=>{let t=e[d]=A({},r),o=!1,n=e.content?S(e):e,i;return e.content&&e.replaceWith(i=e.ownerDocument.createTextNode("")),s=>{if(s=typeof s=="function"?s(t):s,s!==t)for(let a in s){let c=typeof s[a]=="function"?s[a].bind(t):s[a];a in t[N]?t[a]=c:t[N][a]=a[0]=="_"||c?.peek?c:_(A(c))}return!o&&(o=!0,delete e[d],M(()=>(i?.before(n.content||n),f(n,t))))}};var ke=(e,r,t)=>{let[o,n]=t.split(/\bin|of\b/),[i,s="$"]=o.trim().replace(/\(|\)/g,"").split(/\s*,\s*/),a=e.ownerDocument,c=a.createTextNode(""),l,p,b,O=0,D=$(()=>P(()=>{var y,E;let u=0,T=b,m=T.length;if(l&&!l[C]){for(let le of l[N]||[])le[Symbol.dispose]();l=null,O=0}if(m<O)l.length=m;else{if(!l)l=T;else for(;u<O;)l[u]=T[u++];let K=m-u>1?a.createDocumentFragment():null,ue=K?[]:null;for(;u<m;u++){l[u]=T[u];let L=u,x=e.content?S(e):e.cloneNode(!0),B=x.content||x;if(K)K.appendChild(B),ue.push([x,L]);else{c.before(B);let Re=A({get[i](){return l[L]},[s]:p?p[L]:L},r);f(x,Re)}let Ke=((E=l[y=N]||(l[y]=[]))[u]||(E[u]={}))[Symbol.dispose];l[N][u][Symbol.dispose]=()=>{Ke?.(),x[Symbol.dispose]?.(),x.remove()}}if(K){c.before(K);for(let[L,x]of ue){let B=A({get[i](){return l[x]},[s]:p?p[x]:x},r);f(L,B)}}}O=m}));return P(()=>e.replaceWith(c)),e[d]=null,Object.assign(u=>(p=null,typeof u=="number"?b=Array.from({length:u},(T,m)=>m+1):u?.constructor===Object?(p=Object.keys(u),b=Object.values(u)):b=u||[],V(()=>{b[C]?.value,D()})),{eval:h(n)})};var $e=(e,r,t,o)=>n=>w(e,o,typeof n=="function"?n(e.getAttribute(o)):n);var Ee=e=>r=>{for(let t in r)w(e,he(t),r[t])};var Le=(e,r,t,o)=>{let[n,...i]=o.slice(2).split("."),s=h(t).bind(e),a=W(Object.assign(c=>s(r,l=>typeof l=="function"?l(c):l),{target:e}),i);return a.target.addEventListener(n,a,a),{[Symbol.dispose](){a.target.removeEventListener(n,a)}}};var qe=(e,r,t,o)=>{let n,i,s=o.split("..").map((a,c,{length:l})=>a.split(":").reduce((p,b)=>{let[O,...D]=b.slice(2).split("."),u=h(t).bind(e),T=(y,E)=>n=typeof y=="function"?y(E):y,m=W(Object.assign(y=>(c?T(n,y):u(r,E=>T(E,y)),i(),i=s[(c+1)%l]()),{target:e}),D);return y=>(y=p?.(),m.target.addEventListener(O,m,m),()=>(y?.(),m.target.removeEventListener(O,m)))},null));return i=s[0](),{[Symbol.dispose](){i?.()}}};var Me=(e,r)=>{if(e.content){let t=e.ownerDocument,o=t.createTextNode(""),n=t.createTextNode(""),i=t.createRange();return e.replaceWith(o,n),s=>{if(s=typeof s=="function"?s(""):s,i.setStartAfter(o),i.setEndBefore(n),i.deleteContents(),s!=null&&s!==""){let a=i.createContextualFragment(s);f(a,r),i.insertNode(a)}}}return t=>(t=typeof t=="function"?t(e.innerHTML):t,e.innerHTML=t??"",f(e,r),e[g])};var We=(e,r,t)=>{let o=e.ownerDocument,n=o.createComment(":portal"),i=null;return e.before(n),s=>{let a=e.getRootNode(),c=typeof s=="string"?a.querySelector?.(s)||o.querySelector(s):s?.nodeType===1?s:s?o.body:null;c!==i&&(c?c.appendChild(e):n.after(e),i=c)}};var Pe=e=>r=>e.hidden=!!r;Object.assign(H,{_:$e,"":Ee,class:Ae,text:Ne,html:Me,style:Oe,fx:Te,value:Ce,ref:De,scope:je,if:Se,else:we,each:ke,portal:We,hidden:Pe});var Ze=(e,r,t,o)=>{let[n,...i]=r.split("."),s=H[n]||H._;return()=>{let a=_(0),c=W(Object.assign($(()=>a.value++),{target:e}),i),l=c.target??e,p=s(l,o,t,n);if(!p?.call)return p?.[g];let b=0,O=p.eval??h(t).bind(l),D,u=()=>(typeof D=="function"&&D(),D=null);return o=l[d]??o,V(()=>{let T=a.value==b?c():(b=a.value,D=O(o,p));return u})}},Ge=e=>e?typeof e=="number"?e:(([,r,t]=e.match(/^(\d+)(ms|s|m)?$/)||[])=>(r=+r,t==="s"?r*1e3:t==="m"?r*6e4:r))():0,ae=e=>e==="idle"?requestIdleCallback:e==="raf"?requestAnimationFrame:!e||e==="tick"?queueMicrotask:r=>setTimeout(r,Ge(e));Object.assign(k,{debounce:(e,r,t)=>ye(e,ae(r==="immediate"?t:r),r==="immediate"||t==="immediate"),throttle:(e,r)=>$(e,ae(r)),delay:(e,r)=>((t=ae(r))=>o=>t(()=>e(o)))(),tick:e=>r=>queueMicrotask(()=>e(r)),raf:e=>r=>requestAnimationFrame(()=>e(r)),once:(e,r,t)=>(t=o=>!r&&(r=1,e(o)),t.once=!0,t),window:e=>(e.target=e.target.ownerDocument.defaultView,e),document:e=>(e.target=e.target.ownerDocument,e),root:e=>(e.target=e.target.ownerDocument.documentElement,e),body:e=>(e.target=e.target.ownerDocument.body,e),parent:e=>(e.target=e.target.parentNode,e),self:e=>r=>r.target===e.target&&e(r),away:e=>Object.assign(r=>!e.target.contains(r.target)&&r.target.isConnected&&e(r),{target:e.target.ownerDocument}),prevent:e=>r=>(r?.preventDefault(),e(r)),stop:(e,r)=>t=>(r?.[0]==="i"?t?.stopImmediatePropagation():t?.stopPropagation(),e(t)),passive:e=>(e.passive=!0,e),capture:e=>(e.capture=!0,e)});k.outside=k.away;var ce={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",cmd:e=>e.metaKey||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)},Ie=(e,r)=>ce[e]?.(r)||r.key.toLowerCase()===e||r.keyCode==e;for(let e in ce)k[e]=(r,t,o)=>n=>ce[e](n)&&(!t||Ie(t,n))&&(!o||Ie(o,n))&&r(n);var Qe=e=>{for(let r=0,t=0;t<e.length;t++)if(e[t]=="{")r++;else if(e[t]=="}")r--;else if(e[t]==";"&&!r)return!0;return!1};te({compile:e=>(/^(if|let|const)\b/.test(e)||Qe(e)||(e=`return ${e}`),/\bawait\s/.test(e)&&(e=`return (async()=>{${e}})()`),f.constructor(`with(arguments[0]){${e}}`)),dir:(e,r,t,o)=>r.includes("..")?()=>qe(e,o,t,r)[g]:r.split(":").reduce((n,i)=>{let s=i.startsWith("on")?()=>Le(e,o,t,i)[g]:Ze(e,i,t,o);return n?(a,c)=>(a=n(),c=s(),()=>{a(),c()}):s},null),...ie});f.use=te;f.store=z;f.directive=H;f.modifier=k;var dr=f.dispose=e=>e[g]?.();f.start=me;var fr=f;export{F as batch,X as computed,ye as debounce,fr as default,dr as dispose,V as effect,_ as signal,f as sprae,me as start,z as store,$ as throttle,M as untracked,te as use};
1
+ var He=Object.defineProperty;var Ve=(e,r)=>{for(var t in r)He(e,t,{get:r[t],enumerable:!0})};var h=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),d=Symbol("state"),B=Symbol("on"),R=Symbol("off"),Q=Symbol("init"),U=":",S,H,X,V=e=>e(),C=V,z={},L={},Y=null,v=null,ze=e=>{if(!e?.tagName)return"";let r=e.tagName.toLowerCase();return e.id?r+="#"+e.id:e.className&&(r+="."+e.className.split(" ")[0]),`<${r}>`},G=(e,r)=>{let t=`\u2234 ${e}`;if(v&&(t+=`
2
+ in ${ze(v)}`),Y&&r){let o=r.length>100?r.slice(0,80)+`\u2026 (${r.length} chars)`:r;t+=`
3
+ ${Y}="${o}"`}console.error(t)},ee=(e=document.body,r)=>{if(e[d])return Object.assign(e[d],r);r=F(r||{});let t=[],o=[];e[B]=()=>!o&&(o=t.map(i=>i())),e[R]=()=>(o?.map(i=>i()),o=null),e[h]||(e[h]=()=>(e[R](),e[R]=e[B]=e[h]=e[Q]=e[d]=null));let n=e[Q]=i=>{let s=i.attributes,a;if(s)for(let c=0;c<s.length;){let{name:l,value:p}=s[c];if(l.startsWith(U)){if(i.removeAttribute(l),Y=l,v=i,t.push(a=fe(i,l.slice(U.length),p,r)),o.push(a()),d in i)return}else c++}if(i.firstChild!==void 0){let c=i.firstChild,l;for(;c;)l=c.nextSibling,c.nodeType==1&&n(c),c=l}else for(let c of i.childNodes)c.nodeType==1&&n(c)};return n(e),e[d]===void 0&&(e[d]=r),r};ee.version="12.4.6";var fe,pe,y=e=>{let r=de[e=e.trim()];if(r)return r;try{r=pe(e||"undefined")}catch(t){G(t,e)}return de[e]=function(t,o,n){try{let i=r?.call(this,t);return o?i?.then?(i.then(s=>n=o(s)).catch(s=>G(s,e)),()=>typeof n=="function"&&n()):o(i):i}catch(i){G(i,e)}}},de={},te=e=>(e.compile&&(pe=e.compile),e.prefix&&(U=e.prefix),e.signal&&(S=e.signal),e.effect&&(H=e.effect),e.computed&&(X=e.computed),e.batch&&(V=e.batch),e.untracked&&(C=e.untracked),e.dir&&(fe=e.dir)),W=(e,r)=>{for(;r.length;){let[t,...o]=r.pop().split("-"),n=L[t],i;if(n&&(i=n(e,...o))!==e){for(let s in e)i[s]??(i[s]=e[s]);e=i}}return e},q=null,I=e=>{q?.disconnect(),e(),q?.observe(q._root,{childList:!0,subtree:!0})},me=(e=document.body,r)=>{let t=F(r);return ee(e,t),q=new MutationObserver(o=>{for(let n of o){for(let i of n.addedNodes)i.nodeType===1&&i[d]===void 0&&e.contains(i)&&e[Q](i);for(let i of n.removedNodes)i.nodeType===1&&!e.contains(i)&&i[h]?.()}}),q._root=e,q.observe(e,{childList:!0,subtree:!0}),t},b=e=>{if(!e.nodeType)return e;let r=e.ownerDocument,t=e.content.cloneNode(!0),o=[...e.attributes],n=r.createTextNode(""),i=(t.append(n),[...t.childNodes]);return{ownerDocument:r,childNodes:i,content:t,remove:()=>t.append(...i),replaceWith(s){s!==n&&(n.before(s),t.append(...i))},attributes:o,removeAttribute(s){o.splice(o.findIndex(a=>a.name===s),1)}}},he=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(r,t)=>(t?"-":"")+r.toLowerCase()),w=(e,r,t)=>t==null||t===!1?e.removeAttribute(r):e.setAttribute(r,t===!0?"":t),re=(e,r=[])=>e?typeof e=="string"?e:(Array.isArray(e)?e.map(re):Object.entries(e).reduce((t,[o,n])=>n?[...t,o]:t,[])).join(" "):"",$=(e,r)=>{let t=0,o,n=typeof r=="function"?r:r?s=>setTimeout(s,r):queueMicrotask,i=s=>{o=s,t++||(e(o),n((a=t>1)=>(t=0,a&&i(o))))};return i},ye=(e,r,t)=>{let o=typeof r=="function"?r:r?n=>setTimeout(n,r):queueMicrotask;return t?(n=>i=>!n&&(e(i),n=1,o(()=>n=0)))():((n=0)=>(i,s=++n)=>o(()=>s==n&&e(i)))()},f=ee;var N=Symbol("signals"),D=Symbol("change"),ne=Symbol("set"),oe=!0,A=(e,r)=>{if(!e||e[Symbol.toStringTag]||e[N])return e;if(e.constructor!==Object)return Array.isArray(e)?Fe(e):e;let t=Object.keys(e).length,o={},n=new Proxy(Object.assign(o,{[D]:S(t),[N]:o}),{get:(s,a)=>a in o?o[a]?o[a].valueOf():o[a]:r?r[a]:typeof globalThis[a]=="function"&&!globalThis[a].prototype?globalThis[a].bind(globalThis):globalThis[a],set:(s,a,c)=>a in o?(ge(o,a,c),1):(oe=!1,r&&a in r?r[a]=c:(Z(o,a,c),o[D].value=++t),oe=!0,1),deleteProperty:(s,a)=>(a in o&&(a[0]!="_"&&o[a]?.[Symbol.dispose]?.(),delete o[a],o[D].value=--t),1),ownKeys:()=>(o[D].value,Reflect.ownKeys(o)),has:(s,a)=>a in o?!0:r?a in r:oe}),i=Object.getOwnPropertyDescriptors(e);for(let s in e)i[s]?.get?(o[s]=X(i[s].get.bind(n)))[ne]=i[s].set?.bind(n):Z(o,s,e[s]);return n},Fe=(e,r=globalThis)=>{let t=Array(e.length).fill(null),o=!1,n=a=>function(){return o=!0,a.apply(this,arguments)},i=S(e.length),s=new Proxy(Object.assign(t,{[D]:i,[N]:t,push:n(t.push),pop:n(t.pop),shift:n(t.shift),unshift:n(t.unshift),splice:n(t.splice)}),{get(a,c){return c==="length"?o?(o=!1,t.length):i.value:typeof c=="symbol"||isNaN(c)?t[c]?.valueOf()??r[c]:(t[c]??(t[c]=S(A(e[c])))).valueOf()},set(a,c,l){if(c==="length"){for(let p=l;p<t.length;p++)delete s[p];i.value=t.length=l}else c>=t.length?(Z(t,c,l),s.length=+c+1):t[c]?ge(t,c,l):Z(t,c,l);return 1},deleteProperty:(a,c)=>(t[c]?.[Symbol.dispose]?.(),delete t[c],1)});return s},Z=(e,r,t)=>e[r]=r[0]=="_"||t?.peek?t:S(A(t)),ge=(e,r,t,o,n)=>r[0]==="_"?e[r]=t:t!==(n=(o=e[r]).peek?.()??o)&&(o[ne]?o[ne](t):Array.isArray(t)&&Array.isArray(n)?D in n?C(()=>V(()=>{for(let i=0;i<t.length;i++)n[i]=t[i];n.length=t.length})):o.value=t:o.value=A(t)),F=A;var ie={};Ve(ie,{batch:()=>Be,computed:()=>Je,effect:()=>_e,signal:()=>xe,untracked:()=>Xe});var j,be=0,P,xe=(e,r,t=new Set,o=()=>r.value)=>r={get value(){return j?.deps.add(t.add(j)),e},set value(n){if(n!==e){e=n;for(let i of t)P?P.add(i):i()}},peek(){return e},toJSON:o,toString:o,valueOf:o},_e=(e,r,t,o)=>(t=n=>{let i=r;if(r=null,i?.call?.(),n=j,j=t,be++>10)throw"Cycle detected";try{r=e()}finally{j=n,be--}},t.fn=e,o=t.deps=new Set,t(),n=>{r?.call?.();for(n of o)n.delete(t);o.clear()}),Je=(e,r=xe(),t,o,n=()=>t.value)=>t={get value(){return o||(o=_e(()=>r.value=e())),r.value},peek:r.peek,toJSON:n,toString:n,valueOf:n},Be=(e,r=!P,t)=>{P??(P=new Set);try{e()}finally{if(r){[P,t]=[null,P];for(let o of t)o()}}},Xe=(e,r,t)=>(r=j,j=null,t=e(),j=r,t);var Se=(e,r)=>{var i,s;let t,o,n;return e._holder?f(o=e,r):(e[i=d]??(e[i]=null),o=e.content?b(e):e,o[s=d]??(o[s]=null),I(()=>e.replaceWith(t=e.ownerDocument.createTextNode(""))),o._holder=t._holder=t,t._clauses=[o._clause=[o,!1]],t.update=$(()=>{let a=t._clauses.find(([,c])=>c);a!=n&&I(()=>{n?.[0].remove(),n?.[0][R]?.(),(n=a)&&(t.before(n[0].content||n[0]),n[0][d]?n[0][B]?.():(delete n[0][d],f(n[0],r)))})})),a=>{o._clause[1]=a,o._holder.update()}};var we=e=>{var o;let r,t=e;for(r=e.content?b(e):e,r[o=d]??(r[o]=null);t&&!(r._holder=t._holder);)t=t.previousSibling;return e.remove(),e[d]=null,r._holder._clauses.push(r._clause=[r,!0]),r._holder.update};var Ne=e=>(e.content&&e.replaceWith(e=b(e).childNodes[0]),r=>(r=typeof r=="function"?r(e.textContent):r,e.textContent=r??""));var Ae=(e,r,t,o)=>{let n=new Set,i;return s=>{i=new Set,s&&re(typeof s=="function"?s(e.className):s).split(" ").map(a=>a&&i.add(a));for(let a of n)i.has(a)||e.classList.remove(a);for(let a of i)n.has(a)||e.classList.add(a);n=i}};var Oe=(e,r,t,o)=>{let n;return i=>{if(n===void 0&&(n=e.getAttribute("style")??""),i=typeof i=="function"?i(e.style):i,typeof i=="string")w(e,"style",n?n+"; "+i:i);else{n&&w(e,"style",n);for(let s in i)s[0]=="-"?e.style.setProperty(s,i[s]):s[0]>"A"&&(e.style[s]=i[s])}}};var Te=()=>e=>typeof e=="function"&&e();var se=(e,r=y(`${e}=__`))=>(t,o)=>{t.__=o,r(t),delete t.__},Ce=(e,r,t)=>{try{let o=se(t),n=e.type==="checkbox"?()=>o(r,e.checked):e.type==="select-multiple"?()=>o(r,[...e.selectedOptions].map(i=>i.value)):()=>o(r,e.selectedIndex<0?null:isNaN(e.valueAsNumber)?e.value:e.valueAsNumber);e.oninput=e.onchange=n,e.type?.startsWith("select")&&(new MutationObserver(n).observe(e,{childList:!0,subtree:!0,attributes:!0}),f(e,r)),y(t)(r)??n()}catch{}return e.type==="text"||e.type===""||e.tagName==="TEXTAREA"?(o,n,i)=>(n=e.selectionStart,i=e.selectionEnd,e.setAttribute("value",e.value=o??""),n&&e.setSelectionRange(n,i)):e.type==="checkbox"?o=>(e.checked=o,w(e,"checked",o)):e.type==="radio"?o=>e.value===o&&(e.checked=o,w(e,"checked",o)):e.type==="select-one"?o=>{for(let n of e.options)n.value==o?n.setAttribute("selected",""):n.removeAttribute("selected");e.value=o}:e.type==="select-multiple"?o=>{for(let n of e.options)n.removeAttribute("selected");for(let n of o)e.querySelector(`[value="${n}"]`).setAttribute("selected","")}:o=>e.value=o};var De=(e,r,t)=>{let o=y(t)(r);if(typeof o=="function")return{[Symbol.dispose]:o(e)};se(t)(r,e)};var ke=(e,r)=>{let t=e[d]=A({},r),o=!1,n,i=e.content&&b(e);return i&&e.replaceWith(n=e.ownerDocument.createTextNode("")),s=>{if(s=typeof s=="function"?s(t):s,s!==t)for(let a in s){let c=typeof s[a]=="function"?s[a].bind(t):s[a];a in t[N]?t[a]=c:t[N][a]=a[0]=="_"||c?.peek?c:S(A(c))}return!o&&(o=!0,!n&&delete e[d],C(()=>(n?.before(i.content||e),f(i||e,t))))}};var je=(e,r,t)=>{let[o,n]=t.split(/\bin|of\b/),[i,s="$"]=o.trim().replace(/\(|\)/g,"").split(/\s*,\s*/),a=e.ownerDocument,c=a.createTextNode(""),l,p,x,O=0,k=$(()=>I(()=>{var g,E;let u=0,T=x,m=T.length;if(l&&!l[D]){for(let le of l[N]||[])le[Symbol.dispose]();l=null,O=0}if(m<O)l.length=m;else{if(!l)l=T;else for(;u<O;)l[u]=T[u++];let K=m-u>1?a.createDocumentFragment():null,ue=K?[]:null;for(;u<m;u++){l[u]=T[u];let M=u,_=e.content?b(e):e.cloneNode(!0),J=_.content||_;if(K)K.appendChild(J),ue.push([_,M]);else{c.before(J);let Re=A({get[i](){return l[M]},[s]:p?p[M]:M},r);f(_,Re)}let Ke=((E=l[g=N]||(l[g]=[]))[u]||(E[u]={}))[Symbol.dispose];l[N][u][Symbol.dispose]=()=>{Ke?.(),_[Symbol.dispose]?.(),_.remove()}}if(K){c.before(K);for(let[M,_]of ue){let J=A({get[i](){return l[_]},[s]:p?p[_]:_},r);f(M,J)}}}O=m}));return I(()=>e.replaceWith(c)),e[d]=null,Object.assign(u=>(p=null,typeof u=="number"?x=Array.from({length:u},(T,m)=>m+1):u?.constructor===Object?(p=Object.keys(u),x=Object.values(u)):x=u||[],H(()=>{x[D]?.value,k()})),{eval:y(n)})};var Le=(e,r,t,o)=>n=>w(e,o,typeof n=="function"?n(e.getAttribute(o)):n);var $e=e=>r=>{for(let t in r)w(e,he(t),r[t])};var Ee=(e,r,t,o)=>{let[n,...i]=o.slice(2).split("."),s=y(t).bind(e),a=W(Object.assign(c=>s(r,l=>typeof l=="function"?l(c):l),{target:e}),i);return a.target.addEventListener(n,a,a),{[Symbol.dispose](){a.target.removeEventListener(n,a)}}};var Me=(e,r,t,o)=>{let n,i,s=o.split("..").map((a,c,{length:l})=>a.split(":").reduce((p,x)=>{let[O,...k]=x.slice(2).split("."),u=y(t).bind(e),T=(g,E)=>n=typeof g=="function"?g(E):g,m=W(Object.assign(g=>(c?T(n,g):u(r,E=>T(E,g)),i(),i=s[(c+1)%l]()),{target:e}),k);return g=>(g=p?.(),m.target.addEventListener(O,m,m),()=>(g?.(),m.target.removeEventListener(O,m)))},null));return i=s[0](),{[Symbol.dispose](){i?.()}}};var qe=(e,r)=>{if(e.content){let t,o=e.innerHTML,n=e.ownerDocument,i=e._holder;return i||e.replaceWith(i=n.createTextNode("")),s=>{if(typeof s=="function"&&(s=s(o)),e._holder&&(e.remove(),e.content.replaceChildren()),t?.remove(),s!=null&&s!=="")return t=b((t=n.createElement("template"),t.innerHTML=o=s,t)),C(()=>f(t,r)),i.before(t.content),e._holder&&e.childNodes.splice(0,1/0,...t.childNodes),t[h];e._holder&&(e.childNodes.length=0,o="")}}return t=>{var o;return t=typeof t=="function"?t(e.innerHTML):t,e.innerHTML=t??"",e[o=d]&&(e[o]=null),C(()=>f(e,r)),e[h]}};var We=(e,r,t)=>{let o=e.ownerDocument,n=o.createComment(":portal"),i=null;return e.before(n),s=>{let a=e.getRootNode(),c=typeof s=="string"?a.querySelector?.(s)||o.querySelector(s):s?.nodeType===1?s:s?o.body:null;c!==i&&(c?c.appendChild(e):n.after(e),i=c)}};var Ie=e=>r=>e.hidden=!!r;Object.assign(z,{_:Le,"":$e,class:Ae,text:Ne,html:qe,style:Oe,fx:Te,value:Ce,ref:De,scope:ke,if:Se,else:we,each:je,portal:We,hidden:Ie});var Ze=(e,r,t,o)=>{let[n,...i]=r.split("."),s=z[n]||z._;return()=>{let a=S(0),c=W(Object.assign($(()=>a.value++),{target:e}),i),l=c.target??e,p=s(l,o,t,n);if(!p?.call)return p?.[h];let x=0,O=p.eval??y(t).bind(l),k,u=()=>(typeof k=="function"&&k(),k=null);return o=l[d]??o,H(()=>{let T=a.value==x?c():(x=a.value,k=O(o,p));return u})}},Ge=e=>e?typeof e=="number"?e:(([,r,t]=e.match(/^(\d+)(ms|s|m)?$/)||[])=>(r=+r,t==="s"?r*1e3:t==="m"?r*6e4:r))():0,ae=e=>e==="idle"?requestIdleCallback:e==="raf"?requestAnimationFrame:!e||e==="tick"?queueMicrotask:r=>setTimeout(r,Ge(e));Object.assign(L,{debounce:(e,r,t)=>ye(e,ae(r==="immediate"?t:r),r==="immediate"||t==="immediate"),throttle:(e,r)=>$(e,ae(r)),delay:(e,r)=>((t=ae(r))=>o=>t(()=>e(o)))(),tick:e=>r=>queueMicrotask(()=>e(r)),raf:e=>r=>requestAnimationFrame(()=>e(r)),once:(e,r,t)=>(t=o=>!r&&(r=1,e(o)),t.once=!0,t),window:e=>(e.target=e.target.ownerDocument.defaultView,e),document:e=>(e.target=e.target.ownerDocument,e),root:e=>(e.target=e.target.ownerDocument.documentElement,e),body:e=>(e.target=e.target.ownerDocument.body,e),parent:e=>(e.target=e.target.parentNode,e),self:e=>r=>r.target===e.target&&e(r),away:e=>Object.assign(r=>!e.target.contains(r.target)&&r.target.isConnected&&e(r),{target:e.target.ownerDocument}),prevent:e=>r=>(r?.preventDefault(),e(r)),stop:(e,r)=>t=>(r?.[0]==="i"?t?.stopImmediatePropagation():t?.stopPropagation(),e(t)),passive:e=>(e.passive=!0,e),capture:e=>(e.capture=!0,e)});L.outside=L.away;var ce={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",cmd:e=>e.metaKey||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)},Pe=(e,r)=>ce[e]?.(r)||r.key.toLowerCase()===e||r.keyCode==e;for(let e in ce)L[e]=(r,t,o)=>n=>ce[e](n)&&(!t||Pe(t,n))&&(!o||Pe(o,n))&&r(n);var Qe=e=>{for(let r=0,t=0;t<e.length;t++)if(e[t]=="{")r++;else if(e[t]=="}")r--;else if(e[t]==";"&&!r)return!0;return!1};te({compile:e=>(/^(if|let|const)\b/.test(e)||Qe(e)||(e=`return ${e}`),/\bawait\s/.test(e)&&(e=`return (async()=>{${e}})()`),f.constructor(`with(arguments[0]){${e}}`)),dir:(e,r,t,o)=>r.includes("..")?()=>Me(e,o,t,r)[h]:r.split(":").reduce((n,i)=>{let s=i.startsWith("on")?()=>Ee(e,o,t,i)[h]:Ze(e,i,t,o);return n?(a,c)=>(a=n(),c=s(),()=>{a(),c()}):s},null),...ie});f.use=te;f.store=F;f.directive=z;f.modifier=L;var dr=f.dispose=e=>e[h]?.();f.start=me;var fr=f;export{V as batch,X as computed,ye as debounce,fr as default,dr as dispose,H as effect,S as signal,f as sprae,me as start,F as store,$ as throttle,C as untracked,te as use};