hyper-element 1.1.0 → 2.0.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/README.md +560 -21
- package/build/hyperElement.min.js +14 -1
- package/build/hyperElement.min.js.map +3 -3
- package/index.d.ts +344 -3
- package/package.json +13 -8
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["hyperElement.bundle.js"],
|
|
4
|
-
"sourcesContent": ["// hyper-element v1.1.0 - zero runtime dependencies\n(function () {\n\n // core/constants.js\n const isCustomTag = /<+\\w+[-]+\\w/;\n\n // core/manager.js\n const manager = {};\n\n const sharedAttrs = {};\n\n // utils/makeid.js\n function makeid() {\n var text = '';\n var possible = 'bcdfghjklmnpqrstvwxyz';\n\n for (var i = 0; i < 15; i++)\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n\n return text;\n }\n\n // utils/escape.js\n function escapeHtml(str) {\n if (typeof str !== 'string') return str;\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n const SAFE_HTML = Symbol('safeHtml');\n\n function safeHtml(html) {\n return { [SAFE_HTML]: true, value: html };\n }\n\n function isSafeHtml(val) {\n return val && val[SAFE_HTML] === true;\n }\n\n // render/constants.js\n const ARRAY = 1 << 0; // Array of values\n const ATTRIBUTE = 1 << 1; // Standard attribute\n const COMMENT = 1 << 2; // Node interpolation (comment placeholder)\n const DATA = 1 << 3; // data-* attributes\n const DIRECT = 1 << 4; // Direct property assignment\n const EVENT = 1 << 5; // Event listener (@click)\n const KEY = 1 << 6; // Key attribute for keying\n const PROP = 1 << 7; // .prop direct property\n const TEXT = 1 << 8; // Text content (textContent)\n const TOGGLE = 1 << 9; // Boolean toggle (?attr)\n const UNSAFE = 1 << 10; // Raw HTML (innerHTML)\n\n const ELEMENT = 1;\n const ATTRIBUTE_TYPE = 2;\n const TEXT_TYPE = 3;\n const COMMENT_TYPE = 8;\n const FRAGMENT = 11;\n\n const COMMENT_ARRAY = COMMENT | ARRAY;\n const EVENT_ARRAY = EVENT | ARRAY;\n\n const TEXT_ELEMENTS = new Set([\n 'plaintext',\n 'script',\n 'style',\n 'textarea',\n 'title',\n 'xmp',\n ]);\n\n const VOID_ELEMENTS = new Set([\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ]);\n\n const children = Object.freeze([]);\n const props = Object.freeze({});\n\n // render/creator.js\n let _creatorTpl = document.createElement('template');\n let _creatorRange;\n\n function createFragment(content, xml = false) {\n if (xml) {\n if (!_creatorRange) {\n _creatorRange = document.createRange();\n _creatorRange.selectNodeContents(\n document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n );\n }\n return _creatorRange.createContextualFragment(content);\n }\n _creatorTpl.innerHTML = content;\n const fragment = _creatorTpl.content;\n _creatorTpl = _creatorTpl.cloneNode(false);\n return fragment;\n }\n\n // render/resolve.js\n function resolve(root, path) {\n return path.reduceRight(\n (node, i) => (i < 0 ? node.content : node.childNodes[i]),\n root\n );\n }\n\n // render/diff.js\n function diff(a, b, get, before) {\n const parentNode = before.parentNode;\n const bLength = b.length;\n let aEnd = a.length;\n let bEnd = bLength;\n let aStart = 0;\n let bStart = 0;\n let map = null;\n\n while (aStart < aEnd || bStart < bEnd) {\n\n if (aEnd === aStart) {\n const node =\n bEnd < bLength\n ? bStart\n ? get(b[bStart - 1], -0).nextSibling\n : get(b[bEnd], 0)\n : before;\n while (bStart < bEnd) parentNode.insertBefore(get(b[bStart++], 1), node);\n }\n\n else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) get(a[aStart], -1).remove();\n aStart++;\n }\n }\n\n else if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n }\n\n else if (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n\n else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = get(a[--aEnd], -0).nextSibling;\n parentNode.insertBefore(\n get(b[bStart++], 1),\n get(a[aStart++], -0).nextSibling\n );\n parentNode.insertBefore(get(b[--bEnd], 1), node);\n a[aEnd] = b[bEnd];\n }\n\n else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n\n const index = map.get(a[aStart]) ?? -1;\n\n if (index < 0) {\n get(a[aStart++], -1).remove();\n } else {\n if (bStart < index && index < bEnd) {\n let i = aStart;\n let sequence = 1;\n while (++i < aEnd && i < bEnd && map.get(a[i]) === index + sequence)\n sequence++;\n if (sequence > index - bStart) {\n const node = get(a[aStart], 0);\n while (bStart < index)\n parentNode.insertBefore(get(b[bStart++], 1), node);\n } else {\n parentNode.replaceChild(get(b[bStart++], 1), get(a[aStart++], -1));\n }\n } else {\n aStart++;\n }\n }\n }\n }\n return b;\n }\n\n // render/persistent-fragment.js\n let checkType = false;\n let range;\n\n const nodes = Symbol('nodes');\n\n const drop = ({ firstChild, lastChild }) => {\n const r = range || (range = document.createRange());\n r.setStartAfter(firstChild);\n r.setEndAfter(lastChild);\n r.deleteContents();\n return firstChild;\n };\n\n function diffFragment(node, operation) {\n if (checkType && node.nodeType === 11) {\n return 1 / operation < 0\n ? operation\n ? drop(node)\n : node.lastChild\n : operation\n ? node.valueOf()\n : node.firstChild;\n }\n return node;\n }\n\n const parentNode = {\n \n get() {\n return this.firstChild.parentNode;\n },\n };\n\n const replaceWith = {\n \n value(node) {\n drop(this).replaceWith(node);\n },\n };\n\n const remove = {\n \n value() {\n drop(this).remove();\n },\n };\n\n const valueOf = {\n \n value() {\n const { parentNode } = this;\n if (parentNode === this) {\n if (this[nodes] === children) this[nodes] = [...this.childNodes];\n } else {\n if (parentNode) {\n let { firstChild, lastChild } = this;\n this[nodes] = [firstChild];\n while (firstChild !== lastChild)\n this[nodes].push((firstChild = firstChild.nextSibling));\n }\n this.replaceChildren(...this[nodes]);\n }\n return this;\n },\n };\n\n function PersistentFragment(fragment) {\n const firstChild = document.createComment('<>');\n const lastChild = document.createComment('</>');\n fragment.replaceChildren(firstChild, ...fragment.childNodes, lastChild);\n checkType = true;\n return Object.defineProperties(fragment, {\n [nodes]: { writable: true, value: children },\n firstChild: { value: firstChild },\n lastChild: { value: lastChild },\n parentNode,\n valueOf,\n replaceWith,\n remove,\n });\n }\n\n PersistentFragment.prototype = DocumentFragment.prototype;\n\n // render/keyed.js\n const keyedHoles = new WeakMap();\n\n class Keyed extends Map {\n \n constructor() {\n super();\n \n this._ = new FinalizationRegistry((key) => this.delete(key));\n }\n\n get(key) {\n const node = super.get(key)?.deref();\n return node && keyedHoles.get(node);\n }\n\n set(key, node, hole) {\n keyedHoles.set(node, hole);\n this._.register(node, key);\n super.set(key, new WeakRef(node));\n }\n }\n\n // render/nodes.js\n class Node {\n \n constructor(type) {\n this.type = type;\n this.parent = null;\n }\n }\n\n class Comment extends Node {\n \n constructor(data) {\n super(COMMENT_TYPE);\n this.data = data;\n }\n \n toString() {\n return `<!--${this.data}-->`;\n }\n }\n\n class Text extends Node {\n \n constructor(data) {\n super(TEXT_TYPE);\n this.data = data;\n }\n \n toString() {\n return this.data;\n }\n }\n\n class Element extends Node {\n \n constructor(name, xml = false) {\n super(ELEMENT);\n this.name = name;\n this.xml = xml;\n this.props = props;\n this.children = children;\n }\n \n toString() {\n const { xml, name, props: p, children: c } = this;\n const length = c.length;\n let html = `<${name}`;\n for (const key in p) {\n const value = p[key];\n if (value != null) {\n if (typeof value === 'boolean') {\n if (value) html += xml ? ` ${key}=\"\"` : ` ${key}`;\n } else {\n html += ` ${key}=\"${value}\"`;\n }\n }\n }\n if (length) {\n html += '>';\n for (let text = !xml && TEXT_ELEMENTS.has(name), i = 0; i < length; i++)\n html += text ? c[i].data : c[i];\n html += `</${name}>`;\n } else if (xml) {\n html += ' />';\n } else {\n html += VOID_ELEMENTS.has(name) ? '>' : `></${name}>`;\n }\n return html;\n }\n }\n\n class Fragment extends Node {\n \n constructor() {\n super(FRAGMENT);\n this.name = '#fragment';\n this.children = children;\n }\n \n toString() {\n return this.children.join('');\n }\n }\n\n // render/parser.js\n const NUL = '\\x00';\n const DOUBLE_QUOTED_NUL = `\"${NUL}\"`;\n const SINGLE_QUOTED_NUL = `'${NUL}'`;\n /* eslint-disable no-control-regex */\n const NEXT = /\\x00|<[^><\\s]+/g;\n const ATTRS = /([^\\s/>=]+)(?:=(\\x00|(?:(['\"])[\\s\\S]*?\\3)))?/g;\n /* eslint-enable no-control-regex */\n\n const append = (node, child) => {\n if (node.children === children) node.children = [];\n node.children.push(child);\n child.parent = node;\n return child;\n };\n\n const prop = (node, name, value) => {\n if (node.props === props) node.props = {};\n node.props[name] = value;\n };\n\n const path = (node) => {\n const insideout = [];\n while (node.parent) {\n if (node.type === ELEMENT && node.name === 'template') {\n insideout.push(-1);\n }\n insideout.push(node.parent.children.indexOf(node));\n node = node.parent;\n }\n return insideout;\n };\n\n const parent = (node, ignore) => {\n do {\n node = node.parent;\n } while (ignore.has(node));\n return node;\n };\n\n const defaultUpdate = (_node, type, nodePath, name) => [type, nodePath, name];\n\n function createParser(update = defaultUpdate) {\n \n return (template, holes, xml) => {\n\n const content = template.join(NUL).replace(/^\\s+/, '');\n const ignore = new Set();\n const values = [];\n let node = new Fragment();\n let pos = 0;\n let skip = 0;\n let hole = 0;\n let resolvedPath = children;\n\n for (const match of content.matchAll(NEXT)) {\n if (skip > 0) {\n skip--;\n continue;\n }\n\n const chunk = match[0];\n const index = match.index;\n\n if (pos < index) {\n append(node, new Text(content.slice(pos, index)));\n }\n\n if (chunk === NUL) {\n if (node.name === 'table') {\n node = append(node, new Element('tbody', xml));\n ignore.add(node);\n }\n const comment = append(node, new Comment('\u25E6'));\n values.push(\n update(comment, COMMENT_TYPE, path(comment), '', holes[hole++])\n );\n pos = index + 1;\n } else if (chunk.startsWith('<!')) {\n const i = content.indexOf('>', index + 2);\n if (content.slice(i - 2, i + 1) === '-->') {\n const data = content.slice(index + 4, i - 2);\n if (data[0] === '!') {\n append(node, new Comment(data.slice(1).replace(/!$/, '')));\n }\n }\n pos = i + 1;\n } else if (chunk.startsWith('</')) {\n const i = content.indexOf('>', index + 2);\n if (xml && node.name === 'svg') xml = false;\n node = parent(node, ignore);\n pos = i + 1;\n } else {\n const i = index + chunk.length;\n const j = content.indexOf('>', i);\n const name = chunk.slice(1);\n let tag = name;\n\n if (!xml) {\n tag = tag.toLowerCase();\n if (node.name === 'table' && (tag === 'tr' || tag === 'td')) {\n node = append(node, new Element('tbody', xml));\n ignore.add(node);\n }\n if (node.name === 'tbody' && tag === 'td') {\n node = append(node, new Element('tr', xml));\n ignore.add(node);\n }\n }\n\n node = append(node, new Element(tag, xml ? tag !== 'svg' : false));\n resolvedPath = children;\n\n if (i < j) {\n let dot = false;\n for (const [, attrName, value] of content\n .slice(i, j)\n .matchAll(ATTRS)) {\n if (\n value === NUL ||\n value === DOUBLE_QUOTED_NUL ||\n value === SINGLE_QUOTED_NUL ||\n (dot = attrName.endsWith(NUL))\n ) {\n const p =\n resolvedPath === children\n ? (resolvedPath = path(node))\n : resolvedPath;\n values.push(\n update(\n node,\n ATTRIBUTE_TYPE,\n p,\n dot ? attrName.slice(0, -1) : attrName,\n holes[hole++]\n )\n );\n dot = false;\n skip++;\n } else {\n prop(node, attrName, value ? value.slice(1, -1) : true);\n }\n }\n resolvedPath = children;\n }\n\n pos = j + 1;\n const closed = j > 0 && content[j - 1] === '/';\n\n if (xml) {\n if (closed) node = node.parent;\n } else if (closed || VOID_ELEMENTS.has(tag)) {\n node = closed ? parent(node, ignore) : node.parent;\n } else if (tag === 'svg') {\n xml = true;\n } else if (TEXT_ELEMENTS.has(tag)) {\n const endIndex = content.indexOf(`</${name}>`, pos);\n const value = content.slice(pos, endIndex);\n if (value.trim() === NUL) {\n skip++;\n values.push(update(node, TEXT_TYPE, path(node), '', holes[hole++]));\n } else {\n append(node, new Text(value));\n }\n node = node.parent;\n pos = endIndex + name.length + 3;\n skip++;\n continue;\n }\n }\n }\n\n if (pos < content.length) {\n append(node, new Text(content.slice(pos)));\n }\n\n return [node, values];\n };\n }\n\n // render/update.js\n const ref = Symbol('ref');\n\n let k = false;\n\n function isKeyed() {\n const wasKeyed = k;\n k = false;\n return wasKeyed;\n }\n\n const textCache = new WeakMap();\n\n const getText = (ref, value) => {\n let node = textCache.get(ref);\n if (node) {\n node.data = value;\n } else {\n textCache.set(ref, (node = document.createTextNode(value)));\n }\n return node;\n };\n\n const directRefs = new Map();\n\n const directFor = (name) => {\n let fn = directRefs.get(name);\n if (!fn) directRefs.set(name, (fn = direct(name)));\n return fn;\n };\n\n const attribute = (name) => (node, value) => {\n if (value == null) node.removeAttribute(name);\n else node.setAttribute(name, value);\n };\n\n const direct = (name) => (node, value) => {\n node[name] = value;\n };\n\n const toggle = (name) => (node, value) => {\n node.toggleAttribute(name, !!value);\n };\n\n const data = ({ dataset }, values) => {\n for (const [key, value] of Object.entries(values)) {\n if (value == null) delete dataset[key];\n else dataset[key] = value;\n }\n };\n\n const styleHandler = (node, value) => {\n if (value == null) {\n node.removeAttribute('style');\n } else if (typeof value === 'object') {\n\n for (const [prop, val] of Object.entries(value)) {\n if (val == null) {\n node.style.removeProperty(prop);\n } else {\n node.style.setProperty(prop, val);\n }\n }\n } else {\n\n node.setAttribute('style', value);\n }\n };\n\n const event = (type, at, array) =>\n array\n ? (node, value) => {\n const prev = node[at];\n if (prev?.length) node.removeEventListener(type, ...prev);\n if (value) node.addEventListener(type, ...value);\n node[at] = value;\n }\n : (node, value) => {\n const prev = node[at];\n if (prev) node.removeEventListener(type, prev);\n if (value) node.addEventListener(type, value);\n node[at] = value;\n };\n\n const toNodes = (arr) =>\n arr.map((item) => {\n\n if (typeof item === 'string' || typeof item === 'number') {\n return document.createTextNode(String(item));\n }\n\n return item;\n });\n\n const commentArray = (node, value) => {\n\n const nodeValue = toNodes(value);\n node[nodes] = diff(node[nodes] || children, nodeValue, diffFragment, node);\n };\n\n const replaceComment = (node, value) => {\n const current =\n typeof value === 'object' ? (value ?? node) : getText(node, value);\n const prev = node[nodes] ?? node;\n if (current !== prev) {\n prev.replaceWith(diffFragment((node[nodes] = current), 1));\n }\n };\n\n const commentHoleFactory = (xml) => (node, value) => {\n\n if (value && typeof value === 'object' && value.__unsafe) {\n const html = value.value;\n const prev = node[ref] ?? (node[ref] = {});\n if (prev.v !== html) {\n prev.f = PersistentFragment(createFragment(html, xml));\n prev.v = html;\n }\n value = prev.f;\n }\n replaceComment(node, value);\n };\n\n const commentUnsafe = (xml) => (node, value) => {\n\n const html =\n value && typeof value === 'object' && value.__unsafe ? value.value : value;\n const prev = node[ref] ?? (node[ref] = {});\n if (prev.v !== html) {\n prev.f = PersistentFragment(createFragment(html, xml));\n prev.v = html;\n }\n replaceComment(node, prev.f);\n };\n\n function update(node, type, path, name, hint) {\n switch (type) {\n case COMMENT_TYPE: {\n if (Array.isArray(hint)) return [path, commentArray, COMMENT_ARRAY];\n if (hint && typeof hint === 'object' && hint.__unsafe) {\n return [path, commentUnsafe(node.xml), UNSAFE];\n }\n return [path, commentHoleFactory(node.xml), COMMENT];\n }\n case TEXT_TYPE: {\n return [path, directFor('textContent'), TEXT];\n }\n case ATTRIBUTE_TYPE: {\n switch (name.charAt(0)) {\n case '@': {\n\n const array = Array.isArray(hint);\n return [\n path,\n event(name.slice(1), Symbol(name), array),\n array ? EVENT_ARRAY : EVENT,\n ];\n }\n case '?': {\n\n return [path, toggle(name.slice(1)), TOGGLE];\n }\n case '.': {\n\n if (name === '...') {\n\n return [\n path,\n (node, values) => {\n for (const [n, v] of Object.entries(values))\n attribute(n)(node, v);\n },\n PROP,\n ];\n }\n return [path, direct(name.slice(1)), DIRECT];\n }\n default: {\n\n if (name === 'data' && !/^object$/i.test(node.name)) {\n return [path, data, DATA];\n }\n if (name === 'key') {\n k = true;\n return [path, true, KEY];\n }\n if (name === 'ref') {\n return [path, directFor(ref), DIRECT];\n }\n if (name.startsWith('on')) {\n return [path, directFor(name.toLowerCase()), DIRECT];\n }\n if (name === 'style') {\n\n return [path, styleHandler, ATTRIBUTE];\n }\n return [path, attribute(name), ATTRIBUTE];\n }\n }\n }\n }\n }\n\n // render/hole.js\n const dom = (hole) =>\n diffFragment(hole.n ? hole.update(hole) : hole.valueOf(), 1);\n\n const holed = (prev, current) => {\n const changes = [];\n const h = prev.length;\n const l = current.length;\n for (let c, p, j = 0, i = 0; i < l; i++) {\n c = current[i];\n changes[i] =\n j < h && (p = prev[j++]).t === c.t\n ? (current[i] = p).update(c)\n : c.valueOf();\n }\n return changes;\n };\n\n const getKeyedHole = (hole, value) => {\n const cached = hole.t[2]?.get(value);\n return cached?.update(hole) ?? hole.valueOf();\n };\n\n const getHole = (hole, value) => {\n if (hole.t === value.t) {\n hole.update(value);\n } else {\n hole.n.replaceWith(dom(value));\n hole = value;\n }\n return hole;\n };\n\n class Hole {\n \n constructor(template, values) {\n \n this.t = template;\n \n this.v = values;\n \n this.n = null;\n \n this.k = -1;\n }\n\n valueOf() {\n const [fragment, updates, keys] = this.t;\n const root = document.importNode(fragment, true);\n const values = this.v;\n let length = values.length;\n let changes = children;\n let node;\n let prev;\n\n if (length > 0) {\n changes = updates.slice(0);\n while (length--) {\n const [path, update, type] = updates[length];\n const value = values[length];\n\n if (prev !== path) {\n node = resolve(root, path);\n prev = path;\n }\n\n let commit = true;\n\n if (type & ARRAY) {\n if (type & COMMENT) {\n commit = false;\n if (value.length) {\n update(\n node,\n value[0] instanceof Hole ? holed(children, value) : value\n );\n }\n }\n }\n\n else if (type & COMMENT && value instanceof Hole) {\n commit = false;\n update(node, dom(value));\n }\n\n if (commit) {\n if (type === KEY) {\n this.k = length;\n } else {\n update(node, value);\n }\n }\n\n changes[length] = [type, update, value, node];\n }\n }\n\n const { childNodes } = root;\n const size = childNodes.length;\n const n =\n size === 1 ? childNodes[0] : size ? PersistentFragment(root) : root;\n\n this.v = changes;\n this.n = n;\n\n if (this.k >= 0 && keys) {\n keys.set(changes[this.k][2], n, this);\n }\n\n return n;\n }\n\n update(hole) {\n const key = this.k;\n const changes = this.v;\n const values = hole.v;\n\n if (key >= 0 && changes[key][2] !== values[key]) {\n return getKeyedHole(hole, values[key]);\n }\n\n let { length } = changes;\n while (length--) {\n const entry = changes[length];\n const [type, update, prev] = entry;\n\n if (type === KEY) continue;\n\n let value = values[length];\n let change = value;\n\n if (type & ARRAY) {\n if (type & COMMENT) {\n if (value.length) {\n if (value[0] instanceof Hole) {\n change = holed(prev, value);\n }\n }\n } else if (type & EVENT && value[0] === prev[0]) {\n continue;\n }\n }\n\n else if (type & COMMENT) {\n if (prev instanceof Hole) {\n value = getHole(prev, value);\n change = value.n;\n }\n }\n\n if (value !== prev) {\n entry[2] = value;\n update(entry[3], change);\n }\n }\n\n return this.n;\n }\n }\n\n // render/index.js\n const _parseTemplate = createParser(update);\n\n const rendered = new WeakMap();\n\n const wireCache = new WeakMap();\n\n const create =\n (xml, cache = new WeakMap()) =>\n (template, ...values) => {\n let parsed = cache.get(template);\n if (!parsed) {\n\n parsed = _parseTemplate(template, values, xml);\n\n parsed.push(isKeyed() ? new Keyed() : null);\n\n parsed[0] = createFragment(parsed[0].toString(), xml);\n cache.set(template, parsed);\n }\n return new Hole(parsed, values);\n };\n\n const html = create(false);\n\n const svg = create(true);\n\n function bind(element) {\n return (template, ...values) => {\n const hole = html(template, ...values);\n const known = rendered.get(element);\n\n if (!known || known.t !== hole.t) {\n\n const d = dom(hole);\n element.replaceChildren(d);\n rendered.set(element, hole);\n } else {\n\n known.update(hole);\n }\n return element;\n };\n }\n\n function wire(obj, id = '') {\n let cache = wireCache.get(obj);\n if (!cache) {\n cache = new Map();\n wireCache.set(obj, cache);\n }\n\n return (template, ...values) => {\n let entry = cache.get(id);\n\n if (!entry || entry.tpl !== template) {\n\n const hole = html(template, ...values);\n entry = { hole, tpl: template };\n cache.set(id, entry);\n return hole;\n }\n\n return new Hole(entry.hole.t, values);\n };\n }\n\n // signals/index.js\n let currentEffect = null;\n const effectStack = [];\n\n function signal(initialValue) {\n let value = initialValue;\n const subscribers = new Set();\n\n return {\n get value() {\n\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n return value;\n },\n set value(newValue) {\n if (value !== newValue) {\n value = newValue;\n\n for (const fn of subscribers) {\n fn();\n }\n }\n },\n \n peek() {\n return value;\n },\n \n subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n },\n };\n }\n\n function computed(fn) {\n let value;\n let dirty = true;\n const subscribers = new Set();\n\n const recompute = () => {\n dirty = true;\n for (const sub of subscribers) {\n sub();\n }\n };\n\n return {\n get value() {\n\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n if (dirty) {\n\n const prevEffect = currentEffect;\n currentEffect = recompute;\n effectStack.push(recompute);\n try {\n value = fn();\n } finally {\n effectStack.pop();\n currentEffect = prevEffect;\n }\n dirty = false;\n }\n return value;\n },\n \n peek() {\n if (dirty) {\n\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n value = fn();\n } finally {\n currentEffect = prevEffect;\n }\n dirty = false;\n }\n return value;\n },\n };\n }\n\n function effect(fn) {\n let cleanup = null;\n\n const run = () => {\n\n if (typeof cleanup === 'function') {\n cleanup();\n }\n\n const prevEffect = currentEffect;\n currentEffect = run;\n effectStack.push(run);\n try {\n cleanup = fn();\n } finally {\n effectStack.pop();\n currentEffect = prevEffect;\n }\n };\n\n run();\n\n return () => {\n if (typeof cleanup === 'function') {\n cleanup();\n }\n };\n }\n\n function untracked(fn) {\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n return fn();\n } finally {\n currentEffect = prevEffect;\n }\n }\n\n let batchDepth = 0;\n let batchedEffects = new Set();\n\n function batch(fn) {\n batchDepth++;\n try {\n fn();\n } finally {\n batchDepth--;\n if (batchDepth === 0) {\n const effects = batchedEffects;\n batchedEffects = new Set();\n for (const effect of effects) {\n effect();\n }\n }\n }\n }\n\n // attributes/parseAttribute.js\n function parseAttribute(key, value) {\n if ('template' === key && '' === value) {\n return true;\n }\n\n if (+value + '' === value.trim()) {\n return +value; // to number\n }\n\n const lowerCaseValue = value.toLowerCase().trim();\n\n if ('true' === lowerCaseValue) {\n return true;\n } else if ('false' === lowerCaseValue) {\n return false;\n }\n\n if (\n (lowerCaseValue[0] === '[' && lowerCaseValue.slice(-1) === ']') ||\n (lowerCaseValue[0] === '{' && lowerCaseValue.slice(-1) === '}')\n ) {\n return JSON.parse(value);\n }\n\n return value;\n }\n\n // template/processAdvancedTemplate.js\n function formatValue(value) {\n if (typeof value === 'function') {\n return formatValue(value());\n }\n if (typeof value === 'string') {\n return escapeHtml(value);\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (Array.isArray(value)) {\n return escapeHtml(value.join(', '));\n }\n if (value !== null && typeof value === 'object') {\n return escapeHtml(JSON.stringify(value));\n }\n\n return '';\n }\n\n function processAdvancedTemplate(template, data) {\n let result = template;\n\n const eachRegex = /\\{\\+each\\s+(\\w+)\\}([\\s\\S]*?)\\{-each\\}/g;\n result = result.replace(eachRegex, (match, arrayName, content) => {\n const arr = data[arrayName];\n if (!Array.isArray(arr)) return '';\n return arr\n .map((item, index) => {\n let itemContent = content;\n\n itemContent = itemContent.replace(/\\{@\\}/g, index);\n\n itemContent = itemContent.replace(\n /\\{\\s*\\.\\.\\.\\s*\\}/g,\n formatValue(item)\n );\n\n if (typeof item === 'object' && item !== null) {\n Object.keys(item).forEach((key) => {\n itemContent = itemContent.replace(\n new RegExp('\\\\{' + key + '\\\\}', 'g'),\n escapeHtml(String(item[key]))\n );\n });\n }\n return itemContent;\n })\n .join('');\n });\n\n const ifElseRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{else\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(\n ifElseRegex,\n (match, condition, ifContent, elseContent) => {\n return data[condition] ? ifContent : elseContent;\n }\n );\n\n const ifRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(ifRegex, (match, condition, content) => {\n return data[condition] ? content : '';\n });\n\n const unlessRegex = /\\{\\+unless\\s+(\\w+)\\}([\\s\\S]*?)\\{-unless\\}/g;\n result = result.replace(unlessRegex, (match, condition, content) => {\n return data[condition] ? '' : content;\n });\n\n return result;\n }\n\n // template/buildTemplate.js\n function buildTemplate(innerHTML) {\n\n const hasAdvanced = /\\{\\+(if|each|unless)\\s/.test(innerHTML);\n\n if (hasAdvanced) {\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object. You passed ' +\n JSON.stringify(data)\n );\n }\n\n let result = processAdvancedTemplate(innerHTML, data);\n\n result = result.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return data[key] != null ? escapeHtml(String(data[key])) : '';\n });\n\n return { html: result };\n };\n }\n\n const re = /(\\{[\\w]+\\})/g;\n const templateVals = innerHTML.split(re).reduce(\n (vals, item) => {\n if ('{' === item[0] && '}' === item.slice(-1)) {\n vals.keys.push(item.slice(1, -1));\n } else {\n vals.markup.push(item);\n }\n\n return vals;\n },\n { markup: [], keys: [] }\n );\n\n templateVals.id = ':' + templateVals.markup.join().trim();\n\n function fragment(data) {\n const output = [\n templateVals.markup,\n\n ...templateVals.keys.map((key) => (data[key] != null ? data[key] : '')),\n ];\n output.raw = { value: templateVals.markup };\n return output;\n }\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object to be populated with. You passed ' +\n JSON.stringify(data) +\n ' to ' +\n templateVals.id\n );\n }\n return wire(data, templateVals.id)(...fragment(data));\n };\n }\n\n // attributes/dataset.js\n function addDataset(dataset, dash_key) {\n const camel_key = dash_key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n\n Object.defineProperty(dataset, camel_key, {\n enumerable: true, // can be selected\n configurable: true, // can be delete\n get: () => parseAttribute(camel_key, this.dataset[camel_key]),\n set: (value) => {\n manager[this.identifier].attrsToIgnore['data-' + dash_key] = true;\n if ('string' === typeof value) {\n this.dataset[camel_key] = value;\n } else {\n this.dataset[camel_key] = JSON.stringify(value);\n }\n },\n });\n }\n\n function getDataset() {\n const dataset = {};\n Object.keys(this.dataset).forEach((key) =>\n addDataset.call(\n this,\n dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n )\n );\n return dataset;\n }\n\n // attributes/attachAttrs.js\n function attachAttrs(attributes) {\n const accumulator = {};\n\n for (let i = 0; i < attributes.length; i++) {\n const { value, name } = attributes[i];\n\n if ('template' === name && !value) {\n const ref = manager[this.identifier];\n ref.Html.template = buildTemplate(ref.innerHTML);\n accumulator[name] = true;\n } else if (\n ('fn-' === value.substr(0, 3) || 'ob-' === value.substr(0, 3)) &&\n !!sharedAttrs[value.substr(3)] &&\n sharedAttrs[value.substr(3)].localName === this.localName\n ) {\n accumulator[name] = sharedAttrs[value.substr(3)].val;\n } else {\n if (+value + '' === (value + '').trim()) {\n accumulator[name] = +value;\n } else {\n accumulator[name] = value;\n }\n }\n }\n return accumulator;\n }\n\n // html/parseEachBlocks.js\n function hasEachBlocks(strings) {\n return strings.some(\n (s) =>\n s.includes('{+each ') ||\n s.includes('{+each{') ||\n s.includes('{+if ') ||\n s.includes('{+unless ')\n );\n }\n\n function resolvePropertyPath(obj, path) {\n return path.split('.').reduce((o, key) => o?.[key], obj);\n }\n\n function parsePropertyReferences(str) {\n const regex = /\\{(@|\\s*\\.\\.\\.\\s*|\\w+(?:\\.\\w+)*)\\}/g;\n const parts = [],\n props = [];\n let lastIndex = 0,\n match;\n while ((match = regex.exec(str)) !== null) {\n parts.push(str.substring(lastIndex, match.index));\n props.push(match[1]);\n lastIndex = regex.lastIndex;\n }\n parts.push(str.substring(lastIndex));\n return { parts, props };\n }\n\n function findMatchingClose(strings, startIdx, startPos, openTag, closeTag) {\n let depth = 1;\n for (let i = startIdx; i < strings.length; i++) {\n const str = strings[i];\n let searchStart = i === startIdx ? startPos : 0;\n while (searchStart < str.length) {\n const openPos = str.indexOf(openTag, searchStart);\n const closePos = str.indexOf(closeTag, searchStart);\n if (closePos !== -1 && (openPos === -1 || closePos < openPos)) {\n if (--depth === 0) return { endIdx: i, endPos: closePos };\n searchStart = closePos + closeTag.length;\n } else if (openPos !== -1) {\n depth++;\n searchStart = openPos + openTag.length;\n } else break;\n }\n }\n throw new Error(`Unclosed ${openTag}} block. Missing ${closeTag}.`);\n }\n\n function buildTemplateStrings(parts) {\n const arr = [...parts];\n arr.raw = [...parts];\n return arr;\n }\n\n const primitiveWrappers = new WeakMap();\n\n function getWireKey(item, index, array) {\n if (item !== null && typeof item === 'object') return item;\n let cache = primitiveWrappers.get(array);\n if (!cache) {\n cache = {};\n primitiveWrappers.set(array, cache);\n }\n if (!cache[index]) cache[index] = { _value: item, _index: index };\n cache[index]._value = item;\n return cache[index];\n }\n\n function resolveProp(prop, item, index) {\n if (prop === '@') return index;\n if (prop.trim() === '...') return item;\n return resolvePropertyPath(item, prop);\n }\n\n function processInnerContent(content, item, index, array, wireFunction) {\n const nestedRegex = /\\{\\+each\\s*\\{(\\w+(?:\\.\\w+)*)\\}\\}([\\s\\S]*?)\\{-each\\}/g;\n const hasNested = nestedRegex.test(content);\n nestedRegex.lastIndex = 0;\n\n if (hasNested) {\n const nestedMatches = [];\n let processedContent = content,\n match;\n while ((match = nestedRegex.exec(content)) !== null) {\n const [fullMatch, propPath, innerContent] = match;\n const nestedArray = resolvePropertyPath(item, propPath);\n if (!Array.isArray(nestedArray)) {\n processedContent = processedContent.replace(fullMatch, '');\n continue;\n }\n const nestedResults = nestedArray.map((nestedItem, nestedIndex) =>\n processInnerContent(\n innerContent.trim(),\n nestedItem,\n nestedIndex,\n nestedArray,\n wireFunction\n )\n );\n processedContent = processedContent.replace(\n fullMatch,\n `__NESTED_${nestedMatches.length}__`\n );\n nestedMatches.push(nestedResults);\n }\n const { parts, props } = parsePropertyReferences(processedContent);\n const finalParts = [],\n finalValues = [];\n let propIndex = 0;\n for (let i = 0; i < parts.length; i++) {\n let part = parts[i],\n placeholderMatch;\n while ((placeholderMatch = part.match(/__NESTED_(\\d+)__/))) {\n const [before, after] = part.split(placeholderMatch[0]);\n finalParts.push(before);\n finalValues.push(nestedMatches[parseInt(placeholderMatch[1], 10)]);\n part = after || '';\n }\n finalParts.push(part);\n if (i < props.length)\n finalValues.push(resolveProp(props[propIndex++], item, index));\n }\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify(finalParts)\n )(buildTemplateStrings(finalParts), ...finalValues);\n }\n\n const { parts, props } = parsePropertyReferences(content);\n if (props.length === 0)\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify([content])\n )(buildTemplateStrings([content]));\n const values = props.map((prop) => resolveProp(prop, item, index));\n return wireFunction(getWireKey(item, index, array), JSON.stringify(parts))(\n buildTemplateStrings(parts),\n ...values\n );\n }\n\n function findFirstBlock(str) {\n const blocks = [\n { type: 'each', pattern: '{+each ' },\n { type: 'if', pattern: '{+if ' },\n { type: 'unless', pattern: '{+unless ' },\n ];\n let first = null;\n for (const block of blocks) {\n const pos = str.indexOf(block.pattern);\n if (pos !== -1 && (first === null || pos < first.pos))\n first = { type: block.type, pos, pattern: block.pattern };\n }\n return first;\n }\n\n function transformEachBlocks(strings, values, wireFunction) {\n const resultStrings = [],\n resultValues = [];\n let i = 0;\n while (i < strings.length) {\n const str = strings[i],\n firstBlock = findFirstBlock(str);\n if (!firstBlock) {\n resultStrings.push(str);\n if (i < values.length) resultValues.push(values[i]);\n i++;\n continue;\n }\n const { type, pos: blockStartPos, pattern } = firstBlock;\n const closeTag = `{-${type}}`;\n resultStrings.push(str.substring(0, blockStartPos));\n const blockValue = values[i],\n nextStr = strings[i + 1];\n if (!nextStr || !nextStr.startsWith('}'))\n throw new Error(`{+${type}} syntax error: expected \"}\" after value`);\n const afterClose = nextStr.substring(1);\n const { endIdx, endPos } = findMatchingClose(\n strings,\n i + 1,\n 1,\n pattern.slice(0, -1),\n closeTag\n );\n let innerContent,\n elseContent = '';\n if (endIdx === i + 1) innerContent = afterClose.substring(0, endPos - 1);\n else {\n innerContent = afterClose;\n for (let j = i + 2; j <= endIdx; j++) {\n innerContent +=\n String(values[j - 1] ?? '') +\n (j < endIdx ? strings[j] : strings[j].substring(0, endPos));\n }\n }\n if (type === 'if' || type === 'unless') {\n const elsePos = innerContent.indexOf('{else}');\n if (elsePos !== -1) {\n elseContent = innerContent.substring(elsePos + 6);\n innerContent = innerContent.substring(0, elsePos);\n }\n }\n let blockResult;\n \n const trimLeading = (s) => s.replace(/^\\s+/, '');\n if (type === 'each') {\n if (!Array.isArray(blockValue) && blockValue != null)\n throw new Error(`{+each} expects an array, got ${typeof blockValue}`);\n blockResult = (blockValue || []).map((item, idx) =>\n processInnerContent(\n trimLeading(innerContent),\n item,\n idx,\n blockValue || [],\n wireFunction\n )\n );\n } else if (type === 'if')\n blockResult = blockValue\n ? { html: trimLeading(innerContent) }\n : { html: trimLeading(elseContent) };\n else if (type === 'unless')\n blockResult = blockValue\n ? { html: trimLeading(elseContent) }\n : { html: trimLeading(innerContent) };\n resultValues.push(blockResult);\n const afterBlock = strings[endIdx].substring(endPos + closeTag.length);\n i = endIdx;\n if (findFirstBlock(afterBlock)) {\n strings = [\n ...strings.slice(0, endIdx),\n afterBlock,\n ...strings.slice(endIdx + 1),\n ];\n values = [...values.slice(0, endIdx), ...values.slice(endIdx)];\n } else {\n resultStrings.push(afterBlock);\n if (endIdx < values.length) resultValues.push(values[endIdx]);\n i = endIdx + 1;\n }\n }\n while (resultStrings.length <= resultValues.length) resultStrings.push('');\n return { strings: buildTemplateStrings(resultStrings), values: resultValues };\n }\n\n // html/createHtml.js\n function createHtml(shadow) {\n const boundRender = bind(shadow);\n\n function Html(...args) {\n\n if (hasEachBlocks(args[0])) {\n const transformed = transformEachBlocks(\n args[0],\n args.slice(1),\n Html.wire\n );\n args = [transformed.strings, ...transformed.values];\n }\n\n const hasNonString = args\n .slice(1)\n .some((item) => item != null && typeof item !== 'string');\n const hasCustomTag = args[0].some((t) => isCustomTag.test(t));\n\n if (hasNonString && hasCustomTag) {\n let inCustomTag = false;\n let localName = '';\n args[0].forEach((item, index, _items) => {\n if (isCustomTag.test(item)) {\n inCustomTag =\n -1 === item.substring(item.match(isCustomTag).index).indexOf('>');\n localName =\n inCustomTag &&\n item\n .substring(item.indexOf(item.match(isCustomTag)))\n .split(/\\s/)[0]\n .substr(1);\n } else if (0 <= item.indexOf('>')) {\n inCustomTag = false;\n localName = '';\n }\n\n if (!inCustomTag) {\n return;\n }\n const val = args[index + 1];\n\n if (val != null && typeof val !== 'string') {\n const attrName = item.split(/\\s/).pop().slice(0, -1);\n if ('on' === attrName.substring(0, 2)) {\n throw new Error(\n `'on' is reserve for native elements. Change: \"${attrName}\" for \"${localName}\" to something else`\n );\n }\n\n if ('style' === attrName) {\n return;\n }\n const id = makeid();\n sharedAttrs[id] = { attrName, val, localName };\n args[index + 1] = ('function' === typeof val ? 'fn-' : 'ob-') + id;\n }\n });\n }\n\n const processedArgs = [args[0]];\n for (let i = 1; i < args.length; i++) {\n let val = args[i];\n\n if (\n val &&\n typeof val === 'object' &&\n !Array.isArray(val) &&\n !isSafeHtml(val)\n ) {\n const keys = Object.keys(val);\n if (keys.length === 1 && /^[A-Z]/.test(keys[0])) {\n const fragmentName = keys[0];\n const fragmentData = val[fragmentName];\n\n if (Html._fragments && Html._fragments[fragmentName]) {\n val = Html._fragments[fragmentName](fragmentData);\n }\n }\n }\n\n if (isSafeHtml(val)) {\n\n processedArgs.push({ __unsafe: true, value: val.value });\n } else if (val && typeof val === 'object' && val.__unsafe) {\n\n processedArgs.push(val);\n } else if (val && typeof val === 'object' && val.html !== undefined) {\n\n processedArgs.push({ __unsafe: true, value: val.html });\n } else if (Array.isArray(val)) {\n\n processedArgs.push(\n val.map((item) => {\n if (isSafeHtml(item)) {\n return { __unsafe: true, value: item.value };\n }\n return item;\n })\n );\n } else {\n\n processedArgs.push(val);\n }\n }\n\n return boundRender(...processedArgs);\n }\n\n Html._fragments = null;\n\n Html.wire = function wireTemplate(obj, id = '') {\n return wire(obj, id);\n };\n\n Html.raw = function raw(htmlStr) {\n return safeHtml(htmlStr);\n };\n\n Html.lite = function lite(elementOrStrings, ...values) {\n\n if (elementOrStrings && elementOrStrings.raw) {\n\n return html(elementOrStrings, ...values);\n }\n\n return bind(elementOrStrings);\n };\n\n return Html;\n }\n\n // lifecycle/onNext.js\n function onNext(that, store) {\n const storeFn = 'function' == typeof store ? store : () => store;\n\n const baseRender = this._baseRender || this.render;\n this._baseRender = baseRender;\n\n const render2 = (...data) => {\n if (undefined === store) {\n that.store = undefined;\n baseRender(...data);\n } else {\n that.store = storeFn();\n baseRender(that.store, ...data);\n }\n };\n this.render = render2;\n\n if (this._onNextInitialized) {\n render2();\n } else {\n this._onNextInitialized = true;\n }\n\n return render2;\n }\n\n // lifecycle/observer.js\n function observer(ref) {\n const that = ref.this;\n const mutationObserver = new MutationObserver((mutations) => {\n if (!ref.observe) return;\n\n const attrMutations = mutations.filter((m) => m.type === 'attributes');\n if (attrMutations.length > 0) {\n\n that.attrs = this.attachAttrs(this.attributes) || {};\n this.render();\n return;\n }\n\n let textContent = this.textContent;\n\n ref.innerHTML = this.innerHTML;\n if (that.attrs.template) {\n that.attrs = this.attachAttrs(this.attributes) || {};\n }\n\n hyperHTML.bind(ref.shadow)``;\n\n that.wrappedContent = textContent;\n this.render();\n });\n\n mutationObserver.observe(this, {\n\n attributes: true,\n\n childList: true,\n\n subtree: true,\n });\n }\n\n // lifecycle/connectedCallback.js\n function processFragmentResult(result, data, templatestrings, onResolve) {\n\n if (result.text !== undefined) {\n if (typeof result.text === 'string') {\n return result.text;\n }\n\n if (result.text && typeof result.text.then === 'function') {\n result.text.then((resolved) => {\n result.text = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n }\n\n if (result.html !== undefined) {\n if (typeof result.html === 'string') {\n return { __unsafe: true, value: result.html };\n }\n\n if (result.html && typeof result.html.then === 'function') {\n result.html.then((resolved) => {\n result.html = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n }\n\n if (result.template) {\n if ('string' === typeof result.template) {\n if (!templatestrings[result.template]) {\n templatestrings[result.template] = buildTemplate(result.template);\n }\n const values = result.values || data;\n\n if (Array.isArray(values)) {\n const mapped = values.map(templatestrings[result.template]);\n\n const combined = mapped\n .map((item) => {\n if (item && item.html) {\n return item.html;\n }\n if (item instanceof Hole) {\n\n const node = dom(item);\n\n if (node.nodeType === 11) {\n\n const div = document.createElement('div');\n div.appendChild(node.cloneNode(true));\n return div.innerHTML;\n }\n return node.outerHTML || node.textContent;\n }\n return String(item);\n })\n .join('');\n return { __unsafe: true, value: combined };\n }\n const templateResult = templatestrings[result.template](values);\n\n if (templateResult && templateResult.html) {\n return { __unsafe: true, value: templateResult.html };\n }\n\n if (templateResult instanceof Hole) {\n const node = dom(templateResult);\n if (node.nodeType === 11) {\n const div = document.createElement('div');\n div.appendChild(node.cloneNode(true));\n return { __unsafe: true, value: div.innerHTML };\n }\n return { __unsafe: true, value: node.outerHTML || node.textContent };\n }\n return templateResult;\n } else if (\n 'object' === typeof result.template &&\n 'function' === typeof result.template.then\n ) {\n\n result.template.then((args) => {\n let { template, values } = args;\n if (!template && 'string' === typeof args) {\n template = args;\n values = {};\n }\n\n result.template = template;\n result.values = values;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n } else {\n throw new Error(\n 'unknow template type:' +\n typeof result.template +\n ' | ' +\n JSON.stringify(result.template)\n );\n }\n }\n\n if (result.any !== undefined) {\n\n if (result.any && typeof result.any.then === 'function') {\n result.any.then((resolved) => {\n result.any = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n return result.any;\n }\n\n return result;\n }\n\n function createdCallback() {\n\n this.identifier = Symbol(this.localName);\n const ref = (manager[this.identifier] = { attrsToIgnore: {} });\n ref.innerHTML = this.innerHTML;\n const that = (ref.this = { element: this });\n that.wrappedContent = this.textContent;\n\n const fragmentCache = {};\n\n observer.call(this, ref); // observer change to innerHTML\n\n Object.getOwnPropertyNames(this.__proto__)\n .filter(\n (name) =>\n !('constructor' === name || 'setup' === name || 'render' === name)\n )\n .forEach((name) => {\n if (/^[A-Z]/.test(name)) {\n const templatestrings = {};\n \n fragmentCache[name] = (data) => {\n\n if (fragmentCache[name]._cached !== undefined) {\n return fragmentCache[name]._cached;\n }\n\n let result;\n if (fragmentCache[name]._asyncResult) {\n result = fragmentCache[name]._asyncResult;\n } else {\n result = this[name](data);\n }\n\n const hasAsync =\n (result.text && typeof result.text.then === 'function') ||\n (result.html && typeof result.html.then === 'function') ||\n (result.any && typeof result.any.then === 'function') ||\n (result.template && typeof result.template.then === 'function');\n\n if (hasAsync) {\n fragmentCache[name]._asyncResult = result;\n }\n\n const onResolve = () => {\n\n this.render();\n };\n\n const processed = processFragmentResult(\n result,\n data,\n templatestrings,\n onResolve\n );\n\n if (result.once && !hasAsync) {\n fragmentCache[name]._cached = processed;\n }\n\n if (!hasAsync && fragmentCache[name]._asyncResult) {\n delete fragmentCache[name]._asyncResult;\n }\n\n return processed;\n };\n } else {\n that[name] = this[name].bind(that);\n }\n delete this[name];\n });\n\n ref.fragments = fragmentCache;\n\n function toString() {\n return 'hyper-element: ' + this.localName;\n }\n Object.defineProperty(that, 'toString', {\n value: toString.bind(this),\n writable: false,\n });\n\n ref.shadow = this;\n\n ref.Html = createHtml(ref.shadow);\n\n ref.Html._fragments = fragmentCache;\n\n that.attrs = this.attachAttrs(this.attributes);\n that.dataset = this.getDataset();\n const render = this.render;\n this.render = (...data) => {\n ref.observe = false;\n setTimeout(() => {\n ref.observe = true;\n }, 0);\n\n render.call(that, ref.Html, ...data);\n\n Object.getOwnPropertyNames(that.dataset)\n .filter((key) => !this.dataset[key])\n .forEach((key) => {\n const value = that.dataset[key];\n addDataset.call(\n this,\n that.dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n );\n that.dataset[key] = value;\n });\n };\n\n if (this.setup) {\n ref.teardown = this.setup.call(that, onNext.bind(this, that));\n }\n\n this.render();\n }\n\n // hyperElement.js\n class hyperElement extends HTMLElement {\n \n identifier;\n\n get innerShadow() {\n return manager[this.identifier].shadow.innerHTML;\n }\n\n connectedCallback() {\n createdCallback.call(this);\n }\n\n addDataset(dataset, dash_key) {\n addDataset.call(this, dataset, dash_key);\n }\n\n getDataset() {\n return getDataset.call(this);\n }\n\n attachAttrs(attributes) {\n return attachAttrs.call(this, attributes);\n }\n\n attributeChangedCallback(name, oldVal, newVal) {\n\n const ref = manager[this.identifier];\n if (!ref) return;\n\n if (newVal !== null && +newVal + '' === newVal.trim()) {\n newVal = +newVal; // to number\n }\n const { attrsToIgnore } = ref;\n const that = ref.this;\n if (0 <= name.indexOf('data-')) {\n\n const dataSetName = name.slice('data-'.length);\n if (null === oldVal) {\n this.addDataset(that.dataset, dataSetName);\n } else if (null === newVal) {\n const camel_key = dataSetName.replace(/-([a-z])/g, (g) =>\n g[1].toUpperCase()\n );\n delete that.dataset[camel_key];\n }\n }\n\n if (newVal === that.attrs[name]) {\n return;\n }\n if (null === newVal) {\n delete that.attrs[name];\n } else {\n that.attrs[name] = newVal;\n }\n if (attrsToIgnore[name]) {\n delete attrsToIgnore[name];\n return;\n } else {\n this.render();\n }\n }\n\n disconnectedCallback() {\n const ref = manager[this.identifier];\n ref.teardown && ref.teardown();\n }\n\n setup(onNext) {} // eslint-disable-line no-unused-vars\n\n render(Html, ...data) {} // eslint-disable-line no-unused-vars\n }\n\n // functional.js\n function createFunctionalElement(tagOrDef, definition) {\n\n let tagName = null;\n if (typeof tagOrDef === 'string') {\n tagName = tagOrDef;\n } else {\n definition = tagOrDef;\n }\n\n if (typeof definition === 'function') {\n definition = { render: definition };\n }\n\n if (!definition || typeof definition !== 'object') {\n throw new Error(\n 'hyperElement: definition must be an object or render function'\n );\n }\n\n const {\n observedAttributes: observed = [],\n setup: setupFn,\n render: renderFn,\n ...methods\n } = definition;\n\n if (!renderFn || typeof renderFn !== 'function') {\n throw new Error('hyperElement: render function is required');\n }\n\n class FunctionalElement extends hyperElement {\n static get observedAttributes() {\n return observed;\n }\n }\n\n if (setupFn) {\n FunctionalElement.prototype.setup = function (onNext) {\n return setupFn(this, onNext);\n };\n }\n\n FunctionalElement.prototype.render = function (Html, ...data) {\n return renderFn(Html, this, ...data);\n };\n\n for (const [name, fn] of Object.entries(methods)) {\n if (typeof fn !== 'function') {\n continue; // Skip non-function properties\n }\n FunctionalElement.prototype[name] = function (...args) {\n return fn(this, ...args);\n };\n }\n\n if (tagName) {\n customElements.define(tagName, FunctionalElement);\n }\n\n return FunctionalElement;\n }\n\n console.info('hyper-element v1.1.0 by Brian Shannon (github.com/codemeasandwich)');\n\n // Wrap hyperElement in Proxy for dual-purpose (class and function) API\n const hyperElementProxy = new Proxy(hyperElement, {\n apply(target, thisArg, args) {\n if (args.length === 0) {\n throw new Error('hyperElement requires a definition object or render function');\n }\n return createFunctionalElement(...args);\n },\n construct(target, args, newTarget) {\n if (newTarget !== hyperElementProxy) {\n return Reflect.construct(target, args, newTarget);\n }\n throw new Error('hyperElement cannot be instantiated directly. Use class extension or functional API.');\n }\n });\n\n window.hyperElement = hyperElementProxy;\n})();\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["isCustomTag", "manager", "sharedAttrs", "makeid", "text", "possible", "i", "escapeHtml", "str", "SAFE_HTML", "safeHtml", "html", "isSafeHtml", "val", "ARRAY", "ATTRIBUTE", "COMMENT", "DATA", "DIRECT", "EVENT", "KEY", "PROP", "TEXT", "TOGGLE", "UNSAFE", "ELEMENT", "ATTRIBUTE_TYPE", "TEXT_TYPE", "COMMENT_TYPE", "FRAGMENT", "COMMENT_ARRAY", "EVENT_ARRAY", "TEXT_ELEMENTS", "VOID_ELEMENTS", "children", "props", "
|
|
4
|
+
"sourcesContent": ["// hyper-element v2.0.0 - universal bundle (server + client)\n(function (root, factory) {\n var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\n\n if (typeof module === 'object' && module.exports) {\n // CommonJS\n module.exports = factory(isBrowser);\n /* AMD is not tested */\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return factory(isBrowser); });\n } else {\n // Browser global (covered by browser tests)\n var exports = factory(isBrowser);\n if (isBrowser) {\n root.hyperElement = exports.default;\n root.configureSSR = exports.configureSSR;\n root.signal = exports.signal;\n root.computed = exports.computed;\n root.effect = exports.effect;\n root.batch = exports.batch;\n root.untracked = exports.untracked;\n root.withOptions = exports.withOptions;\n root.html = exports.html;\n root.dom = exports.dom;\n }\n }\n})(typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : this, function (isBrowser) {\n 'use strict';\n\n\n\n // core/constants.js\n const isCustomTag = /<+\\w+[-]+\\w/;\n\n // core/manager.js\n const manager = {};\n\n const sharedAttrs = {};\n\n // utils/makeid.js\n function makeid() {\n var text = '';\n var possible = 'bcdfghjklmnpqrstvwxyz';\n\n for (var i = 0; i < 15; i++)\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n\n return text;\n }\n\n // utils/escape.js\n function escapeHtml(str) {\n if (typeof str !== 'string') return str;\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n const SAFE_HTML = Symbol('safeHtml');\n\n function safeHtml(html) {\n return { [SAFE_HTML]: true, value: html };\n }\n\n function isSafeHtml(val) {\n return val && val[SAFE_HTML] === true;\n }\n\n // render/constants.js\n const ARRAY = 1 << 0; // Array of values\n const ATTRIBUTE = 1 << 1; // Standard attribute\n const COMMENT = 1 << 2; // Node interpolation (comment placeholder)\n const DATA = 1 << 3; // data-* attributes\n const DIRECT = 1 << 4; // Direct property assignment\n const EVENT = 1 << 5; // Event listener (@click)\n const KEY = 1 << 6; // Key attribute for keying\n const PROP = 1 << 7; // .prop direct property\n const TEXT = 1 << 8; // Text content (textContent)\n const TOGGLE = 1 << 9; // Boolean toggle (?attr)\n const UNSAFE = 1 << 10; // Raw HTML (innerHTML)\n const ATTRIBUTE_TEMPLATE = 1 << 11; // Partial interpolation (\"prefix-${x}\")\n\n const ELEMENT = 1;\n const ATTRIBUTE_TYPE = 2;\n const TEXT_TYPE = 3;\n const COMMENT_TYPE = 8;\n const FRAGMENT = 11;\n const ATTRIBUTE_TEMPLATE_TYPE = 12; // Partial interpolation type\n\n const COMMENT_ARRAY = COMMENT | ARRAY;\n const EVENT_ARRAY = EVENT | ARRAY;\n\n const TEXT_ELEMENTS = new Set([\n 'plaintext',\n 'script',\n 'style',\n 'textarea',\n 'title',\n 'xmp',\n ]);\n\n const VOID_ELEMENTS = new Set([\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ]);\n\n const children = Object.freeze([]);\n const props = Object.freeze({});\n\n // render/nodes.js\n class Node {\n \n constructor(type) {\n this.type = type;\n this.parent = null;\n }\n }\n\n class Comment extends Node {\n \n constructor(data) {\n super(COMMENT_TYPE);\n this.data = data;\n }\n \n toString() {\n return `<!--${this.data}-->`;\n }\n }\n\n class Text extends Node {\n \n constructor(data) {\n super(TEXT_TYPE);\n this.data = data;\n }\n \n toString() {\n return this.data;\n }\n }\n\n class Element extends Node {\n \n constructor(name, xml = false) {\n super(ELEMENT);\n this.name = name;\n this.xml = xml;\n this.isStyled = false; // True if +styled suffix was detected\n this.propFlags = null; // Array of {name, static} for prop flag attributes\n this.props = props;\n this.children = children;\n }\n \n toString() {\n const { xml, name, props: p, children: c } = this;\n const length = c.length;\n let html = `<${name}`;\n for (const key in p) {\n const value = p[key];\n if (value != null) {\n if (typeof value === 'boolean') {\n if (value) html += xml ? ` ${key}=\"\"` : ` ${key}`;\n } else {\n html += ` ${key}=\"${value}\"`;\n }\n }\n }\n if (length) {\n html += '>';\n for (let text = !xml && TEXT_ELEMENTS.has(name), i = 0; i < length; i++)\n html += text ? c[i].data : c[i];\n html += `</${name}>`;\n } else if (xml) {\n html += ' />';\n } else {\n html += VOID_ELEMENTS.has(name) ? '>' : `></${name}>`;\n }\n return html;\n }\n }\n\n class Fragment extends Node {\n \n constructor() {\n super(FRAGMENT);\n this.name = '#fragment';\n this.children = children;\n }\n \n toString() {\n return this.children.join('');\n }\n }\n\n // render/keyed.js\n const keyedHoles = new WeakMap();\n\n class Keyed extends Map {\n \n get(key) {\n const node = super.get(key)?.deref();\n return node && keyedHoles.get(node);\n }\n\n set(key, node, hole) {\n keyedHoles.set(node, hole);\n super.set(key, new WeakRef(node));\n }\n }\n\n // render/parser.js\n const NUL = '\\x00';\n const DOUBLE_QUOTED_NUL = `\"${NUL}\"`;\n const SINGLE_QUOTED_NUL = `'${NUL}'`;\n /* eslint-disable no-control-regex */\n const NEXT = /\\x00|<[^><\\s]+/g;\n const ATTRS = /([^\\s/>=]+)(?:=(\\x00|(?:(['\"])[\\s\\S]*?\\3)))?/g;\n /* eslint-enable no-control-regex */\n\n const append = (node, child) => {\n if (node.children === children) node.children = [];\n node.children.push(child);\n child.parent = node;\n return child;\n };\n\n const prop = (node, name, value) => {\n if (node.props === props) node.props = {};\n node.props[name] = value;\n };\n\n const path = (node) => {\n const insideout = [];\n while (node.parent) {\n if (node.type === ELEMENT && node.name === 'template') {\n insideout.push(-1);\n }\n insideout.push(node.parent.children.indexOf(node));\n node = node.parent;\n }\n return insideout;\n };\n\n const parent = (node, ignore) => {\n do {\n node = node.parent;\n } while (ignore.has(node));\n return node;\n };\n\n function createParser(update) {\n \n return (template, holes, xml) => {\n\n const content = template.join(NUL).replace(/^\\s+/, '');\n const ignore = new Set();\n const values = [];\n let node = new Fragment();\n let pos = 0;\n let skip = 0;\n let hole = 0;\n let resolvedPath = children;\n\n for (const match of content.matchAll(NEXT)) {\n if (skip > 0) {\n skip--;\n continue;\n }\n\n const chunk = match[0];\n const index = match.index;\n\n if (pos < index) {\n append(node, new Text(content.slice(pos, index)));\n }\n\n if (chunk === NUL) {\n if (node.name === 'table') {\n node = append(node, new Element('tbody', xml));\n ignore.add(node);\n }\n const comment = append(node, new Comment('\u25E6'));\n values.push(\n update(comment, COMMENT_TYPE, path(comment), '', holes[hole++])\n );\n pos = index + 1;\n } else if (chunk.startsWith('<!')) {\n const i = content.indexOf('>', index + 2);\n if (content.slice(i - 2, i + 1) === '-->') {\n const data = content.slice(index + 4, i - 2);\n if (data[0] === '!') {\n append(node, new Comment(data.slice(1).replace(/!$/, '')));\n }\n }\n pos = i + 1;\n } else if (chunk.startsWith('</')) {\n const i = content.indexOf('>', index + 2);\n if (xml && node.name === 'svg') xml = false;\n node = parent(node, ignore);\n pos = i + 1;\n } else {\n const i = index + chunk.length;\n const j = content.indexOf('>', i);\n const name = chunk.slice(1);\n let tag = name;\n\n const STYLED_SUFFIX = '+styled';\n let isStyled = false;\n\n if (!xml) {\n tag = tag.toLowerCase();\n\n if (tag.endsWith(STYLED_SUFFIX)) {\n isStyled = true;\n tag = tag.slice(0, -STYLED_SUFFIX.length);\n }\n if (node.name === 'table' && (tag === 'tr' || tag === 'td')) {\n node = append(node, new Element('tbody', xml));\n ignore.add(node);\n }\n if (node.name === 'tbody' && tag === 'td') {\n node = append(node, new Element('tr', xml));\n ignore.add(node);\n }\n }\n\n node = append(node, new Element(tag, xml ? tag !== 'svg' : false));\n node.isStyled = isStyled;\n resolvedPath = children;\n\n if (i < j) {\n let dot = false;\n for (const [, attrName, value] of content\n .slice(i, j)\n .matchAll(ATTRS)) {\n\n const isExactNul =\n value === NUL ||\n value === DOUBLE_QUOTED_NUL ||\n value === SINGLE_QUOTED_NUL;\n\n if (isExactNul || (dot = attrName.endsWith(NUL))) {\n\n const p =\n resolvedPath === children\n ? (resolvedPath = path(node))\n : resolvedPath;\n const actualAttrName = dot ? attrName.slice(0, -1) : attrName;\n values.push(\n update(node, ATTRIBUTE_TYPE, p, actualAttrName, holes[hole++])\n );\n\n if (actualAttrName === 'style') {\n node.hasDynamicStyle = true;\n }\n dot = false;\n skip++;\n } else if (value && value.includes(NUL)) {\n\n const rawValue = value.slice(1, -1); // Strip quotes\n const parts = rawValue.split(NUL); // Split into static segments\n const holeCount = parts.length - 1;\n\n const p =\n resolvedPath === children\n ? (resolvedPath = path(node))\n : resolvedPath;\n\n for (let h = 0; h < holeCount; h++) {\n values.push(\n update(node, ATTRIBUTE_TEMPLATE_TYPE, p, attrName, {\n parts,\n holeIndex: h,\n holeCount,\n hint: holes[hole++],\n })\n );\n skip++;\n }\n } else {\n\n prop(node, attrName, value ? value.slice(1, -1) : true);\n\n if (node.isStyled && !value) {\n const firstChar = attrName[0];\n const isSpecialPrefix =\n firstChar === '@' || firstChar === '?' || firstChar === '.';\n const isReserved =\n attrName === 'style' ||\n attrName === 'class' ||\n attrName === 'id' ||\n attrName === 'role' ||\n attrName.startsWith('data-') ||\n attrName.startsWith('aria-');\n\n if (!isSpecialPrefix && !isReserved) {\n if (!node.propFlags) node.propFlags = [];\n node.propFlags.push({ name: attrName, static: true });\n }\n }\n }\n }\n resolvedPath = children;\n }\n\n if (\n node.isStyled &&\n !node.props.style &&\n node.props.style !== '' &&\n !node.hasDynamicStyle\n ) {\n const p =\n resolvedPath === children\n ? (resolvedPath = path(node))\n : resolvedPath;\n values.push(update(node, ATTRIBUTE_TYPE, p, 'style', null));\n }\n\n pos = j + 1;\n const closed = j > 0 && content[j - 1] === '/';\n\n if (xml) {\n if (closed) node = node.parent;\n } else if (closed || VOID_ELEMENTS.has(tag)) {\n node = closed ? parent(node, ignore) : node.parent;\n } else if (tag === 'svg') {\n xml = true;\n } else if (TEXT_ELEMENTS.has(tag)) {\n const endIndex = content.indexOf(`</${name}>`, pos);\n const value = content.slice(pos, endIndex);\n if (value.trim() === NUL) {\n skip++;\n values.push(update(node, TEXT_TYPE, path(node), '', holes[hole++]));\n } else {\n append(node, new Text(value));\n }\n node = node.parent;\n pos = endIndex + name.length + 3;\n skip++;\n continue;\n }\n }\n }\n\n if (pos < content.length) {\n append(node, new Text(content.slice(pos)));\n }\n\n return [node, values];\n };\n }\n\n // signals/index.js\n let currentEffect = null;\n const effectStack = [];\n\n let batchDepth = 0;\n let batchedEffects = new Set();\n\n function signal(initialValue) {\n let value = initialValue;\n const subscribers = new Set();\n\n return {\n get value() {\n\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n return value;\n },\n set value(newValue) {\n if (value !== newValue) {\n value = newValue;\n\n for (const fn of subscribers) {\n if (batchDepth > 0) {\n batchedEffects.add(fn);\n } else {\n fn();\n }\n }\n }\n },\n \n peek() {\n return value;\n },\n \n subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n },\n };\n }\n\n function computed(fn) {\n let value;\n let dirty = true;\n const subscribers = new Set();\n\n const recompute = () => {\n dirty = true;\n for (const sub of subscribers) {\n sub();\n }\n };\n\n return {\n get value() {\n\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n if (dirty) {\n\n const prevEffect = currentEffect;\n currentEffect = recompute;\n effectStack.push(recompute);\n try {\n value = fn();\n } finally {\n effectStack.pop();\n currentEffect = prevEffect;\n }\n dirty = false;\n }\n return value;\n },\n \n peek() {\n if (dirty) {\n\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n value = fn();\n } finally {\n currentEffect = prevEffect;\n }\n dirty = false;\n }\n return value;\n },\n };\n }\n\n function effect(fn) {\n let cleanup = null;\n\n const run = () => {\n\n if (typeof cleanup === 'function') {\n cleanup();\n }\n\n const prevEffect = currentEffect;\n currentEffect = run;\n effectStack.push(run);\n try {\n cleanup = fn();\n } finally {\n effectStack.pop();\n currentEffect = prevEffect;\n }\n };\n\n run();\n\n return () => {\n if (typeof cleanup === 'function') {\n cleanup();\n }\n };\n }\n\n function untracked(fn) {\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n return fn();\n } finally {\n currentEffect = prevEffect;\n }\n }\n\n function batch(fn) {\n batchDepth++;\n try {\n fn();\n } finally {\n batchDepth--;\n if (batchDepth === 0) {\n const effects = batchedEffects;\n batchedEffects = new Set();\n for (const effect of effects) {\n effect();\n }\n }\n }\n }\n\n // attributes/parseAttribute.js\n function parseAttribute(key, value) {\n\n /* IS DEAD CODE ??\n if (value == null) {\n return value;\n }*/\n\n if ('template' === key && '' === value) {\n return true;\n }\n\n if (+value + '' === value.trim()) {\n return +value; // to number\n }\n\n const lowerCaseValue = value.toLowerCase().trim();\n\n if ('true' === lowerCaseValue) {\n return true;\n } else if ('false' === lowerCaseValue) {\n return false;\n }\n\n if (\n (lowerCaseValue[0] === '[' && lowerCaseValue.slice(-1) === ']') ||\n (lowerCaseValue[0] === '{' && lowerCaseValue.slice(-1) === '}')\n ) {\n return JSON.parse(value);\n }\n\n return value;\n }\n\n // template/processAdvancedTemplate.js\n function formatValue(value) {\n if (typeof value === 'function') {\n return formatValue(value());\n }\n if (typeof value === 'string') {\n return escapeHtml(value);\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (Array.isArray(value)) {\n return escapeHtml(value.join(', '));\n }\n if (value !== null && typeof value === 'object') {\n return escapeHtml(JSON.stringify(value));\n }\n\n return '';\n }\n\n function processAdvancedTemplate(template, data) {\n let result = template;\n\n const eachRegex = /\\{\\+each\\s+(\\w+)\\}([\\s\\S]*?)\\{-each\\}/g;\n result = result.replace(eachRegex, (match, arrayName, content) => {\n const arr = data[arrayName];\n if (!Array.isArray(arr)) return '';\n return arr\n .map((item, index) => {\n let itemContent = content;\n\n itemContent = itemContent.replace(/\\{@\\}/g, index);\n\n itemContent = itemContent.replace(\n /\\{\\s*\\.\\.\\.\\s*\\}/g,\n formatValue(item)\n );\n\n if (typeof item === 'object' && item !== null) {\n Object.keys(item).forEach((key) => {\n itemContent = itemContent.replace(\n new RegExp('\\\\{' + key + '\\\\}', 'g'),\n escapeHtml(String(item[key]))\n );\n });\n }\n return itemContent;\n })\n .join('');\n });\n\n const ifElseRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{else\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(\n ifElseRegex,\n (match, condition, ifContent, elseContent) => {\n return data[condition] ? ifContent : elseContent;\n }\n );\n\n const ifRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(ifRegex, (match, condition, content) => {\n return data[condition] ? content : '';\n });\n\n const unlessRegex = /\\{\\+unless\\s+(\\w+)\\}([\\s\\S]*?)\\{-unless\\}/g;\n result = result.replace(unlessRegex, (match, condition, content) => {\n\n return data[condition] ? '' : content;\n });\n\n return result;\n }\n\n // html/parseEachBlocks.js\n function hasEachBlocks(strings) {\n return strings.some(\n (s) =>\n s.includes('{+each ') ||\n s.includes('{+each{') ||\n s.includes('{+if ') ||\n s.includes('{+unless ')\n );\n }\n\n function resolvePropertyPath(obj, path) {\n return path.split('.').reduce((o, key) => o?.[key], obj);\n }\n\n function parsePropertyReferences(str) {\n const regex = /\\{(@|\\s*\\.\\.\\.\\s*|\\w+(?:\\.\\w+)*)\\}/g;\n const parts = [],\n props = [];\n let lastIndex = 0,\n match;\n while ((match = regex.exec(str)) !== null) {\n parts.push(str.substring(lastIndex, match.index));\n props.push(match[1]);\n lastIndex = regex.lastIndex;\n }\n parts.push(str.substring(lastIndex));\n return { parts, props };\n }\n\n function findMatchingClose(strings, startIdx, startPos, openTag, closeTag) {\n let depth = 1;\n for (let i = startIdx; i < strings.length; i++) {\n const str = strings[i];\n let searchStart = i === startIdx ? startPos : 0;\n while (searchStart < str.length) {\n const openPos = str.indexOf(openTag, searchStart);\n const closePos = str.indexOf(closeTag, searchStart);\n if (closePos !== -1 && (openPos === -1 || closePos < openPos)) {\n if (--depth === 0) return { endIdx: i, endPos: closePos };\n searchStart = closePos + closeTag.length;\n } else if (openPos !== -1) {\n depth++;\n searchStart = openPos + openTag.length;\n } else break;\n }\n }\n throw new Error(`Unclosed ${openTag} block. Missing ${closeTag}.`);\n }\n\n function buildTemplateStrings(parts) {\n const arr = [...parts];\n arr.raw = [...parts];\n return arr;\n }\n\n const primitiveWrappers = new WeakMap();\n\n function getWireKey(item, index, array) {\n if (item !== null && typeof item === 'object') return item;\n let cache = primitiveWrappers.get(array);\n if (!cache) {\n cache = {};\n primitiveWrappers.set(array, cache);\n }\n if (!cache[index]) cache[index] = { _value: item, _index: index };\n cache[index]._value = item;\n return cache[index];\n }\n\n function resolveProp(prop, item, index) {\n if (prop === '@') return index;\n if (prop.trim() === '...') return item;\n return resolvePropertyPath(item, prop);\n }\n\n function processInnerContent(content, item, index, array, wireFunction) {\n const nestedRegex = /\\{\\+each\\s*\\{(\\w+(?:\\.\\w+)*)\\}\\}([\\s\\S]*?)\\{-each\\}/g;\n const hasNested = nestedRegex.test(content);\n nestedRegex.lastIndex = 0;\n\n if (hasNested) {\n const nestedMatches = [];\n let processedContent = content,\n match;\n while ((match = nestedRegex.exec(content)) !== null) {\n const [fullMatch, propPath, innerContent] = match;\n const nestedArray = resolvePropertyPath(item, propPath);\n if (!Array.isArray(nestedArray)) {\n processedContent = processedContent.replace(fullMatch, '');\n continue;\n }\n const nestedResults = nestedArray.map((nestedItem, nestedIndex) =>\n processInnerContent(\n innerContent.trim(),\n nestedItem,\n nestedIndex,\n nestedArray,\n wireFunction\n )\n );\n processedContent = processedContent.replace(\n fullMatch,\n `__NESTED_${nestedMatches.length}__`\n );\n nestedMatches.push(nestedResults);\n }\n const { parts, props } = parsePropertyReferences(processedContent);\n const finalParts = [],\n finalValues = [];\n let propIndex = 0;\n for (let i = 0; i < parts.length; i++) {\n let part = parts[i],\n placeholderMatch;\n while ((placeholderMatch = part.match(/__NESTED_(\\d+)__/))) {\n const [before, after] = part.split(placeholderMatch[0]);\n finalParts.push(before);\n finalValues.push(nestedMatches[parseInt(placeholderMatch[1], 10)]);\n part = after || '';\n }\n finalParts.push(part);\n if (i < props.length)\n finalValues.push(resolveProp(props[propIndex++], item, index));\n }\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify(finalParts)\n )(buildTemplateStrings(finalParts), ...finalValues);\n }\n\n const { parts, props } = parsePropertyReferences(content);\n if (props.length === 0)\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify([content])\n )(buildTemplateStrings([content]));\n const values = props.map((prop) => resolveProp(prop, item, index));\n return wireFunction(getWireKey(item, index, array), JSON.stringify(parts))(\n buildTemplateStrings(parts),\n ...values\n );\n }\n\n function findFirstBlock(str) {\n const blocks = [\n { type: 'each', pattern: '{+each ' },\n { type: 'if', pattern: '{+if ' },\n { type: 'unless', pattern: '{+unless ' },\n ];\n let first = null;\n for (const block of blocks) {\n const pos = str.indexOf(block.pattern);\n if (pos !== -1 && (first === null || pos < first.pos))\n first = { type: block.type, pos, pattern: block.pattern };\n }\n return first;\n }\n\n function transformEachBlocks(strings, values, wireFunction) {\n const resultStrings = [],\n resultValues = [];\n let i = 0;\n while (i < strings.length) {\n const str = strings[i],\n firstBlock = findFirstBlock(str);\n if (!firstBlock) {\n resultStrings.push(str);\n if (i < values.length) resultValues.push(values[i]);\n i++;\n continue;\n }\n const { type, pos: blockStartPos, pattern } = firstBlock;\n const closeTag = `{-${type}}`;\n resultStrings.push(str.substring(0, blockStartPos));\n const blockValue = values[i],\n nextStr = strings[i + 1];\n if (!nextStr || !nextStr.startsWith('}'))\n throw new Error(`{+${type}} syntax error: expected \"}\" after value`);\n const afterClose = nextStr.substring(1);\n const { endIdx, endPos } = findMatchingClose(\n strings,\n i + 1,\n 1,\n pattern.slice(0, -1),\n closeTag\n );\n let innerContent,\n elseContent = '';\n if (endIdx === i + 1) innerContent = afterClose.substring(0, endPos - 1);\n else {\n innerContent = afterClose;\n for (let j = i + 2; j <= endIdx; j++) {\n innerContent +=\n String(values[j - 1] ?? '') +\n (j < endIdx ? strings[j] : strings[j].substring(0, endPos));\n }\n }\n if (type === 'if' || type === 'unless') {\n const elsePos = innerContent.indexOf('{else}');\n if (elsePos !== -1) {\n elseContent = innerContent.substring(elsePos + 6);\n innerContent = innerContent.substring(0, elsePos);\n }\n }\n let blockResult;\n \n const trimLeading = (s) => s.replace(/^\\s+/, '');\n if (type === 'each') {\n if (!Array.isArray(blockValue) && blockValue != null)\n throw new Error(`{+each} expects an array, got ${typeof blockValue}`);\n blockResult = (blockValue || []).map((item, idx) =>\n processInnerContent(\n trimLeading(innerContent),\n item,\n idx,\n blockValue || [],\n wireFunction\n )\n );\n } else if (type === 'if')\n blockResult = blockValue\n ? { html: trimLeading(innerContent) }\n : { html: trimLeading(elseContent) };\n else if (type === 'unless')\n blockResult = blockValue\n ? { html: trimLeading(elseContent) }\n : { html: trimLeading(innerContent) };\n resultValues.push(blockResult);\n const afterBlock = strings[endIdx].substring(endPos + closeTag.length);\n i = endIdx;\n if (findFirstBlock(afterBlock)) {\n strings = [\n ...strings.slice(0, endIdx),\n afterBlock,\n ...strings.slice(endIdx + 1),\n ];\n values = [...values.slice(0, endIdx), ...values.slice(endIdx)];\n } else {\n resultStrings.push(afterBlock);\n if (endIdx < values.length) resultValues.push(values[endIdx]);\n i = endIdx + 1;\n }\n }\n while (resultStrings.length <= resultValues.length) resultStrings.push('');\n return { strings: buildTemplateStrings(resultStrings), values: resultValues };\n }\n\n var hyperElement, createFunctionalElement, configureSSR, withOptions;\n var createFragment, resolve, diff, diffFragment, PersistentFragment, nodes;\n var update, Hole, render, dom, createHtml, isKeyed, html, bind, wire;\n var setRenderingInstance, getRenderingInstance, registerStyled, unregisterStyled, getStyledEntry;\n var resolveStylesWithEntry, resolveStyles, applyStylesToNode, resolveColors, isNestedSyntax, styledStyleHandler;\n var STYLED_SUFFIX;\n var buildTemplate, addDataset, getDataset, attachAttrs, processFragmentResult;\n var pathResolver, ssrBuffer, showDevIndicator, hideDevIndicator;\n var getNthOfTypeIndex, calculatePath, resolvePath, addToBuffer, getBufferedEvents, clearBuffer;\n var isUnregisteredCustomElement, findCustomElementAncestor, extractEventDetail;\n var captureScrollState, captureCheckedState, handleCapturedEvent, restoreElementState;\n var startCapture, replayEvents, initSSR, ssrState, markTagRegistered, createSyntheticEvent;\n var onNext, observer, createdCallback;\n\n\n if (isBrowser) {\n\n // render/creator.js\n var _creatorTpl = null;\n\n createFragment = function(content) {\n if (!_creatorTpl) {\n _creatorTpl = document.createElement('template');\n }\n _creatorTpl.innerHTML = content;\n const fragment = _creatorTpl.content;\n _creatorTpl = _creatorTpl.cloneNode(false);\n return fragment;\n }\n\n // render/resolve.js\n resolve = function(root, path) {\n return path.reduceRight(\n (node, i) => (i < 0 ? node.content : node.childNodes[i]),\n root\n );\n }\n\n // render/diff.js\n diff = function(a, b, get, before) {\n const parentNode = before.parentNode;\n const bLength = b.length;\n let aEnd = a.length;\n let bEnd = bLength;\n let aStart = 0;\n let bStart = 0;\n let map = null;\n\n while (aStart < aEnd || bStart < bEnd) {\n\n if (aEnd === aStart) {\n const node =\n bEnd < bLength\n ? bStart\n ? get(b[bStart - 1], -0).nextSibling\n : get(b[bEnd], 0)\n : before;\n while (bStart < bEnd) parentNode.insertBefore(get(b[bStart++], 1), node);\n }\n\n else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) get(a[aStart], -1).remove();\n aStart++;\n }\n }\n\n else if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n }\n\n else if (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n\n else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = get(a[--aEnd], -0).nextSibling;\n parentNode.insertBefore(\n get(b[bStart++], 1),\n get(a[aStart++], -0).nextSibling\n );\n parentNode.insertBefore(get(b[--bEnd], 1), node);\n a[aEnd] = b[bEnd];\n }\n\n else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n\n const index = map.get(a[aStart]) ?? -1;\n\n if (index < 0) {\n get(a[aStart++], -1).remove();\n } else {\n if (bStart < index && index < bEnd) {\n let i = aStart;\n let sequence = 1;\n while (++i < aEnd && i < bEnd && map.get(a[i]) === index + sequence)\n sequence++;\n if (sequence > index - bStart) {\n const node = get(a[aStart], 0);\n while (bStart < index)\n parentNode.insertBefore(get(b[bStart++], 1), node);\n } else {\n parentNode.replaceChild(get(b[bStart++], 1), get(a[aStart++], -1));\n }\n } else {\n aStart++;\n }\n }\n }\n }\n return b;\n }\n\n // render/persistent-fragment.js\n var checkType = false;\n var range;\n\n var nodes = Symbol('nodes');\n\n var drop = ({ firstChild, lastChild }) => {\n const r = range || (range = document.createRange());\n r.setStartAfter(firstChild);\n r.setEndAfter(lastChild);\n r.deleteContents();\n return firstChild;\n };\n\n diffFragment = function(node, operation) {\n if (checkType && node.nodeType === 11) {\n return 1 / operation < 0\n ? operation\n ? drop(node)\n : node.lastChild\n : operation\n ? node.valueOf()\n : node.firstChild;\n }\n return node;\n }\n\n var parentNode = {\n \n get() {\n return this.firstChild.parentNode;\n },\n };\n\n var replaceWith = {\n \n value(node) {\n drop(this).replaceWith(node);\n },\n };\n\n var valueOf = {\n \n value() {\n const { parentNode } = this;\n if (parentNode === this) {\n if (this[nodes] === children) this[nodes] = [...this.childNodes];\n } else {\n if (parentNode) {\n let { firstChild, lastChild } = this;\n this[nodes] = [firstChild];\n while (firstChild !== lastChild)\n this[nodes].push((firstChild = firstChild.nextSibling));\n }\n this.replaceChildren(...this[nodes]);\n }\n return this;\n },\n };\n\n PersistentFragment = function(fragment) {\n const firstChild = document.createComment('<>');\n const lastChild = document.createComment('</>');\n fragment.replaceChildren(firstChild, ...fragment.childNodes, lastChild);\n checkType = true;\n return Object.defineProperties(fragment, {\n [nodes]: { writable: true, value: children },\n firstChild: { value: firstChild },\n lastChild: { value: lastChild },\n parentNode,\n valueOf,\n replaceWith,\n });\n }\n\n if (typeof DocumentFragment !== 'undefined') {\n PersistentFragment.prototype = DocumentFragment.prototype;\n }\n\n // render/update.js\n var ref = Symbol('ref');\n\n var k = false;\n\n isKeyed = function() {\n const wasKeyed = k;\n k = false;\n return wasKeyed;\n }\n\n var textCache = new WeakMap();\n\n var getText = (ref, value) => {\n let node = textCache.get(ref);\n if (node) {\n node.data = value;\n } else {\n textCache.set(ref, (node = document.createTextNode(value)));\n }\n return node;\n };\n\n var directRefs = new Map();\n\n var directFor = (name) => {\n let fn = directRefs.get(name);\n if (!fn) directRefs.set(name, (fn = direct(name)));\n return fn;\n };\n\n var attribute = (name) => (node, value) => {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value);\n };\n\n var direct = (name) => (node, value) => {\n node[name] = value;\n };\n\n var toggle = (name) => (node, value) => {\n node.toggleAttribute(name, !!value);\n };\n\n var data = ({ dataset }, values) => {\n for (const [key, value] of Object.entries(values))\n value == null ? delete dataset[key] : (dataset[key] = value);\n };\n\n var templateState = new WeakMap(); // Partial interpolation state: node -> Map(name -> state)\n\n var attributeTemplate =\n (name, parts, holeIndex, holeCount) => (node, value) => {\n let nodeState = templateState.get(node);\n if (!nodeState) templateState.set(node, (nodeState = new Map()));\n let s = nodeState.get(name);\n if (!s)\n nodeState.set(\n name,\n (s = { values: new Array(holeCount), remaining: holeCount })\n );\n s.values[holeIndex] = value;\n if (--s.remaining === 0) {\n let result = parts[0];\n for (let i = 0; i < holeCount; i++)\n result += (s.values[i] ?? '') + parts[i + 1];\n result === ''\n ? node.removeAttribute(name)\n : node.setAttribute(name, result);\n s.remaining = holeCount; // Reset for next render\n }\n };\n\n var styleHandler = (node, value) => {\n if (value == null) node.removeAttribute('style');\n else if (typeof value === 'object') {\n for (const [prop, val] of Object.entries(value))\n val == null\n ? node.style.removeProperty(prop)\n : node.style.setProperty(prop, val);\n } else node.setAttribute('style', value);\n };\n\n var event = (type, at, array) =>\n array\n ? (node, value) => {\n const prev = node[at];\n if (prev?.length) node.removeEventListener(type, ...prev);\n if (value) node.addEventListener(type, ...value);\n node[at] = value;\n }\n : (node, value) => {\n const prev = node[at];\n if (prev) node.removeEventListener(type, prev);\n if (value) node.addEventListener(type, value);\n node[at] = value;\n };\n\n var toNodes = (arr, xml) =>\n arr.map((item) =>\n typeof item === 'string' || typeof item === 'number'\n ? document.createTextNode(String(item))\n : item && typeof item === 'object' && item.__unsafe\n ? PersistentFragment(createFragment(item.value, xml))\n : item\n );\n\n var commentArrayFactory = (xml) => (node, value) => {\n\n const nodeValue = toNodes(value, xml);\n node[nodes] = diff(node[nodes] || children, nodeValue, diffFragment, node);\n };\n\n var replaceComment = (node, value) => {\n const current =\n typeof value === 'object' ? (value ?? node) : getText(node, value);\n const prev = node[nodes] ?? node;\n if (current !== prev) {\n prev.replaceWith(diffFragment((node[nodes] = current), 1));\n }\n };\n\n var commentHoleFactory = (xml) => (node, value) => {\n\n if (value && typeof value === 'object' && value.__unsafe) {\n const html = value.value;\n const prev = node[ref] ?? (node[ref] = {});\n if (prev.v !== html) {\n prev.f = PersistentFragment(createFragment(html, xml));\n prev.v = html;\n }\n value = prev.f;\n }\n replaceComment(node, value);\n };\n\n var commentUnsafe = (xml) => (node, value) => {\n\n const html =\n value && typeof value === 'object' && value.__unsafe ? value.value : value;\n const prev = node[ref] ?? (node[ref] = {});\n if (prev.v !== html) {\n prev.f = PersistentFragment(createFragment(html, xml));\n prev.v = html;\n }\n replaceComment(node, prev.f);\n };\n\n update = function(node, type, path, name, hint) {\n switch (type) {\n case ATTRIBUTE_TEMPLATE_TYPE: {\n\n const { parts, holeIndex, holeCount } = hint;\n return [\n path,\n attributeTemplate(name, parts, holeIndex, holeCount),\n ATTRIBUTE_TEMPLATE,\n ];\n }\n case COMMENT_TYPE: {\n if (Array.isArray(hint))\n return [path, commentArrayFactory(node.xml), COMMENT_ARRAY];\n if (hint && typeof hint === 'object' && hint.__unsafe) {\n return [path, commentUnsafe(node.xml), UNSAFE];\n }\n return [path, commentHoleFactory(node.xml), COMMENT];\n }\n case TEXT_TYPE: {\n return [path, directFor('textContent'), TEXT];\n }\n case ATTRIBUTE_TYPE: {\n switch (name.charAt(0)) {\n case '@': {\n\n const array = Array.isArray(hint);\n return [\n path,\n event(name.slice(1), Symbol(name), array),\n array ? EVENT_ARRAY : EVENT,\n ];\n }\n case '?': {\n\n return [path, toggle(name.slice(1)), TOGGLE];\n }\n case '.': {\n\n if (name === '...') {\n\n return [\n path,\n (node, values) => {\n for (const [n, v] of Object.entries(values))\n attribute(n)(node, v);\n },\n PROP,\n ];\n }\n return [path, direct(name.slice(1)), DIRECT];\n }\n default: {\n\n if (name === 'data' && !/^object$/i.test(node.name)) {\n return [path, data, DATA];\n }\n if (name === 'key') {\n k = true;\n return [path, true, KEY];\n }\n if (name === 'ref') {\n return [path, directFor(ref), DIRECT];\n }\n if (name.startsWith('on')) {\n return [path, directFor(name.toLowerCase()), DIRECT];\n }\n if (name === 'style') {\n\n if (node.isStyled) {\n return [\n path,\n styledStyleHandler(node.name, node.propFlags),\n ATTRIBUTE,\n ];\n }\n return [path, styleHandler, ATTRIBUTE];\n }\n return [path, attribute(name), ATTRIBUTE];\n }\n }\n }\n }\n }\n\n // render/hole.js\n var dom = (hole) => diffFragment(hole.n || hole.valueOf(), 1);\n\n var holed = (prev, current) => {\n const changes = [];\n const h = prev.length;\n const l = current.length;\n for (let c, p, j = 0, i = 0; i < l; i++) {\n c = current[i];\n changes[i] =\n j < h && (p = prev[j++]).t === c.t\n ? (current[i] = p).update(c)\n : c.valueOf();\n }\n return changes;\n };\n\n var getKeyedHole = (hole, value) => {\n const cached = hole.t[2]?.get(value);\n return cached?.update(hole) ?? hole.valueOf();\n };\n\n var getHole = (hole, value) => {\n if (hole.t === value.t) {\n hole.update(value);\n } else {\n hole.n.replaceWith(dom(value));\n hole = value;\n }\n return hole;\n };\n\n Hole = class {\n \n constructor(template, values) {\n \n this.t = template;\n \n this.v = values;\n \n this.n = null;\n \n this.k = -1;\n }\n\n valueOf() {\n const [fragment, updates, keys] = this.t;\n const root = document.importNode(fragment, true);\n const values = this.v;\n\n let length = updates.length;\n let changes = children;\n let node;\n let prev;\n\n if (length > 0) {\n changes = updates.slice(0);\n while (length--) {\n const [path, update, type] = updates[length];\n\n const value = length < values.length ? values[length] : undefined;\n\n if (prev !== path) {\n node = resolve(root, path);\n prev = path;\n }\n\n let commit = true;\n\n if (type & ARRAY) {\n if (type & COMMENT) {\n commit = false;\n if (value.length) {\n update(\n node,\n value[0] instanceof Hole ? holed(children, value) : value\n );\n }\n }\n }\n\n else if (type & COMMENT && value instanceof Hole) {\n commit = false;\n update(node, dom(value));\n }\n\n if (commit) {\n if (type === KEY) {\n this.k = length;\n } else {\n update(node, value);\n }\n }\n\n changes[length] = [type, update, value, node];\n }\n }\n\n const { childNodes } = root;\n const size = childNodes.length;\n const n =\n size === 1 ? childNodes[0] : size ? PersistentFragment(root) : root;\n\n this.v = changes;\n this.n = n;\n\n if (this.k >= 0 && keys) {\n keys.set(changes[this.k][2], n, this);\n }\n\n return n;\n }\n\n update(hole) {\n const key = this.k;\n const changes = this.v;\n const values = hole.v;\n\n if (key >= 0 && changes[key][2] !== values[key]) {\n return getKeyedHole(hole, values[key]);\n }\n\n let { length } = changes;\n while (length--) {\n const entry = changes[length];\n const [type, update, prev] = entry;\n\n if (type === KEY) continue;\n\n let value = length < values.length ? values[length] : undefined;\n let change = value;\n\n if (type & ARRAY) {\n if (type & COMMENT) {\n if (value.length) {\n if (value[0] instanceof Hole) {\n change = holed(prev, value);\n }\n }\n } else if (type & EVENT && value[0] === prev[0]) {\n continue;\n }\n }\n\n else if (type & COMMENT) {\n if (prev instanceof Hole) {\n value = getHole(prev, value);\n change = value.n;\n }\n }\n\n if (value !== prev) {\n entry[2] = value;\n update(entry[3], change);\n }\n }\n\n return this.n;\n }\n }\n\n // render/index.js\n var _parseTemplate = createParser(update);\n\n var rendered = new WeakMap();\n\n var wireCache = new WeakMap();\n\n var _htmlCache = new WeakMap();\n\n html = function(template, ...values) {\n let parsed = _htmlCache.get(template);\n if (!parsed) {\n\n parsed = _parseTemplate(template, values, false);\n\n parsed.push(isKeyed() ? new Keyed() : null);\n\n parsed[0] = createFragment(parsed[0].toString());\n _htmlCache.set(template, parsed);\n }\n return new Hole(parsed, values);\n }\n\n bind = function(element) {\n return (template, ...values) => {\n const hole = html(template, ...values);\n const known = rendered.get(element);\n\n if (!known || known.t !== hole.t) {\n\n const d = dom(hole);\n element.replaceChildren(d);\n rendered.set(element, hole);\n } else {\n\n known.update(hole);\n }\n return element;\n };\n }\n\n wire = function(obj, id = '') {\n let cache = wireCache.get(obj);\n if (!cache) {\n cache = new Map();\n wireCache.set(obj, cache);\n }\n\n return (template, ...values) => {\n let entry = cache.get(id);\n\n if (!entry || entry.tpl !== template) {\n\n const hole = html(template, ...values);\n entry = { hole, tpl: template };\n cache.set(id, entry);\n return hole;\n }\n\n return new Hole(entry.hole.t, values);\n };\n }\n\n // styled/parser-hooks.js\n var STYLED_SUFFIX = '+styled';\n\n // styled/registry.js\n var registry = new WeakMap();\n\n var renderingInstance = null;\n\n setRenderingInstance = function(instance) {\n renderingInstance = instance;\n }\n\n getRenderingInstance = function() {\n return renderingInstance;\n }\n\n registerStyled = function(instance, styled, ctx, store, colors) {\n registry.set(instance, { styled, ctx, store, colors });\n }\n\n unregisterStyled = function(instance) {\n registry.delete(instance);\n }\n\n getStyledEntry = function(instance) {\n return registry.get(instance);\n }\n\n // styled/resolution.js\n resolveColors = function(styles, colors) {\n const resolved = {};\n for (const [prop, value] of Object.entries(styles)) {\n if (typeof value === 'string') {\n\n if (colors[value]) {\n resolved[prop] = colors[value];\n } else {\n\n let newValue = value;\n for (const [name, hex] of Object.entries(colors)) {\n\n newValue = newValue.replace(new RegExp(`\\\\b${name}\\\\b`, 'g'), hex);\n }\n resolved[prop] = newValue;\n }\n } else {\n resolved[prop] = value;\n }\n }\n return resolved;\n }\n\n isNestedSyntax = function(tagStyles) {\n return tagStyles && typeof tagStyles === 'object' && 'base' in tagStyles;\n }\n\n resolveStylesWithEntry = function(entry, tagName, styleValue, propFlags) {\n const { styled, ctx, colors } = entry;\n\n const store = entry.store ?? ctx?.store;\n\n if (!styled || !Array.isArray(styled) || !styled[0]) {\n if (styleValue && typeof styleValue === 'object' && !styleValue.__unsafe) {\n return styleValue;\n }\n return null;\n }\n\n const [base, logic] = styled;\n let result = {};\n let hasStyles = false;\n\n const tagStyles = base[tagName];\n if (tagStyles) {\n hasStyles = true;\n if (isNestedSyntax(tagStyles)) {\n\n result = { ...tagStyles.base };\n } else {\n\n result = { ...tagStyles };\n }\n }\n\n for (const key of Object.keys(base)) {\n if (key.includes(',')) {\n const tags = key.split(',').map((t) => t.trim());\n if (tags.includes(tagName)) {\n hasStyles = true;\n result = { ...result, ...base[key] };\n }\n }\n }\n\n if (\n propFlags &&\n propFlags.length > 0 &&\n tagStyles &&\n isNestedSyntax(tagStyles)\n ) {\n for (const flag of propFlags) {\n if (flag.active && tagStyles[flag.name]) {\n hasStyles = true;\n result = { ...result, ...tagStyles[flag.name] };\n }\n }\n }\n\n if (logic && typeof logic[tagName] === 'function') {\n\n const logicResult = logic[tagName](styleValue, ctx, store);\n if (logicResult && typeof logicResult === 'object') {\n hasStyles = true;\n result = { ...result, ...logicResult };\n }\n } else if (\n styleValue &&\n typeof styleValue === 'object' &&\n !styleValue.__unsafe\n ) {\n\n if (tagStyles && isNestedSyntax(tagStyles)) {\n const inlineStyles = {};\n for (const [key, val] of Object.entries(styleValue)) {\n if (typeof val === 'boolean') {\n\n if (val && tagStyles[key]) {\n hasStyles = true;\n result = { ...result, ...tagStyles[key] };\n }\n\n } else {\n\n inlineStyles[key] = val;\n }\n }\n\n if (Object.keys(inlineStyles).length > 0) {\n hasStyles = true;\n result = { ...result, ...inlineStyles };\n }\n } else {\n\n hasStyles = true;\n result = { ...result, ...styleValue };\n }\n }\n\n if (colors && Object.keys(colors).length > 0) {\n result = resolveColors(result, colors);\n }\n\n return hasStyles ? result : null;\n }\n\n resolveStyles = function(instance, tagName, styleValue, propFlags) {\n const entry = getStyledEntry(instance);\n if (!entry) {\n\n if (styleValue && typeof styleValue === 'object' && !styleValue.__unsafe) {\n return styleValue;\n }\n return null;\n }\n\n return resolveStylesWithEntry(entry, tagName, styleValue, propFlags);\n }\n\n // styled/apply.js\n applyStylesToNode = function(node, styles) {\n if (!styles || typeof styles !== 'object') return;\n\n for (const [prop, value] of Object.entries(styles)) {\n if (value == null || value === '') {\n node.style.removeProperty(prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n } else {\n\n const kebabProp = prop.replace(/([A-Z])/g, '-$1').toLowerCase();\n node.style.setProperty(kebabProp, String(value));\n }\n }\n }\n\n // styled/handler.js\n var styledStyleHandler = (tagName, propFlags) => (node, value) => {\n const instance = getRenderingInstance();\n\n const activeFlags = propFlags\n ? propFlags.map((f) => ({ name: f.name, active: true }))\n : null;\n\n const resolved = resolveStyles(instance, tagName, value, activeFlags);\n if (resolved) {\n applyStylesToNode(node, resolved);\n }\n };\n\n // template/buildTemplate.js\n buildTemplate = function(innerHTML) {\n\n const hasAdvanced = /\\{\\+(if|each|unless)\\s/.test(innerHTML);\n\n if (hasAdvanced) {\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object. You passed ' +\n JSON.stringify(data)\n );\n }\n\n let result = processAdvancedTemplate(innerHTML, data);\n\n result = result.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return data[key] != null ? escapeHtml(String(data[key])) : '';\n });\n\n return { html: result };\n };\n }\n\n const re = /(\\{[\\w]+\\})/g;\n const templateVals = innerHTML.split(re).reduce(\n (vals, item) => {\n if ('{' === item[0] && '}' === item.slice(-1)) {\n vals.keys.push(item.slice(1, -1));\n } else {\n vals.markup.push(item);\n }\n\n return vals;\n },\n { markup: [], keys: [] }\n );\n\n templateVals.id = ':' + templateVals.markup.join().trim();\n\n function fragment(data) {\n const output = [\n templateVals.markup,\n\n ...templateVals.keys.map((key) => (data[key] != null ? data[key] : '')),\n ];\n output.raw = { value: templateVals.markup };\n return output;\n }\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object to be populated with. You passed ' +\n JSON.stringify(data) +\n ' to ' +\n templateVals.id\n );\n }\n return wire(data, templateVals.id)(...fragment(data));\n };\n }\n\n // attributes/dataset.js\n addDataset = function(dataset, dash_key) {\n const camel_key = dash_key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n\n Object.defineProperty(dataset, camel_key, {\n enumerable: true, // can be selected\n configurable: true, // can be delete\n get: () => parseAttribute(camel_key, this.dataset[camel_key]),\n set: (value) => {\n manager[this.identifier].attrsToIgnore['data-' + dash_key] = true;\n if ('string' === typeof value) {\n this.dataset[camel_key] = value;\n } else {\n this.dataset[camel_key] = JSON.stringify(value);\n }\n },\n });\n }\n\n getDataset = function() {\n const dataset = {};\n Object.keys(this.dataset).forEach((key) =>\n addDataset.call(\n this,\n dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n )\n );\n return dataset;\n }\n\n // attributes/attachAttrs.js\n attachAttrs = function(attributes) {\n const accumulator = {};\n\n for (let i = 0; i < attributes.length; i++) {\n const { value, name } = attributes[i];\n\n if ('template' === name && !value) {\n const ref = manager[this.identifier];\n ref.Html.template = buildTemplate(ref.innerHTML);\n accumulator[name] = true;\n } else if (\n ('fn-' === value.substr(0, 3) || 'ob-' === value.substr(0, 3)) &&\n !!sharedAttrs[value.substr(3)] &&\n sharedAttrs[value.substr(3)].localName === this.localName\n ) {\n accumulator[name] = sharedAttrs[value.substr(3)].val;\n } else {\n if (+value + '' === (value + '').trim()) {\n accumulator[name] = +value;\n } else {\n accumulator[name] = value;\n }\n }\n }\n return accumulator;\n }\n\n // html/createHtml.js\n createHtml = function(shadow) {\n const boundRender = bind(shadow);\n\n function Html(...args) {\n\n if (hasEachBlocks(args[0])) {\n const transformed = transformEachBlocks(\n args[0],\n args.slice(1),\n Html.wire\n );\n args = [transformed.strings, ...transformed.values];\n }\n\n const hasNonString = args\n .slice(1)\n .some((item) => item != null && typeof item !== 'string');\n const hasCustomTag = args[0].some((t) => isCustomTag.test(t));\n\n if (hasNonString && hasCustomTag) {\n let inCustomTag = false;\n let localName = '';\n args[0].forEach((item, index, _items) => {\n if (isCustomTag.test(item)) {\n inCustomTag =\n -1 === item.substring(item.match(isCustomTag).index).indexOf('>');\n localName =\n inCustomTag &&\n item\n .substring(item.indexOf(item.match(isCustomTag)))\n .split(/\\s/)[0]\n .substr(1);\n } else if (0 <= item.indexOf('>')) {\n inCustomTag = false;\n localName = '';\n }\n\n if (!inCustomTag) {\n return;\n }\n const val = args[index + 1];\n\n if (val != null && typeof val !== 'string') {\n const attrName = item.split(/\\s/).pop().slice(0, -1);\n if ('on' === attrName.substring(0, 2)) {\n throw new Error(\n `'on' is reserve for native elements. Change: \"${attrName}\" for \"${localName}\" to something else`\n );\n }\n\n if ('style' === attrName) {\n return;\n }\n const id = makeid();\n sharedAttrs[id] = { attrName, val, localName };\n args[index + 1] = ('function' === typeof val ? 'fn-' : 'ob-') + id;\n }\n });\n }\n\n const processedArgs = [args[0]];\n for (let i = 1; i < args.length; i++) {\n let val = args[i];\n\n if (\n val &&\n typeof val === 'object' &&\n !Array.isArray(val) &&\n !isSafeHtml(val)\n ) {\n const keys = Object.keys(val);\n if (keys.length === 1 && /^[A-Z]/.test(keys[0])) {\n const fragmentName = keys[0];\n const fragmentData = val[fragmentName];\n\n if (Html._fragments && Html._fragments[fragmentName]) {\n val = Html._fragments[fragmentName](fragmentData);\n }\n }\n }\n\n if (isSafeHtml(val)) {\n\n processedArgs.push({ __unsafe: true, value: val.value });\n } else if (val && typeof val === 'object' && val.__unsafe) {\n\n processedArgs.push(val);\n } else if (val && typeof val === 'object' && val.html !== undefined) {\n\n processedArgs.push({ __unsafe: true, value: val.html });\n } else if (Array.isArray(val)) {\n\n processedArgs.push(\n val.map((item) => {\n if (isSafeHtml(item)) {\n return { __unsafe: true, value: item.value };\n }\n return item;\n })\n );\n } else {\n\n processedArgs.push(val);\n }\n }\n\n return boundRender(...processedArgs);\n }\n\n Html._fragments = null;\n\n Html.wire = function wireTemplate(obj, id = '') {\n return wire(obj, id);\n };\n\n Html.raw = function raw(htmlStr) {\n return safeHtml(htmlStr);\n };\n\n Html.lite = function lite(elementOrStrings, ...values) {\n\n if (elementOrStrings && elementOrStrings.raw) {\n\n return html(elementOrStrings, ...values);\n }\n\n return bind(elementOrStrings);\n };\n\n return Html;\n }\n\n // ssr/pathResolver.js\n getNthOfTypeIndex = function(element) {\n const tagName = element.tagName;\n let index = 0;\n let sibling = element.previousElementSibling;\n\n while (sibling) {\n if (sibling.tagName === tagName) {\n index++;\n }\n sibling = sibling.previousElementSibling;\n }\n\n return index;\n }\n\n calculatePath = function(target, root) {\n if (target === root) return '';\n\n const parts = [];\n let current = target;\n\n while (current && current !== root && current.parentElement) {\n const tagName = current.tagName;\n const index = getNthOfTypeIndex(current);\n parts.unshift(`${tagName}:${index}`);\n current = current.parentElement;\n }\n\n return parts.join('/');\n }\n\n resolvePath = function(path, root) {\n if (!path) return root;\n\n const parts = path.split('/');\n let current = root;\n\n for (const part of parts) {\n const [tagName, indexStr] = part.split(':');\n const targetIndex = parseInt(indexStr, 10);\n\n const children = Array.from(current.children).filter(\n (child) => child.tagName === tagName\n );\n\n if (targetIndex >= children.length) {\n console.warn(\n `[hyper-element SSR] Could not match path segment \"${part}\" - ` +\n `found ${children.length} ${tagName} elements, needed index ${targetIndex}`\n );\n return null;\n }\n\n current = children[targetIndex];\n }\n\n return current;\n }\n\n // ssr/buffer.js\n addToBuffer = function(ssrState, customElement, bufferedEvent) {\n let elementBuffer = ssrState.buffer.get(customElement);\n\n if (!elementBuffer) {\n elementBuffer = [];\n ssrState.buffer.set(customElement, elementBuffer);\n }\n\n elementBuffer.push(bufferedEvent);\n }\n\n getBufferedEvents = function(ssrState, customElement) {\n return ssrState.buffer.get(customElement) || [];\n }\n\n clearBuffer = function(ssrState, customElement) {\n ssrState.buffer.delete(customElement);\n }\n\n // ssr/devIndicator.js\n var indicatorElement = null;\n\n showDevIndicator = function() {\n if (indicatorElement) return;\n\n indicatorElement = document.createElement('div');\n indicatorElement.id = 'hyper-element-ssr-indicator';\n indicatorElement.innerHTML = 'SSR Capture Active';\n indicatorElement.style.cssText = `\n position: fixed;\n top: 10px;\n right: 10px;\n background: #ff9800;\n color: white;\n padding: 8px 16px;\n border-radius: 4px;\n font-family: sans-serif;\n font-size: 12px;\n font-weight: bold;\n z-index: 999999;\n pointer-events: none;\n `;\n\n if (document.body) {\n document.body.appendChild(indicatorElement);\n } else {\n document.addEventListener(\n 'DOMContentLoaded',\n () => {\n document.body.appendChild(indicatorElement);\n },\n { once: true }\n );\n }\n }\n\n hideDevIndicator = function() {\n if (indicatorElement) {\n indicatorElement.remove();\n indicatorElement = null;\n }\n }\n\n // ssr/capture.js\n isUnregisteredCustomElement = function(element) {\n const tagName = element.tagName.toLowerCase();\n if (!tagName.includes('-')) return false;\n return !customElements.get(tagName);\n }\n\n findCustomElementAncestor = function(element) {\n let current = element;\n while (current && current !== document.body) {\n if (isUnregisteredCustomElement(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n }\n\n extractEventDetail = function(event) {\n const detail = {\n type: event.type,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n };\n\n if (event instanceof MouseEvent) {\n detail.clientX = event.clientX;\n detail.clientY = event.clientY;\n detail.button = event.button;\n detail.buttons = event.buttons;\n }\n\n if (event instanceof KeyboardEvent) {\n detail.key = event.key;\n detail.code = event.code;\n detail.ctrlKey = event.ctrlKey;\n detail.shiftKey = event.shiftKey;\n detail.altKey = event.altKey;\n detail.metaKey = event.metaKey;\n }\n\n if (event.type === 'input' || event.type === 'change') {\n const target = event.target;\n if (target.type === 'checkbox' || target.type === 'radio') {\n detail.checked = target.checked;\n } else {\n detail.value = target.value;\n }\n }\n\n if (event instanceof TouchEvent && event.touches) {\n detail.touches = Array.from(event.touches).map((t) => ({\n clientX: t.clientX,\n clientY: t.clientY,\n identifier: t.identifier,\n }));\n }\n\n return detail;\n }\n\n captureScrollState = function(customElement, ssrState) {\n const state = ssrState.elementStates.get(customElement) || {\n scrollPositions: new Map(),\n checkedStates: new Map(),\n };\n\n const scrollables = customElement.querySelectorAll('*');\n scrollables.forEach((el) => {\n if (el.scrollTop > 0 || el.scrollLeft > 0) {\n const path = calculatePath(el, customElement);\n state.scrollPositions.set(path, {\n scrollTop: el.scrollTop,\n scrollLeft: el.scrollLeft,\n });\n }\n });\n\n ssrState.elementStates.set(customElement, state);\n }\n\n captureCheckedState = function(target, customElement, ssrState) {\n if (target.type === 'checkbox' || target.type === 'radio') {\n const state = ssrState.elementStates.get(customElement) || {\n scrollPositions: new Map(),\n checkedStates: new Map(),\n };\n const path = calculatePath(target, customElement);\n state.checkedStates.set(path, target.checked);\n ssrState.elementStates.set(customElement, state);\n }\n }\n\n handleCapturedEvent = function(event, ssrState) {\n if (!ssrState.captureActive) return;\n if (event._hyperElementReplayed) return;\n\n const target = event.target;\n if (!target || !target.tagName) return;\n\n const customElement = findCustomElementAncestor(target);\n if (!customElement) return;\n\n const tagName = customElement.tagName.toLowerCase();\n if (ssrState.registeredTags.has(tagName)) return;\n\n const targetPath = calculatePath(target, customElement);\n\n const bufferedEvent = {\n type: event.type,\n targetPath,\n timestamp: Date.now(),\n detail: extractEventDetail(event),\n };\n\n addToBuffer(ssrState, customElement, bufferedEvent);\n\n if (['scroll', 'focus', 'blur'].includes(event.type)) {\n captureScrollState(customElement, ssrState);\n }\n\n if (event.type === 'change' || event.type === 'click') {\n captureCheckedState(target, customElement, ssrState);\n }\n }\n\n startCapture = function(ssrState) {\n \n const handler = (event) => handleCapturedEvent(event, ssrState);\n\n ssrState.config.events.forEach((eventType) => {\n document.addEventListener(eventType, handler, {\n capture: true,\n passive: true,\n });\n });\n\n ssrState._captureHandler = handler;\n }\n\n // ssr/replay.js\n createSyntheticEvent = function(bufferedEvent) {\n const { type, detail } = bufferedEvent;\n let EventConstructor = Event;\n let initOptions = {\n bubbles: detail.bubbles ?? true,\n cancelable: detail.cancelable ?? true,\n };\n\n if (\n ['click', 'dblclick', 'mousedown', 'mouseup', 'mousemove'].includes(type)\n ) {\n EventConstructor = MouseEvent;\n Object.assign(initOptions, {\n clientX: detail.clientX,\n clientY: detail.clientY,\n button: detail.button,\n buttons: detail.buttons,\n });\n } else if (['keydown', 'keyup', 'keypress'].includes(type)) {\n EventConstructor = KeyboardEvent;\n Object.assign(initOptions, {\n key: detail.key,\n code: detail.code,\n ctrlKey: detail.ctrlKey,\n shiftKey: detail.shiftKey,\n altKey: detail.altKey,\n metaKey: detail.metaKey,\n });\n } else if (type === 'input') {\n EventConstructor = InputEvent;\n Object.assign(initOptions, {\n inputType: 'insertText',\n data: detail.value,\n });\n }\n\n const event = new EventConstructor(type, initOptions);\n event._hyperElementReplayed = true;\n\n return event;\n }\n\n restoreElementState = function(customElement, ssrState) {\n const state = ssrState.elementStates.get(customElement);\n if (!state) return;\n\n if (state.scrollPositions) {\n state.scrollPositions.forEach((scroll, path) => {\n const element = resolvePath(path, customElement);\n if (element) {\n element.scrollTop = scroll.scrollTop;\n element.scrollLeft = scroll.scrollLeft;\n }\n });\n }\n\n if (state.checkedStates) {\n state.checkedStates.forEach((checked, path) => {\n const element = resolvePath(path, customElement);\n if (\n element &&\n (element.type === 'checkbox' || element.type === 'radio')\n ) {\n element.checked = checked;\n }\n });\n }\n\n ssrState.elementStates.delete(customElement);\n }\n\n replayEvents = function(\n customElement,\n ssrState,\n onBeforeHydrate,\n onAfterHydrate\n ) {\n let events = getBufferedEvents(ssrState, customElement);\n\n if (onBeforeHydrate) {\n const filtered = onBeforeHydrate(events);\n if (Array.isArray(filtered)) {\n events = filtered;\n } else if (filtered !== undefined) {\n console.warn('[hyper-element SSR] onBeforeHydrate must return an array');\n }\n }\n\n events.sort((a, b) => a.timestamp - b.timestamp);\n\n events.forEach((bufferedEvent) => {\n const target = resolvePath(bufferedEvent.targetPath, customElement);\n\n if (!target) {\n console.warn(\n `[hyper-element SSR] Could not replay event \"${bufferedEvent.type}\" - ` +\n `target path \"${bufferedEvent.targetPath}\" not found after hydration`\n );\n return;\n }\n\n if (bufferedEvent.detail.value !== undefined) {\n target.value = bufferedEvent.detail.value;\n }\n\n if (bufferedEvent.detail.checked !== undefined) {\n target.checked = bufferedEvent.detail.checked;\n }\n\n const syntheticEvent = createSyntheticEvent(bufferedEvent);\n target.dispatchEvent(syntheticEvent);\n });\n\n restoreElementState(customElement, ssrState);\n clearBuffer(ssrState, customElement);\n\n if (onAfterHydrate) {\n onAfterHydrate();\n }\n }\n\n // ssr/index.js\n var DEFAULT_EVENTS = [\n 'click',\n 'dblclick',\n 'input',\n 'change',\n 'submit',\n 'keydown',\n 'keyup',\n 'keypress',\n 'focus',\n 'blur',\n 'focusin',\n 'focusout',\n 'touchstart',\n 'touchend',\n 'touchmove',\n 'touchcancel',\n ];\n\n var ssrState = {\n config: {\n events: [...DEFAULT_EVENTS],\n devMode: false,\n },\n buffer: new Map(),\n elementStates: new WeakMap(),\n captureActive: false,\n registeredTags: new Set(),\n };\n\n configureSSR = function(options = {}) {\n if (Array.isArray(options.events)) {\n ssrState.config.events = options.events;\n }\n if (options.devMode !== undefined) {\n ssrState.config.devMode = options.devMode;\n if (options.devMode) {\n showDevIndicator();\n } else {\n hideDevIndicator();\n }\n }\n }\n\n initSSR = function() {\n if (ssrState.captureActive) return;\n ssrState.captureActive = true;\n startCapture(ssrState);\n }\n\n markTagRegistered = function(tagName) {\n ssrState.registeredTags.add(tagName.toLowerCase());\n }\n\n if (typeof document !== 'undefined') {\n initSSR();\n }\n\n // lifecycle/onNext.js\n onNext = function(that, store) {\n const storeFn = 'function' == typeof store ? store : () => store;\n\n const baseRender = this._baseRender || this.render;\n this._baseRender = baseRender;\n\n const render2 = (...data) => {\n if (undefined === store) {\n that.store = undefined;\n baseRender(...data);\n } else {\n that.store = storeFn();\n baseRender(that.store, ...data);\n }\n };\n this.render = render2;\n\n if (this._onNextInitialized) {\n render2();\n } else {\n this._onNextInitialized = true;\n }\n\n return render2;\n }\n\n // lifecycle/observer.js\n observer = function(ref) {\n const that = ref.this;\n\n const element = this;\n\n const mutationObserver = new MutationObserver((mutations) => {\n if (!ref.observe) return;\n\n const attrMutations = mutations.filter((m) => m.type === 'attributes');\n if (attrMutations.length > 0) {\n\n attrMutations.forEach((m) => {\n const name = m.attributeName;\n if (name.startsWith('data-')) {\n const dataSetName = name.slice(5); // Remove 'data-' prefix\n const camelKey = dataSetName.replace(/-([a-z])/g, (g) =>\n g[1].toUpperCase()\n );\n\n if (element.hasAttribute(name)) {\n\n if (!(camelKey in that.dataset)) {\n element.addDataset(that.dataset, dataSetName);\n }\n } else {\n\n delete that.dataset[camelKey];\n }\n }\n });\n\n that.attrs = element.attachAttrs(element.attributes) || {};\n element.render();\n return;\n }\n\n let textContent = element.textContent;\n\n ref.innerHTML = element.innerHTML;\n if (that.attrs.template) {\n that.attrs = element.attachAttrs(element.attributes) || {};\n }\n\n bind(ref.shadow)``;\n\n that.wrappedContent = textContent;\n element.render();\n });\n\n ref.mutationObserver = mutationObserver;\n\n mutationObserver.observe(element, {\n\n attributes: true,\n\n childList: true,\n\n subtree: true,\n });\n }\n\n // lifecycle/processFragmentResult.js\n processFragmentResult = function(\n result,\n data,\n templatestrings,\n onResolve\n ) {\n\n if (result.text !== undefined) {\n if (typeof result.text === 'string') {\n return result.text;\n }\n\n if (result.text && typeof result.text.then === 'function') {\n result.text.then((resolved) => {\n result.text = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n }\n\n if (result.html !== undefined) {\n if (typeof result.html === 'string') {\n return { __unsafe: true, value: result.html };\n }\n\n if (result.html && typeof result.html.then === 'function') {\n result.html.then((resolved) => {\n result.html = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n }\n\n if (result.template) {\n if ('string' === typeof result.template) {\n if (!templatestrings[result.template]) {\n templatestrings[result.template] = buildTemplate(result.template);\n }\n const values = result.values || data;\n\n if (Array.isArray(values)) {\n const mapped = values.map(templatestrings[result.template]);\n\n const combined = mapped\n .map((item) => {\n if (item && item.html) {\n return item.html;\n }\n\n const node = dom(item);\n if (node.nodeType === 11) {\n\n const div = document.createElement('div');\n div.appendChild(node.cloneNode(true));\n return div.innerHTML;\n }\n return node.outerHTML || node.textContent;\n })\n .join('');\n return { __unsafe: true, value: combined };\n }\n const templateResult = templatestrings[result.template](values);\n\n if (templateResult && templateResult.html) {\n return { __unsafe: true, value: templateResult.html };\n }\n\n if (templateResult instanceof Hole) {\n const node = dom(templateResult);\n if (node.nodeType === 11) {\n const div = document.createElement('div');\n div.appendChild(node.cloneNode(true));\n return { __unsafe: true, value: div.innerHTML };\n }\n return { __unsafe: true, value: node.outerHTML || node.textContent };\n }\n return templateResult;\n } else if (\n 'object' === typeof result.template &&\n 'function' === typeof result.template.then\n ) {\n\n result.template.then((args) => {\n let { template, values } = args;\n if (!template && 'string' === typeof args) {\n template = args;\n values = {};\n }\n\n result.template = template;\n result.values = values;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n } else {\n throw new Error(\n 'unknow template type:' +\n typeof result.template +\n ' | ' +\n JSON.stringify(result.template)\n );\n }\n }\n\n if (result.any !== undefined) {\n\n if (result.any && typeof result.any.then === 'function') {\n result.any.then((resolved) => {\n result.any = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n return result.any;\n }\n\n return result;\n }\n\n // lifecycle/connectedCallback.js\n createdCallback = function() {\n\n initSSR();\n\n this.identifier = Symbol(this.localName);\n const ref = (manager[this.identifier] = { attrsToIgnore: {} });\n ref.innerHTML = this.innerHTML;\n const that = (ref.this = { element: this });\n that.wrappedContent = this.textContent;\n\n const fragmentCache = {};\n\n ref.observe = true;\n observer.call(this, ref); // observer change to innerHTML\n\n Object.getOwnPropertyNames(this.__proto__)\n .filter(\n (name) =>\n !('constructor' === name || 'setup' === name || 'render' === name)\n )\n .forEach((name) => {\n if (/^[A-Z]/.test(name)) {\n const templatestrings = {};\n \n fragmentCache[name] = (data) => {\n\n if (fragmentCache[name]._cached !== undefined) {\n return fragmentCache[name]._cached;\n }\n\n let result;\n if (fragmentCache[name]._asyncResult) {\n result = fragmentCache[name]._asyncResult;\n } else {\n result = this[name](data);\n }\n\n const hasAsync =\n (result.text && typeof result.text.then === 'function') ||\n (result.html && typeof result.html.then === 'function') ||\n (result.any && typeof result.any.then === 'function') ||\n (result.template && typeof result.template.then === 'function');\n\n if (hasAsync) {\n fragmentCache[name]._asyncResult = result;\n }\n\n const onResolve = () => {\n\n this.render();\n };\n\n const processed = processFragmentResult(\n result,\n data,\n templatestrings,\n onResolve\n );\n\n if (result.once && !hasAsync) {\n fragmentCache[name]._cached = processed;\n }\n\n if (!hasAsync && fragmentCache[name]._asyncResult) {\n delete fragmentCache[name]._asyncResult;\n }\n\n return processed;\n };\n } else {\n that[name] = this[name].bind(that);\n }\n delete this[name];\n });\n\n ref.fragments = fragmentCache;\n\n function toString() {\n return 'hyper-element: ' + this.localName;\n }\n Object.defineProperty(that, 'toString', {\n value: toString.bind(this),\n writable: false,\n });\n\n ref.shadow = this;\n\n ref.shadow.__hyperInstance = this;\n\n ref.Html = createHtml(ref.shadow);\n\n ref.Html._fragments = fragmentCache;\n\n that.attrs = this.attachAttrs(this.attributes);\n that.dataset = this.getDataset();\n\n const styledConfig = this.constructor.__styledConfig;\n if (styledConfig?.styled) {\n registerStyled(this, styledConfig.styled, that, null, styledConfig.colors);\n }\n\n const render = this.render;\n this.render = (...data) => {\n ref.observe = false;\n\n setRenderingInstance(this);\n render.call(that, ref.Html, ...data);\n setRenderingInstance(null);\n\n ref.mutationObserver?.takeRecords();\n ref.observe = true;\n\n Object.getOwnPropertyNames(that.dataset)\n .filter((key) => !this.dataset[key])\n .forEach((key) => {\n const value = that.dataset[key];\n addDataset.call(\n this,\n that.dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n );\n that.dataset[key] = value;\n });\n };\n\n if (this.setup) {\n ref.teardown = this.setup.call(that, onNext.bind(this, that));\n }\n\n markTagRegistered(this.localName);\n\n this.render();\n\n queueMicrotask(() => {\n replayEvents(\n this,\n ssrState,\n this.onBeforeHydrate?.bind(that),\n this.onAfterHydrate?.bind(that)\n );\n });\n }\n\n // hyperElement.js\n hyperElement = class extends HTMLElement {\n \n identifier;\n\n get innerShadow() {\n return manager[this.identifier].shadow.innerHTML;\n }\n\n connectedCallback() {\n createdCallback.call(this);\n }\n\n addDataset(dataset, dash_key) {\n addDataset.call(this, dataset, dash_key);\n }\n\n getDataset() {\n return getDataset.call(this);\n }\n\n attachAttrs(attributes) {\n return attachAttrs.call(this, attributes);\n }\n\n attributeChangedCallback(name, oldVal, newVal) {} // eslint-disable-line no-unused-vars\n\n disconnectedCallback() {\n const ref = manager[this.identifier];\n ref.teardown && ref.teardown();\n\n unregisterStyled(this);\n }\n\n setup(onNext) {} // eslint-disable-line no-unused-vars\n\n onBeforeHydrate(events) {\n return events;\n }\n\n onAfterHydrate() {}\n\n render(Html, ...data) {} // eslint-disable-line no-unused-vars\n }\n\n // functional.js\n createFunctionalElement = function(tagOrDef, definition) {\n\n let tagName = null;\n if (typeof tagOrDef === 'string') {\n tagName = tagOrDef;\n } else {\n definition = tagOrDef;\n }\n\n if (typeof definition === 'function') {\n definition = { render: definition };\n }\n\n if (!definition || typeof definition !== 'object') {\n throw new Error(\n 'hyperElement: definition must be an object or render function'\n );\n }\n\n const {\n setup: setupFn,\n render: renderFn,\n onBeforeHydrate: beforeHydrateFn,\n onAfterHydrate: afterHydrateFn,\n ...methods\n } = definition;\n\n if (!renderFn || typeof renderFn !== 'function') {\n throw new Error('hyperElement: render function is required');\n }\n\n class FunctionalElement extends hyperElement {}\n\n if (setupFn) {\n FunctionalElement.prototype.setup = function (onNext) {\n return setupFn(this, onNext);\n };\n }\n\n FunctionalElement.prototype.render = function (Html, ...data) {\n return renderFn(Html, this, ...data);\n };\n\n if (beforeHydrateFn) {\n FunctionalElement.prototype.onBeforeHydrate = function (events) {\n return beforeHydrateFn(this, events);\n };\n }\n\n if (afterHydrateFn) {\n FunctionalElement.prototype.onAfterHydrate = function () {\n return afterHydrateFn(this);\n };\n }\n\n for (const [name, fn] of Object.entries(methods)) {\n if (typeof fn !== 'function') {\n continue; // Skip non-function properties\n }\n FunctionalElement.prototype[name] = function (...args) {\n return fn(this, ...args);\n };\n }\n\n if (definition.styled || definition.__options) {\n FunctionalElement.__styledConfig = {\n styled: definition.styled || null,\n colors: definition.__options?.colors || null,\n };\n }\n\n if (tagName) {\n customElements.define(tagName, FunctionalElement);\n }\n\n return FunctionalElement;\n }\n\n // withOptions.js\n withOptions = function(options = {}) {\n \n return function customHyperElement(tagNameOrDefinition, definition) {\n\n let tagName = null;\n let def = null;\n\n if (typeof tagNameOrDefinition === 'string') {\n tagName = tagNameOrDefinition;\n def = definition;\n } else {\n def = tagNameOrDefinition;\n }\n\n if (typeof def === 'function') {\n def = { render: def };\n }\n\n if (def && typeof def === 'object') {\n def.__options = options;\n }\n\n if (tagName) {\n return createFunctionalElement(tagName, def);\n }\n return createFunctionalElement(def);\n };\n }\n\n }\n\n // ssr/string-update.js\n let ssrContext = null;\n\n function setSSRContext(context) {\n ssrContext = context;\n }\n\n function getSSRContext() {\n return ssrContext;\n }\n\n function styleObjectToString(styleObj) {\n if (!styleObj || typeof styleObj !== 'object') return '';\n return Object.entries(styleObj)\n .filter(([, value]) => value != null)\n .map(([prop, value]) => {\n\n const kebabProp = prop.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabProp}: ${value}`;\n })\n .join('; ');\n }\n\n const stringAttribute = (_name) => (value) => {\n if (value == null) return null;\n return escapeHtml(String(value));\n };\n\n const stringStyle = (value) => {\n if (value == null) return null;\n if (typeof value === 'object') {\n return styleObjectToString(value);\n }\n return escapeHtml(String(value));\n };\n\n const stringStyledStyle = (tagName, propFlags) => (value) => {\n const context = getSSRContext();\n if (!context || !context.styled) {\n\n return stringStyle(value);\n }\n\n const entry = {\n styled: context.styled,\n ctx: { attrs: context.attrs, store: context.store },\n store: context.store,\n colors: context.colors || null,\n };\n\n const activeFlags = propFlags\n ? propFlags.map((f) => ({ name: f.name, active: true }))\n : [];\n\n const resolved = resolveStylesWithEntry(entry, tagName, value, activeFlags);\n if (!resolved) return null;\n\n return styleObjectToString(resolved);\n };\n\n const stringToggle = (_name) => (value) => {\n return value ? true : null;\n };\n\n const stringEvent = () => () => null;\n\n const stringDirect = () => () => null;\n\n const stringData = (values) => {\n if (!values || typeof values !== 'object') return {};\n const result = {};\n for (const [key, value] of Object.entries(values)) {\n if (value != null) {\n result[`data-${key}`] = escapeHtml(String(value));\n }\n }\n return result;\n };\n\n const stringComment = (value) => {\n if (value == null) return '';\n if (typeof value === 'object' && value.__unsafe) {\n return value.value; // Raw HTML, no escaping\n }\n return escapeHtml(String(value));\n };\n\n const stringCommentArray = (value) => {\n if (!Array.isArray(value)) return stringComment(value);\n return value\n .map((item) => {\n if (item == null) return '';\n if (typeof item === 'object' && item.__unsafe) {\n return item.value;\n }\n\n if (typeof item === 'string' || typeof item === 'number') {\n return escapeHtml(String(item));\n }\n\n return String(item);\n })\n .join('');\n };\n\n const stringUnsafe = (value) => {\n if (value && typeof value === 'object' && value.__unsafe) {\n return value.value;\n }\n return String(value ?? '');\n };\n\n const stringText = (value) => {\n if (value == null) return '';\n return escapeHtml(String(value));\n };\n\n const stringAttributeTemplate = (parts, holeIndex, holeCount) => (value) => ({\n value: escapeHtml(String(value ?? '')),\n parts,\n holeIndex,\n holeCount,\n });\n\n function ssrUpdate(node, type, path, name, hint) {\n switch (type) {\n case ATTRIBUTE_TEMPLATE_TYPE: {\n\n const { parts, holeIndex, holeCount } = hint;\n return [\n path,\n stringAttributeTemplate(parts, holeIndex, holeCount),\n ATTRIBUTE_TEMPLATE,\n name,\n ];\n }\n case COMMENT_TYPE: {\n if (Array.isArray(hint))\n return [path, stringCommentArray, COMMENT_ARRAY, null];\n if (hint && typeof hint === 'object' && hint.__unsafe) {\n return [path, stringUnsafe, UNSAFE, null];\n }\n return [path, stringComment, COMMENT, null];\n }\n case TEXT_TYPE: {\n return [path, stringText, TEXT, null];\n }\n case ATTRIBUTE_TYPE: {\n switch (name.charAt(0)) {\n case '@': {\n\n const array = Array.isArray(hint);\n return [path, stringEvent(), array ? EVENT_ARRAY : EVENT, null];\n }\n case '?': {\n\n const attrName = name.slice(1);\n return [path, stringToggle(attrName), TOGGLE, attrName];\n }\n case '.': {\n\n if (name === '...') {\n\n return [\n path,\n (values) => {\n const result = {};\n for (const [n, v] of Object.entries(values || {})) {\n if (v != null) result[n] = escapeHtml(String(v));\n }\n return result;\n },\n PROP,\n null,\n ];\n }\n return [path, stringDirect(), DIRECT, null];\n }\n default: {\n\n if (name === 'data' && !/^object$/i.test(node.name)) {\n return [path, stringData, DATA, 'data'];\n }\n if (name === 'key') {\n\n return [path, () => null, KEY, null];\n }\n if (name === 'ref') {\n\n return [path, stringDirect(), DIRECT, null];\n }\n if (name.startsWith('on')) {\n\n return [path, stringDirect(), DIRECT, null];\n }\n if (name === 'style') {\n\n if (node.isStyled) {\n return [\n path,\n stringStyledStyle(node.name, node.propFlags),\n ATTRIBUTE,\n 'style',\n ];\n }\n return [path, stringStyle, ATTRIBUTE, 'style'];\n }\n return [path, stringAttribute(name), ATTRIBUTE, name];\n }\n }\n }\n }\n }\n\n // ssr/string-render.js\n const ssrParser = createParser(ssrUpdate);\n\n const templateCache = new WeakMap();\n\n function cloneNode(node) {\n if (node instanceof Comment) {\n const clone = new Comment(node.data);\n clone.parent = null;\n return clone;\n }\n if (node instanceof Text) {\n const clone = new Text(node.data);\n clone.parent = null;\n return clone;\n }\n if (node instanceof Element) {\n const clone = new Element(node.name, node.xml);\n\n clone.props = { ...node.props };\n\n clone.isStyled = node.isStyled;\n clone.propFlags = node.propFlags;\n\n if (node.children && node.children.length > 0) {\n clone.children = node.children.map((child) => {\n const clonedChild = cloneNode(child);\n clonedChild.parent = clone;\n return clonedChild;\n });\n }\n return clone;\n }\n if (node instanceof Fragment) {\n const clone = new Fragment();\n if (node.children && node.children.length > 0) {\n clone.children = node.children.map((child) => {\n const clonedChild = cloneNode(child);\n clonedChild.parent = clone;\n return clonedChild;\n });\n }\n return clone;\n }\n }\n\n function resolveNode(root, path) {\n let node = root;\n\n for (let i = path.length - 1; i >= 0; i--) {\n const index = path[i];\n if (index === -1) {\n\n continue;\n }\n if (node.children && node.children[index] !== undefined) {\n node = node.children[index];\n }\n }\n return node;\n }\n\n function applyUpdates(tree, updates, values) {\n for (let i = 0; i < updates.length; i++) {\n const [path, handler, type, attrName] = updates[i];\n const value = values[i];\n const node = resolveNode(tree, path);\n\n switch (type) {\n case COMMENT:\n case COMMENT_ARRAY:\n case UNSAFE: {\n\n const rendered = handler(value);\n if (node instanceof Comment) {\n\n node._ssrContent = rendered;\n }\n break;\n }\n case TEXT: {\n\n if (node instanceof Element) {\n const rendered = handler(value);\n\n node.children = [new Text(rendered)];\n }\n break;\n }\n case ATTRIBUTE: {\n\n if (node instanceof Element && attrName) {\n const rendered = handler(value);\n if (rendered == null) {\n delete node.props[attrName];\n } else {\n node.props[attrName] = rendered;\n }\n }\n break;\n }\n case TOGGLE: {\n\n if (node instanceof Element && attrName) {\n const present = handler(value);\n if (present) {\n node.props[attrName] = true;\n } else {\n delete node.props[attrName];\n }\n }\n break;\n }\n case DATA: {\n\n if (node instanceof Element) {\n const dataAttrs = handler(value);\n Object.assign(node.props, dataAttrs);\n }\n break;\n }\n case PROP: {\n\n if (node instanceof Element && typeof handler === 'function') {\n const attrs = handler(value);\n if (attrs && typeof attrs === 'object') {\n Object.assign(node.props, attrs);\n }\n }\n break;\n }\n case ATTRIBUTE_TEMPLATE: {\n\n if (node instanceof Element && attrName) {\n const result = handler(value);\n const key = `_template_${attrName}`;\n\n if (!node[key]) {\n node[key] = {\n values: new Array(result.holeCount),\n parts: result.parts,\n remaining: result.holeCount,\n };\n }\n\n node[key].values[result.holeIndex] = result.value;\n node[key].remaining--;\n\n if (node[key].remaining === 0) {\n const { parts, values: vals } = node[key];\n let final = parts[0];\n for (let j = 0; j < vals.length; j++) {\n\n final += vals[j] + parts[j + 1];\n }\n node.props[attrName] = final;\n }\n }\n break;\n }\n case EVENT:\n case EVENT_ARRAY:\n case DIRECT:\n case KEY: {\n\n break;\n }\n }\n }\n\n return tree;\n }\n\n function nodeToString(node) {\n if (node instanceof Comment) {\n\n if (node._ssrContent !== undefined) {\n return node._ssrContent;\n }\n return node.toString();\n }\n if (node instanceof Text) {\n return node.toString();\n }\n if (node instanceof Element) {\n const { xml, name, props: p, children: c } = node;\n\n const length = c.length;\n let html = `<${name}`;\n\n for (const key in p) {\n const value = p[key];\n if (value != null) {\n if (typeof value === 'boolean') {\n if (value) html += xml ? ` ${key}=\"\"` : ` ${key}`;\n } else {\n html += ` ${key}=\"${value}\"`;\n }\n }\n }\n\n if (length) {\n html += '>';\n for (let i = 0; i < length; i++) {\n html += nodeToString(c[i]);\n }\n html += `</${name}>`;\n } else if (xml) {\n html += ' />';\n } else {\n html += VOID_ELEMENTS.has(name) ? '>' : `></${name}>`;\n }\n return html;\n }\n if (node instanceof Fragment) {\n\n if (node.children.length === 0) return '';\n return node.children.map((child) => nodeToString(child)).join('');\n }\n }\n\n function renderToString(template, values, xml = false) {\n\n let parsed = templateCache.get(template);\n if (!parsed) {\n parsed = ssrParser(template, values, xml);\n templateCache.set(template, parsed);\n }\n\n const [treeTemplate, updates] = parsed;\n\n const tree = cloneNode(treeTemplate);\n\n applyUpdates(tree, updates, values);\n\n return nodeToString(tree);\n }\n\n function createSSRTemplate(xml = false) {\n return (template, ...values) => renderToString(template, values, xml);\n }\n\n const ssrHtml = createSSRTemplate(false);\n\n // ssr/ssr-html.js\n function ssrWire(obj, _id = '') {\n return (template, ...values) => renderToString(template, values, false);\n }\n\n function processFragmentResult(result) {\n if (!result || typeof result !== 'object') {\n return result;\n }\n\n if (result.text !== undefined) {\n return escapeHtml(String(result.text));\n }\n\n if (result.html !== undefined) {\n return { __unsafe: true, value: result.html };\n }\n\n if (result.any !== undefined) {\n return result.any;\n }\n\n if (result.template !== undefined) {\n return { __unsafe: true, value: result.template };\n }\n\n if (isSafeHtml(result)) {\n return { __unsafe: true, value: result.value };\n }\n return result;\n }\n\n function createSSRHtml(context = {}) {\n\n setSSRContext(context);\n\n const asyncFragments = [];\n\n function processValue(val) {\n if (isSafeHtml(val)) {\n\n return { __unsafe: true, value: val.value };\n }\n if (val && typeof val === 'object' && val.__unsafe) {\n\n return val;\n }\n if (val && typeof val === 'object' && val.html !== undefined) {\n\n return { __unsafe: true, value: val.html };\n }\n if (Array.isArray(val)) {\n\n return val.map((item) => {\n if (isSafeHtml(item)) {\n return { __unsafe: true, value: item.value };\n }\n\n if (typeof item === 'string') {\n\n return { __unsafe: true, value: item };\n }\n return item;\n });\n }\n return val;\n }\n\n function Html(...args) {\n\n if (hasEachBlocks(args[0])) {\n const transformed = transformEachBlocks(\n args[0],\n args.slice(1),\n Html.wire\n );\n args = [transformed.strings, ...transformed.values];\n }\n\n const processedArgs = [args[0]];\n\n const placeholders = [];\n\n for (let i = 1; i < args.length; i++) {\n let val = args[i];\n\n if (\n val &&\n typeof val === 'object' &&\n !Array.isArray(val) &&\n !isSafeHtml(val) &&\n !val.__unsafe\n ) {\n const keys = Object.keys(val);\n if (keys.length === 1 && /^[A-Z]/.test(keys[0])) {\n const fragmentName = keys[0];\n const fragmentData = val[fragmentName];\n\n if (context.fragments && context.fragments[fragmentName]) {\n val = context.fragments[fragmentName](fragmentData);\n\n if (val && typeof val.then === 'function') {\n\n const placeholderId = `__SSR_FRAG_${asyncFragments.length}__`;\n asyncFragments.push({\n id: placeholderId,\n promise: val.then(processFragmentResult),\n });\n placeholders.push(placeholderId);\n\n val = placeholderId;\n } else {\n\n val = processFragmentResult(val);\n }\n }\n }\n }\n\n processedArgs.push(processValue(val));\n }\n\n const html = renderToString(\n processedArgs[0],\n processedArgs.slice(1),\n false\n );\n\n if (asyncFragments.length > 0) {\n return Promise.all(asyncFragments.map((f) => f.promise)).then(\n (results) => {\n let finalHtml = html;\n for (let i = 0; i < asyncFragments.length; i++) {\n const placeholder = asyncFragments[i].id;\n let replacement = results[i];\n\n if (\n replacement &&\n typeof replacement === 'object' &&\n replacement.__unsafe\n ) {\n replacement = replacement.value;\n }\n finalHtml = finalHtml.replace(placeholder, replacement || '');\n }\n\n asyncFragments.length = 0;\n return finalHtml;\n }\n );\n }\n\n return html;\n }\n\n Html._context = context;\n\n Html.wire = function wireTemplate(obj, id = '') {\n return ssrWire(obj, id);\n };\n\n Html.raw = function raw(htmlStr) {\n return safeHtml(htmlStr);\n };\n\n Html.lite = function lite(strings, ...values) {\n return renderToString(strings, values, false);\n };\n\n return Html;\n }\n\n // ssr/render-element.js\n function serializeAttributes(attrs) {\n if (!attrs || typeof attrs !== 'object') return '';\n return Object.entries(attrs)\n .filter(([, value]) => value != null && typeof value !== 'function')\n .map(([name, value]) => {\n if (typeof value === 'boolean') {\n return value ? ` ${name}` : '';\n }\n if (typeof value === 'object') {\n\n return '';\n }\n return ` ${name}=\"${escapeHtml(String(value))}\"`;\n })\n .join('');\n }\n\n async function renderElement(tagName, options = {}) {\n const {\n attrs = {},\n store,\n shadowDOM = false,\n fragments = {},\n render,\n styled,\n colors,\n } = options;\n\n if (typeof render !== 'function') {\n throw new Error('renderElement requires a render function');\n }\n\n const context = {\n attrs,\n store,\n fragments,\n\n styled,\n colors,\n\n tagName: tagName.toUpperCase(),\n localName: tagName.toLowerCase(),\n };\n\n const Html = createSSRHtml(context);\n\n let content = '';\n\n const capturingHtml = (...args) => {\n const result = Html(...args);\n content = result;\n return result;\n };\n\n capturingHtml.wire = Html.wire;\n capturingHtml.raw = Html.raw;\n capturingHtml.lite = Html.lite;\n capturingHtml._context = Html._context;\n\n const renderResult = render(capturingHtml, context);\n\n if (renderResult && typeof renderResult.then === 'function') {\n await renderResult;\n }\n\n if (content && typeof content.then === 'function') {\n content = await content;\n }\n\n const attrString = serializeAttributes(attrs);\n\n if (shadowDOM) {\n\n return `<${tagName}${attrString}><template shadowrootmode=\"open\">${content}</template></${tagName}>`;\n }\n\n return `<${tagName}${attrString}>${content}</${tagName}>`;\n }\n\n async function renderElements(elements) {\n return Promise.all(\n elements.map(({ tagName, options }) => renderElement(tagName, options))\n );\n }\n\n function createRenderer(tagName, render, baseOptions = {}) {\n return async (attrs = {}, store) => {\n return renderElement(tagName, {\n ...baseOptions,\n attrs: { ...baseOptions.attrs, ...attrs },\n store: store ?? baseOptions.store,\n render,\n });\n };\n }\n\n var isBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n if (isBrowserEnv) {\n console.info('hyper-element v2.0.0 by Brian Shannon (github.com/codemeasandwich)');\n var hyperElementProxy = new Proxy(hyperElement, {\n get: function(target, prop, receiver) {\n if (prop === 'prototype') return target.prototype;\n return Reflect.get(target, prop, receiver);\n },\n apply: function(target, thisArg, args) {\n if (args.length === 0) throw new Error('hyperElement requires a definition object or render function');\n return createFunctionalElement.apply(null, args);\n },\n construct: function(target, args, newTarget) {\n if (newTarget !== hyperElementProxy) return Reflect.construct(target, args, newTarget);\n throw new Error('hyperElement cannot be instantiated directly. Use class extension or functional API.');\n }\n });\n hyperElementProxy.configureSSR = configureSSR;\n return { default: hyperElementProxy, hyperElement: hyperElementProxy, configureSSR: configureSSR,\n signal: signal, computed: computed, effect: effect, batch: batch, untracked: untracked, withOptions: withOptions,\n html: html, dom: dom };\n } else {\n return { renderElement: renderElement, renderElements: renderElements, createRenderer: createRenderer,\n renderToString: renderToString, ssrHtml: ssrHtml, createSSRHtml: createSSRHtml,\n createSSRTemplate: createSSRTemplate, escapeHtml: escapeHtml, safeHtml: safeHtml,\n signal: signal, computed: computed, effect: effect, batch: batch, untracked: untracked };\n }\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["root", "factory", "isBrowser", "isNode", "exports", "isCustomTag", "manager", "sharedAttrs", "makeid", "text", "possible", "i", "escapeHtml", "str", "SAFE_HTML", "safeHtml", "html", "isSafeHtml", "val", "ARRAY", "ATTRIBUTE", "COMMENT", "DATA", "DIRECT", "EVENT", "KEY", "PROP", "TEXT", "TOGGLE", "UNSAFE", "ATTRIBUTE_TEMPLATE", "ELEMENT", "ATTRIBUTE_TYPE", "TEXT_TYPE", "COMMENT_TYPE", "FRAGMENT", "ATTRIBUTE_TEMPLATE_TYPE", "COMMENT_ARRAY", "EVENT_ARRAY", "TEXT_ELEMENTS", "VOID_ELEMENTS", "children", "props", "Node", "type", "Comment", "data", "Text", "Element", "name", "xml", "c", "length", "key", "value", "Fragment", "keyedHoles", "Keyed", "node", "hole", "NUL", "DOUBLE_QUOTED_NUL", "SINGLE_QUOTED_NUL", "NEXT", "ATTRS", "append", "child", "prop", "path", "insideout", "parent", "ignore", "createParser", "update", "template", "holes", "content", "values", "pos", "skip", "resolvedPath", "match", "chunk", "index", "comment", "j", "tag", "STYLED_SUFFIX", "isStyled", "dot", "attrName", "p", "actualAttrName", "parts", "holeCount", "h", "firstChar", "isSpecialPrefix", "isReserved", "closed", "endIndex", "currentEffect", "effectStack", "batchDepth", "batchedEffects", "signal", "initialValue", "subscribers", "newValue", "fn", "computed", "dirty", "recompute", "sub", "prevEffect", "effect", "cleanup", "run", "untracked", "batch", "effects", "parseAttribute", "lowerCaseValue", "formatValue", "processAdvancedTemplate", "result", "eachRegex", "arrayName", "arr", "item", "itemContent", "ifElseRegex", "condition", "ifContent", "elseContent", "ifRegex", "unlessRegex", "hasEachBlocks", "strings", "s", "resolvePropertyPath", "obj", "o", "parsePropertyReferences", "regex", "lastIndex", "findMatchingClose", "startIdx", "startPos", "openTag", "closeTag", "depth", "searchStart", "openPos", "closePos", "buildTemplateStrings", "primitiveWrappers", "getWireKey", "array", "cache", "resolveProp", "processInnerContent", "wireFunction", "nestedRegex", "hasNested", "nestedMatches", "processedContent", "fullMatch", "propPath", "innerContent", "nestedArray", "nestedResults", "nestedItem", "nestedIndex", "finalParts", "finalValues", "propIndex", "part", "placeholderMatch", "before", "after", "findFirstBlock", "blocks", "first", "block", "transformEachBlocks", "resultStrings", "resultValues", "firstBlock", "blockStartPos", "pattern", "blockValue", "nextStr", "afterClose", "endIdx", "endPos", "elsePos", "blockResult", "trimLeading", "idx", "afterBlock", "hyperElement", "createFunctionalElement", "configureSSR", "withOptions", "createFragment", "resolve", "diff", "diffFragment", "PersistentFragment", "nodes", "Hole", "render", "dom", "createHtml", "isKeyed", "bind", "wire", "setRenderingInstance", "getRenderingInstance", "registerStyled", "unregisterStyled", "getStyledEntry", "resolveStylesWithEntry", "resolveStyles", "applyStylesToNode", "resolveColors", "isNestedSyntax", "styledStyleHandler", "buildTemplate", "addDataset", "getDataset", "attachAttrs", "processFragmentResult", "pathResolver", "ssrBuffer", "showDevIndicator", "hideDevIndicator", "getNthOfTypeIndex", "calculatePath", "resolvePath", "addToBuffer", "getBufferedEvents", "clearBuffer", "isUnregisteredCustomElement", "findCustomElementAncestor", "extractEventDetail", "captureScrollState", "captureCheckedState", "handleCapturedEvent", "restoreElementState", "startCapture", "replayEvents", "initSSR", "ssrState", "markTagRegistered", "createSyntheticEvent", "onNext", "observer", "createdCallback", "_creatorTpl", "fragment", "a", "b", "get", "parentNode", "bLength", "aEnd", "bEnd", "aStart", "bStart", "map", "sequence", "checkType", "range", "drop", "firstChild", "lastChild", "r", "operation", "replaceWith", "valueOf", "ref", "k", "wasKeyed", "textCache", "getText", "directRefs", "directFor", "direct", "attribute", "toggle", "dataset", "templateState", "attributeTemplate", "holeIndex", "nodeState", "styleHandler", "event", "at", "prev", "toNodes", "commentArrayFactory", "nodeValue", "replaceComment", "current", "commentHoleFactory", "commentUnsafe", "hint", "n", "v", "holed", "changes", "l", "getKeyedHole", "getHole", "updates", "keys", "commit", "childNodes", "size", "entry", "change", "_parseTemplate", "rendered", "wireCache", "_htmlCache", "parsed", "element", "known", "d", "id", "registry", "renderingInstance", "instance", "styled", "ctx", "store", "colors", "styles", "resolved", "hex", "tagStyles", "tagName", "styleValue", "propFlags", "base", "logic", "hasStyles", "t", "flag", "logicResult", "inlineStyles", "kebabProp", "activeFlags", "f", "innerHTML", "re", "templateVals", "vals", "output", "dash_key", "camel_key", "g", "attributes", "accumulator", "shadow", "boundRender", "Html", "args", "transformed", "hasNonString", "hasCustomTag", "inCustomTag", "localName", "_items", "processedArgs", "fragmentName", "fragmentData", "htmlStr", "elementOrStrings", "sibling", "target", "indexStr", "targetIndex", "customElement", "bufferedEvent", "elementBuffer", "indicatorElement", "detail", "state", "el", "targetPath", "handler", "eventType", "EventConstructor", "initOptions", "scroll", "checked", "onBeforeHydrate", "onAfterHydrate", "events", "filtered", "syntheticEvent", "DEFAULT_EVENTS", "options", "that", "storeFn", "baseRender", "render2", "mutationObserver", "mutations", "attrMutations", "m", "dataSetName", "camelKey", "textContent", "templatestrings", "onResolve", "div", "templateResult", "fragmentCache", "hasAsync", "processed", "toString", "styledConfig", "oldVal", "newVal", "tagOrDef", "definition", "setupFn", "renderFn", "beforeHydrateFn", "afterHydrateFn", "methods", "FunctionalElement", "tagNameOrDefinition", "def", "ssrContext", "setSSRContext", "context", "getSSRContext", "styleObjectToString", "styleObj", "stringAttribute", "_name", "stringStyle", "stringStyledStyle", "stringToggle", "stringEvent", "stringDirect", "stringData", "stringComment", "stringCommentArray", "stringUnsafe", "stringText", "stringAttributeTemplate", "ssrUpdate", "ssrParser", "templateCache", "cloneNode", "clone", "clonedChild", "resolveNode", "applyUpdates", "tree", "dataAttrs", "attrs", "final", "nodeToString", "renderToString", "treeTemplate", "createSSRTemplate", "ssrHtml", "ssrWire", "_id", "createSSRHtml", "asyncFragments", "processValue", "placeholders", "placeholderId", "results", "finalHtml", "placeholder", "replacement", "serializeAttributes", "renderElement", "shadowDOM", "fragments", "capturingHtml", "renderResult", "attrString", "renderElements", "elements", "createRenderer", "baseOptions", "isBrowserEnv", "hyperElementProxy", "receiver", "thisArg", "newTarget"]
|
|
7
7
|
}
|