sprae 11.2.0 → 11.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["sprae.js"],
4
- "sourcesContent": ["// signal.js\nvar current;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => fn();\nvar untracked = batch;\nfunction use(s) {\n signal = s.signal;\n effect = s.effect;\n computed = s.computed;\n batch = s.batch || batch;\n untracked = s.untracked || batch;\n}\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"change\");\nfunction store(values, parent) {\n if (!values) return values;\n if (values[_signals]) return values;\n if (Array.isArray(values)) return list(values);\n if (values.constructor !== Object || values[Symbol.toStringTag]) return values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);\n const state = new Proxy(signals, {\n get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),\n set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),\n // bump length for new signal\n deleteProperty: (_, key) => (signals[key] && (signals[key][Symbol.dispose]?.(), delete signals[key], _len.value--), 1),\n // subscribe to length when object is spread\n ownKeys: () => (_len.value, Reflect.ownKeys(signals))\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] = null;\n set(signals, key, values[key]);\n }\n }\n return state;\n}\nvar mut = [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"];\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.includes(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; i < signals.length; 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 = +key + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key]?.[Symbol.dispose]?.(), delete 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) 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]) batch(() => {\n for (let i = 0; i < v.length; i++) cur[i] = v[i];\n cur.length = v.length;\n });\n else s.value = v;\n } else s.value = store(v);\n}\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar _state = Symbol(\"state\");\nvar _on = Symbol(\"on\");\nvar _off = Symbol(\"off\");\nvar directive = {};\nvar dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (evaluate = p(expr), update = create(el, state, expr, name2, evaluate), () => update(evaluate(state)));\nfunction sprae(el, values) {\n if (!el?.childNodes) return;\n if (el[_state]) return Object.assign(el[_state], values);\n const state = store(values || {}), offs = [], fx = [];\n const init = (el2) => {\n if (!el2.childNodes) return;\n for (let i = 0; i < el2.attributes?.length; ) {\n let { name, value } = el2.attributes[i], update, pfx = name[0] === \":\" ? 1 : name[0] === \"s\" && name[1] === \"-\" ? 2 : 0;\n if (pfx) {\n el2.removeAttribute(name);\n for (let dir2 of name.slice(pfx).split(\":\")) {\n update = (directive[dir2] || directive.default)(el2, value, state, dir2);\n fx.push(update), offs.push(effect(update));\n if (el2[_state] === null) return;\n }\n } else i++;\n }\n for (let child of [...el2.childNodes]) init(child);\n };\n init(el);\n if (!(_state in el)) {\n el[_state] = state;\n el[_off] = () => {\n while (offs.length) offs.pop()();\n };\n el[_on] = () => offs.push(...fx.map((f) => effect(f)));\n el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);\n }\n return state;\n}\nvar parse = (expr, dir2, fn) => {\n if (fn = memo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir2, expr);\n }\n return memo[expr] = fn;\n};\nvar memo = {};\nvar err = (e, dir2 = \"\", expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir2}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n // get parentNode() { return childNodes[0].parentNode },\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n }\n // setAttributeNode() { }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndir(\"if\", (el, state) => {\n const holder = document.createTextNode(\"\");\n let next = el.nextElementSibling, curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n ifEl[_state] = null;\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, elseEl[_state] = null;\n }\n return (value) => {\n const newEl = value ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[_off]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n curEl[_state] === null ? (delete curEl[_state], sprae(curEl, state)) : curEl[_on]();\n }\n }\n };\n});\n\n// directive/each.js\ndir(\n \"each\",\n (tpl, state, expr) => {\n const [itemVar, idxVar = \"$\"] = expr.split(/\\s+in\\s+/)[0].split(/\\s*,\\s*/);\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n tpl[_state] = null;\n let cur, keys2, items, prevl = 0;\n const update = () => {\n var _a, _b;\n let i = 0, newItems = items, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) s[Symbol.dispose]();\n cur = null, prevl = 0;\n }\n if (newl < prevl) cur.length = newl;\n else {\n if (!cur) cur = newItems;\n else while (i < prevl) cur[i] = newItems[i++];\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n };\n return (value) => {\n keys2 = null;\n if (typeof value === \"number\") items = Array.from({ length: value }, (_, i) => i + 1);\n else if (value?.constructor === Object) keys2 = Object.keys(value), items = Object.values(value);\n else items = value || [];\n let planned = 0;\n return effect(() => {\n items[_change]?.value;\n if (!planned++) update(), queueMicrotask(() => (planned > 1 && update(), planned = 0));\n });\n };\n },\n // redefine evaluator to take second part of expression\n (expr) => parse(expr.split(/\\s+in\\s+/)[1])\n);\n\n// directive/default.js\ndir(\"default\", (target, state, expr, name) => {\n if (!name.startsWith(\"on\"))\n return name ? (value) => attr(target, name, value) : (value) => {\n for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (_, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n const addListener = (fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) => {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.call(state, e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n };\n if (ctxs.length == 1) return (v) => addListener(v, ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return (value) => (startFn = value, !off && nextListener(startFn), () => startFn = null);\n});\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n parent(ctx) {\n ctx.target = ctx.target.parentNode;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndir(\"value\", (el, state, expr) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n ensure(state, expr);\n try {\n const set2 = setter(expr);\n const handleChange = el.type === \"checkbox\" ? () => set2(state, el.checked) : el.type === \"select-multiple\" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);\n el.oninput = el.onchange = handleChange;\n if (el.type?.startsWith(\"select\")) {\n new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });\n sprae(el, state);\n }\n } catch {\n }\n return update;\n});\nvar setter = (expr, set2 = parse(`${expr}=__`)) => (\n // FIXME: if there's a simpler way to set value in justin?\n (state, value) => (state.__ = value, set2(state, value), delete state.__)\n);\nvar ensure = (state, expr, name = expr.match(/^\\w+(?=\\s*(?:\\.|\\[|$))/)) => {\n var _a;\n return name && (state[_a = name[0]] ?? (state[_a] = null));\n};\n\n// directive/ref.js\ndir(\"ref\", (el, state, expr, _, ev) => (ensure(state, expr), ev(state) == null ? (setter(expr)(state, el), (_2) => _2) : (v) => v.call(null, el)));\n\n// directive/with.js\ndir(\"with\", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store(values, rootState))));\n\n// directive/text.js\ndir(\"text\", (el) => (\n // <template :text=\"a\"/> or previously initialized template\n (el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? \"\" : value)\n));\n\n// directive/class.js\ndir(\n \"class\",\n (el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n })\n);\n\n// directive/style.js\ndir(\n \"style\",\n (el, initStyle) => (initStyle = el.getAttribute(\"style\"), (v) => {\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n })\n);\n\n// directive/fx.js\ndir(\"fx\", (_) => (_2) => _2);\n\n// directive/aria.js\ndir(\"aria\", (el) => (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n});\n\n// directive/data.js\ndir(\"data\", (el) => (value) => {\n for (let key in value) el.dataset[key] = value[key];\n});\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
5
- "mappings": "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",
6
- "names": ["current", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "untracked", "use", "_signals", "_change", "store", "values", "parent", "list", "signals", "_len", "state", "_", "key", "set", "desc", "mut", "lastProp", "i", "cur", "_dispose", "_state", "_on", "_off", "directive", "dir", "name", "create", "p", "parse", "el", "expr", "name2", "update", "evaluate", "sprae", "offs", "init", "el2", "value", "pfx", "dir2", "child", "f", "memo", "compile", "err", "frag", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "holder", "next", "curEl", "ifEl", "elseEl", "newEl", "itemVar", "idxVar", "keys2", "items", "prevl", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "target", "attr", "dashcase", "ctxs", "ctx", "mod", "param", "mods", "addListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "startFn", "nextFn", "off", "nextListener", "limit", "throttle", "wait", "debounce", "keys", "pause", "block", "timeout", "str", "match", "from", "to", "ensure", "set2", "setter", "handleChange", "o", "ev", "_2", "rootState", "clsx", "cls", "v2", "k", "initStyle", "sprae_default"]
4
+ "sourcesContent": ["// signal.js\nvar current;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => fn();\nvar untracked = batch;\nvar use = (s) => (signal = s.signal, effect = s.effect, computed = s.computed, batch = s.batch || batch, untracked = s.untracked || untracked);\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"change\");\nvar 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] && (signals[key][Symbol.dispose]?.(), delete signals[key], _len.value--), 1),\n // subscribe to length when object is spread\n ownKeys: () => (_len.value, Reflect.ownKeys(signals))\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] = null;\n set(signals, key, values[key]);\n }\n }\n return state;\n};\nvar 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.includes(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; i < signals.length; 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 = +key + 1;\n return true;\n },\n deleteProperty: (_, key) => (signals[key]?.[Symbol.dispose]?.(), delete signals[key], 1)\n });\n return state;\n};\nvar mut = [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"];\nvar set = (signals, key, v) => {\n let s = signals[key];\n if (key[0] === \"_\") signals[key] = v;\n else if (!s) 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]) batch(() => {\n for (let i = 0; i < v.length; i++) cur[i] = v[i];\n cur.length = v.length;\n });\n else s.value = v;\n } else s.value = store(v);\n};\nvar store_default = store;\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar _state = Symbol(\"state\");\nvar _on = Symbol(\"on\");\nvar _off = Symbol(\"off\");\nvar directive = {};\nvar dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (evaluate = p(expr), update = create(el, state, expr, name2, evaluate), () => update(evaluate(state)));\nfunction sprae(el, values) {\n if (el[_state]) return Object.assign(el[_state], values);\n const state = store(values || {}), offs = [], fx = [];\n const init = (el2, attrs = el2.attributes) => {\n if (attrs) for (let i = 0; i < attrs.length; ) {\n let { name, value } = attrs[i], pfx, update, dir2;\n if (pfx = name[0] === \":\" ? 1 : name[0] === \"s\" && name[1] === \"-\" ? 2 : 0) {\n el2.removeAttribute(name);\n for (dir2 of name.slice(pfx).split(\":\")) {\n update = (directive[dir2] || directive.default)(el2, value, state, dir2);\n fx.push(update), offs.push(effect(update));\n if (el2[_state] === null) return;\n }\n } else i++;\n }\n for (let child of el2.childNodes) child.nodeType == 1 && init(child);\n };\n init(el);\n if (!(_state in el)) {\n el[_state] = state;\n el[_off] = () => {\n while (offs.length) offs.pop()();\n };\n el[_on] = () => offs.push(...fx.map((f) => effect(f)));\n el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);\n }\n return state;\n}\nvar parse = (expr, dir2, fn) => {\n if (fn = memo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir2, expr);\n }\n return memo[expr] = fn;\n};\nvar memo = {};\nvar err = (e, dir2 = \"\", expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir2}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nsprae.use = (s) => {\n s.signal && use(s);\n s.compile && (compile = s.compile);\n};\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n // get parentNode() { return childNodes[0].parentNode },\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n }\n // setAttributeNode() { }\n };\n};\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndir(\"if\", (el, state) => {\n const holder = document.createTextNode(\"\");\n let next = el.nextElementSibling, curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n ifEl[_state] = null;\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, elseEl[_state] = null;\n }\n return (value) => {\n const newEl = value ? ifEl : el[_prevIf] ? null : elseEl;\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[_off]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n curEl[_state] === null ? (delete curEl[_state], sprae(curEl, state)) : curEl[_on]();\n }\n }\n };\n});\n\n// directive/each.js\ndir(\n \"each\",\n (tpl, state, expr) => {\n const [itemVar, idxVar = \"$\"] = expr.split(/\\s+in\\s+/)[0].split(/\\s*,\\s*/);\n const holder = document.createTextNode(\"\");\n tpl.replaceWith(holder);\n tpl[_state] = null;\n let cur, keys2, items, prevl = 0;\n const update = () => {\n var _a, _b;\n let i = 0, newItems = items, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) s[Symbol.dispose]();\n cur = null, prevl = 0;\n }\n if (newl < prevl) cur.length = newl;\n else {\n if (!cur) cur = newItems;\n else while (i < prevl) cur[i] = newItems[i++];\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store_default({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n sprae(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n };\n return (value) => {\n keys2 = null;\n if (typeof value === \"number\") items = Array.from({ length: value }, (_, i) => i + 1);\n else if (value?.constructor === Object) keys2 = Object.keys(value), items = Object.values(value);\n else items = value || [];\n let planned = 0;\n return effect(() => {\n items[_change]?.value;\n if (!planned++) update(), queueMicrotask(() => (planned > 1 && update(), planned = 0));\n });\n };\n },\n // redefine evaluator to take second part of expression\n (expr) => parse(expr.split(/\\s+in\\s+/)[1])\n);\n\n// directive/default.js\ndir(\"default\", (target, state, expr, name) => {\n if (!name.startsWith(\"on\"))\n return name ? (value) => attr(target, name, value) : (value) => {\n for (let key in value) attr(target, dashcase(key), value[key]);\n };\n const ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (_, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n const addListener = (fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) => {\n if (defer) fn = defer(fn);\n const cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.call(state, e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n };\n if (ctxs.length == 1) return (v) => addListener(v, ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n const nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return (value) => (startFn = value, !off && nextListener(startFn), () => startFn = null);\n});\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n parent(ctx) {\n ctx.target = ctx.target.parentNode;\n },\n throttle(ctx, limit) {\n ctx.defer = (fn) => throttle(fn, limit ? Number(limit) || 0 : 108);\n },\n debounce(ctx, wait) {\n ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndir(\"value\", (el, state, expr) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n ensure(state, expr);\n try {\n const set2 = setter(expr);\n const handleChange = el.type === \"checkbox\" ? () => set2(state, el.checked) : el.type === \"select-multiple\" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);\n el.oninput = el.onchange = handleChange;\n if (el.type?.startsWith(\"select\")) {\n new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });\n sprae(el, state);\n }\n } catch {\n }\n return update;\n});\nvar setter = (expr, set2 = parse(`${expr}=__`)) => (\n // FIXME: if there's a simpler way to set value in justin?\n (state, value) => (state.__ = value, set2(state, value), delete state.__)\n);\nvar ensure = (state, expr, name = expr.match(/^\\w+(?=\\s*(?:\\.|\\[|$))/)) => {\n var _a;\n return name && (state[_a = name[0]] ?? (state[_a] = null));\n};\n\n// directive/ref.js\ndir(\"ref\", (el, state, expr, _, ev) => (ensure(state, expr), ev(state) == null ? (setter(expr)(state, el), (_2) => _2) : (v) => v.call(null, el)));\n\n// directive/with.js\ndir(\"with\", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store_default(values, rootState))));\n\n// directive/text.js\ndir(\"text\", (el) => (\n // <template :text=\"a\"/> or previously initialized template\n (el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? \"\" : value)\n));\n\n// directive/class.js\ndir(\n \"class\",\n (el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n })\n);\n\n// directive/style.js\ndir(\n \"style\",\n (el, initStyle) => (initStyle = el.getAttribute(\"style\"), (v) => {\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n })\n);\n\n// directive/fx.js\ndir(\"fx\", (_) => (_2) => _2);\n\n// directive/aria.js\ndir(\"aria\", (el) => (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n});\n\n// directive/data.js\ndir(\"data\", (el) => (value) => {\n for (let key in value) el.dataset[key] = value[key];\n});\n\n// sprae.js\nsprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = sprae;\nexport {\n sprae_default as default\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["current", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "untracked", "use", "_signals", "_change", "store", "values", "parent", "list", "signals", "_len", "state", "_", "key", "set", "desc", "lastProp", "mut", "i", "cur", "store_default", "_dispose", "_state", "_on", "_off", "directive", "dir", "name", "create", "p", "parse", "el", "expr", "name2", "update", "evaluate", "sprae", "offs", "init", "el2", "attrs", "value", "pfx", "dir2", "child", "f", "memo", "compile", "err", "frag", "tpl", "content", "attributes", "ref", "childNodes", "a", "_prevIf", "holder", "next", "curEl", "ifEl", "elseEl", "newEl", "itemVar", "idxVar", "keys2", "items", "prevl", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "target", "attr", "dashcase", "ctxs", "ctx", "mod", "param", "mods", "addListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "startFn", "nextFn", "off", "nextListener", "limit", "throttle", "wait", "debounce", "keys", "pause", "block", "timeout", "str", "match", "from", "to", "ensure", "set2", "setter", "handleChange", "o", "ev", "_2", "rootState", "clsx", "cls", "v2", "k", "initStyle", "sprae_default"]
7
7
  }
package/dist/sprae.umd.js CHANGED
@@ -21,14 +21,7 @@ var __copyProps = (to, from, except, desc) => {
21
21
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
22
 
23
23
  // signal.js
24
- function use(s) {
25
- signal = s.signal;
26
- effect = s.effect;
27
- computed = s.computed;
28
- batch = s.batch || batch;
29
- untracked = s.untracked || batch;
30
- }
31
- var current, signal, effect, computed, batch, untracked;
24
+ var current, signal, effect, computed, batch, untracked, use;
32
25
  var init_signal = __esm({
33
26
  "signal.js"() {
34
27
  signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {
@@ -66,105 +59,105 @@ var init_signal = __esm({
66
59
  }, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);
67
60
  batch = (fn) => fn();
68
61
  untracked = batch;
62
+ use = (s) => (signal = s.signal, effect = s.effect, computed = s.computed, batch = s.batch || batch, untracked = s.untracked || untracked);
69
63
  }
70
64
  });
71
65
 
72
66
  // store.js
73
- function store(values, parent) {
74
- if (!values) return values;
75
- if (values[_signals]) return values;
76
- if (Array.isArray(values)) return list(values);
77
- if (values.constructor !== Object || values[Symbol.toStringTag]) return values;
78
- let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);
79
- const state = new Proxy(signals, {
80
- get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),
81
- set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),
82
- // bump length for new signal
83
- deleteProperty: (_, key) => (signals[key] && (signals[key][Symbol.dispose]?.(), delete signals[key], _len.value--), 1),
84
- // subscribe to length when object is spread
85
- ownKeys: () => (_len.value, Reflect.ownKeys(signals))
86
- });
87
- for (let key in values) {
88
- const desc = Object.getOwnPropertyDescriptor(values, key);
89
- if (desc?.get) {
90
- (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);
91
- } else {
92
- signals[key] = null;
93
- set(signals, key, values[key]);
94
- }
95
- }
96
- return state;
97
- }
98
- function list(values) {
99
- let lastProp;
100
- if (values[_signals]) return values;
101
- let _len = signal(values.length), signals = Array(values.length).fill();
102
- const state = new Proxy(signals, {
103
- get(_, key) {
104
- if (typeof key === "symbol") return key === _change ? _len : key === _signals ? signals : signals[key];
105
- if (key === "length") return mut.includes(lastProp) ? _len.peek() : _len.value;
106
- lastProp = key;
107
- if (signals[key]) return signals[key].valueOf();
108
- if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;
109
- },
110
- set(_, key, v) {
111
- if (key === "length") {
112
- for (let i = v; i < signals.length; i++) delete state[i];
113
- _len.value = signals.length = v;
114
- return true;
115
- }
116
- set(signals, key, v);
117
- if (key >= _len.peek()) _len.value = signals.length = +key + 1;
118
- return true;
119
- },
120
- deleteProperty: (_, key) => (signals[key]?.[Symbol.dispose]?.(), delete signals[key], 1)
121
- });
122
- return state;
123
- }
124
- function set(signals, key, v) {
125
- let s = signals[key];
126
- if (key[0] === "_") signals[key] = v;
127
- else if (!s) signals[key] = s = v?.peek ? v : signal(store(v));
128
- else if (v === s.peek()) ;
129
- else if (s._set) s._set(v);
130
- else if (Array.isArray(v) && Array.isArray(s.peek())) {
131
- const cur = s.peek();
132
- if (cur[_change]) batch(() => {
133
- for (let i = 0; i < v.length; i++) cur[i] = v[i];
134
- cur.length = v.length;
135
- });
136
- else s.value = v;
137
- } else s.value = store(v);
138
- }
139
- var _signals, _change, mut;
67
+ var _signals, _change, store, list, mut, set, store_default;
140
68
  var init_store = __esm({
141
69
  "store.js"() {
142
70
  init_signal();
143
71
  _signals = Symbol("signals");
144
72
  _change = Symbol("change");
73
+ store = (values, parent) => {
74
+ if (!values) return values;
75
+ if (values[_signals]) return values;
76
+ if (Array.isArray(values)) return list(values);
77
+ if (values.constructor !== Object || values[Symbol.toStringTag]) return values;
78
+ let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);
79
+ const state = new Proxy(signals, {
80
+ get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),
81
+ set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),
82
+ // bump length for new signal
83
+ deleteProperty: (_, key) => (signals[key] && (signals[key][Symbol.dispose]?.(), delete signals[key], _len.value--), 1),
84
+ // subscribe to length when object is spread
85
+ ownKeys: () => (_len.value, Reflect.ownKeys(signals))
86
+ });
87
+ for (let key in values) {
88
+ const desc = Object.getOwnPropertyDescriptor(values, key);
89
+ if (desc?.get) {
90
+ (signals[key] = computed(desc.get.bind(state)))._set = desc.set?.bind(state);
91
+ } else {
92
+ signals[key] = null;
93
+ set(signals, key, values[key]);
94
+ }
95
+ }
96
+ return state;
97
+ };
98
+ list = (values) => {
99
+ let lastProp;
100
+ if (values[_signals]) return values;
101
+ let _len = signal(values.length), signals = Array(values.length).fill();
102
+ const state = new Proxy(signals, {
103
+ get(_, key) {
104
+ if (typeof key === "symbol") return key === _change ? _len : key === _signals ? signals : signals[key];
105
+ if (key === "length") return mut.includes(lastProp) ? _len.peek() : _len.value;
106
+ lastProp = key;
107
+ if (signals[key]) return signals[key].valueOf();
108
+ if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;
109
+ },
110
+ set(_, key, v) {
111
+ if (key === "length") {
112
+ for (let i = v; i < signals.length; i++) delete state[i];
113
+ _len.value = signals.length = v;
114
+ return true;
115
+ }
116
+ set(signals, key, v);
117
+ if (key >= _len.peek()) _len.value = signals.length = +key + 1;
118
+ return true;
119
+ },
120
+ deleteProperty: (_, key) => (signals[key]?.[Symbol.dispose]?.(), delete signals[key], 1)
121
+ });
122
+ return state;
123
+ };
145
124
  mut = ["push", "pop", "shift", "unshift", "splice"];
125
+ set = (signals, key, v) => {
126
+ let s = signals[key];
127
+ if (key[0] === "_") signals[key] = v;
128
+ else if (!s) signals[key] = s = v?.peek ? v : signal(store(v));
129
+ else if (v === s.peek()) ;
130
+ else if (s._set) s._set(v);
131
+ else if (Array.isArray(v) && Array.isArray(s.peek())) {
132
+ const cur = s.peek();
133
+ if (cur[_change]) batch(() => {
134
+ for (let i = 0; i < v.length; i++) cur[i] = v[i];
135
+ cur.length = v.length;
136
+ });
137
+ else s.value = v;
138
+ } else s.value = store(v);
139
+ };
140
+ store_default = store;
146
141
  }
