sprae 12.4.2 → 12.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core.js CHANGED
@@ -360,13 +360,15 @@ export const start = (root = document.body, values) => {
360
360
  export const frag = (tpl) => {
361
361
  if (!tpl.nodeType) return tpl // existing tpl
362
362
 
363
- let content = tpl.content.cloneNode(true), // document fragment holder of content
363
+ let doc = tpl.ownerDocument,
364
+ content = tpl.content.cloneNode(true), // document fragment holder of content
364
365
  attributes = [...tpl.attributes],
365
- ref = document.createTextNode(''),
366
+ ref = doc.createTextNode(''),
366
367
  // ensure at least one node
367
368
  childNodes = (content.append(ref), [...content.childNodes])
368
369
 
369
370
  return {
371
+ ownerDocument: doc,
370
372
  childNodes,
371
373
  content,
372
374
  remove: () => content.append(...childNodes),
@@ -1,4 +1,4 @@
1
- import { clsx, decorate } from "../core.js";
1
+ import { clsx } from "../core.js";
2
2
 
3
3
  /**
4
4
  * Class directive - manages CSS classes reactively.
@@ -12,9 +12,6 @@ import { clsx, decorate } from "../core.js";
12
12
  export default (el, st, ex, name) => {
13
13
  let _cur = new Set, _new
14
14
 
15
- // redefine target, if modifiers have one
16
- name.includes('.') && (el = decorate({target:el}, name.split('.').slice(1)).target ?? el)
17
-
18
15
  return (v) => {
19
16
  _new = new Set
20
17
  if (v) clsx(typeof v === 'function' ? v(el.className) : v).split(' ').map(c => c && _new.add(c))
package/directive/each.js CHANGED
@@ -14,7 +14,8 @@ export default (tpl, state, expr) => {
14
14
  let [itemVar, idxVar = "$"] = lhs.trim().replace(/\(|\)/g, '').split(/\s*,\s*/);
15
15
 
16
16
  // we need :if to be able to replace holder instead of tpl for :if :each case
17
- let holder = document.createTextNode("");
17
+ let doc = tpl.ownerDocument
18
+ let holder = doc.createTextNode("");
18
19
 
19
20
  // we re-create items any time new items are produced
20
21
  let cur, keys, items, prevl = 0
@@ -41,7 +42,7 @@ export default (tpl, state, expr) => {
41
42
 
42
43
  // batch append using DocumentFragment for efficiency
43
44
  let batchSize = newl - i
44
- let batch = batchSize > 1 ? document.createDocumentFragment() : null
45
+ let batch = batchSize > 1 ? doc.createDocumentFragment() : null
45
46
  let pending = batch ? [] : null
46
47
 
47
48
  // append
package/directive/html.js CHANGED
@@ -10,9 +10,10 @@ import sprae, { _dispose } from "../core.js"
10
10
  export default (el, state) => {
11
11
  // <template :html="a"/> - fragment case: use placeholder + range
12
12
  if (el.content) {
13
- let start = document.createTextNode(''),
14
- end = document.createTextNode(''),
15
- range = document.createRange()
13
+ let doc = el.ownerDocument,
14
+ start = doc.createTextNode(''),
15
+ end = doc.createTextNode(''),
16
+ range = doc.createRange()
16
17
  el.replaceWith(start, end)
17
18
  return v => {
18
19
  v = typeof v === 'function' ? v('') : v
package/directive/if.js CHANGED
@@ -18,7 +18,7 @@ export default (el, state) => {
18
18
  _el = el.content ? frag(el) : el
19
19
  _el[_state] ??= null // mark _el (frag) as needing sprae
20
20
 
21
- mutate(() => el.replaceWith(_holder = document.createTextNode('')))
21
+ mutate(() => el.replaceWith(_holder = el.ownerDocument.createTextNode('')))
22
22
  _el._holder = _holder._holder = _holder
23
23
 
24
24
 
@@ -7,7 +7,8 @@
7
7
  * @returns {(value: string | Element | null | false) => void} Update function
8
8
  */
9
9
  export default (el, state, expr) => {
10
- const comment = document.createComment(':portal')
10
+ const doc = el.ownerDocument
11
+ const comment = doc.createComment(':portal')
11
12
  let currentTarget = null
12
13
 
13
14
  // Insert placeholder before element
@@ -18,9 +19,9 @@ export default (el, state, expr) => {
18
19
  // For selectors, first try within the same root, then document
19
20
  const root = el.getRootNode()
20
21
  const target = typeof value === 'string'
21
- ? (root.querySelector?.(value) || document.querySelector(value))
22
+ ? (root.querySelector?.(value) || doc.querySelector(value))
22
23
  : value instanceof Element ? value
23
- : value ? document.body : null
24
+ : value ? doc.body : null
24
25
 
25
26
  // No change needed
26
27
  if (target === currentTarget) return
@@ -1,4 +1,4 @@
1
- import sprae, { store, untracked, _state, _signals, signal } from '../core.js'
1
+ import sprae, { store, untracked, frag, _state, _signals, signal } from '../core.js'
2
2
 
3
3
  /**
4
4
  * Scope directive - creates a child scope with local state.
@@ -10,7 +10,11 @@ import sprae, { store, untracked, _state, _signals, signal } from '../core.js'
10
10
  export default (el, rootState) => {
11
11
  // 0 run pre-creates state to provide scope for the first effect - it can write vars in it, so we should already have it
12
12
  // el[_state] even replaces own :scope effect state
13
- let state = el[_state] = store({}, rootState), init = false;
13
+ let state = el[_state] = store({}, rootState), init = false
14
+
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(''))
14
18
 
15
19
  // 1st run spraes subtree with values from scope, it can be postponed by modifiers (we isolate reads from parent effect)
16
20
  // 2nd+ runs update subscope
@@ -31,6 +35,6 @@ export default (el, rootState) => {
31
35
  }
32
36
 
33
37
  // Object.assign(subscope, call(values, subscope))
34
- return !init && (init = true, delete el[_state], untracked(() => sprae(el, state)))
38
+ return !init && (init = true, delete el[_state], untracked(() => (_holder?.before(_el.content || _el), sprae(_el, state))))
35
39
  }
36
40
  }
@@ -1,4 +1,4 @@
1
- import { attr, decorate } from "../core.js";
1
+ import { attr } from "../core.js";
2
2
 
3
3
  /**
4
4
  * Style directive - sets inline styles reactively.
@@ -12,13 +12,10 @@ import { attr, decorate } from "../core.js";
12
12
  export default (el, st, ex, name) => {
13
13
  let _static;
14
14
 
15
- // redefine target, if modifiers have one
16
- if (name.includes('.')) el = decorate({target:el}, name.split('.').slice(1)).target ?? el;
17
-
18
15
  return v => {
19
- if (!_static) { _static = el.getAttribute("style") }
16
+ if (_static === undefined) _static = el.getAttribute("style") ?? ""
20
17
  v = typeof v === "function" ? v(el.style) : v
21
- if (typeof v === "string") attr(el, "style", _static + '; ' + v);
18
+ if (typeof v === "string") attr(el, "style", _static ? _static + '; ' + v : v);
22
19
  else {
23
20
  if (_static) attr(el, "style", _static);
24
21
  // NOTE: we skip names not starting with a letter - eg. el.style stores properties as { 0: --x } or JSDOM has _pfx
package/dist/sprae.js CHANGED
@@ -1,3 +1,3 @@
1
- var Re=Object.defineProperty;var Ve=(e,t)=>{for(var r in t)Re(e,r,{get:t[r],enumerable:!0})};var y=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),d=Symbol("state"),J=Symbol("on"),R=Symbol("off"),Q=Symbol("init"),U=":",x,V,X,F=e=>e(),W=F,H={},$={},Y=null,v=null,Fe=e=>{if(!e?.tagName)return"";let t=e.tagName.toLowerCase();return e.id?t+="#"+e.id:e.className&&(t+="."+e.className.split(" ")[0]),`<${t}>`},G=(e,t)=>{let r=`\u2234 ${e}`;if(v&&(r+=`
2
- in ${Fe(v)}`),Y&&t){let o=t.length>100?t.slice(0,80)+`\u2026 (${t.length} chars)`:t;r+=`
3
- ${Y}="${o}"`}console.error(r)},ee=(e=document.body,t)=>{if(e[d])return Object.assign(e[d],t);t=z(t||{});let r=[],o=[];e[J]=()=>!o&&(o=r.map(s=>s())),e[R]=()=>(o?.map(s=>s()),o=null),e[y]||(e[y]=()=>(e[R](),e[R]=e[J]=e[y]=e[Q]=e[d]=null));let n=e[Q]=s=>{let i=s.attributes,a;if(i)for(let l=0;l<i.length;){let{name:c,value:p}=i[l];if(c.startsWith(U)){if(s.removeAttribute(c),Y=c,v=s,r.push(a=de(s,c.slice(U.length),p,t)),o.push(a()),d in s)return}else l++}if(s.firstChild!==void 0){let l=s.firstChild,c;for(;l;)c=l.nextSibling,l.nodeType==1&&n(l),l=c}else for(let l of s.childNodes)l.nodeType==1&&n(l)};return n(e),e[d]===void 0&&(e[d]=t),t};ee.version="12.4.2";var de,fe,m=e=>{let t=ue[e=e.trim()];if(t)return t;try{t=fe(e||"undefined")}catch(r){G(r,e)}return ue[e]=function(r,o,n){try{let s=t?.call(this,r);return o?s?.then?(s.then(i=>n=o(i)).catch(i=>G(i,e)),()=>typeof n=="function"&&n()):o(s):s}catch(s){G(s,e)}}},ue={},te=e=>(e.compile&&(fe=e.compile),e.prefix&&(U=e.prefix),e.signal&&(x=e.signal),e.effect&&(V=e.effect),e.computed&&(X=e.computed),e.batch&&(F=e.batch),e.untracked&&(W=e.untracked),e.dir&&(de=e.dir)),_=(e,t)=>{for(;t.length;){let[r,...o]=t.pop().split("-"),n=$[r],s;if(n&&(s=n(e,...o))!==e){for(let i in e)s[i]??(s[i]=e[i]);e=s}}return e},M=null,P=e=>{M?.disconnect(),e(),M?.observe(M._root,{childList:!0,subtree:!0})},pe=(e=document.body,t)=>{let r=z(t);return ee(e,r),M=new MutationObserver(o=>{for(let n of o){for(let s of n.addedNodes)s.nodeType===1&&s[d]===void 0&&e.contains(s)&&e[Q](s);for(let s of n.removedNodes)s.nodeType===1&&!e.contains(s)&&s[y]?.()}}),M._root=e,M.observe(e,{childList:!0,subtree:!0}),r},k=e=>{if(!e.nodeType)return e;let t=e.content.cloneNode(!0),r=[...e.attributes],o=document.createTextNode(""),n=(t.append(o),[...t.childNodes]);return{childNodes:n,content:t,remove:()=>t.append(...n),replaceWith(s){s!==o&&(o.before(s),t.append(...n))},attributes:r,removeAttribute(s){r.splice(r.findIndex(i=>i.name===s),1)}}},me=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(t,r)=>(r?"-":"")+t.toLowerCase()),S=(e,t,r)=>r==null||r===!1?e.removeAttribute(t):e.setAttribute(t,r===!0?"":r),re=(e,t=[])=>e?typeof e=="string"?e:(Array.isArray(e)?e.map(re):Object.entries(e).reduce((r,[o,n])=>n?[...r,o]:r,[])).join(" "):"",L=(e,t)=>{let r=0,o,n=typeof t=="function"?t:t?i=>setTimeout(i,t):queueMicrotask,s=i=>{o=i,r++||(e(o),n((a=r>1)=>(r=0,a&&s(o))))};return s},he=(e,t,r)=>{let o=typeof t=="function"?t:t?n=>setTimeout(n,t):queueMicrotask;return r?(n=>s=>!n&&(e(s),n=1,o(()=>n=0)))():((n=0)=>(s,i=++n)=>o(()=>i==n&&e(s)))()},f=ee;var N=Symbol("signals"),O=Symbol("change"),ne=Symbol("set"),oe=!0,w=(e,t)=>{if(!e||e[Symbol.toStringTag]||e[N])return e;if(e.constructor!==Object)return Array.isArray(e)?He(e):e;let r=Object.keys(e).length,o={},n=new Proxy(Object.assign(o,{[O]:x(r),[N]:o}),{get:(i,a)=>a in o?o[a]?o[a].valueOf():o[a]:t?t[a]:typeof globalThis[a]=="function"&&!globalThis[a].prototype?globalThis[a].bind(globalThis):globalThis[a],set:(i,a,l)=>a in o?(ye(o,a,l),1):(oe=!1,t&&a in t?t[a]=l:(Z(o,a,l),o[O].value=++r),oe=!0,1),deleteProperty:(i,a)=>(a in o&&(a[0]!="_"&&o[a]?.[Symbol.dispose]?.(),delete o[a],o[O].value=--r),1),ownKeys:()=>(o[O].value,Reflect.ownKeys(o)),has:(i,a)=>a in o?!0:t?a in t:oe}),s=Object.getOwnPropertyDescriptors(e);for(let i in e)s[i]?.get?(o[i]=X(s[i].get.bind(n)))[ne]=s[i].set?.bind(n):Z(o,i,e[i]);return n},He=(e,t=globalThis)=>{let r=Array(e.length).fill(null),o=!1,n=a=>function(){return o=!0,a.apply(this,arguments)},s=x(e.length),i=new Proxy(Object.assign(r,{[O]:s,[N]:r,push:n(r.push),pop:n(r.pop),shift:n(r.shift),unshift:n(r.unshift),splice:n(r.splice)}),{get(a,l){return l==="length"?o?(o=!1,r.length):s.value:typeof l=="symbol"||isNaN(l)?r[l]?.valueOf()??t[l]:(r[l]??(r[l]=x(w(e[l])))).valueOf()},set(a,l,c){if(l==="length"){for(let p=c;p<r.length;p++)delete i[p];s.value=r.length=c}else l>=r.length?(Z(r,l,c),i.length=+l+1):r[l]?ye(r,l,c):Z(r,l,c);return 1},deleteProperty:(a,l)=>(r[l]?.[Symbol.dispose]?.(),delete r[l],1)});return i},Z=(e,t,r)=>e[t]=t[0]=="_"||r?.peek?r:x(w(r)),ye=(e,t,r,o,n)=>t[0]==="_"?e[t]=r:r!==(n=(o=e[t]).peek())&&(o[ne]?o[ne](r):Array.isArray(r)&&Array.isArray(n)?O in n?W(()=>F(()=>{for(let s=0;s<r.length;s++)n[s]=r[s];n.length=r.length})):o.value=r:o.value=w(r)),z=w;var se={};Ve(se,{batch:()=>Be,computed:()=>ze,effect:()=>xe,signal:()=>be,untracked:()=>Je});var E,ge=0,I,be=(e,t,r=new Set,o=()=>t.value)=>t={get value(){return E?.deps.add(r.add(E)),e},set value(n){if(n!==e){e=n;for(let s of r)I?I.add(s):s()}},peek(){return e},toJSON:o,toString:o,valueOf:o},xe=(e,t,r,o)=>(r=n=>{let s=t;if(t=null,s?.call?.(),n=E,E=r,ge++>10)throw"Cycle detected";try{t=e()}finally{E=n,ge--}},r.fn=e,o=r.deps=new Set,r(),n=>{t?.call?.();for(n of o)n.delete(r);o.clear()}),ze=(e,t=be(),r,o,n=()=>r.value)=>r={get value(){return o||(o=xe(()=>t.value=e())),t.value},peek:t.peek,toJSON:n,toString:n,valueOf:n},Be=(e,t=!I,r)=>{I??(I=new Set);try{e()}finally{if(t){[I,r]=[null,I];for(let o of r)o()}}},Je=(e,t,r)=>(t=E,E=null,r=e(),E=t,r);var _e=(e,t)=>{var s,i;let r,o,n;return e._holder?f(o=e,t):(e[s=d]??(e[s]=null),o=e.content?k(e):e,o[i=d]??(o[i]=null),P(()=>e.replaceWith(r=document.createTextNode(""))),o._holder=r._holder=r,r._clauses=[o._clause=[o,!1]],r.update=L(()=>{let a=r._clauses.find(([,l])=>l);a!=n&&P(()=>{n?.[0].remove(),n?.[0][R]?.(),(n=a)&&(r.before(n[0].content||n[0]),n[0][d]?n[0][J]?.():(delete n[0][d],f(n[0],t)))})})),a=>{o._clause[1]=a,o._holder.update()}};var Se=e=>{var o;let t,r=e;for(t=e.content?k(e):e,t[o=d]??(t[o]=null);r&&!(t._holder=r._holder);)r=r.previousSibling;return e.remove(),e[d]=null,t._holder._clauses.push(t._clause=[t,!0]),t._holder.update};var Ne=e=>(e.content&&e.replaceWith(e=k(e).childNodes[0]),t=>(t=typeof t=="function"?t(e.textContent):t,e.textContent=t??""));var we=(e,t,r,o)=>{let n=new Set,s;return o.includes(".")&&(e=_({target:e},o.split(".").slice(1)).target??e),i=>{s=new Set,i&&re(typeof i=="function"?i(e.className):i).split(" ").map(a=>a&&s.add(a));for(let a of n)s.has(a)?s.delete(a):e.classList.remove(a);for(let a of n=s)e.classList.add(a)}};var Ae=(e,t,r,o)=>{let n;return o.includes(".")&&(e=_({target:e},o.split(".").slice(1)).target??e),s=>{if(n||(n=e.getAttribute("style")),s=typeof s=="function"?s(e.style):s,typeof s=="string")S(e,"style",n+"; "+s);else{n&&S(e,"style",n);for(let i in s)i[0]=="-"?e.style.setProperty(i,s[i]):i[0]>"A"&&(e.style[i]=s[i])}}};var Oe=()=>e=>typeof e=="function"&&e();var ie=(e,t=m(`${e}=__`))=>(r,o)=>{r.__=o,t(r),delete r.__},Te=(e,t,r)=>{try{let o=ie(r),n=e.type==="checkbox"?()=>o(t,e.checked):e.type==="select-multiple"?()=>o(t,[...e.selectedOptions].map(s=>s.value)):()=>o(t,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,t)),m(r)(t)??n()}catch{}return e.type==="text"||e.type===""||e.tagName==="TEXTAREA"?(o,n,s)=>(n=e.selectionStart,s=e.selectionEnd,e.setAttribute("value",e.value=o??""),n&&e.setSelectionRange(n,s)):e.type==="checkbox"?o=>(e.checked=o,S(e,"checked",o)):e.type==="radio"?o=>e.value===o&&(e.checked=o,S(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 Ce=(e,t,r)=>{let o=m(r)(t);if(typeof o=="function")return{[Symbol.dispose]:o(e)};ie(r)(t,e)};var je=(e,t)=>{let r=e[d]=w({},t),o=!1;return n=>{if(n=typeof n=="function"?n(r):n,n!==r)for(let s in n){let i=typeof n[s]=="function"?n[s].bind(r):n[s];s in r[N]?r[s]=i:r[N][s]=s[0]=="_"||i?.peek?i:x(w(i))}return!o&&(o=!0,delete e[d],W(()=>f(e,r)))}};var ke=(e,t,r)=>{let[o,n]=r.split(/\bin|of\b/),[s,i="$"]=o.trim().replace(/\(|\)/g,"").split(/\s*,\s*/),a=document.createTextNode(""),l,c,p,T=0,A=L(()=>P(()=>{var j,h;let u=0,C=p,g=C.length;if(l&&!l[O]){for(let D of l[N]||[])D[Symbol.dispose]();l=null,T=0}if(g<T)l.length=g;else{if(!l)l=C;else for(;u<T;)l[u]=C[u++];let K=g-u>1?document.createDocumentFragment():null,ce=K?[]:null;for(;u<g;u++){l[u]=C[u];let q=u,b=e.content?k(e):e.cloneNode(!0),B=b.content||b;if(K)K.appendChild(B),ce.push([b,q]);else{a.before(B);let Ke=w({get[s](){return l[q]},[i]:c?c[q]:q},t);f(b,Ke)}let Ie=((h=l[j=N]||(l[j]=[]))[u]||(h[u]={}))[Symbol.dispose];l[N][u][Symbol.dispose]=()=>{Ie?.(),b[Symbol.dispose]?.(),b.remove()}}if(K){a.before(K);for(let[q,b]of ce){let B=w({get[s](){return l[b]},[i]:c?c[b]:b},t);f(q,B)}}}T=g}));return P(()=>e.replaceWith(a)),e[d]=null,Object.assign(u=>(c=null,typeof u=="number"?p=Array.from({length:u},(C,g)=>g+1):u?.constructor===Object?(c=Object.keys(u),p=Object.values(u)):p=u||[],V(()=>{p[O]?.value,A()})),{eval:m(n)})};var Ee=(e,t,r,o)=>n=>S(e,o,typeof n=="function"?n(e.getAttribute(o)):n);var $e=e=>t=>{for(let r in t)S(e,me(r),t[r])};var Le=(e,t,r,o)=>{let[n,...s]=o.slice(2).split("."),i=m(r).bind(e),a=_(Object.assign(l=>i(t,c=>typeof c=="function"?c(l):c),{target:e}),s);return a.target.addEventListener(n,a,a),{[Symbol.dispose](){a.target.removeEventListener(n,a)}}};var De=(e,t,r,o)=>{let n,s,i=o.split("..").map((a,l,{length:c})=>a.split(":").reduce((p,T)=>{let[A,...u]=T.slice(2).split("."),C=m(r).bind(e),g=(h,D)=>n=typeof h=="function"?h(D):h,j=_(Object.assign(h=>(l?g(n,h):C(t,D=>g(D,h)),s(),s=i[(l+1)%c]()),{target:e}),u);return h=>(h=p?.(),j.target.addEventListener(A,j,j),()=>(h?.(),j.target.removeEventListener(A,j)))},null));return s=i[0](),{[Symbol.dispose](){s?.()}}};var qe=(e,t)=>{if(e.content){let r=document.createTextNode(""),o=document.createTextNode(""),n=document.createRange();return e.replaceWith(r,o),s=>{if(s=typeof s=="function"?s(""):s,n.setStartAfter(r),n.setEndBefore(o),n.deleteContents(),s!=null&&s!==""){let i=n.createContextualFragment(s);f(i,t),n.insertNode(i)}}}return r=>(r=typeof r=="function"?r(e.innerHTML):r,e.innerHTML=r??"",f(e,t),e[y])};var Me=(e,t,r)=>{let o=document.createComment(":portal"),n=null;return e.before(o),s=>{let i=e.getRootNode(),a=typeof s=="string"?i.querySelector?.(s)||document.querySelector(s):s instanceof Element?s:s?document.body:null;a!==n&&(a?a.appendChild(e):o.after(e),n=a)}};var We=e=>t=>e.hidden=!!t;Object.assign(H,{_:(e,t,r,o)=>(o.startsWith("on")?Le:Ee)(e,t,r,o),"":$e,class:we,text:Ne,html:qe,style:Ae,fx:Oe,value:Te,ref:Ce,scope:je,if:_e,else:Se,each:ke,portal:Me,hidden:We});var Xe=(e,t,r,o)=>{let[n,...s]=t.split("."),i=H[n]||H._;return()=>{let a=i(e,o,r,t);if(!a?.call)return a?.[y];let l=_(Object.assign(L(()=>c.value++),{target:e}),s),c=x(0),p=0,T=a.eval??m(r).bind(e),A,u=()=>(typeof A=="function"&&A(),A=null);return o=e[d]??o,V(()=>{let C=c.value==p?l():(p=c.value,A=T(o,a));return u})}},Ze=e=>e?typeof e=="number"?e:(([,t,r]=e.match(/^(\d+)(ms|s|m)?$/)||[])=>(t=+t,r==="s"?t*1e3:r==="m"?t*6e4:t))():0,ae=e=>e==="idle"?requestIdleCallback:e==="raf"?requestAnimationFrame:!e||e==="tick"?queueMicrotask:t=>setTimeout(t,Ze(e));Object.assign($,{debounce:(e,t,r)=>he(e,ae(t==="immediate"?r:t),t==="immediate"||r==="immediate"),throttle:(e,t)=>L(e,ae(t)),delay:(e,t)=>((r=ae(t))=>o=>r(()=>e(o)))(),tick:e=>t=>queueMicrotask(()=>e(t)),raf:e=>t=>requestAnimationFrame(()=>e(t)),once:(e,t,r)=>(r=o=>!t&&(t=1,e(o)),r.once=!0,r),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=>t=>t.target===e.target&&e(t),away:e=>Object.assign(t=>!e.target.contains(t.target)&&t.target.isConnected&&e(t),{target:e.target.ownerDocument}),prevent:e=>t=>(t?.preventDefault(),e(t)),stop:(e,t)=>r=>(t?.[0]==="i"?r?.stopImmediatePropagation():r?.stopPropagation(),e(r)),passive:e=>(e.passive=!0,e),capture:e=>(e.capture=!0,e)});$.outside=$.away;var le={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,t)=>le[e]?.(t)||t.key.toLowerCase()===e||t.keyCode==e;for(let e in le)$[e]=(t,r,o)=>n=>le[e](n)&&(!r||Pe(r,n))&&(!o||Pe(o,n))&&t(n);var Ge=e=>{for(let t=0,r=0;r<e.length;r++)if(e[r]=="{")t++;else if(e[r]=="}")t--;else if(e[r]==";"&&!t)return!0;return!1};te({compile:e=>(/^(if|let|const)\b/.test(e)||Ge(e)||(e=`return ${e}`),/\bawait\s/.test(e)&&(e=`return (async()=>{${e}})()`),f.constructor(`with(arguments[0]){${e}}`)),dir:(e,t,r,o)=>t.includes("..")?()=>De(e,o,r,t)[y]:t.split(":").reduce((n,s)=>{let i=Xe(e,s,r,o);return n?(a,l)=>(a=n(),l=i(),()=>{a(),l()}):i},null),...se});f.use=te;f.store=z;f.directive=H;f.modifier=$;var ur=f.dispose=e=>e[y]?.();f.start=pe;var dr=f;export{F as batch,X as computed,he as debounce,dr as default,ur as dispose,V as effect,x as signal,f as sprae,pe as start,z as store,L as throttle,W as untracked,te as use};
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.3";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=(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=E(()=>{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=E(()=>P(()=>{var y,$;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=(($=l[y=N]||(l[y]=[]))[u]||($[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 Ee=(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 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,$)=>n=typeof y=="function"?y($):y,m=W(Object.assign(y=>(c?T(n,y):u(r,$=>T($,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 instanceof Element?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,{_:Ee,"":$e,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(E(()=>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(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,E as throttle,M as untracked,te as use};