sprae 10.12.3 → 10.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,6 +68,7 @@ const mods = {
68
68
  // target
69
69
  window(ctx) { ctx.target = window; },
70
70
  document(ctx) { ctx.target = document; },
71
+ parent(ctx) { ctx.target = ctx.target.parentNode; },
71
72
 
72
73
  throttle(ctx, limit) { ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108); },
73
74
  debounce(ctx, wait) { ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108); },
package/dist/sprae.js CHANGED
@@ -440,6 +440,9 @@ var mods = {
440
440
  document(ctx) {
441
441
  ctx.target = document;
442
442
  },
443
+ parent(ctx) {
444
+ ctx.target = ctx.target.parentNode;
445
+ },
443
446
  throttle(ctx, limit) {
444
447
  ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);
445
448
  },
package/dist/sprae.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../signal.js", "../store.js", "../core.js", "../directive/if.js", "../directive/each.js", "../directive/ref.js", "../directive/with.js", "../directive/html.js", "../directive/text.js", "../directive/class.js", "../directive/style.js", "../directive/default.js", "../directive/value.js", "../directive/fx.js", "../sprae.js"],
4
- "sourcesContent": ["// ulive copy, stable minimal implementation\nlet current, batched;\n\nexport let signal = (v, s, obs = new Set) => (\n s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v\n },\n set value(val) {\n if (val === v) return\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub(); // notify effects\n },\n peek() { return v },\n },\n s.toJSON = s.then = s.toString = s.valueOf = () => s.value,\n s\n),\n effect = (fn, teardown, fx, deps) => (\n fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try { teardown = fn(); } finally { current = prev; }\n },\n deps = fx.deps = [],\n\n fx(),\n (dep) => { teardown?.call?.(); while (dep = deps.pop()) dep.delete(fx); }\n ),\n computed = (fn, s = signal(), c, e) => (\n c = {\n get value() {\n e ||= effect(() => s.value = fn());\n return s.value\n },\n peek: s.peek\n },\n c.toJSON = c.then = c.toString = c.valueOf = () => c.value,\n c\n ),\n batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = new Set;\n try { fn(); }\n finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n },\n untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n\n// signals adapter - allows switching signals implementation and not depend on core\n\nexport function use(s) {\n signal = s.signal\n effect = s.effect\n computed = s.computed\n batch = s.batch || (fn => fn())\n untracked = s.untracked || batch\n}\n", "// signals-based proxy\nimport { signal, computed, batch, untracked } from './signal.js'\n\nexport const _signals = Symbol('signals'), _change = Symbol('length');\n\n// object store is not lazy\nexport default function store(values, parent) {\n if (!values) return values\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // redirect for optimized array store\n if (Array.isArray(values)) return list(values)\n\n // ignore non-objects or custom objects\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n\n // NOTE: if you decide to unlazy values, think about large arrays - init upfront can be costly\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length)\n\n // proxy conducts prop access to signals\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), // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n // subscribe to length when object is spread\n _len.value\n return Reflect.ownKeys(signals);\n },\n })\n\n // init signals for values\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key)\n\n // getter turns into computed\n if (desc?.get) {\n // stash setter\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n }\n else {\n // init blank signal - make sure we don't take prototype one\n signals[key] = undefined\n set(signals, key, values[key]);\n }\n }\n\n return state\n}\n\n// length changing methods\nconst mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 }\n\n// array store - signals are lazy since arrays can be very large & expensive\nexport function list(values) {\n // track last accessed property to find out if .length was directly accessed from expression or via .push/etc method\n let lastProp\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // .length signal is stored separately, since it cannot be replaced on array\n let _len = signal(values.length),\n // gotta fill with null since proto methods like .reduce may fail\n signals = Array(values.length).fill();\n\n // proxy conducts prop access to signals\n const state = new Proxy(signals, {\n get(_, key) {\n // covers Symbol.isConcatSpreadable etc.\n if (typeof key === 'symbol') return key === _change ? _len : key === _signals ? signals : signals[key]\n\n // console.log('get', key)\n // if .length is read within .push/etc - peek signal to avoid recursive subscription\n if (key === 'length') return mut[lastProp] ? _len.peek() : _len.value;\n\n lastProp = key;\n\n if (signals[key]) return signals[key].valueOf()\n\n // I hope reading values here won't diverge from signals\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value\n },\n\n set(_, key, v) {\n // console.log('set', key, v)\n // .length\n if (key === 'length') {\n // force cleaning up tail\n for (let i = v, l = signals.length; i < l; i++) delete state[i]\n // .length = N directly\n _len.value = signals.length = v;\n return true\n }\n\n set(signals, key, v)\n\n // force changing length, if eg. a=[]; a[1]=1 - need to come after setting the item\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1\n\n return true\n },\n\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1),\n\n })\n\n return state\n}\n\n// set/update signal value\nfunction set(signals, key, v) {\n let s = signals[key]\n\n // untracked\n if (key[0] === '_') signals[key] = v\n // new property\n else if (!s) {\n // preserve signal value as is\n signals[key] = s = v?.peek ? v : signal(store(v))\n }\n // skip unchanged (although can be handled by last condition - we skip a few checks this way)\n else if (v === s.peek());\n // stashed _set for value with getter/setter\n else if (s._set) s._set(v)\n // patch array\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek()\n // if we update plain array (stored in signal) - take over value instead\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i]\n cur.length = l // forces deleting tail signals\n })\n })\n else {\n s.value = v\n }\n }\n // .x = y\n else {\n s.value = store(v)\n }\n}\n\n// delete signal\nfunction del(signals, key) {\n const s = signals[key], del = s[Symbol.dispose]\n if (del) delete s[Symbol.dispose]\n delete signals[key]\n del?.()\n}\n", "import { use, effect } from \"./signal.js\";\nimport store, { _signals } from './store.js';\n\n// polyfill\nconst _dispose = (Symbol.dispose ||= Symbol(\"dispose\"));\n\n\n// reserved directives - order matters!\nexport const directive = {};\n\n// every element that's in cache === directly spraed and un subsequent sprae is just updated (like each)\nexport const memo = new WeakMap();\n\n// sprae element: apply directives\nexport default function sprae(el, values) {\n // text nodes, comments etc\n if (!el?.childNodes) return\n\n // repeated call can be caused by :each with new objects with old keys needs an update\n if (memo.has(el)) {\n // we rewrite signals instead of update, because user should have what he provided\n return Object.assign(memo.get(el), values)\n }\n\n // take over existing state instead of creating clone\n const state = store(values || {}), disposes = []\n\n init(el);\n\n // if element was spraed by :with or :each instruction - skip, otherwise save\n if (!memo.has(el)) memo.set(el, state);\n\n // disposer unspraes all internal elements\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n }\n\n return state;\n\n function init(el, parent = el.parentNode) {\n if (!el.childNodes) return // ignore text nodes, comments etc\n\n // init generic-name attributes second\n for (let i = 0; i < el.attributes?.length;) {\n let attr = el.attributes[i];\n\n if (attr.name[0] === ':') {\n el.removeAttribute(attr.name);\n\n // multiple attributes like :id:for=\"\"\n let names = attr.name.slice(1).split(':')\n\n for (let name of names) {\n let dir = directive[name] || directive.default\n let evaluate = (dir.parse || parse)(attr.value)\n let fn = dir(el, evaluate, state, name);\n if (fn) disposes.push(effect(fn))\n disposes.push(() => el.setAttributeNode(attr)) // recover attribute\n }\n\n // stop if element was spraed by internal directive\n if (memo.has(el)) return el[_dispose] && disposes.push(el[_dispose])\n\n // stop if element is skipped (detached) like in case of :if or :each\n if (el.parentNode !== parent) return\n } else i++;\n }\n\n for (let child of [...el.childNodes]) init(child, el);\n };\n}\n\n\n// parse expression into evaluator fn\nconst evalMemo = {};\nexport const parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn\n\n // static-time errors\n try { fn = compile(expr) }\n catch (e) { err(e, dir, expr) }\n\n // runtime errors\n return evalMemo[expr] = fn\n}\n\n// wrapped call\nexport const err = (e, dir, expr = '') => {\n throw Object.assign(e, { message: `\u2234 ${e.message}\\n\\n${dir}${expr ? `=\"${expr}\"\\n\\n` : \"\"}`, expr })\n}\n\nexport let compile\n\n// configure signals/compile\n// it's more compact than using sprae.signal = signal etc.\nsprae.use = s => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n}\n\n\n// instantiated <template> fragment holder, like persisting fragment but with minimal API surface\nexport const frag = (tpl) => {\n if (!tpl.nodeType) return tpl // existing tpl\n\n let content = tpl.content.cloneNode(true),\n attributes = [...tpl.attributes],\n ref = document.createTextNode(''),\n // ensure at least one node\n childNodes = (content.append(ref), [...content.childNodes])\n\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return\n ref.before(el)\n content.append(...childNodes)\n },\n attributes,\n removeAttribute(name) { attributes.splice(attributes.findIndex(a => a.name === name), 1) },\n setAttributeNode() { }\n }\n}\n", "import sprae, { directive, memo, frag } from \"../core.js\";\n\n// :if is interchangeable with :each depending on order, :if :each or :each :if have different meanings\n// as for :if :with - :if must init first, since it is lazy, to avoid initializing component ahead of time by :with\n// we consider :with={x} :if={x} case insignificant\nconst _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling,\n holder = document.createTextNode(''),\n curEl, ifEl, elseEl;\n\n el.replaceWith(holder)\n\n ifEl = el.content ? frag(el) : el\n memo.set(ifEl, null) // mark all el as fake-spraed, because we have to sprae for real on insert\n\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n // if next is :else :if - leave it for its own :if handler\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null)\n }\n\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl\n if (curEl != newEl) {\n // disable effects on child elements to avoid internal effects from triggering on value changes when element's not matched\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl)\n memo.get(curEl) === null && memo.delete(curEl) // remove fake memo to sprae as new\n sprae(curEl, state)\n }\n }\n };\n};\n", "import sprae, { directive, frag, parse } from \"../core.js\";\nimport store, { _change, _signals } from \"../store.js\";\nimport { untracked, computed } from '../signal.js';\n\n\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n // we need :if to be able to replace holder instead of tpl for :if :each case\n const holder = (document.createTextNode(\"\"));\n tpl.replaceWith(holder);\n\n // we re-create items any time new items are produced\n let cur, keys, prevl = 0\n\n // separate computed effect reduces number of needed updates for the effect\n const items = computed(() => {\n keys = null\n let items = evaluate(state)\n if (typeof items === \"number\") items = Array.from({ length: items }, (_, i) => i + 1)\n if (items?.constructor === Object) keys = Object.keys(items), items = Object.values(items)\n return items || []\n })\n\n const update = () => {\n // NOTE: untracked avoids rerendering full list whenever internal items or props change\n untracked(() => {\n let i = 0, newItems = items.value, newl = newItems.length\n\n // plain array update, not store (signal with array) - updates full list\n if (cur && !(cur[_change])) {\n for (let s of cur[_signals] || []) { s[Symbol.dispose]() }\n cur = null, prevl = 0\n }\n\n // delete\n if (newl < prevl) {\n cur.length = newl\n }\n // update, append, init\n else {\n // init\n if (!cur) {\n cur = newItems\n }\n // update\n else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i]\n }\n }\n\n // append\n for (; i < newl; i++) {\n cur[i] = newItems[i]\n let idx = i,\n scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys ? keys[idx] : idx\n }, state),\n el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n\n holder.before(el.content || el);\n sprae(el, scope);\n\n // signal/holder disposal removes element\n ((cur[_signals] ||= [])[i] ||= {})[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove()\n };\n }\n }\n\n prevl = newl\n })\n }\n\n let planned = 0\n return () => {\n // subscribe to items change (.length) - we do it every time (not just on init) since preact unsubscribes unused signals\n items.value[_change]?.value\n\n // make first render immediately, debounce subsequent renders\n if (!planned) {\n update()\n queueMicrotask(() => (planned && update(), planned = 0))\n } else planned++\n }\n}\n\n\n// redefine parser to exclude `[a in] b`\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n\n return [itemVar, idxVar, parse(itemsExpr)]\n}\n", "import { directive } from \"../core.js\";\nimport { _change, _signals } from \"../store.js\";\n\n// ref must be last within primaries, since that must be skipped by :each, but before secondaries\ndirective.ref = (el, expr, state) => {\n state[expr] = el\n}\n\ndirective.ref.parse = expr => expr\n", "import sprae, { directive } from \"../core.js\";\nimport store, { _signals } from '../store.js';\n\ndirective.with = (el, evaluate, rootState) => {\n let state\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState))\n }\n};\n", "import sprae, { directive } from \"../core.js\";\n\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n\n if (!tpl) return\n\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n", "import { directive, frag } from \"../core.js\";\n\n// set text content\ndirective.text = (el, evaluate, state) => {\n // <template :text=\"a\"/> or previously initialized template\n if (el.content) el.replaceWith(el = frag(el).childNodes[0])\n\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.class = (el, evaluate, state) => {\n let cur = new Set\n return () => {\n let v = evaluate(state);\n let clsx = 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(v => v && clsx.add(v));\n else Object.entries(v).map(([k, v]) => v && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls); else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls)\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(';') ? '' : '; ') + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == '-' ? (el.style.setProperty(k, v[k])) : el.style[k] = v[k]\n }\n };\n};\n", "import { directive, err } from \"../core.js\";\n\n// set generic property directive\ndirective.default = (target, evaluate, state, name) => {\n // simple prop\n if (!name.startsWith('on')) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value)\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n\n // bind event to a target\n // NOTE: if you decide to remove chain of events, thing again - that's unique feature of sprae, don't diminish your own value.\n // ona..onb\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(/\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = '') => (ctx.test = mods[mod]?.(ctx, ...param.split('-')) || ctx.test, '')\n );\n return ctx;\n });\n\n // single event\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0])\n\n // events cycler\n let startFn, nextFn, off, idx = 0\n const nextListener = (fn) => {\n off = addListener((e) => (\n off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : (startFn && nextListener(startFn))\n ), ctxs[idx]);\n }\n\n return () => (\n startFn = evaluate(state),\n !off && nextListener(startFn),\n () => startFn = null // nil startFn to autodispose chain\n )\n\n // add listener with the context\n function addListener(fn, { evt, target, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn)\n\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e))\n } catch (error) { err(error, `:on${evt}`, fn) }\n };\n\n target.addEventListener(evt, cb, opts)\n return () => target.removeEventListener(evt, cb, opts)\n };\n\n};\n\n// event modifiers\nconst mods = {\n // actions\n prevent(ctx) { ctx.prevent = true; },\n stop(ctx) { ctx.stop = true; },\n immediate(ctx) { ctx.immediate = true; },\n\n // options\n once(ctx) { ctx.once = true; },\n passive(ctx) { ctx.passive = true; },\n capture(ctx) { ctx.capture = true; },\n\n // target\n window(ctx) { ctx.target = window; },\n document(ctx) { ctx.target = document; },\n\n throttle(ctx, limit) { ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108); },\n debounce(ctx, wait) { 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\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};\n\n// key testers\nconst 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 === \"\u00A0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key),\n};\n\n// set attr\nexport const 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}\n\n// create delayed fns\nconst throttle = (fn, limit) => {\n let pause, planned,\n block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n // if event happened during blocked time, it schedules call by the end\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};\n\nconst debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\n\nexport const dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? '-' : '') + match.toLowerCase());\n}\n", "import sprae from \"../core.js\";\nimport { directive, parse } from \"../core.js\";\nimport { attr } from './default.js';\n\n// connect expr to element value\ndirective.value = (el, [getValue, setValue], state) => {\n const update =\n (el.type === \"text\" || el.type === \"\") ?\n (value) => el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)) :\n (el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\") ?\n (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart),\n (to = el.selectionEnd),\n el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)),\n from && el.setSelectionRange(from, to)\n ) :\n (el.type === \"checkbox\") ?\n (value) => (el.checked = value, attr(el, \"checked\", value)) :\n (el.type === \"select-one\") ?\n (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", '') : o.removeAttribute(\"selected\");\n el.value = value;\n } :\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 } :\n (value) => (el.value = value);\n\n // select options must be initialized before calling an update\n if (el.type?.startsWith('select')) sprae(el, state)\n\n // bind ui back to value\n const handleChange = el.type === 'checkbox' ? e => setValue(state, el.checked) : el.type === 'select-multiple' ? e => setValue(state, [...el.selectedOptions].map(o => o.value)) : e => setValue(state, el.value)\n\n el.oninput = el.onchange = handleChange; // hope user doesn't redefine these manually - it saves 5 loc\n\n return () => update(getValue(state));\n};\n\ndirective.value.parse = expr => {\n let evaluate = [parse(expr)]\n // catch wrong assigns like `123 = arguments[1]`, `foo?.bar = arguments[1]`\n try {\n const set = parse(`${expr}=__;`);\n // FIXME: if there's a simpler way to set value in justin?\n evaluate.push((state, value) => {\n state.__ = value\n let result = set(state, value)\n delete state.__\n return result\n })\n }\n catch (e) { }\n return evaluate\n}\n", "import { directive } from \"../core.js\";\n\ndirective.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n};\n", "import sprae from './core.js'\n\n// default directives\nimport './directive/if.js'\nimport './directive/each.js'\nimport './directive/ref.js'\nimport './directive/with.js'\nimport './directive/html.js'\nimport './directive/text.js'\nimport './directive/class.js'\nimport './directive/style.js'\nimport './directive/value.js'\nimport './directive/fx.js'\nimport './directive/default.js'\n\n// default compiler (indirect new Function to avoid detector)\nsprae.use({ compile: expr => sprae.constructor(`with (arguments[0]) { return ${expr} };`) })\n\nexport default sprae\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// ulive copy, stable minimal implementation\nlet current, batched;\n\nexport let signal = (v, s, obs = new Set) => (\n s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v\n },\n set value(val) {\n if (val === v) return\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub(); // notify effects\n },\n peek() { return v },\n },\n s.toJSON = s.then = s.toString = s.valueOf = () => s.value,\n s\n),\n effect = (fn, teardown, fx, deps) => (\n fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try { teardown = fn(); } finally { current = prev; }\n },\n deps = fx.deps = [],\n\n fx(),\n (dep) => { teardown?.call?.(); while (dep = deps.pop()) dep.delete(fx); }\n ),\n computed = (fn, s = signal(), c, e) => (\n c = {\n get value() {\n e ||= effect(() => s.value = fn());\n return s.value\n },\n peek: s.peek\n },\n c.toJSON = c.then = c.toString = c.valueOf = () => c.value,\n c\n ),\n batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = new Set;\n try { fn(); }\n finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n },\n untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n\n// signals adapter - allows switching signals implementation and not depend on core\n\nexport function use(s) {\n signal = s.signal\n effect = s.effect\n computed = s.computed\n batch = s.batch || (fn => fn())\n untracked = s.untracked || batch\n}\n", "// signals-based proxy\nimport { signal, computed, batch, untracked } from './signal.js'\n\nexport const _signals = Symbol('signals'), _change = Symbol('length');\n\n// object store is not lazy\nexport default function store(values, parent) {\n if (!values) return values\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // redirect for optimized array store\n if (Array.isArray(values)) return list(values)\n\n // ignore non-objects or custom objects\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n\n // NOTE: if you decide to unlazy values, think about large arrays - init upfront can be costly\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length)\n\n // proxy conducts prop access to signals\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), // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n // subscribe to length when object is spread\n _len.value\n return Reflect.ownKeys(signals);\n },\n })\n\n // init signals for values\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key)\n\n // getter turns into computed\n if (desc?.get) {\n // stash setter\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n }\n else {\n // init blank signal - make sure we don't take prototype one\n signals[key] = undefined\n set(signals, key, values[key]);\n }\n }\n\n return state\n}\n\n// length changing methods\nconst mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 }\n\n// array store - signals are lazy since arrays can be very large & expensive\nexport function list(values) {\n // track last accessed property to find out if .length was directly accessed from expression or via .push/etc method\n let lastProp\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // .length signal is stored separately, since it cannot be replaced on array\n let _len = signal(values.length),\n // gotta fill with null since proto methods like .reduce may fail\n signals = Array(values.length).fill();\n\n // proxy conducts prop access to signals\n const state = new Proxy(signals, {\n get(_, key) {\n // covers Symbol.isConcatSpreadable etc.\n if (typeof key === 'symbol') return key === _change ? _len : key === _signals ? signals : signals[key]\n\n // console.log('get', key)\n // if .length is read within .push/etc - peek signal to avoid recursive subscription\n if (key === 'length') return mut[lastProp] ? _len.peek() : _len.value;\n\n lastProp = key;\n\n if (signals[key]) return signals[key].valueOf()\n\n // I hope reading values here won't diverge from signals\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value\n },\n\n set(_, key, v) {\n // console.log('set', key, v)\n // .length\n if (key === 'length') {\n // force cleaning up tail\n for (let i = v, l = signals.length; i < l; i++) delete state[i]\n // .length = N directly\n _len.value = signals.length = v;\n return true\n }\n\n set(signals, key, v)\n\n // force changing length, if eg. a=[]; a[1]=1 - need to come after setting the item\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1\n\n return true\n },\n\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1),\n\n })\n\n return state\n}\n\n// set/update signal value\nfunction set(signals, key, v) {\n let s = signals[key]\n\n // untracked\n if (key[0] === '_') signals[key] = v\n // new property\n else if (!s) {\n // preserve signal value as is\n signals[key] = s = v?.peek ? v : signal(store(v))\n }\n // skip unchanged (although can be handled by last condition - we skip a few checks this way)\n else if (v === s.peek());\n // stashed _set for value with getter/setter\n else if (s._set) s._set(v)\n // patch array\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek()\n // if we update plain array (stored in signal) - take over value instead\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i]\n cur.length = l // forces deleting tail signals\n })\n })\n else {\n s.value = v\n }\n }\n // .x = y\n else {\n s.value = store(v)\n }\n}\n\n// delete signal\nfunction del(signals, key) {\n const s = signals[key], del = s[Symbol.dispose]\n if (del) delete s[Symbol.dispose]\n delete signals[key]\n del?.()\n}\n", "import { use, effect } from \"./signal.js\";\nimport store, { _signals } from './store.js';\n\n// polyfill\nconst _dispose = (Symbol.dispose ||= Symbol(\"dispose\"));\n\n\n// reserved directives - order matters!\nexport const directive = {};\n\n// every element that's in cache === directly spraed and un subsequent sprae is just updated (like each)\nexport const memo = new WeakMap();\n\n// sprae element: apply directives\nexport default function sprae(el, values) {\n // text nodes, comments etc\n if (!el?.childNodes) return\n\n // repeated call can be caused by :each with new objects with old keys needs an update\n if (memo.has(el)) {\n // we rewrite signals instead of update, because user should have what he provided\n return Object.assign(memo.get(el), values)\n }\n\n // take over existing state instead of creating clone\n const state = store(values || {}), disposes = []\n\n init(el);\n\n // if element was spraed by :with or :each instruction - skip, otherwise save\n if (!memo.has(el)) memo.set(el, state);\n\n // disposer unspraes all internal elements\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n }\n\n return state;\n\n function init(el, parent = el.parentNode) {\n if (!el.childNodes) return // ignore text nodes, comments etc\n\n // init generic-name attributes second\n for (let i = 0; i < el.attributes?.length;) {\n let attr = el.attributes[i];\n\n if (attr.name[0] === ':') {\n el.removeAttribute(attr.name);\n\n // multiple attributes like :id:for=\"\"\n let names = attr.name.slice(1).split(':')\n\n for (let name of names) {\n let dir = directive[name] || directive.default\n let evaluate = (dir.parse || parse)(attr.value)\n let fn = dir(el, evaluate, state, name);\n if (fn) disposes.push(effect(fn))\n disposes.push(() => el.setAttributeNode(attr)) // recover attribute\n }\n\n // stop if element was spraed by internal directive\n if (memo.has(el)) return el[_dispose] && disposes.push(el[_dispose])\n\n // stop if element is skipped (detached) like in case of :if or :each\n if (el.parentNode !== parent) return\n } else i++;\n }\n\n for (let child of [...el.childNodes]) init(child, el);\n };\n}\n\n\n// parse expression into evaluator fn\nconst evalMemo = {};\nexport const parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn\n\n // static-time errors\n try { fn = compile(expr) }\n catch (e) { err(e, dir, expr) }\n\n // runtime errors\n return evalMemo[expr] = fn\n}\n\n// wrapped call\nexport const err = (e, dir, expr = '') => {\n throw Object.assign(e, { message: `\u2234 ${e.message}\\n\\n${dir}${expr ? `=\"${expr}\"\\n\\n` : \"\"}`, expr })\n}\n\nexport let compile\n\n// configure signals/compile\n// it's more compact than using sprae.signal = signal etc.\nsprae.use = s => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n}\n\n\n// instantiated <template> fragment holder, like persisting fragment but with minimal API surface\nexport const frag = (tpl) => {\n if (!tpl.nodeType) return tpl // existing tpl\n\n let content = tpl.content.cloneNode(true),\n attributes = [...tpl.attributes],\n ref = document.createTextNode(''),\n // ensure at least one node\n childNodes = (content.append(ref), [...content.childNodes])\n\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return\n ref.before(el)\n content.append(...childNodes)\n },\n attributes,\n removeAttribute(name) { attributes.splice(attributes.findIndex(a => a.name === name), 1) },\n setAttributeNode() { }\n }\n}\n", "import sprae, { directive, memo, frag } from \"../core.js\";\n\n// :if is interchangeable with :each depending on order, :if :each or :each :if have different meanings\n// as for :if :with - :if must init first, since it is lazy, to avoid initializing component ahead of time by :with\n// we consider :with={x} :if={x} case insignificant\nconst _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling,\n holder = document.createTextNode(''),\n curEl, ifEl, elseEl;\n\n el.replaceWith(holder)\n\n ifEl = el.content ? frag(el) : el\n memo.set(ifEl, null) // mark all el as fake-spraed, because we have to sprae for real on insert\n\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n // if next is :else :if - leave it for its own :if handler\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null)\n }\n\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl\n if (curEl != newEl) {\n // disable effects on child elements to avoid internal effects from triggering on value changes when element's not matched\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl)\n memo.get(curEl) === null && memo.delete(curEl) // remove fake memo to sprae as new\n sprae(curEl, state)\n }\n }\n };\n};\n", "import sprae, { directive, frag, parse } from \"../core.js\";\nimport store, { _change, _signals } from \"../store.js\";\nimport { untracked, computed } from '../signal.js';\n\n\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n // we need :if to be able to replace holder instead of tpl for :if :each case\n const holder = (document.createTextNode(\"\"));\n tpl.replaceWith(holder);\n\n // we re-create items any time new items are produced\n let cur, keys, prevl = 0\n\n // separate computed effect reduces number of needed updates for the effect\n const items = computed(() => {\n keys = null\n let items = evaluate(state)\n if (typeof items === \"number\") items = Array.from({ length: items }, (_, i) => i + 1)\n if (items?.constructor === Object) keys = Object.keys(items), items = Object.values(items)\n return items || []\n })\n\n const update = () => {\n // NOTE: untracked avoids rerendering full list whenever internal items or props change\n untracked(() => {\n let i = 0, newItems = items.value, newl = newItems.length\n\n // plain array update, not store (signal with array) - updates full list\n if (cur && !(cur[_change])) {\n for (let s of cur[_signals] || []) { s[Symbol.dispose]() }\n cur = null, prevl = 0\n }\n\n // delete\n if (newl < prevl) {\n cur.length = newl\n }\n // update, append, init\n else {\n // init\n if (!cur) {\n cur = newItems\n }\n // update\n else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i]\n }\n }\n\n // append\n for (; i < newl; i++) {\n cur[i] = newItems[i]\n let idx = i,\n scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys ? keys[idx] : idx\n }, state),\n el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n\n holder.before(el.content || el);\n sprae(el, scope);\n\n // signal/holder disposal removes element\n ((cur[_signals] ||= [])[i] ||= {})[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove()\n };\n }\n }\n\n prevl = newl\n })\n }\n\n let planned = 0\n return () => {\n // subscribe to items change (.length) - we do it every time (not just on init) since preact unsubscribes unused signals\n items.value[_change]?.value\n\n // make first render immediately, debounce subsequent renders\n if (!planned) {\n update()\n queueMicrotask(() => (planned && update(), planned = 0))\n } else planned++\n }\n}\n\n\n// redefine parser to exclude `[a in] b`\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n\n return [itemVar, idxVar, parse(itemsExpr)]\n}\n", "import { directive } from \"../core.js\";\nimport { _change, _signals } from \"../store.js\";\n\n// ref must be last within primaries, since that must be skipped by :each, but before secondaries\ndirective.ref = (el, expr, state) => {\n state[expr] = el\n}\n\ndirective.ref.parse = expr => expr\n", "import sprae, { directive } from \"../core.js\";\nimport store, { _signals } from '../store.js';\n\ndirective.with = (el, evaluate, rootState) => {\n let state\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState))\n }\n};\n", "import sprae, { directive } from \"../core.js\";\n\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n\n if (!tpl) return\n\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n", "import { directive, frag } from \"../core.js\";\n\n// set text content\ndirective.text = (el, evaluate, state) => {\n // <template :text=\"a\"/> or previously initialized template\n if (el.content) el.replaceWith(el = frag(el).childNodes[0])\n\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.class = (el, evaluate, state) => {\n let cur = new Set\n return () => {\n let v = evaluate(state);\n let clsx = 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(v => v && clsx.add(v));\n else Object.entries(v).map(([k, v]) => v && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls); else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls)\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(';') ? '' : '; ') + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == '-' ? (el.style.setProperty(k, v[k])) : el.style[k] = v[k]\n }\n };\n};\n", "import { directive, err } from \"../core.js\";\n\n// set generic property directive\ndirective.default = (target, evaluate, state, name) => {\n // simple prop\n if (!name.startsWith('on')) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value)\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n\n // bind event to a target\n // NOTE: if you decide to remove chain of events, thing again - that's unique feature of sprae, don't diminish your own value.\n // ona..onb\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(/\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = '') => (ctx.test = mods[mod]?.(ctx, ...param.split('-')) || ctx.test, '')\n );\n return ctx;\n });\n\n // single event\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0])\n\n // events cycler\n let startFn, nextFn, off, idx = 0\n const nextListener = (fn) => {\n off = addListener((e) => (\n off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : (startFn && nextListener(startFn))\n ), ctxs[idx]);\n }\n\n return () => (\n startFn = evaluate(state),\n !off && nextListener(startFn),\n () => startFn = null // nil startFn to autodispose chain\n )\n\n // add listener with the context\n function addListener(fn, { evt, target, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn)\n\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e))\n } catch (error) { err(error, `:on${evt}`, fn) }\n };\n\n target.addEventListener(evt, cb, opts)\n return () => target.removeEventListener(evt, cb, opts)\n };\n\n};\n\n// event modifiers\nconst mods = {\n // actions\n prevent(ctx) { ctx.prevent = true; },\n stop(ctx) { ctx.stop = true; },\n immediate(ctx) { ctx.immediate = true; },\n\n // options\n once(ctx) { ctx.once = true; },\n passive(ctx) { ctx.passive = true; },\n capture(ctx) { ctx.capture = true; },\n\n // target\n window(ctx) { ctx.target = window; },\n document(ctx) { ctx.target = document; },\n parent(ctx) { ctx.target = ctx.target.parentNode; },\n\n throttle(ctx, limit) { ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108); },\n debounce(ctx, wait) { 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\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};\n\n// key testers\nconst 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 === \"\u00A0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key),\n};\n\n// set attr\nexport const 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}\n\n// create delayed fns\nconst throttle = (fn, limit) => {\n let pause, planned,\n block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n // if event happened during blocked time, it schedules call by the end\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};\n\nconst debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\n\nexport const dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? '-' : '') + match.toLowerCase());\n}\n", "import sprae from \"../core.js\";\nimport { directive, parse } from \"../core.js\";\nimport { attr } from './default.js';\n\n// connect expr to element value\ndirective.value = (el, [getValue, setValue], state) => {\n const update =\n (el.type === \"text\" || el.type === \"\") ?\n (value) => el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)) :\n (el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\") ?\n (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart),\n (to = el.selectionEnd),\n el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)),\n from && el.setSelectionRange(from, to)\n ) :\n (el.type === \"checkbox\") ?\n (value) => (el.checked = value, attr(el, \"checked\", value)) :\n (el.type === \"select-one\") ?\n (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", '') : o.removeAttribute(\"selected\");\n el.value = value;\n } :\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 } :\n (value) => (el.value = value);\n\n // select options must be initialized before calling an update\n if (el.type?.startsWith('select')) sprae(el, state)\n\n // bind ui back to value\n const handleChange = el.type === 'checkbox' ? e => setValue(state, el.checked) : el.type === 'select-multiple' ? e => setValue(state, [...el.selectedOptions].map(o => o.value)) : e => setValue(state, el.value)\n\n el.oninput = el.onchange = handleChange; // hope user doesn't redefine these manually - it saves 5 loc\n\n return () => update(getValue(state));\n};\n\ndirective.value.parse = expr => {\n let evaluate = [parse(expr)]\n // catch wrong assigns like `123 = arguments[1]`, `foo?.bar = arguments[1]`\n try {\n const set = parse(`${expr}=__;`);\n // FIXME: if there's a simpler way to set value in justin?\n evaluate.push((state, value) => {\n state.__ = value\n let result = set(state, value)\n delete state.__\n return result\n })\n }\n catch (e) { }\n return evaluate\n}\n", "import { directive } from \"../core.js\";\n\ndirective.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n};\n", "import sprae from './core.js'\n\n// default directives\nimport './directive/if.js'\nimport './directive/each.js'\nimport './directive/ref.js'\nimport './directive/with.js'\nimport './directive/html.js'\nimport './directive/text.js'\nimport './directive/class.js'\nimport './directive/style.js'\nimport './directive/value.js'\nimport './directive/fx.js'\nimport './directive/default.js'\n\n// default compiler (indirect new Function to avoid detector)\nsprae.use({ compile: expr => sprae.constructor(`with (arguments[0]) { return ${expr} };`) })\n\nexport default sprae\n"],
5
+ "mappings": "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",
6
6
  "names": ["del", "el", "attr", "keys", "items", "v", "target", "set"]