147
142
  });
148
143
 
149
144
  // core.js
150
145
  function sprae(el, values) {
151
- if (!el?.childNodes) return;
152
146
  if (el[_state]) return Object.assign(el[_state], values);
153
147
  const state = store(values || {}), offs = [], fx = [];
154
- const init = (el2) => {
155
- if (!el2.childNodes) return;
156
- for (let i = 0; i < el2.attributes?.length; ) {
157
- let { name, value } = el2.attributes[i], update, pfx = name[0] === ":" ? 1 : name[0] === "s" && name[1] === "-" ? 2 : 0;
158
- if (pfx) {
148
+ const init = (el2, attrs = el2.attributes) => {
149
+ if (attrs) for (let i = 0; i < attrs.length; ) {
150
+ let { name, value } = attrs[i], pfx, update, dir2;
151
+ if (pfx = name[0] === ":" ? 1 : name[0] === "s" && name[1] === "-" ? 2 : 0) {
159
152
  el2.removeAttribute(name);
160
- for (let dir2 of name.slice(pfx).split(":")) {
153
+ for (dir2 of name.slice(pfx).split(":")) {
161
154
  update = (directive[dir2] || directive.default)(el2, value, state, dir2);
162
155
  fx.push(update), offs.push(effect(update));
163
156
  if (el2[_state] === null) return;
164
157
  }
165
158
  } else i++;
166
159
  }
167
- for (let child of [...el2.childNodes]) init(child);
160
+ for (let child of el2.childNodes) child.nodeType == 1 && init(child);
168
161
  };
169
162
  init(el);
170
163
  if (!(_state in el)) {
@@ -290,7 +283,7 @@ var init_each = __esm({
290
283
  else while (i < prevl) cur[i] = newItems[i++];
291
284
  for (; i < newl; i++) {
292
285
  cur[i] = newItems[i];
293
- let idx = i, scope = store({
286
+ let idx = i, scope = store_default({
294
287
  [itemVar]: cur[_signals]?.[idx] || cur[idx],
295
288
  [idxVar]: keys2 ? keys2[idx] : idx
296
289
  }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);
@@ -526,7 +519,7 @@ var init_with = __esm({
526
519
  "directive/with.js"() {
527
520
  init_core();
528
521
  init_store();
529
- dir("with", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store(values, rootState))));
522
+ dir("with", (el, rootState, state) => (state = null, (values) => sprae(el, state ? values : state = store_default(values, rootState))));
530
523
  }
531
524
  });
532
525