sprae 11.0.8 → 11.1.1
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 +26 -22
- package/directive/if.js +3 -2
- package/directive/ref.js +7 -3
- package/directive/value.js +27 -24
- package/dist/sprae.js +73 -74
- package/dist/sprae.js.map +4 -4
- package/dist/sprae.min.js +3 -3
- package/dist/sprae.min.js.map +3 -3
- package/dist/sprae.umd.js +101 -101
- package/dist/sprae.umd.js.map +4 -4
- package/dist/sprae.umd.min.js +3 -3
- package/dist/sprae.umd.min.js.map +3 -3
- package/package.json +1 -1
- package/readme.md +6 -14
package/dist/sprae.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var O,w=(e,n,t=new Set)=>(n={get value(){return O?.deps.push(t.add(O)),e},set value(r){if(r!==e){e=r;for(let
|
|
1
|
+
var O,w=(e,n,t=new Set)=>(n={get value(){return O?.deps.push(t.add(O)),e},set value(r){if(r!==e){e=r;for(let s of t)s()}},peek(){return e}},n.toJSON=n.then=n.toString=n.valueOf=()=>n.value,n),x=(e,n,t,r)=>(t=s=>{n?.call?.(),s=O,O=t;try{n=e()}finally{O=s}},r=t.deps=[],t(),s=>{for(n?.call?.();s=r.pop();)s.delete(t)}),R=(e,n=w(),t,r)=>(t={get value(){return r||(r=x(()=>n.value=e())),n.value},peek:n.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),E=e=>e(),Q=E;function U(e){w=e.signal,x=e.effect,R=e.computed,E=e.batch||E,Q=e.untracked||E}var A=Symbol("signals"),$=Symbol("change");function S(e,n){if(!e||e[A])return e;if(Array.isArray(e))return ee(e);if(e.constructor!==Object||e[Symbol.toStringTag])return e;let t={...n?.[A]},r=w(Object.values(e).length);const s=new Proxy(t,{get:(o,i)=>i===$?r:i===A?t:t[i]?.valueOf(),set:(o,i,u,l)=>(l=t[i],P(t,i,u),l??++r.value,1),deleteProperty:(o,i)=>(t[i]&&(q(t,i),r.value--),1),ownKeys(){return r.value,Reflect.ownKeys(t)}});for(let o in e){const i=Object.getOwnPropertyDescriptor(e,o);i?.get?(t[o]=R(i.get.bind(s)))._set=i.set?.bind(s):(t[o]=void 0,P(t,o,e[o]))}return s}var Y={push:1,pop:1,shift:1,unshift:1,splice:1};function ee(e){let n;if(e[A])return e;let t=w(e.length),r=Array(e.length).fill();const s=new Proxy(r,{get(o,i){if(typeof i=="symbol")return i===$?t:i===A?r:r[i];if(i==="length")return Y[n]?t.peek():t.value;if(n=i,r[i])return r[i].valueOf();if(i<r.length)return(r[i]=w(S(e[i]))).value},set(o,i,u){if(i==="length"){for(let l=u,p=r.length;l<p;l++)delete s[l];return t.value=r.length=u,!0}return P(r,i,u),i>=t.peek()&&(t.value=r.length=Number(i)+1),!0},deleteProperty:(o,i)=>(r[i]&&q(r,i),1)});return s}function P(e,n,t){let r=e[n];if(n[0]==="_")e[n]=t;else if(!r)e[n]=r=t?.peek?t:w(S(t));else if(t!==r.peek())if(r._set)r._set(t);else if(Array.isArray(t)&&Array.isArray(r.peek())){const s=r.peek();s[$]?E(()=>{let o=0,i=t.length;for(;o<i;o++)s[o]=t[o];s.length=i}):r.value=t}else r.value=S(t)}function q(e,n){const t=e[n],r=t[Symbol.dispose];r&&delete t[Symbol.dispose],delete e[n],r?.()}var F=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),m=Symbol("state"),C=Symbol("on"),T=Symbol("off"),D={},h=(e,n,t=K)=>D[e]=(r,s,o,i,u,l)=>(l=t(s),u=n(r,o,s,i,l),()=>u(l(o)));function v(e,n){if(!e?.childNodes)return;if(e[m])return Object.assign(e[m],n);const t=S(n||{}),r=[],s=[],o=i=>{if(i.childNodes){for(let u=0;u<i.attributes?.length;){let l=i.attributes[u],p;if(l.name[0]===":"){i.removeAttribute(l.name);for(let y of l.name.slice(1).split(":"))if(p=(D[y]||D.default)(i,l.value,t,y),s.push(p),r.push(x(p)),i[m]===null)return}else u++}for(let u of[...i.childNodes])o(u)}};return o(e),m in e||(e[m]=t,e[T]=()=>{for(;r.length;)r.pop()()},e[C]=()=>r.push(...s.map(i=>x(i))),e[F]=()=>(e[T](),e[T]=e[C]=e[F]=e[m]=null)),t}var J={},K=(e,n)=>{let t;if(t=J[e=e.trim()])return t;try{t=B(e)}catch(r){V(r,n,e)}return J[e]=t},V=(e,n,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
|
|
2
2
|
|
|
3
|
-
${n}${t?`="${t}"
|
|
3
|
+
${n||""}${t?`="${t}"
|
|
4
4
|
|
|
5
|
-
`:""}`,expr:t})},B;v.use=e=>{e.signal&&
|
|
5
|
+
`:""}`,expr:t})},B;v.use=e=>{e.signal&&U(e),e.compile&&(B=e.compile)};var W=e=>{if(!e.nodeType)return e;let n=e.content.cloneNode(!0),t=[...e.attributes],r=document.createTextNode(""),s=(n.append(r),[...n.childNodes]);return{childNodes:s,content:n,remove:()=>n.append(...s),replaceWith(o){o!==r&&(r.before(o),n.append(...s))},attributes:t,removeAttribute(o){t.splice(t.findIndex(i=>i.name===o),1)},setAttributeNode(){}}},H=Symbol("if");h("if",(e,n)=>{const t=document.createTextNode("");let r=e.nextElementSibling,s,o,i;return e.replaceWith(t),o=e.content?W(e):e,o[m]=null,r?.hasAttribute(":else")&&(r.removeAttribute(":else"),r.hasAttribute(":if")||(r.remove(),i=r.content?W(r):r,i[m]=null)),u=>{const l=u?o:e[H]?null:i;r&&(r[H]=l===o),s!=l&&(s&&(s.remove(),s[T]?.()),(s=l)&&(t.before(s.content||s),s[m]===null?(delete s[m],v(s,n)):s[C]()))}}),h("each",(e,n,t)=>{const[r,s="$"]=t.split(/\s+in\s+/)[0].split(/\s*,\s*/),o=document.createTextNode("");e.replaceWith(o),e[m]=null;let i,u,l,p=0;const y=()=>{var a,c;let d=0,b=l,g=b.length;if(i&&!i[$]){for(let _ of i[A]||[])_[Symbol.dispose]();i=null,p=0}if(g<p)i.length=g;else{if(!i)i=b;else for(;d<p;)i[d]=b[d++];for(;d<g;d++){i[d]=b[d];let _=d,L=S({[r]:i[A]?.[_]||i[_],[s]:u?u[_]:_},n),k=e.content?W(e):e.cloneNode(!0);o.before(k.content||k),v(k,L),((c=i[a=A]||(i[a]=[]))[d]||(c[d]={}))[Symbol.dispose]=()=>{k[Symbol.dispose]?.(),k.remove()}}}p=g};return a=>{u=null,typeof a=="number"?l=Array.from({length:a},(d,b)=>b+1):a?.constructor===Object?(u=Object.keys(a),l=Object.values(a)):l=a||[];let c=0;return x(()=>{l[$]?.value,c++||(y(),queueMicrotask(()=>(c>1&&y(),c=0)))})}},e=>K(e.split(/\s+in\s+/)[1])),h("default",(e,n,t,r)=>{if(!r.startsWith("on"))return r?a=>j(e,r,a):a=>{for(let c in a)j(e,X(c),a[c])};const s=r.split("..").map(a=>{let c={evt:"",target:e,test:()=>!0};return c.evt=(a.startsWith("on")?a.slice(2):a).replace(/\.(\w+)?-?([-\w]+)?/g,(d,b,g="")=>(c.test=te[b]?.(c,...g.split("-"))||c.test,"")),c}),o=(a,{evt:c,target:d,test:b,defer:g,stop:_,prevent:L,immediate:k,...I})=>{g&&(a=g(a));const M=N=>{try{b(N)&&(_&&(k?N.stopImmediatePropagation():N.stopPropagation()),L&&N.preventDefault(),a?.call(n,N))}catch(G){V(G,`:on${c}`,a)}};return d.addEventListener(c,M,I),()=>d.removeEventListener(c,M,I)};if(s.length==1)return a=>o(a,s[0]);let i,u,l,p=0;const y=a=>{l=o(c=>(l(),u=a?.(c),(p=++p%s.length)?y(u):i&&y(i)),s[p])};return a=>(i=a,!l&&y(i),()=>i=null)});var te={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},parent(e){e.target=e.target.parentNode},throttle(e,n){e.defer=t=>re(t,n?Number(n)||0:108)},debounce(e,n){e.defer=t=>ne(t,n?Number(n)||0:108)},outside:e=>n=>{let t=e.target;return!(t.contains(n.target)||n.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>n=>n.target===e.target,ctrl:(e,...n)=>t=>f.ctrl(t)&&n.every(r=>f[r]?f[r](t):t.key===r),shift:(e,...n)=>t=>f.shift(t)&&n.every(r=>f[r]?f[r](t):t.key===r),alt:(e,...n)=>t=>f.alt(t)&&n.every(r=>f[r]?f[r](t):t.key===r),meta:(e,...n)=>t=>f.meta(t)&&n.every(r=>f[r]?f[r](t):t.key===r),arrow:()=>f.arrow,enter:()=>f.enter,esc:()=>f.esc,tab:()=>f.tab,space:()=>f.space,delete:()=>f.delete,digit:()=>f.digit,letter:()=>f.letter,char:()=>f.char},f={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},re=(e,n)=>{let t,r,s=o=>{t=!0,setTimeout(()=>{if(t=!1,r)return r=!1,s(o),e(o)},n)};return o=>t?r=!0:(s(o),e(o))},ne=(e,n)=>{let t;return r=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(r)},n)}},j=(e,n,t)=>{t==null||t===!1?e.removeAttribute(n):e.setAttribute(n,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},X=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(n,t)=>(t?"-":"")+n.toLowerCase());h("value",(e,n,t)=>{const r=e.type==="text"||e.type===""?s=>e.setAttribute("value",e.value=s??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(s,o,i)=>(o=e.selectionStart,i=e.selectionEnd,e.setAttribute("value",e.value=s??""),o&&e.setSelectionRange(o,i)):e.type==="checkbox"?s=>(e.checked=s,j(e,"checked",s)):e.type==="select-one"?s=>{for(let o of e.options)o.value==s?o.setAttribute("selected",""):o.removeAttribute("selected");e.value=s}:e.type==="select-multiple"?s=>{for(let o of e.options)o.removeAttribute("selected");for(let o of s)e.querySelector(`[value="${o}"]`).setAttribute("selected","")}:s=>e.value=s;z(n,t);try{const s=Z(t),o=e.type==="checkbox"?()=>s(n,e.checked):e.type==="select-multiple"?()=>s(n,[...e.selectedOptions].map(i=>i.value)):()=>s(n,e.selectedIndex<0?null:e.value);e.oninput=e.onchange=o,e.type?.startsWith("select")&&(new MutationObserver(o).observe(e,{childList:!0,subtree:!0,attributes:!0}),v(e,n))}catch{}return r});var Z=(e,n=K(`${e}=__`))=>(t,r)=>(t.__=r,n(t,r),delete t.__),z=(e,n,t=n.match(/^\w+(?=\s*(?:\.|\[|$))/))=>{var r;return t&&(e[r=t[0]]||(e[r]=null))};h("ref",(e,n,t,r,s)=>(z(n,t),s(n)==null?(Z(t)(n,e),o=>o):o=>o.call(null,e))),h("with",(e,n,t)=>(t=null,r=>v(e,t?r:t=S(r,n)))),h("text",e=>(e.content&&e.replaceWith(e=W(e).childNodes[0]),n=>e.textContent=n??"")),h("class",(e,n)=>(n=new Set,t=>{let r=new Set;t&&(typeof t=="string"?t.split(" ").map(s=>r.add(s)):Array.isArray(t)?t.map(s=>s&&r.add(s)):Object.entries(t).map(([s,o])=>o&&r.add(s)));for(let s of n)r.has(s)?r.delete(s):e.classList.remove(s);for(let s of n=r)e.classList.add(s)})),h("style",(e,n)=>(n=e.getAttribute("style"),t=>{if(typeof t=="string")e.setAttribute("style",n+(n.endsWith(";")?"":"; ")+t);else{n&&e.setAttribute("style",n);for(let r in t)r[0]=="-"?e.style.setProperty(r,t[r]):e.style[r]=t[r]}})),h("fx",e=>n=>n),h("aria",e=>n=>{for(let t in n)j(e,"aria-"+X(t),n[t]==null?null:n[t]+"")}),h("data",e=>n=>{for(let t in n)e.dataset[t]=n[t]}),v.use({compile:e=>v.constructor(`with (arguments[0]) { return ${e} };`)});var se=v;export{se as default};
|
package/dist/sprae.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sprae.js"],
|
|
4
|
-
"sourcesContent": ["// signal.js\nvar current;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => fn();\nvar untracked = batch;\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || batch;\n untracked = s.untracked || batch;\n}\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"change\");\nfunction store(values, parent) {\n if (!values) return values;\n if (values[_signals]) return values;\n if (Array.isArray(values)) return list(values);\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);\n const state = new Proxy(signals, {\n get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),\n set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),\n // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n _len.value;\n return Reflect.ownKeys(signals);\n }\n });\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key);\n if (desc?.get) {\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n } else {\n signals[key] = void 0;\n set(signals, key, values[key]);\n }\n }\n return state;\n}\nvar mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n } else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar _state = Symbol(\"state\");\nvar _on = Symbol(\"on\");\nvar _off = Symbol(\"off\");\nvar directive = {};\nvar dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (evaluate = p(expr), update = create(el, state, expr, name2), () => update(evaluate(state)));\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (_state in el) {\n return Object.assign(el[_state], values);\n }\n const state = store(values || {}), offs = [], fx = [];\n init(el);\n if (!(_state in el)) {\n el[_state] = state;\n el[_off] = () => {\n while (offs.length) offs.pop()();\n };\n el[_on] = () => offs.push(...fx.map((f) => effect(f)));\n el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);\n }\n return state;\n function init(el2) {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i], update;\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n for (let name of attr2.name.slice(1).split(\":\")) {\n update = (directive[name] || directive.default)(el2, attr2.value, state, name);\n fx.push(update), offs.push(effect(update));\n if (_state in el2) return;\n }\n } else i++;\n }\n for (let child of [...el2.childNodes]) init(child);\n }\n ;\n}\nvar memo = {};\nvar parse = (expr, dir2) => {\n let fn;\n if (fn = memo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir2, expr);\n }\n return memo[expr] = fn;\n};\nvar err = (e, dir2, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir2}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n // get parentNode() { return childNodes[0].parentNode },\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n },\n setAttributeNode() {\n }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndir(\"if\", (el, state) => {\n const holder = document.createTextNode(\"\");\n let next = el.nextElementSibling, curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n ifEl[_state] = null;\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, elseEl[_state] = null;\n }\n return (value) => {\n const newEl = value ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[_off]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n curEl[_state] === null && delete curEl[_state];\n curEl[_state] ? curEl[_on]() : sprae(curEl, state);\n }\n }\n };\n});\n\n// directive/each.js\ndir(\n \"each\",\n (tpl, state, expr) => {\n const [itemVar, idxVar = \"$\"] = expr.split(/\\s+in\\s+/)[0].split(/\\s*,\\s*/);\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n tpl[_state] = null;\n let cur, keys2, items, prevl = 0;\n const update = () => {\n var _a, _b;\n let i = 0, newItems = items, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) s[Symbol.dispose]();\n cur = null, prevl = 0;\n }\n if (newl < prevl) cur.length = newl;\n else {\n if (!cur) cur = newItems;\n else while (i < prevl) cur[i] = newItems[i++];\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 return (value) => {\n keys2 = null;\n if (typeof value === \"number\") items = Array.from({ length: value }, (_, i) => i + 1);\n else if (value?.constructor === Object) keys2 = Object.keys(value), items = Object.values(value);\n else items = value || [];\n let planned = 0;\n return effect(() => {\n items[_change]?.value;\n if (!planned++) update(), queueMicrotask(() => (planned > 1 && update(), planned = 0));\n });\n };\n },\n // redefine evaluator to take second part of expression\n (expr) => parse(expr.split(/\\s+in\\s+/)[1])\n);\n\n// directive/ref.js\ndir(\"ref\", (el, state, expr) => (v) => v.call(null, el));\n\n// directive/with.js\ndir(\"with\", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store(values, rootState))));\n\n// directive/text.js\ndir(\"text\", (el) => (\n // <template :text=\"a\"/> or previously initialized template\n (el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? \"\" : value)\n));\n\n// directive/class.js\ndir(\n \"class\",\n (el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n })\n);\n\n// directive/style.js\ndir(\n \"style\",\n (el, initStyle) => (initStyle = el.getAttribute(\"style\"), (v) => {\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n })\n);\n\n// directive/default.js\ndir(\"default\", (target, state, expr, name) => {\n if (!name.startsWith(\"on\"))\n return name ? (value) => attr(target, name, value) : (value) => {\n for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (_, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n const addListener = (fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) => {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.call(state, 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 if (ctxs.length == 1) return (v) => addListener(v, 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 (value) => (startFn = value, !off && nextListener(startFn), () => startFn = null);\n});\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n parent(ctx) {\n ctx.target = ctx.target.parentNode;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndir(\"value\", (el, state, expr) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n let set2 = setter(expr);\n const handleChange = el.type === \"checkbox\" ? () => set2(state, el.checked) : el.type === \"select-multiple\" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);\n el.oninput = el.onchange = handleChange;\n if (el.type?.startsWith(\"select\")) {\n new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });\n sprae(el, state);\n }\n return update;\n});\nvar setter = (expr) => {\n try {\n const set2 = parse(`${expr}=__`);\n return (state, value) => {\n state.__ = value;\n set2(state, value);\n delete state.__;\n };\n } catch (e) {\n }\n};\n\n// directive/fx.js\ndir(\"fx\", (_) => (_2) => _2);\n\n// directive/aria.js\ndir(\"aria\", (el) => (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n});\n\n// directive/data.js\ndir(\"data\", (el) => (value) => {\n for (let key in value) el.dataset[key] = value[key];\n});\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["current", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "untracked", "use", "_signals", "_change", "store", "values", "parent", "list", "signals", "_len", "state", "_", "key", "set", "del", "desc", "mut", "lastProp", "i", "l", "cur", "del2", "_dispose", "_state", "_on", "_off", "directive", "dir", "name", "create", "p", "parse", "el", "expr", "name2", "update", "evaluate", "sprae", "offs", "init", "
|
|
4
|
+
"sourcesContent": ["// signal.js\nvar current;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => fn();\nvar untracked = batch;\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || batch;\n untracked = s.untracked || batch;\n}\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"change\");\nfunction store(values, parent) {\n if (!values) return values;\n if (values[_signals]) return values;\n if (Array.isArray(values)) return list(values);\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);\n const state = new Proxy(signals, {\n get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),\n set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),\n // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n _len.value;\n return Reflect.ownKeys(signals);\n }\n });\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key);\n if (desc?.get) {\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n } else {\n signals[key] = void 0;\n set(signals, key, values[key]);\n }\n }\n return state;\n}\nvar mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n } else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar _state = Symbol(\"state\");\nvar _on = Symbol(\"on\");\nvar _off = Symbol(\"off\");\nvar directive = {};\nvar dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (evaluate = p(expr), update = create(el, state, expr, name2, evaluate), () => update(evaluate(state)));\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (el[_state]) {\n return Object.assign(el[_state], values);\n }\n const state = store(values || {}), offs = [], fx = [];\n const init = (el2) => {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i], update;\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n for (let name of attr2.name.slice(1).split(\":\")) {\n update = (directive[name] || directive.default)(el2, attr2.value, state, name);\n fx.push(update), offs.push(effect(update));\n if (el2[_state] === null) return;\n }\n } else i++;\n }\n for (let child of [...el2.childNodes]) init(child);\n };\n init(el);\n if (!(_state in el)) {\n el[_state] = state;\n el[_off] = () => {\n while (offs.length) offs.pop()();\n };\n el[_on] = () => offs.push(...fx.map((f) => effect(f)));\n el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);\n }\n return state;\n}\nvar memo = {};\nvar parse = (expr, dir2) => {\n let fn;\n if (fn = memo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir2, expr);\n }\n return memo[expr] = fn;\n};\nvar err = (e, dir2, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir2 || \"\"}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n // get parentNode() { return childNodes[0].parentNode },\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n },\n setAttributeNode() {\n }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndir(\"if\", (el, state) => {\n const holder = document.createTextNode(\"\");\n let next = el.nextElementSibling, curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n ifEl[_state] = null;\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, elseEl[_state] = null;\n }\n return (value) => {\n const newEl = value ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[_off]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n curEl[_state] === null ? (delete curEl[_state], sprae(curEl, state)) : curEl[_on]();\n }\n }\n };\n});\n\n// directive/each.js\ndir(\n \"each\",\n (tpl, state, expr) => {\n const [itemVar, idxVar = \"$\"] = expr.split(/\\s+in\\s+/)[0].split(/\\s*,\\s*/);\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n tpl[_state] = null;\n let cur, keys2, items, prevl = 0;\n const update = () => {\n var _a, _b;\n let i = 0, newItems = items, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) s[Symbol.dispose]();\n cur = null, prevl = 0;\n }\n if (newl < prevl) cur.length = newl;\n else {\n if (!cur) cur = newItems;\n else while (i < prevl) cur[i] = newItems[i++];\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 return (value) => {\n keys2 = null;\n if (typeof value === \"number\") items = Array.from({ length: value }, (_, i) => i + 1);\n else if (value?.constructor === Object) keys2 = Object.keys(value), items = Object.values(value);\n else items = value || [];\n let planned = 0;\n return effect(() => {\n items[_change]?.value;\n if (!planned++) update(), queueMicrotask(() => (planned > 1 && update(), planned = 0));\n });\n };\n },\n // redefine evaluator to take second part of expression\n (expr) => parse(expr.split(/\\s+in\\s+/)[1])\n);\n\n// directive/default.js\ndir(\"default\", (target, state, expr, name) => {\n if (!name.startsWith(\"on\"))\n return name ? (value) => attr(target, name, value) : (value) => {\n for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (_, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n const addListener = (fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) => {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.call(state, 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 if (ctxs.length == 1) return (v) => addListener(v, 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 (value) => (startFn = value, !off && nextListener(startFn), () => startFn = null);\n});\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n parent(ctx) {\n ctx.target = ctx.target.parentNode;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndir(\"value\", (el, state, expr) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n ensure(state, expr);\n try {\n const set2 = setter(expr);\n const handleChange = el.type === \"checkbox\" ? () => set2(state, el.checked) : el.type === \"select-multiple\" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);\n el.oninput = el.onchange = handleChange;\n if (el.type?.startsWith(\"select\")) {\n new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });\n sprae(el, state);\n }\n } catch {\n }\n return update;\n});\nvar setter = (expr, set2 = parse(`${expr}=__`)) => (\n // FIXME: if there's a simpler way to set value in justin?\n (state, value) => (state.__ = value, set2(state, value), delete state.__)\n);\nvar ensure = (state, expr, name = expr.match(/^\\w+(?=\\s*(?:\\.|\\[|$))/)) => {\n var _a;\n return name && (state[_a = name[0]] || (state[_a] = null));\n};\n\n// directive/ref.js\ndir(\"ref\", (el, state, expr, _, ev) => (ensure(state, expr), ev(state) == null ? (setter(expr)(state, el), (_2) => _2) : (v) => v.call(null, el)));\n\n// directive/with.js\ndir(\"with\", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store(values, rootState))));\n\n// directive/text.js\ndir(\"text\", (el) => (\n // <template :text=\"a\"/> or previously initialized template\n (el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? \"\" : value)\n));\n\n// directive/class.js\ndir(\n \"class\",\n (el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n })\n);\n\n// directive/style.js\ndir(\n \"style\",\n (el, initStyle) => (initStyle = el.getAttribute(\"style\"), (v) => {\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n })\n);\n\n// directive/fx.js\ndir(\"fx\", (_) => (_2) => _2);\n\n// directive/aria.js\ndir(\"aria\", (el) => (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n});\n\n// directive/data.js\ndir(\"data\", (el) => (value) => {\n for (let key in value) el.dataset[key] = value[key];\n});\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["current", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "untracked", "use", "_signals", "_change", "store", "values", "parent", "list", "signals", "_len", "state", "_", "key", "set", "del", "desc", "mut", "lastProp", "i", "l", "cur", "del2", "_dispose", "_state", "_on", "_off", "directive", "dir", "name", "create", "p", "parse", "el", "expr", "name2", "update", "evaluate", "sprae", "offs", "init", "el2", "attr2", "child", "f", "memo", "dir2", "compile", "err", "frag", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "holder", "next", "curEl", "ifEl", "elseEl", "value", "newEl", "itemVar", "idxVar", "keys2", "items", "prevl", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "target", "attr", "dashcase", "ctxs", "ctx", "mod", "param", "mods", "addListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "startFn", "nextFn", "off", "nextListener", "limit", "throttle", "wait", "debounce", "keys", "pause", "block", "timeout", "str", "match", "from", "to", "ensure", "set2", "setter", "handleChange", "o", "ev", "_2", "rootState", "clsx", "cls", "v2", "k", "initStyle", "sprae_default"]
|
|
7
7
|
}
|
package/dist/sprae.umd.js
CHANGED
|
@@ -164,21 +164,11 @@ var init_store = __esm({
|
|
|
164
164
|
// core.js
|
|
165
165
|
function sprae(el, values) {
|
|
166
166
|
if (!el?.childNodes) return;
|
|
167
|
-
if (_state
|
|
167
|
+
if (el[_state]) {
|
|
168
168
|
return Object.assign(el[_state], values);
|
|
169
169
|
}
|
|
170
170
|
const state = store(values || {}), offs = [], fx = [];
|
|
171
|
-
init(
|
|
172
|
-
if (!(_state in el)) {
|
|
173
|
-
el[_state] = state;
|
|
174
|
-
el[_off] = () => {
|
|
175
|
-
while (offs.length) offs.pop()();
|
|
176
|
-
};
|
|
177
|
-
el[_on] = () => offs.push(...fx.map((f) => effect(f)));
|
|
178
|
-
el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);
|
|
179
|
-
}
|
|
180
|
-
return state;
|
|
181
|
-
function init(el2) {
|
|
171
|
+
const init = (el2) => {
|
|
182
172
|
if (!el2.childNodes) return;
|
|
183
173
|
for (let i = 0; i < el2.attributes?.length; ) {
|
|
184
174
|
let attr2 = el2.attributes[i], update;
|
|
@@ -187,13 +177,22 @@ function sprae(el, values) {
|
|
|
187
177
|
for (let name of attr2.name.slice(1).split(":")) {
|
|
188
178
|
update = (directive[name] || directive.default)(el2, attr2.value, state, name);
|
|
189
179
|
fx.push(update), offs.push(effect(update));
|
|
190
|
-
if (_state
|
|
180
|
+
if (el2[_state] === null) return;
|
|
191
181
|
}
|
|
192
182
|
} else i++;
|
|
193
183
|
}
|
|
194
184
|
for (let child of [...el2.childNodes]) init(child);
|
|
185
|
+
};
|
|
186
|
+
init(el);
|
|
187
|
+
if (!(_state in el)) {
|
|
188
|
+
el[_state] = state;
|
|
189
|
+
el[_off] = () => {
|
|
190
|
+
while (offs.length) offs.pop()();
|
|
191
|
+
};
|
|
192
|
+
el[_on] = () => offs.push(...fx.map((f) => effect(f)));
|
|
193
|
+
el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);
|
|
195
194
|
}
|
|
196
|
-
;
|
|
195
|
+
return state;
|
|
197
196
|
}
|
|
198
197
|
var _dispose, _state, _on, _off, directive, dir, memo, parse, err, compile, frag;
|
|
199
198
|
var init_core = __esm({
|
|
@@ -205,7 +204,7 @@ var init_core = __esm({
|
|
|
205
204
|
_on = Symbol("on");
|
|
206
205
|
_off = Symbol("off");
|
|
207
206
|
directive = {};
|
|
208
|
-
dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (evaluate = p(expr), update = create(el, state, expr, name2), () => update(evaluate(state)));
|
|
207
|
+
dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (evaluate = p(expr), update = create(el, state, expr, name2, evaluate), () => update(evaluate(state)));
|
|
209
208
|
memo = {};
|
|
210
209
|
parse = (expr, dir2) => {
|
|
211
210
|
let fn;
|
|
@@ -220,7 +219,7 @@ var init_core = __esm({
|
|
|
220
219
|
err = (e, dir2, expr = "") => {
|
|
221
220
|
throw Object.assign(e, { message: `\u2234 ${e.message}
|
|
222
221
|
|
|
223
|
-
${dir2}${expr ? `="${expr}"
|
|
222
|
+
${dir2 || ""}${expr ? `="${expr}"
|
|
224
223
|
|
|
225
224
|
` : ""}`, expr });
|
|
226
225
|
};
|
|
@@ -275,8 +274,7 @@ var init_if = __esm({
|
|
|
275
274
|
if (curEl) curEl.remove(), curEl[_off]?.();
|
|
276
275
|
if (curEl = newEl) {
|
|
277
276
|
holder.before(curEl.content || curEl);
|
|
278
|
-
curEl[_state] === null
|
|
279
|
-
curEl[_state] ? curEl[_on]() : sprae(curEl, state);
|
|
277
|
+
curEl[_state] === null ? (delete curEl[_state], sprae(curEl, state)) : curEl[_on]();
|
|
280
278
|
}
|
|
281
279
|
}
|
|
282
280
|
};
|
|
@@ -342,72 +340,6 @@ var init_each = __esm({
|
|
|
342
340
|
}
|
|
343
341
|
});
|
|
344
342
|
|
|
345
|
-
// directive/ref.js
|
|
346
|
-
var init_ref = __esm({
|
|
347
|
-
"directive/ref.js"() {
|
|
348
|
-
init_core();
|
|
349
|
-
dir("ref", (el, state, expr) => (v) => v.call(null, el));
|
|
350
|
-
}
|
|
351
|
-
});
|
|
352
|
-
|
|
353
|
-
// directive/with.js
|
|
354
|
-
var init_with = __esm({
|
|
355
|
-
"directive/with.js"() {
|
|
356
|
-
init_core();
|
|
357
|
-
init_store();
|
|
358
|
-
dir("with", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store(values, rootState))));
|
|
359
|
-
}
|
|
360
|
-
});
|
|
361
|
-
|
|
362
|
-
// directive/text.js
|
|
363
|
-
var init_text = __esm({
|
|
364
|
-
"directive/text.js"() {
|
|
365
|
-
init_core();
|
|
366
|
-
dir("text", (el) => (
|
|
367
|
-
// <template :text="a"/> or previously initialized template
|
|
368
|
-
(el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? "" : value)
|
|
369
|
-
));
|
|
370
|
-
}
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
// directive/class.js
|
|
374
|
-
var init_class = __esm({
|
|
375
|
-
"directive/class.js"() {
|
|
376
|
-
init_core();
|
|
377
|
-
dir(
|
|
378
|
-
"class",
|
|
379
|
-
(el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {
|
|
380
|
-
let clsx = /* @__PURE__ */ new Set();
|
|
381
|
-
if (v) {
|
|
382
|
-
if (typeof v === "string") v.split(" ").map((cls) => clsx.add(cls));
|
|
383
|
-
else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));
|
|
384
|
-
else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));
|
|
385
|
-
}
|
|
386
|
-
for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);
|
|
387
|
-
else el.classList.remove(cls);
|
|
388
|
-
for (let cls of cur = clsx) el.classList.add(cls);
|
|
389
|
-
})
|
|
390
|
-
);
|
|
391
|
-
}
|
|
392
|
-
});
|
|
393
|
-
|
|
394
|
-
// directive/style.js
|
|
395
|
-
var init_style = __esm({
|
|
396
|
-
"directive/style.js"() {
|
|
397
|
-
init_core();
|
|
398
|
-
dir(
|
|
399
|
-
"style",
|
|
400
|
-
(el, initStyle) => (initStyle = el.getAttribute("style"), (v) => {
|
|
401
|
-
if (typeof v === "string") el.setAttribute("style", initStyle + (initStyle.endsWith(";") ? "" : "; ") + v);
|
|
402
|
-
else {
|
|
403
|
-
if (initStyle) el.setAttribute("style", initStyle);
|
|
404
|
-
for (let k in v) k[0] == "-" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];
|
|
405
|
-
}
|
|
406
|
-
})
|
|
407
|
-
);
|
|
408
|
-
}
|
|
409
|
-
});
|
|
410
|
-
|
|
411
343
|
// directive/default.js
|
|
412
344
|
var mods, keys, throttle, debounce, attr, dashcase;
|
|
413
345
|
var init_default = __esm({
|
|
@@ -557,7 +489,7 @@ var init_default = __esm({
|
|
|
557
489
|
});
|
|
558
490
|
|
|
559
491
|
// directive/value.js
|
|
560
|
-
var setter;
|
|
492
|
+
var setter, ensure;
|
|
561
493
|
var init_value = __esm({
|
|
562
494
|
"directive/value.js"() {
|
|
563
495
|
init_core();
|
|
@@ -575,29 +507,97 @@ var init_value = __esm({
|
|
|
575
507
|
for (let o of el.options) o.removeAttribute("selected");
|
|
576
508
|
for (let v of value) el.querySelector(`[value="${v}"]`).setAttribute("selected", "");
|
|
577
509
|
} : (value) => el.value = value;
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
510
|
+
ensure(state, expr);
|
|
511
|
+
try {
|
|
512
|
+
const set2 = setter(expr);
|
|
513
|
+
const handleChange = el.type === "checkbox" ? () => set2(state, el.checked) : el.type === "select-multiple" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);
|
|
514
|
+
el.oninput = el.onchange = handleChange;
|
|
515
|
+
if (el.type?.startsWith("select")) {
|
|
516
|
+
new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });
|
|
517
|
+
sprae(el, state);
|
|
518
|
+
}
|
|
519
|
+
} catch {
|
|
584
520
|
}
|
|
585
521
|
return update;
|
|
586
522
|
});
|
|
587
|
-
setter = (expr) =>
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
};
|
|
595
|
-
} catch (e) {
|
|
596
|
-
}
|
|
523
|
+
setter = (expr, set2 = parse(`${expr}=__`)) => (
|
|
524
|
+
// FIXME: if there's a simpler way to set value in justin?
|
|
525
|
+
(state, value) => (state.__ = value, set2(state, value), delete state.__)
|
|
526
|
+
);
|
|
527
|
+
ensure = (state, expr, name = expr.match(/^\w+(?=\s*(?:\.|\[|$))/)) => {
|
|
528
|
+
var _a;
|
|
529
|
+
return name && (state[_a = name[0]] || (state[_a] = null));
|
|
597
530
|
};
|
|
598
531
|
}
|
|
599
532
|
});
|
|
600
533
|
|
|
534
|
+
// directive/ref.js
|
|
535
|
+
var init_ref = __esm({
|
|
536
|
+
"directive/ref.js"() {
|
|
537
|
+
init_core();
|
|
538
|
+
init_value();
|
|
539
|
+
dir("ref", (el, state, expr, _, ev) => (ensure(state, expr), ev(state) == null ? (setter(expr)(state, el), (_2) => _2) : (v) => v.call(null, el)));
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
// directive/with.js
|
|
544
|
+
var init_with = __esm({
|
|
545
|
+
"directive/with.js"() {
|
|
546
|
+
init_core();
|
|
547
|
+
init_store();
|
|
548
|
+
dir("with", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store(values, rootState))));
|
|
549
|
+
}
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
// directive/text.js
|
|
553
|
+
var init_text = __esm({
|
|
554
|
+
"directive/text.js"() {
|
|
555
|
+
init_core();
|
|
556
|
+
dir("text", (el) => (
|
|
557
|
+
// <template :text="a"/> or previously initialized template
|
|
558
|
+
(el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? "" : value)
|
|
559
|
+
));
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
|
|
563
|
+
// directive/class.js
|
|
564
|
+
var init_class = __esm({
|
|
565
|
+
"directive/class.js"() {
|
|
566
|
+
init_core();
|
|
567
|
+
dir(
|
|
568
|
+
"class",
|
|
569
|
+
(el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {
|
|
570
|
+
let clsx = /* @__PURE__ */ new Set();
|
|
571
|
+
if (v) {
|
|
572
|
+
if (typeof v === "string") v.split(" ").map((cls) => clsx.add(cls));
|
|
573
|
+
else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));
|
|
574
|
+
else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));
|
|
575
|
+
}
|
|
576
|
+
for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);
|
|
577
|
+
else el.classList.remove(cls);
|
|
578
|
+
for (let cls of cur = clsx) el.classList.add(cls);
|
|
579
|
+
})
|
|
580
|
+
);
|
|
581
|
+
}
|
|
582
|
+
});
|
|
583
|
+
|
|
584
|
+
// directive/style.js
|
|
585
|
+
var init_style = __esm({
|
|
586
|
+
"directive/style.js"() {
|
|
587
|
+
init_core();
|
|
588
|
+
dir(
|
|
589
|
+
"style",
|
|
590
|
+
(el, initStyle) => (initStyle = el.getAttribute("style"), (v) => {
|
|
591
|
+
if (typeof v === "string") el.setAttribute("style", initStyle + (initStyle.endsWith(";") ? "" : "; ") + v);
|
|
592
|
+
else {
|
|
593
|
+
if (initStyle) el.setAttribute("style", initStyle);
|
|
594
|
+
for (let k in v) k[0] == "-" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];
|
|
595
|
+
}
|
|
596
|
+
})
|
|
597
|
+
);
|
|
598
|
+
}
|
|
599
|
+
});
|
|
600
|
+
|
|
601
601
|
// directive/fx.js
|
|
602
602
|
var init_fx = __esm({
|
|
603
603
|
"directive/fx.js"() {
|