7
7
  }
package/dist/sprae.min.js CHANGED
@@ -1,5 +1,5 @@
1
- var _,N,x=(e,n,t=new Set)=>(n={get value(){return _?.deps.push(t.add(_)),e},set value(r){if(r!==e){e=r;for(let l of t)N?N.add(l):l()}},peek(){return e}},n.toJSON=n.then=n.toString=n.valueOf=()=>n.value,n),P=(e,n,t,r)=>(t=l=>{n?.call?.(),l=_,_=t;try{n=e()}finally{_=l}},r=t.deps=[],t(),l=>{for(n?.call?.();l=r.pop();)l.delete(t)}),L=(e,n=x(),t,r)=>(t={get value(){return r||(r=P(()=>n.value=e())),n.value},peek:n.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),D=e=>{let n=N;n||(N=new Set);try{e()}finally{if(!n){n=N,N=null;for(const t of n)t()}}},K=(e,n,t)=>(n=_,_=null,t=e(),_=n,t);function Z(e){x=e.signal,P=e.effect,L=e.computed,D=e.batch||(n=>n()),K=e.untracked||D}var k=Symbol("signals"),W=Symbol("length");function O(e,n){if(!e||e[k])return e;if(Array.isArray(e))return G(e);if(e.constructor!==Object||e[Symbol.toStringTag])return e;let t={...n?.[k]},r=x(Object.values(e).length);const l=new Proxy(t,{get:(s,i)=>i===W?r:i===k?t:t[i]?.valueOf(),set:(s,i,o,a)=>(a=t[i],I(t,i,o),a??++r.value,1),deleteProperty:(s,i)=>(t[i]&&(q(t,i),r.value--),1),ownKeys(){return r.value,Reflect.ownKeys(t)}});for(let s in e){const i=Object.getOwnPropertyDescriptor(e,s);i?.get?(t[s]=L(i.get.bind(l)))._set=i.set?.bind(l):(t[s]=void 0,I(t,s,e[s]))}return l}var z={push:1,pop:1,shift:1,unshift:1,splice:1};function G(e){let n;if(e[k])return e;let t=x(e.length),r=Array(e.length).fill();const l=new Proxy(r,{get(s,i){if(typeof i=="symbol")return i===W?t:i===k?r:r[i];if(i==="length")return z[n]?t.peek():t.value;if(n=i,r[i])return r[i].valueOf();if(i<r.length)return(r[i]=x(O(e[i]))).value},set(s,i,o){if(i==="length"){for(let a=o,h=r.length;a<h;a++)delete l[a];return t.value=r.length=o,!0}return I(r,i,o),i>=t.peek()&&(t.value=r.length=Number(i)+1),!0},deleteProperty:(s,i)=>(r[i]&&q(r,i),1)});return l}function I(e,n,t){let r=e[n];if(n[0]==="_")e[n]=t;else if(!r)e[n]=r=t?.peek?t:x(O(t));else if(t!==r.peek())if(r._set)r._set(t);else if(Array.isArray(t)&&Array.isArray(r.peek())){const l=r.peek();l[W]?K(()=>{D(()=>{let s=0,i=t.length;for(;s<i;s++)l[s]=t[s];l.length=i})}):r.value=t}else r.value=O(t)}function q(e,n){const t=e[n],r=t[Symbol.dispose];r&&delete t[Symbol.dispose],delete e[n],r?.()}var $=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),p={},y=new WeakMap;function g(e,n){if(!e?.childNodes)return;if(y.has(e))return Object.assign(y.get(e),n);const t=O(n||{}),r=[];return l(e),y.has(e)||y.set(e,t),e[$]=()=>{for(;r.length;)r.pop()();y.delete(e),e[$]=null},t;function l(s,i=s.parentNode){if(s.childNodes){for(let o=0;o<s.attributes?.length;){let a=s.attributes[o];if(a.name[0]===":"){s.removeAttribute(a.name);let h=a.name.slice(1).split(":");for(let v of h){let c=p[v]||p.default,u=(c.parse||T)(a.value),m=c(s,u,t,v);m&&r.push(P(m)),r.push(()=>s.setAttributeNode(a))}if(y.has(s))return s[$]&&r.push(s[$]);if(s.parentNode!==i)return}else o++}for(let o of[...s.childNodes])l(o,s)}}}var F={},T=(e,n,t)=>{if(t=F[e=e.trim()])return t;try{t=B(e)}catch(r){J(r,n,e)}return F[e]=t},J=(e,n,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
1
+ var _,N,O=(e,n,t=new Set)=>(n={get value(){return _?.deps.push(t.add(_)),e},set value(r){if(r!==e){e=r;for(let l of t)N?N.add(l):l()}},peek(){return e}},n.toJSON=n.then=n.toString=n.valueOf=()=>n.value,n),P=(e,n,t,r)=>(t=l=>{n?.call?.(),l=_,_=t;try{n=e()}finally{_=l}},r=t.deps=[],t(),l=>{for(n?.call?.();l=r.pop();)l.delete(t)}),L=(e,n=O(),t,r)=>(t={get value(){return r||(r=P(()=>n.value=e())),n.value},peek:n.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),D=e=>{let n=N;n||(N=new Set);try{e()}finally{if(!n){n=N,N=null;for(const t of n)t()}}},K=(e,n,t)=>(n=_,_=null,t=e(),_=n,t);function Z(e){O=e.signal,P=e.effect,L=e.computed,D=e.batch||(n=>n()),K=e.untracked||D}var k=Symbol("signals"),W=Symbol("length");function x(e,n){if(!e||e[k])return e;if(Array.isArray(e))return G(e);if(e.constructor!==Object||e[Symbol.toStringTag])return e;let t={...n?.[k]},r=O(Object.values(e).length);const l=new Proxy(t,{get:(s,i)=>i===W?r:i===k?t:t[i]?.valueOf(),set:(s,i,o,a)=>(a=t[i],I(t,i,o),a??++r.value,1),deleteProperty:(s,i)=>(t[i]&&(q(t,i),r.value--),1),ownKeys(){return r.value,Reflect.ownKeys(t)}});for(let s in e){const i=Object.getOwnPropertyDescriptor(e,s);i?.get?(t[s]=L(i.get.bind(l)))._set=i.set?.bind(l):(t[s]=void 0,I(t,s,e[s]))}return l}var z={push:1,pop:1,shift:1,unshift:1,splice:1};function G(e){let n;if(e[k])return e;let t=O(e.length),r=Array(e.length).fill();const l=new Proxy(r,{get(s,i){if(typeof i=="symbol")return i===W?t:i===k?r:r[i];if(i==="length")return z[n]?t.peek():t.value;if(n=i,r[i])return r[i].valueOf();if(i<r.length)return(r[i]=O(x(e[i]))).value},set(s,i,o){if(i==="length"){for(let a=o,h=r.length;a<h;a++)delete l[a];return t.value=r.length=o,!0}return I(r,i,o),i>=t.peek()&&(t.value=r.length=Number(i)+1),!0},deleteProperty:(s,i)=>(r[i]&&q(r,i),1)});return l}function I(e,n,t){let r=e[n];if(n[0]==="_")e[n]=t;else if(!r)e[n]=r=t?.peek?t:O(x(t));else if(t!==r.peek())if(r._set)r._set(t);else if(Array.isArray(t)&&Array.isArray(r.peek())){const l=r.peek();l[W]?K(()=>{D(()=>{let s=0,i=t.length;for(;s<i;s++)l[s]=t[s];l.length=i})}):r.value=t}else r.value=x(t)}function q(e,n){const t=e[n],r=t[Symbol.dispose];r&&delete t[Symbol.dispose],delete e[n],r?.()}var $=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),p={},y=new WeakMap;function g(e,n){if(!e?.childNodes)return;if(y.has(e))return Object.assign(y.get(e),n);const t=x(n||{}),r=[];return l(e),y.has(e)||y.set(e,t),e[$]=()=>{for(;r.length;)r.pop()();y.delete(e),e[$]=null},t;function l(s,i=s.parentNode){if(s.childNodes){for(let o=0;o<s.attributes?.length;){let a=s.attributes[o];if(a.name[0]===":"){s.removeAttribute(a.name);let h=a.name.slice(1).split(":");for(let v of h){let c=p[v]||p.default,u=(c.parse||T)(a.value),m=c(s,u,t,v);m&&r.push(P(m)),r.push(()=>s.setAttributeNode(a))}if(y.has(s))return s[$]&&r.push(s[$]);if(s.parentNode!==i)return}else o++}for(let o of[...s.childNodes])l(o,s)}}}var F={},T=(e,n,t)=>{if(t=F[e=e.trim()])return t;try{t=B(e)}catch(r){J(r,n,e)}return F[e]=t},J=(e,n,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
2
2
 
3
3
  ${n}${t?`="${t}"
4
4
 
5
- `:""}`,expr:t})},B;g.use=e=>{e.signal&&Z(e),e.compile&&(B=e.compile)};var j=e=>{if(!e.nodeType)return e;let n=e.content.cloneNode(!0),t=[...e.attributes],r=document.createTextNode(""),l=(n.append(r),[...n.childNodes]);return{childNodes:l,content:n,remove:()=>n.append(...l),replaceWith(s){s!==r&&(r.before(s),n.append(...l))},attributes:t,removeAttribute(s){t.splice(t.findIndex(i=>i.name===s),1)},setAttributeNode(){}}},H=Symbol("if");p.if=(e,n,t)=>{let r=e.nextElementSibling,l=document.createTextNode(""),s,i,o;return e.replaceWith(l),i=e.content?j(e):e,y.set(i,null),r?.hasAttribute(":else")&&(r.removeAttribute(":else"),r.hasAttribute(":if")||(r.remove(),o=r.content?j(r):r,y.set(o,null))),()=>{const a=n(t)?i:e[H]?null:o;r&&(r[H]=a===i),s!=a&&(s&&(s.remove(),s[Symbol.dispose]?.()),(s=a)&&(l.before(s.content||s),y.get(s)===null&&y.delete(s),g(s,t)))}},p.each=(e,[n,t,r],l)=>{const s=document.createTextNode("");e.replaceWith(s);let i,o,a=0;const h=L(()=>{o=null;let u=r(l);return typeof u=="number"&&(u=Array.from({length:u},(m,d)=>d+1)),u?.constructor===Object&&(o=Object.keys(u),u=Object.values(u)),u||[]}),v=()=>{K(()=>{var u,m;let d=0,b=h.value,w=b.length;if(i&&!i[W]){for(let A of i[k]||[])A[Symbol.dispose]();i=null,a=0}if(w<a)i.length=w;else{if(!i)i=b;else for(;d<a;d++)i[d]=b[d];for(;d<w;d++){i[d]=b[d];let A=d,C=O({[n]:i[k]?.[A]||i[A],[t]:o?o[A]:A},l),S=e.content?j(e):e.cloneNode(!0);s.before(S.content||S),g(S,C),((m=i[u=k]||(i[u]=[]))[d]||(m[d]={}))[Symbol.dispose]=()=>{S[Symbol.dispose]?.(),S.remove()}}}a=w})};let c=0;return()=>{h.value[W]?.value,c?c++:(v(),queueMicrotask(()=>(c&&v(),c=0)))}},p.each.parse=e=>{let[n,t]=e.split(/\s+in\s+/),[r,l="$"]=n.split(/\s*,\s*/);return[r,l,T(t)]},p.ref=(e,n,t)=>{t[n]=e},p.ref.parse=e=>e,p.with=(e,n,t)=>{let r;return()=>{let l=n(t);g(e,r?l:r=O(l,t))}},p.html=(e,n,t)=>{let r=n(t);if(!r)return;let l=(r.content||r).cloneNode(!0);e.replaceChildren(l),g(e,t)},p.text=(e,n,t)=>(e.content&&e.replaceWith(e=j(e).childNodes[0]),()=>{let r=n(t);e.textContent=r??""}),p.class=(e,n,t)=>{let r=new Set;return()=>{let l=n(t),s=new Set;l&&(typeof l=="string"?l.split(" ").map(i=>s.add(i)):Array.isArray(l)?l.map(i=>i&&s.add(i)):Object.entries(l).map(([i,o])=>o&&s.add(i)));for(let i of r)s.has(i)?s.delete(i):e.classList.remove(i);for(let i of r=s)e.classList.add(i)}},p.style=(e,n,t)=>{let r=e.getAttribute("style");return()=>{let l=n(t);if(typeof l=="string")e.setAttribute("style",r+(r.endsWith(";")?"":"; ")+l);else{r&&e.setAttribute("style",r);for(let s in l)s[0]=="-"?e.style.setProperty(s,l[s]):e.style[s]=l[s]}}},p.default=(e,n,t,r)=>{if(!r.startsWith("on"))return()=>{let c=n(t);if(r)M(e,r,c);else for(let u in c)M(e,Y(u),c[u])};const l=r.split("..").map(c=>{let u={evt:"",target:e,test:()=>!0};return u.evt=(c.startsWith("on")?c.slice(2):c).replace(/\.(\w+)?-?([-\w]+)?/g,(m,d,b="")=>(u.test=Q[d]?.(u,...b.split("-"))||u.test,"")),u});if(l.length==1)return()=>v(n(t),l[0]);let s,i,o,a=0;const h=c=>{o=v(u=>(o(),i=c?.(u),(a=++a%l.length)?h(i):s&&h(s)),l[a])};return()=>(s=n(t),!o&&h(s),()=>s=null);function v(c,{evt:u,target:m,test:d,defer:b,stop:w,prevent:A,immediate:C,...S}){b&&(c=b(c));const R=E=>{try{d(E)&&(w&&(C?E.stopImmediatePropagation():E.stopPropagation()),A&&E.preventDefault(),c?.(E))}catch(X){J(X,`:on${u}`,c)}};return m.addEventListener(u,R,S),()=>m.removeEventListener(u,R,S)}};var Q={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},throttle(e,n){e.defer=t=>U(t,n?Number(n)||0:108)},debounce(e,n){e.defer=t=>V(t,n?Number(n)||0:108)},outside:e=>n=>{let t=e.target;return!(t.contains(n.target)||n.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>n=>n.target===e.target,ctrl:(e,...n)=>t=>f.ctrl(t)&&n.every(r=>f[r]?f[r](t):t.key===r),shift:(e,...n)=>t=>f.shift(t)&&n.every(r=>f[r]?f[r](t):t.key===r),alt:(e,...n)=>t=>f.alt(t)&&n.every(r=>f[r]?f[r](t):t.key===r),meta:(e,...n)=>t=>f.meta(t)&&n.every(r=>f[r]?f[r](t):t.key===r),arrow:()=>f.arrow,enter:()=>f.enter,esc:()=>f.esc,tab:()=>f.tab,space:()=>f.space,delete:()=>f.delete,digit:()=>f.digit,letter:()=>f.letter,char:()=>f.char},f={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},M=(e,n,t)=>{t==null||t===!1?e.removeAttribute(n):e.setAttribute(n,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},U=(e,n)=>{let t,r,l=s=>{t=!0,setTimeout(()=>{if(t=!1,r)return r=!1,l(s),e(s)},n)};return s=>t?r=!0:(l(s),e(s))},V=(e,n)=>{let t;return r=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(r)},n)}},Y=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(n,t)=>(t?"-":"")+n.toLowerCase());p.value=(e,[n,t],r)=>{const l=e.type==="text"||e.type===""?i=>e.setAttribute("value",e.value=i??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(i,o,a)=>(o=e.selectionStart,a=e.selectionEnd,e.setAttribute("value",e.value=i??""),o&&e.setSelectionRange(o,a)):e.type==="checkbox"?i=>(e.checked=i,M(e,"checked",i)):e.type==="select-one"?i=>{for(let o of e.options)o.value==i?o.setAttribute("selected",""):o.removeAttribute("selected");e.value=i}:e.type==="select-multiple"?i=>{for(let o of e.options)o.removeAttribute("selected");for(let o of i)e.querySelector(`[value="${o}"]`).setAttribute("selected","")}:i=>e.value=i;e.type?.startsWith("select")&&g(e,r);const s=e.type==="checkbox"?i=>t(r,e.checked):e.type==="select-multiple"?i=>t(r,[...e.selectedOptions].map(o=>o.value)):i=>t(r,e.value);return e.oninput=e.onchange=s,()=>l(n(r))},p.value.parse=e=>{let n=[T(e)];try{const t=T(`${e}=__;`);n.push((r,l)=>{r.__=l;let s=t(r,l);return delete r.__,s})}catch{}return n},p.fx=(e,n,t)=>()=>n(t),g.use({compile:e=>g.constructor(`with (arguments[0]) { return ${e} };`)});var ee=g;export{ee as default};
5
+ `:""}`,expr:t})},B;g.use=e=>{e.signal&&Z(e),e.compile&&(B=e.compile)};var j=e=>{if(!e.nodeType)return e;let n=e.content.cloneNode(!0),t=[...e.attributes],r=document.createTextNode(""),l=(n.append(r),[...n.childNodes]);return{childNodes:l,content:n,remove:()=>n.append(...l),replaceWith(s){s!==r&&(r.before(s),n.append(...l))},attributes:t,removeAttribute(s){t.splice(t.findIndex(i=>i.name===s),1)},setAttributeNode(){}}},H=Symbol("if");p.if=(e,n,t)=>{let r=e.nextElementSibling,l=document.createTextNode(""),s,i,o;return e.replaceWith(l),i=e.content?j(e):e,y.set(i,null),r?.hasAttribute(":else")&&(r.removeAttribute(":else"),r.hasAttribute(":if")||(r.remove(),o=r.content?j(r):r,y.set(o,null))),()=>{const a=n(t)?i:e[H]?null:o;r&&(r[H]=a===i),s!=a&&(s&&(s.remove(),s[Symbol.dispose]?.()),(s=a)&&(l.before(s.content||s),y.get(s)===null&&y.delete(s),g(s,t)))}},p.each=(e,[n,t,r],l)=>{const s=document.createTextNode("");e.replaceWith(s);let i,o,a=0;const h=L(()=>{o=null;let u=r(l);return typeof u=="number"&&(u=Array.from({length:u},(m,d)=>d+1)),u?.constructor===Object&&(o=Object.keys(u),u=Object.values(u)),u||[]}),v=()=>{K(()=>{var u,m;let d=0,b=h.value,w=b.length;if(i&&!i[W]){for(let A of i[k]||[])A[Symbol.dispose]();i=null,a=0}if(w<a)i.length=w;else{if(!i)i=b;else for(;d<a;d++)i[d]=b[d];for(;d<w;d++){i[d]=b[d];let A=d,C=x({[n]:i[k]?.[A]||i[A],[t]:o?o[A]:A},l),S=e.content?j(e):e.cloneNode(!0);s.before(S.content||S),g(S,C),((m=i[u=k]||(i[u]=[]))[d]||(m[d]={}))[Symbol.dispose]=()=>{S[Symbol.dispose]?.(),S.remove()}}}a=w})};let c=0;return()=>{h.value[W]?.value,c?c++:(v(),queueMicrotask(()=>(c&&v(),c=0)))}},p.each.parse=e=>{let[n,t]=e.split(/\s+in\s+/),[r,l="$"]=n.split(/\s*,\s*/);return[r,l,T(t)]},p.ref=(e,n,t)=>{t[n]=e},p.ref.parse=e=>e,p.with=(e,n,t)=>{let r;return()=>{let l=n(t);g(e,r?l:r=x(l,t))}},p.html=(e,n,t)=>{let r=n(t);if(!r)return;let l=(r.content||r).cloneNode(!0);e.replaceChildren(l),g(e,t)},p.text=(e,n,t)=>(e.content&&e.replaceWith(e=j(e).childNodes[0]),()=>{let r=n(t);e.textContent=r??""}),p.class=(e,n,t)=>{let r=new Set;return()=>{let l=n(t),s=new Set;l&&(typeof l=="string"?l.split(" ").map(i=>s.add(i)):Array.isArray(l)?l.map(i=>i&&s.add(i)):Object.entries(l).map(([i,o])=>o&&s.add(i)));for(let i of r)s.has(i)?s.delete(i):e.classList.remove(i);for(let i of r=s)e.classList.add(i)}},p.style=(e,n,t)=>{let r=e.getAttribute("style");return()=>{let l=n(t);if(typeof l=="string")e.setAttribute("style",r+(r.endsWith(";")?"":"; ")+l);else{r&&e.setAttribute("style",r);for(let s in l)s[0]=="-"?e.style.setProperty(s,l[s]):e.style[s]=l[s]}}},p.default=(e,n,t,r)=>{if(!r.startsWith("on"))return()=>{let c=n(t);if(r)M(e,r,c);else for(let u in c)M(e,Y(u),c[u])};const l=r.split("..").map(c=>{let u={evt:"",target:e,test:()=>!0};return u.evt=(c.startsWith("on")?c.slice(2):c).replace(/\.(\w+)?-?([-\w]+)?/g,(m,d,b="")=>(u.test=Q[d]?.(u,...b.split("-"))||u.test,"")),u});if(l.length==1)return()=>v(n(t),l[0]);let s,i,o,a=0;const h=c=>{o=v(u=>(o(),i=c?.(u),(a=++a%l.length)?h(i):s&&h(s)),l[a])};return()=>(s=n(t),!o&&h(s),()=>s=null);function v(c,{evt:u,target:m,test:d,defer:b,stop:w,prevent:A,immediate:C,...S}){b&&(c=b(c));const R=E=>{try{d(E)&&(w&&(C?E.stopImmediatePropagation():E.stopPropagation()),A&&E.preventDefault(),c?.(E))}catch(X){J(X,`:on${u}`,c)}};return m.addEventListener(u,R,S),()=>m.removeEventListener(u,R,S)}};var Q={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},parent(e){e.target=e.target.parentNode},throttle(e,n){e.defer=t=>U(t,n?Number(n)||0:108)},debounce(e,n){e.defer=t=>V(t,n?Number(n)||0:108)},outside:e=>n=>{let t=e.target;return!(t.contains(n.target)||n.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>n=>n.target===e.target,ctrl:(e,...n)=>t=>f.ctrl(t)&&n.every(r=>f[r]?f[r](t):t.key===r),shift:(e,...n)=>t=>f.shift(t)&&n.every(r=>f[r]?f[r](t):t.key===r),alt:(e,...n)=>t=>f.alt(t)&&n.every(r=>f[r]?f[r](t):t.key===r),meta:(e,...n)=>t=>f.meta(t)&&n.every(r=>f[r]?f[r](t):t.key===r),arrow:()=>f.arrow,enter:()=>f.enter,esc:()=>f.esc,tab:()=>f.tab,space:()=>f.space,delete:()=>f.delete,digit:()=>f.digit,letter:()=>f.letter,char:()=>f.char},f={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},M=(e,n,t)=>{t==null||t===!1?e.removeAttribute(n):e.setAttribute(n,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},U=(e,n)=>{let t,r,l=s=>{t=!0,setTimeout(()=>{if(t=!1,r)return r=!1,l(s),e(s)},n)};return s=>t?r=!0:(l(s),e(s))},V=(e,n)=>{let t;return r=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(r)},n)}},Y=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(n,t)=>(t?"-":"")+n.toLowerCase());p.value=(e,[n,t],r)=>{const l=e.type==="text"||e.type===""?i=>e.setAttribute("value",e.value=i??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(i,o,a)=>(o=e.selectionStart,a=e.selectionEnd,e.setAttribute("value",e.value=i??""),o&&e.setSelectionRange(o,a)):e.type==="checkbox"?i=>(e.checked=i,M(e,"checked",i)):e.type==="select-one"?i=>{for(let o of e.options)o.value==i?o.setAttribute("selected",""):o.removeAttribute("selected");e.value=i}:e.type==="select-multiple"?i=>{for(let o of e.options)o.removeAttribute("selected");for(let o of i)e.querySelector(`[value="${o}"]`).setAttribute("selected","")}:i=>e.value=i;e.type?.startsWith("select")&&g(e,r);const s=e.type==="checkbox"?i=>t(r,e.checked):e.type==="select-multiple"?i=>t(r,[...e.selectedOptions].map(o=>o.value)):i=>t(r,e.value);return e.oninput=e.onchange=s,()=>l(n(r))},p.value.parse=e=>{let n=[T(e)];try{const t=T(`${e}=__;`);n.push((r,l)=>{r.__=l;let s=t(r,l);return delete r.__,s})}catch{}return n},p.fx=(e,n,t)=>()=>n(t),g.use({compile:e=>g.constructor(`with (arguments[0]) { return ${e} };`)});var ee=g;export{ee as default};
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["sprae.js"],
4
- "sourcesContent": ["// signal.js\nvar current;\nvar batched;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = /* @__PURE__ */ new Set();\n try {\n fn();\n } finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n};\nvar untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || ((fn) => fn());\n untracked = s.untracked || batch;\n}\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"length\");\nfunction store(values, parent) {\n if (!values) return values;\n if (values[_signals]) return values;\n if (Array.isArray(values)) return list(values);\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);\n const state = new Proxy(signals, {\n get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),\n set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),\n // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n _len.value;\n return Reflect.ownKeys(signals);\n }\n });\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key);\n if (desc?.get) {\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n } else {\n signals[key] = void 0;\n set(signals, key, values[key]);\n }\n }\n return state;\n}\nvar mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n });\n else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar directive = {};\nvar memo = /* @__PURE__ */ new WeakMap();\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init(el);\n if (!memo.has(el)) memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n };\n return state;\n function init(el2, parent = el2.parentNode) {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i];\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n let names = attr2.name.slice(1).split(\":\");\n for (let name of names) {\n let dir = directive[name] || directive.default;\n let evaluate = (dir.parse || parse)(attr2.value);\n let fn = dir(el2, evaluate, state, name);\n if (fn) disposes.push(effect(fn));\n disposes.push(() => el2.setAttributeNode(attr2));\n }\n if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent) return;\n } else i++;\n }\n for (let child of [...el2.childNodes]) init(child, el2);\n }\n ;\n}\nvar evalMemo = {};\nvar parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n};\nvar err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n },\n setAttributeNode() {\n }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling, holder = document.createTextNode(\"\"), curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n memo.set(ifEl, null);\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);\n }\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n memo.get(curEl) === null && memo.delete(curEl);\n sprae(curEl, state);\n }\n }\n };\n};\n\n// directive/each.js\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n let cur, keys2, prevl = 0;\n const items = computed(() => {\n keys2 = null;\n let items2 = evaluate(state);\n if (typeof items2 === \"number\") items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object) keys2 = Object.keys(items2), items2 = Object.values(items2);\n return items2 || [];\n });\n const update = () => {\n untracked(() => {\n var _a, _b;\n let i = 0, newItems = items.value, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) {\n s[Symbol.dispose]();\n }\n cur = null, prevl = 0;\n }\n if (newl < prevl) {\n cur.length = newl;\n } else {\n if (!cur) {\n cur = newItems;\n } else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i];\n }\n }\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n });\n };\n let planned = 0;\n return () => {\n items.value[_change]?.value;\n if (!planned) {\n update();\n queueMicrotask(() => (planned && update(), planned = 0));\n } else planned++;\n };\n};\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n return [itemVar, idxVar, parse(itemsExpr)];\n};\n\n// directive/ref.js\ndirective.ref = (el, expr, state) => {\n state[expr] = el;\n};\ndirective.ref.parse = (expr) => expr;\n\n// directive/with.js\ndirective.with = (el, evaluate, rootState) => {\n let state;\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState));\n };\n};\n\n// directive/html.js\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl) return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n\n// directive/text.js\ndirective.text = (el, evaluate, state) => {\n if (el.content) el.replaceWith(el = frag(el).childNodes[0]);\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n};\n\n// directive/class.js\ndirective.class = (el, evaluate, state) => {\n let cur = /* @__PURE__ */ new Set();\n return () => {\n let v = evaluate(state);\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n };\n};\n\n// directive/style.js\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n };\n};\n\n// directive/default.js\ndirective.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\")) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value);\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return () => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null);\n function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n }\n ;\n};\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndirective.value = (el, [getValue, setValue], state) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n if (el.type?.startsWith(\"select\")) sprae(el, state);\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : el.type === \"select-multiple\" ? (e) => setValue(state, [...el.selectedOptions].map((o) => o.value)) : (e) => setValue(state, el.value);\n el.oninput = el.onchange = handleChange;\n return () => update(getValue(state));\n};\ndirective.value.parse = (expr) => {\n let evaluate = [parse(expr)];\n try {\n const set2 = parse(`${expr}=__;`);\n evaluate.push((state, value) => {\n state.__ = value;\n let result = set2(state, value);\n delete state.__;\n return result;\n });\n } catch (e) {\n }\n return evaluate;\n};\n\n// directive/fx.js\ndirective.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n};\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// signal.js\nvar current;\nvar batched;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = /* @__PURE__ */ new Set();\n try {\n fn();\n } finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n};\nvar untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || ((fn) => fn());\n untracked = s.untracked || batch;\n}\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"length\");\nfunction store(values, parent) {\n if (!values) return values;\n if (values[_signals]) return values;\n if (Array.isArray(values)) return list(values);\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);\n const state = new Proxy(signals, {\n get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),\n set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),\n // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n _len.value;\n return Reflect.ownKeys(signals);\n }\n });\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key);\n if (desc?.get) {\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n } else {\n signals[key] = void 0;\n set(signals, key, values[key]);\n }\n }\n return state;\n}\nvar mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n });\n else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar directive = {};\nvar memo = /* @__PURE__ */ new WeakMap();\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init(el);\n if (!memo.has(el)) memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n };\n return state;\n function init(el2, parent = el2.parentNode) {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i];\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n let names = attr2.name.slice(1).split(\":\");\n for (let name of names) {\n let dir = directive[name] || directive.default;\n let evaluate = (dir.parse || parse)(attr2.value);\n let fn = dir(el2, evaluate, state, name);\n if (fn) disposes.push(effect(fn));\n disposes.push(() => el2.setAttributeNode(attr2));\n }\n if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent) return;\n } else i++;\n }\n for (let child of [...el2.childNodes]) init(child, el2);\n }\n ;\n}\nvar evalMemo = {};\nvar parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n};\nvar err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n },\n setAttributeNode() {\n }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling, holder = document.createTextNode(\"\"), curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n memo.set(ifEl, null);\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);\n }\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n memo.get(curEl) === null && memo.delete(curEl);\n sprae(curEl, state);\n }\n }\n };\n};\n\n// directive/each.js\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n let cur, keys2, prevl = 0;\n const items = computed(() => {\n keys2 = null;\n let items2 = evaluate(state);\n if (typeof items2 === \"number\") items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object) keys2 = Object.keys(items2), items2 = Object.values(items2);\n return items2 || [];\n });\n const update = () => {\n untracked(() => {\n var _a, _b;\n let i = 0, newItems = items.value, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) {\n s[Symbol.dispose]();\n }\n cur = null, prevl = 0;\n }\n if (newl < prevl) {\n cur.length = newl;\n } else {\n if (!cur) {\n cur = newItems;\n } else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i];\n }\n }\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n });\n };\n let planned = 0;\n return () => {\n items.value[_change]?.value;\n if (!planned) {\n update();\n queueMicrotask(() => (planned && update(), planned = 0));\n } else planned++;\n };\n};\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n return [itemVar, idxVar, parse(itemsExpr)];\n};\n\n// directive/ref.js\ndirective.ref = (el, expr, state) => {\n state[expr] = el;\n};\ndirective.ref.parse = (expr) => expr;\n\n// directive/with.js\ndirective.with = (el, evaluate, rootState) => {\n let state;\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState));\n };\n};\n\n// directive/html.js\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl) return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n\n// directive/text.js\ndirective.text = (el, evaluate, state) => {\n if (el.content) el.replaceWith(el = frag(el).childNodes[0]);\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n};\n\n// directive/class.js\ndirective.class = (el, evaluate, state) => {\n let cur = /* @__PURE__ */ new Set();\n return () => {\n let v = evaluate(state);\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n };\n};\n\n// directive/style.js\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n };\n};\n\n// directive/default.js\ndirective.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\")) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value);\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return () => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null);\n function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n }\n ;\n};\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n 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 attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndirective.value = (el, [getValue, setValue], state) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n if (el.type?.startsWith(\"select\")) sprae(el, state);\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : el.type === \"select-multiple\" ? (e) => setValue(state, [...el.selectedOptions].map((o) => o.value)) : (e) => setValue(state, el.value);\n el.oninput = el.onchange = handleChange;\n return () => update(getValue(state));\n};\ndirective.value.parse = (expr) => {\n let evaluate = [parse(expr)];\n try {\n const set2 = parse(`${expr}=__;`);\n evaluate.push((state, value) => {\n state.__ = value;\n let result = set2(state, value);\n delete state.__;\n return result;\n });\n } catch (e) {\n }\n return evaluate;\n};\n\n// directive/fx.js\ndirective.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n};\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["current", "batched", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "fxs", "untracked", "use", "_signals", "_change", "store", "values", "parent", "list", "signals", "_len", "state", "_", "key", "set", "del", "desc", "mut", "lastProp", "i", "l", "cur", "del2", "_dispose", "directive", "memo", "sprae", "el", "disposes", "init", "el2", "attr2", "names", "name", "dir", "evaluate", "parse", "child", "evalMemo", "expr", "compile", "err", "frag", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "next", "holder", "curEl", "ifEl", "elseEl", "newEl", "itemVar", "idxVar", "keys2", "prevl", "items", "items2", "update", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "leftSide", "itemsExpr", "rootState", "value", "clsx", "cls", "v2", "k", "initStyle", "target", "attr", "dashcase", "ctxs", "ctx", "match", "mod", "param", "mods", "addListener", "startFn", "nextFn", "off", "nextListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "limit", "throttle", "wait", "debounce", "keys", "p", "pause", "block", "timeout", "str", "getValue", "setValue", "from", "to", "handleChange", "set2", "result", "sprae_default"]
7
7
  }
package/dist/sprae.umd.js CHANGED
@@ -527,6 +527,9 @@ var init_default = __esm({
527
527
  document(ctx) {
528
528
  ctx.target = document;
529
529
  },
530
+ parent(ctx) {
531
+ ctx.target = ctx.target.parentNode;
532
+ },
530
533
  throttle(ctx, limit) {
531
534
  ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);
532
535
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../signal.js", "../store.js", "../core.js", "../directive/if.js", "../directive/each.js", "../directive/ref.js", "../directive/with.js", "../directive/html.js", "../directive/text.js", "../directive/class.js", "../directive/style.js", "../directive/default.js", "../directive/value.js", "../directive/fx.js", "../sprae.js", "../directive/data.js", "../directive/aria.js", "../sprae.umd.cjs"],
4
- "sourcesContent": ["// ulive copy, stable minimal implementation\nlet current, batched;\n\nexport let signal = (v, s, obs = new Set) => (\n s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v\n },\n set value(val) {\n if (val === v) return\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub(); // notify effects\n },\n peek() { return v },\n },\n s.toJSON = s.then = s.toString = s.valueOf = () => s.value,\n s\n),\n effect = (fn, teardown, fx, deps) => (\n fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try { teardown = fn(); } finally { current = prev; }\n },\n deps = fx.deps = [],\n\n fx(),\n (dep) => { teardown?.call?.(); while (dep = deps.pop()) dep.delete(fx); }\n ),\n computed = (fn, s = signal(), c, e) => (\n c = {\n get value() {\n e ||= effect(() => s.value = fn());\n return s.value\n },\n peek: s.peek\n },\n c.toJSON = c.then = c.toString = c.valueOf = () => c.value,\n c\n ),\n batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = new Set;\n try { fn(); }\n finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n },\n untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n\n// signals adapter - allows switching signals implementation and not depend on core\n\nexport function use(s) {\n signal = s.signal\n effect = s.effect\n computed = s.computed\n batch = s.batch || (fn => fn())\n untracked = s.untracked || batch\n}\n", "// signals-based proxy\nimport { signal, computed, batch, untracked } from './signal.js'\n\nexport const _signals = Symbol('signals'), _change = Symbol('length');\n\n// object store is not lazy\nexport default function store(values, parent) {\n if (!values) return values\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // redirect for optimized array store\n if (Array.isArray(values)) return list(values)\n\n // ignore non-objects or custom objects\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n\n // NOTE: if you decide to unlazy values, think about large arrays - init upfront can be costly\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length)\n\n // proxy conducts prop access to signals\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), // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n // subscribe to length when object is spread\n _len.value\n return Reflect.ownKeys(signals);\n },\n })\n\n // init signals for values\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key)\n\n // getter turns into computed\n if (desc?.get) {\n // stash setter\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n }\n else {\n // init blank signal - make sure we don't take prototype one\n signals[key] = undefined\n set(signals, key, values[key]);\n }\n }\n\n return state\n}\n\n// length changing methods\nconst mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 }\n\n// array store - signals are lazy since arrays can be very large & expensive\nexport function list(values) {\n // track last accessed property to find out if .length was directly accessed from expression or via .push/etc method\n let lastProp\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // .length signal is stored separately, since it cannot be replaced on array\n let _len = signal(values.length),\n // gotta fill with null since proto methods like .reduce may fail\n signals = Array(values.length).fill();\n\n // proxy conducts prop access to signals\n const state = new Proxy(signals, {\n get(_, key) {\n // covers Symbol.isConcatSpreadable etc.\n if (typeof key === 'symbol') return key === _change ? _len : key === _signals ? signals : signals[key]\n\n // console.log('get', key)\n // if .length is read within .push/etc - peek signal to avoid recursive subscription\n if (key === 'length') return mut[lastProp] ? _len.peek() : _len.value;\n\n lastProp = key;\n\n if (signals[key]) return signals[key].valueOf()\n\n // I hope reading values here won't diverge from signals\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value\n },\n\n set(_, key, v) {\n // console.log('set', key, v)\n // .length\n if (key === 'length') {\n // force cleaning up tail\n for (let i = v, l = signals.length; i < l; i++) delete state[i]\n // .length = N directly\n _len.value = signals.length = v;\n return true\n }\n\n set(signals, key, v)\n\n // force changing length, if eg. a=[]; a[1]=1 - need to come after setting the item\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1\n\n return true\n },\n\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1),\n\n })\n\n return state\n}\n\n// set/update signal value\nfunction set(signals, key, v) {\n let s = signals[key]\n\n // untracked\n if (key[0] === '_') signals[key] = v\n // new property\n else if (!s) {\n // preserve signal value as is\n signals[key] = s = v?.peek ? v : signal(store(v))\n }\n // skip unchanged (although can be handled by last condition - we skip a few checks this way)\n else if (v === s.peek());\n // stashed _set for value with getter/setter\n else if (s._set) s._set(v)\n // patch array\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek()\n // if we update plain array (stored in signal) - take over value instead\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i]\n cur.length = l // forces deleting tail signals\n })\n })\n else {\n s.value = v\n }\n }\n // .x = y\n else {\n s.value = store(v)\n }\n}\n\n// delete signal\nfunction del(signals, key) {\n const s = signals[key], del = s[Symbol.dispose]\n if (del) delete s[Symbol.dispose]\n delete signals[key]\n del?.()\n}\n", "import { use, effect } from \"./signal.js\";\nimport store, { _signals } from './store.js';\n\n// polyfill\nconst _dispose = (Symbol.dispose ||= Symbol(\"dispose\"));\n\n\n// reserved directives - order matters!\nexport const directive = {};\n\n// every element that's in cache === directly spraed and un subsequent sprae is just updated (like each)\nexport const memo = new WeakMap();\n\n// sprae element: apply directives\nexport default function sprae(el, values) {\n // text nodes, comments etc\n if (!el?.childNodes) return\n\n // repeated call can be caused by :each with new objects with old keys needs an update\n if (memo.has(el)) {\n // we rewrite signals instead of update, because user should have what he provided\n return Object.assign(memo.get(el), values)\n }\n\n // take over existing state instead of creating clone\n const state = store(values || {}), disposes = []\n\n init(el);\n\n // if element was spraed by :with or :each instruction - skip, otherwise save\n if (!memo.has(el)) memo.set(el, state);\n\n // disposer unspraes all internal elements\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n }\n\n return state;\n\n function init(el, parent = el.parentNode) {\n if (!el.childNodes) return // ignore text nodes, comments etc\n\n // init generic-name attributes second\n for (let i = 0; i < el.attributes?.length;) {\n let attr = el.attributes[i];\n\n if (attr.name[0] === ':') {\n el.removeAttribute(attr.name);\n\n // multiple attributes like :id:for=\"\"\n let names = attr.name.slice(1).split(':')\n\n for (let name of names) {\n let dir = directive[name] || directive.default\n let evaluate = (dir.parse || parse)(attr.value)\n let fn = dir(el, evaluate, state, name);\n if (fn) disposes.push(effect(fn))\n disposes.push(() => el.setAttributeNode(attr)) // recover attribute\n }\n\n // stop if element was spraed by internal directive\n if (memo.has(el)) return el[_dispose] && disposes.push(el[_dispose])\n\n // stop if element is skipped (detached) like in case of :if or :each\n if (el.parentNode !== parent) return\n } else i++;\n }\n\n for (let child of [...el.childNodes]) init(child, el);\n };\n}\n\n\n// parse expression into evaluator fn\nconst evalMemo = {};\nexport const parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn\n\n // static-time errors\n try { fn = compile(expr) }\n catch (e) { err(e, dir, expr) }\n\n // runtime errors\n return evalMemo[expr] = fn\n}\n\n// wrapped call\nexport const err = (e, dir, expr = '') => {\n throw Object.assign(e, { message: `\u2234 ${e.message}\\n\\n${dir}${expr ? `=\"${expr}\"\\n\\n` : \"\"}`, expr })\n}\n\nexport let compile\n\n// configure signals/compile\n// it's more compact than using sprae.signal = signal etc.\nsprae.use = s => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n}\n\n\n// instantiated <template> fragment holder, like persisting fragment but with minimal API surface\nexport const frag = (tpl) => {\n if (!tpl.nodeType) return tpl // existing tpl\n\n let content = tpl.content.cloneNode(true),\n attributes = [...tpl.attributes],\n ref = document.createTextNode(''),\n // ensure at least one node\n childNodes = (content.append(ref), [...content.childNodes])\n\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return\n ref.before(el)\n content.append(...childNodes)\n },\n attributes,\n removeAttribute(name) { attributes.splice(attributes.findIndex(a => a.name === name), 1) },\n setAttributeNode() { }\n }\n}\n", "import sprae, { directive, memo, frag } from \"../core.js\";\n\n// :if is interchangeable with :each depending on order, :if :each or :each :if have different meanings\n// as for :if :with - :if must init first, since it is lazy, to avoid initializing component ahead of time by :with\n// we consider :with={x} :if={x} case insignificant\nconst _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling,\n holder = document.createTextNode(''),\n curEl, ifEl, elseEl;\n\n el.replaceWith(holder)\n\n ifEl = el.content ? frag(el) : el\n memo.set(ifEl, null) // mark all el as fake-spraed, because we have to sprae for real on insert\n\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n // if next is :else :if - leave it for its own :if handler\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null)\n }\n\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl\n if (curEl != newEl) {\n // disable effects on child elements to avoid internal effects from triggering on value changes when element's not matched\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl)\n memo.get(curEl) === null && memo.delete(curEl) // remove fake memo to sprae as new\n sprae(curEl, state)\n }\n }\n };\n};\n", "import sprae, { directive, frag, parse } from \"../core.js\";\nimport store, { _change, _signals } from \"../store.js\";\nimport { untracked, computed } from '../signal.js';\n\n\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n // we need :if to be able to replace holder instead of tpl for :if :each case\n const holder = (document.createTextNode(\"\"));\n tpl.replaceWith(holder);\n\n // we re-create items any time new items are produced\n let cur, keys, prevl = 0\n\n // separate computed effect reduces number of needed updates for the effect\n const items = computed(() => {\n keys = null\n let items = evaluate(state)\n if (typeof items === \"number\") items = Array.from({ length: items }, (_, i) => i + 1)\n if (items?.constructor === Object) keys = Object.keys(items), items = Object.values(items)\n return items || []\n })\n\n const update = () => {\n // NOTE: untracked avoids rerendering full list whenever internal items or props change\n untracked(() => {\n let i = 0, newItems = items.value, newl = newItems.length\n\n // plain array update, not store (signal with array) - updates full list\n if (cur && !(cur[_change])) {\n for (let s of cur[_signals] || []) { s[Symbol.dispose]() }\n cur = null, prevl = 0\n }\n\n // delete\n if (newl < prevl) {\n cur.length = newl\n }\n // update, append, init\n else {\n // init\n if (!cur) {\n cur = newItems\n }\n // update\n else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i]\n }\n }\n\n // append\n for (; i < newl; i++) {\n cur[i] = newItems[i]\n let idx = i,\n scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys ? keys[idx] : idx\n }, state),\n el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n\n holder.before(el.content || el);\n sprae(el, scope);\n\n // signal/holder disposal removes element\n ((cur[_signals] ||= [])[i] ||= {})[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove()\n };\n }\n }\n\n prevl = newl\n })\n }\n\n let planned = 0\n return () => {\n // subscribe to items change (.length) - we do it every time (not just on init) since preact unsubscribes unused signals\n items.value[_change]?.value\n\n // make first render immediately, debounce subsequent renders\n if (!planned) {\n update()\n queueMicrotask(() => (planned && update(), planned = 0))\n } else planned++\n }\n}\n\n\n// redefine parser to exclude `[a in] b`\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n\n return [itemVar, idxVar, parse(itemsExpr)]\n}\n", "import { directive } from \"../core.js\";\nimport { _change, _signals } from \"../store.js\";\n\n// ref must be last within primaries, since that must be skipped by :each, but before secondaries\ndirective.ref = (el, expr, state) => {\n state[expr] = el\n}\n\ndirective.ref.parse = expr => expr\n", "import sprae, { directive } from \"../core.js\";\nimport store, { _signals } from '../store.js';\n\ndirective.with = (el, evaluate, rootState) => {\n let state\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState))\n }\n};\n", "import sprae, { directive } from \"../core.js\";\n\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n\n if (!tpl) return\n\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n", "import { directive, frag } from \"../core.js\";\n\n// set text content\ndirective.text = (el, evaluate, state) => {\n // <template :text=\"a\"/> or previously initialized template\n if (el.content) el.replaceWith(el = frag(el).childNodes[0])\n\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.class = (el, evaluate, state) => {\n let cur = new Set\n return () => {\n let v = evaluate(state);\n let clsx = 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(v => v && clsx.add(v));\n else Object.entries(v).map(([k, v]) => v && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls); else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls)\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(';') ? '' : '; ') + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == '-' ? (el.style.setProperty(k, v[k])) : el.style[k] = v[k]\n }\n };\n};\n", "import { directive, err } from \"../core.js\";\n\n// set generic property directive\ndirective.default = (target, evaluate, state, name) => {\n // simple prop\n if (!name.startsWith('on')) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value)\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n\n // bind event to a target\n // NOTE: if you decide to remove chain of events, thing again - that's unique feature of sprae, don't diminish your own value.\n // ona..onb\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(/\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = '') => (ctx.test = mods[mod]?.(ctx, ...param.split('-')) || ctx.test, '')\n );\n return ctx;\n });\n\n // single event\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0])\n\n // events cycler\n let startFn, nextFn, off, idx = 0\n const nextListener = (fn) => {\n off = addListener((e) => (\n off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : (startFn && nextListener(startFn))\n ), ctxs[idx]);\n }\n\n return () => (\n startFn = evaluate(state),\n !off && nextListener(startFn),\n () => startFn = null // nil startFn to autodispose chain\n )\n\n // add listener with the context\n function addListener(fn, { evt, target, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn)\n\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e))\n } catch (error) { err(error, `:on${evt}`, fn) }\n };\n\n target.addEventListener(evt, cb, opts)\n return () => target.removeEventListener(evt, cb, opts)\n };\n\n};\n\n// event modifiers\nconst mods = {\n // actions\n prevent(ctx) { ctx.prevent = true; },\n stop(ctx) { ctx.stop = true; },\n immediate(ctx) { ctx.immediate = true; },\n\n // options\n once(ctx) { ctx.once = true; },\n passive(ctx) { ctx.passive = true; },\n capture(ctx) { ctx.capture = true; },\n\n // target\n window(ctx) { ctx.target = window; },\n document(ctx) { ctx.target = document; },\n\n throttle(ctx, limit) { ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108); },\n debounce(ctx, wait) { 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\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};\n\n// key testers\nconst 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 === \"\u00A0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key),\n};\n\n// set attr\nexport const 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}\n\n// create delayed fns\nconst throttle = (fn, limit) => {\n let pause, planned,\n block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n // if event happened during blocked time, it schedules call by the end\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};\n\nconst debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\n\nexport const dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? '-' : '') + match.toLowerCase());\n}\n", "import sprae from \"../core.js\";\nimport { directive, parse } from \"../core.js\";\nimport { attr } from './default.js';\n\n// connect expr to element value\ndirective.value = (el, [getValue, setValue], state) => {\n const update =\n (el.type === \"text\" || el.type === \"\") ?\n (value) => el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)) :\n (el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\") ?\n (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart),\n (to = el.selectionEnd),\n el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)),\n from && el.setSelectionRange(from, to)\n ) :\n (el.type === \"checkbox\") ?\n (value) => (el.checked = value, attr(el, \"checked\", value)) :\n (el.type === \"select-one\") ?\n (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", '') : o.removeAttribute(\"selected\");\n el.value = value;\n } :\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 } :\n (value) => (el.value = value);\n\n // select options must be initialized before calling an update\n if (el.type?.startsWith('select')) sprae(el, state)\n\n // bind ui back to value\n const handleChange = el.type === 'checkbox' ? e => setValue(state, el.checked) : el.type === 'select-multiple' ? e => setValue(state, [...el.selectedOptions].map(o => o.value)) : e => setValue(state, el.value)\n\n el.oninput = el.onchange = handleChange; // hope user doesn't redefine these manually - it saves 5 loc\n\n return () => update(getValue(state));\n};\n\ndirective.value.parse = expr => {\n let evaluate = [parse(expr)]\n // catch wrong assigns like `123 = arguments[1]`, `foo?.bar = arguments[1]`\n try {\n const set = parse(`${expr}=__;`);\n // FIXME: if there's a simpler way to set value in justin?\n evaluate.push((state, value) => {\n state.__ = value\n let result = set(state, value)\n delete state.__\n return result\n })\n }\n catch (e) { }\n return evaluate\n}\n", "import { directive } from \"../core.js\";\n\ndirective.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n};\n", "import sprae from './core.js'\n\n// default directives\nimport './directive/if.js'\nimport './directive/each.js'\nimport './directive/ref.js'\nimport './directive/with.js'\nimport './directive/html.js'\nimport './directive/text.js'\nimport './directive/class.js'\nimport './directive/style.js'\nimport './directive/value.js'\nimport './directive/fx.js'\nimport './directive/default.js'\n\n// default compiler (indirect new Function to avoid detector)\nsprae.use({ compile: expr => sprae.constructor(`with (arguments[0]) { return ${expr} };`) })\n\nexport default sprae\n", "import { directive } from \"../core.js\";\n\ndirective['data'] = (el, evaluate, state) => {\n return () => {\n let value = evaluate(state)\n for (let key in value) el.dataset[key] = value[key];\n }\n}\n", "import { directive } from \"../core.js\";\nimport { attr, dashcase } from './default.js'\n\ndirective['aria'] = (el, evaluate, state) => {\n const update = (value) => {\n for (let key in value) attr(el, 'aria-' + dashcase(key), value[key] == null ? null : value[key] + '');\n }\n return () => update(evaluate(state))\n}\n", "// autonomous standalone sprae version - expected to run via CDN, CJS or AMD\n\nconst { default: sprae } = require(\"./sprae.js\");\n\n// include everything\nrequire('./directive/data.js');\nrequire('./directive/aria.js');\nrequire('./directive/html.js');\n\n// expose global\nmodule.exports = sprae\n\n// autoinit if wanted\nconst init = document.currentScript?.getAttribute('init') || null\nif (init) sprae(document.documentElement, JSON.parse(init));\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// ulive copy, stable minimal implementation\nlet current, batched;\n\nexport let signal = (v, s, obs = new Set) => (\n s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v\n },\n set value(val) {\n if (val === v) return\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub(); // notify effects\n },\n peek() { return v },\n },\n s.toJSON = s.then = s.toString = s.valueOf = () => s.value,\n s\n),\n effect = (fn, teardown, fx, deps) => (\n fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try { teardown = fn(); } finally { current = prev; }\n },\n deps = fx.deps = [],\n\n fx(),\n (dep) => { teardown?.call?.(); while (dep = deps.pop()) dep.delete(fx); }\n ),\n computed = (fn, s = signal(), c, e) => (\n c = {\n get value() {\n e ||= effect(() => s.value = fn());\n return s.value\n },\n peek: s.peek\n },\n c.toJSON = c.then = c.toString = c.valueOf = () => c.value,\n c\n ),\n batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = new Set;\n try { fn(); }\n finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n },\n untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n\n// signals adapter - allows switching signals implementation and not depend on core\n\nexport function use(s) {\n signal = s.signal\n effect = s.effect\n computed = s.computed\n batch = s.batch || (fn => fn())\n untracked = s.untracked || batch\n}\n", "// signals-based proxy\nimport { signal, computed, batch, untracked } from './signal.js'\n\nexport const _signals = Symbol('signals'), _change = Symbol('length');\n\n// object store is not lazy\nexport default function store(values, parent) {\n if (!values) return values\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // redirect for optimized array store\n if (Array.isArray(values)) return list(values)\n\n // ignore non-objects or custom objects\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n\n // NOTE: if you decide to unlazy values, think about large arrays - init upfront can be costly\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length)\n\n // proxy conducts prop access to signals\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), // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),\n ownKeys() {\n // subscribe to length when object is spread\n _len.value\n return Reflect.ownKeys(signals);\n },\n })\n\n // init signals for values\n for (let key in values) {\n const desc = Object.getOwnPropertyDescriptor(values, key)\n\n // getter turns into computed\n if (desc?.get) {\n // stash setter\n (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);\n }\n else {\n // init blank signal - make sure we don't take prototype one\n signals[key] = undefined\n set(signals, key, values[key]);\n }\n }\n\n return state\n}\n\n// length changing methods\nconst mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 }\n\n// array store - signals are lazy since arrays can be very large & expensive\nexport function list(values) {\n // track last accessed property to find out if .length was directly accessed from expression or via .push/etc method\n let lastProp\n\n // ignore existing state as argument\n if (values[_signals]) return values;\n\n // .length signal is stored separately, since it cannot be replaced on array\n let _len = signal(values.length),\n // gotta fill with null since proto methods like .reduce may fail\n signals = Array(values.length).fill();\n\n // proxy conducts prop access to signals\n const state = new Proxy(signals, {\n get(_, key) {\n // covers Symbol.isConcatSpreadable etc.\n if (typeof key === 'symbol') return key === _change ? _len : key === _signals ? signals : signals[key]\n\n // console.log('get', key)\n // if .length is read within .push/etc - peek signal to avoid recursive subscription\n if (key === 'length') return mut[lastProp] ? _len.peek() : _len.value;\n\n lastProp = key;\n\n if (signals[key]) return signals[key].valueOf()\n\n // I hope reading values here won't diverge from signals\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value\n },\n\n set(_, key, v) {\n // console.log('set', key, v)\n // .length\n if (key === 'length') {\n // force cleaning up tail\n for (let i = v, l = signals.length; i < l; i++) delete state[i]\n // .length = N directly\n _len.value = signals.length = v;\n return true\n }\n\n set(signals, key, v)\n\n // force changing length, if eg. a=[]; a[1]=1 - need to come after setting the item\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1\n\n return true\n },\n\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1),\n\n })\n\n return state\n}\n\n// set/update signal value\nfunction set(signals, key, v) {\n let s = signals[key]\n\n // untracked\n if (key[0] === '_') signals[key] = v\n // new property\n else if (!s) {\n // preserve signal value as is\n signals[key] = s = v?.peek ? v : signal(store(v))\n }\n // skip unchanged (although can be handled by last condition - we skip a few checks this way)\n else if (v === s.peek());\n // stashed _set for value with getter/setter\n else if (s._set) s._set(v)\n // patch array\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek()\n // if we update plain array (stored in signal) - take over value instead\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i]\n cur.length = l // forces deleting tail signals\n })\n })\n else {\n s.value = v\n }\n }\n // .x = y\n else {\n s.value = store(v)\n }\n}\n\n// delete signal\nfunction del(signals, key) {\n const s = signals[key], del = s[Symbol.dispose]\n if (del) delete s[Symbol.dispose]\n delete signals[key]\n del?.()\n}\n", "import { use, effect } from \"./signal.js\";\nimport store, { _signals } from './store.js';\n\n// polyfill\nconst _dispose = (Symbol.dispose ||= Symbol(\"dispose\"));\n\n\n// reserved directives - order matters!\nexport const directive = {};\n\n// every element that's in cache === directly spraed and un subsequent sprae is just updated (like each)\nexport const memo = new WeakMap();\n\n// sprae element: apply directives\nexport default function sprae(el, values) {\n // text nodes, comments etc\n if (!el?.childNodes) return\n\n // repeated call can be caused by :each with new objects with old keys needs an update\n if (memo.has(el)) {\n // we rewrite signals instead of update, because user should have what he provided\n return Object.assign(memo.get(el), values)\n }\n\n // take over existing state instead of creating clone\n const state = store(values || {}), disposes = []\n\n init(el);\n\n // if element was spraed by :with or :each instruction - skip, otherwise save\n if (!memo.has(el)) memo.set(el, state);\n\n // disposer unspraes all internal elements\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n }\n\n return state;\n\n function init(el, parent = el.parentNode) {\n if (!el.childNodes) return // ignore text nodes, comments etc\n\n // init generic-name attributes second\n for (let i = 0; i < el.attributes?.length;) {\n let attr = el.attributes[i];\n\n if (attr.name[0] === ':') {\n el.removeAttribute(attr.name);\n\n // multiple attributes like :id:for=\"\"\n let names = attr.name.slice(1).split(':')\n\n for (let name of names) {\n let dir = directive[name] || directive.default\n let evaluate = (dir.parse || parse)(attr.value)\n let fn = dir(el, evaluate, state, name);\n if (fn) disposes.push(effect(fn))\n disposes.push(() => el.setAttributeNode(attr)) // recover attribute\n }\n\n // stop if element was spraed by internal directive\n if (memo.has(el)) return el[_dispose] && disposes.push(el[_dispose])\n\n // stop if element is skipped (detached) like in case of :if or :each\n if (el.parentNode !== parent) return\n } else i++;\n }\n\n for (let child of [...el.childNodes]) init(child, el);\n };\n}\n\n\n// parse expression into evaluator fn\nconst evalMemo = {};\nexport const parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn\n\n // static-time errors\n try { fn = compile(expr) }\n catch (e) { err(e, dir, expr) }\n\n // runtime errors\n return evalMemo[expr] = fn\n}\n\n// wrapped call\nexport const err = (e, dir, expr = '') => {\n throw Object.assign(e, { message: `\u2234 ${e.message}\\n\\n${dir}${expr ? `=\"${expr}\"\\n\\n` : \"\"}`, expr })\n}\n\nexport let compile\n\n// configure signals/compile\n// it's more compact than using sprae.signal = signal etc.\nsprae.use = s => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n}\n\n\n// instantiated <template> fragment holder, like persisting fragment but with minimal API surface\nexport const frag = (tpl) => {\n if (!tpl.nodeType) return tpl // existing tpl\n\n let content = tpl.content.cloneNode(true),\n attributes = [...tpl.attributes],\n ref = document.createTextNode(''),\n // ensure at least one node\n childNodes = (content.append(ref), [...content.childNodes])\n\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return\n ref.before(el)\n content.append(...childNodes)\n },\n attributes,\n removeAttribute(name) { attributes.splice(attributes.findIndex(a => a.name === name), 1) },\n setAttributeNode() { }\n }\n}\n", "import sprae, { directive, memo, frag } from \"../core.js\";\n\n// :if is interchangeable with :each depending on order, :if :each or :each :if have different meanings\n// as for :if :with - :if must init first, since it is lazy, to avoid initializing component ahead of time by :with\n// we consider :with={x} :if={x} case insignificant\nconst _prevIf = Symbol(\"if\");\ndirective.if = (el, evaluate, state) => {\n let next = el.nextElementSibling,\n holder = document.createTextNode(''),\n curEl, ifEl, elseEl;\n\n el.replaceWith(holder)\n\n ifEl = el.content ? frag(el) : el\n memo.set(ifEl, null) // mark all el as fake-spraed, because we have to sprae for real on insert\n\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n // if next is :else :if - leave it for its own :if handler\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null)\n }\n\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl\n if (curEl != newEl) {\n // disable effects on child elements to avoid internal effects from triggering on value changes when element's not matched\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl)\n memo.get(curEl) === null && memo.delete(curEl) // remove fake memo to sprae as new\n sprae(curEl, state)\n }\n }\n };\n};\n", "import sprae, { directive, frag, parse } from \"../core.js\";\nimport store, { _change, _signals } from \"../store.js\";\nimport { untracked, computed } from '../signal.js';\n\n\ndirective.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n // we need :if to be able to replace holder instead of tpl for :if :each case\n const holder = (document.createTextNode(\"\"));\n tpl.replaceWith(holder);\n\n // we re-create items any time new items are produced\n let cur, keys, prevl = 0\n\n // separate computed effect reduces number of needed updates for the effect\n const items = computed(() => {\n keys = null\n let items = evaluate(state)\n if (typeof items === \"number\") items = Array.from({ length: items }, (_, i) => i + 1)\n if (items?.constructor === Object) keys = Object.keys(items), items = Object.values(items)\n return items || []\n })\n\n const update = () => {\n // NOTE: untracked avoids rerendering full list whenever internal items or props change\n untracked(() => {\n let i = 0, newItems = items.value, newl = newItems.length\n\n // plain array update, not store (signal with array) - updates full list\n if (cur && !(cur[_change])) {\n for (let s of cur[_signals] || []) { s[Symbol.dispose]() }\n cur = null, prevl = 0\n }\n\n // delete\n if (newl < prevl) {\n cur.length = newl\n }\n // update, append, init\n else {\n // init\n if (!cur) {\n cur = newItems\n }\n // update\n else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i]\n }\n }\n\n // append\n for (; i < newl; i++) {\n cur[i] = newItems[i]\n let idx = i,\n scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys ? keys[idx] : idx\n }, state),\n el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n\n holder.before(el.content || el);\n sprae(el, scope);\n\n // signal/holder disposal removes element\n ((cur[_signals] ||= [])[i] ||= {})[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove()\n };\n }\n }\n\n prevl = newl\n })\n }\n\n let planned = 0\n return () => {\n // subscribe to items change (.length) - we do it every time (not just on init) since preact unsubscribes unused signals\n items.value[_change]?.value\n\n // make first render immediately, debounce subsequent renders\n if (!planned) {\n update()\n queueMicrotask(() => (planned && update(), planned = 0))\n } else planned++\n }\n}\n\n\n// redefine parser to exclude `[a in] b`\ndirective.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n\n return [itemVar, idxVar, parse(itemsExpr)]\n}\n", "import { directive } from \"../core.js\";\nimport { _change, _signals } from \"../store.js\";\n\n// ref must be last within primaries, since that must be skipped by :each, but before secondaries\ndirective.ref = (el, expr, state) => {\n state[expr] = el\n}\n\ndirective.ref.parse = expr => expr\n", "import sprae, { directive } from \"../core.js\";\nimport store, { _signals } from '../store.js';\n\ndirective.with = (el, evaluate, rootState) => {\n let state\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState))\n }\n};\n", "import sprae, { directive } from \"../core.js\";\n\ndirective.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n\n if (!tpl) return\n\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n};\n", "import { directive, frag } from \"../core.js\";\n\n// set text content\ndirective.text = (el, evaluate, state) => {\n // <template :text=\"a\"/> or previously initialized template\n if (el.content) el.replaceWith(el = frag(el).childNodes[0])\n\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.class = (el, evaluate, state) => {\n let cur = new Set\n return () => {\n let v = evaluate(state);\n let clsx = 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(v => v && clsx.add(v));\n else Object.entries(v).map(([k, v]) => v && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls); else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls)\n };\n};\n", "import { directive } from \"../core.js\";\n\ndirective.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(';') ? '' : '; ') + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == '-' ? (el.style.setProperty(k, v[k])) : el.style[k] = v[k]\n }\n };\n};\n", "import { directive, err } from \"../core.js\";\n\n// set generic property directive\ndirective.default = (target, evaluate, state, name) => {\n // simple prop\n if (!name.startsWith('on')) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value)\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n\n // bind event to a target\n // NOTE: if you decide to remove chain of events, thing again - that's unique feature of sprae, don't diminish your own value.\n // ona..onb\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(/\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = '') => (ctx.test = mods[mod]?.(ctx, ...param.split('-')) || ctx.test, '')\n );\n return ctx;\n });\n\n // single event\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0])\n\n // events cycler\n let startFn, nextFn, off, idx = 0\n const nextListener = (fn) => {\n off = addListener((e) => (\n off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : (startFn && nextListener(startFn))\n ), ctxs[idx]);\n }\n\n return () => (\n startFn = evaluate(state),\n !off && nextListener(startFn),\n () => startFn = null // nil startFn to autodispose chain\n )\n\n // add listener with the context\n function addListener(fn, { evt, target, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn)\n\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e))\n } catch (error) { err(error, `:on${evt}`, fn) }\n };\n\n target.addEventListener(evt, cb, opts)\n return () => target.removeEventListener(evt, cb, opts)\n };\n\n};\n\n// event modifiers\nconst mods = {\n // actions\n prevent(ctx) { ctx.prevent = true; },\n stop(ctx) { ctx.stop = true; },\n immediate(ctx) { ctx.immediate = true; },\n\n // options\n once(ctx) { ctx.once = true; },\n passive(ctx) { ctx.passive = true; },\n capture(ctx) { ctx.capture = true; },\n\n // target\n window(ctx) { ctx.target = window; },\n document(ctx) { ctx.target = document; },\n parent(ctx) { ctx.target = ctx.target.parentNode; },\n\n throttle(ctx, limit) { ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108); },\n debounce(ctx, wait) { 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\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};\n\n// key testers\nconst 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 === \"\u00A0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key),\n};\n\n// set attr\nexport const 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}\n\n// create delayed fns\nconst throttle = (fn, limit) => {\n let pause, planned,\n block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n // if event happened during blocked time, it schedules call by the end\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};\n\nconst debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\n\nexport const dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? '-' : '') + match.toLowerCase());\n}\n", "import sprae from \"../core.js\";\nimport { directive, parse } from \"../core.js\";\nimport { attr } from './default.js';\n\n// connect expr to element value\ndirective.value = (el, [getValue, setValue], state) => {\n const update =\n (el.type === \"text\" || el.type === \"\") ?\n (value) => el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)) :\n (el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\") ?\n (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart),\n (to = el.selectionEnd),\n el.setAttribute(\"value\", (el.value = value == null ? \"\" : value)),\n from && el.setSelectionRange(from, to)\n ) :\n (el.type === \"checkbox\") ?\n (value) => (el.checked = value, attr(el, \"checked\", value)) :\n (el.type === \"select-one\") ?\n (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", '') : o.removeAttribute(\"selected\");\n el.value = value;\n } :\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 } :\n (value) => (el.value = value);\n\n // select options must be initialized before calling an update\n if (el.type?.startsWith('select')) sprae(el, state)\n\n // bind ui back to value\n const handleChange = el.type === 'checkbox' ? e => setValue(state, el.checked) : el.type === 'select-multiple' ? e => setValue(state, [...el.selectedOptions].map(o => o.value)) : e => setValue(state, el.value)\n\n el.oninput = el.onchange = handleChange; // hope user doesn't redefine these manually - it saves 5 loc\n\n return () => update(getValue(state));\n};\n\ndirective.value.parse = expr => {\n let evaluate = [parse(expr)]\n // catch wrong assigns like `123 = arguments[1]`, `foo?.bar = arguments[1]`\n try {\n const set = parse(`${expr}=__;`);\n // FIXME: if there's a simpler way to set value in justin?\n evaluate.push((state, value) => {\n state.__ = value\n let result = set(state, value)\n delete state.__\n return result\n })\n }\n catch (e) { }\n return evaluate\n}\n", "import { directive } from \"../core.js\";\n\ndirective.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n};\n", "import sprae from './core.js'\n\n// default directives\nimport './directive/if.js'\nimport './directive/each.js'\nimport './directive/ref.js'\nimport './directive/with.js'\nimport './directive/html.js'\nimport './directive/text.js'\nimport './directive/class.js'\nimport './directive/style.js'\nimport './directive/value.js'\nimport './directive/fx.js'\nimport './directive/default.js'\n\n// default compiler (indirect new Function to avoid detector)\nsprae.use({ compile: expr => sprae.constructor(`with (arguments[0]) { return ${expr} };`) })\n\nexport default sprae\n", "import { directive } from \"../core.js\";\n\ndirective['data'] = (el, evaluate, state) => {\n return () => {\n let value = evaluate(state)\n for (let key in value) el.dataset[key] = value[key];\n }\n}\n", "import { directive } from \"../core.js\";\nimport { attr, dashcase } from './default.js'\n\ndirective['aria'] = (el, evaluate, state) => {\n const update = (value) => {\n for (let key in value) attr(el, 'aria-' + dashcase(key), value[key] == null ? null : value[key] + '');\n }\n return () => update(evaluate(state))\n}\n", "// autonomous standalone sprae version - expected to run via CDN, CJS or AMD\n\nconst { default: sprae } = require(\"./sprae.js\");\n\n// include everything\nrequire('./directive/data.js');\nrequire('./directive/aria.js');\nrequire('./directive/html.js');\n\n// expose global\nmodule.exports = sprae\n\n// autoinit if wanted\nconst init = document.currentScript?.getAttribute('init') || null\nif (init) sprae(document.documentElement, JSON.parse(init));\n"],
5
+ "mappings": "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",
6
6
  "names": ["del", "init", "el", "attr", "keys", "items", "v", "target", "set", "sprae"]
7
7
  }
