@esportsplus/template 0.16.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.
- package/.editorconfig +9 -0
- package/.gitattributes +2 -0
- package/.github/dependabot.yml +25 -0
- package/.github/workflows/bump.yml +9 -0
- package/.github/workflows/dependabot.yml +12 -0
- package/.github/workflows/publish.yml +16 -0
- package/README.md +385 -0
- package/build/attributes.d.ts +5 -0
- package/build/attributes.js +212 -0
- package/build/compiler/codegen.d.ts +21 -0
- package/build/compiler/codegen.js +303 -0
- package/build/compiler/constants.d.ts +16 -0
- package/build/compiler/constants.js +19 -0
- package/build/compiler/index.d.ts +14 -0
- package/build/compiler/index.js +61 -0
- package/build/compiler/parser.d.ts +19 -0
- package/build/compiler/parser.js +164 -0
- package/build/compiler/plugins/tsc.d.ts +3 -0
- package/build/compiler/plugins/tsc.js +4 -0
- package/build/compiler/plugins/vite.d.ts +13 -0
- package/build/compiler/plugins/vite.js +8 -0
- package/build/compiler/ts-analyzer.d.ts +4 -0
- package/build/compiler/ts-analyzer.js +63 -0
- package/build/compiler/ts-parser.d.ts +24 -0
- package/build/compiler/ts-parser.js +67 -0
- package/build/constants.d.ts +12 -0
- package/build/constants.js +25 -0
- package/build/event/index.d.ts +10 -0
- package/build/event/index.js +90 -0
- package/build/event/onconnect.d.ts +3 -0
- package/build/event/onconnect.js +15 -0
- package/build/event/onresize.d.ts +3 -0
- package/build/event/onresize.js +26 -0
- package/build/event/ontick.d.ts +6 -0
- package/build/event/ontick.js +41 -0
- package/build/html.d.ts +9 -0
- package/build/html.js +7 -0
- package/build/index.d.ts +8 -0
- package/build/index.js +12 -0
- package/build/render.d.ts +3 -0
- package/build/render.js +8 -0
- package/build/slot/array.d.ts +25 -0
- package/build/slot/array.js +189 -0
- package/build/slot/cleanup.d.ts +4 -0
- package/build/slot/cleanup.js +23 -0
- package/build/slot/effect.d.ts +12 -0
- package/build/slot/effect.js +85 -0
- package/build/slot/index.d.ts +7 -0
- package/build/slot/index.js +14 -0
- package/build/slot/render.d.ts +2 -0
- package/build/slot/render.js +44 -0
- package/build/svg.d.ts +5 -0
- package/build/svg.js +14 -0
- package/build/types.d.ts +23 -0
- package/build/types.js +1 -0
- package/build/utilities.d.ts +7 -0
- package/build/utilities.js +31 -0
- package/package.json +43 -0
- package/src/attributes.ts +313 -0
- package/src/compiler/codegen.ts +492 -0
- package/src/compiler/constants.ts +25 -0
- package/src/compiler/index.ts +87 -0
- package/src/compiler/parser.ts +242 -0
- package/src/compiler/plugins/tsc.ts +6 -0
- package/src/compiler/plugins/vite.ts +10 -0
- package/src/compiler/ts-analyzer.ts +89 -0
- package/src/compiler/ts-parser.ts +112 -0
- package/src/constants.ts +44 -0
- package/src/event/index.ts +130 -0
- package/src/event/onconnect.ts +22 -0
- package/src/event/onresize.ts +37 -0
- package/src/event/ontick.ts +59 -0
- package/src/html.ts +18 -0
- package/src/index.ts +19 -0
- package/src/llm.txt +403 -0
- package/src/render.ts +13 -0
- package/src/slot/array.ts +257 -0
- package/src/slot/cleanup.ts +37 -0
- package/src/slot/effect.ts +114 -0
- package/src/slot/index.ts +17 -0
- package/src/slot/render.ts +61 -0
- package/src/svg.ts +27 -0
- package/src/types.ts +40 -0
- package/src/utilities.ts +53 -0
- package/storage/compiler-architecture-2026-01-13.md +420 -0
- package/test/dist/test.js +1912 -0
- package/test/dist/test.js.map +1 -0
- package/test/index.ts +648 -0
- package/test/vite.config.ts +23 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sources":["../../node_modules/.pnpm/@esportsplus+utilities@0.27.2/node_modules/@esportsplus/utilities/build/encryption.js","../../node_modules/.pnpm/@esportsplus+utilities@0.27.2/node_modules/@esportsplus/utilities/build/json.js","../../node_modules/.pnpm/@esportsplus+utilities@0.27.2/node_modules/@esportsplus/utilities/build/hash.js","../../node_modules/.pnpm/@esportsplus+utilities@0.27.2/node_modules/@esportsplus/utilities/build/ulid.js","../../node_modules/.pnpm/@esportsplus+utilities@0.27.2/node_modules/@esportsplus/utilities/build/uuid.js","../../node_modules/.pnpm/@esportsplus+utilities@0.27.2/node_modules/@esportsplus/utilities/build/index.js","../../node_modules/.pnpm/@esportsplus+reactivity@file+..+reactivity/node_modules/@esportsplus/reactivity/build/constants.js","../../node_modules/.pnpm/@esportsplus+reactivity@file+..+reactivity/node_modules/@esportsplus/reactivity/build/system.js","../../node_modules/.pnpm/@esportsplus+reactivity@file+..+reactivity/node_modules/@esportsplus/reactivity/build/reactive/object.js","../../node_modules/.pnpm/@esportsplus+reactivity@file+..+reactivity/node_modules/@esportsplus/reactivity/build/reactive/array.js","../../node_modules/.pnpm/@esportsplus+reactivity@file+..+reactivity/node_modules/@esportsplus/reactivity/build/reactive/index.js","../../build/template/constants.js","../../build/template/utilities.js","../../build/template/slot/cleanup.js","../../build/template/slot/render.js","../../build/template/slot/effect.js","../../build/template/slot/array.js","../../build/template/slot/index.js","../../build/template/event/ontick.js","../../build/template/event/index.js","../../node_modules/.pnpm/@esportsplus+queue@0.2.0/node_modules/@esportsplus/queue/build/queue.js","../../node_modules/.pnpm/@esportsplus+queue@0.2.0/node_modules/@esportsplus/queue/build/constants.js","../../node_modules/.pnpm/@esportsplus+queue@0.2.0/node_modules/@esportsplus/queue/build/scheduler.js","../../node_modules/.pnpm/@esportsplus+queue@0.2.0/node_modules/@esportsplus/queue/build/index.js","../../build/template/attributes.js","../../build/template/html.js","../../build/template/svg.js","../../build/template/index.js","../index.ts"],"sourcesContent":["let decoder = new TextDecoder(), encoder = new TextEncoder(), iterations = 100000;\nasync function deriveKey(password, salt, usage) {\n let keyMaterial = await crypto.subtle.importKey('raw', encoder.encode(password), 'PBKDF2', false, ['deriveKey']);\n return crypto.subtle.deriveKey({ hash: 'SHA-256', iterations, name: 'PBKDF2', salt: new Uint8Array(salt) }, keyMaterial, { length: 256, name: 'AES-GCM' }, false, [usage]);\n}\nconst decrypt = async (content, password) => {\n let parts = content.split('.');\n if (parts.length !== 3) {\n throw new Error('@esportsplus/crypto: decrypt received invalid ciphertext format');\n }\n try {\n let [saltB64, ivB64, ciphertextB64] = parts, decrypted = await crypto.subtle.decrypt({\n iv: Buffer.from(ivB64, 'base64'),\n name: 'AES-GCM'\n }, await deriveKey(password, Buffer.from(saltB64, 'base64'), 'decrypt'), Buffer.from(ciphertextB64, 'base64'));\n return JSON.parse(decoder.decode(decrypted));\n }\n catch {\n throw new Error('@esportsplus/crypto: decryption failed - invalid password or corrupted data');\n }\n};\nconst encrypt = async (content, password) => {\n let iv = crypto.getRandomValues(new Uint8Array(12)), salt = crypto.getRandomValues(new Uint8Array(16)), ciphertext = await crypto.subtle.encrypt({\n iv,\n name: 'AES-GCM'\n }, await deriveKey(password, salt, 'encrypt'), encoder.encode(JSON.stringify(content)));\n return [\n Buffer.from(salt).toString('base64'),\n Buffer.from(iv).toString('base64'),\n Buffer.from(ciphertext).toString('base64')\n ].join('.');\n};\nexport { decrypt, encrypt };\n","BigInt.prototype.toJSON = function () {\n return this.toString();\n};\nconst { parse, stringify } = JSON;\nexport { parse, stringify };\n","let encoder = new TextEncoder();\nfunction bufferToHex(buffer) {\n let bytes = new Uint8Array(buffer), hex = '';\n for (let i = 0, n = bytes.length; i < n; i++) {\n hex += bytes[i].toString(16).padStart(2, '0');\n }\n return hex;\n}\nfunction canonicalize(value) {\n if (value === null || value === undefined) {\n return String(value);\n }\n if (typeof value !== 'object') {\n return JSON.stringify(value);\n }\n if (Array.isArray(value)) {\n let items = '';\n for (let i = 0, n = value.length; i < n; i++) {\n items += (i > 0 ? ',' : '') + canonicalize(value[i]);\n }\n return '[' + items + ']';\n }\n let keys = Object.keys(value).sort(), items = '';\n for (let i = 0, n = keys.length; i < n; i++) {\n let k = keys[i];\n items += (i > 0 ? ',' : '') + JSON.stringify(k) + ':' + canonicalize(value[k]);\n }\n return '{' + items + '}';\n}\nasync function hash(value, secret) {\n let data = encoder.encode(typeof value === 'string' ? value : canonicalize(value));\n if (secret) {\n let key = await crypto.subtle.importKey('raw', encoder.encode(secret), { hash: 'SHA-256', name: 'HMAC' }, false, ['sign']);\n return bufferToHex(await crypto.subtle.sign('HMAC', key, data));\n }\n return bufferToHex(await crypto.subtle.digest('SHA-256', data));\n}\nhash.verify = (a, b) => {\n let maxLen = Math.max(a.length, b.length), result = a.length ^ b.length;\n for (let i = 0; i < maxLen; i++) {\n result |= (a.charCodeAt(i) || 0) ^ (b.charCodeAt(i) || 0);\n }\n return result === 0;\n};\nexport default hash;\n","const ENCODING = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';\nconst RANDOM_LEN = 16;\nconst TIME_LEN = 10;\nconst TIME_MAX = 0xFFFFFFFFFFFF;\nconst VALID_CHARACTERS = {};\nfor (let i = 0, n = ENCODING.length; i < n; i++) {\n let char = ENCODING[i];\n VALID_CHARACTERS[char] = true;\n VALID_CHARACTERS[char.toLowerCase()] = true;\n}\nfunction encodeRandom(len) {\n let bytes = new Uint8Array(10), output = '';\n crypto.getRandomValues(bytes);\n let buffer = 0, bitsInBuffer = 0, byteIndex = 0;\n for (let i = 0; i < len; i++) {\n while (bitsInBuffer < 5) {\n buffer = (buffer << 8) | bytes[byteIndex++];\n bitsInBuffer += 8;\n }\n bitsInBuffer -= 5;\n output += ENCODING[(buffer >> bitsInBuffer) & 0x1F];\n }\n return output;\n}\nfunction encodeTime(timestamp, len) {\n let output = '';\n for (let i = len; i > 0; i--) {\n output = ENCODING[timestamp % 32] + output;\n timestamp = Math.floor(timestamp / 32);\n }\n return output;\n}\nconst generate = (seedTime) => {\n let timestamp = seedTime ?? Date.now();\n if (timestamp < 0 || timestamp > TIME_MAX || !Number.isInteger(timestamp)) {\n throw new Error(`Invalid timestamp: ${timestamp}`);\n }\n return (encodeTime(timestamp, TIME_LEN) + encodeRandom(RANDOM_LEN));\n};\nconst isValid = (id) => {\n if (typeof id !== 'string' || id.length !== 26) {\n return false;\n }\n let first = id.charCodeAt(0);\n if (first < 48 || first > 55) {\n return false;\n }\n for (let i = 1; i < 26; i++) {\n if (!VALID_CHARACTERS[id[i]]) {\n return false;\n }\n }\n return true;\n};\nexport default { generate, isValid };\n","export default crypto.randomUUID.bind(crypto);\n","let objToString = Object.prototype.toString, type = (value) => objToString.call(value);\nconst { defineProperty } = Object;\nconst { isArray } = Array;\nconst isAsyncFunction = (value) => {\n return type(value) === '[object AsyncFunction]';\n};\nconst isDate = (val) => {\n return type(val) === '[object Date]';\n};\nconst isFunction = (value) => {\n return typeof value === 'function';\n};\nconst isInstanceOf = (instance, match) => {\n return typeof instance === 'object' && instance !== null && instance.constructor === match;\n};\nconst isMap = (val) => {\n return type(val) === '[object Map]';\n};\nconst isNumber = (value) => {\n return typeof value === 'number' && !Number.isNaN(value);\n};\nconst isObject = (value) => {\n return typeof value === 'object' && value !== null && value.constructor === Object;\n};\nconst isPromise = (val) => {\n return val instanceof Promise;\n};\nconst isSet = (val) => {\n return type(val) === '[object Set]';\n};\nconst isString = (value) => {\n return typeof value === 'string';\n};\nconst isRegExp = (val) => {\n return type(val) === '[object RegExp]';\n};\nconst isSymbol = (val) => {\n return typeof val === 'symbol';\n};\nconst noop = (() => { });\nexport { defineProperty, isArray, isAsyncFunction, isDate, isFunction, isInstanceOf, isMap, isNumber, isObject, isPromise, isRegExp, isSet, isString, isSymbol, noop };\nexport * from './encryption.js';\nexport * from './json.js';\nexport { default as bps } from './bps.js';\nexport { default as chunk } from './chunk.js';\nexport { EMPTY_ARRAY, EMPTY_OBJECT } from './constants.js';\nexport { default as debounce } from './debounce.js';\nexport { default as hash } from './hash.js';\nexport { default as number } from './number.js';\nexport { default as omit } from './omit.js';\nexport { default as pick } from './pick.js';\nexport { default as promise } from './promise.js';\nexport { default as request } from './request.js';\nexport { default as sleep } from './sleep.js';\nexport { default as slugify } from './slugify.js';\nexport { default as toArray } from './toArray.js';\nexport { default as truncate } from './truncate.js';\nexport { default as ulid } from './ulid.js';\nexport { default as uuid } from './uuid.js';\n","const COMPUTED = Symbol('reactivity.computed');\nconst PACKAGE_NAME = '@esportsplus/reactivity';\nconst REACTIVE_ARRAY = Symbol('reactivity.reactive.array');\nconst REACTIVE_OBJECT = Symbol('reactivity.reactive.object');\nconst SIGNAL = Symbol('reactivity.signal');\nconst STABILIZER_IDLE = 0;\nconst STABILIZER_RESCHEDULE = 1;\nconst STABILIZER_RUNNING = 2;\nconst STABILIZER_SCHEDULED = 3;\nconst STATE_NONE = 0;\nconst STATE_CHECK = 1 << 0;\nconst STATE_DIRTY = 1 << 1;\nconst STATE_RECOMPUTING = 1 << 2;\nconst STATE_IN_HEAP = 1 << 3;\nconst STATE_NOTIFY_MASK = (STATE_CHECK | STATE_DIRTY);\nexport { COMPUTED, REACTIVE_ARRAY, REACTIVE_OBJECT, PACKAGE_NAME, SIGNAL, STABILIZER_IDLE, STABILIZER_RESCHEDULE, STABILIZER_RUNNING, STABILIZER_SCHEDULED, STATE_CHECK, STATE_DIRTY, STATE_IN_HEAP, STATE_NONE, STATE_NOTIFY_MASK, STATE_RECOMPUTING };\n","import { COMPUTED, SIGNAL, STABILIZER_IDLE, STABILIZER_RESCHEDULE, STABILIZER_RUNNING, STABILIZER_SCHEDULED, STATE_CHECK, STATE_DIRTY, STATE_IN_HEAP, STATE_NONE, STATE_NOTIFY_MASK, STATE_RECOMPUTING } from './constants.js';\nimport { isObject } from '@esportsplus/utilities';\nlet depth = 0, heap = new Array(64), heap_i = 0, heap_n = 0, linkPool = [], linkPoolMax = 1000, microtask = queueMicrotask, notified = false, observer = null, scope = null, stabilizer = STABILIZER_IDLE, version = 0;\nfunction cleanup(computed) {\n if (!computed.cleanup) {\n return;\n }\n let value = computed.cleanup;\n if (typeof value === 'function') {\n value();\n }\n else {\n for (let i = 0, n = value.length; i < n; i++) {\n value[i]();\n }\n }\n computed.cleanup = null;\n}\nfunction deleteFromHeap(computed) {\n let state = computed.state;\n if (!(state & STATE_IN_HEAP)) {\n return;\n }\n computed.state = state & ~STATE_IN_HEAP;\n let height = computed.height;\n if (computed.prevHeap === computed) {\n heap[height] = undefined;\n }\n else {\n let next = computed.nextHeap, dhh = heap[height], end = next ?? dhh;\n if (computed === dhh) {\n heap[height] = next;\n }\n else {\n computed.prevHeap.nextHeap = next;\n }\n end.prevHeap = computed.prevHeap;\n }\n computed.nextHeap = undefined;\n computed.prevHeap = computed;\n}\nfunction insertIntoHeap(computed) {\n let state = computed.state;\n if (state & STATE_IN_HEAP) {\n return;\n }\n computed.state = state | STATE_IN_HEAP;\n let height = computed.height, heapAtHeight = heap[height];\n if (heapAtHeight === undefined) {\n heap[height] = computed;\n }\n else {\n let tail = heapAtHeight.prevHeap;\n tail.nextHeap = computed;\n computed.prevHeap = tail;\n heapAtHeight.prevHeap = computed;\n }\n if (height > heap_n) {\n heap_n = height;\n if (height >= heap.length) {\n heap.length = Math.max(height + 1, Math.ceil(heap.length * 2));\n }\n }\n}\nfunction link(dep, sub) {\n let prevDep = sub.depsTail;\n if (prevDep && prevDep.dep === dep) {\n return;\n }\n let nextDep = null;\n if (sub.state & STATE_RECOMPUTING) {\n nextDep = prevDep ? prevDep.nextDep : sub.deps;\n if (nextDep && nextDep.dep === dep) {\n nextDep.version = version;\n sub.depsTail = nextDep;\n return;\n }\n }\n let prevSub = dep.subsTail;\n if (prevSub &&\n prevSub.version === version &&\n prevSub.sub === sub) {\n return;\n }\n let pooled = linkPool.pop(), newLink = sub.depsTail =\n dep.subsTail = pooled\n ? (pooled.dep = dep,\n pooled.sub = sub,\n pooled.nextDep = nextDep,\n pooled.prevSub = prevSub,\n pooled.nextSub = null,\n pooled.version = version,\n pooled)\n : {\n dep,\n sub,\n nextDep,\n prevSub,\n nextSub: null,\n version\n };\n if (prevDep) {\n prevDep.nextDep = newLink;\n }\n else {\n sub.deps = newLink;\n }\n if (prevSub) {\n prevSub.nextSub = newLink;\n }\n else {\n dep.subs = newLink;\n }\n}\nfunction notify(computed, newState = STATE_DIRTY) {\n let state = computed.state;\n if ((state & STATE_NOTIFY_MASK) >= newState) {\n return;\n }\n computed.state = state | newState;\n for (let link = computed.subs; link; link = link.nextSub) {\n notify(link.sub, STATE_CHECK);\n }\n}\nfunction recompute(computed, del) {\n if (del) {\n deleteFromHeap(computed);\n }\n else {\n computed.nextHeap = undefined;\n computed.prevHeap = computed;\n }\n if (computed.cleanup) {\n cleanup(computed);\n }\n let o = observer, ok = true, value;\n observer = computed;\n computed.depsTail = null;\n computed.state = STATE_RECOMPUTING;\n depth++;\n version++;\n try {\n value = computed.fn(onCleanup);\n }\n catch (e) {\n ok = false;\n }\n depth--;\n observer = o;\n computed.state = STATE_NONE;\n let depsTail = computed.depsTail, remove = depsTail ? depsTail.nextDep : computed.deps;\n if (remove) {\n do {\n remove = unlink(remove);\n } while (remove);\n if (depsTail) {\n depsTail.nextDep = null;\n }\n else {\n computed.deps = null;\n }\n }\n if (ok && value !== computed.value) {\n computed.value = value;\n for (let c = computed.subs; c; c = c.nextSub) {\n let s = c.sub, state = s.state;\n if (state & STATE_CHECK) {\n s.state = state | STATE_DIRTY;\n }\n insertIntoHeap(s);\n }\n schedule();\n }\n}\nfunction schedule() {\n if (stabilizer === STABILIZER_SCHEDULED) {\n return;\n }\n if (stabilizer === STABILIZER_IDLE && !depth) {\n stabilizer = STABILIZER_SCHEDULED;\n microtask(stabilize);\n }\n else if (stabilizer === STABILIZER_RUNNING) {\n stabilizer = STABILIZER_RESCHEDULE;\n }\n}\nfunction stabilize() {\n let o = observer;\n observer = null;\n stabilizer = STABILIZER_RUNNING;\n for (heap_i = 0; heap_i <= heap_n; heap_i++) {\n let computed = heap[heap_i];\n heap[heap_i] = undefined;\n while (computed !== undefined) {\n let next = computed.nextHeap;\n recompute(computed, false);\n computed = next;\n }\n }\n while (heap_n > 0 && heap[heap_n] === undefined) {\n heap_n--;\n }\n observer = o;\n if (stabilizer === STABILIZER_RESCHEDULE) {\n microtask(stabilize);\n }\n else {\n stabilizer = STABILIZER_IDLE;\n }\n}\nfunction unlink(link) {\n let dep = link.dep, nextDep = link.nextDep, nextSub = link.nextSub, prevSub = link.prevSub;\n if (nextSub) {\n nextSub.prevSub = prevSub;\n }\n else {\n dep.subsTail = prevSub;\n }\n if (prevSub) {\n prevSub.nextSub = nextSub;\n }\n else if ((dep.subs = nextSub) === null && dep.type === COMPUTED) {\n dispose(dep);\n }\n if (linkPool.length < linkPoolMax) {\n link.dep = link.sub = null;\n link.nextDep = link.nextSub = link.prevSub = null;\n linkPool.push(link);\n }\n return nextDep;\n}\nfunction update(computed) {\n if (computed.state & STATE_CHECK) {\n for (let link = computed.deps; link; link = link.nextDep) {\n let dep = link.dep;\n if (dep.type === COMPUTED) {\n update(dep);\n if (computed.state & STATE_DIRTY) {\n break;\n }\n }\n }\n }\n if (computed.state & STATE_DIRTY) {\n recompute(computed, true);\n }\n computed.state = STATE_NONE;\n}\nconst computed = (fn) => {\n let self = {\n cleanup: null,\n deps: null,\n depsTail: null,\n fn: fn,\n height: 0,\n nextHeap: undefined,\n prevHeap: null,\n state: STATE_NONE,\n subs: null,\n subsTail: null,\n type: COMPUTED,\n value: undefined,\n };\n self.prevHeap = self;\n if (observer) {\n if (observer.depsTail === null) {\n self.height = observer.height;\n recompute(self, false);\n }\n else {\n self.height = observer.height + 1;\n insertIntoHeap(self);\n schedule();\n }\n link(self, observer);\n onCleanup(() => dispose(self));\n }\n else {\n recompute(self, false);\n root.disposables++;\n if (scope) {\n onCleanup(() => dispose(self));\n }\n }\n return self;\n};\nconst dispose = (computed) => {\n deleteFromHeap(computed);\n let dep = computed.deps;\n while (dep) {\n dep = unlink(dep);\n }\n computed.deps = null;\n if (computed.cleanup) {\n cleanup(computed);\n }\n};\nconst effect = (fn) => {\n let c = computed(fn);\n return () => {\n dispose(c);\n };\n};\nconst isComputed = (value) => {\n return isObject(value) && value.type === COMPUTED;\n};\nconst isSignal = (value) => {\n return isObject(value) && value.type === SIGNAL;\n};\nconst onCleanup = (fn) => {\n let parent = observer || scope;\n if (!parent) {\n return fn;\n }\n let cleanup = parent.cleanup;\n if (!cleanup) {\n parent.cleanup = fn;\n }\n else if (typeof cleanup === 'function') {\n parent.cleanup = [cleanup, fn];\n }\n else {\n cleanup.push(fn);\n }\n return fn;\n};\nconst read = (node) => {\n if (observer) {\n link(node, observer);\n if (node.type === COMPUTED) {\n let height = node.height;\n if (height >= observer.height) {\n observer.height = height + 1;\n }\n if (height >= heap_i || node.state & STATE_NOTIFY_MASK) {\n if (!notified) {\n notified = true;\n for (let i = 0; i <= heap_n; i++) {\n for (let computed = heap[i]; computed !== undefined; computed = computed.nextHeap) {\n notify(computed);\n }\n }\n }\n update(node);\n }\n }\n }\n return node.value;\n};\nconst root = (fn) => {\n let c, d = root.disposables, o = observer, s = scope, self = null, tracking = fn.length, value;\n observer = null;\n root.disposables = 0;\n if (tracking) {\n scope = self = { cleanup: null };\n value = fn(c = () => dispose(self));\n }\n else {\n scope = null;\n value = fn();\n }\n observer = o;\n root.disposables = d;\n scope = s;\n if (c) {\n onCleanup(c);\n }\n return value;\n};\nroot.disposables = 0;\nconst signal = (value) => {\n return {\n subs: null,\n subsTail: null,\n type: SIGNAL,\n value,\n };\n};\nconst write = (signal, value) => {\n if (signal.value === value) {\n return;\n }\n notified = false;\n signal.value = value;\n if (signal.subs === null) {\n return;\n }\n for (let link = signal.subs; link; link = link.nextSub) {\n insertIntoHeap(link.sub);\n }\n schedule();\n};\nexport { computed, dispose, effect, isComputed, isSignal, onCleanup, read, root, signal, write };\n","import { defineProperty, isArray, isPromise } from '@esportsplus/utilities';\nimport { computed, dispose, effect, read, root, signal, write } from '../system.js';\nimport { COMPUTED, REACTIVE_ARRAY, REACTIVE_OBJECT, SIGNAL } from '../constants.js';\nimport { ReactiveArray } from './array.js';\nclass ReactiveObject {\n disposers = null;\n constructor(data) {\n if (data == null) {\n return;\n }\n for (let key in data) {\n let value = data[key], type = typeof value;\n if (type === 'function') {\n let node = this[COMPUTED](value);\n defineProperty(this, key, {\n enumerable: true,\n get: () => read(node)\n });\n continue;\n }\n if (value == null || type !== 'object') {\n }\n else if (isArray(value)) {\n defineProperty(this, key, {\n enumerable: true,\n value: this[REACTIVE_ARRAY](value)\n });\n continue;\n }\n let node = signal(value);\n defineProperty(this, key, {\n enumerable: true,\n get() {\n return read(node);\n },\n set(v) {\n write(node, v);\n }\n });\n }\n }\n [REACTIVE_ARRAY](value) {\n let node = new ReactiveArray(...value);\n (this.disposers ??= []).push(() => node.dispose());\n return node;\n }\n [COMPUTED](value) {\n return root(() => {\n let node = computed(value);\n if (isPromise(node.value)) {\n let factory = node, version = 0;\n node = signal(undefined);\n (this.disposers ??= []).push(effect(() => {\n let id = ++version;\n read(factory).then((v) => {\n if (id !== version) {\n return;\n }\n write(node, v);\n });\n }));\n }\n else {\n (this.disposers ??= []).push(() => dispose(node));\n }\n return node;\n });\n }\n [SIGNAL](value) {\n return signal(value);\n }\n dispose() {\n let disposers = this.disposers, disposer;\n if (!disposers) {\n return;\n }\n while (disposer = disposers.pop()) {\n disposer();\n }\n }\n}\nObject.defineProperty(ReactiveObject.prototype, REACTIVE_OBJECT, { value: true });\nconst isReactiveObject = (value) => {\n return typeof value === 'object' && value !== null && value[REACTIVE_OBJECT] === true;\n};\nexport { isReactiveObject, ReactiveObject };\n","import { isArray } from '@esportsplus/utilities';\nimport { read, signal, write } from '../system.js';\nimport { REACTIVE_ARRAY } from '../constants.js';\nimport { isReactiveObject } from './object.js';\nfunction dispose(value) {\n if (isReactiveObject(value)) {\n value.dispose();\n }\n}\nclass ReactiveArray extends Array {\n _length;\n listeners = {};\n constructor(...items) {\n super(...items);\n this._length = signal(items.length);\n }\n $length() {\n return read(this._length);\n }\n $set(i, value) {\n let prev = this[i];\n if (prev === value) {\n return;\n }\n this[i] = value;\n if (i >= super.length) {\n write(this._length, i + 1);\n }\n this.dispatch('set', { index: i, item: value });\n }\n clear() {\n this.dispose();\n write(this._length, 0);\n this.dispatch('clear');\n }\n concat(...items) {\n let added = [];\n for (let i = 0, n = items.length; i < n; i++) {\n let item = items[i];\n if (isArray(item)) {\n for (let j = 0, o = item.length; j < o; j++) {\n added.push(item[j]);\n super.push(item[j]);\n }\n }\n else {\n added.push(item);\n super.push(item);\n }\n }\n if (added.length) {\n write(this._length, super.length);\n this.dispatch('concat', { items: added });\n }\n return this;\n }\n dispatch(event, value) {\n let listeners = this.listeners[event];\n if (!listeners) {\n return;\n }\n for (let i = 0, n = listeners.length; i < n; i++) {\n let listener = listeners[i];\n if (listener === null) {\n continue;\n }\n try {\n listener(value);\n if (listener.once !== undefined) {\n listeners[i] = null;\n }\n }\n catch {\n listeners[i] = null;\n }\n }\n while (listeners.length && listeners[listeners.length - 1] === null) {\n listeners.pop();\n }\n }\n dispose() {\n while (this.length) {\n dispose(super.pop());\n }\n write(this._length, 0);\n }\n on(event, listener) {\n let listeners = this.listeners[event];\n if (listeners === undefined) {\n this.listeners[event] = [listener];\n }\n else {\n let hole = listeners.length;\n for (let i = 0, n = hole; i < n; i++) {\n let l = listeners[i];\n if (l === listener) {\n return;\n }\n else if (l === null && hole === n) {\n hole = i;\n }\n }\n listeners[hole] = listener;\n while (listeners.length && listeners[listeners.length - 1] === null) {\n listeners.pop();\n }\n }\n }\n once(event, listener) {\n listener.once = true;\n this.on(event, listener);\n }\n pop() {\n let item = super.pop();\n if (item !== undefined) {\n dispose(item);\n write(this._length, super.length);\n this.dispatch('pop', { item });\n }\n return item;\n }\n push(...items) {\n if (!items.length) {\n return super.length;\n }\n let length = super.push(...items);\n write(this._length, length);\n this.dispatch('push', { items });\n return length;\n }\n reverse() {\n super.reverse();\n this.dispatch('reverse');\n return this;\n }\n shift() {\n let item = super.shift();\n if (item !== undefined) {\n dispose(item);\n write(this._length, super.length);\n this.dispatch('shift', { item });\n }\n return item;\n }\n sort(fn) {\n let before = new Array(this.length);\n for (let i = 0, n = before.length; i < n; i++) {\n before[i] = this[i];\n }\n super.sort(fn);\n let buckets = new Map(), cursors = new Map(), order = new Array(this.length);\n for (let i = 0, n = before.length; i < n; i++) {\n let value = before[i], list = buckets.get(value);\n if (!list) {\n buckets.set(value, [i]);\n }\n else {\n list.push(i);\n }\n }\n for (let i = 0, n = this.length; i < n; i++) {\n let value = this[i], list = buckets.get(value);\n if (!list) {\n order[i] = i;\n continue;\n }\n let cursor = cursors.get(value) || 0;\n order[i] = list[cursor];\n cursors.set(value, cursor + 1);\n }\n this.dispatch('sort', { order });\n return this;\n }\n splice(start, deleteCount = this.length, ...items) {\n let removed = super.splice(start, deleteCount, ...items);\n if (items.length > 0 || removed.length > 0) {\n write(this._length, super.length);\n for (let i = 0, n = removed.length; i < n; i++) {\n dispose(removed[i]);\n }\n this.dispatch('splice', { deleteCount, items, start });\n }\n return removed;\n }\n unshift(...items) {\n let length = super.unshift(...items);\n write(this._length, length);\n this.dispatch('unshift', { items });\n return length;\n }\n}\nObject.defineProperty(ReactiveArray.prototype, REACTIVE_ARRAY, { value: true });\nexport { ReactiveArray };\n","import { onCleanup, root } from '@esportsplus/reactivity';\nimport { isArray, isObject } from '@esportsplus/utilities';\nimport { ReactiveArray } from './array.js';\nimport { ReactiveObject } from './object.js';\nimport { PACKAGE_NAME } from '../constants.js';\nfunction reactive(input) {\n let dispose = false, value = root(() => {\n let response;\n if (isObject(input)) {\n response = new ReactiveObject(input);\n }\n else if (isArray(input)) {\n response = new ReactiveArray(...input);\n }\n if (response) {\n if (root.disposables) {\n dispose = true;\n }\n return response;\n }\n throw new Error(`${PACKAGE_NAME}: 'reactive' received invalid input - ${JSON.stringify(input)}`);\n });\n if (dispose) {\n onCleanup(() => value.dispose());\n }\n return value;\n}\nexport default reactive;\nexport { reactive, ReactiveArray, ReactiveObject };\n","const ARRAY_SLOT = Symbol('template.array.slot');\nconst ATTRIBUTE_DELIMITERS = {\n class: ' ',\n style: ';'\n};\nconst CLEANUP = Symbol('template.cleanup');\nconst DIRECT_ATTACH_EVENTS = new Set([\n 'onblur',\n 'onerror',\n 'onfocus', 'onfocusin', 'onfocusout',\n 'onload',\n 'onplay', 'onpause', 'onended', 'ontimeupdate',\n 'onreset',\n 'onscroll', 'onsubmit'\n]);\nconst LIFECYCLE_EVENTS = new Set([\n 'onconnect', 'ondisconnect', 'onrender', 'onresize', 'ontick'\n]);\nconst SLOT_HTML = '<!--$-->';\nconst STATE_HYDRATING = 0;\nconst STATE_NONE = 1;\nconst STATE_WAITING = 2;\nconst STORE = Symbol('template.store');\nexport { ARRAY_SLOT, ATTRIBUTE_DELIMITERS, CLEANUP, DIRECT_ATTACH_EVENTS, LIFECYCLE_EVENTS, SLOT_HTML, STATE_HYDRATING, STATE_NONE, STATE_WAITING, STORE, };\n","import { SLOT_HTML } from './constants.js';\nlet tmpl = document.createElement('template'), txt = document.createTextNode('');\nconst clone = typeof navigator !== 'undefined' && navigator.userAgent.includes('Firefox')\n ? document.importNode.bind(document)\n : (node, deep = true) => node.cloneNode(deep);\nconst fragment = (html) => {\n let element = tmpl.cloneNode();\n element.innerHTML = html;\n return element.content;\n};\nconst marker = fragment(SLOT_HTML).firstChild;\nconst raf = globalThis?.requestAnimationFrame;\nconst template = (html) => {\n let cached;\n return () => {\n if (!cached) {\n let element = tmpl.cloneNode();\n element.innerHTML = html;\n cached = element.content;\n }\n return clone(cached, true);\n };\n};\nconst text = (value) => {\n let element = txt.cloneNode();\n if (value !== '') {\n element.nodeValue = value;\n }\n return element;\n};\nexport { clone, fragment, template, marker, raf, text };\n","import { CLEANUP } from '../constants.js';\nconst ondisconnect = (element, fn) => {\n (element[CLEANUP] ??= []).push(fn);\n};\nconst remove = (...groups) => {\n for (let i = 0, n = groups.length; i < n; i++) {\n let fns, fn, group = groups[i], head = group.head, next, tail = group.tail || head;\n while (tail) {\n if (fns = tail[CLEANUP]) {\n while (fn = fns.pop()) {\n fn();\n }\n }\n next = tail.previousSibling;\n tail.remove();\n if (head === tail) {\n break;\n }\n tail = next;\n }\n }\n};\nexport { ondisconnect, remove };\n","import { isArray } from '@esportsplus/utilities';\nimport { ARRAY_SLOT } from '../constants.js';\nimport { clone, fragment, text } from '../utilities.js';\nconst EMPTY_FRAGMENT = fragment('');\nexport default function render(anchor, value) {\n if (value == null || value === false || value === '') {\n return EMPTY_FRAGMENT;\n }\n if (typeof value !== 'object') {\n return text(value);\n }\n if (value[ARRAY_SLOT] === true) {\n return value.fragment;\n }\n if (value.nodeType !== undefined) {\n return value;\n }\n let n = value.length;\n if (typeof n === 'number') {\n if (n === 0) {\n return EMPTY_FRAGMENT;\n }\n else if (n === 1) {\n return render(anchor, value[0]);\n }\n }\n if (isArray(value)) {\n let fragment = clone(EMPTY_FRAGMENT);\n for (let i = 0; i < n; i++) {\n fragment.append(render(anchor, value[i]));\n anchor = fragment.lastChild;\n }\n return fragment;\n }\n if (value instanceof NodeList) {\n let fragment = clone(EMPTY_FRAGMENT);\n for (let i = 0; i < n; i++) {\n fragment.append(value[i]);\n }\n return fragment;\n }\n return text(value);\n}\n;\n","import { effect } from '@esportsplus/reactivity';\nimport { raf, text } from '../utilities.js';\nimport { remove } from './cleanup.js';\nimport render from './render.js';\nfunction read(value) {\n if (typeof value === 'function') {\n return read(value());\n }\n if (value == null || value === false) {\n return '';\n }\n return value;\n}\nclass EffectSlot {\n anchor;\n disposer;\n group = null;\n scheduled = false;\n textnode = null;\n constructor(anchor, fn) {\n let dispose = fn.length ? () => this.dispose() : undefined, value;\n this.anchor = anchor;\n this.disposer = effect(() => {\n value = read(fn(dispose));\n if (!this.disposer) {\n this.update(value);\n }\n else if (!this.scheduled) {\n this.scheduled = true;\n raf(() => {\n this.scheduled = false;\n this.update(value);\n });\n }\n });\n }\n dispose() {\n let { anchor, group, textnode } = this;\n if (textnode) {\n group = { head: anchor, tail: textnode };\n }\n else if (group) {\n group.head = anchor;\n }\n this.disposer();\n if (group) {\n remove(group);\n }\n }\n update(value) {\n let { anchor, group, textnode } = this;\n if (group) {\n remove(group);\n this.group = null;\n }\n if (typeof value !== 'object') {\n if (typeof value !== 'string') {\n value = String(value);\n }\n if (textnode) {\n textnode.nodeValue = value;\n if (!textnode.isConnected) {\n anchor.after(textnode);\n }\n }\n else {\n anchor.after(this.textnode = text(value));\n }\n }\n else {\n let fragment = render(anchor, value), head = fragment.firstChild;\n if (textnode?.isConnected) {\n remove({ head: textnode, tail: textnode });\n }\n if (head) {\n this.group = {\n head: head,\n tail: fragment.lastChild\n };\n anchor.after(fragment);\n }\n }\n }\n}\nexport { EffectSlot };\n","import { read, root, signal, write } from '@esportsplus/reactivity';\nimport { ARRAY_SLOT } from '../constants.js';\nimport { clone, fragment, marker, raf } from '../utilities.js';\nimport { ondisconnect, remove } from './cleanup.js';\nconst EMPTY_FRAGMENT = fragment('');\nclass ArraySlot {\n array;\n marker;\n nodes = [];\n queue = [];\n scheduled = false;\n signal;\n template;\n fragment;\n constructor(array, template) {\n this.array = array;\n let fragment = this.fragment = clone(EMPTY_FRAGMENT);\n this.marker = marker.cloneNode();\n this.signal = signal(array.length);\n this.template = function (data) {\n let dispose, frag = root((d) => {\n dispose = d;\n return template(data);\n }), group = {\n head: frag.firstChild,\n tail: frag.lastChild\n };\n fragment.append(frag);\n ondisconnect(group.head, dispose);\n return group;\n };\n fragment.append(this.marker);\n if (array.length) {\n root(() => {\n this.nodes = array.map(this.template);\n });\n }\n array.on('clear', () => {\n this.queue.length = 0;\n this.schedule({ op: 'clear' });\n });\n array.on('concat', ({ items }) => {\n this.schedule({ items, op: 'concat' });\n });\n array.on('pop', () => {\n this.schedule({ op: 'pop' });\n });\n array.on('push', ({ items }) => {\n this.schedule({ items, op: 'push' });\n });\n array.on('reverse', () => {\n this.schedule({ op: 'reverse' });\n });\n array.on('shift', () => {\n this.schedule({ op: 'shift' });\n });\n array.on('sort', ({ order }) => {\n this.schedule({ op: 'sort', order });\n });\n array.on('splice', ({ deleteCount, items, start }) => {\n this.schedule({ deleteCount, items, op: 'splice', start });\n });\n array.on('unshift', ({ items }) => {\n this.schedule({ items, op: 'unshift' });\n });\n }\n anchor(index = this.nodes.length - 1) {\n let node = this.nodes[index];\n if (node) {\n return node.tail || node.head;\n }\n return this.marker;\n }\n clear() {\n remove(...this.nodes.splice(0));\n }\n pop() {\n let group = this.nodes.pop();\n if (group) {\n remove(group);\n }\n }\n push(items) {\n let anchor = this.anchor();\n this.nodes.push(...items.map(this.template));\n anchor.after(this.fragment);\n }\n schedule(op) {\n this.queue.push(op);\n if (this.scheduled) {\n return;\n }\n this.scheduled = true;\n raf(() => {\n let queue = this.queue;\n this.queue = [];\n this.scheduled = false;\n root(() => {\n for (let i = 0, n = queue.length; i < n; i++) {\n let op = queue[i];\n switch (op.op) {\n case 'clear':\n this.clear();\n break;\n case 'concat':\n this.push(op.items);\n break;\n case 'pop':\n this.pop();\n break;\n case 'push':\n this.push(op.items);\n break;\n case 'reverse':\n this.nodes.reverse();\n this.sync();\n break;\n case 'shift':\n this.shift();\n break;\n case 'sort':\n this.sort(op.order);\n break;\n case 'splice':\n this.splice(op.start, op.deleteCount, op.items);\n break;\n case 'unshift':\n this.unshift(op.items);\n break;\n }\n }\n });\n write(this.signal, this.nodes.length);\n });\n }\n shift() {\n let group = this.nodes.shift();\n if (group) {\n remove(group);\n }\n }\n sort(order) {\n let nodes = this.nodes, n = nodes.length;\n if (n !== order.length) {\n remove(...nodes.splice(0));\n this.nodes = this.array.map(this.template);\n this.marker.after(this.fragment);\n return;\n }\n let sorted = new Array(n);\n for (let i = 0; i < n; i++) {\n sorted[i] = nodes[order[i]];\n }\n this.nodes = sorted;\n this.sync();\n }\n splice(start, stop = this.nodes.length, items) {\n if (!items.length) {\n remove(...this.nodes.splice(start, stop));\n return;\n }\n remove(...this.nodes.splice(start, stop, ...items.map(this.template)));\n this.anchor(start - 1).after(this.fragment);\n }\n sync() {\n let nodes = this.nodes, n = nodes.length;\n if (!n) {\n return;\n }\n for (let i = 0; i < n; i++) {\n let group = nodes[i], next, node = group.head;\n while (node) {\n next = node === group.tail ? null : node.nextSibling;\n this.fragment.append(node);\n node = next;\n }\n }\n this.marker.after(this.fragment);\n }\n unshift(items) {\n this.nodes.unshift(...items.map(this.template));\n this.marker.after(this.fragment);\n }\n get length() {\n return read(this.signal);\n }\n}\nObject.defineProperty(ArraySlot.prototype, ARRAY_SLOT, { value: true });\nexport { ArraySlot };\n","import { EffectSlot } from './effect.js';\nimport render from './render.js';\nexport default (anchor, renderable) => {\n if (typeof renderable === 'function') {\n new EffectSlot(anchor, renderable);\n }\n else {\n anchor.after(render(anchor, renderable));\n }\n};\nexport * from './array.js';\nexport * from './cleanup.js';\nexport * from './effect.js';\nexport { default as render } from './render.js';\n","import { raf } from '../utilities.js';\nlet tasks = Object.assign(new Set(), { running: false });\nfunction tick() {\n if (tasks.size === 0) {\n tasks.running = false;\n return;\n }\n for (let task of tasks) {\n task();\n }\n raf(tick);\n}\nconst add = (task) => {\n tasks.add(task);\n if (!tasks.running) {\n tasks.running = true;\n raf(tick);\n }\n};\nconst remove = (task) => {\n tasks.delete(task);\n};\nexport default (element, listener) => {\n let connected = false, fn = () => {\n if (connected === false) {\n if (element.isConnected) {\n connected = true;\n }\n else if (retry--) {\n return;\n }\n }\n if (!element.isConnected) {\n remove(fn);\n return;\n }\n listener(() => remove(fn), element);\n }, retry = 60;\n add(fn);\n};\nexport { add, remove };\n","import { root } from '@esportsplus/reactivity';\nimport { defineProperty } from '@esportsplus/utilities';\nimport { DIRECT_ATTACH_EVENTS, LIFECYCLE_EVENTS } from '../constants.js';\nimport { ondisconnect as disconnect } from '../slot/index.js';\nimport onconnect from './onconnect.js';\nimport onresize from './onresize.js';\nimport ontick from './ontick.js';\nlet controllers = new Map(), host = window.document, keys = {}, passive = new Set([\n 'animationend', 'animationiteration', 'animationstart',\n 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'mousewheel',\n 'pointerenter', 'pointerleave', 'pointermove', 'pointerout', 'pointerover',\n 'scroll',\n 'touchcancel', 'touchend', 'touchleave', 'touchmove', 'touchstart', 'transitionend',\n 'wheel'\n]);\n['mousemove', 'mousewheel', 'scroll', 'touchend', 'touchmove', 'touchstart', 'wheel'].map(event => {\n controllers.set(event, null);\n});\nfunction register(element, event) {\n let controller = controllers.get(event), signal;\n if (controller === null) {\n let { abort, signal } = new AbortController();\n controllers.set(event, controller = {\n abort,\n signal,\n listeners: 0,\n });\n }\n if (controller) {\n controller.listeners++;\n ondisconnect(element, () => {\n if (--controller.listeners) {\n return;\n }\n controller.abort();\n controllers.set(event, null);\n });\n signal = controller.signal;\n }\n let key = keys[event] = Symbol();\n host.addEventListener(event, (e) => {\n let fn, node = e.target;\n while (node) {\n fn = node[key];\n if (typeof fn === 'function') {\n defineProperty(e, 'currentTarget', {\n configurable: true,\n get() {\n return node || window.document;\n }\n });\n return fn.call(node, e);\n }\n node = node.parentElement;\n }\n }, {\n passive: passive.has(event),\n signal\n });\n return key;\n}\nconst delegate = (element, event, listener) => {\n element[keys[event] || register(element, event)] = listener;\n};\nconst on = (element, event, listener) => {\n let handler = (e) => listener.call(element, e);\n element.addEventListener(event, handler, {\n passive: passive.has(event)\n });\n ondisconnect(element, () => {\n element.removeEventListener(event, handler);\n });\n};\nconst ondisconnect = (element, listener) => {\n disconnect(element, () => listener(element));\n};\nconst onrender = (element, listener) => {\n root(() => listener(element));\n};\nconst lifecycle = { onconnect, ondisconnect, onrender, onresize, ontick };\nconst runtime = (element, event, listener) => {\n let key = event.toLowerCase();\n if (LIFECYCLE_EVENTS.has(key)) {\n lifecycle[key](element, listener);\n }\n else {\n (DIRECT_ATTACH_EVENTS.has(key) ? on : delegate)(element, key.slice(2), listener);\n }\n};\nexport { delegate, on, onconnect, ondisconnect, onrender, onresize, ontick, runtime };\n","class Node {\n data;\n next = null;\n constructor(size) {\n this.data = new Array(size);\n }\n}\nclass Queue {\n head = null;\n headIndex = 0;\n pool = null;\n preallocate;\n size = 0;\n tail = null;\n tailIndex = 0;\n constructor(preallocate) {\n this.preallocate = preallocate;\n }\n allocate() {\n let node = this.pool;\n if (node) {\n this.pool = node.next;\n node.next = null;\n return node;\n }\n return new Node(this.preallocate);\n }\n release(node) {\n node.next = this.pool;\n this.pool = node;\n }\n get length() {\n return this.size;\n }\n add(value) {\n let preallocate = this.preallocate, size = this.size, tail = this.tail, tailIndex = this.tailIndex;\n if (tail === null) {\n tail = this.head = this.tail = this.allocate();\n tailIndex = 0;\n }\n else if (size === 0) {\n tailIndex = 0;\n this.headIndex = 0;\n }\n else if (tailIndex === preallocate) {\n tail = tail.next = this.allocate();\n tailIndex = 0;\n this.tail = tail;\n }\n tail.data[tailIndex] = value;\n this.tailIndex = tailIndex + 1;\n this.size = size + 1;\n }\n clear() {\n let head = this.head;\n while (head !== null) {\n let next = head.next;\n this.release(head);\n head = next;\n }\n this.head = null;\n this.headIndex = 0;\n this.size = 0;\n this.tail = null;\n this.tailIndex = 0;\n }\n next() {\n let size = this.size;\n if (size === 0) {\n return undefined;\n }\n let head = this.head, headIndex = this.headIndex, preallocate = this.preallocate, value = head.data[headIndex];\n head.data[headIndex] = undefined;\n headIndex++;\n size--;\n if (headIndex === preallocate) {\n let next = head.next;\n this.release(head);\n this.head = next;\n headIndex = 0;\n if (next === null) {\n this.tail = null;\n this.tailIndex = 0;\n }\n }\n this.headIndex = headIndex;\n this.size = size;\n return value;\n }\n}\nexport { Queue };\n","const READY = 0;\nconst RUNNING = 1;\nconst SCHEDULED = 2;\nexport { READY, RUNNING, SCHEDULED };\n","import { READY, RUNNING, SCHEDULED } from './constants.js';\nclass Scheduler {\n lastRunAt = 0;\n queue;\n scheduler;\n state = READY;\n task;\n throttled = null;\n constructor(queue, scheduler) {\n this.queue = queue;\n this.scheduler = scheduler;\n this.task = () => this.run();\n }\n run() {\n if (this.state === RUNNING) {\n return;\n }\n this.state = RUNNING;\n let elapsed = Date.now() - this.lastRunAt, throttle = this.throttled;\n if (!throttle || throttle.interval <= elapsed) {\n let q = this.queue, n = throttle?.limit ?? q.length;\n for (let i = 0; i < n; i++) {\n let task = q.next();\n if (!task) {\n break;\n }\n task();\n }\n this.lastRunAt = Date.now();\n }\n this.state = READY;\n this.schedule();\n }\n get length() {\n return this.queue.length;\n }\n add(task) {\n this.queue.add(task);\n this.schedule();\n return this;\n }\n schedule() {\n if (this.state !== READY || !this.queue.length) {\n return this;\n }\n this.state = SCHEDULED;\n this.scheduler(this.task);\n return this;\n }\n throttle(limit, ms) {\n this.throttled = {\n interval: ms / limit,\n limit\n };\n return this;\n }\n}\nexport { Scheduler };\n","import { Queue } from './queue.js';\nimport { Scheduler } from './scheduler.js';\nconst api = (preallocate = 128) => {\n return new Queue(preallocate);\n};\napi.immediate = () => {\n let { port1, port2 } = new MessageChannel();\n return new Scheduler(api(), (task) => {\n if (port1.onmessage !== task) {\n port1.onmessage = task;\n }\n port2.postMessage(null);\n });\n};\napi.micro = () => {\n let queueMicrotask = globalThis?.queueMicrotask;\n if (queueMicrotask) {\n return new Scheduler(api(), (task) => queueMicrotask(task));\n }\n let resolved = Promise.resolve();\n return new Scheduler(api(), (task) => resolved.then(task));\n};\napi.raf = () => {\n let requestAnimationFrame = globalThis?.requestAnimationFrame;\n if (requestAnimationFrame) {\n return new Scheduler(api(), (task) => requestAnimationFrame(task));\n }\n return new Scheduler(api(), (task) => setTimeout(task, 16));\n};\nexport default api;\n","import { effect } from '@esportsplus/reactivity';\nimport { isArray, isObject } from '@esportsplus/utilities';\nimport { ATTRIBUTE_DELIMITERS, STATE_HYDRATING, STATE_NONE, STATE_WAITING, STORE } from './constants.js';\nimport { raf } from './utilities.js';\nimport { runtime } from './event/index.js';\nimport q from '@esportsplus/queue';\nlet queue = q(64), scheduled = false;\nfunction apply(element, name, value) {\n if (value == null || value === false || value === '') {\n element.removeAttribute(name);\n }\n else if (name === 'class') {\n element.className = value;\n }\n else if (name === 'style' || (name[0] === 'd' && name.startsWith('data-')) || element['ownerSVGElement']) {\n element.setAttribute(name, value);\n }\n else {\n element[name] = value;\n }\n}\nfunction context(element) {\n return (element[STORE] ??= { element });\n}\nfunction list(ctx, element, id, name, state, value) {\n if (value == null || value === false || value === '') {\n value = '';\n }\n let changed = false, delimiter = ATTRIBUTE_DELIMITERS[name], store = (ctx ??= context(element)).store ??= {}, dynamic = store[name];\n if (!dynamic) {\n store[name + '.static'] = (element.getAttribute(name) || '').trim();\n store[name] = dynamic = new Set();\n }\n if (id === null) {\n if (value && typeof value === 'string') {\n changed = true;\n store[name + '.static'] += (store[name + '.static'] ? delimiter : '') + value;\n }\n }\n else if (store[id + '.raw'] !== value) {\n let hot = {};\n if (value && typeof value === 'string') {\n let part, parts = value.split(delimiter);\n while (part = parts.pop()) {\n part = part.trim();\n if (part === '') {\n continue;\n }\n if (!dynamic.has(part)) {\n changed = true;\n dynamic.add(part);\n }\n hot[part] = true;\n }\n }\n let cold = store[id];\n if (cold !== undefined) {\n for (let part in cold) {\n if (hot[part] === true) {\n continue;\n }\n changed = true;\n dynamic.delete(part);\n }\n }\n store[id + '.raw'] = value;\n store[id] = hot;\n }\n if (!changed) {\n return;\n }\n value = store[name + '.static'];\n for (let key of dynamic) {\n value += (value ? delimiter : '') + key;\n }\n if (state === STATE_HYDRATING) {\n apply(element, name, value);\n }\n else {\n schedule(ctx, element, name, state, value);\n }\n}\nfunction property(ctx, element, id, name, state, value) {\n if (value == null || value === false || value === '') {\n value = '';\n }\n if (id !== null) {\n ctx ??= context(element);\n if (ctx[name] === value) {\n return;\n }\n ctx[name] = value;\n }\n if (state === STATE_HYDRATING) {\n apply(element, name, value);\n }\n else {\n schedule(ctx, element, name, state, value);\n }\n}\nfunction reactive(element, name, state, value) {\n let ctx = context(element), fn = (name === 'class' || name === 'style') ? list : property;\n ctx.effect ??= 0;\n let id = ctx.effect++;\n effect(() => {\n let v = value(element);\n if (v == null || typeof v !== 'object') {\n fn(ctx, element, id, name, state, v);\n }\n else if (isArray(v)) {\n let last = v.length - 1;\n for (let i = 0, n = v.length; i < n; i++) {\n fn(ctx, element, id, name, state === STATE_HYDRATING\n ? state\n : i !== last ? STATE_WAITING : state, v[i]);\n }\n }\n });\n state = STATE_NONE;\n}\nfunction schedule(ctx, element, name, state, value) {\n ctx ??= context(element);\n (ctx.updates ??= {})[name] = value;\n if (state === STATE_NONE && !ctx.updating) {\n ctx.updating = true;\n queue.add(ctx);\n }\n if (scheduled) {\n return;\n }\n scheduled = true;\n raf(task);\n}\nfunction task() {\n let context, n = queue.length;\n while ((context = queue.next()) && n--) {\n let { element, updates } = context;\n for (let name in updates) {\n apply(element, name, updates[name]);\n }\n context.updates = {};\n context.updating = false;\n }\n if (queue.length) {\n raf(task);\n }\n else {\n scheduled = false;\n }\n}\nconst setList = (element, name, value, attributes = {}) => {\n let ctx = context(element), store = ctx.store ??= {};\n store[name] ??= new Set();\n store[name + '.static'] ??= '';\n store[name + '.static'] += `${attributes[name] && store[name + '.static'] ? ATTRIBUTE_DELIMITERS[name] : ''}${attributes[name]}`;\n if (typeof value === 'function') {\n reactive(element, name, STATE_HYDRATING, value);\n }\n else if (typeof value !== 'object') {\n list(ctx, element, null, name, STATE_HYDRATING, value);\n }\n else if (isArray(value)) {\n for (let i = 0, n = value.length; i < n; i++) {\n let v = value[i];\n if (v == null || v === false || v === '') {\n continue;\n }\n list(ctx, element, null, name, STATE_HYDRATING, v);\n }\n }\n};\nconst setProperty = (element, name, value) => {\n if (typeof value === 'function') {\n reactive(element, name, STATE_HYDRATING, value);\n }\n else {\n property(null, element, null, name, STATE_HYDRATING, value);\n }\n};\nconst setProperties = function (element, properties, attributes = {}) {\n if (!properties) {\n return;\n }\n else if (isObject(properties)) {\n for (let name in properties) {\n let value = properties[name];\n if (value == null || value === false || value === '') {\n continue;\n }\n if (name === 'class' || name === 'style') {\n setList(element, name, value, attributes);\n }\n else if (typeof value === 'function') {\n if (name[0] === 'o' && name[1] === 'n') {\n runtime(element, name, value);\n }\n else {\n reactive(element, name, STATE_HYDRATING, value);\n }\n }\n else {\n property(null, element, null, name, STATE_HYDRATING, value);\n }\n }\n }\n else if (isArray(properties)) {\n for (let i = 0, n = properties.length; i < n; i++) {\n setProperties(element, properties[i], attributes);\n }\n }\n};\nexport { setList, setProperty, setProperties };\n","const html = (_literals, ..._values) => {\n throw new Error('html`` templates must be compiled. Ensure vite-plugin is configured.');\n};\nhtml.reactive = (_arr, _template) => {\n throw new Error('html.reactive() must be compiled. Ensure vite-plugin is configured.');\n};\nexport default html;\n","import { setProperty } from './attributes.js';\nimport { template } from './utilities.js';\nimport html from './html.js';\nlet factory = template('<svg><use /></svg>');\nconst svg = html.bind(null);\nsvg.sprite = (href) => {\n if (href[0] !== '#') {\n href = '#' + href;\n }\n let root = factory();\n setProperty(root.firstChild.firstChild, 'href', href);\n return root;\n};\nexport default svg;\n","import { CLEANUP, STORE } from './constants.js';\nif (typeof Node !== 'undefined') {\n Node.prototype[CLEANUP] = null;\n Node.prototype[STORE] = null;\n}\nexport * from './attributes.js';\nexport * from './event/index.js';\nexport * from './utilities.js';\nexport { default as html } from './html.js';\nexport { default as render } from './render.js';\nexport { default as slot, ArraySlot, EffectSlot } from './slot/index.js';\nexport { default as svg } from './svg.js';\n","/**\r\n * Extensive compiler integration tests\r\n * Tests both reactivity and template compilers working together\r\n */\r\nimport { html, reactive } from '@esportsplus/frontend';\r\n\r\n\r\n// ============================================================================\r\n// Test 1: Primitive Signals in Templates\r\n// ============================================================================\r\n\r\nfunction testPrimitiveSignals() {\r\n let count = reactive(0),\r\n enabled = reactive(true),\r\n message = reactive('Hello'),\r\n price = reactive(19.99);\r\n\r\n // Template with primitive expressions\r\n let view = html`\r\n <div class=\"counter\">\r\n <span class=\"count\">${count}</span>\r\n <span class=\"enabled\">${enabled}</span>\r\n <span class=\"message\">${message}</span>\r\n <span class=\"price\">${price}</span>\r\n </div>\r\n `;\r\n\r\n // Increment/decrement operations\r\n count++;\r\n count--;\r\n count += 5;\r\n count -= 2;\r\n count *= 2;\r\n\r\n // Boolean toggle\r\n enabled = !enabled;\r\n\r\n // String operations\r\n message = message + ' World';\r\n\r\n return { count, enabled, message, price, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 2: Computed Values in Templates\r\n// ============================================================================\r\n\r\nfunction testComputedValues() {\r\n let firstName = reactive('John'),\r\n lastName = reactive('Doe'),\r\n items = reactive([1, 2, 3, 4, 5] as number[]);\r\n\r\n // Computed values\r\n let fullName = reactive(() => `${firstName} ${lastName}`),\r\n itemCount = reactive(() => items.length),\r\n doubled = reactive(() => items.map(x => x * 2)),\r\n total = reactive(() => items.reduce((a, b) => a + b, 0));\r\n\r\n let view = html`\r\n <div class=\"computed\">\r\n <h1>${fullName}</h1>\r\n <p>Items: ${itemCount}</p>\r\n <p>Total: ${total}</p>\r\n <ul>\r\n ${() => doubled.map(n => html`<li>${n}</li>`)}\r\n </ul>\r\n </div>\r\n `;\r\n\r\n // Trigger reactivity\r\n firstName = 'Jane';\r\n items.push(6);\r\n\r\n return { doubled, firstName, fullName, itemCount, items, lastName, total, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 3: Reactive Arrays in Templates\r\n// ============================================================================\r\n\r\nfunction testReactiveArrays() {\r\n let numbers = reactive([1, 2, 3] as number[]),\r\n strings = reactive(['a', 'b', 'c'] as string[]),\r\n mixed = reactive([1, 'two', 3, 'four'] as (number | string)[]);\r\n\r\n // Array with reactive rendering\r\n let view = html`\r\n <div class=\"arrays\">\r\n <section>\r\n <h2>Numbers</h2>\r\n ${html.reactive(numbers, (n) => html`<span class=\"num\">${n}</span>`)}\r\n </section>\r\n <section>\r\n <h2>Strings</h2>\r\n ${html.reactive(strings, (s) => html`<span class=\"str\">${s}</span>`)}\r\n </section>\r\n <section>\r\n <h2>Mixed</h2>\r\n ${html.reactive(mixed, (m) => html`<span class=\"mix\">${m}</span>`)}\r\n </section>\r\n </div>\r\n `;\r\n\r\n // Array mutations\r\n numbers.push(4);\r\n numbers.unshift(0);\r\n numbers[2] = 99;\r\n\r\n strings.pop();\r\n strings.shift();\r\n strings.splice(0, 0, 'inserted');\r\n\r\n // Length access (reactive)\r\n let numLen = numbers.length,\r\n strLen = strings.length;\r\n\r\n return { mixed, numLen, numbers, strLen, strings, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 4: Reactive Objects in Templates\r\n// ============================================================================\r\n\r\nfunction testReactiveObjects() {\r\n // Simple reactive object\r\n let user = reactive({\r\n age: 25,\r\n email: 'john@example.com',\r\n name: 'John'\r\n });\r\n\r\n // Reactive object with computed\r\n let product = reactive({\r\n discount: 0.1,\r\n finalPrice: () => product.price * (1 - product.discount),\r\n price: 100\r\n });\r\n\r\n // Nested data in reactive object\r\n let config = reactive({\r\n debug: false,\r\n features: {\r\n darkMode: true,\r\n notifications: false\r\n },\r\n theme: 'light'\r\n });\r\n\r\n let view = html`\r\n <div class=\"objects\">\r\n <section class=\"user\">\r\n <h2>${user.name}</h2>\r\n <p>Age: ${user.age}</p>\r\n <p>Email: ${user.email}</p>\r\n </section>\r\n <section class=\"product\">\r\n <p>Price: $${product.price}</p>\r\n <p>Discount: ${() => product.discount * 100}%</p>\r\n <p>Final: $${product.finalPrice}</p>\r\n </section>\r\n <section class=\"config\">\r\n <p>Theme: ${config.theme}</p>\r\n <p>Debug: ${config.debug}</p>\r\n </section>\r\n </div>\r\n `;\r\n\r\n // Object mutations\r\n user.name = 'Jane';\r\n user.age++;\r\n\r\n product.price = 150;\r\n product.discount = 0.2;\r\n\r\n config.theme = 'dark';\r\n config.debug = true;\r\n\r\n return { config, product, user, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 5: Complex Nested Reactivity\r\n// ============================================================================\r\n\r\nfunction testComplexNested() {\r\n let state = reactive({\r\n counts: reactive([0, 0, 0] as number[]),\r\n currentIndex: 0,\r\n increment: () => {\r\n state.counts[state.currentIndex]++;\r\n },\r\n items: reactive([\r\n { id: 1, name: 'Item 1', selected: false },\r\n { id: 2, name: 'Item 2', selected: true },\r\n { id: 3, name: 'Item 3', selected: false }\r\n ] as { id: number; name: string; selected: boolean }[]),\r\n selectedCount: () => state.items.filter(i => i.selected).length,\r\n total: () => state.counts.reduce((a, b) => a + b, 0)\r\n });\r\n\r\n let view = html`\r\n <div class=\"complex\">\r\n <header>\r\n <span>Total: ${state.total}</span>\r\n <span>Selected: ${state.selectedCount}</span>\r\n </header>\r\n <main>\r\n ${html.reactive(state.items, (item) => html`\r\n <div class=\"item ${() => item.selected ? 'selected' : ''}\">\r\n <span>${item.name}</span>\r\n <input type=\"checkbox\" checked=${() => item.selected} />\r\n </div>\r\n `)}\r\n </main>\r\n <footer>\r\n ${html.reactive(state.counts, (count, i) => html`\r\n <button onclick=${() => { state.currentIndex = i; state.increment(); }}>\r\n Count ${i}: ${count}\r\n </button>\r\n `)}\r\n </footer>\r\n </div>\r\n `;\r\n\r\n // Trigger updates\r\n state.items[0].selected = true;\r\n state.counts[0] = 5;\r\n state.currentIndex = 1;\r\n\r\n return { state, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 6: Conditional Rendering with Reactivity\r\n// ============================================================================\r\n\r\nfunction testConditionalRendering() {\r\n let showDetails = reactive(false),\r\n status = reactive<'loading' | 'error' | 'success'>('loading'),\r\n user = reactive<{ name: string } | null>(null);\r\n\r\n let view = html`\r\n <div class=\"conditional\">\r\n ${() => showDetails ? html`<details>Expanded content</details>` : html`<summary>Click to expand</summary>`}\r\n\r\n ${() => {\r\n if (status === 'loading') {\r\n return html`<div class=\"loading\">Loading...</div>`;\r\n }\r\n\r\n if (status === 'error') {\r\n return html`<div class=\"error\">Error occurred</div>`;\r\n }\r\n\r\n return html`<div class=\"success\">Success!</div>`;\r\n }}\r\n\r\n ${() => user ? html`<span>Welcome, ${user.name}</span>` : html`<span>Please log in</span>`}\r\n </div>\r\n `;\r\n\r\n // Toggle states\r\n showDetails = true;\r\n status = 'success';\r\n user = { name: 'Alice' };\r\n\r\n return { showDetails, status, user, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 7: Event Handlers with Reactive State\r\n// ============================================================================\r\n\r\nfunction testEventHandlers() {\r\n let clicks = reactive(0),\r\n inputValue = reactive(''),\r\n items = reactive([] as string[]);\r\n\r\n let view = html`\r\n <div class=\"events\">\r\n <button onclick=${() => clicks++}>\r\n Clicked ${clicks} times\r\n </button>\r\n\r\n <input\r\n type=\"text\"\r\n value=${inputValue}\r\n oninput=${(e: Event) => { inputValue = (e.target as HTMLInputElement).value; }}\r\n />\r\n\r\n <button onclick=${() => {\r\n if (inputValue) {\r\n items.push(inputValue);\r\n inputValue = '';\r\n }\r\n }}>\r\n Add Item\r\n </button>\r\n\r\n <ul>\r\n ${html.reactive(items, (item, index) => html`\r\n <li>\r\n ${item}\r\n <button onclick=${() => items.splice(index, 1)}>Remove</button>\r\n </li>\r\n `)}\r\n </ul>\r\n </div>\r\n `;\r\n\r\n // Simulate interactions\r\n clicks++;\r\n clicks++;\r\n inputValue = 'Test item';\r\n items.push('First');\r\n items.push('Second');\r\n\r\n return { clicks, inputValue, items, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 8: Attribute Bindings with Reactivity\r\n// ============================================================================\r\n\r\nfunction testAttributeBindings() {\r\n let isDisabled = reactive(false),\r\n classes = reactive('primary'),\r\n styles = reactive('color: red'),\r\n href = reactive('https://example.com'),\r\n dataValue = reactive(42);\r\n\r\n let view = html`\r\n <div class=\"attributes\">\r\n <button\r\n class=${classes}\r\n disabled=${isDisabled}\r\n data-value=${dataValue}\r\n style=${styles}\r\n >\r\n Dynamic Button\r\n </button>\r\n\r\n <a href=${href} target=\"_blank\">Dynamic Link</a>\r\n\r\n <input\r\n type=\"text\"\r\n class=${() => isDisabled ? 'disabled-input' : 'active-input'}\r\n placeholder=${() => `Value: ${dataValue}`}\r\n />\r\n </div>\r\n `;\r\n\r\n // Update attributes\r\n isDisabled = true;\r\n classes = 'secondary active';\r\n styles = 'color: blue; font-weight: bold';\r\n href = 'https://updated.com';\r\n dataValue = 100;\r\n\r\n return { classes, dataValue, href, isDisabled, styles, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 9: Mixed Reactive Types in Single Template\r\n// ============================================================================\r\n\r\nfunction testMixedReactiveTypes() {\r\n // All types in one component\r\n let primitive = reactive(0),\r\n computed = reactive(() => primitive * 2),\r\n array = reactive([1, 2, 3] as number[]),\r\n object = reactive({\r\n count: 0,\r\n double: () => object.count * 2,\r\n name: 'Test'\r\n });\r\n\r\n let view = html`\r\n <div class=\"mixed\">\r\n <section>\r\n <h3>Primitive: ${primitive}</h3>\r\n <h3>Computed: ${computed}</h3>\r\n </section>\r\n\r\n <section>\r\n <h3>Object Name: ${object.name}</h3>\r\n <h3>Object Count: ${object.count}</h3>\r\n <h3>Object Double: ${object.double}</h3>\r\n </section>\r\n\r\n <section>\r\n <h3>Array Length: ${() => array.length}</h3>\r\n ${html.reactive(array, (n) => html`<span>${n}</span>`)}\r\n </section>\r\n\r\n <section>\r\n <button onclick=${() => {\r\n primitive++;\r\n object.count++;\r\n array.push(array.length + 1);\r\n }}>\r\n Increment All\r\n </button>\r\n </section>\r\n </div>\r\n `;\r\n\r\n // Trigger all types\r\n primitive = 5;\r\n object.name = 'Updated';\r\n object.count = 10;\r\n array.push(4, 5, 6);\r\n\r\n return { array, computed, object, primitive, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 10: Typed Reactive with Generics\r\n// ============================================================================\r\n\r\ninterface Todo {\r\n completed: boolean;\r\n id: number;\r\n text: string;\r\n}\r\n\r\ninterface AppState {\r\n addTodo: (text: string) => void;\r\n completedCount: () => number;\r\n filter: 'all' | 'active' | 'completed';\r\n filteredTodos: () => Todo[];\r\n nextId: number;\r\n todos: Todo[];\r\n toggleTodo: (id: number) => void;\r\n}\r\n\r\nfunction testTypedReactive() {\r\n let state = reactive<AppState>({\r\n addTodo: (text: string) => {\r\n state.todos.push({\r\n completed: false,\r\n id: state.nextId++,\r\n text\r\n });\r\n },\r\n completedCount: () => state.todos.filter(t => t.completed).length,\r\n filter: 'all',\r\n filteredTodos: () => {\r\n if (state.filter === 'active') {\r\n return state.todos.filter(t => !t.completed);\r\n }\r\n\r\n if (state.filter === 'completed') {\r\n return state.todos.filter(t => t.completed);\r\n }\r\n\r\n return state.todos;\r\n },\r\n nextId: 1,\r\n todos: [],\r\n toggleTodo: (id: number) => {\r\n let todo = state.todos.find(t => t.id === id);\r\n\r\n if (todo) {\r\n todo.completed = !todo.completed;\r\n }\r\n }\r\n });\r\n\r\n let view = html`\r\n <div class=\"todo-app\">\r\n <header>\r\n <h1>Todos (${state.completedCount} completed)</h1>\r\n <nav>\r\n <button\r\n class=${() => state.filter === 'all' ? 'active' : ''}\r\n onclick=${() => { state.filter = 'all'; }}\r\n >All</button>\r\n <button\r\n class=${() => state.filter === 'active' ? 'active' : ''}\r\n onclick=${() => { state.filter = 'active'; }}\r\n >Active</button>\r\n <button\r\n class=${() => state.filter === 'completed' ? 'active' : ''}\r\n onclick=${() => { state.filter = 'completed'; }}\r\n >Completed</button>\r\n </nav>\r\n </header>\r\n\r\n <main>\r\n ${() => state.filteredTodos().map(todo => html`\r\n <div class=\"todo ${todo.completed ? 'completed' : ''}\">\r\n <input\r\n type=\"checkbox\"\r\n checked=${todo.completed}\r\n onchange=${() => state.toggleTodo(todo.id)}\r\n />\r\n <span>${todo.text}</span>\r\n </div>\r\n `)}\r\n </main>\r\n </div>\r\n `;\r\n\r\n // Add some todos\r\n state.addTodo('Learn TypeScript');\r\n state.addTodo('Build app');\r\n state.addTodo('Write tests');\r\n state.toggleTodo(1);\r\n\r\n return { state, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 11: Deeply Nested Templates with Reactivity\r\n// ============================================================================\r\n\r\nfunction testDeeplyNested() {\r\n let level1 = reactive({\r\n items: reactive([\r\n {\r\n children: reactive([\r\n { name: 'Leaf 1', value: reactive(1) },\r\n { name: 'Leaf 2', value: reactive(2) }\r\n ] as { name: string; value: number }[]),\r\n name: 'Child 1'\r\n },\r\n {\r\n children: reactive([\r\n { name: 'Leaf 3', value: reactive(3) }\r\n ] as { name: string; value: number }[]),\r\n name: 'Child 2'\r\n }\r\n ] as { children: { name: string; value: number }[]; name: string }[]),\r\n name: 'Root'\r\n });\r\n\r\n let view = html`\r\n <div class=\"tree\">\r\n <h1>${level1.name}</h1>\r\n ${html.reactive(level1.items, (item) => html`\r\n <div class=\"branch\">\r\n <h2>${item.name}</h2>\r\n ${html.reactive(item.children, (child) => html`\r\n <div class=\"leaf\">\r\n <span>${child.name}: ${child.value}</span>\r\n <button onclick=${() => child.value++}>+</button>\r\n </div>\r\n `)}\r\n </div>\r\n `)}\r\n </div>\r\n `;\r\n\r\n // Mutate nested values\r\n level1.items[0].children[0].value++;\r\n level1.items.push({\r\n children: reactive([{ name: 'Leaf 4', value: reactive(4) }]),\r\n name: 'Child 3'\r\n });\r\n\r\n return { level1, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Test 12: Static vs Dynamic Content\r\n// ============================================================================\r\n\r\nfunction testStaticVsDynamic() {\r\n let dynamicText = reactive('Dynamic'),\r\n dynamicNum = reactive(42),\r\n dynamicBool = reactive(true);\r\n\r\n // Mix of static and dynamic content\r\n let view = html`\r\n <div class=\"static-dynamic\">\r\n <p>Static text here</p>\r\n <p>${dynamicText} text here</p>\r\n\r\n <span>Static number: 100</span>\r\n <span>Dynamic number: ${dynamicNum}</span>\r\n\r\n <div class=\"static-class\">Static class</div>\r\n <div class=\"${() => dynamicBool ? 'dynamic-true' : 'dynamic-false'}\">Dynamic class</div>\r\n\r\n <a href=\"https://static.com\">Static link</a>\r\n <a href=${() => dynamicBool ? 'https://true.com' : 'https://false.com'}>Dynamic link</a>\r\n\r\n <input type=\"text\" value=\"static\" />\r\n <input type=\"text\" value=${dynamicText} />\r\n </div>\r\n `;\r\n\r\n dynamicText = 'Updated';\r\n dynamicNum = 100;\r\n dynamicBool = false;\r\n\r\n return { dynamicBool, dynamicNum, dynamicText, view };\r\n}\r\n\r\n\r\n// ============================================================================\r\n// Run All Tests\r\n// ============================================================================\r\n\r\nexport const tests = {\r\n testAttributeBindings,\r\n testComplexNested,\r\n testComputedValues,\r\n testConditionalRendering,\r\n testDeeplyNested,\r\n testEventHandlers,\r\n testMixedReactiveTypes,\r\n testPrimitiveSignals,\r\n testReactiveArrays,\r\n testReactiveObjects,\r\n testStaticVsDynamic,\r\n testTypedReactive\r\n};\r\n\r\n// Execute all tests to verify compilation\r\nexport const results = Object.entries(tests).map(([name, fn]) => {\r\n try {\r\n let result = fn();\r\n\r\n console.log(`✓ ${name} passed`);\r\n\r\n return { name, result, status: 'passed' };\r\n }\r\n catch (error) {\r\n console.error(`✗ ${name} failed:`, error);\r\n\r\n return { error, name, status: 'failed' };\r\n }\r\n});\r\n\r\nconsole.log(`\\nTests completed: ${results.filter(r => r.status === 'passed').length}/${results.length} passed`);\r\n"],"names":["STATE_NONE","computed","link","remove","schedule","dispose","cleanup","read","signal","node","factory","version","list","reactive","html","ondisconnect","EMPTY_FRAGMENT","fragment","template","queue","op","disconnect","Node","task","queueMicrotask","q","context","root","template_77447a9a695040d8bcd63a98c06d66fc0.template","template_77447a9a695040d8bcd63a98c06d66fc0.slot","template_77447a9a695040d8bcd63a98c06d66fc0.EffectSlot","template_77447a9a695040d8bcd63a98c06d66fc0.ArraySlot","template_77447a9a695040d8bcd63a98c06d66fc0.setList","template_77447a9a695040d8bcd63a98c06d66fc0.setProperty","template_77447a9a695040d8bcd63a98c06d66fc0.delegate","text"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,20,21,22,23]}
|