@@ -1,5 +1,5 @@
1
- (function(W,b){typeof exports=="object"&&typeof module=="object"?module.exports=b():typeof define=="function"&&define.amd?define("sprae",[],b):typeof exports=="object"?exports.sprae=b():W.sprae=b()})(typeof self<"u"?self:typeof globalThis<"u"?globalThis:void 0,()=>{var W={},b={exports:W},F=Object.defineProperty,fe=Object.getOwnPropertyDescriptor,V=Object.getOwnPropertyNames,de=Object.prototype.hasOwnProperty,p=(e,r)=>function(){return e&&(r=(0,e[V(e)[0]])(e=0)),r},pe=(e,r)=>{for(var t in r)F(e,t,{get:r[t],enumerable:!0})},ye=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of V(r))!de.call(e,s)&&s!==t&&F(e,s,{get:()=>r[s],enumerable:!(i=fe(r,s))||i.enumerable});return e},he=e=>ye(F({},"__esModule",{value:!0}),e);function me(e){k=e.signal,M=e.effect,I=e.computed,J=e.batch||(r=>r()),R=e.untracked||J}var x,N,k,M,I,J,R,B=p({"signal.js"(){k=(e,r,t=new Set)=>(r={get value(){return x?.deps.push(t.add(x)),e},set value(i){if(i!==e){e=i;for(let s of t)N?N.add(s):s()}},peek(){return e}},r.toJSON=r.then=r.toString=r.valueOf=()=>r.value,r),M=(e,r,t,i)=>(t=s=>{r?.call?.(),s=x,x=t;try{r=e()}finally{x=s}},i=t.deps=[],t(),s=>{for(r?.call?.();s=i.pop();)s.delete(t)}),I=(e,r=k(),t,i)=>(t={get value(){return i||(i=M(()=>r.value=e())),r.value},peek:r.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),J=e=>{let r=N;r||(N=new Set);try{e()}finally{if(!r){r=N,N=null;for(const t of r)t()}}},R=(e,r,t)=>(r=x,x=null,t=e(),x=r,t)}});function P(e,r){if(!e||e[_])return e;if(Array.isArray(e))return be(e);if(e.constructor!==Object||e[Symbol.toStringTag])return e;let t={...r?.[_]},i=k(Object.values(e).length);const s=new Proxy(t,{get:(o,n)=>n===E?i:n===_?t:t[n]?.valueOf(),set:(o,n,a,l)=>(l=t[n],H(t,n,a),l??++i.value,1),deleteProperty:(o,n)=>(t[n]&&(Y(t,n),i.value--),1),ownKeys(){return i.value,Reflect.ownKeys(t)}});for(let o in e){const n=Object.getOwnPropertyDescriptor(e,o);n?.get?(t[o]=I(n.get.bind(s)))._set=n.set?.bind(s):(t[o]=void 0,H(t,o,e[o]))}return s}function be(e){let r;if(e[_])return e;let t=k(e.length),i=Array(e.length).fill();const s=new Proxy(i,{get(o,n){if(typeof n=="symbol")return n===E?t:n===_?i:i[n];if(n==="length")return ee[r]?t.peek():t.value;if(r=n,i[n])return i[n].valueOf();if(n<i.length)return(i[n]=k(P(e[n]))).value},set(o,n,a){if(n==="length"){for(let l=a,v=i.length;l<v;l++)delete s[l];return t.value=i.length=a,!0}return H(i,n,a),n>=t.peek()&&(t.value=i.length=Number(n)+1),!0},deleteProperty:(o,n)=>(i[n]&&Y(i,n),1)});return s}function H(e,r,t){let i=e[r];if(r[0]==="_")e[r]=t;else if(!i)e[r]=i=t?.peek?t:k(P(t));else if(t!==i.peek())if(i._set)i._set(t);else if(Array.isArray(t)&&Array.isArray(i.peek())){const s=i.peek();s[E]?R(()=>{J(()=>{let o=0,n=t.length;for(;o<n;o++)s[o]=t[o];s.length=n})}):i.value=t}else i.value=P(t)}function Y(e,r){const t=e[r],i=t[Symbol.dispose];i&&delete t[Symbol.dispose],delete e[r],i?.()}var _,E,ee,q=p({"store.js"(){B(),_=Symbol("signals"),E=Symbol("length"),ee={push:1,pop:1,shift:1,unshift:1,splice:1}}});function j(e,r){if(!e?.childNodes)return;if(m.has(e))return Object.assign(m.get(e),r);const t=P(r||{}),i=[];return s(e),m.has(e)||m.set(e,t),e[$]=()=>{for(;i.length;)i.pop()();m.delete(e),e[$]=null},t;function s(o,n=o.parentNode){if(o.childNodes){for(let a=0;a<o.attributes?.length;){let l=o.attributes[a];if(l.name[0]===":"){o.removeAttribute(l.name);let v=l.name.slice(1).split(":");for(let A of v){let f=d[A]||d.default,u=(f.parse||C)(l.value),g=f(o,u,t,A);g&&i.push(M(g)),i.push(()=>o.setAttributeNode(l))}if(m.has(o))return o[$]&&i.push(o[$]);if(o.parentNode!==n)return}else a++}for(let a of[...o.childNodes])s(a,o)}}}var $,d,m,X,C,Z,te,D,h=p({"core.js"(){B(),q(),$=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),d={},m=new WeakMap,X={},C=(e,r,t)=>{if(t=X[e=e.trim()])return t;try{t=te(e)}catch(i){Z(i,r,e)}return X[e]=t},Z=(e,r,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
1
+ (function(W,b){typeof exports=="object"&&typeof module=="object"?module.exports=b():typeof define=="function"&&define.amd?define("sprae",[],b):typeof exports=="object"?exports.sprae=b():W.sprae=b()})(typeof self<"u"?self:typeof globalThis<"u"?globalThis:void 0,()=>{var W={},b={exports:W},F=Object.defineProperty,fe=Object.getOwnPropertyDescriptor,V=Object.getOwnPropertyNames,de=Object.prototype.hasOwnProperty,p=(e,r)=>function(){return e&&(r=(0,e[V(e)[0]])(e=0)),r},pe=(e,r)=>{for(var t in r)F(e,t,{get:r[t],enumerable:!0})},ye=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of V(r))!de.call(e,s)&&s!==t&&F(e,s,{get:()=>r[s],enumerable:!(i=fe(r,s))||i.enumerable});return e},he=e=>ye(F({},"__esModule",{value:!0}),e);function me(e){k=e.signal,M=e.effect,I=e.computed,J=e.batch||(r=>r()),R=e.untracked||J}var A,N,k,M,I,J,R,B=p({"signal.js"(){k=(e,r,t=new Set)=>(r={get value(){return A?.deps.push(t.add(A)),e},set value(i){if(i!==e){e=i;for(let s of t)N?N.add(s):s()}},peek(){return e}},r.toJSON=r.then=r.toString=r.valueOf=()=>r.value,r),M=(e,r,t,i)=>(t=s=>{r?.call?.(),s=A,A=t;try{r=e()}finally{A=s}},i=t.deps=[],t(),s=>{for(r?.call?.();s=i.pop();)s.delete(t)}),I=(e,r=k(),t,i)=>(t={get value(){return i||(i=M(()=>r.value=e())),r.value},peek:r.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),J=e=>{let r=N;r||(N=new Set);try{e()}finally{if(!r){r=N,N=null;for(const t of r)t()}}},R=(e,r,t)=>(r=A,A=null,t=e(),A=r,t)}});function P(e,r){if(!e||e[_])return e;if(Array.isArray(e))return be(e);if(e.constructor!==Object||e[Symbol.toStringTag])return e;let t={...r?.[_]},i=k(Object.values(e).length);const s=new Proxy(t,{get:(o,n)=>n===E?i:n===_?t:t[n]?.valueOf(),set:(o,n,a,l)=>(l=t[n],H(t,n,a),l??++i.value,1),deleteProperty:(o,n)=>(t[n]&&(Y(t,n),i.value--),1),ownKeys(){return i.value,Reflect.ownKeys(t)}});for(let o in e){const n=Object.getOwnPropertyDescriptor(e,o);n?.get?(t[o]=I(n.get.bind(s)))._set=n.set?.bind(s):(t[o]=void 0,H(t,o,e[o]))}return s}function be(e){let r;if(e[_])return e;let t=k(e.length),i=Array(e.length).fill();const s=new Proxy(i,{get(o,n){if(typeof n=="symbol")return n===E?t:n===_?i:i[n];if(n==="length")return ee[r]?t.peek():t.value;if(r=n,i[n])return i[n].valueOf();if(n<i.length)return(i[n]=k(P(e[n]))).value},set(o,n,a){if(n==="length"){for(let l=a,g=i.length;l<g;l++)delete s[l];return t.value=i.length=a,!0}return H(i,n,a),n>=t.peek()&&(t.value=i.length=Number(n)+1),!0},deleteProperty:(o,n)=>(i[n]&&Y(i,n),1)});return s}function H(e,r,t){let i=e[r];if(r[0]==="_")e[r]=t;else if(!i)e[r]=i=t?.peek?t:k(P(t));else if(t!==i.peek())if(i._set)i._set(t);else if(Array.isArray(t)&&Array.isArray(i.peek())){const s=i.peek();s[E]?R(()=>{J(()=>{let o=0,n=t.length;for(;o<n;o++)s[o]=t[o];s.length=n})}):i.value=t}else i.value=P(t)}function Y(e,r){const t=e[r],i=t[Symbol.dispose];i&&delete t[Symbol.dispose],delete e[r],i?.()}var _,E,ee,q=p({"store.js"(){B(),_=Symbol("signals"),E=Symbol("length"),ee={push:1,pop:1,shift:1,unshift:1,splice:1}}});function j(e,r){if(!e?.childNodes)return;if(m.has(e))return Object.assign(m.get(e),r);const t=P(r||{}),i=[];return s(e),m.has(e)||m.set(e,t),e[$]=()=>{for(;i.length;)i.pop()();m.delete(e),e[$]=null},t;function s(o,n=o.parentNode){if(o.childNodes){for(let a=0;a<o.attributes?.length;){let l=o.attributes[a];if(l.name[0]===":"){o.removeAttribute(l.name);let g=l.name.slice(1).split(":");for(let O of g){let f=d[O]||d.default,u=(f.parse||C)(l.value),v=f(o,u,t,O);v&&i.push(M(v)),i.push(()=>o.setAttributeNode(l))}if(m.has(o))return o[$]&&i.push(o[$]);if(o.parentNode!==n)return}else a++}for(let a of[...o.childNodes])s(a,o)}}}var $,d,m,X,C,Z,te,D,h=p({"core.js"(){B(),q(),$=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),d={},m=new WeakMap,X={},C=(e,r,t)=>{if(t=X[e=e.trim()])return t;try{t=te(e)}catch(i){Z(i,r,e)}return X[e]=t},Z=(e,r,t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
2
2
 
3
3
  ${r}${t?`="${t}"
4
4
 
5
- `:""}`,expr:t})},j.use=e=>{e.signal&&me(e),e.compile&&(te=e.compile)},D=e=>{if(!e.nodeType)return e;let r=e.content.cloneNode(!0),t=[...e.attributes],i=document.createTextNode(""),s=(r.append(i),[...r.childNodes]);return{childNodes:s,content:r,remove:()=>r.append(...s),replaceWith(o){o!==i&&(i.before(o),r.append(...s))},attributes:t,removeAttribute(o){t.splice(t.findIndex(n=>n.name===o),1)},setAttributeNode(){}}}}}),z,ve=p({"directive/if.js"(){h(),z=Symbol("if"),d.if=(e,r,t)=>{let i=e.nextElementSibling,s=document.createTextNode(""),o,n,a;return e.replaceWith(s),n=e.content?D(e):e,m.set(n,null),i?.hasAttribute(":else")&&(i.removeAttribute(":else"),i.hasAttribute(":if")||(i.remove(),a=i.content?D(i):i,m.set(a,null))),()=>{const l=r(t)?n:e[z]?null:a;i&&(i[z]=l===n),o!=l&&(o&&(o.remove(),o[Symbol.dispose]?.()),(o=l)&&(s.before(o.content||o),m.get(o)===null&&m.delete(o),j(o,t)))}}}}),ge=p({"directive/each.js"(){h(),q(),B(),d.each=(e,[r,t,i],s)=>{const o=document.createTextNode("");e.replaceWith(o);let n,a,l=0;const v=I(()=>{a=null;let u=i(s);return typeof u=="number"&&(u=Array.from({length:u},(g,y)=>y+1)),u?.constructor===Object&&(a=Object.keys(u),u=Object.values(u)),u||[]}),A=()=>{R(()=>{var u,g;let y=0,w=v.value,T=w.length;if(n&&!n[E]){for(let O of n[_]||[])O[Symbol.dispose]();n=null,l=0}if(T<l)n.length=T;else{if(!n)n=w;else for(;y<l;y++)n[y]=w[y];for(;y<T;y++){n[y]=w[y];let O=y,U=P({[r]:n[_]?.[O]||n[O],[t]:a?a[O]:O},s),S=e.content?D(e):e.cloneNode(!0);o.before(S.content||S),j(S,U),((g=n[u=_]||(n[u]=[]))[y]||(g[y]={}))[Symbol.dispose]=()=>{S[Symbol.dispose]?.(),S.remove()}}}l=T})};let f=0;return()=>{v.value[E]?.value,f?f++:(A(),queueMicrotask(()=>(f&&A(),f=0)))}},d.each.parse=e=>{let[r,t]=e.split(/\s+in\s+/),[i,s="$"]=r.split(/\s*,\s*/);return[i,s,C(t)]}}}),_e=p({"directive/ref.js"(){h(),q(),d.ref=(e,r,t)=>{t[r]=e},d.ref.parse=e=>e}}),je=p({"directive/with.js"(){h(),q(),d.with=(e,r,t)=>{let i;return()=>{let s=r(t);j(e,i?s:i=P(s,t))}}}}),We={},re=p({"directive/html.js"(){h(),d.html=(e,r,t)=>{let i=r(t);if(!i)return;let s=(i.content||i).cloneNode(!0);e.replaceChildren(s),j(e,t)}}}),we=p({"directive/text.js"(){h(),d.text=(e,r,t)=>(e.content&&e.replaceWith(e=D(e).childNodes[0]),()=>{let i=r(t);e.textContent=i??""})}}),xe=p({"directive/class.js"(){h(),d.class=(e,r,t)=>{let i=new Set;return()=>{let s=r(t),o=new Set;s&&(typeof s=="string"?s.split(" ").map(n=>o.add(n)):Array.isArray(s)?s.map(n=>n&&o.add(n)):Object.entries(s).map(([n,a])=>a&&o.add(n)));for(let n of i)o.has(n)?o.delete(n):e.classList.remove(n);for(let n of i=o)e.classList.add(n)}}}}),Ae=p({"directive/style.js"(){h(),d.style=(e,r,t)=>{let i=e.getAttribute("style");return()=>{let s=r(t);if(typeof s=="string")e.setAttribute("style",i+(i.endsWith(";")?"":"; ")+s);else{i&&e.setAttribute("style",i);for(let o in s)o[0]=="-"?e.style.setProperty(o,s[o]):e.style[o]=s[o]}}}}}),ie,c,L,ne,se,G,Q=p({"directive/default.js"(){h(),d.default=(e,r,t,i)=>{if(!i.startsWith("on"))return()=>{let f=r(t);if(i)L(e,i,f);else for(let u in f)L(e,G(u),f[u])};const s=i.split("..").map(f=>{let u={evt:"",target:e,test:()=>!0};return u.evt=(f.startsWith("on")?f.slice(2):f).replace(/\.(\w+)?-?([-\w]+)?/g,(g,y,w="")=>(u.test=ie[y]?.(u,...w.split("-"))||u.test,"")),u});if(s.length==1)return()=>A(r(t),s[0]);let o,n,a,l=0;const v=f=>{a=A(u=>(a(),n=f?.(u),(l=++l%s.length)?v(n):o&&v(o)),s[l])};return()=>(o=r(t),!a&&v(o),()=>o=null);function A(f,{evt:u,target:g,test:y,defer:w,stop:T,prevent:O,immediate:U,...S}){w&&(f=w(f));const ce=K=>{try{y(K)&&(T&&(U?K.stopImmediatePropagation():K.stopPropagation()),O&&K.preventDefault(),f?.(K))}catch(Te){Z(Te,`:on${u}`,f)}};return g.addEventListener(u,ce,S),()=>g.removeEventListener(u,ce,S)}},ie={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},throttle(e,r){e.defer=t=>ne(t,r?Number(r)||0:108)},debounce(e,r){e.defer=t=>se(t,r?Number(r)||0:108)},outside:e=>r=>{let t=e.target;return!(t.contains(r.target)||r.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>r=>r.target===e.target,ctrl:(e,...r)=>t=>c.ctrl(t)&&r.every(i=>c[i]?c[i](t):t.key===i),shift:(e,...r)=>t=>c.shift(t)&&r.every(i=>c[i]?c[i](t):t.key===i),alt:(e,...r)=>t=>c.alt(t)&&r.every(i=>c[i]?c[i](t):t.key===i),meta:(e,...r)=>t=>c.meta(t)&&r.every(i=>c[i]?c[i](t):t.key===i),arrow:()=>c.arrow,enter:()=>c.enter,esc:()=>c.esc,tab:()=>c.tab,space:()=>c.space,delete:()=>c.delete,digit:()=>c.digit,letter:()=>c.letter,char:()=>c.char},c={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},L=(e,r,t)=>{t==null||t===!1?e.removeAttribute(r):e.setAttribute(r,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},ne=(e,r)=>{let t,i,s=o=>{t=!0,setTimeout(()=>{if(t=!1,i)return i=!1,s(o),e(o)},r)};return o=>t?i=!0:(s(o),e(o))},se=(e,r)=>{let t;return i=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(i)},r)}},G=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(r,t)=>(t?"-":"")+r.toLowerCase())}}),Oe=p({"directive/value.js"(){h(),h(),Q(),d.value=(e,[r,t],i)=>{const s=e.type==="text"||e.type===""?n=>e.setAttribute("value",e.value=n??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(n,a,l)=>(a=e.selectionStart,l=e.selectionEnd,e.setAttribute("value",e.value=n??""),a&&e.setSelectionRange(a,l)):e.type==="checkbox"?n=>(e.checked=n,L(e,"checked",n)):e.type==="select-one"?n=>{for(let a of e.options)a.value==n?a.setAttribute("selected",""):a.removeAttribute("selected");e.value=n}:e.type==="select-multiple"?n=>{for(let a of e.options)a.removeAttribute("selected");for(let a of n)e.querySelector(`[value="${a}"]`).setAttribute("selected","")}:n=>e.value=n;e.type?.startsWith("select")&&j(e,i);const o=e.type==="checkbox"?n=>t(i,e.checked):e.type==="select-multiple"?n=>t(i,[...e.selectedOptions].map(a=>a.value)):n=>t(i,e.value);return e.oninput=e.onchange=o,()=>s(r(i))},d.value.parse=e=>{let r=[C(e)];try{const t=C(`${e}=__;`);r.push((i,s)=>{i.__=s;let o=t(i,s);return delete i.__,o})}catch{}return r}}}),Se=p({"directive/fx.js"(){h(),d.fx=(e,r,t)=>()=>r(t)}}),oe={};pe(oe,{default:()=>ae});var ae,ke=p({"sprae.js"(){h(),ve(),ge(),_e(),je(),re(),we(),xe(),Ae(),Oe(),Se(),Q(),j.use({compile:e=>j.constructor(`with (arguments[0]) { return ${e} };`)}),ae=j}}),$e={},Ne=p({"directive/data.js"(){h(),d.data=(e,r,t)=>()=>{let i=r(t);for(let s in i)e.dataset[s]=i[s]}}}),Ce={},Pe=p({"directive/aria.js"(){h(),Q(),d.aria=(e,r,t)=>{const i=s=>{for(let o in s)L(e,"aria-"+G(o),s[o]==null?null:s[o]+"")};return()=>i(r(t))}}}),{default:le}=(ke(),he(oe));Ne(),Pe(),re(),b.exports=le;var ue=document.currentScript?.getAttribute("init")||null;if(ue&&le(document.documentElement,JSON.parse(ue)),typeof b.exports=="object"&&typeof W=="object"){var Ee=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Object.getOwnPropertyNames(r))!Object.prototype.hasOwnProperty.call(e,s)&&s!==t&&Object.defineProperty(e,s,{get:()=>r[s],enumerable:!(i=Object.getOwnPropertyDescriptor(r,s))||i.enumerable});return e};b.exports=Ee(b.exports,W)}return b.exports});
5
+ `:""}`,expr:t})},j.use=e=>{e.signal&&me(e),e.compile&&(te=e.compile)},D=e=>{if(!e.nodeType)return e;let r=e.content.cloneNode(!0),t=[...e.attributes],i=document.createTextNode(""),s=(r.append(i),[...r.childNodes]);return{childNodes:s,content:r,remove:()=>r.append(...s),replaceWith(o){o!==i&&(i.before(o),r.append(...s))},attributes:t,removeAttribute(o){t.splice(t.findIndex(n=>n.name===o),1)},setAttributeNode(){}}}}}),z,ge=p({"directive/if.js"(){h(),z=Symbol("if"),d.if=(e,r,t)=>{let i=e.nextElementSibling,s=document.createTextNode(""),o,n,a;return e.replaceWith(s),n=e.content?D(e):e,m.set(n,null),i?.hasAttribute(":else")&&(i.removeAttribute(":else"),i.hasAttribute(":if")||(i.remove(),a=i.content?D(i):i,m.set(a,null))),()=>{const l=r(t)?n:e[z]?null:a;i&&(i[z]=l===n),o!=l&&(o&&(o.remove(),o[Symbol.dispose]?.()),(o=l)&&(s.before(o.content||o),m.get(o)===null&&m.delete(o),j(o,t)))}}}}),ve=p({"directive/each.js"(){h(),q(),B(),d.each=(e,[r,t,i],s)=>{const o=document.createTextNode("");e.replaceWith(o);let n,a,l=0;const g=I(()=>{a=null;let u=i(s);return typeof u=="number"&&(u=Array.from({length:u},(v,y)=>y+1)),u?.constructor===Object&&(a=Object.keys(u),u=Object.values(u)),u||[]}),O=()=>{R(()=>{var u,v;let y=0,w=g.value,T=w.length;if(n&&!n[E]){for(let x of n[_]||[])x[Symbol.dispose]();n=null,l=0}if(T<l)n.length=T;else{if(!n)n=w;else for(;y<l;y++)n[y]=w[y];for(;y<T;y++){n[y]=w[y];let x=y,U=P({[r]:n[_]?.[x]||n[x],[t]:a?a[x]:x},s),S=e.content?D(e):e.cloneNode(!0);o.before(S.content||S),j(S,U),((v=n[u=_]||(n[u]=[]))[y]||(v[y]={}))[Symbol.dispose]=()=>{S[Symbol.dispose]?.(),S.remove()}}}l=T})};let f=0;return()=>{g.value[E]?.value,f?f++:(O(),queueMicrotask(()=>(f&&O(),f=0)))}},d.each.parse=e=>{let[r,t]=e.split(/\s+in\s+/),[i,s="$"]=r.split(/\s*,\s*/);return[i,s,C(t)]}}}),_e=p({"directive/ref.js"(){h(),q(),d.ref=(e,r,t)=>{t[r]=e},d.ref.parse=e=>e}}),je=p({"directive/with.js"(){h(),q(),d.with=(e,r,t)=>{let i;return()=>{let s=r(t);j(e,i?s:i=P(s,t))}}}}),We={},re=p({"directive/html.js"(){h(),d.html=(e,r,t)=>{let i=r(t);if(!i)return;let s=(i.content||i).cloneNode(!0);e.replaceChildren(s),j(e,t)}}}),we=p({"directive/text.js"(){h(),d.text=(e,r,t)=>(e.content&&e.replaceWith(e=D(e).childNodes[0]),()=>{let i=r(t);e.textContent=i??""})}}),Ae=p({"directive/class.js"(){h(),d.class=(e,r,t)=>{let i=new Set;return()=>{let s=r(t),o=new Set;s&&(typeof s=="string"?s.split(" ").map(n=>o.add(n)):Array.isArray(s)?s.map(n=>n&&o.add(n)):Object.entries(s).map(([n,a])=>a&&o.add(n)));for(let n of i)o.has(n)?o.delete(n):e.classList.remove(n);for(let n of i=o)e.classList.add(n)}}}}),Oe=p({"directive/style.js"(){h(),d.style=(e,r,t)=>{let i=e.getAttribute("style");return()=>{let s=r(t);if(typeof s=="string")e.setAttribute("style",i+(i.endsWith(";")?"":"; ")+s);else{i&&e.setAttribute("style",i);for(let o in s)o[0]=="-"?e.style.setProperty(o,s[o]):e.style[o]=s[o]}}}}}),ie,c,L,ne,se,G,Q=p({"directive/default.js"(){h(),d.default=(e,r,t,i)=>{if(!i.startsWith("on"))return()=>{let f=r(t);if(i)L(e,i,f);else for(let u in f)L(e,G(u),f[u])};const s=i.split("..").map(f=>{let u={evt:"",target:e,test:()=>!0};return u.evt=(f.startsWith("on")?f.slice(2):f).replace(/\.(\w+)?-?([-\w]+)?/g,(v,y,w="")=>(u.test=ie[y]?.(u,...w.split("-"))||u.test,"")),u});if(s.length==1)return()=>O(r(t),s[0]);let o,n,a,l=0;const g=f=>{a=O(u=>(a(),n=f?.(u),(l=++l%s.length)?g(n):o&&g(o)),s[l])};return()=>(o=r(t),!a&&g(o),()=>o=null);function O(f,{evt:u,target:v,test:y,defer:w,stop:T,prevent:x,immediate:U,...S}){w&&(f=w(f));const ce=K=>{try{y(K)&&(T&&(U?K.stopImmediatePropagation():K.stopPropagation()),x&&K.preventDefault(),f?.(K))}catch(Te){Z(Te,`:on${u}`,f)}};return v.addEventListener(u,ce,S),()=>v.removeEventListener(u,ce,S)}},ie={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},parent(e){e.target=e.target.parentNode},throttle(e,r){e.defer=t=>ne(t,r?Number(r)||0:108)},debounce(e,r){e.defer=t=>se(t,r?Number(r)||0:108)},outside:e=>r=>{let t=e.target;return!(t.contains(r.target)||r.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>r=>r.target===e.target,ctrl:(e,...r)=>t=>c.ctrl(t)&&r.every(i=>c[i]?c[i](t):t.key===i),shift:(e,...r)=>t=>c.shift(t)&&r.every(i=>c[i]?c[i](t):t.key===i),alt:(e,...r)=>t=>c.alt(t)&&r.every(i=>c[i]?c[i](t):t.key===i),meta:(e,...r)=>t=>c.meta(t)&&r.every(i=>c[i]?c[i](t):t.key===i),arrow:()=>c.arrow,enter:()=>c.enter,esc:()=>c.esc,tab:()=>c.tab,space:()=>c.space,delete:()=>c.delete,digit:()=>c.digit,letter:()=>c.letter,char:()=>c.char},c={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},L=(e,r,t)=>{t==null||t===!1?e.removeAttribute(r):e.setAttribute(r,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},ne=(e,r)=>{let t,i,s=o=>{t=!0,setTimeout(()=>{if(t=!1,i)return i=!1,s(o),e(o)},r)};return o=>t?i=!0:(s(o),e(o))},se=(e,r)=>{let t;return i=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(i)},r)}},G=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(r,t)=>(t?"-":"")+r.toLowerCase())}}),xe=p({"directive/value.js"(){h(),h(),Q(),d.value=(e,[r,t],i)=>{const s=e.type==="text"||e.type===""?n=>e.setAttribute("value",e.value=n??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(n,a,l)=>(a=e.selectionStart,l=e.selectionEnd,e.setAttribute("value",e.value=n??""),a&&e.setSelectionRange(a,l)):e.type==="checkbox"?n=>(e.checked=n,L(e,"checked",n)):e.type==="select-one"?n=>{for(let a of e.options)a.value==n?a.setAttribute("selected",""):a.removeAttribute("selected");e.value=n}:e.type==="select-multiple"?n=>{for(let a of e.options)a.removeAttribute("selected");for(let a of n)e.querySelector(`[value="${a}"]`).setAttribute("selected","")}:n=>e.value=n;e.type?.startsWith("select")&&j(e,i);const o=e.type==="checkbox"?n=>t(i,e.checked):e.type==="select-multiple"?n=>t(i,[...e.selectedOptions].map(a=>a.value)):n=>t(i,e.value);return e.oninput=e.onchange=o,()=>s(r(i))},d.value.parse=e=>{let r=[C(e)];try{const t=C(`${e}=__;`);r.push((i,s)=>{i.__=s;let o=t(i,s);return delete i.__,o})}catch{}return r}}}),Se=p({"directive/fx.js"(){h(),d.fx=(e,r,t)=>()=>r(t)}}),oe={};pe(oe,{default:()=>ae});var ae,ke=p({"sprae.js"(){h(),ge(),ve(),_e(),je(),re(),we(),Ae(),Oe(),xe(),Se(),Q(),j.use({compile:e=>j.constructor(`with (arguments[0]) { return ${e} };`)}),ae=j}}),$e={},Ne=p({"directive/data.js"(){h(),d.data=(e,r,t)=>()=>{let i=r(t);for(let s in i)e.dataset[s]=i[s]}}}),Ce={},Pe=p({"directive/aria.js"(){h(),Q(),d.aria=(e,r,t)=>{const i=s=>{for(let o in s)L(e,"aria-"+G(o),s[o]==null?null:s[o]+"")};return()=>i(r(t))}}}),{default:le}=(ke(),he(oe));Ne(),Pe(),re(),b.exports=le;var ue=document.currentScript?.getAttribute("init")||null;if(ue&&le(document.documentElement,JSON.parse(ue)),typeof b.exports=="object"&&typeof W=="object"){var Ee=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Object.getOwnPropertyNames(r))!Object.prototype.hasOwnProperty.call(e,s)&&s!==t&&Object.defineProperty(e,s,{get:()=>r[s],enumerable:!(i=Object.getOwnPropertyDescriptor(r,s))||i.enumerable});return e};b.exports=Ee(b.exports,W)}return b.exports});
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["sprae.umd.js"],
4
- "sourcesContent": ["(function (g, f) {if (\"object\" == typeof exports && \"object\" == typeof module) {module.exports = f();} else if (\"function\" == typeof define && define.amd) {define(\"sprae\", [], f);} else if (\"object\" == typeof exports) {exports[\"sprae\"] = f();} else {g[\"sprae\"] = f();}}(typeof self !== 'undefined' ? self : typeof globalThis !== 'undefined' ? globalThis : this, () => {var exports = {};var module = { exports };\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// signal.js\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || ((fn) => fn());\n untracked = s.untracked || batch;\n}\nvar current, batched, signal, effect, computed, batch, untracked;\nvar init_signal = __esm({\n \"signal.js\"() {\n signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n }, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\n effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n }, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n });\n computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n }, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\n batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = /* @__PURE__ */ new Set();\n try {\n fn();\n } finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n };\n untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n }\n});\n\n// store.js\nfunction store(values, parent) {\n if (!values) 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}\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n });\n else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\nvar _signals, _change, mut;\nvar init_store = __esm({\n \"store.js\"() {\n init_signal();\n _signals = Symbol(\"signals\");\n _change = Symbol(\"length\");\n mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\n }\n});\n\n// core.js\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init2(el);\n if (!memo.has(el)) memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n };\n return state;\n function init2(el2, parent = el2.parentNode) {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i];\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n let names = attr2.name.slice(1).split(\":\");\n for (let name of names) {\n let dir = directive[name] || directive.default;\n let evaluate = (dir.parse || parse)(attr2.value);\n let fn = dir(el2, evaluate, state, name);\n if (fn) disposes.push(effect(fn));\n disposes.push(() => el2.setAttributeNode(attr2));\n }\n if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent) return;\n } else i++;\n }\n for (let child of [...el2.childNodes]) init2(child, el2);\n }\n ;\n}\nvar _dispose, directive, memo, evalMemo, parse, err, compile, frag;\nvar init_core = __esm({\n \"core.js\"() {\n init_signal();\n init_store();\n _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\n directive = {};\n memo = /* @__PURE__ */ new WeakMap();\n evalMemo = {};\n parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n };\n err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n };\n sprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n };\n frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n },\n setAttributeNode() {\n }\n };\n };\n }\n});\n\n// directive/if.js\nvar _prevIf;\nvar init_if = __esm({\n \"directive/if.js\"() {\n init_core();\n _prevIf = Symbol(\"if\");\n directive.if = (el, evaluate, state) => {\n let next = el.nextElementSibling, holder = document.createTextNode(\"\"), curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n memo.set(ifEl, null);\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);\n }\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n memo.get(curEl) === null && memo.delete(curEl);\n sprae(curEl, state);\n }\n }\n };\n };\n }\n});\n\n// directive/each.js\nvar init_each = __esm({\n \"directive/each.js\"() {\n init_core();\n init_store();\n init_signal();\n directive.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n let cur, keys2, prevl = 0;\n const items = computed(() => {\n keys2 = null;\n let items2 = evaluate(state);\n if (typeof items2 === \"number\") items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object) keys2 = Object.keys(items2), items2 = Object.values(items2);\n return items2 || [];\n });\n const update = () => {\n untracked(() => {\n var _a, _b;\n let i = 0, newItems = items.value, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) {\n s[Symbol.dispose]();\n }\n cur = null, prevl = 0;\n }\n if (newl < prevl) {\n cur.length = newl;\n } else {\n if (!cur) {\n cur = newItems;\n } else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i];\n }\n }\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n });\n };\n let planned = 0;\n return () => {\n items.value[_change]?.value;\n if (!planned) {\n update();\n queueMicrotask(() => (planned && update(), planned = 0));\n } else planned++;\n };\n };\n directive.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n return [itemVar, idxVar, parse(itemsExpr)];\n };\n }\n});\n\n// directive/ref.js\nvar init_ref = __esm({\n \"directive/ref.js\"() {\n init_core();\n init_store();\n directive.ref = (el, expr, state) => {\n state[expr] = el;\n };\n directive.ref.parse = (expr) => expr;\n }\n});\n\n// directive/with.js\nvar init_with = __esm({\n \"directive/with.js\"() {\n init_core();\n init_store();\n directive.with = (el, evaluate, rootState) => {\n let state;\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState));\n };\n };\n }\n});\n\n// directive/html.js\nvar html_exports = {};\nvar init_html = __esm({\n \"directive/html.js\"() {\n init_core();\n directive.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl) return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n };\n }\n});\n\n// directive/text.js\nvar init_text = __esm({\n \"directive/text.js\"() {\n init_core();\n directive.text = (el, evaluate, state) => {\n if (el.content) el.replaceWith(el = frag(el).childNodes[0]);\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n };\n }\n});\n\n// directive/class.js\nvar init_class = __esm({\n \"directive/class.js\"() {\n init_core();\n directive.class = (el, evaluate, state) => {\n let cur = /* @__PURE__ */ new Set();\n return () => {\n let v = evaluate(state);\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n };\n };\n }\n});\n\n// directive/style.js\nvar init_style = __esm({\n \"directive/style.js\"() {\n init_core();\n directive.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n };\n };\n }\n});\n\n// directive/default.js\nvar mods, keys, attr, throttle, debounce, dashcase;\nvar init_default = __esm({\n \"directive/default.js\"() {\n init_core();\n directive.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\")) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value);\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return () => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null);\n function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n }\n ;\n };\n mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n };\n keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n };\n attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n };\n throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) 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 };\n debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n };\n dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n };\n }\n});\n\n// directive/value.js\nvar init_value = __esm({\n \"directive/value.js\"() {\n init_core();\n init_core();\n init_default();\n directive.value = (el, [getValue, setValue], state) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n if (el.type?.startsWith(\"select\")) sprae(el, state);\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : el.type === \"select-multiple\" ? (e) => setValue(state, [...el.selectedOptions].map((o) => o.value)) : (e) => setValue(state, el.value);\n el.oninput = el.onchange = handleChange;\n return () => update(getValue(state));\n };\n directive.value.parse = (expr) => {\n let evaluate = [parse(expr)];\n try {\n const set2 = parse(`${expr}=__;`);\n evaluate.push((state, value) => {\n state.__ = value;\n let result = set2(state, value);\n delete state.__;\n return result;\n });\n } catch (e) {\n }\n return evaluate;\n };\n }\n});\n\n// directive/fx.js\nvar init_fx = __esm({\n \"directive/fx.js\"() {\n init_core();\n directive.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n };\n }\n});\n\n// sprae.js\nvar sprae_exports = {};\n__export(sprae_exports, {\n default: () => sprae_default\n});\nvar sprae_default;\nvar init_sprae = __esm({\n \"sprae.js\"() {\n init_core();\n init_if();\n init_each();\n init_ref();\n init_with();\n init_html();\n init_text();\n init_class();\n init_style();\n init_value();\n init_fx();\n init_default();\n sprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\n sprae_default = sprae;\n }\n});\n\n// directive/data.js\nvar data_exports = {};\nvar init_data = __esm({\n \"directive/data.js\"() {\n init_core();\n directive[\"data\"] = (el, evaluate, state) => {\n return () => {\n let value = evaluate(state);\n for (let key in value) el.dataset[key] = value[key];\n };\n };\n }\n});\n\n// directive/aria.js\nvar aria_exports = {};\nvar init_aria = __esm({\n \"directive/aria.js\"() {\n init_core();\n init_default();\n directive[\"aria\"] = (el, evaluate, state) => {\n const update = (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n };\n return () => update(evaluate(state));\n };\n }\n});\n\n// sprae.umd.cjs\nvar { default: sprae2 } = (init_sprae(), __toCommonJS(sprae_exports));\ninit_data();\ninit_aria();\ninit_html();\nmodule.exports = sprae2;\nvar init = document.currentScript?.getAttribute(\"init\") || null;\nif (init) sprae2(document.documentElement, JSON.parse(init));\n;if (typeof module.exports == \"object\" && typeof exports == \"object\") {\n var __cp = (to, from, except, desc) => {\n if ((from && typeof from === \"object\") || typeof from === \"function\") {\n for (let key of Object.getOwnPropertyNames(from)) {\n if (!Object.prototype.hasOwnProperty.call(to, key) && key !== except)\n Object.defineProperty(to, key, {\n get: () => from[key],\n enumerable: !(desc = Object.getOwnPropertyDescriptor(from, key)) || desc.enumerable,\n });\n }\n }\n return to;\n };\n module.exports = __cp(module.exports, exports);\n}\nreturn module.exports;\n}))\n"],
5
- "mappings": "CAAC,SAAUA,EAAGC,EAAG,CAAiB,OAAO,SAAnB,UAA0C,OAAO,QAAnB,SAA4B,OAAO,QAAUA,EAAE,EAA2B,OAAO,QAArB,YAA+B,OAAO,IAAM,OAAO,QAAS,CAAC,EAAGA,CAAC,EAAyB,OAAO,SAAnB,SAA6B,QAAQ,MAAWA,EAAE,EAAUD,EAAE,MAAWC,EAAE,CAAG,GAAE,OAAO,KAAS,IAAc,KAAO,OAAO,WAAe,IAAc,WAAa,OAAM,IAAM,CAAC,IAAIC,EAAU,CAAC,EAAMC,EAAS,CAAE,QAAAD,CAAQ,EACrZE,EAAY,OAAO,eACnBC,GAAmB,OAAO,yBAC1BC,EAAoB,OAAO,oBAC3BC,GAAe,OAAO,UAAU,eAChCC,EAAQ,CAACC,EAAIC,IAAQ,UAAkB,CACzC,OAAOD,IAAOC,KAAUD,EAAGH,EAAkBG,CAAE,EAAE,CAAC,CAAC,GAAGA,EAAK,CAAC,GAAIC,CAClE,EACIC,GAAW,CAACC,EAAQC,IAAQ,CAC9B,QAASC,KAAQD,EACfT,EAAUQ,EAAQE,EAAM,CAAE,IAAKD,EAAIC,CAAI,EAAG,WAAY,EAAK,CAAC,CAChE,EACIC,GAAc,CAACC,EAAIC,EAAMC,EAAQC,IAAS,CAC5C,GAAIF,GAAQ,OAAOA,GAAS,UAAY,OAAOA,GAAS,WACtD,QAASG,KAAOd,EAAkBW,CAAI,EAChC,CAACV,GAAa,KAAKS,EAAII,CAAG,GAAKA,IAAQF,GACzCd,EAAUY,EAAII,EAAK,CAAE,IAAK,IAAMH,EAAKG,CAAG,EAAG,WAAY,EAAED,EAAOd,GAAiBY,EAAMG,CAAG,IAAMD,EAAK,UAAW,CAAC,EAEvH,OAAOH,CACT,EACIK,GAAgBC,GAAQP,GAAYX,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAGkB,CAAG,EAGzF,SAASC,GAAIC,EAAG,CACdC,EAASD,EAAE,OACXE,EAASF,EAAE,OACXG,EAAWH,EAAE,SACbI,EAAQJ,EAAE,QAAWf,GAAOA,EAAG,GAC/BoB,EAAYL,EAAE,WAAaI,CAC7B,CACA,IAAIE,EAASC,EAASN,EAAQC,EAAQC,EAAUC,EAAOC,EACnDG,EAAcxB,EAAM,CACtB,aAAc,CACZiB,EAAS,CAACQ,EAAGT,EAAGU,EAAsB,IAAI,OAAWV,EAAI,CACvD,IAAI,OAAQ,CACV,OAAAM,GAAS,KAAK,KAAKI,EAAI,IAAIJ,CAAO,CAAC,EAC5BG,CACT,EACA,IAAI,MAAME,EAAK,CACb,GAAIA,IAAQF,EACZ,CAAAA,EAAIE,EACJ,QAASC,KAAOF,EAAKH,EAAUA,EAAQ,IAAIK,CAAG,EAAIA,EAAI,EACxD,EACA,MAAO,CACL,OAAOH,CACT,CACF,EAAGT,EAAE,OAASA,EAAE,KAAOA,EAAE,SAAWA,EAAE,QAAU,IAAMA,EAAE,MAAOA,GAC/DE,EAAS,CAACjB,EAAI4B,EAAUC,EAAIC,KAAUD,EAAME,GAAS,CACnDH,GAAU,OAAO,EACjBG,EAAOV,EAASA,EAAUQ,EAC1B,GAAI,CACFD,EAAW5B,EAAG,CAChB,QAAE,CACAqB,EAAUU,CACZ,CACF,EAAGD,EAAOD,EAAG,KAAO,CAAC,EAAGA,EAAG,EAAIG,GAAQ,CAErC,IADAJ,GAAU,OAAO,EACVI,EAAMF,EAAK,IAAI,GAAGE,EAAI,OAAOH,CAAE,CACxC,GACAX,EAAW,CAAClB,EAAIe,EAAIC,EAAO,EAAGiB,EAAGC,KAAOD,EAAI,CAC1C,IAAI,OAAQ,CACV,OAAAC,IAAMA,EAAIjB,EAAO,IAAMF,EAAE,MAAQf,EAAG,CAAC,GAC9Be,EAAE,KACX,EACA,KAAMA,EAAE,IACV,EAAGkB,EAAE,OAASA,EAAE,KAAOA,EAAE,SAAWA,EAAE,QAAU,IAAMA,EAAE,MAAOA,GAC/Dd,EAASnB,GAAO,CACd,IAAImC,EAAMb,EACLa,IAAKb,EAA0B,IAAI,KACxC,GAAI,CACFtB,EAAG,CACL,QAAE,CACA,GAAI,CAACmC,EAAK,CACRA,EAAMb,EACNA,EAAU,KACV,UAAWO,KAAMM,EAAKN,EAAG,CAC3B,CACF,CACF,EACAT,EAAY,CAACpB,EAAI+B,EAAMP,KAAOO,EAAOV,EAASA,EAAU,KAAMG,EAAIxB,EAAG,EAAGqB,EAAUU,EAAMP,EAC1F,CACF,CAAC,EAGD,SAASY,EAAMC,EAAQC,EAAQ,CAE7B,GADI,CAACD,GACDA,EAAOE,CAAQ,EAAG,OAAOF,EAC7B,GAAI,MAAM,QAAQA,CAAM,EAAG,OAAOG,GAAKH,CAAM,EAC7C,GAAIA,EAAO,cAAgB,QAAUA,EAAO,OAAO,WAAW,EAAG,OAAOA,EACxE,IAAII,EAAU,CAAE,GAAGH,IAASC,CAAQ,CAAE,EAAGG,EAAO1B,EAAO,OAAO,OAAOqB,CAAM,EAAE,MAAM,EACnF,MAAMM,EAAQ,IAAI,MAAMF,EAAS,CAC/B,IAAK,CAACG,EAAGjC,IAAQA,IAAQkC,EAAUH,EAAO/B,IAAQ4B,EAAWE,EAAUA,EAAQ9B,CAAG,GAAG,QAAQ,EAC7F,IAAK,CAACiC,EAAGjC,EAAKa,EAAGT,KAAOA,EAAI0B,EAAQ9B,CAAG,EAAGmC,EAAIL,EAAS9B,EAAKa,CAAC,EAAGT,GAAK,EAAE2B,EAAK,MAAO,GAEnF,eAAgB,CAACE,EAAGjC,KAAS8B,EAAQ9B,CAAG,IAAMoC,EAAIN,EAAS9B,CAAG,EAAG+B,EAAK,SAAU,GAChF,SAAU,CACR,OAAAA,EAAK,MACE,QAAQ,QAAQD,CAAO,CAChC,CACF,CAAC,EACD,QAAS9B,KAAO0B,EAAQ,CACtB,MAAM3B,EAAO,OAAO,yBAAyB2B,EAAQ1B,CAAG,EACpDD,GAAM,KACP+B,EAAQ9B,CAAG,EAAIO,EAASR,EAAK,IAAI,KAAKiC,CAAK,CAAC,GAAG,KAAOjC,EAAK,KAAK,KAAKiC,CAAK,GAE3EF,EAAQ9B,CAAG,EAAI,OACfmC,EAAIL,EAAS9B,EAAK0B,EAAO1B,CAAG,CAAC,EAEjC,CACA,OAAOgC,CACT,CACA,SAASH,GAAKH,EAAQ,CACpB,IAAIW,EACJ,GAAIX,EAAOE,CAAQ,EAAG,OAAOF,EAC7B,IAAIK,EAAO1B,EAAOqB,EAAO,MAAM,EAAGI,EAAU,MAAMJ,EAAO,MAAM,EAAE,KAAK,EACtE,MAAMM,EAAQ,IAAI,MAAMF,EAAS,CAC/B,IAAIG,EAAGjC,EAAK,CACV,GAAI,OAAOA,GAAQ,SAAU,OAAOA,IAAQkC,EAAUH,EAAO/B,IAAQ4B,EAAWE,EAAUA,EAAQ9B,CAAG,EACrG,GAAIA,IAAQ,SAAU,OAAOsC,GAAID,CAAQ,EAAIN,EAAK,KAAK,EAAIA,EAAK,MAEhE,GADAM,EAAWrC,EACP8B,EAAQ9B,CAAG,EAAG,OAAO8B,EAAQ9B,CAAG,EAAE,QAAQ,EAC9C,GAAIA,EAAM8B,EAAQ,OAAQ,OAAQA,EAAQ9B,CAAG,EAAIK,EAAOoB,EAAMC,EAAO1B,CAAG,CAAC,CAAC,GAAG,KAC/E,EACA,IAAIiC,EAAGjC,EAAKa,EAAG,CACb,GAAIb,IAAQ,SAAU,CACpB,QAASuC,EAAI1B,EAAG2B,EAAIV,EAAQ,OAAQS,EAAIC,EAAGD,IAAK,OAAOP,EAAMO,CAAC,EAC9D,OAAAR,EAAK,MAAQD,EAAQ,OAASjB,EACvB,EACT,CACA,OAAAsB,EAAIL,EAAS9B,EAAKa,CAAC,EACfb,GAAO+B,EAAK,KAAK,IAAGA,EAAK,MAAQD,EAAQ,OAAS,OAAO9B,CAAG,EAAI,GAC7D,EACT,EACA,eAAgB,CAACiC,EAAGjC,KAAS8B,EAAQ9B,CAAG,GAAKoC,EAAIN,EAAS9B,CAAG,EAAG,EAClE,CAAC,EACD,OAAOgC,CACT,CACA,SAASG,EAAIL,EAAS9B,EAAKa,EAAG,CAC5B,IAAIT,EAAI0B,EAAQ9B,CAAG,EACnB,GAAIA,EAAI,CAAC,IAAM,IAAK8B,EAAQ9B,CAAG,EAAIa,UAC1B,CAACT,EACR0B,EAAQ9B,CAAG,EAAII,EAAIS,GAAG,KAAOA,EAAIR,EAAOoB,EAAMZ,CAAC,CAAC,UACvCA,IAAMT,EAAE,KAAK,EACnB,GAAIA,EAAE,KAAMA,EAAE,KAAKS,CAAC,UAChB,MAAM,QAAQA,CAAC,GAAK,MAAM,QAAQT,EAAE,KAAK,CAAC,EAAG,CACpD,MAAMqC,EAAMrC,EAAE,KAAK,EACfqC,EAAIP,CAAO,EAAGzB,EAAU,IAAM,CAChCD,EAAM,IAAM,CACV,IAAI+B,EAAI,EAAGC,EAAI3B,EAAE,OACjB,KAAO0B,EAAIC,EAAGD,IAAKE,EAAIF,CAAC,EAAI1B,EAAE0B,CAAC,EAC/BE,EAAI,OAASD,CACf,CAAC,CACH,CAAC,EAECpC,EAAE,MAAQS,CAEd,MACET,EAAE,MAAQqB,EAAMZ,CAAC,CAErB,CACA,SAASuB,EAAIN,EAAS9B,EAAK,CACzB,MAAMI,EAAI0B,EAAQ9B,CAAG,EAAG0C,EAAOtC,EAAE,OAAO,OAAO,EAC3CsC,GAAM,OAAOtC,EAAE,OAAO,OAAO,EACjC,OAAO0B,EAAQ9B,CAAG,EAClB0C,IAAO,CACT,CACA,IAAId,EAAUM,EAASI,GACnBK,EAAavD,EAAM,CACrB,YAAa,CACXwB,EAAY,EACZgB,EAAW,OAAO,SAAS,EAC3BM,EAAU,OAAO,QAAQ,EACzBI,GAAM,CAAE,KAAM,EAAG,IAAK,EAAG,MAAO,EAAG,QAAS,EAAG,OAAQ,CAAE,CAC3D,CACF,CAAC,EAGD,SAASM,EAAMC,EAAInB,EAAQ,CACzB,GAAI,CAACmB,GAAI,WAAY,OACrB,GAAIC,EAAK,IAAID,CAAE,EACb,OAAO,OAAO,OAAOC,EAAK,IAAID,CAAE,EAAGnB,CAAM,EAE3C,MAAMM,EAAQP,EAAMC,GAAU,CAAC,CAAC,EAAGqB,EAAW,CAAC,EAC/C,OAAAC,EAAMH,CAAE,EACHC,EAAK,IAAID,CAAE,GAAGC,EAAK,IAAID,EAAIb,CAAK,EACrCa,EAAGI,CAAQ,EAAI,IAAM,CACnB,KAAOF,EAAS,QAAQA,EAAS,IAAI,EAAE,EACvCD,EAAK,OAAOD,CAAE,EACdA,EAAGI,CAAQ,EAAI,IACjB,EACOjB,EACP,SAASgB,EAAME,EAAKvB,EAASuB,EAAI,WAAY,CAC3C,GAAKA,EAAI,WACT,SAASX,EAAI,EAAGA,EAAIW,EAAI,YAAY,QAAU,CAC5C,IAAIC,EAAQD,EAAI,WAAWX,CAAC,EAC5B,GAAIY,EAAM,KAAK,CAAC,IAAM,IAAK,CACzBD,EAAI,gBAAgBC,EAAM,IAAI,EAC9B,IAAIC,EAAQD,EAAM,KAAK,MAAM,CAAC,EAAE,MAAM,GAAG,EACzC,QAASzD,KAAQ0D,EAAO,CACtB,IAAIC,EAAMC,EAAU5D,CAAI,GAAK4D,EAAU,QACnCC,GAAYF,EAAI,OAASG,GAAOL,EAAM,KAAK,EAC3C9D,EAAKgE,EAAIH,EAAKK,EAAUvB,EAAOtC,CAAI,EACnCL,GAAI0D,EAAS,KAAKzC,EAAOjB,CAAE,CAAC,EAChC0D,EAAS,KAAK,IAAMG,EAAI,iBAAiBC,CAAK,CAAC,CACjD,CACA,GAAIL,EAAK,IAAII,CAAG,EAAG,OAAOA,EAAID,CAAQ,GAAKF,EAAS,KAAKG,EAAID,CAAQ,CAAC,EACtE,GAAIC,EAAI,aAAevB,EAAQ,MACjC,MAAOY,GACT,CACA,QAASkB,IAAS,CAAC,GAAGP,EAAI,UAAU,EAAGF,EAAMS,EAAOP,CAAG,EACzD,CAEF,CACA,IAAID,EAAUK,EAAWR,EAAMY,EAAUF,EAAOG,EAAKC,GAASC,EAC1DC,EAAY1E,EAAM,CACpB,WAAY,CACVwB,EAAY,EACZ+B,EAAW,EACXM,EAAW,OAAO,UAAY,OAAO,QAAU,OAAO,SAAS,GAC/DK,EAAY,CAAC,EACbR,EAAuB,IAAI,QAC3BY,EAAW,CAAC,EACZF,EAAQ,CAACO,EAAMV,EAAKhE,IAAO,CACzB,GAAIA,EAAKqE,EAASK,EAAOA,EAAK,KAAK,CAAC,EAAG,OAAO1E,EAC9C,GAAI,CACFA,EAAKuE,GAAQG,CAAI,CACnB,OAASxC,EAAG,CACVoC,EAAIpC,EAAG8B,EAAKU,CAAI,CAClB,CACA,OAAOL,EAASK,CAAI,EAAI1E,CAC1B,EACAsE,EAAM,CAAC,EAAGN,EAAKU,EAAO,KAAO,CAC3B,MAAM,OAAO,OAAO,EAAG,CAAE,QAAS,UAAU,EAAE,OAAO;AAAA;AAAA,EAEzDV,CAAG,GAAGU,EAAO,KAAKA,CAAI;AAAA;AAAA,EAEpB,EAAE,GAAI,KAAAA,CAAK,CAAC,CACZ,EACAnB,EAAM,IAAOxC,GAAM,CACjBA,EAAE,QAAUD,GAAIC,CAAC,EACjBA,EAAE,UAAYwD,GAAUxD,EAAE,QAC5B,EACAyD,EAAQG,GAAQ,CACd,GAAI,CAACA,EAAI,SAAU,OAAOA,EAC1B,IAAIC,EAAUD,EAAI,QAAQ,UAAU,EAAI,EAAGE,EAAa,CAAC,GAAGF,EAAI,UAAU,EAAGG,EAAM,SAAS,eAAe,EAAE,EAAGC,GAAcH,EAAQ,OAAOE,CAAG,EAAG,CAAC,GAAGF,EAAQ,UAAU,GACzK,MAAO,CACL,WAAAG,EACA,QAAAH,EACA,OAAQ,IAAMA,EAAQ,OAAO,GAAGG,CAAU,EAC1C,YAAYvB,EAAI,CACVA,IAAOsB,IACXA,EAAI,OAAOtB,CAAE,EACboB,EAAQ,OAAO,GAAGG,CAAU,EAC9B,EACA,WAAAF,EACA,gBAAgBxE,EAAM,CACpBwE,EAAW,OAAOA,EAAW,UAAWG,GAAMA,EAAE,OAAS3E,CAAI,EAAG,CAAC,CACnE,EACA,kBAAmB,CACnB,CACF,CACF,CACF,CACF,CAAC,EAGG4E,EACAC,GAAUnF,EAAM,CAClB,mBAAoB,CAClB0E,EAAU,EACVQ,EAAU,OAAO,IAAI,EACrBhB,EAAU,GAAK,CAACT,EAAIU,EAAUvB,IAAU,CACtC,IAAIwC,EAAO3B,EAAG,mBAAoB4B,EAAS,SAAS,eAAe,EAAE,EAAGC,EAAOC,EAAMC,EACrF,OAAA/B,EAAG,YAAY4B,CAAM,EACrBE,EAAO9B,EAAG,QAAUgB,EAAKhB,CAAE,EAAIA,EAC/BC,EAAK,IAAI6B,EAAM,IAAI,EACfH,GAAM,aAAa,OAAO,IAC5BA,EAAK,gBAAgB,OAAO,EACvBA,EAAK,aAAa,KAAK,IAAGA,EAAK,OAAO,EAAGI,EAASJ,EAAK,QAAUX,EAAKW,CAAI,EAAIA,EAAM1B,EAAK,IAAI8B,EAAQ,IAAI,IAEzG,IAAM,CACX,MAAMC,EAAQtB,EAASvB,CAAK,EAAI2C,EAAO9B,EAAGyB,CAAO,EAAI,KAAOM,EACxDJ,IAAMA,EAAKF,CAAO,EAAIO,IAAUF,GAChCD,GAASG,IACPH,IAAOA,EAAM,OAAO,EAAGA,EAAM,OAAO,OAAO,IAAI,IAC/CA,EAAQG,KACVJ,EAAO,OAAOC,EAAM,SAAWA,CAAK,EACpC5B,EAAK,IAAI4B,CAAK,IAAM,MAAQ5B,EAAK,OAAO4B,CAAK,EAC7C9B,EAAM8B,EAAO1C,CAAK,GAGxB,CACF,CACF,CACF,CAAC,EAGG8C,GAAY1F,EAAM,CACpB,qBAAsB,CACpB0E,EAAU,EACVnB,EAAW,EACX/B,EAAY,EACZ0C,EAAU,KAAO,CAACU,EAAK,CAACe,EAASC,EAAQzB,CAAQ,EAAGvB,IAAU,CAC5D,MAAMyC,EAAS,SAAS,eAAe,EAAE,EACzCT,EAAI,YAAYS,CAAM,EACtB,IAAIhC,EAAKwC,EAAOC,EAAQ,EACxB,MAAMC,EAAQ5E,EAAS,IAAM,CAC3B0E,EAAQ,KACR,IAAIG,EAAS7B,EAASvB,CAAK,EAC3B,OAAI,OAAOoD,GAAW,WAAUA,EAAS,MAAM,KAAK,CAAE,OAAQA,CAAO,EAAG,CAACnD,EAAGM,IAAMA,EAAI,CAAC,GACnF6C,GAAQ,cAAgB,SAAQH,EAAQ,OAAO,KAAKG,CAAM,EAAGA,EAAS,OAAO,OAAOA,CAAM,GACvFA,GAAU,CAAC,CACpB,CAAC,EACKC,EAAS,IAAM,CACnB5E,EAAU,IAAM,CACd,IAAI6E,EAAIC,EACR,IAAIhD,EAAI,EAAGiD,EAAWL,EAAM,MAAOM,EAAOD,EAAS,OACnD,GAAI/C,GAAO,CAACA,EAAIP,CAAO,EAAG,CACxB,QAAS9B,KAAKqC,EAAIb,CAAQ,GAAK,CAAC,EAC9BxB,EAAE,OAAO,OAAO,EAAE,EAEpBqC,EAAM,KAAMyC,EAAQ,CACtB,CACA,GAAIO,EAAOP,EACTzC,EAAI,OAASgD,MACR,CACL,GAAI,CAAChD,EACHA,EAAM+C,MAEN,MAAOjD,EAAI2C,EAAO3C,IAChBE,EAAIF,CAAC,EAAIiD,EAASjD,CAAC,EAGvB,KAAOA,EAAIkD,EAAMlD,IAAK,CACpBE,EAAIF,CAAC,EAAIiD,EAASjD,CAAC,EACnB,IAAImD,EAAMnD,EAAGoD,EAAQlE,EAAM,CACzB,CAACsD,CAAO,EAAGtC,EAAIb,CAAQ,IAAI8D,CAAG,GAAKjD,EAAIiD,CAAG,EAC1C,CAACV,CAAM,EAAGC,EAAQA,EAAMS,CAAG,EAAIA,CACjC,EAAG1D,CAAK,EAAGa,EAAKmB,EAAI,QAAUH,EAAKG,CAAG,EAAIA,EAAI,UAAU,EAAI,EAC5DS,EAAO,OAAO5B,EAAG,SAAWA,CAAE,EAC9BD,EAAMC,EAAI8C,CAAK,IACbJ,EAAK9C,EAAI6C,EAAK1D,CAAQ,IAAMa,EAAI6C,CAAE,EAAI,CAAC,IAAI/C,CAAC,IAAMgD,EAAGhD,CAAC,EAAI,CAAC,IAAI,OAAO,OAAO,EAAI,IAAM,CACvFM,EAAG,OAAO,OAAO,IAAI,EAAGA,EAAG,OAAO,CACpC,CACF,CACF,CACAqC,EAAQO,CACV,CAAC,CACH,EACA,IAAIG,EAAU,EACd,MAAO,IAAM,CACXT,EAAM,MAAMjD,CAAO,GAAG,MACjB0D,EAGEA,KAFLP,EAAO,EACP,eAAe,KAAOO,GAAWP,EAAO,EAAGO,EAAU,EAAE,EAE3D,CACF,EACAtC,EAAU,KAAK,MAASS,GAAS,CAC/B,GAAI,CAAC8B,EAAUC,CAAS,EAAI/B,EAAK,MAAM,UAAU,EAC7C,CAACgB,EAASC,EAAS,GAAG,EAAIa,EAAS,MAAM,SAAS,EACtD,MAAO,CAACd,EAASC,EAAQxB,EAAMsC,CAAS,CAAC,CAC3C,CACF,CACF,CAAC,EAGGC,GAAW3G,EAAM,CACnB,oBAAqB,CACnB0E,EAAU,EACVnB,EAAW,EACXW,EAAU,IAAM,CAACT,EAAIkB,EAAM/B,IAAU,CACnCA,EAAM+B,CAAI,EAAIlB,CAChB,EACAS,EAAU,IAAI,MAASS,GAASA,CAClC,CACF,CAAC,EAGGiC,GAAY5G,EAAM,CACpB,qBAAsB,CACpB0E,EAAU,EACVnB,EAAW,EACXW,EAAU,KAAO,CAACT,EAAIU,EAAU0C,IAAc,CAC5C,IAAIjE,EACJ,MAAO,IAAM,CACX,IAAIN,EAAS6B,EAAS0C,CAAS,EAC/BrD,EAAMC,EAAIb,EAAQN,EAASM,EAAQP,EAAMC,EAAQuE,CAAS,CAAC,CAC7D,CACF,CACF,CACF,CAAC,EAGGC,GAAe,CAAC,EAChBC,GAAY/G,EAAM,CACpB,qBAAsB,CACpB0E,EAAU,EACVR,EAAU,KAAO,CAACT,EAAIU,EAAUvB,IAAU,CACxC,IAAIgC,EAAMT,EAASvB,CAAK,EACxB,GAAI,CAACgC,EAAK,OACV,IAAIC,GAAWD,EAAI,SAAWA,GAAK,UAAU,EAAI,EACjDnB,EAAG,gBAAgBoB,CAAO,EAC1BrB,EAAMC,EAAIb,CAAK,CACjB,CACF,CACF,CAAC,EAGGoE,GAAYhH,EAAM,CACpB,qBAAsB,CACpB0E,EAAU,EACVR,EAAU,KAAO,CAACT,EAAIU,EAAUvB,KAC1Ba,EAAG,SAASA,EAAG,YAAYA,EAAKgB,EAAKhB,CAAE,EAAE,WAAW,CAAC,CAAC,EACnD,IAAM,CACX,IAAIwD,EAAQ9C,EAASvB,CAAK,EAC1Ba,EAAG,YAAcwD,GAAgB,EACnC,EAEJ,CACF,CAAC,EAGGC,GAAalH,EAAM,CACrB,sBAAuB,CACrB0E,EAAU,EACVR,EAAU,MAAQ,CAACT,EAAIU,EAAUvB,IAAU,CACzC,IAAIS,EAAsB,IAAI,IAC9B,MAAO,IAAM,CACX,IAAI5B,EAAI0C,EAASvB,CAAK,EAClBuE,EAAuB,IAAI,IAC3B1F,IACE,OAAOA,GAAM,SAAUA,EAAE,MAAM,GAAG,EAAE,IAAK2F,GAAQD,EAAK,IAAIC,CAAG,CAAC,EACzD,MAAM,QAAQ3F,CAAC,EAAGA,EAAE,IAAK4F,GAAOA,GAAMF,EAAK,IAAIE,CAAE,CAAC,EACtD,OAAO,QAAQ5F,CAAC,EAAE,IAAI,CAAC,CAAC6F,EAAGD,CAAE,IAAMA,GAAMF,EAAK,IAAIG,CAAC,CAAC,GAE3D,QAASF,KAAO/D,EAAS8D,EAAK,IAAIC,CAAG,EAAGD,EAAK,OAAOC,CAAG,EAClD3D,EAAG,UAAU,OAAO2D,CAAG,EAC5B,QAASA,KAAO/D,EAAM8D,EAAM1D,EAAG,UAAU,IAAI2D,CAAG,CAClD,CACF,CACF,CACF,CAAC,EAGGG,GAAavH,EAAM,CACrB,sBAAuB,CACrB0E,EAAU,EACVR,EAAU,MAAQ,CAACT,EAAIU,EAAUvB,IAAU,CACzC,IAAI4E,EAAY/D,EAAG,aAAa,OAAO,EACvC,MAAO,IAAM,CACX,IAAIhC,EAAI0C,EAASvB,CAAK,EACtB,GAAI,OAAOnB,GAAM,SAAUgC,EAAG,aAAa,QAAS+D,GAAaA,EAAU,SAAS,GAAG,EAAI,GAAK,MAAQ/F,CAAC,MACpG,CACC+F,GAAW/D,EAAG,aAAa,QAAS+D,CAAS,EACjD,QAASF,KAAK7F,EAAG6F,EAAE,CAAC,GAAK,IAAM7D,EAAG,MAAM,YAAY6D,EAAG7F,EAAE6F,CAAC,CAAC,EAAI7D,EAAG,MAAM6D,CAAC,EAAI7F,EAAE6F,CAAC,CAClF,CACF,CACF,CACF,CACF,CAAC,EAGGG,GAAMC,EAAMC,EAAMC,GAAUC,GAAUC,EACtCC,EAAe/H,EAAM,CACvB,wBAAyB,CACvB0E,EAAU,EACVR,EAAU,QAAU,CAAC9D,EAAQ+D,EAAUvB,EAAOtC,IAAS,CACrD,GAAI,CAACA,EAAK,WAAW,IAAI,EAAG,MAAO,IAAM,CACvC,IAAI2G,EAAQ9C,EAASvB,CAAK,EAC1B,GAAItC,EAAMqH,EAAKvH,EAAQE,EAAM2G,CAAK,MAC7B,SAASrG,KAAOqG,EAAOU,EAAKvH,EAAQ0H,EAASlH,CAAG,EAAGqG,EAAMrG,CAAG,CAAC,CACpE,EACA,MAAMoH,EAAO1H,EAAK,MAAM,IAAI,EAAE,IAAK6B,GAAM,CACvC,IAAI8F,EAAM,CAAE,IAAK,GAAI,OAAA7H,EAAQ,KAAM,IAAM,EAAK,EAC9C,OAAA6H,EAAI,KAAO9F,EAAE,WAAW,IAAI,EAAIA,EAAE,MAAM,CAAC,EAAIA,GAAG,QAC9C,uBACA,CAAC+F,EAAOpH,EAAKqH,EAAQ,MAAQF,EAAI,KAAOR,GAAK3G,CAAG,IAAImH,EAAK,GAAGE,EAAM,MAAM,GAAG,CAAC,GAAKF,EAAI,KAAM,GAC7F,EACOA,CACT,CAAC,EACD,GAAID,EAAK,QAAU,EAAG,MAAO,IAAMI,EAAYjE,EAASvB,CAAK,EAAGoF,EAAK,CAAC,CAAC,EACvE,IAAIK,EAASC,EAAQC,EAAKjC,EAAM,EAChC,MAAMkC,EAAgBvI,GAAO,CAC3BsI,EAAMH,EAAajG,IAAOoG,EAAI,EAAGD,EAASrI,IAAKkC,CAAC,GAAImE,EAAM,EAAEA,EAAM0B,EAAK,QAAUQ,EAAaF,CAAM,EAAID,GAAWG,EAAaH,CAAO,GAAIL,EAAK1B,CAAG,CAAC,CACtJ,EACA,MAAO,KAAO+B,EAAUlE,EAASvB,CAAK,EAAG,CAAC2F,GAAOC,EAAaH,CAAO,EAAG,IAAMA,EAAU,MACxF,SAASD,EAAYnI,EAAI,CAAE,IAAAwI,EAAK,OAAQC,EAAS,KAAAC,EAAM,MAAAC,EAAO,KAAAC,EAAM,QAAAC,EAAS,UAAAC,EAAW,GAAGC,CAAK,EAAG,CAC7FJ,IAAO3I,EAAK2I,EAAM3I,CAAE,GACxB,MAAMgJ,GAAM9G,GAAM,CAChB,GAAI,CACFwG,EAAKxG,CAAC,IAAM0G,IAASE,EAAY5G,EAAE,yBAAyB,EAAIA,EAAE,gBAAgB,GAAI2G,GAAW3G,EAAE,eAAe,EAAGlC,IAAKkC,CAAC,EAC7H,OAAS+G,GAAO,CACd3E,EAAI2E,GAAO,MAAMT,CAAG,GAAIxI,CAAE,CAC5B,CACF,EACA,OAAAyI,EAAQ,iBAAiBD,EAAKQ,GAAID,CAAI,EAC/B,IAAMN,EAAQ,oBAAoBD,EAAKQ,GAAID,CAAI,CACxD,CAEF,EACAvB,GAAO,CAEL,QAAQQ,EAAK,CACXA,EAAI,QAAU,EAChB,EACA,KAAKA,EAAK,CACRA,EAAI,KAAO,EACb,EACA,UAAUA,EAAK,CACbA,EAAI,UAAY,EAClB,EAEA,KAAKA,EAAK,CACRA,EAAI,KAAO,EACb,EACA,QAAQA,EAAK,CACXA,EAAI,QAAU,EAChB,EACA,QAAQA,EAAK,CACXA,EAAI,QAAU,EAChB,EAEA,OAAOA,EAAK,CACVA,EAAI,OAAS,MACf,EACA,SAASA,EAAK,CACZA,EAAI,OAAS,QACf,EACA,SAASA,EAAKkB,EAAO,CACnBlB,EAAI,MAAShI,GAAO2H,GAAS3H,EAAIkJ,EAAQ,OAAOA,CAAK,GAAK,EAAI,GAAG,CACnE,EACA,SAASlB,EAAKmB,EAAM,CAClBnB,EAAI,MAAShI,GAAO4H,GAAS5H,EAAImJ,EAAO,OAAOA,CAAI,GAAK,EAAI,GAAG,CACjE,EAEA,QAAUnB,GAAS9F,GAAM,CACvB,IAAI/B,EAAS6H,EAAI,OAGjB,MAFI,EAAA7H,EAAO,SAAS+B,EAAE,MAAM,GACxBA,EAAE,OAAO,cAAgB,IACzB/B,EAAO,YAAc,GAAKA,EAAO,aAAe,EAEtD,EACA,KAAO6H,GAAS9F,GAAMA,EAAE,SAAW8F,EAAI,OAEvC,KAAM,CAACpF,KAAMsF,IAAWhG,GAAMuF,EAAK,KAAKvF,CAAC,GAAKgG,EAAM,MAAOkB,GAAM3B,EAAK2B,CAAC,EAAI3B,EAAK2B,CAAC,EAAElH,CAAC,EAAIA,EAAE,MAAQkH,CAAC,EACnG,MAAO,CAACxG,KAAMsF,IAAWhG,GAAMuF,EAAK,MAAMvF,CAAC,GAAKgG,EAAM,MAAOkB,GAAM3B,EAAK2B,CAAC,EAAI3B,EAAK2B,CAAC,EAAElH,CAAC,EAAIA,EAAE,MAAQkH,CAAC,EACrG,IAAK,CAACxG,KAAMsF,IAAWhG,GAAMuF,EAAK,IAAIvF,CAAC,GAAKgG,EAAM,MAAOkB,GAAM3B,EAAK2B,CAAC,EAAI3B,EAAK2B,CAAC,EAAElH,CAAC,EAAIA,EAAE,MAAQkH,CAAC,EACjG,KAAM,CAACxG,KAAMsF,IAAWhG,GAAMuF,EAAK,KAAKvF,CAAC,GAAKgG,EAAM,MAAOkB,GAAM3B,EAAK2B,CAAC,EAAI3B,EAAK2B,CAAC,EAAElH,CAAC,EAAIA,EAAE,MAAQkH,CAAC,EAEnG,MAAO,IAAM3B,EAAK,MAClB,MAAO,IAAMA,EAAK,MAClB,IAAK,IAAMA,EAAK,IAChB,IAAK,IAAMA,EAAK,IAChB,MAAO,IAAMA,EAAK,MAClB,OAAQ,IAAMA,EAAK,OACnB,MAAO,IAAMA,EAAK,MAClB,OAAQ,IAAMA,EAAK,OACnB,KAAM,IAAMA,EAAK,IACnB,EACAA,EAAO,CACL,KAAO,GAAM,EAAE,SAAW,EAAE,MAAQ,WAAa,EAAE,MAAQ,OAC3D,MAAQ,GAAM,EAAE,UAAY,EAAE,MAAQ,QACtC,IAAM,GAAM,EAAE,QAAU,EAAE,MAAQ,MAClC,KAAO,GAAM,EAAE,SAAW,EAAE,MAAQ,QAAU,EAAE,MAAQ,UACxD,MAAQ,GAAM,EAAE,IAAI,WAAW,OAAO,EACtC,MAAQ,GAAM,EAAE,MAAQ,QACxB,IAAM,GAAM,EAAE,IAAI,WAAW,KAAK,EAClC,IAAM,GAAM,EAAE,MAAQ,MACtB,MAAQ,GAAM,EAAE,MAAQ,QAAU,EAAE,MAAQ,SAAW,EAAE,MAAQ,IACjE,OAAS,GAAM,EAAE,MAAQ,UAAY,EAAE,MAAQ,YAC/C,MAAQ,GAAM,OAAO,KAAK,EAAE,GAAG,EAC/B,OAAS,GAAM,YAAY,KAAK,EAAE,GAAG,EACrC,KAAO,GAAM,OAAO,KAAK,EAAE,GAAG,CAChC,EACAC,EAAO,CAAClE,EAAInD,EAAMmB,IAAM,CAClBA,GAAK,MAAQA,IAAM,GAAOgC,EAAG,gBAAgBnD,CAAI,EAChDmD,EAAG,aAAanD,EAAMmB,IAAM,GAAO,GAAK,OAAOA,GAAM,UAAY,OAAOA,GAAM,SAAWA,EAAI,EAAE,CACtG,EACAmG,GAAW,CAAC3H,EAAIkJ,IAAU,CACxB,IAAIG,EAAO9C,EAAS+C,EAASpH,GAAM,CACjCmH,EAAQ,GACR,WAAW,IAAM,CAEf,GADAA,EAAQ,GACJ9C,EAAS,OAAOA,EAAU,GAAO+C,EAAMpH,CAAC,EAAGlC,EAAGkC,CAAC,CACrD,EAAGgH,CAAK,CACV,EACA,OAAQhH,GACFmH,EAAc9C,EAAU,IAC5B+C,EAAMpH,CAAC,EACAlC,EAAGkC,CAAC,EAEf,EACA0F,GAAW,CAAC5H,EAAImJ,IAAS,CACvB,IAAII,EACJ,OAAQrH,GAAM,CACZ,aAAaqH,CAAO,EACpBA,EAAU,WAAW,IAAM,CACzBA,EAAU,KACVvJ,EAAGkC,CAAC,CACN,EAAGiH,CAAI,CACT,CACF,EACAtB,EAAY2B,GACHA,EAAI,QAAQ,mCAAoC,CAACvB,EAAO/E,KAAOA,EAAI,IAAM,IAAM+E,EAAM,YAAY,CAAC,CAE7G,CACF,CAAC,EAGGwB,GAAa1J,EAAM,CACrB,sBAAuB,CACrB0E,EAAU,EACVA,EAAU,EACVqD,EAAa,EACb7D,EAAU,MAAQ,CAACT,EAAI,CAACkG,EAAUC,CAAQ,EAAGhH,IAAU,CACrD,MAAMqD,EAASxC,EAAG,OAAS,QAAUA,EAAG,OAAS,GAAMwD,GAAUxD,EAAG,aAAa,QAASA,EAAG,MAAQwD,GAAgB,EAAU,EAAIxD,EAAG,UAAY,YAAcA,EAAG,OAAS,QAAUA,EAAG,OAAS,GAAK,CAACwD,EAAOxG,EAAMD,KAElNC,EAAOgD,EAAG,eAAgBjD,EAAKiD,EAAG,aAAcA,EAAG,aAAa,QAASA,EAAG,MAAQwD,GAAgB,EAAU,EAAGxG,GAAQgD,EAAG,kBAAkBhD,EAAMD,CAAE,GACrJiD,EAAG,OAAS,WAAcwD,IAAWxD,EAAG,QAAUwD,EAAOU,EAAKlE,EAAI,UAAWwD,CAAK,GAAKxD,EAAG,OAAS,aAAgBwD,GAAU,CAC/H,QAAS4C,KAAKpG,EAAG,QACfoG,EAAE,OAAS5C,EAAQ4C,EAAE,aAAa,WAAY,EAAE,EAAIA,EAAE,gBAAgB,UAAU,EAClFpG,EAAG,MAAQwD,CACb,EAAIxD,EAAG,OAAS,kBAAqBwD,GAAU,CAC7C,QAAS4C,KAAKpG,EAAG,QAASoG,EAAE,gBAAgB,UAAU,EACtD,QAASpI,KAAKwF,EAAOxD,EAAG,cAAc,WAAWhC,CAAC,IAAI,EAAE,aAAa,WAAY,EAAE,CACrF,EAAKwF,GAAUxD,EAAG,MAAQwD,EACtBxD,EAAG,MAAM,WAAW,QAAQ,GAAGD,EAAMC,EAAIb,CAAK,EAClD,MAAMkH,EAAerG,EAAG,OAAS,WAActB,GAAMyH,EAAShH,EAAOa,EAAG,OAAO,EAAIA,EAAG,OAAS,kBAAqBtB,GAAMyH,EAAShH,EAAO,CAAC,GAAGa,EAAG,eAAe,EAAE,IAAKoG,GAAMA,EAAE,KAAK,CAAC,EAAK1H,GAAMyH,EAAShH,EAAOa,EAAG,KAAK,EACxN,OAAAA,EAAG,QAAUA,EAAG,SAAWqG,EACpB,IAAM7D,EAAO0D,EAAS/G,CAAK,CAAC,CACrC,EACAsB,EAAU,MAAM,MAASS,GAAS,CAChC,IAAIR,EAAW,CAACC,EAAMO,CAAI,CAAC,EAC3B,GAAI,CACF,MAAMoF,EAAO3F,EAAM,GAAGO,CAAI,MAAM,EAChCR,EAAS,KAAK,CAACvB,EAAOqE,IAAU,CAC9BrE,EAAM,GAAKqE,EACX,IAAI+C,EAASD,EAAKnH,EAAOqE,CAAK,EAC9B,cAAOrE,EAAM,GACNoH,CACT,CAAC,CACH,MAAY,CACZ,CACA,OAAO7F,CACT,CACF,CACF,CAAC,EAGG8F,GAAUjK,EAAM,CAClB,mBAAoB,CAClB0E,EAAU,EACVR,EAAU,GAAK,CAACT,EAAIU,EAAUvB,IACrB,IAAMuB,EAASvB,CAAK,CAE/B,CACF,CAAC,EAGGsH,GAAgB,CAAC,EACrB/J,GAAS+J,GAAe,CACtB,QAAS,IAAMC,EACjB,CAAC,EACD,IAAIA,GACAC,GAAapK,EAAM,CACrB,YAAa,CACX0E,EAAU,EACVS,GAAQ,EACRO,GAAU,EACViB,GAAS,EACTC,GAAU,EACVG,GAAU,EACVC,GAAU,EACVE,GAAW,EACXK,GAAW,EACXmC,GAAW,EACXO,GAAQ,EACRlC,EAAa,EACbvE,EAAM,IAAI,CAAE,QAAUmB,GAASnB,EAAM,YAAY,gCAAgCmB,CAAI,KAAK,CAAE,CAAC,EAC7FwF,GAAgB3G,CAClB,CACF,CAAC,EAGG6G,GAAe,CAAC,EAChBC,GAAYtK,EAAM,CACpB,qBAAsB,CACpB0E,EAAU,EACVR,EAAU,KAAU,CAACT,EAAIU,EAAUvB,IAC1B,IAAM,CACX,IAAIqE,EAAQ9C,EAASvB,CAAK,EAC1B,QAAShC,KAAOqG,EAAOxD,EAAG,QAAQ7C,CAAG,EAAIqG,EAAMrG,CAAG,CACpD,CAEJ,CACF,CAAC,EAGG2J,GAAe,CAAC,EAChBC,GAAYxK,EAAM,CACpB,qBAAsB,CACpB0E,EAAU,EACVqD,EAAa,EACb7D,EAAU,KAAU,CAACT,EAAIU,EAAUvB,IAAU,CAC3C,MAAMqD,EAAUgB,GAAU,CACxB,QAASrG,KAAOqG,EAAOU,EAAKlE,EAAI,QAAUqE,EAASlH,CAAG,EAAGqG,EAAMrG,CAAG,GAAK,KAAO,KAAOqG,EAAMrG,CAAG,EAAI,EAAE,CACtG,EACA,MAAO,IAAMqF,EAAO9B,EAASvB,CAAK,CAAC,CACrC,CACF,CACF,CAAC,EAGG,CAAE,QAAS6H,EAAO,GAAKL,GAAW,EAAGvJ,GAAaqJ,EAAa,GACnEI,GAAU,EACVE,GAAU,EACVzD,GAAU,EACVpH,EAAO,QAAU8K,GACjB,IAAIC,GAAO,SAAS,eAAe,aAAa,MAAM,GAAK,KAE1D,GADGA,IAAMD,GAAO,SAAS,gBAAiB,KAAK,MAAMC,EAAI,CAAC,EACtD,OAAO/K,EAAO,SAAW,UAAY,OAAOD,GAAW,SAAU,CACpE,IAAIiL,GAAO,CAACnK,EAAIC,EAAMC,EAAQC,IAAS,CACrC,GAAKF,GAAQ,OAAOA,GAAS,UAAa,OAAOA,GAAS,WACxD,QAASG,KAAO,OAAO,oBAAoBH,CAAI,EACzC,CAAC,OAAO,UAAU,eAAe,KAAKD,EAAII,CAAG,GAAKA,IAAQF,GAC9D,OAAO,eAAeF,EAAII,EAAK,CAC7B,IAAK,IAAMH,EAAKG,CAAG,EACnB,WAAY,EAAED,EAAO,OAAO,yBAAyBF,EAAMG,CAAG,IAAMD,EAAK,UAC3E,CAAC,EAGL,OAAOH,CACT,EACAb,EAAO,QAAUgL,GAAKhL,EAAO,QAASD,CAAO,CAC/C,CACA,OAAOC,EAAO,OACd,CAAC",
4
+ "sourcesContent": ["(function (g, f) {if (\"object\" == typeof exports && \"object\" == typeof module) {module.exports = f();} else if (\"function\" == typeof define && define.amd) {define(\"sprae\", [], f);} else if (\"object\" == typeof exports) {exports[\"sprae\"] = f();} else {g[\"sprae\"] = f();}}(typeof self !== 'undefined' ? self : typeof globalThis !== 'undefined' ? globalThis : this, () => {var exports = {};var module = { exports };\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// signal.js\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || ((fn) => fn());\n untracked = s.untracked || batch;\n}\nvar current, batched, signal, effect, computed, batch, untracked;\nvar init_signal = __esm({\n \"signal.js\"() {\n signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) batched ? batched.add(sub) : sub();\n },\n peek() {\n return v;\n }\n }, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\n effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n }, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n });\n computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n }, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\n batch = (fn) => {\n let fxs = batched;\n if (!fxs) batched = /* @__PURE__ */ new Set();\n try {\n fn();\n } finally {\n if (!fxs) {\n fxs = batched;\n batched = null;\n for (const fx of fxs) fx();\n }\n }\n };\n untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);\n }\n});\n\n// store.js\nfunction store(values, parent) {\n if (!values) 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}\nfunction list(values) {\n let lastProp;\n if (values[_signals]) return values;\n let _len = signal(values.length), signals = Array(values.length).fill();\n const state = new Proxy(signals, {\n get(_, key) {\n if (typeof key === \"symbol\") return key === _change ? _len : key === _signals ? signals : signals[key];\n if (key === \"length\") return mut[lastProp] ? _len.peek() : _len.value;\n lastProp = key;\n if (signals[key]) return signals[key].valueOf();\n if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;\n },\n set(_, key, v) {\n if (key === \"length\") {\n for (let i = v, l = signals.length; i < l; i++) delete state[i];\n _len.value = signals.length = v;\n return true;\n }\n set(signals, key, v);\n if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)\n });\n return state;\n}\nfunction set(signals, key, v) {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) {\n signals[key] = s = v?.peek ? v : signal(store(v));\n } else if (v === s.peek()) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(s.peek())) {\n const cur = s.peek();\n if (cur[_change]) untracked(() => {\n batch(() => {\n let i = 0, l = v.length;\n for (; i < l; i++) cur[i] = v[i];\n cur.length = l;\n });\n });\n else {\n s.value = v;\n }\n } else {\n s.value = store(v);\n }\n}\nfunction del(signals, key) {\n const s = signals[key], del2 = s[Symbol.dispose];\n if (del2) delete s[Symbol.dispose];\n delete signals[key];\n del2?.();\n}\nvar _signals, _change, mut;\nvar init_store = __esm({\n \"store.js\"() {\n init_signal();\n _signals = Symbol(\"signals\");\n _change = Symbol(\"length\");\n mut = { push: 1, pop: 1, shift: 1, unshift: 1, splice: 1 };\n }\n});\n\n// core.js\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (memo.has(el)) {\n return Object.assign(memo.get(el), values);\n }\n const state = store(values || {}), disposes = [];\n init2(el);\n if (!memo.has(el)) memo.set(el, state);\n el[_dispose] = () => {\n while (disposes.length) disposes.pop()();\n memo.delete(el);\n el[_dispose] = null;\n };\n return state;\n function init2(el2, parent = el2.parentNode) {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let attr2 = el2.attributes[i];\n if (attr2.name[0] === \":\") {\n el2.removeAttribute(attr2.name);\n let names = attr2.name.slice(1).split(\":\");\n for (let name of names) {\n let dir = directive[name] || directive.default;\n let evaluate = (dir.parse || parse)(attr2.value);\n let fn = dir(el2, evaluate, state, name);\n if (fn) disposes.push(effect(fn));\n disposes.push(() => el2.setAttributeNode(attr2));\n }\n if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);\n if (el2.parentNode !== parent) return;\n } else i++;\n }\n for (let child of [...el2.childNodes]) init2(child, el2);\n }\n ;\n}\nvar _dispose, directive, memo, evalMemo, parse, err, compile, frag;\nvar init_core = __esm({\n \"core.js\"() {\n init_signal();\n init_store();\n _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\n directive = {};\n memo = /* @__PURE__ */ new WeakMap();\n evalMemo = {};\n parse = (expr, dir, fn) => {\n if (fn = evalMemo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir, expr);\n }\n return evalMemo[expr] = fn;\n };\n err = (e, dir, expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n };\n sprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n };\n frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n },\n setAttributeNode() {\n }\n };\n };\n }\n});\n\n// directive/if.js\nvar _prevIf;\nvar init_if = __esm({\n \"directive/if.js\"() {\n init_core();\n _prevIf = Symbol(\"if\");\n directive.if = (el, evaluate, state) => {\n let next = el.nextElementSibling, holder = document.createTextNode(\"\"), curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n memo.set(ifEl, null);\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);\n }\n return () => {\n const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[Symbol.dispose]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n memo.get(curEl) === null && memo.delete(curEl);\n sprae(curEl, state);\n }\n }\n };\n };\n }\n});\n\n// directive/each.js\nvar init_each = __esm({\n \"directive/each.js\"() {\n init_core();\n init_store();\n init_signal();\n directive.each = (tpl, [itemVar, idxVar, evaluate], state) => {\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n let cur, keys2, prevl = 0;\n const items = computed(() => {\n keys2 = null;\n let items2 = evaluate(state);\n if (typeof items2 === \"number\") items2 = Array.from({ length: items2 }, (_, i) => i + 1);\n if (items2?.constructor === Object) keys2 = Object.keys(items2), items2 = Object.values(items2);\n return items2 || [];\n });\n const update = () => {\n untracked(() => {\n var _a, _b;\n let i = 0, newItems = items.value, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) {\n s[Symbol.dispose]();\n }\n cur = null, prevl = 0;\n }\n if (newl < prevl) {\n cur.length = newl;\n } else {\n if (!cur) {\n cur = newItems;\n } else {\n for (; i < prevl; i++) {\n cur[i] = newItems[i];\n }\n }\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n });\n };\n let planned = 0;\n return () => {\n items.value[_change]?.value;\n if (!planned) {\n update();\n queueMicrotask(() => (planned && update(), planned = 0));\n } else planned++;\n };\n };\n directive.each.parse = (expr) => {\n let [leftSide, itemsExpr] = expr.split(/\\s+in\\s+/);\n let [itemVar, idxVar = \"$\"] = leftSide.split(/\\s*,\\s*/);\n return [itemVar, idxVar, parse(itemsExpr)];\n };\n }\n});\n\n// directive/ref.js\nvar init_ref = __esm({\n \"directive/ref.js\"() {\n init_core();\n init_store();\n directive.ref = (el, expr, state) => {\n state[expr] = el;\n };\n directive.ref.parse = (expr) => expr;\n }\n});\n\n// directive/with.js\nvar init_with = __esm({\n \"directive/with.js\"() {\n init_core();\n init_store();\n directive.with = (el, evaluate, rootState) => {\n let state;\n return () => {\n let values = evaluate(rootState);\n sprae(el, state ? values : state = store(values, rootState));\n };\n };\n }\n});\n\n// directive/html.js\nvar html_exports = {};\nvar init_html = __esm({\n \"directive/html.js\"() {\n init_core();\n directive.html = (el, evaluate, state) => {\n let tpl = evaluate(state);\n if (!tpl) return;\n let content = (tpl.content || tpl).cloneNode(true);\n el.replaceChildren(content);\n sprae(el, state);\n };\n }\n});\n\n// directive/text.js\nvar init_text = __esm({\n \"directive/text.js\"() {\n init_core();\n directive.text = (el, evaluate, state) => {\n if (el.content) el.replaceWith(el = frag(el).childNodes[0]);\n return () => {\n let value = evaluate(state);\n el.textContent = value == null ? \"\" : value;\n };\n };\n }\n});\n\n// directive/class.js\nvar init_class = __esm({\n \"directive/class.js\"() {\n init_core();\n directive.class = (el, evaluate, state) => {\n let cur = /* @__PURE__ */ new Set();\n return () => {\n let v = evaluate(state);\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n };\n };\n }\n});\n\n// directive/style.js\nvar init_style = __esm({\n \"directive/style.js\"() {\n init_core();\n directive.style = (el, evaluate, state) => {\n let initStyle = el.getAttribute(\"style\");\n return () => {\n let v = evaluate(state);\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n };\n };\n }\n});\n\n// directive/default.js\nvar mods, keys, attr, throttle, debounce, dashcase;\nvar init_default = __esm({\n \"directive/default.js\"() {\n init_core();\n directive.default = (target, evaluate, state, name) => {\n if (!name.startsWith(\"on\")) return () => {\n let value = evaluate(state);\n if (name) attr(target, name, value);\n else for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (match, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n if (ctxs.length == 1) return () => addListener(evaluate(state), ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return () => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null);\n function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n }\n ;\n };\n 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 };\n keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n };\n attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n };\n throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) 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 };\n debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n };\n dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n };\n }\n});\n\n// directive/value.js\nvar init_value = __esm({\n \"directive/value.js\"() {\n init_core();\n init_core();\n init_default();\n directive.value = (el, [getValue, setValue], state) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n if (el.type?.startsWith(\"select\")) sprae(el, state);\n const handleChange = el.type === \"checkbox\" ? (e) => setValue(state, el.checked) : el.type === \"select-multiple\" ? (e) => setValue(state, [...el.selectedOptions].map((o) => o.value)) : (e) => setValue(state, el.value);\n el.oninput = el.onchange = handleChange;\n return () => update(getValue(state));\n };\n directive.value.parse = (expr) => {\n let evaluate = [parse(expr)];\n try {\n const set2 = parse(`${expr}=__;`);\n evaluate.push((state, value) => {\n state.__ = value;\n let result = set2(state, value);\n delete state.__;\n return result;\n });\n } catch (e) {\n }\n return evaluate;\n };\n }\n});\n\n// directive/fx.js\nvar init_fx = __esm({\n \"directive/fx.js\"() {\n init_core();\n directive.fx = (el, evaluate, state) => {\n return () => evaluate(state);\n };\n }\n});\n\n// sprae.js\nvar sprae_exports = {};\n__export(sprae_exports, {\n default: () => sprae_default\n});\nvar sprae_default;\nvar init_sprae = __esm({\n \"sprae.js\"() {\n init_core();\n init_if();\n init_each();\n init_ref();\n init_with();\n init_html();\n init_text();\n init_class();\n init_style();\n init_value();\n init_fx();\n init_default();\n sprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\n sprae_default = sprae;\n }\n});\n\n// directive/data.js\nvar data_exports = {};\nvar init_data = __esm({\n \"directive/data.js\"() {\n init_core();\n directive[\"data\"] = (el, evaluate, state) => {\n return () => {\n let value = evaluate(state);\n for (let key in value) el.dataset[key] = value[key];\n };\n };\n }\n});\n\n// directive/aria.js\nvar aria_exports = {};\nvar init_aria = __esm({\n \"directive/aria.js\"() {\n init_core();\n init_default();\n directive[\"aria\"] = (el, evaluate, state) => {\n const update = (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n };\n return () => update(evaluate(state));\n };\n }\n});\n\n// sprae.umd.cjs\nvar { default: sprae2 } = (init_sprae(), __toCommonJS(sprae_exports));\ninit_data();\ninit_aria();\ninit_html();\nmodule.exports = sprae2;\nvar init = document.currentScript?.getAttribute(\"init\") || null;\nif (init) sprae2(document.documentElement, JSON.parse(init));\n;if (typeof module.exports == \"object\" && typeof exports == \"object\") {\n var __cp = (to, from, except, desc) => {\n if ((from && typeof from === \"object\") || typeof from === \"function\") {\n for (let key of Object.getOwnPropertyNames(from)) {\n if (!Object.prototype.hasOwnProperty.call(to, key) && key !== except)\n Object.defineProperty(to, key, {\n get: () => from[key],\n enumerable: !(desc = Object.getOwnPropertyDescriptor(from, key)) || desc.enumerable,\n });\n }\n }\n return to;\n };\n module.exports = __cp(module.exports, exports);\n}\nreturn module.exports;\n}))\n"],
5
+ "mappings": "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",
6
6
  "names": ["g", "f", "exports", "module", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "__esm", "fn", "res", "__export", "target", "all", "name", "__copyProps", "to", "from", "except", "desc", "key", "__toCommonJS", "mod", "use", "s", "signal", "effect", "computed", "batch", "untracked", "current", "batched", "init_signal", "v", "obs", "val", "sub", "teardown", "fx", "deps", "prev", "dep", "c", "e", "fxs", "store", "values", "parent", "_signals", "list", "signals", "_len", "state", "_", "_change", "set", "del", "lastProp", "mut", "i", "l", "cur", "del2", "init_store", "sprae", "el", "memo", "disposes", "init2", "_dispose", "el2", "attr2", "names", "dir", "directive", "evaluate", "parse", "child", "evalMemo", "err", "compile", "frag", "init_core", "expr", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "init_if", "next", "holder", "curEl", "ifEl", "elseEl", "newEl", "init_each", "itemVar", "idxVar", "keys2", "prevl", "items", "items2", "update", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "leftSide", "itemsExpr", "init_ref", "init_with", "rootState", "html_exports", "init_html", "init_text", "value", "init_class", "clsx", "cls", "v2", "k", "init_style", "initStyle", "mods", "keys", "attr", "throttle", "debounce", "dashcase", "init_default", "ctxs", "ctx", "match", "param", "addListener", "startFn", "nextFn", "off", "nextListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "limit", "wait", "p", "pause", "block", "timeout", "str", "init_value", "getValue", "setValue", "o", "handleChange", "set2", "result", "init_fx", "sprae_exports", "sprae_default", "init_sprae", "data_exports", "init_data", "aria_exports", "init_aria", "sprae2", "init", "__cp"]
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sprae",
3
3
  "description": "DOM microhydration.",
4
- "version": "10.12.3",
4
+ "version": "10.13.0",
5
5
  "main": "./sprae.js",
6
6
  "module": "./sprae.js",
7
7
  "unpkg": "dist/sprae.umd.min.js",
package/readme.md CHANGED
@@ -200,7 +200,7 @@ Attach event(s) listener with optional modifiers.
200
200
 
201
201
  * `.once`, `.passive`, `.capture` – listener [options](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#options).
202
202
  * `.prevent`, `.stop` (`.immediate`) – prevent default or stop (immediate) propagation.
203
- * `.window`, `.document`, `.outside`, `.self` – specify event target.
203
+ * `.window`, `.document`, `.parent`, `.outside`, `.self` – specify event target.
204
204
  * `.throttle-<ms>`, `.debounce-<ms>` – defer function call with one of the methods.
205
205
  * `.<key>` – filtered by [`event.key`](https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values):
206
206
  * `.ctrl`, `.shift`, `.alt`, `.meta`, `.enter`, `.esc`, `.tab`, `.space` – direct key