defuss-morph 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,6 +20,8 @@ Features:
20
20
  - ⚡ No compile/transpile step required (but optionally available)
21
21
  - ðŸŠķ Extremely lightweight — just ~6 KiB minified and gzipped
22
22
  - 💅 Includes support for beautiful transitions (fade, slide, shake, custom styles)
23
+ - ðŸ§Đ Supports partial updates (diff mode) for streaming/AI-driven UIs
24
+ - ✅ ~97%+ test coverage with unit tests and real browser E2E tests
23
25
  - ðŸŸĶ Written in TypeScript
24
26
 
25
27
  ## Quick, traditional CDN-based setup
@@ -356,7 +358,7 @@ The same rule applies to an `<input>`'s live `value`. See the runnable demos [`e
356
358
  | `index.mjs` | 40.2 kB | 9.5 kB | ESM/library build; used when installing via npm/bun |
357
359
  | `index.cjs` | 41.2 kB | 9.7 kB | CommonJS build |
358
360
  | `all.js` | 41.6 kB | 9.8 kB | UMD build; for CDN-based usage with debugging |
359
- | `all.min.js` | 18.9 kB | **6.8 kB** | Minified UMD build; for CDN-based usage without debugging (Pareto-optimal when no bundler is used) |
361
+ | `all.min.js` | 19.0 kB | **6.8 kB** | Minified UMD build; for CDN-based usage without debugging (Pareto-optimal when no bundler is used) |
360
362
  <!-- bundle-size:end -->
361
363
 
362
364
  `index.cjs` (CommonJS) is kept for `require()` compatibility on older tool
package/dist/all.js CHANGED
@@ -1263,7 +1263,8 @@ var morph2 = (el, newContent, options = {}) => {
1263
1263
  // src/global.ts
1264
1264
  if (typeof globalThis !== "undefined") {
1265
1265
  const g = globalThis;
1266
- if (typeof g.df$ !== "object" || g.df$ === null) {
1266
+ const current = g.df$;
1267
+ if (current === null || typeof current !== "object" && typeof current !== "function") {
1267
1268
  g.df$ = {};
1268
1269
  }
1269
1270
  Object.assign(g.df$, exports_src);
@@ -1308,5 +1309,5 @@ export {
1308
1309
  CAPTURE_ONLY_EVENTS
1309
1310
  };
1310
1311
 
1311
- //# debugId=6F130A0428D5249264756E2164756E21
1312
+ //# debugId=BA5C1E84E9A829C164756E2164756E21
1312
1313
  //# sourceMappingURL=all.js.map
package/dist/all.js.map CHANGED
@@ -9,9 +9,9 @@
9
9
  "import type {\n Globals,\n RenderInput,\n VNode,\n VNodeAttributes,\n VNodeChild,\n} from \"./types.js\";\nimport {\n getRenderer,\n handleLifecycleEventsForOnMount,\n} from \"./renderer.js\";\nimport {\n clearDelegatedEventsDeep,\n getRegisteredEventKeys,\n parseEventPropName,\n removeDelegatedEventByKey,\n} from \"./delegated-events.js\";\nimport { FROM_DOM_MARKER } from \"./html.js\";\n\n/**\n * Compares two DOM nodes for equality with performance optimizations.\n * 1. Checks for reference equality.\n * 2. Compares node types.\n * 3. For Element nodes, compares tag names and attributes.\n * 4. For Text nodes, compares text content.\n */\nexport const areDomNodesEqual = (oldNode: Node, newNode: Node): boolean => {\n // return true if both references are identical\n if (oldNode === newNode) return true;\n\n // compare node types\n if (oldNode.nodeType !== newNode.nodeType) return false;\n\n // handle Element nodes\n if (oldNode.nodeType === 1 /* Node.ELEMENT_NODE */) {\n const oldElement = oldNode as Element;\n const newElement = newNode as Element;\n\n // compare tag names\n if (oldElement.tagName !== newElement.tagName) return false;\n\n const oldAttrs = oldElement.attributes;\n const newAttrs = newElement.attributes;\n\n // compare number of attributes\n if (oldAttrs.length !== newAttrs.length) return false;\n\n // iterate and compare each attribute's name and value\n for (let i = 0; i < oldAttrs.length; i++) {\n const oldAttr = oldAttrs[i];\n const newAttrValue = newElement.getAttribute(oldAttr.name);\n if (oldAttr.value !== newAttrValue) return false;\n }\n }\n\n // handle Text nodes\n if (oldNode.nodeType === 3 /* Node.TEXT_NODE */) {\n if (oldNode.textContent !== newNode.textContent) return false;\n }\n return true;\n};\n\n/********************************************************\n * 1) Define a \"valid\" child type & utilities\n ********************************************************/\nexport type ValidChild =\n | string\n | number\n | boolean\n | null\n | undefined\n | VNode<VNodeAttributes>;\n\n/**\n * How top-level children are reconciled:\n * - `\"replace\"` (default): full reconciliation — unmentioned nodes are removed.\n * - `\"diff\"`: partial updates — only patch items addressed by `key`/`id` are\n * applied (attributes merge, new items append, unmentioned nodes untouched).\n */\nexport type MorphMode = \"replace\" | \"diff\";\n\nfunction isTextLike(value: unknown): value is string | number | boolean {\n return (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n}\n\nfunction isVNode(value: unknown): value is VNode<VNodeAttributes> {\n return Boolean(\n value &&\n typeof value === \"object\" &&\n \"type\" in (value as Record<string, unknown>),\n );\n}\n\nfunction toValidChild(\n child: VNodeChild,\n // diff mode: a partial patch item may omit `type` (borrowed from the node\n // it addresses) — `{ attributes: ... }` alone is a valid patch object there\n lenient = false,\n): ValidChild | undefined {\n if (child == null) return child; // null or undefined\n if (isTextLike(child)) return child;\n\n if (isVNode(child)) return child;\n\n if (\n lenient &&\n child &&\n typeof child === \"object\" &&\n \"attributes\" in (child as Record<string, unknown>)\n )\n return child as unknown as ValidChild;\n\n // e.g. function or {} -> filter out\n return undefined;\n}\n\n/** fuse consecutive text-like nodes to preserve DOM stability (matches hydrate's behavior) */\nfunction normalizeChildren(\n input: RenderInput,\n lenient = false,\n): Array<ValidChild> {\n const raw: Array<ValidChild> = [];\n\n const pushChild = (child: unknown) => {\n if (Array.isArray(child)) {\n child.forEach(pushChild);\n return;\n }\n\n const valid = toValidChild(child as VNodeChild, lenient);\n if (typeof valid === \"undefined\") return;\n\n // unwrap Fragment-ish nodes (defuss sometimes uses \"fragment\", some code uses \"Fragment\")\n if (\n isVNode(valid) &&\n (valid.type === \"fragment\" || valid.type === \"Fragment\")\n ) {\n const nested = Array.isArray(valid.children) ? valid.children : [];\n nested.forEach(pushChild);\n return;\n }\n\n // ignore booleans/null/undefined as render-nothing\n if (\n valid === null ||\n typeof valid === \"undefined\" ||\n typeof valid === \"boolean\"\n )\n return;\n\n raw.push(valid);\n };\n\n pushChild(input);\n\n // fuse consecutive text nodes into a single string\n const fused: Array<ValidChild> = [];\n let buffer: string | null = null;\n\n const flush = () => {\n if (buffer !== null && buffer.length > 0) fused.push(buffer);\n buffer = null;\n };\n\n for (const child of raw) {\n if (\n typeof child === \"string\" ||\n typeof child === \"number\" ||\n typeof child === \"boolean\"\n ) {\n buffer = (buffer ?? \"\") + String(child);\n continue;\n }\n\n flush();\n fused.push(child);\n }\n\n flush();\n return fused;\n}\n\nfunction getVNodeMatchKey(child: ValidChild): string | null {\n if (!child || typeof child !== \"object\") return null;\n\n const key = child.attributes?.key;\n if (typeof key === \"string\" || typeof key === \"number\")\n return `k:${String(key)}`;\n\n const id = child.attributes?.id;\n if (typeof id === \"string\" && id.length > 0) return `id:${id}`;\n\n return null;\n}\n\n/** human-readable item description for diff-mode error messages */\nfunction describePatchItem(child: ValidChild): string {\n if (child && typeof child === \"object\") {\n return `<${typeof child.type === \"string\" ? child.type : \"component\"}>`;\n }\n return \"plain text\";\n}\n\nfunction getDomMatchKeys(node: Node): Array<string> {\n if (node.nodeType !== 1 /* Node.ELEMENT_NODE */) return [];\n\n const el = node as HTMLElement;\n const keys: Array<string> = [];\n\n // prefer internal key storage, but also accept legacy `key` attribute if present\n const internalKey = (el as HTMLElement & { _defussKey?: string })._defussKey;\n if (internalKey) keys.push(`k:${internalKey}`);\n\n const attrKey = el.getAttribute(\"key\");\n if (attrKey) keys.push(`k:${attrKey}`);\n\n const id = el.id;\n if (id) keys.push(`id:${id}`);\n\n return keys;\n}\n\n/********************************************************\n * 2) Check if a DOM node and a ValidChild match by type\n ********************************************************/\nfunction areNodeAndChildMatching(domNode: Node, child: ValidChild): boolean {\n if (\n typeof child === \"string\" ||\n typeof child === \"number\" ||\n typeof child === \"boolean\"\n ) {\n return domNode.nodeType === 3 /* Node.TEXT_NODE */;\n }\n\n if (child && typeof child === \"object\") {\n if (domNode.nodeType !== 1 /* Node.ELEMENT_NODE */) return false;\n\n const el = domNode as HTMLElement;\n const oldTag = el.tagName.toLowerCase();\n const newTag =\n typeof child.type === \"string\" ? child.type.toLowerCase() : \"\";\n if (!newTag || oldTag !== newTag) return false;\n\n // Match only by tag name - class changes should be handled by patchElementInPlace\n // This prevents node churn when classes are toggled (e.g., \"danger\" on selection)\n return true;\n }\n\n return false;\n}\n\n/********************************************************\n * 3) Create brand new DOM node(s) from a ValidChild\n ********************************************************/\nfunction createDomFromChild(\n child: ValidChild,\n globals: Globals,\n): Array<Node> | undefined {\n const renderer = getRenderer(globals.window.document);\n\n if (child == null) return undefined;\n\n if (\n typeof child === \"string\" ||\n typeof child === \"number\" ||\n typeof child === \"boolean\"\n ) {\n return [globals.window.document.createTextNode(String(child))];\n }\n\n // create without parent (we'll insert manually and run lifecycle hooks afterwards)\n const created = renderer.createElementOrElements(child) as\n | Node\n | Array<Node>\n | undefined;\n\n if (!created) return undefined;\n const nodes = Array.isArray(created) ? created : [created];\n return nodes.filter(Boolean) as Array<Node>;\n}\n\n/********************************************************\n * 4) Patch an element node in place (attributes + children)\n ********************************************************/\nfunction shouldPreserveFormStateAttribute(\n el: Element,\n attrName: string,\n vnode: VNode<VNodeAttributes>,\n): boolean {\n const tag = el.tagName.toLowerCase();\n const hasExplicit = Object.hasOwn(vnode.attributes ?? {}, attrName);\n\n if (hasExplicit) return false;\n\n // preserve uncontrolled input/textarea/select state unless explicitly controlled by VDOM\n if (tag === \"input\") return attrName === \"value\" || attrName === \"checked\";\n if (tag === \"textarea\") return attrName === \"value\";\n if (tag === \"select\") return attrName === \"value\";\n return false;\n}\n\nfunction patchElementInPlace(\n el: Element,\n vnode: VNode<VNodeAttributes>,\n globals: Globals,\n // diff mode: the vnode is a partial patch — undeclared attributes and\n // delegated handlers are \"not mentioned\", never \"unset\", so removal is skipped\n mergeAttributes = false,\n): void {\n const renderer = getRenderer(globals.window.document);\n\n // remove old attributes not present (but preserve uncontrolled form state)\n const existingAttrs = mergeAttributes ? [] : Array.from(el.attributes);\n const nextAttrs = vnode.attributes ?? {};\n\n for (const attr of existingAttrs) {\n const { name } = attr;\n\n // do not remove internal key if it ever existed as attribute\n if (name === \"key\") continue;\n\n // do not remove event-ish attributes; handlers are delegated elsewhere\n if (name.startsWith(\"on\")) continue;\n\n // treat class/className as equivalent\n if (\n name === \"class\" &&\n (Object.hasOwn(nextAttrs, \"class\") ||\n Object.hasOwn(nextAttrs, \"className\"))\n ) {\n continue;\n }\n\n if (!Object.hasOwn(nextAttrs, name)) {\n if (shouldPreserveFormStateAttribute(el, name, vnode)) continue;\n el.removeAttribute(name);\n }\n }\n\n // Remove stale event handlers: compute registered phase keys - next vnode phase keys\n // This is phase-aware: onClick + onClickCapture → onClickCapture only will correctly\n // remove the bubble handler while keeping the capture handler.\n // Skipped for DOM-derived vnodes (HTML strings / DOM nodes): those cannot declare\n // handlers, so existing delegated handlers are preserved like uncontrolled form state.\n const preserveDelegatedHandlers =\n mergeAttributes ||\n Boolean((nextAttrs as Record<PropertyKey, unknown>)[FROM_DOM_MARKER]);\n\n if (!preserveDelegatedHandlers) {\n const registeredKeys = getRegisteredEventKeys(el as HTMLElement);\n const nextEventKeys = new Set<string>();\n for (const propName of Object.keys(nextAttrs)) {\n const parsed = parseEventPropName(propName);\n if (parsed) {\n const phase = parsed.capture ? \"capture\" : \"bubble\";\n nextEventKeys.add(`${parsed.eventType}:${phase}`);\n }\n }\n for (const key of registeredKeys) {\n if (!nextEventKeys.has(key)) {\n const [eventType, phase] = key.split(\":\");\n removeDelegatedEventByKey(\n el as HTMLElement,\n eventType,\n phase as \"bubble\" | \"capture\",\n );\n }\n }\n }\n\n // set new attributes (includes ref + delegated events via renderer.setAttribute)\n renderer.setAttributes(vnode, el);\n\n // Trigger onMount lifecycle for morphed elements that have a new onMount callback\n // This ensures onMount fires on route changes even when elements are morphed in place\n handleLifecycleEventsForOnMount(el as HTMLElement);\n\n // dangerouslySetInnerHTML => skip child reconciliation\n const d = vnode.attributes?.dangerouslySetInnerHTML;\n if (d && typeof d === \"object\" && typeof d.__html === \"string\") {\n el.innerHTML = d.__html;\n return;\n }\n\n const tag = el.tagName.toLowerCase();\n\n // preserve textarea live value unless explicitly controlled\n if (tag === \"textarea\") {\n const isControlled = Object.hasOwn(nextAttrs, \"value\");\n const isActive = el.ownerDocument?.activeElement === el;\n if (isActive && !isControlled) return;\n }\n\n // diff mode: children are \"not mentioned\" unless explicitly declared, so an\n // attributes-only patch item must not clear the node's existing children.\n // HTML-derived vnodes always carry a (possibly empty) children array —\n // empty means \"undeclared\" there, exactly like absent form attributes.\n // VNode/JSX input keeps the distinction: children: [] clears explicitly.\n if (\n mergeAttributes &&\n (vnode.children === undefined ||\n (vnode.children.length === 0 &&\n (nextAttrs as Record<PropertyKey, unknown>)[FROM_DOM_MARKER]))\n )\n return;\n\n // reconcile children (direct call - bypasses morph guard for internal recursion)\n morphDomDirect(el, (vnode.children ?? []) as RenderInput, globals);\n}\n\n/********************************************************\n * 5) Morph a single DOM node to match a ValidChild\n ********************************************************/\nfunction morphNode(\n domNode: Node,\n child: ValidChild,\n globals: Globals,\n mergeAttributes = false,\n): Node | null {\n // text-like\n if (\n typeof child === \"string\" ||\n typeof child === \"number\" ||\n typeof child === \"boolean\"\n ) {\n const text = String(child);\n\n if (domNode.nodeType === 3 /* Node.TEXT_NODE */) {\n if (domNode.nodeValue !== text) domNode.nodeValue = text;\n return domNode;\n }\n\n const next = globals.window.document.createTextNode(text);\n domNode.parentNode?.replaceChild(next, domNode);\n return next;\n }\n\n // element-like (VNode)\n if (child && typeof child === \"object\") {\n const newType = typeof child.type === \"string\" ? child.type : null;\n if (!newType) return domNode;\n\n if (domNode.nodeType !== 1 /* Node.ELEMENT_NODE */) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first) return null;\n\n domNode.parentNode?.replaceChild(first, domNode);\n handleLifecycleEventsForOnMount(first as HTMLElement);\n return first;\n }\n\n const el = domNode as Element;\n const oldTag = el.tagName.toLowerCase();\n const newTag = newType.toLowerCase();\n\n if (oldTag !== newTag) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first) return null;\n\n el.parentNode?.replaceChild(first, el);\n handleLifecycleEventsForOnMount(first as HTMLElement);\n return first;\n }\n\n patchElementInPlace(el, child as VNode<VNodeAttributes>, globals, mergeAttributes);\n return el;\n }\n\n // null/undefined => remove\n domNode.parentNode?.removeChild(domNode);\n return null;\n}\n\n/********************************************************\n * 6) Morph guard - tags DOM subtrees as \"rendering\" to prevent\n * re-entrant / conflicting morphs on the same or ancestor nodes.\n * Unrelated subtrees morph in parallel without blocking.\n ********************************************************/\nconst renderingNodes = new WeakSet<Element>();\nconst pendingMorphs = new Map<\n Element,\n { vdom: RenderInput; globals: Globals; mode: MorphMode }\n>();\n\n/**\n * Resolve the render globals from an element's own document when not given\n * explicitly (isomorphic: browser window, happy-dom window, multi-document).\n */\nexport const resolveGlobals = (el?: Element, globals?: Globals): Globals => {\n if (globals) return globals;\n const win = (el?.ownerDocument?.defaultView ??\n globalThis) as unknown as Globals;\n return { window: win } as unknown as Globals;\n};\n\nfunction isAncestorRendering(el: Element): boolean {\n let current = el.parentElement;\n while (current) {\n if (renderingNodes.has(current)) return true;\n current = current.parentElement;\n }\n return false;\n}\n\nfunction flushPendingMorphs(): void {\n if (pendingMorphs.size === 0) return;\n\n // Snapshot and clear to avoid infinite loops if flush triggers more morphs\n const snapshot = [...pendingMorphs.entries()];\n pendingMorphs.clear();\n\n for (const [el, { vdom, globals, mode }] of snapshot) {\n // Skip if element was detached during parent morph\n if (!el.isConnected) continue;\n // Re-enter through guarded path (handles nested conflicts)\n updateDomWithVdom(el, vdom, globals, mode);\n }\n}\n\n/**\n * Guarded entry point for DOM morphing.\n *\n * If the target element (or an ancestor) is already being morphed,\n * the render is queued (latest-wins) and replayed after the active\n * morph finishes. Morphs on unrelated subtrees proceed immediately\n * without blocking - conflict-free parallel rendering.\n *\n * `globals` is optional: it is derived from `parentElement.ownerDocument`\n * when omitted.\n *\n * `mode` defaults to `\"replace\"` (full reconciliation). Pass `\"diff\"` for\n * partial updates: only `key`/`id`-addressed patch items are applied\n * (attributes merged, new keyed items appended, unmentioned nodes untouched).\n */\nexport function updateDomWithVdom(\n parentElement: Element,\n newVDOM: RenderInput,\n globals?: Globals,\n mode: MorphMode = \"replace\",\n): void {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n\n // Re-entrant or ancestor conflict → queue latest, return\n if (renderingNodes.has(parentElement) || isAncestorRendering(parentElement)) {\n pendingMorphs.set(parentElement, {\n vdom: newVDOM,\n globals: resolvedGlobals,\n mode,\n });\n return;\n }\n\n renderingNodes.add(parentElement);\n try {\n morphDomDirect(parentElement, newVDOM, resolvedGlobals, mode);\n } finally {\n renderingNodes.delete(parentElement);\n }\n\n // Flush any morphs that were queued during this render\n flushPendingMorphs();\n}\n\n/********************************************************\n * 6b) Diff mode — partial change-sets (patch + append only)\n ********************************************************/\n/**\n * Apply a partial change-set to `targetRoot`: every top-level item must be an\n * element addressed by `key` (preferred) or `id`. Matched nodes are patched in\n * place with attributes *merged* (undeclared attributes, delegated handlers\n * and children stay untouched); unmatched items are appended as new nodes.\n * Nothing else changes: unmentioned siblings keep identity, order and state —\n * diff mode never removes and never moves, so addressing is unambiguous.\n *\n * Why: stream/AI-driven partial updates without resending the whole subtree.\n * Tag changes on an addressed node are applied as an honest in-place\n * replacement (the item fully declares that node).\n */\nfunction morphDiff(\n targetRoot: ParentNode & Node,\n patchItems: Array<ValidChild>,\n globals: Globals,\n): void {\n // first-wins keyed pool of the current children — diff never removes, so\n // duplicate keys can simply share the first node as the address owner\n const keyedPool = new Map<string, Node>();\n for (const node of Array.from(targetRoot.childNodes)) {\n for (const k of getDomMatchKeys(node)) {\n if (!keyedPool.has(k)) keyedPool.set(k, node);\n }\n }\n\n for (const item of patchItems) {\n // formatting whitespace between change-set items (e.g. newlines + indent\n // in a template literal) parses to text nodes but carries no meaning —\n // skip it; only *meaningful* plain text is unaddressable and throws\n if (typeof item === \"string\" && item.trim() === \"\") continue;\n\n // booleans/null are already filtered by normalizeChildren; anything\n // without a key/id (incl. plain text) cannot be addressed unambiguously\n const key = getVNodeMatchKey(item);\n\n if (!key) {\n throw new Error(\n `morph diff: patch items must be elements with a key or id attribute (got ${describePatchItem(item)})`,\n );\n }\n\n const match = keyedPool.get(key);\n\n if (match) {\n // Tag-less patch items are pure patches: borrow the addressed node's\n // tag (only *new* items need one — to create it). An explicitly\n // different tag still replaces the node.\n const patchItem =\n item && typeof item === \"object\" && !(item as VNode).type\n ? { ...item, type: (match as Element).tagName.toLowerCase() }\n : item;\n\n // same tag -> attribute merge (+ declared children); tag change ->\n // in-place replacement by morphNode; mergeAttributes keeps the diff\n // contract (no attribute/handler removal) either way\n morphNode(match, patchItem, globals, true);\n continue;\n }\n\n if (!(item as VNode)?.type) {\n throw new Error(\n `morph diff: new (unmatched) patch items must declare a tag (type), got key/id \"${key}\"`,\n );\n }\n\n // new keyed item -> append (never inserted \"in order\" implicitly: moving\n // or positioning unmentioned siblings would be a guess)\n const created = createDomFromChild(item, globals) ?? [];\n for (const node of created) {\n targetRoot.appendChild(node);\n handleLifecycleEventsForOnMount(node as HTMLElement);\n }\n }\n}\n\n/********************************************************\n * 7) Raw morph implementation (key/id aware, move-not-replace)\n * Called directly by the guard and by internal recursive\n * child reconciliation (patchElementInPlace).\n ********************************************************/\nfunction morphDomDirect(\n parentElement: Element,\n newVDOM: RenderInput,\n globals: Globals,\n mode: MorphMode = \"replace\",\n): void {\n // Custom elements (hyphenated tags) use light DOM for slotted content.\n // Other elements with shadowRoot should target the shadow root.\n const el = parentElement as HTMLElement;\n const isCustomElement = el.tagName.includes(\"-\");\n const targetRoot: ParentNode & Node =\n el.shadowRoot && !isCustomElement ? el.shadowRoot : parentElement;\n\n const nextChildren = normalizeChildren(newVDOM, mode === \"diff\");\n\n if (mode === \"diff\") {\n morphDiff(targetRoot, nextChildren, globals);\n return;\n }\n\n // snapshot existing children once for matching pools\n const existing = Array.from(targetRoot.childNodes);\n\n const keyedPool = new Map<string, Node>();\n const nodeKeys = new WeakMap<Node, Array<string>>();\n const unkeyedPool: Array<Node> = [];\n\n for (const node of existing) {\n const keys = getDomMatchKeys(node);\n if (keys.length > 0) {\n nodeKeys.set(node, keys);\n let addedToKeyedPool = false;\n for (const k of keys) {\n if (!keyedPool.has(k)) {\n keyedPool.set(k, node);\n addedToKeyedPool = true;\n }\n }\n // all keys duplicates of already-pooled nodes: fall back to the\n // unkeyed pool so the node can still be matched — and, crucially,\n // is removed when left over (duplicate keys must not leak nodes)\n if (!addedToKeyedPool) {\n unkeyedPool.push(node);\n }\n } else {\n unkeyedPool.push(node);\n }\n }\n\n const consumeKeyedNode = (node: Node) => {\n const keys = nodeKeys.get(node) ?? [];\n for (const k of keys) keyedPool.delete(k);\n };\n\n const takeUnkeyedMatch = (child: ValidChild): Node | undefined => {\n // try to find a compatible node (preserves focus/state by moving instead of replacing)\n for (let i = 0; i < unkeyedPool.length; i++) {\n const candidate = unkeyedPool[i];\n if (areNodeAndChildMatching(candidate, child)) {\n unkeyedPool.splice(i, 1);\n return candidate;\n }\n }\n\n // SAFE: no match => don't reuse something random, create new node instead\n return undefined;\n };\n\n let domIndex = 0;\n\n for (const child of nextChildren) {\n const key = getVNodeMatchKey(child);\n\n let match: Node | undefined;\n\n if (key) {\n match = keyedPool.get(key);\n if (match) consumeKeyedNode(match);\n } else {\n match = takeUnkeyedMatch(child);\n }\n\n const anchor = targetRoot.childNodes[domIndex] ?? null;\n\n if (match) {\n // move node into place (preserves identity/state)\n if (match !== anchor) {\n targetRoot.insertBefore(match, anchor);\n }\n\n const morphed = morphNode(match, child, globals);\n\n // if morphNode replaced it, ensure we still have the correct node at domIndex\n if (morphed && morphed !== match) {\n // replacement already occurred in-place, nothing else to do\n }\n\n domIndex++;\n continue;\n }\n\n // no match => create and insert\n const created = createDomFromChild(child, globals);\n if (!created || (Array.isArray(created) && created.length === 0)) continue;\n\n const nodes = Array.isArray(created) ? created : [created];\n for (const node of nodes) {\n targetRoot.insertBefore(node, anchor);\n handleLifecycleEventsForOnMount(node as HTMLElement);\n domIndex++;\n }\n }\n\n // remove remaining unmatched nodes (both keyed leftovers and unkeyed leftovers)\n const remaining = new Set<Node>();\n\n for (const node of unkeyedPool) remaining.add(node);\n for (const node of keyedPool.values()) remaining.add(node);\n\n for (const node of remaining) {\n if (node.parentNode === targetRoot) {\n // Clear delegated events before removal to prevent handler leaks\n // (realm-safe element check: works across windows / SSR DOM implementations)\n if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n clearDelegatedEventsDeep(node as HTMLElement);\n }\n targetRoot.removeChild(node);\n }\n }\n}\n\n/**\n * Directly blow away all children in `parentElement` and create new DOM\n * from `newVDOM`. This never skips or leaves behind stale nodes,\n * at the cost of losing partial update performance.\n *\n * `globals` is optional: it is derived from `parentElement.ownerDocument`\n * when omitted.\n */\nexport function replaceDomWithVdom(\n parentElement: Element,\n newVDOM: RenderInput,\n globals?: Globals,\n) {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n\n // 1) Clear all existing DOM children\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n\n // 2) Re-render from scratch\n const renderer = getRenderer(resolvedGlobals.window.document);\n\n const newDom = renderer.createElementOrElements(\n newVDOM as VNode | undefined | Array<VNode | undefined | string>,\n );\n\n // 3) Append the newly created node(s)\n if (Array.isArray(newDom)) {\n for (const node of newDom) {\n if (node) {\n parentElement.appendChild(node);\n handleLifecycleEventsForOnMount(node as HTMLElement);\n }\n }\n } else if (newDom) {\n parentElement.appendChild(newDom);\n handleLifecycleEventsForOnMount(newDom as HTMLElement);\n }\n}\n",
10
10
  "export type TransitionType =\n | \"fade\"\n | \"slide-left\"\n | \"slide-right\"\n | \"shake\"\n | \"none\";\n\nexport interface TransitionStyles {\n enter: Record<string, string>;\n enterActive: Record<string, string>;\n exit: Record<string, string>;\n exitActive: Record<string, string>;\n}\n\nexport type TransitionsEasing =\n | \"linear\"\n | \"ease\"\n | \"ease-in\"\n | \"ease-out\"\n | \"ease-in-out\"\n | \"step-start\"\n | \"step-end\";\n\nexport interface TransitionConfig {\n type?: TransitionType;\n styles?: TransitionStyles;\n duration?: number;\n easing?: TransitionsEasing | string;\n delay?: number;\n target?: \"parent\" | \"self\";\n}\n\nconst injectShakeKeyframes = (doc: Document | undefined) => {\n if (!doc) return;\n if (!doc.getElementById(\"defuss-shake\")) {\n const style = doc.createElement(\"style\");\n style.id = \"defuss-shake\";\n style.textContent =\n \"@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}\";\n doc.head.appendChild(style);\n }\n};\n\nexport const getTransitionStyles = (\n type: TransitionType,\n duration: number,\n easing = \"ease-in-out\",\n): TransitionStyles => {\n const t = `transform ${duration}ms ${easing}, opacity ${duration}ms ${easing}`;\n const styles: Record<string, TransitionStyles> = {\n fade: {\n enter: { opacity: \"0\", transition: t, transform: \"translate3d(0,0,0)\" },\n enterActive: { opacity: \"1\" },\n exit: { opacity: \"1\", transition: t, transform: \"translate3d(0,0,0)\" },\n exitActive: { opacity: \"0\" },\n },\n \"slide-left\": {\n enter: {\n transform: \"translate3d(100%,0,0)\",\n opacity: \"0.5\",\n transition: t,\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(-100%,0,0)\", opacity: \"0.5\" },\n },\n \"slide-right\": {\n enter: {\n transform: \"translate3d(-100%,0,0)\",\n opacity: \"0.5\",\n transition: t,\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(100%,0,0)\", opacity: \"0.5\" },\n },\n shake: (() => {\n injectShakeKeyframes(\n typeof document !== \"undefined\" ? document : undefined,\n );\n return {\n enter: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\",\n },\n enterActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`,\n },\n exit: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\",\n },\n exitActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`,\n },\n };\n })(),\n };\n return (\n styles[type] || { enter: {}, enterActive: {}, exit: {}, exitActive: {} }\n );\n};\n\nexport const applyStyles = (\n el: HTMLElement,\n styles: Record<string, string | number>,\n) =>\n Object.entries(styles).forEach(([k, v]) =>\n el.style.setProperty(k, String(v)),\n );\n\nexport const DEFAULT_TRANSITION_CONFIG: TransitionConfig = {\n type: \"fade\",\n duration: 300,\n easing: \"ease-in-out\",\n delay: 0,\n target: \"parent\",\n};\n\nconst wait = (ms: number) => new Promise((r) => setTimeout(r, ms));\n\nconst performCrossfade = async (\n element: HTMLElement,\n updateCallback: () => Promise<void>,\n duration: number,\n easing: string,\n): Promise<void> => {\n const originalStyle = element.style.cssText;\n const snapshot = element.cloneNode(true) as HTMLElement;\n // realm-safe: use the element's own document (works across windows / SSR DOMs)\n const doc = element.ownerDocument;\n\n try {\n const rect = element.getBoundingClientRect();\n\n // Position snapshot absolutely over original\n snapshot.style.cssText = `position:absolute;top:${rect.top}px;left:${rect.left}px;width:${rect.width}px;height:${rect.height}px;opacity:1;transition:opacity ${duration}ms ${easing};z-index:1000;`;\n\n // Prepare new content (initially hidden)\n element.style.opacity = \"0\";\n element.style.transition = `opacity ${duration}ms ${easing}`;\n\n // Insert snapshot and update content\n doc.body.appendChild(snapshot);\n await updateCallback();\n\n // Trigger simultaneous crossfade\n void element.offsetHeight;\n snapshot.style.opacity = \"0\";\n element.style.opacity = \"1\";\n\n await wait(duration);\n doc.body.removeChild(snapshot);\n } catch (error) {\n if (snapshot.parentElement) doc.body.removeChild(snapshot);\n throw error;\n } finally {\n element.style.cssText = originalStyle;\n }\n};\n\nexport const performTransition = async (\n element: HTMLElement,\n updateCallback: () => Promise<void>,\n config: TransitionConfig = {},\n): Promise<void> => {\n const {\n type = \"fade\",\n duration = 300,\n easing = \"ease-in-out\",\n delay = 0,\n } = { ...DEFAULT_TRANSITION_CONFIG, ...config };\n\n if (type === \"none\") {\n await updateCallback();\n return;\n }\n\n if (delay > 0) await wait(delay);\n\n // Use crossfade for fade transitions\n if (type === \"fade\") {\n await performCrossfade(element, updateCallback, duration, easing);\n return;\n }\n\n const styles = config.styles || getTransitionStyles(type, duration, easing);\n const originalTransition = element.style.transition;\n const originalAnimation = element.style.animation;\n\n try {\n // Clear any existing animation for shake restart\n if (type === \"shake\") {\n element.style.animation = \"none\";\n void element.offsetHeight;\n }\n\n // Apply exit transition\n applyStyles(element, styles.exit);\n void element.offsetHeight;\n applyStyles(element, styles.exitActive);\n\n await wait(duration);\n\n // Update content\n await updateCallback();\n\n // Apply enter transition\n applyStyles(element, styles.enter);\n void element.offsetHeight;\n applyStyles(element, styles.enterActive);\n\n await wait(duration);\n\n // Restore original styles\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n } catch (error) {\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n throw error;\n }\n};\n",
11
11
  "import { type MorphMode, resolveGlobals, updateDomWithVdom } from \"./morph.js\";\nimport { htmlStringToVNodes } from \"./html.js\";\nimport type { RenderInput } from \"./types.js\";\nimport {\n DEFAULT_TRANSITION_CONFIG,\n performTransition,\n type TransitionConfig,\n} from \"./transitions.js\";\n\nexport * from \"./types.js\";\nexport * from \"./queue.js\";\nexport * from \"./delegated-events.js\";\nexport * from \"./renderer.js\";\nexport * from \"./morph.js\";\nexport * from \"./html.js\";\nexport * from \"./transitions.js\";\n\nexport interface MorphOptions {\n /**\n * Optional transition to apply around the morph.\n * When set (and `type !== \"none\"`), `morph()` returns a `Promise`\n * that resolves once the transition completed.\n */\n transition?: TransitionConfig;\n /**\n * Partial updates: apply only the given change-set instead of reconciling\n * the full child list. Every top-level item must be an element with a\n * `key` (preferred) or `id` — matched nodes are patched with attributes\n * *merged* (undeclared attributes and children stay untouched), unmatched\n * items are appended. Unmentioned siblings keep identity, order and state;\n * diff mode never removes and never moves, so addressing is unambiguous.\n *\n * Plain-text input and key-less items throw (they cannot be addressed).\n *\n * @example\n * ```ts\n * // update one row, append another — everything else is not re-sent:\n * morph(list, `\n * <li key=\"b\">B (updated)</li>\n * <li key=\"c\">C (new)</li>\n * `, { diff: true });\n * ```\n */\n diff?: boolean;\n}\n\n/**\n * Morphs the children of `el` to match the given HTML string or JSX/VNode input.\n *\n * A string is parsed into a DOM tree via the native `DOMParser`\n * of the element's own document (isomorphic: browser, happy-dom, ...);\n * any other `RenderInput` (JSX, VNodes, arrays, text) is used directly.\n * Both paths then morph into the existing DOM using the defuss morph algorithm:\n *\n * - key/id-aware node matching (`key` and `id` attributes)\n * - move-not-replace semantics (preserves node identity, focus, selection\n * and event listeners)\n * - in-place attribute patching for same-tag elements\n * - uncontrolled form-state preservation (live input values survive\n * unless the new HTML explicitly controls them)\n * - shadow DOM / custom element (light DOM) aware\n * - re-entrant morphs on the same or an ancestor element are queued\n * latest-wins and replayed after the active morph finishes\n * - overlapping transitions are latest-wins too: a morph issued while a\n * transition is in flight replaces the content that transition will apply\n *\n * Plain text input morphs as a text node.\n *\n * Unlike an HTML string, a VNode/JSX input can express explicit state\n * (`checked: false`, `value: \"\"`) and carry event handlers.\n *\n * @example\n * ```ts\n * import { morph } from \"defuss-morph\";\n *\n * morph(document.getElementById(\"app\")!, \"<ul><li key='a'>Hello</li></ul>\");\n *\n * // JSX / VNodes work too (same API, same algorithm):\n * morph(document.getElementById(\"app\")!, <p>Hi</p>);\n *\n * // with a transition (async):\n * await morph(document.getElementById(\"app\")!, \"<p>Hi</p>\", {\n * transition: { type: \"fade\", duration: 200 },\n * });\n * ```\n */\n\n/**\n * In-flight transition content slots. Non-fade transitions apply their morph\n * only after the exit phase (`await wait(duration)` inside performTransition),\n * so a morph issued during that window would be overwritten by stale content.\n * The slot makes such overlaps latest-wins: the deferred update applies\n * whatever content was requested last for the element.\n */\nconst inflightTransitions = new WeakMap<Element, { content: RenderInput }>();\n\nexport const morph = (\n el: Element,\n newContent: RenderInput,\n options: MorphOptions = {},\n): void | Promise<void> => {\n const globals = resolveGlobals(el);\n const win = globals.window;\n\n const mode: MorphMode = options.diff ? \"diff\" : \"replace\";\n\n // strings go through the HTML parser; JSX/VNodes are used as-is\n const apply = (content: RenderInput) =>\n updateDomWithVdom(\n el,\n typeof content === \"string\" ? htmlStringToVNodes(content, win.DOMParser) : content,\n globals,\n mode,\n );\n\n const transition = options.transition;\n if (transition && transition.type !== \"none\") {\n const config = { ...DEFAULT_TRANSITION_CONFIG, ...transition };\n const transitionTarget =\n config.target === \"self\" ? (el as HTMLElement) : el.parentElement;\n\n // no transition target (detached root) -> morph directly\n if (!transitionTarget) {\n apply(newContent);\n return;\n }\n\n // register the content slot for this element (replaces any previous one)\n const slot = { content: newContent };\n inflightTransitions.set(el, slot);\n\n return performTransition(\n transitionTarget,\n // apply the latest requested content — but only if this transition\n // still owns the slot; when a newer transition has taken it over (or\n // already completed and cleaned it up), this deferred update is stale\n // and must not clobber the newer content\n async () => {\n if (inflightTransitions.get(el) === slot) apply(slot.content);\n },\n config,\n ).finally(() => {\n // clean up only if no newer transition took over the slot\n if (inflightTransitions.get(el) === slot) inflightTransitions.delete(el);\n });\n }\n\n // plain morph: apply immediately, and if a transition is in flight for this\n // element, rewrite its slot so the deferred update re-applies this (latest)\n // content instead of the transition's stale content\n const slot = inflightTransitions.get(el);\n if (slot) slot.content = newContent;\n\n apply(newContent);\n};\n",
12
- "import * as api from \"./index.js\";\n\n/**\n * Why: the CDN bundle (dist/all.js / all.min.js) is also loaded via a plain\n * <script type=\"module\" src=\"...\"> tag — no ESM import statement, so the\n * module's exports are unreachable for the page. Evaluating the bundle\n * therefore declares a `df$` global and exposes the full public API on it:\n *\n * <script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/defuss-morph@latest/dist/all.min.js\"></script>\n * <script type=\"module\">\n * window.df$.morph(document.getElementById(\"app\"), \"<p>Hi</p>\");\n * window.df$.updateDomWithVdom(app, [{ type: \"input\", attributes: { checked: false }, children: [] }], { window });\n * </script>\n *\n * A pre-existing `df$` object is preserved (the API is assigned onto it);\n * a non-object value (or none) is replaced with a fresh object.\n */\ndeclare global {\n var df$: typeof api | undefined;\n\n interface Window {\n df$: typeof api | undefined;\n }\n}\n\nif (typeof globalThis !== \"undefined\") {\n const g = globalThis as { df$: unknown };\n if (typeof g.df$ !== \"object\" || g.df$ === null) {\n g.df$ = {};\n }\n Object.assign(g.df$ as Record<string, unknown>, api);\n}\n"
12
+ "import * as api from \"./index.js\";\n\n/**\n * Why: the CDN bundle (dist/all.js / all.min.js) is also loaded via a plain\n * <script type=\"module\" src=\"...\"> tag — no ESM import statement, so the\n * module's exports are unreachable for the page. Evaluating the bundle\n * therefore declares a `df$` global and exposes the full public API on it:\n *\n * <script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/defuss-morph@latest/dist/all.min.js\"></script>\n * <script type=\"module\">\n * window.df$.morph(document.getElementById(\"app\"), \"<p>Hi</p>\");\n * window.df$.updateDomWithVdom(app, [{ type: \"input\", attributes: { checked: false }, children: [] }], { window });\n * </script>\n *\n * A pre-existing `df$` object or function is preserved (the API is assigned\n * onto it); any other value (or none) is replaced with a fresh object. This\n * keeps script order robust: loading morph after a script that declared `df$`\n * as a function (e.g. dequery) does not clobber it.\n */\ndeclare global {\n var df$: typeof api | undefined;\n\n interface Window {\n df$: typeof api | undefined;\n }\n}\n\nif (typeof globalThis !== \"undefined\") {\n const g = globalThis as { df$: unknown };\n const current = g.df$;\n if (\n current === null ||\n (typeof current !== \"object\" && typeof current !== \"function\")\n ) {\n g.df$ = {};\n }\n Object.assign(g.df$ as Record<string, unknown>, api);\n}\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "6F130A0428D5249264756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "BA5C1E84E9A829C164756E2164756E21",
16
16
  "names": []
17
17
  }
package/dist/all.min.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=Object.defineProperty,t=e=>e;function n(e,n){this[e]=t.bind(null,n)}var r=(t,r)=>{for(var i in r)e(t,i,{get:r[i],enumerable:!0,configurable:!0,set:n.bind(r,i)})},i={};r(i,{updateDomWithVdom:()=>K,resolveGlobals:()=>G,replaceDomWithVdom:()=>be,renderMarkup:()=>F,removeDelegatedEventByKey:()=>b,removeDelegatedEvent:()=>ie,registerDelegatedEvent:()=>h,queueCallback:()=>a,performTransition:()=>Z,parseEventPropName:()=>d,parseDOM:()=>j,observeUnmount:()=>D,nsMap:()=>E,morph:()=>$,isSVG:()=>M,isMarkup:()=>P,isHTML:()=>N,htmlStringToVNodes:()=>R,handleLifecycleEventsForOnMount:()=>O,getTransitionStyles:()=>q,getRenderer:()=>k,getRegisteredEventTypes:()=>v,getRegisteredEventKeys:()=>y,getMimeType:()=>I,domNodeToVNode:()=>L,clearDelegatedEventsDeep:()=>_,clearDelegatedEvents:()=>g,areDomNodesEqual:()=>z,applyStyles:()=>J,XMLNS_ATTRIBUTE_NAME:()=>C,XLINK_ATTRIBUTE_NAME:()=>S,REF_ATTRIBUTE_NAME:()=>w,FROM_DOM_MARKER:()=>A,DEFAULT_TRANSITION_CONFIG:()=>Y,DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE:()=>T,CLASS_ATTRIBUTE_NAME:()=>x,CAPTURE_ONLY_EVENTS:()=>o});var a=e=>(...t)=>queueMicrotask(()=>e(...t)),o=new Set([`focus`,`blur`,`scroll`,`mouseenter`,`mouseleave`]),s=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,d=e=>{if(!e.startsWith(`on`))return null;let t=e.slice(2);if(!t)return null;let n=t.toLowerCase(),r=n.endsWith(`capture`),i=r?n.slice(0,-7):n;return i?{eventType:i,capture:r}:null},ee=e=>{let t=s.get(e);if(t)return t;let n=new Map;return s.set(e,n),n},f=e=>{let t=e.composedPath?.();if(t&&t.length>0)return t;let n=[],r=e.target;for(;r;){n.push(r);let e=r;if(typeof e==`object`&&e&&`parentNode`in e){r=e.parentNode;continue}break}let i=e.target?.ownerDocument;i&&n[n.length-1]!==i&&n.push(i);let a=i?.defaultView;return a&&n[n.length-1]!==a&&n.push(a),n},p=(e,t)=>{let n=t===`capture`?l:c;return r=>{let i=f(r).filter(e=>typeof e==`object`&&!!e&&e.nodeType===1),a=t===`capture`?[...i].reverse():i;for(let i of a){let a=s.get(i);if(!a)continue;let o=a.get(e);if(!o)continue;let c=n.get(r);if(c?.has(i))continue;c||(c=new WeakSet,n.set(r,c)),c.add(i);let l=`${e}:${t}`,d=u.get(i);if(!d?.has(l)){d||(d=new Set,u.set(i,d)),d.add(l);try{if(t===`capture`){if(o.capture&&(o.capture.call(i,r),r.cancelBubble))return;if(o.captureSet){for(let e of o.captureSet)if(e.call(i,r),r.cancelBubble)return}}else{if(o.bubble&&(o.bubble.call(i,r),r.cancelBubble))return;if(o.bubbleSet){for(let e of o.bubbleSet)if(e.call(i,r),r.cancelBubble)return}}}finally{d.delete(l)}}}}},m=new WeakMap,te=(e,t)=>{let n=m.get(e)??new Set;m.set(e,n);let r=`${t}:capture`;n.has(r)||(e.addEventListener(t,p(t,`capture`),!0),n.add(r));let i=`${t}:bubble`;n.has(i)||(e.addEventListener(t,p(t,`bubble`),!1),n.add(i))},ne=e=>{let t=e.getRootNode();return t&&t.nodeType===9||t&&t.nodeType===11&&`host`in t?t:null},h=(e,t,n,r={})=>{let i=ne(e),a=r.capture||o.has(t);i?te(i,t):e.ownerDocument?te(e.ownerDocument,t):e.addEventListener(t,n,a);let s=ee(e),c=s.get(t)??{};s.set(t,c),r.multi?a?(c.captureSet||=new Set,c.captureSet.add(n)):(c.bubbleSet||=new Set,c.bubbleSet.add(n)):a?c.capture=n:c.bubble=n},re=e=>!e.capture&&!e.bubble&&(!e.captureSet||e.captureSet.size===0)&&(!e.bubbleSet||e.bubbleSet.size===0),ie=(e,t,n,r={})=>{let i=s.get(e);if(!i)return;let a=i.get(t);a&&(n?(a.captureSet&&a.captureSet.delete(n),a.bubbleSet&&a.bubbleSet.delete(n),a.capture===n&&(a.capture=void 0),a.bubble===n&&(a.bubble=void 0),e.removeEventListener(t,n,!0),e.removeEventListener(t,n,!1)):(a.capture=void 0,a.bubble=void 0,a.captureSet=void 0,a.bubbleSet=void 0),re(a)&&i.delete(t))},g=e=>{let t=s.get(e);t&&t.clear()},_=e=>{g(e);let t=e.ownerDocument;if(!t)return;let n=t.createTreeWalker(e,1),r=n.nextNode();for(;r;)g(r),r=n.nextNode()},v=e=>{let t=s.get(e);return t?new Set(t.keys()):new Set},y=e=>{let t=s.get(e);if(!t)return new Set;let n=new Set;for(let[e,r]of t)(r.bubble||r.bubbleSet?.size)&&n.add(`${e}:bubble`),(r.capture||r.captureSet?.size)&&n.add(`${e}:capture`);return n},b=(e,t,n)=>{let r=s.get(e);if(!r)return;let i=r.get(t);i&&(n===`capture`?(i.capture=void 0,i.captureSet=void 0):(i.bubble=void 0,i.bubbleSet=void 0),re(i)&&r.delete(t))},x=`class`,S=`xlink`,C=`xmlns`,w=`ref`,T=`dangerouslySetInnerHTML`,E={[C]:`http://www.w3.org/2000/xmlns/`,[S]:`http://www.w3.org/1999/xlink`,svg:`http://www.w3.org/2000/svg`},D=(e,t)=>{if(!e||typeof t!=`function`)throw Error(`Invalid arguments. Ensure domNode and onUnmount are valid.`);if(typeof MutationObserver>`u`)return;let n=e.parentNode;if(!n)throw Error(`The provided domNode does not have a parentNode.`);let r=new MutationObserver(i=>{for(let a of i)if(a.removedNodes.length>0){for(let i of a.removedNodes)if(i===e){queueMicrotask(()=>{if(!e.isConnected){t(),r.disconnect();return}let i=e.parentNode;i&&i!==n&&(n=i,r.disconnect(),r.observe(n,{childList:!0}))});return}}});r.observe(n,{childList:!0})},O=e=>{typeof e?.$onMount==`function`&&(e.$onMount(e),e.$onMount=null),typeof e?.$onUnmount==`function`&&D(e,e.$onUnmount)},k=e=>{let t={hasElNamespace:e=>e.namespaceURI===E.svg,hasSvgNamespace:(e,n)=>t.hasElNamespace(e)&&n!==`STYLE`&&n!==`SCRIPT`,createElementOrElements:(e,n)=>Array.isArray(e)?t.createChildElements(e,n):e===void 0?t.createTextNode(``,n):t.createElement(e,n),createElement:(n,r)=>{let i;try{if(typeof n==`function`&&n.constructor.name===`AsyncFunction`)i=e.createElement(`div`);else if(typeof n==`object`&&n&&`type`in n){let a=n;typeof a.type==`function`?(i=e.createElement(`div`),i.innerText=`FATAL ERROR: ${a.type._error}`):i=typeof a.type==`string`&&a.type.toUpperCase()===`SVG`||r&&t.hasSvgNamespace(r,typeof a.type==`string`?a.type.toUpperCase():``)?e.createElementNS(E.svg,a.type):e.createElement(a.type),a.attributes&&(t.setAttributes(a,i),a.attributes.dangerouslySetInnerHTML&&(i.innerHTML=a.attributes.dangerouslySetInnerHTML.__html)),a.children&&!a.attributes?.dangerouslySetInnerHTML&&t.createChildElements(a.children,i)}else(typeof n==`string`||typeof n==`number`)&&(i=e.createElement(String(n)));i&&r&&(r.appendChild(i),O(i))}catch(e){throw console.error(`Fatal error! Error happend while rendering the VDOM!`,e,n),e}return i},createTextNode:(t,n)=>{let r=e.createTextNode(t.toString());return n&&n.appendChild(r),r},createChildElements:(e,n)=>{let r=[];for(let i=0;i<e.length;i++){let a=e[i];typeof a!=`boolean`&&(a===null||typeof a!=`object`&&typeof a!=`function`?r.push(t.createTextNode((a??``).toString(),n)):r.push(t.createElement(a,n)))}return r},setAttribute:(e,n,r)=>{if(n===void 0||e===T)return;if(e===`key`){r._defussKey=String(n);return}if(e===w&&typeof n!=`function`){let e=n;e.current=r,r._defussRef=n,r.$onUnmount=a(()=>{}),r.parentNode?D(r,r.$onUnmount):queueMicrotask(()=>{r.parentNode&&D(r,r.$onUnmount)});return}let i=d(e);if(i&&typeof n==`function`){let{eventType:e,capture:t}=i;if(e===`mount`){r.$onMount=a(n);return}if(e===`unmount`){if(r.$onUnmount){let e=r.$onUnmount;r.$onUnmount=()=>{e(),n()}}else r.$onUnmount=a(n);return}h(r,e,n,{capture:t});return}e===`className`&&(e=x),e===x&&Array.isArray(n)&&(n=n.filter(e=>!!e).join(` `));let o=e.match(/[A-Z]/)?.index;if(t.hasElNamespace(r)&&o){let t=e.substring(0,o).toLowerCase(),i=e.substring(o,e.length).toLowerCase(),a=E[t]||null;r.setAttributeNS(a,t===S||t===C?`${t}:${i}`:e,String(n))}else if(e===`style`&&typeof n!=`string`){let e=n;for(let t of Object.keys(e))r.style[t]=String(e[t])}else typeof n==`boolean`?(r[e]=n,n?r.setAttribute(e,``):r.removeAttribute(e)):(e===`value`||e===`checked`||e===`selectedIndex`)&&(r.nodeName===`INPUT`||r.nodeName===`TEXTAREA`||r.nodeName===`SELECT`)?(r[e]=n,e===`checked`?n?r.setAttribute(`checked`,``):r.removeAttribute(`checked`):e===`value`&&r.setAttribute(`value`,String(n))):r.setAttribute(e,String(n))},setAttributes:(e,n)=>{let r=Object.keys(e.attributes??{});for(let i=0;i<r.length;i++)t.setAttribute(r[i],e.attributes[r[i]],n)}};return t},A=Symbol(`defuss-morph.from-dom`),ae=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),oe=e=>ae.has(e.name.toLowerCase())?!0:e.value;function j(e,t,n){return new n().parseFromString(e,t)}function M(e,t){let n=j(e,`image/svg+xml`,t);return n.documentElement?n.documentElement.nodeName.toLowerCase()===`svg`:!1}function N(e,t){return j(e,`text/html`,t).documentElement.querySelectorAll(`*`).length>2}var P=(e,t)=>e.indexOf(`<`)>-1&&e.indexOf(`>`)>-1&&(N(e,t)||M(e,t));function F(e,t,n){let r=n||j(e,I(e,t),t);return r.body?Array.from(r.body.childNodes):r.documentElement?[r.documentElement]:[]}function I(e,t){return M(e,t)?`image/svg+xml`:`text/html`}function L(e){if(e.nodeType===3)return e.textContent||``;if(e.nodeType===1){let t=e,n={};for(let e=0;e<t.attributes.length;e++){let r=t.attributes[e];n[r.name]=oe(r)}let r=[];for(let e=0;e<t.childNodes.length;e++){let n=L(t.childNodes[e]);r.push(n)}return{type:t.tagName.toLowerCase(),attributes:{...n,[A]:!0},children:r}}return``}function R(e,t){let n=new t().parseFromString(e,`text/html`),r=[];for(let e=0;e<n.body.childNodes.length;e++){let t=L(n.body.childNodes[e]);t!==``&&r.push(t)}return r}var z=(e,t)=>{if(e===t)return!0;if(e.nodeType!==t.nodeType)return!1;if(e.nodeType===1){let n=e,r=t;if(n.tagName!==r.tagName)return!1;let i=n.attributes,a=r.attributes;if(i.length!==a.length)return!1;for(let e=0;e<i.length;e++){let t=i[e],n=r.getAttribute(t.name);if(t.value!==n)return!1}}return e.nodeType!==3||e.textContent===t.textContent};function se(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function B(e){return!!(e&&typeof e==`object`&&`type`in e)}function ce(e,t=!1){if(e==null||se(e)||B(e)||t&&e&&typeof e==`object`&&`attributes`in e)return e}function le(e,t=!1){let n=[],r=e=>{if(Array.isArray(e)){e.forEach(r);return}let i=ce(e,t);if(i!==void 0){if(B(i)&&(i.type===`fragment`||i.type===`Fragment`)){(Array.isArray(i.children)?i.children:[]).forEach(r);return}i!=null&&typeof i!=`boolean`&&n.push(i)}};r(e);let i=[],a=null,o=()=>{a!==null&&a.length>0&&i.push(a),a=null};for(let e of n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){a=(a??``)+String(e);continue}o(),i.push(e)}return o(),i}function V(e){if(!e||typeof e!=`object`)return null;let t=e.attributes?.key;if(typeof t==`string`||typeof t==`number`)return`k:${String(t)}`;let n=e.attributes?.id;return typeof n==`string`&&n.length>0?`id:${n}`:null}function ue(e){return e&&typeof e==`object`?`<${typeof e.type==`string`?e.type:`component`}>`:`plain text`}function de(e){if(e.nodeType!==1)return[];let t=e,n=[],r=t._defussKey;r&&n.push(`k:${r}`);let i=t.getAttribute(`key`);i&&n.push(`k:${i}`);let a=t.id;return a&&n.push(`id:${a}`),n}function fe(e,t){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return e.nodeType===3;if(t&&typeof t==`object`){if(e.nodeType!==1)return!1;let n=e.tagName.toLowerCase(),r=typeof t.type==`string`?t.type.toLowerCase():``;return!(!r||n!==r)}return!1}function H(e,t){let n=k(t.window.document);if(e==null)return;if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return[t.window.document.createTextNode(String(e))];let r=n.createElementOrElements(e);return r?(Array.isArray(r)?r:[r]).filter(Boolean):void 0}function pe(e,t,n){let r=e.tagName.toLowerCase();return Object.hasOwn(n.attributes??{},t)?!1:r===`input`?t===`value`||t===`checked`:r===`textarea`||r===`select`?t===`value`:!1}function me(e,t,n,r=!1){let i=k(n.window.document),a=r?[]:Array.from(e.attributes),o=t.attributes??{};for(let n of a){let{name:r}=n;if(r!==`key`&&!r.startsWith(`on`)&&(r!==`class`||!Object.hasOwn(o,`class`)&&!Object.hasOwn(o,`className`))&&!Object.hasOwn(o,r)){if(pe(e,r,t))continue;e.removeAttribute(r)}}if(!(r||o[A])){let t=y(e),n=new Set;for(let e of Object.keys(o)){let t=d(e);if(t){let e=t.capture?`capture`:`bubble`;n.add(`${t.eventType}:${e}`)}}for(let r of t)if(!n.has(r)){let[t,n]=r.split(`:`);b(e,t,n)}}i.setAttributes(t,e),O(e);let s=t.attributes?.dangerouslySetInnerHTML;if(s&&typeof s==`object`&&typeof s.__html==`string`){e.innerHTML=s.__html;return}if(e.tagName.toLowerCase()===`textarea`){let t=Object.hasOwn(o,`value`);if(e.ownerDocument?.activeElement===e&&!t)return}r&&(t.children===void 0||t.children.length===0&&o[A])||ye(e,t.children??[],n)}function he(e,t,n,r=!1){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`){let r=String(t);if(e.nodeType===3)return e.nodeValue!==r&&(e.nodeValue=r),e;let i=n.window.document.createTextNode(r);return e.parentNode?.replaceChild(i,e),i}if(t&&typeof t==`object`){let i=typeof t.type==`string`?t.type:null;if(!i)return e;if(e.nodeType!==1){let r=H(t,n),i=Array.isArray(r)?r[0]:r;return i?(e.parentNode?.replaceChild(i,e),O(i),i):null}let a=e;if(a.tagName.toLowerCase()!==i.toLowerCase()){let e=H(t,n),r=Array.isArray(e)?e[0]:e;return r?(a.parentNode?.replaceChild(r,a),O(r),r):null}return me(a,t,n,r),a}return e.parentNode?.removeChild(e),null}var U=new WeakSet,W=new Map,G=(e,t)=>t||{window:e?.ownerDocument?.defaultView??globalThis};function ge(e){let t=e.parentElement;for(;t;){if(U.has(t))return!0;t=t.parentElement}return!1}function _e(){if(W.size===0)return;let e=[...W.entries()];W.clear();for(let[t,{vdom:n,globals:r,mode:i}]of e)t.isConnected&&K(t,n,r,i)}function K(e,t,n,r=`replace`){let i=G(e,n);if(U.has(e)||ge(e)){W.set(e,{vdom:t,globals:i,mode:r});return}U.add(e);try{ye(e,t,i,r)}finally{U.delete(e)}_e()}function ve(e,t,n){let r=new Map;for(let t of Array.from(e.childNodes))for(let e of de(t))r.has(e)||r.set(e,t);for(let i of t){if(typeof i==`string`&&i.trim()===``)continue;let t=V(i);if(!t)throw Error(`morph diff: patch items must be elements with a key or id attribute (got ${ue(i)})`);let a=r.get(t);if(a){he(a,i&&typeof i==`object`&&!i.type?{...i,type:a.tagName.toLowerCase()}:i,n,!0);continue}if(!i?.type)throw Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id "${t}"`);let o=H(i,n)??[];for(let t of o)e.appendChild(t),O(t)}}function ye(e,t,n,r=`replace`){let i=e,a=i.tagName.includes(`-`),o=i.shadowRoot&&!a?i.shadowRoot:e,s=le(t,r===`diff`);if(r===`diff`){ve(o,s,n);return}let c=Array.from(o.childNodes),l=new Map,u=new WeakMap,d=[];for(let e of c){let t=de(e);if(t.length>0){u.set(e,t);let n=!1;for(let r of t)l.has(r)||(l.set(r,e),n=!0);n||d.push(e)}else d.push(e)}let ee=e=>{let t=u.get(e)??[];for(let e of t)l.delete(e)},f=e=>{for(let t=0;t<d.length;t++){let n=d[t];if(fe(n,e))return d.splice(t,1),n}},p=0;for(let e of s){let t=V(e),r;t?(r=l.get(t),r&&ee(r)):r=f(e);let i=o.childNodes[p]??null;if(r){r!==i&&o.insertBefore(r,i),he(r,e,n),p++;continue}let a=H(e,n);if(!a||Array.isArray(a)&&a.length===0)continue;let s=Array.isArray(a)?a:[a];for(let e of s)o.insertBefore(e,i),O(e),p++}let m=new Set;for(let e of d)m.add(e);for(let e of l.values())m.add(e);for(let e of m)e.parentNode===o&&(e.nodeType===1&&_(e),o.removeChild(e))}function be(e,t,n){let r=G(e,n);for(;e.firstChild;)e.removeChild(e.firstChild);let i=k(r.window.document).createElementOrElements(t);if(Array.isArray(i))for(let t of i)t&&(e.appendChild(t),O(t));else i&&(e.appendChild(i),O(i))}var xe=e=>{if(e&&!e.getElementById(`defuss-shake`)){let t=e.createElement(`style`);t.id=`defuss-shake`,t.textContent=`@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}`,e.head.appendChild(t)}},q=(e,t,n=`ease-in-out`)=>{let r=`transform ${t}ms ${n}, opacity ${t}ms ${n}`;return{fade:{enter:{opacity:`0`,transition:r,transform:`translate3d(0,0,0)`},enterActive:{opacity:`1`},exit:{opacity:`1`,transition:r,transform:`translate3d(0,0,0)`},exitActive:{opacity:`0`}},"slide-left":{enter:{transform:`translate3d(100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`}},"slide-right":{enter:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(100%,0,0)`,opacity:`0.5`}},shake:(xe(typeof document<`u`?document:void 0),{enter:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},exitActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`}})}[e]||{enter:{},enterActive:{},exit:{},exitActive:{}}},J=(e,t)=>Object.entries(t).forEach(([t,n])=>e.style.setProperty(t,String(n))),Y={type:`fade`,duration:300,easing:`ease-in-out`,delay:0,target:`parent`},X=e=>new Promise(t=>setTimeout(t,e)),Se=async(e,t,n,r)=>{let i=e.style.cssText,a=e.cloneNode(!0),o=e.ownerDocument;try{let i=e.getBoundingClientRect();a.style.cssText=`position:absolute;top:${i.top}px;left:${i.left}px;width:${i.width}px;height:${i.height}px;opacity:1;transition:opacity ${n}ms ${r};z-index:1000;`,e.style.opacity=`0`,e.style.transition=`opacity ${n}ms ${r}`,o.body.appendChild(a),await t(),e.offsetHeight,a.style.opacity=`0`,e.style.opacity=`1`,await X(n),o.body.removeChild(a)}catch(e){throw a.parentElement&&o.body.removeChild(a),e}finally{e.style.cssText=i}},Z=async(e,t,n={})=>{let{type:r=`fade`,duration:i=300,easing:a=`ease-in-out`,delay:o=0}={...Y,...n};if(r===`none`){await t();return}if(o>0&&await X(o),r===`fade`){await Se(e,t,i,a);return}let s=n.styles||q(r,i,a),c=e.style.transition,l=e.style.animation;try{r===`shake`&&(e.style.animation=`none`,e.offsetHeight),J(e,s.exit),e.offsetHeight,J(e,s.exitActive),await X(i),await t(),J(e,s.enter),e.offsetHeight,J(e,s.enterActive),await X(i),e.style.transition=c,e.style.animation=l}catch(t){throw e.style.transition=c,e.style.animation=l,t}},Q=new WeakMap,$=(e,t,n={})=>{let r=G(e),i=r.window,a=n.diff?`diff`:`replace`,o=t=>K(e,typeof t==`string`?R(t,i.DOMParser):t,r,a),s=n.transition;if(s&&s.type!==`none`){let n={...Y,...s},r=n.target===`self`?e:e.parentElement;if(!r){o(t);return}let i={content:t};return Q.set(e,i),Z(r,async()=>{Q.get(e)===i&&o(i.content)},n).finally(()=>{Q.get(e)===i&&Q.delete(e)})}let c=Q.get(e);c&&(c.content=t),o(t)};if(typeof globalThis<`u`){let e=globalThis;(typeof e.df$!=`object`||e.df$===null)&&(e.df$={}),Object.assign(e.df$,i)}export{K as updateDomWithVdom,G as resolveGlobals,be as replaceDomWithVdom,F as renderMarkup,b as removeDelegatedEventByKey,ie as removeDelegatedEvent,h as registerDelegatedEvent,a as queueCallback,Z as performTransition,d as parseEventPropName,j as parseDOM,D as observeUnmount,E as nsMap,$ as morph,M as isSVG,P as isMarkup,N as isHTML,R as htmlStringToVNodes,O as handleLifecycleEventsForOnMount,q as getTransitionStyles,k as getRenderer,v as getRegisteredEventTypes,y as getRegisteredEventKeys,I as getMimeType,L as domNodeToVNode,_ as clearDelegatedEventsDeep,g as clearDelegatedEvents,z as areDomNodesEqual,J as applyStyles,C as XMLNS_ATTRIBUTE_NAME,S as XLINK_ATTRIBUTE_NAME,w as REF_ATTRIBUTE_NAME,A as FROM_DOM_MARKER,Y as DEFAULT_TRANSITION_CONFIG,T as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,x as CLASS_ATTRIBUTE_NAME,o as CAPTURE_ONLY_EVENTS};
1
+ var e=Object.defineProperty,t=e=>e;function n(e,n){this[e]=t.bind(null,n)}var r=(t,r)=>{for(var i in r)e(t,i,{get:r[i],enumerable:!0,configurable:!0,set:n.bind(r,i)})},i={};r(i,{updateDomWithVdom:()=>K,resolveGlobals:()=>G,replaceDomWithVdom:()=>be,renderMarkup:()=>F,removeDelegatedEventByKey:()=>b,removeDelegatedEvent:()=>ie,registerDelegatedEvent:()=>h,queueCallback:()=>a,performTransition:()=>Z,parseEventPropName:()=>d,parseDOM:()=>j,observeUnmount:()=>D,nsMap:()=>E,morph:()=>$,isSVG:()=>M,isMarkup:()=>P,isHTML:()=>N,htmlStringToVNodes:()=>R,handleLifecycleEventsForOnMount:()=>O,getTransitionStyles:()=>q,getRenderer:()=>k,getRegisteredEventTypes:()=>v,getRegisteredEventKeys:()=>y,getMimeType:()=>I,domNodeToVNode:()=>L,clearDelegatedEventsDeep:()=>_,clearDelegatedEvents:()=>g,areDomNodesEqual:()=>z,applyStyles:()=>J,XMLNS_ATTRIBUTE_NAME:()=>C,XLINK_ATTRIBUTE_NAME:()=>S,REF_ATTRIBUTE_NAME:()=>w,FROM_DOM_MARKER:()=>A,DEFAULT_TRANSITION_CONFIG:()=>Y,DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE:()=>T,CLASS_ATTRIBUTE_NAME:()=>x,CAPTURE_ONLY_EVENTS:()=>o});var a=e=>(...t)=>queueMicrotask(()=>e(...t)),o=new Set([`focus`,`blur`,`scroll`,`mouseenter`,`mouseleave`]),s=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,d=e=>{if(!e.startsWith(`on`))return null;let t=e.slice(2);if(!t)return null;let n=t.toLowerCase(),r=n.endsWith(`capture`),i=r?n.slice(0,-7):n;return i?{eventType:i,capture:r}:null},ee=e=>{let t=s.get(e);if(t)return t;let n=new Map;return s.set(e,n),n},f=e=>{let t=e.composedPath?.();if(t&&t.length>0)return t;let n=[],r=e.target;for(;r;){n.push(r);let e=r;if(typeof e==`object`&&e&&`parentNode`in e){r=e.parentNode;continue}break}let i=e.target?.ownerDocument;i&&n[n.length-1]!==i&&n.push(i);let a=i?.defaultView;return a&&n[n.length-1]!==a&&n.push(a),n},p=(e,t)=>{let n=t===`capture`?l:c;return r=>{let i=f(r).filter(e=>typeof e==`object`&&!!e&&e.nodeType===1),a=t===`capture`?[...i].reverse():i;for(let i of a){let a=s.get(i);if(!a)continue;let o=a.get(e);if(!o)continue;let c=n.get(r);if(c?.has(i))continue;c||(c=new WeakSet,n.set(r,c)),c.add(i);let l=`${e}:${t}`,d=u.get(i);if(!d?.has(l)){d||(d=new Set,u.set(i,d)),d.add(l);try{if(t===`capture`){if(o.capture&&(o.capture.call(i,r),r.cancelBubble))return;if(o.captureSet){for(let e of o.captureSet)if(e.call(i,r),r.cancelBubble)return}}else{if(o.bubble&&(o.bubble.call(i,r),r.cancelBubble))return;if(o.bubbleSet){for(let e of o.bubbleSet)if(e.call(i,r),r.cancelBubble)return}}}finally{d.delete(l)}}}}},m=new WeakMap,te=(e,t)=>{let n=m.get(e)??new Set;m.set(e,n);let r=`${t}:capture`;n.has(r)||(e.addEventListener(t,p(t,`capture`),!0),n.add(r));let i=`${t}:bubble`;n.has(i)||(e.addEventListener(t,p(t,`bubble`),!1),n.add(i))},ne=e=>{let t=e.getRootNode();return t&&t.nodeType===9||t&&t.nodeType===11&&`host`in t?t:null},h=(e,t,n,r={})=>{let i=ne(e),a=r.capture||o.has(t);i?te(i,t):e.ownerDocument?te(e.ownerDocument,t):e.addEventListener(t,n,a);let s=ee(e),c=s.get(t)??{};s.set(t,c),r.multi?a?(c.captureSet||=new Set,c.captureSet.add(n)):(c.bubbleSet||=new Set,c.bubbleSet.add(n)):a?c.capture=n:c.bubble=n},re=e=>!e.capture&&!e.bubble&&(!e.captureSet||e.captureSet.size===0)&&(!e.bubbleSet||e.bubbleSet.size===0),ie=(e,t,n,r={})=>{let i=s.get(e);if(!i)return;let a=i.get(t);a&&(n?(a.captureSet&&a.captureSet.delete(n),a.bubbleSet&&a.bubbleSet.delete(n),a.capture===n&&(a.capture=void 0),a.bubble===n&&(a.bubble=void 0),e.removeEventListener(t,n,!0),e.removeEventListener(t,n,!1)):(a.capture=void 0,a.bubble=void 0,a.captureSet=void 0,a.bubbleSet=void 0),re(a)&&i.delete(t))},g=e=>{let t=s.get(e);t&&t.clear()},_=e=>{g(e);let t=e.ownerDocument;if(!t)return;let n=t.createTreeWalker(e,1),r=n.nextNode();for(;r;)g(r),r=n.nextNode()},v=e=>{let t=s.get(e);return t?new Set(t.keys()):new Set},y=e=>{let t=s.get(e);if(!t)return new Set;let n=new Set;for(let[e,r]of t)(r.bubble||r.bubbleSet?.size)&&n.add(`${e}:bubble`),(r.capture||r.captureSet?.size)&&n.add(`${e}:capture`);return n},b=(e,t,n)=>{let r=s.get(e);if(!r)return;let i=r.get(t);i&&(n===`capture`?(i.capture=void 0,i.captureSet=void 0):(i.bubble=void 0,i.bubbleSet=void 0),re(i)&&r.delete(t))},x=`class`,S=`xlink`,C=`xmlns`,w=`ref`,T=`dangerouslySetInnerHTML`,E={[C]:`http://www.w3.org/2000/xmlns/`,[S]:`http://www.w3.org/1999/xlink`,svg:`http://www.w3.org/2000/svg`},D=(e,t)=>{if(!e||typeof t!=`function`)throw Error(`Invalid arguments. Ensure domNode and onUnmount are valid.`);if(typeof MutationObserver>`u`)return;let n=e.parentNode;if(!n)throw Error(`The provided domNode does not have a parentNode.`);let r=new MutationObserver(i=>{for(let a of i)if(a.removedNodes.length>0){for(let i of a.removedNodes)if(i===e){queueMicrotask(()=>{if(!e.isConnected){t(),r.disconnect();return}let i=e.parentNode;i&&i!==n&&(n=i,r.disconnect(),r.observe(n,{childList:!0}))});return}}});r.observe(n,{childList:!0})},O=e=>{typeof e?.$onMount==`function`&&(e.$onMount(e),e.$onMount=null),typeof e?.$onUnmount==`function`&&D(e,e.$onUnmount)},k=e=>{let t={hasElNamespace:e=>e.namespaceURI===E.svg,hasSvgNamespace:(e,n)=>t.hasElNamespace(e)&&n!==`STYLE`&&n!==`SCRIPT`,createElementOrElements:(e,n)=>Array.isArray(e)?t.createChildElements(e,n):e===void 0?t.createTextNode(``,n):t.createElement(e,n),createElement:(n,r)=>{let i;try{if(typeof n==`function`&&n.constructor.name===`AsyncFunction`)i=e.createElement(`div`);else if(typeof n==`object`&&n&&`type`in n){let a=n;typeof a.type==`function`?(i=e.createElement(`div`),i.innerText=`FATAL ERROR: ${a.type._error}`):i=typeof a.type==`string`&&a.type.toUpperCase()===`SVG`||r&&t.hasSvgNamespace(r,typeof a.type==`string`?a.type.toUpperCase():``)?e.createElementNS(E.svg,a.type):e.createElement(a.type),a.attributes&&(t.setAttributes(a,i),a.attributes.dangerouslySetInnerHTML&&(i.innerHTML=a.attributes.dangerouslySetInnerHTML.__html)),a.children&&!a.attributes?.dangerouslySetInnerHTML&&t.createChildElements(a.children,i)}else(typeof n==`string`||typeof n==`number`)&&(i=e.createElement(String(n)));i&&r&&(r.appendChild(i),O(i))}catch(e){throw console.error(`Fatal error! Error happend while rendering the VDOM!`,e,n),e}return i},createTextNode:(t,n)=>{let r=e.createTextNode(t.toString());return n&&n.appendChild(r),r},createChildElements:(e,n)=>{let r=[];for(let i=0;i<e.length;i++){let a=e[i];typeof a!=`boolean`&&(a===null||typeof a!=`object`&&typeof a!=`function`?r.push(t.createTextNode((a??``).toString(),n)):r.push(t.createElement(a,n)))}return r},setAttribute:(e,n,r)=>{if(n===void 0||e===T)return;if(e===`key`){r._defussKey=String(n);return}if(e===w&&typeof n!=`function`){let e=n;e.current=r,r._defussRef=n,r.$onUnmount=a(()=>{}),r.parentNode?D(r,r.$onUnmount):queueMicrotask(()=>{r.parentNode&&D(r,r.$onUnmount)});return}let i=d(e);if(i&&typeof n==`function`){let{eventType:e,capture:t}=i;if(e===`mount`){r.$onMount=a(n);return}if(e===`unmount`){if(r.$onUnmount){let e=r.$onUnmount;r.$onUnmount=()=>{e(),n()}}else r.$onUnmount=a(n);return}h(r,e,n,{capture:t});return}e===`className`&&(e=x),e===x&&Array.isArray(n)&&(n=n.filter(e=>!!e).join(` `));let o=e.match(/[A-Z]/)?.index;if(t.hasElNamespace(r)&&o){let t=e.substring(0,o).toLowerCase(),i=e.substring(o,e.length).toLowerCase(),a=E[t]||null;r.setAttributeNS(a,t===S||t===C?`${t}:${i}`:e,String(n))}else if(e===`style`&&typeof n!=`string`){let e=n;for(let t of Object.keys(e))r.style[t]=String(e[t])}else typeof n==`boolean`?(r[e]=n,n?r.setAttribute(e,``):r.removeAttribute(e)):(e===`value`||e===`checked`||e===`selectedIndex`)&&(r.nodeName===`INPUT`||r.nodeName===`TEXTAREA`||r.nodeName===`SELECT`)?(r[e]=n,e===`checked`?n?r.setAttribute(`checked`,``):r.removeAttribute(`checked`):e===`value`&&r.setAttribute(`value`,String(n))):r.setAttribute(e,String(n))},setAttributes:(e,n)=>{let r=Object.keys(e.attributes??{});for(let i=0;i<r.length;i++)t.setAttribute(r[i],e.attributes[r[i]],n)}};return t},A=Symbol(`defuss-morph.from-dom`),ae=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),oe=e=>ae.has(e.name.toLowerCase())?!0:e.value;function j(e,t,n){return new n().parseFromString(e,t)}function M(e,t){let n=j(e,`image/svg+xml`,t);return n.documentElement?n.documentElement.nodeName.toLowerCase()===`svg`:!1}function N(e,t){return j(e,`text/html`,t).documentElement.querySelectorAll(`*`).length>2}var P=(e,t)=>e.indexOf(`<`)>-1&&e.indexOf(`>`)>-1&&(N(e,t)||M(e,t));function F(e,t,n){let r=n||j(e,I(e,t),t);return r.body?Array.from(r.body.childNodes):r.documentElement?[r.documentElement]:[]}function I(e,t){return M(e,t)?`image/svg+xml`:`text/html`}function L(e){if(e.nodeType===3)return e.textContent||``;if(e.nodeType===1){let t=e,n={};for(let e=0;e<t.attributes.length;e++){let r=t.attributes[e];n[r.name]=oe(r)}let r=[];for(let e=0;e<t.childNodes.length;e++){let n=L(t.childNodes[e]);r.push(n)}return{type:t.tagName.toLowerCase(),attributes:{...n,[A]:!0},children:r}}return``}function R(e,t){let n=new t().parseFromString(e,`text/html`),r=[];for(let e=0;e<n.body.childNodes.length;e++){let t=L(n.body.childNodes[e]);t!==``&&r.push(t)}return r}var z=(e,t)=>{if(e===t)return!0;if(e.nodeType!==t.nodeType)return!1;if(e.nodeType===1){let n=e,r=t;if(n.tagName!==r.tagName)return!1;let i=n.attributes,a=r.attributes;if(i.length!==a.length)return!1;for(let e=0;e<i.length;e++){let t=i[e],n=r.getAttribute(t.name);if(t.value!==n)return!1}}return e.nodeType!==3||e.textContent===t.textContent};function se(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function B(e){return!!(e&&typeof e==`object`&&`type`in e)}function ce(e,t=!1){if(e==null||se(e)||B(e)||t&&e&&typeof e==`object`&&`attributes`in e)return e}function le(e,t=!1){let n=[],r=e=>{if(Array.isArray(e)){e.forEach(r);return}let i=ce(e,t);if(i!==void 0){if(B(i)&&(i.type===`fragment`||i.type===`Fragment`)){(Array.isArray(i.children)?i.children:[]).forEach(r);return}i!=null&&typeof i!=`boolean`&&n.push(i)}};r(e);let i=[],a=null,o=()=>{a!==null&&a.length>0&&i.push(a),a=null};for(let e of n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){a=(a??``)+String(e);continue}o(),i.push(e)}return o(),i}function V(e){if(!e||typeof e!=`object`)return null;let t=e.attributes?.key;if(typeof t==`string`||typeof t==`number`)return`k:${String(t)}`;let n=e.attributes?.id;return typeof n==`string`&&n.length>0?`id:${n}`:null}function ue(e){return e&&typeof e==`object`?`<${typeof e.type==`string`?e.type:`component`}>`:`plain text`}function de(e){if(e.nodeType!==1)return[];let t=e,n=[],r=t._defussKey;r&&n.push(`k:${r}`);let i=t.getAttribute(`key`);i&&n.push(`k:${i}`);let a=t.id;return a&&n.push(`id:${a}`),n}function fe(e,t){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return e.nodeType===3;if(t&&typeof t==`object`){if(e.nodeType!==1)return!1;let n=e.tagName.toLowerCase(),r=typeof t.type==`string`?t.type.toLowerCase():``;return!(!r||n!==r)}return!1}function H(e,t){let n=k(t.window.document);if(e==null)return;if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return[t.window.document.createTextNode(String(e))];let r=n.createElementOrElements(e);return r?(Array.isArray(r)?r:[r]).filter(Boolean):void 0}function pe(e,t,n){let r=e.tagName.toLowerCase();return Object.hasOwn(n.attributes??{},t)?!1:r===`input`?t===`value`||t===`checked`:r===`textarea`||r===`select`?t===`value`:!1}function me(e,t,n,r=!1){let i=k(n.window.document),a=r?[]:Array.from(e.attributes),o=t.attributes??{};for(let n of a){let{name:r}=n;if(r!==`key`&&!r.startsWith(`on`)&&(r!==`class`||!Object.hasOwn(o,`class`)&&!Object.hasOwn(o,`className`))&&!Object.hasOwn(o,r)){if(pe(e,r,t))continue;e.removeAttribute(r)}}if(!(r||o[A])){let t=y(e),n=new Set;for(let e of Object.keys(o)){let t=d(e);if(t){let e=t.capture?`capture`:`bubble`;n.add(`${t.eventType}:${e}`)}}for(let r of t)if(!n.has(r)){let[t,n]=r.split(`:`);b(e,t,n)}}i.setAttributes(t,e),O(e);let s=t.attributes?.dangerouslySetInnerHTML;if(s&&typeof s==`object`&&typeof s.__html==`string`){e.innerHTML=s.__html;return}if(e.tagName.toLowerCase()===`textarea`){let t=Object.hasOwn(o,`value`);if(e.ownerDocument?.activeElement===e&&!t)return}r&&(t.children===void 0||t.children.length===0&&o[A])||ye(e,t.children??[],n)}function he(e,t,n,r=!1){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`){let r=String(t);if(e.nodeType===3)return e.nodeValue!==r&&(e.nodeValue=r),e;let i=n.window.document.createTextNode(r);return e.parentNode?.replaceChild(i,e),i}if(t&&typeof t==`object`){let i=typeof t.type==`string`?t.type:null;if(!i)return e;if(e.nodeType!==1){let r=H(t,n),i=Array.isArray(r)?r[0]:r;return i?(e.parentNode?.replaceChild(i,e),O(i),i):null}let a=e;if(a.tagName.toLowerCase()!==i.toLowerCase()){let e=H(t,n),r=Array.isArray(e)?e[0]:e;return r?(a.parentNode?.replaceChild(r,a),O(r),r):null}return me(a,t,n,r),a}return e.parentNode?.removeChild(e),null}var U=new WeakSet,W=new Map,G=(e,t)=>t||{window:e?.ownerDocument?.defaultView??globalThis};function ge(e){let t=e.parentElement;for(;t;){if(U.has(t))return!0;t=t.parentElement}return!1}function _e(){if(W.size===0)return;let e=[...W.entries()];W.clear();for(let[t,{vdom:n,globals:r,mode:i}]of e)t.isConnected&&K(t,n,r,i)}function K(e,t,n,r=`replace`){let i=G(e,n);if(U.has(e)||ge(e)){W.set(e,{vdom:t,globals:i,mode:r});return}U.add(e);try{ye(e,t,i,r)}finally{U.delete(e)}_e()}function ve(e,t,n){let r=new Map;for(let t of Array.from(e.childNodes))for(let e of de(t))r.has(e)||r.set(e,t);for(let i of t){if(typeof i==`string`&&i.trim()===``)continue;let t=V(i);if(!t)throw Error(`morph diff: patch items must be elements with a key or id attribute (got ${ue(i)})`);let a=r.get(t);if(a){he(a,i&&typeof i==`object`&&!i.type?{...i,type:a.tagName.toLowerCase()}:i,n,!0);continue}if(!i?.type)throw Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id "${t}"`);let o=H(i,n)??[];for(let t of o)e.appendChild(t),O(t)}}function ye(e,t,n,r=`replace`){let i=e,a=i.tagName.includes(`-`),o=i.shadowRoot&&!a?i.shadowRoot:e,s=le(t,r===`diff`);if(r===`diff`){ve(o,s,n);return}let c=Array.from(o.childNodes),l=new Map,u=new WeakMap,d=[];for(let e of c){let t=de(e);if(t.length>0){u.set(e,t);let n=!1;for(let r of t)l.has(r)||(l.set(r,e),n=!0);n||d.push(e)}else d.push(e)}let ee=e=>{let t=u.get(e)??[];for(let e of t)l.delete(e)},f=e=>{for(let t=0;t<d.length;t++){let n=d[t];if(fe(n,e))return d.splice(t,1),n}},p=0;for(let e of s){let t=V(e),r;t?(r=l.get(t),r&&ee(r)):r=f(e);let i=o.childNodes[p]??null;if(r){r!==i&&o.insertBefore(r,i),he(r,e,n),p++;continue}let a=H(e,n);if(!a||Array.isArray(a)&&a.length===0)continue;let s=Array.isArray(a)?a:[a];for(let e of s)o.insertBefore(e,i),O(e),p++}let m=new Set;for(let e of d)m.add(e);for(let e of l.values())m.add(e);for(let e of m)e.parentNode===o&&(e.nodeType===1&&_(e),o.removeChild(e))}function be(e,t,n){let r=G(e,n);for(;e.firstChild;)e.removeChild(e.firstChild);let i=k(r.window.document).createElementOrElements(t);if(Array.isArray(i))for(let t of i)t&&(e.appendChild(t),O(t));else i&&(e.appendChild(i),O(i))}var xe=e=>{if(e&&!e.getElementById(`defuss-shake`)){let t=e.createElement(`style`);t.id=`defuss-shake`,t.textContent=`@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}`,e.head.appendChild(t)}},q=(e,t,n=`ease-in-out`)=>{let r=`transform ${t}ms ${n}, opacity ${t}ms ${n}`;return{fade:{enter:{opacity:`0`,transition:r,transform:`translate3d(0,0,0)`},enterActive:{opacity:`1`},exit:{opacity:`1`,transition:r,transform:`translate3d(0,0,0)`},exitActive:{opacity:`0`}},"slide-left":{enter:{transform:`translate3d(100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`}},"slide-right":{enter:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(100%,0,0)`,opacity:`0.5`}},shake:(xe(typeof document<`u`?document:void 0),{enter:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},exitActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`}})}[e]||{enter:{},enterActive:{},exit:{},exitActive:{}}},J=(e,t)=>Object.entries(t).forEach(([t,n])=>e.style.setProperty(t,String(n))),Y={type:`fade`,duration:300,easing:`ease-in-out`,delay:0,target:`parent`},X=e=>new Promise(t=>setTimeout(t,e)),Se=async(e,t,n,r)=>{let i=e.style.cssText,a=e.cloneNode(!0),o=e.ownerDocument;try{let i=e.getBoundingClientRect();a.style.cssText=`position:absolute;top:${i.top}px;left:${i.left}px;width:${i.width}px;height:${i.height}px;opacity:1;transition:opacity ${n}ms ${r};z-index:1000;`,e.style.opacity=`0`,e.style.transition=`opacity ${n}ms ${r}`,o.body.appendChild(a),await t(),e.offsetHeight,a.style.opacity=`0`,e.style.opacity=`1`,await X(n),o.body.removeChild(a)}catch(e){throw a.parentElement&&o.body.removeChild(a),e}finally{e.style.cssText=i}},Z=async(e,t,n={})=>{let{type:r=`fade`,duration:i=300,easing:a=`ease-in-out`,delay:o=0}={...Y,...n};if(r===`none`){await t();return}if(o>0&&await X(o),r===`fade`){await Se(e,t,i,a);return}let s=n.styles||q(r,i,a),c=e.style.transition,l=e.style.animation;try{r===`shake`&&(e.style.animation=`none`,e.offsetHeight),J(e,s.exit),e.offsetHeight,J(e,s.exitActive),await X(i),await t(),J(e,s.enter),e.offsetHeight,J(e,s.enterActive),await X(i),e.style.transition=c,e.style.animation=l}catch(t){throw e.style.transition=c,e.style.animation=l,t}},Q=new WeakMap,$=(e,t,n={})=>{let r=G(e),i=r.window,a=n.diff?`diff`:`replace`,o=t=>K(e,typeof t==`string`?R(t,i.DOMParser):t,r,a),s=n.transition;if(s&&s.type!==`none`){let n={...Y,...s},r=n.target===`self`?e:e.parentElement;if(!r){o(t);return}let i={content:t};return Q.set(e,i),Z(r,async()=>{Q.get(e)===i&&o(i.content)},n).finally(()=>{Q.get(e)===i&&Q.delete(e)})}let c=Q.get(e);c&&(c.content=t),o(t)};if(typeof globalThis<`u`){let e=globalThis,t=e.df$;(t===null||typeof t!=`object`&&typeof t!=`function`)&&(e.df$={}),Object.assign(e.df$,i)}export{K as updateDomWithVdom,G as resolveGlobals,be as replaceDomWithVdom,F as renderMarkup,b as removeDelegatedEventByKey,ie as removeDelegatedEvent,h as registerDelegatedEvent,a as queueCallback,Z as performTransition,d as parseEventPropName,j as parseDOM,D as observeUnmount,E as nsMap,$ as morph,M as isSVG,P as isMarkup,N as isHTML,R as htmlStringToVNodes,O as handleLifecycleEventsForOnMount,q as getTransitionStyles,k as getRenderer,v as getRegisteredEventTypes,y as getRegisteredEventKeys,I as getMimeType,L as domNodeToVNode,_ as clearDelegatedEventsDeep,g as clearDelegatedEvents,z as areDomNodesEqual,J as applyStyles,C as XMLNS_ATTRIBUTE_NAME,S as XLINK_ATTRIBUTE_NAME,w as REF_ATTRIBUTE_NAME,A as FROM_DOM_MARKER,Y as DEFAULT_TRANSITION_CONFIG,T as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,x as CLASS_ATTRIBUTE_NAME,o as CAPTURE_ONLY_EVENTS};
2
2
  //# sourceMappingURL=all.min.js.map
@@ -1 +1 @@
1
- {"mappings":"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","names":["__defProp","__returnValue","v","__exportSetter","name","newValue","__export","all","target","exports_src","updateDomWithVdom","resolveGlobals","replaceDomWithVdom","renderMarkup","removeDelegatedEventByKey","removeDelegatedEvent","registerDelegatedEvent","queueCallback","performTransition","parseEventPropName","parseDOM","observeUnmount","nsMap","morph2","isSVG","isMarkup","isHTML","htmlStringToVNodes","handleLifecycleEventsForOnMount","getTransitionStyles","getRenderer","getRegisteredEventTypes","getRegisteredEventKeys","getMimeType","domNodeToVNode","clearDelegatedEventsDeep","clearDelegatedEvents","areDomNodesEqual","applyStyles","XMLNS_ATTRIBUTE_NAME","XLINK_ATTRIBUTE_NAME","REF_ATTRIBUTE_NAME","FROM_DOM_MARKER","DEFAULT_TRANSITION_CONFIG","DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE","CLASS_ATTRIBUTE_NAME","CAPTURE_ONLY_EVENTS","args","cb","elementHandlerMap","bubbleDispatched","captureDispatched","activeDispatches","propName","raw","lower","isCapture","eventType","getOrCreateElementHandlers","existing","el","created","getEventPath","composedPath","event","path","node","maybeNode","doc","win","createPhaseHandler","dispatched","phase","t","ordered","handlersByEvent","entry","targets","dispatchKey","activeSet","handler","installedRootListeners","ensureRootListener","installed","root","captureKey","bubbleKey","getEventRoot","element","capture","options","byEvent","isEntryEmpty","walker","keys","domNode","onUnmount","parentNode","observer","mutation","mutationsList","removedNode","newParent","newEl","renderer","domElement","parentElement","type","virtualNode","parentDomElement","document2","vNode","text","children","virtualChildren","virtualChild","value","ref","parsed","existingUnmount","val","nsEndIndex","ns","attrName","namespace","styleObj","prop","attrNames","HTML_BOOLEAN_ATTRIBUTES","domAttributeToVNodeValue","attr","Parser","input","markup","attributes","i","childVNode","html","vNodes","vnode","oldNode","newNode","oldElement","newElement","oldAttrs","newAttrs","oldAttr","newAttrValue","isTextLike","isVNode","toValidChild","child","lenient","normalizeChildren","pushChild","valid","fused","buffer","flush","getVNodeMatchKey","key","id","describePatchItem","getDomMatchKeys","internalKey","attrKey","areNodeAndChildMatching","oldTag","newTag","createDomFromChild","globals","shouldPreserveFormStateAttribute","tag","patchElementInPlace","existingAttrs","mergeAttributes","nextAttrs","registeredKeys","nextEventKeys","d","isControlled","morphDomDirect","morphNode","next","newType","first","renderingNodes","pendingMorphs","isAncestorRendering","current","flushPendingMorphs","snapshot","vdom","mode","resolvedGlobals","newVDOM","morphDiff","keyedPool","targetRoot","k","item","patchItems","match","isCustomElement","nextChildren","nodeKeys","unkeyedPool","addedToKeyedPool","consumeKeyedNode","takeUnkeyedMatch","candidate","domIndex","anchor","nodes","remaining","newDom","injectShakeKeyframes","style","duration","easing","styles","wait","r","ms","performCrossfade","originalStyle","rect","updateCallback","error","config","delay","originalTransition","originalAnimation","inflightTransitions","apply","content","transition","transitionTarget","newContent","slot2","slot","g"],"sources":["all.js"],"version":3,"sourcesContent":["var __defProp = Object.defineProperty;\nvar __returnValue = (v) => v;\nfunction __exportSetter(name, newValue) {\n this[name] = __returnValue.bind(null, newValue);\n}\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: __exportSetter.bind(all, name)\n });\n};\n\n// src/index.ts\nvar exports_src = {};\n__export(exports_src, {\n updateDomWithVdom: () => updateDomWithVdom,\n resolveGlobals: () => resolveGlobals,\n replaceDomWithVdom: () => replaceDomWithVdom,\n renderMarkup: () => renderMarkup,\n removeDelegatedEventByKey: () => removeDelegatedEventByKey,\n removeDelegatedEvent: () => removeDelegatedEvent,\n registerDelegatedEvent: () => registerDelegatedEvent,\n queueCallback: () => queueCallback,\n performTransition: () => performTransition,\n parseEventPropName: () => parseEventPropName,\n parseDOM: () => parseDOM,\n observeUnmount: () => observeUnmount,\n nsMap: () => nsMap,\n morph: () => morph2,\n isSVG: () => isSVG,\n isMarkup: () => isMarkup,\n isHTML: () => isHTML,\n htmlStringToVNodes: () => htmlStringToVNodes,\n handleLifecycleEventsForOnMount: () => handleLifecycleEventsForOnMount,\n getTransitionStyles: () => getTransitionStyles,\n getRenderer: () => getRenderer,\n getRegisteredEventTypes: () => getRegisteredEventTypes,\n getRegisteredEventKeys: () => getRegisteredEventKeys,\n getMimeType: () => getMimeType,\n domNodeToVNode: () => domNodeToVNode,\n clearDelegatedEventsDeep: () => clearDelegatedEventsDeep,\n clearDelegatedEvents: () => clearDelegatedEvents,\n areDomNodesEqual: () => areDomNodesEqual,\n applyStyles: () => applyStyles,\n XMLNS_ATTRIBUTE_NAME: () => XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME: () => XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME: () => REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER: () => FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG: () => DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE: () => DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n CLASS_ATTRIBUTE_NAME: () => CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS: () => CAPTURE_ONLY_EVENTS\n});\n\n// src/queue.ts\nvar queueCallback = (cb) => (...args) => queueMicrotask(() => cb(...args));\n\n// src/delegated-events.ts\nvar CAPTURE_ONLY_EVENTS = new Set([\n \"focus\",\n \"blur\",\n \"scroll\",\n \"mouseenter\",\n \"mouseleave\"\n]);\nvar elementHandlerMap = new WeakMap;\nvar bubbleDispatched = new WeakMap;\nvar captureDispatched = new WeakMap;\nvar activeDispatches = new WeakMap;\nvar parseEventPropName = (propName) => {\n if (!propName.startsWith(\"on\"))\n return null;\n const raw = propName.slice(2);\n if (!raw)\n return null;\n const lower = raw.toLowerCase();\n const isCapture = lower.endsWith(\"capture\");\n const eventType = isCapture ? lower.slice(0, -\"capture\".length) : lower;\n if (!eventType)\n return null;\n return { eventType, capture: isCapture };\n};\nvar getOrCreateElementHandlers = (el) => {\n const existing = elementHandlerMap.get(el);\n if (existing)\n return existing;\n const created = new Map;\n elementHandlerMap.set(el, created);\n return created;\n};\nvar getEventPath = (event) => {\n const composedPath = event.composedPath?.();\n if (composedPath && composedPath.length > 0)\n return composedPath;\n const path = [];\n let node = event.target;\n while (node) {\n path.push(node);\n const maybeNode = node;\n if (typeof maybeNode === \"object\" && maybeNode && \"parentNode\" in maybeNode) {\n node = maybeNode.parentNode;\n continue;\n }\n break;\n }\n const doc = event.target?.ownerDocument;\n if (doc && path[path.length - 1] !== doc)\n path.push(doc);\n const win = doc?.defaultView;\n if (win && path[path.length - 1] !== win)\n path.push(win);\n return path;\n};\nvar createPhaseHandler = (eventType, phase) => {\n const dispatched = phase === \"capture\" ? captureDispatched : bubbleDispatched;\n return (event) => {\n const path = getEventPath(event).filter((t) => typeof t === \"object\" && t !== null && t.nodeType === 1);\n const ordered = phase === \"capture\" ? [...path].reverse() : path;\n for (const target of ordered) {\n const handlersByEvent = elementHandlerMap.get(target);\n if (!handlersByEvent)\n continue;\n const entry = handlersByEvent.get(eventType);\n if (!entry)\n continue;\n let targets = dispatched.get(event);\n if (targets?.has(target))\n continue;\n if (!targets) {\n targets = new WeakSet;\n dispatched.set(event, targets);\n }\n targets.add(target);\n const dispatchKey = `${eventType}:${phase}`;\n let activeSet = activeDispatches.get(target);\n if (activeSet?.has(dispatchKey))\n continue;\n if (!activeSet) {\n activeSet = new Set;\n activeDispatches.set(target, activeSet);\n }\n activeSet.add(dispatchKey);\n try {\n if (phase === \"capture\") {\n if (entry.capture) {\n entry.capture.call(target, event);\n if (event.cancelBubble)\n return;\n }\n if (entry.captureSet) {\n for (const handler of entry.captureSet) {\n handler.call(target, event);\n if (event.cancelBubble)\n return;\n }\n }\n } else {\n if (entry.bubble) {\n entry.bubble.call(target, event);\n if (event.cancelBubble)\n return;\n }\n if (entry.bubbleSet) {\n for (const handler of entry.bubbleSet) {\n handler.call(target, event);\n if (event.cancelBubble)\n return;\n }\n }\n }\n } finally {\n activeSet.delete(dispatchKey);\n }\n }\n };\n};\nvar installedRootListeners = new WeakMap;\nvar ensureRootListener = (root, eventType) => {\n const installed = installedRootListeners.get(root) ?? new Set;\n installedRootListeners.set(root, installed);\n const captureKey = `${eventType}:capture`;\n if (!installed.has(captureKey)) {\n root.addEventListener(eventType, createPhaseHandler(eventType, \"capture\"), true);\n installed.add(captureKey);\n }\n const bubbleKey = `${eventType}:bubble`;\n if (!installed.has(bubbleKey)) {\n root.addEventListener(eventType, createPhaseHandler(eventType, \"bubble\"), false);\n installed.add(bubbleKey);\n }\n};\nvar getEventRoot = (element) => {\n const root = element.getRootNode();\n if (root && root.nodeType === 9) {\n return root;\n }\n if (root && root.nodeType === 11 && \"host\" in root) {\n return root;\n }\n return null;\n};\nvar registerDelegatedEvent = (element, eventType, handler, options = {}) => {\n const root = getEventRoot(element);\n const capture = options.capture || CAPTURE_ONLY_EVENTS.has(eventType);\n if (root) {\n ensureRootListener(root, eventType);\n } else if (element.ownerDocument) {\n ensureRootListener(element.ownerDocument, eventType);\n } else {\n element.addEventListener(eventType, handler, capture);\n }\n const byEvent = getOrCreateElementHandlers(element);\n const entry = byEvent.get(eventType) ?? {};\n byEvent.set(eventType, entry);\n if (options.multi) {\n if (capture) {\n if (!entry.captureSet)\n entry.captureSet = new Set;\n entry.captureSet.add(handler);\n } else {\n if (!entry.bubbleSet)\n entry.bubbleSet = new Set;\n entry.bubbleSet.add(handler);\n }\n } else {\n if (capture) {\n entry.capture = handler;\n } else {\n entry.bubble = handler;\n }\n }\n};\nvar isEntryEmpty = (entry) => !entry.capture && !entry.bubble && (!entry.captureSet || entry.captureSet.size === 0) && (!entry.bubbleSet || entry.bubbleSet.size === 0);\nvar removeDelegatedEvent = (target, eventType, handler, _options = {}) => {\n const byEvent = elementHandlerMap.get(target);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n if (handler) {\n if (entry.captureSet) {\n entry.captureSet.delete(handler);\n }\n if (entry.bubbleSet) {\n entry.bubbleSet.delete(handler);\n }\n if (entry.capture === handler) {\n entry.capture = undefined;\n }\n if (entry.bubble === handler) {\n entry.bubble = undefined;\n }\n target.removeEventListener(eventType, handler, true);\n target.removeEventListener(eventType, handler, false);\n } else {\n entry.capture = undefined;\n entry.bubble = undefined;\n entry.captureSet = undefined;\n entry.bubbleSet = undefined;\n }\n if (isEntryEmpty(entry)) {\n byEvent.delete(eventType);\n }\n};\nvar clearDelegatedEvents = (target) => {\n const byEvent = elementHandlerMap.get(target);\n if (!byEvent)\n return;\n byEvent.clear();\n};\nvar clearDelegatedEventsDeep = (root) => {\n clearDelegatedEvents(root);\n const doc = root.ownerDocument;\n if (!doc)\n return;\n const walker = doc.createTreeWalker(root, 1);\n let node = walker.nextNode();\n while (node) {\n clearDelegatedEvents(node);\n node = walker.nextNode();\n }\n};\nvar getRegisteredEventTypes = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n return new Set(byEvent.keys());\n};\nvar getRegisteredEventKeys = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n const keys = new Set;\n for (const [eventType, entry] of byEvent) {\n if (entry.bubble || entry.bubbleSet?.size)\n keys.add(`${eventType}:bubble`);\n if (entry.capture || entry.captureSet?.size)\n keys.add(`${eventType}:capture`);\n }\n return keys;\n};\nvar removeDelegatedEventByKey = (element, eventType, phase) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n if (phase === \"capture\") {\n entry.capture = undefined;\n entry.captureSet = undefined;\n } else {\n entry.bubble = undefined;\n entry.bubbleSet = undefined;\n }\n if (isEntryEmpty(entry))\n byEvent.delete(eventType);\n};\n\n// src/renderer.ts\nvar CLASS_ATTRIBUTE_NAME = \"class\";\nvar XLINK_ATTRIBUTE_NAME = \"xlink\";\nvar XMLNS_ATTRIBUTE_NAME = \"xmlns\";\nvar REF_ATTRIBUTE_NAME = \"ref\";\nvar DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE = \"dangerouslySetInnerHTML\";\nvar nsMap = {\n [XMLNS_ATTRIBUTE_NAME]: \"http://www.w3.org/2000/xmlns/\",\n [XLINK_ATTRIBUTE_NAME]: \"http://www.w3.org/1999/xlink\",\n svg: \"http://www.w3.org/2000/svg\"\n};\nvar observeUnmount = (domNode, onUnmount) => {\n if (!domNode || typeof onUnmount !== \"function\") {\n throw new Error(\"Invalid arguments. Ensure domNode and onUnmount are valid.\");\n }\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n let parentNode = domNode.parentNode;\n if (!parentNode) {\n throw new Error(\"The provided domNode does not have a parentNode.\");\n }\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.removedNodes.length > 0) {\n for (const removedNode of mutation.removedNodes) {\n if (removedNode === domNode) {\n queueMicrotask(() => {\n if (!domNode.isConnected) {\n onUnmount();\n observer.disconnect();\n return;\n }\n const newParent = domNode.parentNode;\n if (newParent && newParent !== parentNode) {\n parentNode = newParent;\n observer.disconnect();\n observer.observe(parentNode, { childList: true });\n }\n });\n return;\n }\n }\n }\n }\n });\n observer.observe(parentNode, { childList: true });\n};\nvar handleLifecycleEventsForOnMount = (newEl) => {\n if (typeof newEl?.$onMount === \"function\") {\n newEl.$onMount(newEl);\n newEl.$onMount = null;\n }\n if (typeof newEl?.$onUnmount === \"function\") {\n observeUnmount(newEl, newEl.$onUnmount);\n }\n};\nvar getRenderer = (document2) => {\n const renderer = {\n hasElNamespace: (domElement) => domElement.namespaceURI === nsMap.svg,\n hasSvgNamespace: (parentElement, type) => renderer.hasElNamespace(parentElement) && type !== \"STYLE\" && type !== \"SCRIPT\",\n createElementOrElements: (virtualNode, parentDomElement) => {\n if (Array.isArray(virtualNode)) {\n return renderer.createChildElements(virtualNode, parentDomElement);\n }\n if (typeof virtualNode !== \"undefined\") {\n return renderer.createElement(virtualNode, parentDomElement);\n }\n return renderer.createTextNode(\"\", parentDomElement);\n },\n createElement: (virtualNode, parentDomElement) => {\n let newEl;\n try {\n if (typeof virtualNode === \"function\" && virtualNode.constructor.name === \"AsyncFunction\") {\n newEl = document2.createElement(\"div\");\n } else if (typeof virtualNode === \"object\" && virtualNode !== null && \"type\" in virtualNode) {\n const vNode = virtualNode;\n if (typeof vNode.type === \"function\") {\n newEl = document2.createElement(\"div\");\n newEl.innerText = `FATAL ERROR: ${vNode.type._error}`;\n } else if (typeof vNode.type === \"string\" && vNode.type.toUpperCase() === \"SVG\" || parentDomElement && renderer.hasSvgNamespace(parentDomElement, typeof vNode.type === \"string\" ? vNode.type.toUpperCase() : \"\")) {\n newEl = document2.createElementNS(nsMap.svg, vNode.type);\n } else {\n newEl = document2.createElement(vNode.type);\n }\n if (vNode.attributes) {\n renderer.setAttributes(vNode, newEl);\n if (vNode.attributes.dangerouslySetInnerHTML) {\n newEl.innerHTML = vNode.attributes.dangerouslySetInnerHTML.__html;\n }\n }\n if (vNode.children && !vNode.attributes?.dangerouslySetInnerHTML) {\n renderer.createChildElements(vNode.children, newEl);\n }\n } else {\n if (typeof virtualNode === \"string\" || typeof virtualNode === \"number\") {\n newEl = document2.createElement(String(virtualNode));\n }\n }\n if (newEl && parentDomElement) {\n parentDomElement.appendChild(newEl);\n handleLifecycleEventsForOnMount(newEl);\n }\n } catch (e) {\n console.error(\"Fatal error! Error happend while rendering the VDOM!\", e, virtualNode);\n throw e;\n }\n return newEl;\n },\n createTextNode: (text, domElement) => {\n const node = document2.createTextNode(text.toString());\n if (domElement) {\n domElement.appendChild(node);\n }\n return node;\n },\n createChildElements: (virtualChildren, domElement) => {\n const children = [];\n for (let i = 0;i < virtualChildren.length; i++) {\n const virtualChild = virtualChildren[i];\n if (typeof virtualChild === \"boolean\") {\n continue;\n }\n if (virtualChild === null || typeof virtualChild !== \"object\" && typeof virtualChild !== \"function\") {\n children.push(renderer.createTextNode((typeof virtualChild === \"undefined\" || virtualChild === null ? \"\" : virtualChild).toString(), domElement));\n } else {\n children.push(renderer.createElement(virtualChild, domElement));\n }\n }\n return children;\n },\n setAttribute: (name, value, domElement) => {\n if (typeof value === \"undefined\")\n return;\n if (name === DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE)\n return;\n if (name === \"key\") {\n domElement._defussKey = String(value);\n return;\n }\n if (name === REF_ATTRIBUTE_NAME && typeof value !== \"function\") {\n const ref = value;\n ref.current = domElement;\n domElement._defussRef = value;\n domElement.$onUnmount = queueCallback(() => {});\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n } else {\n queueMicrotask(() => {\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n }\n });\n }\n return;\n }\n const parsed = parseEventPropName(name);\n if (parsed && typeof value === \"function\") {\n const { eventType, capture } = parsed;\n if (eventType === \"mount\") {\n domElement.$onMount = queueCallback(value);\n return;\n }\n if (eventType === \"unmount\") {\n if (domElement.$onUnmount) {\n const existingUnmount = domElement.$onUnmount;\n domElement.$onUnmount = () => {\n existingUnmount();\n value();\n };\n } else {\n domElement.$onUnmount = queueCallback(value);\n }\n return;\n }\n registerDelegatedEvent(domElement, eventType, value, { capture });\n return;\n }\n if (name === \"className\") {\n name = CLASS_ATTRIBUTE_NAME;\n }\n if (name === CLASS_ATTRIBUTE_NAME && Array.isArray(value)) {\n value = value.filter((val) => !!val).join(\" \");\n }\n const nsEndIndex = name.match(/[A-Z]/)?.index;\n if (renderer.hasElNamespace(domElement) && nsEndIndex) {\n const ns = name.substring(0, nsEndIndex).toLowerCase();\n const attrName = name.substring(nsEndIndex, name.length).toLowerCase();\n const namespace = nsMap[ns] || null;\n domElement.setAttributeNS(namespace, ns === XLINK_ATTRIBUTE_NAME || ns === XMLNS_ATTRIBUTE_NAME ? `${ns}:${attrName}` : name, String(value));\n } else if (name === \"style\" && typeof value !== \"string\") {\n const styleObj = value;\n for (const prop of Object.keys(styleObj)) {\n domElement.style[prop] = String(styleObj[prop]);\n }\n } else if (typeof value === \"boolean\") {\n domElement[name] = value;\n if (value) {\n domElement.setAttribute(name, \"\");\n } else {\n domElement.removeAttribute(name);\n }\n } else if ((name === \"value\" || name === \"checked\" || name === \"selectedIndex\") && (domElement.nodeName === \"INPUT\" || domElement.nodeName === \"TEXTAREA\" || domElement.nodeName === \"SELECT\")) {\n domElement[name] = value;\n if (name === \"checked\") {\n if (value) {\n domElement.setAttribute(\"checked\", \"\");\n } else {\n domElement.removeAttribute(\"checked\");\n }\n } else if (name === \"value\") {\n domElement.setAttribute(\"value\", String(value));\n }\n } else {\n domElement.setAttribute(name, String(value));\n }\n },\n setAttributes: (virtualNode, domElement) => {\n const attrNames = Object.keys(virtualNode.attributes ?? {});\n for (let i = 0;i < attrNames.length; i++) {\n renderer.setAttribute(attrNames[i], virtualNode.attributes[attrNames[i]], domElement);\n }\n }\n };\n return renderer;\n};\n\n// src/html.ts\nvar FROM_DOM_MARKER = Symbol(\"defuss-morph.from-dom\");\nvar HTML_BOOLEAN_ATTRIBUTES = new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\"\n]);\nvar domAttributeToVNodeValue = (attr) => HTML_BOOLEAN_ATTRIBUTES.has(attr.name.toLowerCase()) ? true : attr.value;\nfunction parseDOM(input, type, Parser) {\n return new Parser().parseFromString(input, type);\n}\nfunction isSVG(input, Parser) {\n const doc = parseDOM(input, \"image/svg+xml\", Parser);\n if (!doc.documentElement)\n return false;\n return doc.documentElement.nodeName.toLowerCase() === \"svg\";\n}\nfunction isHTML(input, Parser) {\n const doc = parseDOM(input, \"text/html\", Parser);\n return doc.documentElement.querySelectorAll(\"*\").length > 2;\n}\nvar isMarkup = (input, Parser) => input.indexOf(\"<\") > -1 && input.indexOf(\">\") > -1 && (isHTML(input, Parser) || isSVG(input, Parser));\nfunction renderMarkup(markup, Parser, doc) {\n const parsed = doc ? doc : parseDOM(markup, getMimeType(markup, Parser), Parser);\n if (parsed.body)\n return Array.from(parsed.body.childNodes);\n return parsed.documentElement ? [parsed.documentElement] : [];\n}\nfunction getMimeType(input, Parser) {\n if (isSVG(input, Parser)) {\n return \"image/svg+xml\";\n }\n return \"text/html\";\n}\nfunction domNodeToVNode(node) {\n if (node.nodeType === 3) {\n return node.textContent || \"\";\n }\n if (node.nodeType === 1) {\n const element = node;\n const attributes = {};\n for (let i = 0;i < element.attributes.length; i++) {\n const attr = element.attributes[i];\n attributes[attr.name] = domAttributeToVNodeValue(attr);\n }\n const children = [];\n for (let i = 0;i < element.childNodes.length; i++) {\n const childVNode = domNodeToVNode(element.childNodes[i]);\n children.push(childVNode);\n }\n return {\n type: element.tagName.toLowerCase(),\n attributes: { ...attributes, [FROM_DOM_MARKER]: true },\n children\n };\n }\n return \"\";\n}\nfunction htmlStringToVNodes(html, Parser) {\n const parser = new Parser;\n const doc = parser.parseFromString(html, \"text/html\");\n const vNodes = [];\n for (let i = 0;i < doc.body.childNodes.length; i++) {\n const vnode = domNodeToVNode(doc.body.childNodes[i]);\n if (vnode !== \"\") {\n vNodes.push(vnode);\n }\n }\n return vNodes;\n}\n\n// src/morph.ts\nvar areDomNodesEqual = (oldNode, newNode) => {\n if (oldNode === newNode)\n return true;\n if (oldNode.nodeType !== newNode.nodeType)\n return false;\n if (oldNode.nodeType === 1) {\n const oldElement = oldNode;\n const newElement = newNode;\n if (oldElement.tagName !== newElement.tagName)\n return false;\n const oldAttrs = oldElement.attributes;\n const newAttrs = newElement.attributes;\n if (oldAttrs.length !== newAttrs.length)\n return false;\n for (let i = 0;i < oldAttrs.length; i++) {\n const oldAttr = oldAttrs[i];\n const newAttrValue = newElement.getAttribute(oldAttr.name);\n if (oldAttr.value !== newAttrValue)\n return false;\n }\n }\n if (oldNode.nodeType === 3) {\n if (oldNode.textContent !== newNode.textContent)\n return false;\n }\n return true;\n};\nfunction isTextLike(value) {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction isVNode(value) {\n return Boolean(value && typeof value === \"object\" && \"type\" in value);\n}\nfunction toValidChild(child, lenient = false) {\n if (child == null)\n return child;\n if (isTextLike(child))\n return child;\n if (isVNode(child))\n return child;\n if (lenient && child && typeof child === \"object\" && \"attributes\" in child)\n return child;\n return;\n}\nfunction normalizeChildren(input, lenient = false) {\n const raw = [];\n const pushChild = (child) => {\n if (Array.isArray(child)) {\n child.forEach(pushChild);\n return;\n }\n const valid = toValidChild(child, lenient);\n if (typeof valid === \"undefined\")\n return;\n if (isVNode(valid) && (valid.type === \"fragment\" || valid.type === \"Fragment\")) {\n const nested = Array.isArray(valid.children) ? valid.children : [];\n nested.forEach(pushChild);\n return;\n }\n if (valid === null || typeof valid === \"undefined\" || typeof valid === \"boolean\")\n return;\n raw.push(valid);\n };\n pushChild(input);\n const fused = [];\n let buffer = null;\n const flush = () => {\n if (buffer !== null && buffer.length > 0)\n fused.push(buffer);\n buffer = null;\n };\n for (const child of raw) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n buffer = (buffer ?? \"\") + String(child);\n continue;\n }\n flush();\n fused.push(child);\n }\n flush();\n return fused;\n}\nfunction getVNodeMatchKey(child) {\n if (!child || typeof child !== \"object\")\n return null;\n const key = child.attributes?.key;\n if (typeof key === \"string\" || typeof key === \"number\")\n return `k:${String(key)}`;\n const id = child.attributes?.id;\n if (typeof id === \"string\" && id.length > 0)\n return `id:${id}`;\n return null;\n}\nfunction describePatchItem(child) {\n if (child && typeof child === \"object\") {\n return `<${typeof child.type === \"string\" ? child.type : \"component\"}>`;\n }\n return \"plain text\";\n}\nfunction getDomMatchKeys(node) {\n if (node.nodeType !== 1)\n return [];\n const el = node;\n const keys = [];\n const internalKey = el._defussKey;\n if (internalKey)\n keys.push(`k:${internalKey}`);\n const attrKey = el.getAttribute(\"key\");\n if (attrKey)\n keys.push(`k:${attrKey}`);\n const id = el.id;\n if (id)\n keys.push(`id:${id}`);\n return keys;\n}\nfunction areNodeAndChildMatching(domNode, child) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return domNode.nodeType === 3;\n }\n if (child && typeof child === \"object\") {\n if (domNode.nodeType !== 1)\n return false;\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = typeof child.type === \"string\" ? child.type.toLowerCase() : \"\";\n if (!newTag || oldTag !== newTag)\n return false;\n return true;\n }\n return false;\n}\nfunction createDomFromChild(child, globals) {\n const renderer = getRenderer(globals.window.document);\n if (child == null)\n return;\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return [globals.window.document.createTextNode(String(child))];\n }\n const created = renderer.createElementOrElements(child);\n if (!created)\n return;\n const nodes = Array.isArray(created) ? created : [created];\n return nodes.filter(Boolean);\n}\nfunction shouldPreserveFormStateAttribute(el, attrName, vnode) {\n const tag = el.tagName.toLowerCase();\n const hasExplicit = Object.hasOwn(vnode.attributes ?? {}, attrName);\n if (hasExplicit)\n return false;\n if (tag === \"input\")\n return attrName === \"value\" || attrName === \"checked\";\n if (tag === \"textarea\")\n return attrName === \"value\";\n if (tag === \"select\")\n return attrName === \"value\";\n return false;\n}\nfunction patchElementInPlace(el, vnode, globals, mergeAttributes = false) {\n const renderer = getRenderer(globals.window.document);\n const existingAttrs = mergeAttributes ? [] : Array.from(el.attributes);\n const nextAttrs = vnode.attributes ?? {};\n for (const attr of existingAttrs) {\n const { name } = attr;\n if (name === \"key\")\n continue;\n if (name.startsWith(\"on\"))\n continue;\n if (name === \"class\" && (Object.hasOwn(nextAttrs, \"class\") || Object.hasOwn(nextAttrs, \"className\"))) {\n continue;\n }\n if (!Object.hasOwn(nextAttrs, name)) {\n if (shouldPreserveFormStateAttribute(el, name, vnode))\n continue;\n el.removeAttribute(name);\n }\n }\n const preserveDelegatedHandlers = mergeAttributes || Boolean(nextAttrs[FROM_DOM_MARKER]);\n if (!preserveDelegatedHandlers) {\n const registeredKeys = getRegisteredEventKeys(el);\n const nextEventKeys = new Set;\n for (const propName of Object.keys(nextAttrs)) {\n const parsed = parseEventPropName(propName);\n if (parsed) {\n const phase = parsed.capture ? \"capture\" : \"bubble\";\n nextEventKeys.add(`${parsed.eventType}:${phase}`);\n }\n }\n for (const key of registeredKeys) {\n if (!nextEventKeys.has(key)) {\n const [eventType, phase] = key.split(\":\");\n removeDelegatedEventByKey(el, eventType, phase);\n }\n }\n }\n renderer.setAttributes(vnode, el);\n handleLifecycleEventsForOnMount(el);\n const d = vnode.attributes?.dangerouslySetInnerHTML;\n if (d && typeof d === \"object\" && typeof d.__html === \"string\") {\n el.innerHTML = d.__html;\n return;\n }\n const tag = el.tagName.toLowerCase();\n if (tag === \"textarea\") {\n const isControlled = Object.hasOwn(nextAttrs, \"value\");\n const isActive = el.ownerDocument?.activeElement === el;\n if (isActive && !isControlled)\n return;\n }\n if (mergeAttributes && (vnode.children === undefined || vnode.children.length === 0 && nextAttrs[FROM_DOM_MARKER]))\n return;\n morphDomDirect(el, vnode.children ?? [], globals);\n}\nfunction morphNode(domNode, child, globals, mergeAttributes = false) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n const text = String(child);\n if (domNode.nodeType === 3) {\n if (domNode.nodeValue !== text)\n domNode.nodeValue = text;\n return domNode;\n }\n const next = globals.window.document.createTextNode(text);\n domNode.parentNode?.replaceChild(next, domNode);\n return next;\n }\n if (child && typeof child === \"object\") {\n const newType = typeof child.type === \"string\" ? child.type : null;\n if (!newType)\n return domNode;\n if (domNode.nodeType !== 1) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n domNode.parentNode?.replaceChild(first, domNode);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = newType.toLowerCase();\n if (oldTag !== newTag) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n el.parentNode?.replaceChild(first, el);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n patchElementInPlace(el, child, globals, mergeAttributes);\n return el;\n }\n domNode.parentNode?.removeChild(domNode);\n return null;\n}\nvar renderingNodes = new WeakSet;\nvar pendingMorphs = new Map;\nvar resolveGlobals = (el, globals) => {\n if (globals)\n return globals;\n const win = el?.ownerDocument?.defaultView ?? globalThis;\n return { window: win };\n};\nfunction isAncestorRendering(el) {\n let current = el.parentElement;\n while (current) {\n if (renderingNodes.has(current))\n return true;\n current = current.parentElement;\n }\n return false;\n}\nfunction flushPendingMorphs() {\n if (pendingMorphs.size === 0)\n return;\n const snapshot = [...pendingMorphs.entries()];\n pendingMorphs.clear();\n for (const [el, { vdom, globals, mode }] of snapshot) {\n if (!el.isConnected)\n continue;\n updateDomWithVdom(el, vdom, globals, mode);\n }\n}\nfunction updateDomWithVdom(parentElement, newVDOM, globals, mode = \"replace\") {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n if (renderingNodes.has(parentElement) || isAncestorRendering(parentElement)) {\n pendingMorphs.set(parentElement, {\n vdom: newVDOM,\n globals: resolvedGlobals,\n mode\n });\n return;\n }\n renderingNodes.add(parentElement);\n try {\n morphDomDirect(parentElement, newVDOM, resolvedGlobals, mode);\n } finally {\n renderingNodes.delete(parentElement);\n }\n flushPendingMorphs();\n}\nfunction morphDiff(targetRoot, patchItems, globals) {\n const keyedPool = new Map;\n for (const node of Array.from(targetRoot.childNodes)) {\n for (const k of getDomMatchKeys(node)) {\n if (!keyedPool.has(k))\n keyedPool.set(k, node);\n }\n }\n for (const item of patchItems) {\n if (typeof item === \"string\" && item.trim() === \"\")\n continue;\n const key = getVNodeMatchKey(item);\n if (!key) {\n throw new Error(`morph diff: patch items must be elements with a key or id attribute (got ${describePatchItem(item)})`);\n }\n const match = keyedPool.get(key);\n if (match) {\n const patchItem = item && typeof item === \"object\" && !item.type ? { ...item, type: match.tagName.toLowerCase() } : item;\n morphNode(match, patchItem, globals, true);\n continue;\n }\n if (!item?.type) {\n throw new Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id \"${key}\"`);\n }\n const created = createDomFromChild(item, globals) ?? [];\n for (const node of created) {\n targetRoot.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n}\nfunction morphDomDirect(parentElement, newVDOM, globals, mode = \"replace\") {\n const el = parentElement;\n const isCustomElement = el.tagName.includes(\"-\");\n const targetRoot = el.shadowRoot && !isCustomElement ? el.shadowRoot : parentElement;\n const nextChildren = normalizeChildren(newVDOM, mode === \"diff\");\n if (mode === \"diff\") {\n morphDiff(targetRoot, nextChildren, globals);\n return;\n }\n const existing = Array.from(targetRoot.childNodes);\n const keyedPool = new Map;\n const nodeKeys = new WeakMap;\n const unkeyedPool = [];\n for (const node of existing) {\n const keys = getDomMatchKeys(node);\n if (keys.length > 0) {\n nodeKeys.set(node, keys);\n let addedToKeyedPool = false;\n for (const k of keys) {\n if (!keyedPool.has(k)) {\n keyedPool.set(k, node);\n addedToKeyedPool = true;\n }\n }\n if (!addedToKeyedPool) {\n unkeyedPool.push(node);\n }\n } else {\n unkeyedPool.push(node);\n }\n }\n const consumeKeyedNode = (node) => {\n const keys = nodeKeys.get(node) ?? [];\n for (const k of keys)\n keyedPool.delete(k);\n };\n const takeUnkeyedMatch = (child) => {\n for (let i = 0;i < unkeyedPool.length; i++) {\n const candidate = unkeyedPool[i];\n if (areNodeAndChildMatching(candidate, child)) {\n unkeyedPool.splice(i, 1);\n return candidate;\n }\n }\n return;\n };\n let domIndex = 0;\n for (const child of nextChildren) {\n const key = getVNodeMatchKey(child);\n let match;\n if (key) {\n match = keyedPool.get(key);\n if (match)\n consumeKeyedNode(match);\n } else {\n match = takeUnkeyedMatch(child);\n }\n const anchor = targetRoot.childNodes[domIndex] ?? null;\n if (match) {\n if (match !== anchor) {\n targetRoot.insertBefore(match, anchor);\n }\n const morphed = morphNode(match, child, globals);\n if (morphed && morphed !== match) {}\n domIndex++;\n continue;\n }\n const created = createDomFromChild(child, globals);\n if (!created || Array.isArray(created) && created.length === 0)\n continue;\n const nodes = Array.isArray(created) ? created : [created];\n for (const node of nodes) {\n targetRoot.insertBefore(node, anchor);\n handleLifecycleEventsForOnMount(node);\n domIndex++;\n }\n }\n const remaining = new Set;\n for (const node of unkeyedPool)\n remaining.add(node);\n for (const node of keyedPool.values())\n remaining.add(node);\n for (const node of remaining) {\n if (node.parentNode === targetRoot) {\n if (node.nodeType === 1) {\n clearDelegatedEventsDeep(node);\n }\n targetRoot.removeChild(node);\n }\n }\n}\nfunction replaceDomWithVdom(parentElement, newVDOM, globals) {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n const renderer = getRenderer(resolvedGlobals.window.document);\n const newDom = renderer.createElementOrElements(newVDOM);\n if (Array.isArray(newDom)) {\n for (const node of newDom) {\n if (node) {\n parentElement.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n } else if (newDom) {\n parentElement.appendChild(newDom);\n handleLifecycleEventsForOnMount(newDom);\n }\n}\n\n// src/transitions.ts\nvar injectShakeKeyframes = (doc) => {\n if (!doc)\n return;\n if (!doc.getElementById(\"defuss-shake\")) {\n const style = doc.createElement(\"style\");\n style.id = \"defuss-shake\";\n style.textContent = \"@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}\";\n doc.head.appendChild(style);\n }\n};\nvar getTransitionStyles = (type, duration, easing = \"ease-in-out\") => {\n const t = `transform ${duration}ms ${easing}, opacity ${duration}ms ${easing}`;\n const styles = {\n fade: {\n enter: { opacity: \"0\", transition: t, transform: \"translate3d(0,0,0)\" },\n enterActive: { opacity: \"1\" },\n exit: { opacity: \"1\", transition: t, transform: \"translate3d(0,0,0)\" },\n exitActive: { opacity: \"0\" }\n },\n \"slide-left\": {\n enter: {\n transform: \"translate3d(100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(-100%,0,0)\", opacity: \"0.5\" }\n },\n \"slide-right\": {\n enter: {\n transform: \"translate3d(-100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(100%,0,0)\", opacity: \"0.5\" }\n },\n shake: (() => {\n injectShakeKeyframes(typeof document !== \"undefined\" ? document : undefined);\n return {\n enter: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n enterActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n },\n exit: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n exitActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n }\n };\n })()\n };\n return styles[type] || { enter: {}, enterActive: {}, exit: {}, exitActive: {} };\n};\nvar applyStyles = (el, styles) => Object.entries(styles).forEach(([k, v]) => el.style.setProperty(k, String(v)));\nvar DEFAULT_TRANSITION_CONFIG = {\n type: \"fade\",\n duration: 300,\n easing: \"ease-in-out\",\n delay: 0,\n target: \"parent\"\n};\nvar wait = (ms) => new Promise((r) => setTimeout(r, ms));\nvar performCrossfade = async (element, updateCallback, duration, easing) => {\n const originalStyle = element.style.cssText;\n const snapshot = element.cloneNode(true);\n const doc = element.ownerDocument;\n try {\n const rect = element.getBoundingClientRect();\n snapshot.style.cssText = `position:absolute;top:${rect.top}px;left:${rect.left}px;width:${rect.width}px;height:${rect.height}px;opacity:1;transition:opacity ${duration}ms ${easing};z-index:1000;`;\n element.style.opacity = \"0\";\n element.style.transition = `opacity ${duration}ms ${easing}`;\n doc.body.appendChild(snapshot);\n await updateCallback();\n element.offsetHeight;\n snapshot.style.opacity = \"0\";\n element.style.opacity = \"1\";\n await wait(duration);\n doc.body.removeChild(snapshot);\n } catch (error) {\n if (snapshot.parentElement)\n doc.body.removeChild(snapshot);\n throw error;\n } finally {\n element.style.cssText = originalStyle;\n }\n};\nvar performTransition = async (element, updateCallback, config = {}) => {\n const {\n type = \"fade\",\n duration = 300,\n easing = \"ease-in-out\",\n delay = 0\n } = { ...DEFAULT_TRANSITION_CONFIG, ...config };\n if (type === \"none\") {\n await updateCallback();\n return;\n }\n if (delay > 0)\n await wait(delay);\n if (type === \"fade\") {\n await performCrossfade(element, updateCallback, duration, easing);\n return;\n }\n const styles = config.styles || getTransitionStyles(type, duration, easing);\n const originalTransition = element.style.transition;\n const originalAnimation = element.style.animation;\n try {\n if (type === \"shake\") {\n element.style.animation = \"none\";\n element.offsetHeight;\n }\n applyStyles(element, styles.exit);\n element.offsetHeight;\n applyStyles(element, styles.exitActive);\n await wait(duration);\n await updateCallback();\n applyStyles(element, styles.enter);\n element.offsetHeight;\n applyStyles(element, styles.enterActive);\n await wait(duration);\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n } catch (error) {\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n throw error;\n }\n};\n\n// src/index.ts\nvar inflightTransitions = new WeakMap;\nvar morph2 = (el, newContent, options = {}) => {\n const globals = resolveGlobals(el);\n const win = globals.window;\n const mode = options.diff ? \"diff\" : \"replace\";\n const apply = (content) => updateDomWithVdom(el, typeof content === \"string\" ? htmlStringToVNodes(content, win.DOMParser) : content, globals, mode);\n const transition = options.transition;\n if (transition && transition.type !== \"none\") {\n const config = { ...DEFAULT_TRANSITION_CONFIG, ...transition };\n const transitionTarget = config.target === \"self\" ? el : el.parentElement;\n if (!transitionTarget) {\n apply(newContent);\n return;\n }\n const slot2 = { content: newContent };\n inflightTransitions.set(el, slot2);\n return performTransition(transitionTarget, async () => {\n if (inflightTransitions.get(el) === slot2)\n apply(slot2.content);\n }, config).finally(() => {\n if (inflightTransitions.get(el) === slot2)\n inflightTransitions.delete(el);\n });\n }\n const slot = inflightTransitions.get(el);\n if (slot)\n slot.content = newContent;\n apply(newContent);\n};\n\n// src/global.ts\nif (typeof globalThis !== \"undefined\") {\n const g = globalThis;\n if (typeof g.df$ !== \"object\" || g.df$ === null) {\n g.df$ = {};\n }\n Object.assign(g.df$, exports_src);\n}\nexport {\n updateDomWithVdom,\n resolveGlobals,\n replaceDomWithVdom,\n renderMarkup,\n removeDelegatedEventByKey,\n removeDelegatedEvent,\n registerDelegatedEvent,\n queueCallback,\n performTransition,\n parseEventPropName,\n parseDOM,\n observeUnmount,\n nsMap,\n morph2 as morph,\n isSVG,\n isMarkup,\n isHTML,\n htmlStringToVNodes,\n handleLifecycleEventsForOnMount,\n getTransitionStyles,\n getRenderer,\n getRegisteredEventTypes,\n getRegisteredEventKeys,\n getMimeType,\n domNodeToVNode,\n clearDelegatedEventsDeep,\n clearDelegatedEvents,\n areDomNodesEqual,\n applyStyles,\n XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS\n};\n\n//# debugId=6F130A0428D5249264756E2164756E21\n//# sourceMappingURL=all.js.map\n"],"file":"all.min.js"}
1
+ {"mappings":"AAAA,IAAIA,EAAY,OAAO,eACnBC,EAAiB,GAAMC,EAC3B,SAASC,EAAe,EAAM,EAAU,CACtC,KAAKC,GAAQH,EAAc,KAAK,KAAMI,CAAQ,CAChD,CACA,IAAIC,GAAY,EAAQ,IAAQ,CAC9B,IAAK,IAAIF,KAAQG,EACfP,EAAUQ,EAAQJ,EAAM,CACtB,IAAKG,EAAIH,GACT,WAAY,GACZ,aAAc,GACd,IAAKD,EAAe,KAAKI,EAAKH,CAAI,CACpC,CAAC,CACL,EAGIK,EAAc,CAAC,EACnBH,EAASG,EAAa,CACpB,sBAAyBC,EACzB,mBAAsBC,EACtB,uBAA0BC,GAC1B,iBAAoBC,EACpB,8BAAiCC,EACjC,yBAA4BC,GAC5B,2BAA8BC,EAC9B,kBAAqBC,EACrB,sBAAyBC,EACzB,uBAA0BC,EAC1B,aAAgBC,EAChB,mBAAsBC,EACtB,UAAaC,EACb,UAAaC,EACb,UAAaC,EACb,aAAgBC,EAChB,WAAcC,EACd,uBAA0BC,EAC1B,oCAAuCC,EACvC,wBAA2BC,EAC3B,gBAAmBC,EACnB,4BAA+BC,EAC/B,2BAA8BC,EAC9B,gBAAmBC,EACnB,mBAAsBC,EACtB,6BAAgCC,EAChC,yBAA4BC,EAC5B,qBAAwBC,EACxB,gBAAmBC,EACnB,yBAA4BC,EAC5B,yBAA4BC,EAC5B,uBAA0BC,EAC1B,oBAAuBC,EACvB,8BAAiCC,EACjC,yCAA4CC,EAC5C,yBAA4BC,EAC5B,wBAA2BC,CAC7B,CAAC,EAGD,IAAI7B,EAAiB,IAAQ,GAAG8B,IAAS,mBAAqBC,EAAG,GAAGD,CAAI,CAAC,EAGrED,EAAsB,IAAI,IAAI,CAChC,QACA,OACA,SACA,aACA,YACF,CAAC,EACGG,EAAoB,IAAI,QACxBC,EAAmB,IAAI,QACvBC,EAAoB,IAAI,QACxBC,EAAmB,IAAI,QACvBjC,EAAsB,GAAa,CACrC,GAAI,CAACkC,EAAS,WAAW,IAAI,EAC3B,OAAO,KACT,IAAMC,EAAMD,EAAS,MAAM,CAAC,EAC5B,GAAI,CAACC,EACH,OAAO,KACT,IAAMC,EAAQD,EAAI,YAAY,EACxBE,EAAYD,EAAM,SAAS,SAAS,EACpCE,EAAYD,EAAYD,EAAM,MAAM,EAAG,EAAiB,EAAIA,EAGlE,OAFKE,EAEE,CAAE,YAAW,QAASD,CAAU,EAD9B,IAEX,EACIE,GAA8B,GAAO,CACvC,IAAMC,EAAWV,EAAkB,IAAIW,CAAE,EACzC,GAAID,EACF,OAAOA,EACT,IAAME,EAAU,IAAI,IAEpB,OADAZ,EAAkB,IAAIW,EAAIC,CAAO,EAC1BA,CACT,EACIC,EAAgB,GAAU,CAC5B,IAAMC,EAAeC,EAAM,eAAe,EAC1C,GAAID,GAAgBA,EAAa,OAAS,EACxC,OAAOA,EACT,IAAME,EAAO,CAAC,EACVC,EAAOF,EAAM,OACjB,KAAOE,GAAM,CACXD,EAAK,KAAKC,CAAI,EACd,IAAMC,EAAYD,EAClB,GAAI,OAAOC,GAAc,UAAYA,GAAa,eAAgBA,EAAW,CAC3E,EAAOA,EAAU,WACjB,QACF,CACA,KACF,CACA,IAAMC,EAAMJ,EAAM,QAAQ,cACtBI,GAAOH,EAAKA,EAAK,OAAS,KAAOG,GACnCH,EAAK,KAAKG,CAAG,EACf,IAAMC,EAAMD,GAAK,YAGjB,OAFIC,GAAOJ,EAAKA,EAAK,OAAS,KAAOI,GACnCJ,EAAK,KAAKI,CAAG,EACRJ,CACT,EACIK,GAAsB,EAAW,IAAU,CAC7C,IAAMC,EAAaC,IAAU,UAAYrB,EAAoBD,EAC7D,MAAQ,IAAU,CAChB,IAAMe,EAAOH,EAAaE,CAAK,CAAC,CAAC,OAAQ,GAAM,OAAOS,GAAM,YAAYA,GAAcA,EAAE,WAAa,CAAC,EAChGC,EAAUF,IAAU,UAAY,CAAC,GAAGP,CAAI,CAAC,CAAC,QAAQ,EAAIA,EAC5D,IAAK,IAAMzD,KAAUkE,EAAS,CAC5B,IAAMC,EAAkB1B,EAAkB,IAAIzC,CAAM,EACpD,GAAI,CAACmE,EACH,SACF,IAAMC,EAAQD,EAAgB,IAAIlB,CAAS,EAC3C,GAAI,CAACmB,EACH,SACF,IAAIC,EAAUN,EAAW,IAAIP,CAAK,EAClC,GAAIa,GAAS,IAAIrE,CAAM,EACrB,SACGqE,IACH,EAAU,IAAI,QACdN,EAAW,IAAIP,EAAOa,CAAO,GAE/BA,EAAQ,IAAIrE,CAAM,EAClB,IAAMsE,EAAc,GAAGrB,EAAU,GAAGe,IAChCO,EAAY3B,EAAiB,IAAI5C,CAAM,EACvC,OAAW,IAAIsE,CAAW,EAM9B,CAJKC,IACH,EAAY,IAAI,IAChB3B,EAAiB,IAAI5C,EAAQuE,CAAS,GAExCA,EAAU,IAAID,CAAW,EACzB,GAAI,CACF,GAAIN,IAAU,UAAW,CACvB,GAAII,EAAM,UACRA,EAAM,QAAQ,KAAKpE,EAAQwD,CAAK,EAC5BA,EAAM,cACR,OAEJ,GAAIY,EAAM,WACR,KAAK,IAAMI,KAAWJ,EAAM,WAE1B,GADAI,EAAQ,KAAKxE,EAAQwD,CAAK,EACtBA,EAAM,aACR,MACJ,CAEJ,KAAO,CACL,GAAIY,EAAM,SACRA,EAAM,OAAO,KAAKpE,EAAQwD,CAAK,EAC3BA,EAAM,cACR,OAEJ,GAAIY,EAAM,UACR,KAAK,IAAMI,KAAWJ,EAAM,UAE1B,GADAI,EAAQ,KAAKxE,EAAQwD,CAAK,EACtBA,EAAM,aACR,MACJ,CAEJ,CACF,QAAU,CACRe,EAAU,OAAOD,CAAW,CAC9B,CA/B0B,CAgC5B,CACF,CACF,EACIG,EAAyB,IAAI,QAC7BC,IAAsB,EAAM,IAAc,CAC5C,IAAMC,EAAYF,EAAuB,IAAIG,CAAI,GAAK,IAAI,IAC1DH,EAAuB,IAAIG,EAAMD,CAAS,EAC1C,IAAME,EAAa,GAAG5B,EAAU,UAC3B0B,EAAU,IAAIE,CAAU,IAC3BD,EAAK,iBAAiB3B,EAAWa,EAAmBb,EAAW,SAAS,EAAG,EAAI,EAC/E0B,EAAU,IAAIE,CAAU,GAE1B,IAAMC,EAAY,GAAG7B,EAAU,SAC1B0B,EAAU,IAAIG,CAAS,IAC1BF,EAAK,iBAAiB3B,EAAWa,EAAmBb,EAAW,QAAQ,EAAG,EAAK,EAC/E0B,EAAU,IAAIG,CAAS,EAE3B,EACIC,GAAgB,GAAY,CAC9B,IAAMH,EAAOI,EAAQ,YAAY,EAOjC,OANIJ,GAAQA,EAAK,WAAa,GAG1BA,GAAQA,EAAK,WAAa,IAAM,SAAUA,EACrCA,EAEF,IACT,EACIpE,GAA0B,EAAS,EAAW,EAAS,EAAU,CAAC,IAAM,CAC1E,IAAMoE,EAAOG,GAAaC,CAAO,EAC3BC,EAAUC,EAAQ,SAAW5C,EAAoB,IAAIW,CAAS,EAChE2B,EACFF,GAAmBE,EAAM3B,CAAS,EACzB+B,EAAQ,cACjBN,GAAmBM,EAAQ,cAAe/B,CAAS,EAEnD+B,EAAQ,iBAAiB/B,EAAWuB,EAASS,CAAO,EAEtD,IAAME,EAAUjC,GAA2B8B,CAAO,EAC5CZ,EAAQe,EAAQ,IAAIlC,CAAS,GAAK,CAAC,EACzCkC,EAAQ,IAAIlC,EAAWmB,CAAK,EACxBc,EAAQ,MACND,GACF,AACEb,EAAM,aAAa,IAAI,IACzBA,EAAM,WAAW,IAAII,CAAO,IAE5B,AACEJ,EAAM,YAAY,IAAI,IACxBA,EAAM,UAAU,IAAII,CAAO,GAGzBS,EACF,EAAM,QAAUT,EAEhB,EAAM,OAASA,CAGrB,EACIY,GAAgB,GAAU,CAAChB,EAAM,SAAW,CAACA,EAAM,SAAW,CAACA,EAAM,YAAcA,EAAM,WAAW,OAAS,KAAO,CAACA,EAAM,WAAaA,EAAM,UAAU,OAAS,GACjK7D,IAAwB,EAAQ,EAAW,EAAS,EAAW,CAAC,IAAM,CACxE,IAAM4E,EAAU1C,EAAkB,IAAIzC,CAAM,EAC5C,GAAI,CAACmF,EACH,OACF,IAAMf,EAAQe,EAAQ,IAAIlC,CAAS,EAC9BmB,IAEDI,GACEJ,EAAM,YACRA,EAAM,WAAW,OAAOI,CAAO,EAE7BJ,EAAM,WACRA,EAAM,UAAU,OAAOI,CAAO,EAE5BJ,EAAM,UAAYI,IACpB,EAAM,QAAU,QAEdJ,EAAM,SAAWI,IACnB,EAAM,OAAS,QAEjBxE,EAAO,oBAAoBiD,EAAWuB,EAAS,EAAI,EACnDxE,EAAO,oBAAoBiD,EAAWuB,EAAS,EAAK,IAEpD,EAAM,QAAU,OAChB,EAAM,OAAS,OACf,EAAM,WAAa,OACnB,EAAM,UAAY,QAEhBY,GAAahB,CAAK,GACpBe,EAAQ,OAAOlC,CAAS,EAE5B,EACIrB,EAAwB,GAAW,CACrC,IAAMuD,EAAU1C,EAAkB,IAAIzC,CAAM,EACvCmF,GAELA,EAAQ,MAAM,CAChB,EACIxD,EAA4B,GAAS,CACvCC,EAAqBgD,CAAI,EACzB,IAAMhB,EAAMgB,EAAK,cACjB,GAAI,CAAChB,EACH,OACF,IAAMyB,EAASzB,EAAI,iBAAiBgB,EAAM,CAAC,EACvClB,EAAO2B,EAAO,SAAS,EAC3B,KAAO3B,GACL9B,EAAqB8B,CAAI,EACzB,EAAO2B,EAAO,SAAS,CAE3B,EACI9D,EAA2B,GAAY,CACzC,IAAM4D,EAAU1C,EAAkB,IAAIuC,CAAO,EAG7C,OAFKG,EAEE,IAAI,IAAIA,EAAQ,KAAK,CAAC,EADpB,IAAI,GAEf,EACI3D,EAA0B,GAAY,CACxC,IAAM2D,EAAU1C,EAAkB,IAAIuC,CAAO,EAC7C,GAAI,CAACG,EACH,OAAO,IAAI,IACb,IAAMG,EAAO,IAAI,IACjB,IAAK,GAAM,CAACrC,EAAWmB,KAAUe,GAC3Bf,EAAM,QAAUA,EAAM,WAAW,OACnCkB,EAAK,IAAI,GAAGrC,EAAU,QAAQ,GAC5BmB,EAAM,SAAWA,EAAM,YAAY,OACrCkB,EAAK,IAAI,GAAGrC,EAAU,SAAS,EAEnC,OAAOqC,CACT,EACIhF,GAA6B,EAAS,EAAW,IAAU,CAC7D,IAAM6E,EAAU1C,EAAkB,IAAIuC,CAAO,EAC7C,GAAI,CAACG,EACH,OACF,IAAMf,EAAQe,EAAQ,IAAIlC,CAAS,EAC9BmB,IAEDJ,IAAU,WACZ,EAAM,QAAU,OAChB,EAAM,WAAa,SAEnB,EAAM,OAAS,OACf,EAAM,UAAY,QAEhBoB,GAAahB,CAAK,GACpBe,EAAQ,OAAOlC,CAAS,EAC5B,EAGIZ,EAAuB,QACvBL,EAAuB,QACvBD,EAAuB,QACvBE,EAAqB,MACrBG,EAAuC,0BACvCtB,EAAQ,EACTiB,GAAuB,iCACvBC,GAAuB,+BACxB,IAAK,4BACP,EACInB,GAAkB,EAAS,IAAc,CAC3C,GAAI,CAAC0E,GAAW,OAAOC,GAAc,WACnC,MAAU,MAAM,4DAA4D,EAE9E,GAAI,OAAO,iBAAqB,IAC9B,OAEF,IAAIC,EAAaF,EAAQ,WACzB,GAAI,CAACE,EACH,MAAU,MAAM,kDAAkD,EAEpE,IAAMC,EAAW,IAAI,iBAAkB,GAAkB,CACvD,IAAK,IAAMC,KAAYC,EACrB,GAAID,EAAS,aAAa,OAAS,EACjC,KAAK,IAAME,KAAeF,EAAS,aACjC,GAAIE,IAAgBN,EAAS,CAC3B,mBAAqB,CACnB,GAAI,CAACA,EAAQ,YAAa,CACxBC,EAAU,EACVE,EAAS,WAAW,EACpB,MACF,CACA,IAAMI,EAAYP,EAAQ,WACtBO,GAAaA,IAAcL,IAC7B,EAAaK,EACbJ,EAAS,WAAW,EACpBA,EAAS,QAAQD,EAAY,CAAE,UAAW,EAAK,CAAC,EAEpD,CAAC,EACD,MACF,CACF,CAGN,CAAC,EACDC,EAAS,QAAQD,EAAY,CAAE,UAAW,EAAK,CAAC,CAClD,EACIrE,EAAmC,GAAU,CAC3C,OAAO2E,GAAO,UAAa,aAC7BA,EAAM,SAASA,CAAK,EACpB,EAAM,SAAW,MAEf,OAAOA,GAAO,YAAe,YAC/BlF,EAAekF,EAAOA,EAAM,UAAU,CAE1C,EACIzE,EAAe,GAAc,CAC/B,IAAM0E,EAAW,CACf,eAAiB,GAAeC,EAAW,eAAiBnF,EAAM,IAClE,iBAAkB,EAAe,IAASkF,EAAS,eAAeE,CAAa,GAAKC,IAAS,SAAWA,IAAS,SACjH,yBAA0B,EAAa,IACjC,MAAM,QAAQC,CAAW,EACpBJ,EAAS,oBAAoBI,EAAaC,CAAgB,EAExDD,IAAgB,OAGpBJ,EAAS,eAAe,GAAIK,CAAgB,EAF1CL,EAAS,cAAcI,EAAaC,CAAgB,EAI/D,eAAgB,EAAa,IAAqB,CAChD,IAAIN,EACJ,GAAI,CACF,GAAI,OAAOK,GAAgB,YAAcA,EAAY,YAAY,OAAS,gBACxE,EAAQE,EAAU,cAAc,KAAK,OAChC,GAAI,OAAOF,GAAgB,UAAYA,GAAwB,SAAUA,EAAa,CAC3F,IAAMG,EAAQH,EACV,OAAOG,EAAM,MAAS,YACxB,EAAQD,EAAU,cAAc,KAAK,EACrC,EAAM,UAAY,gBAAgBC,EAAM,KAAK,UACxC,AAGLR,EAHS,OAAOQ,EAAM,MAAS,UAAYA,EAAM,KAAK,YAAY,IAAM,OAASF,GAAoBL,EAAS,gBAAgBK,EAAkB,OAAOE,EAAM,MAAS,SAAWA,EAAM,KAAK,YAAY,EAAI,EAAE,EACtMD,EAAU,gBAAgBxF,EAAM,IAAKyF,EAAM,IAAI,EAE/CD,EAAU,cAAcC,EAAM,IAAI,EAExCA,EAAM,aACRP,EAAS,cAAcO,EAAOR,CAAK,EAC/BQ,EAAM,WAAW,0BACnB,EAAM,UAAYA,EAAM,WAAW,wBAAwB,SAG3DA,EAAM,UAAY,CAACA,EAAM,YAAY,yBACvCP,EAAS,oBAAoBO,EAAM,SAAUR,CAAK,CAEtD,MACM,OAAOK,GAAgB,UAAY,OAAOA,GAAgB,YAC5D,EAAQE,EAAU,cAAc,OAAOF,CAAW,CAAC,GAGnDL,GAASM,IACXA,EAAiB,YAAYN,CAAK,EAClC3E,EAAgC2E,CAAK,EAEzC,OAAS,EAAG,CAEV,MADA,QAAQ,MAAM,uDAAwD,EAAGK,CAAW,EAC9E,CACR,CACA,OAAOL,CACT,EACA,gBAAiB,EAAM,IAAe,CACpC,IAAMrC,EAAO4C,EAAU,eAAeE,EAAK,SAAS,CAAC,EAIrD,OAHIP,GACFA,EAAW,YAAYvC,CAAI,EAEtBA,CACT,EACA,qBAAsB,EAAiB,IAAe,CACpD,IAAM+C,EAAW,CAAC,EAClB,IAAK,IAAI,EAAI,EAAE,EAAIC,EAAgB,OAAQ,IAAK,CAC9C,IAAMC,EAAeD,EAAgB,GACjC,OAAOC,GAAiB,YAGxBA,IAAiB,MAAQ,OAAOA,GAAiB,UAAY,OAAOA,GAAiB,WACvFF,EAAS,KAAKT,EAAS,gBAAuBW,GAAwD,GAAiB,CAAE,SAAS,EAAGV,CAAU,CAAC,EAEhJQ,EAAS,KAAKT,EAAS,cAAcW,EAAcV,CAAU,CAAC,EAElE,CACA,OAAOQ,CACT,EACA,cAAe,EAAM,EAAO,IAAe,CAGzC,GAFWG,IAAU,QAEjBhH,IAASwC,EACX,OACF,GAAIxC,IAAS,MAAO,CAClB,EAAW,WAAa,OAAOgH,CAAK,EACpC,MACF,CACA,GAAIhH,IAASqC,GAAsB,OAAO2E,GAAU,WAAY,CAC9D,IAAMC,EAAMD,EACZ,EAAI,QAAUX,EACd,EAAW,WAAaW,EACxB,EAAW,WAAanG,MAAoB,CAAC,CAAC,EAC1CwF,EAAW,WACbpF,EAAeoF,EAAYA,EAAW,UAAU,EAEhD,mBAAqB,CACfA,EAAW,YACbpF,EAAeoF,EAAYA,EAAW,UAAU,CAEpD,CAAC,EAEH,MACF,CACA,IAAMa,EAASnG,EAAmBf,CAAI,EACtC,GAAIkH,GAAU,OAAOF,GAAU,WAAY,CACzC,GAAM,CAAE,YAAW,WAAYE,EAC/B,GAAI7D,IAAc,QAAS,CACzB,EAAW,SAAWxC,EAAcmG,CAAK,EACzC,MACF,CACA,GAAI3D,IAAc,UAAW,CAC3B,GAAIgD,EAAW,WAAY,CACzB,IAAMc,EAAkBd,EAAW,WACnC,EAAW,eAAmB,CAC5Bc,EAAgB,EAChBH,EAAM,CACR,CACF,KACE,GAAW,WAAanG,EAAcmG,CAAK,EAE7C,MACF,CACApG,EAAuByF,EAAYhD,EAAW2D,EAAO,CAAE,SAAQ,CAAC,EAChE,MACF,CACIhH,IAAS,cACX,EAAOyC,GAELzC,IAASyC,GAAwB,MAAM,QAAQuE,CAAK,IACtD,EAAQA,EAAM,OAAQ,GAAQ,CAAC,CAACI,CAAG,CAAC,CAAC,KAAK,GAAG,GAE/C,IAAMC,EAAarH,EAAK,MAAM,OAAO,CAAC,EAAE,MACxC,GAAIoG,EAAS,eAAeC,CAAU,GAAKgB,EAAY,CACrD,IAAMC,EAAKtH,EAAK,UAAU,EAAGqH,CAAU,CAAC,CAAC,YAAY,EAC/CE,EAAWvH,EAAK,UAAUqH,EAAYrH,EAAK,MAAM,CAAC,CAAC,YAAY,EAC/DwH,EAAYtG,EAAMoG,IAAO,KAC/BjB,EAAW,eAAemB,EAAWF,IAAOlF,GAAwBkF,IAAOnF,EAAuB,GAAGmF,EAAG,GAAGC,IAAavH,EAAM,OAAOgH,CAAK,CAAC,CAC7I,MAAO,GAAIhH,IAAS,SAAW,OAAOgH,GAAU,SAAU,CACxD,IAAMS,EAAWT,EACjB,IAAK,IAAMU,KAAQ,OAAO,KAAKD,CAAQ,EACrC,EAAW,MAAMC,GAAQ,OAAOD,EAASC,EAAK,CAElD,MAAW,OAAOV,GAAU,WAC1B,EAAWhH,GAAQgH,EACfA,EACFX,EAAW,aAAarG,EAAM,EAAE,EAEhCqG,EAAW,gBAAgBrG,CAAI,IAEvBA,IAAS,SAAWA,IAAS,WAAaA,IAAS,mBAAqBqG,EAAW,WAAa,SAAWA,EAAW,WAAa,YAAcA,EAAW,WAAa,WACnL,EAAWrG,GAAQgH,EACfhH,IAAS,UACPgH,EACFX,EAAW,aAAa,UAAW,EAAE,EAErCA,EAAW,gBAAgB,SAAS,EAE7BrG,IAAS,SAClBqG,EAAW,aAAa,QAAS,OAAOW,CAAK,CAAC,GAGhDX,EAAW,aAAarG,EAAM,OAAOgH,CAAK,CAAC,CAE/C,EACA,eAAgB,EAAa,IAAe,CAC1C,IAAMW,EAAY,OAAO,KAAKnB,EAAY,YAAc,CAAC,CAAC,EAC1D,IAAK,IAAI,EAAI,EAAE,EAAImB,EAAU,OAAQ,IACnCvB,EAAS,aAAauB,EAAU,GAAInB,EAAY,WAAWmB,EAAU,IAAKtB,CAAU,CAExF,CACF,EACA,OAAOD,CACT,EAGI9D,EAAkB,OAAO,uBAAuB,EAChDsF,GAA0B,IAAI,IAAI,CACpC,kBACA,QACA,YACA,WACA,UACA,WACA,UACA,QACA,WACA,iBACA,SACA,QACA,QACA,YACA,OACA,WACA,QACA,WACA,aACA,OACA,cACA,WACA,WACA,WACA,UACF,CAAC,EACGC,GAA4B,GAASD,GAAwB,IAAIE,EAAK,KAAK,YAAY,CAAC,EAAI,GAAOA,EAAK,MAC5G,SAAS9G,EAAS,EAAO,EAAM,EAAQ,CACrC,OAAO,IAAI+G,EAAO,CAAC,CAAC,gBAAgBC,EAAOzB,CAAI,CACjD,CACA,SAASnF,EAAM,EAAO,EAAQ,CAC5B,IAAM4C,EAAMhD,EAASgH,EAAO,gBAAiBD,CAAM,EAGnD,OAFK/D,EAAI,gBAEFA,EAAI,gBAAgB,SAAS,YAAY,IAAM,MAD7C,EAEX,CACA,SAAS1C,EAAO,EAAO,EAAQ,CAE7B,OADYN,EAASgH,EAAO,YAAaD,CAChC,CAAC,CAAC,gBAAgB,iBAAiB,GAAG,CAAC,CAAC,OAAS,CAC5D,CACA,IAAI1G,GAAY,EAAO,IAAW2G,EAAM,QAAQ,GAAG,EAAI,IAAMA,EAAM,QAAQ,GAAG,EAAI,KAAO1G,EAAO0G,EAAOD,CAAM,GAAK3G,EAAM4G,EAAOD,CAAM,GACrI,SAAStH,EAAa,EAAQ,EAAQ,EAAK,CACzC,IAAMyG,EAASlD,GAAYhD,EAASiH,EAAQpG,EAAYoG,EAAQF,CAAM,EAAGA,CAAM,EAG/E,OAFIb,EAAO,KACF,MAAM,KAAKA,EAAO,KAAK,UAAU,EACnCA,EAAO,gBAAkB,CAACA,EAAO,eAAe,EAAI,CAAC,CAC9D,CACA,SAASrF,EAAY,EAAO,EAAQ,CAIlC,OAHIT,EAAM4G,EAAOD,CAAM,EACd,gBAEF,WACT,CACA,SAASjG,EAAe,EAAM,CAC5B,GAAIgC,EAAK,WAAa,EACpB,OAAOA,EAAK,aAAe,GAE7B,GAAIA,EAAK,WAAa,EAAG,CACvB,IAAMsB,EAAUtB,EACVoE,EAAa,CAAC,EACpB,IAAK,IAAIC,EAAI,EAAEA,EAAI/C,EAAQ,WAAW,OAAQ,IAAK,CACjD,IAAM0C,EAAO1C,EAAQ,WAAW+C,GAChC,EAAWL,EAAK,MAAQD,GAAyBC,CAAI,CACvD,CACA,IAAMjB,EAAW,CAAC,EAClB,IAAK,IAAIsB,EAAI,EAAEA,EAAI/C,EAAQ,WAAW,OAAQ,IAAK,CACjD,IAAMgD,EAAatG,EAAesD,EAAQ,WAAW+C,EAAE,EACvDtB,EAAS,KAAKuB,CAAU,CAC1B,CACA,MAAO,CACL,KAAMhD,EAAQ,QAAQ,YAAY,EAClC,WAAY,CAAE,GAAG8C,GAAa5F,GAAkB,EAAK,EACrD,UACF,CACF,CACA,MAAO,EACT,CACA,SAASf,EAAmB,EAAM,EAAQ,CAExC,IAAMyC,EAAM,IADO+D,EACF,CAAC,CAAC,gBAAgBM,EAAM,WAAW,EAC9CC,EAAS,CAAC,EAChB,IAAK,IAAIH,EAAI,EAAEA,EAAInE,EAAI,KAAK,WAAW,OAAQ,IAAK,CAClD,IAAMuE,EAAQzG,EAAekC,EAAI,KAAK,WAAWmE,EAAE,EAC/CI,IAAU,IACZD,EAAO,KAAKC,CAAK,CAErB,CACA,OAAOD,CACT,CAGA,IAAIrG,GAAoB,EAAS,IAAY,CAC3C,GAAIuG,IAAYC,EACd,MAAO,GACT,GAAID,EAAQ,WAAaC,EAAQ,SAC/B,MAAO,GACT,GAAID,EAAQ,WAAa,EAAG,CAC1B,IAAME,EAAaF,EACbG,EAAaF,EACnB,GAAIC,EAAW,UAAYC,EAAW,QACpC,MAAO,GACT,IAAMC,EAAWF,EAAW,WACtBG,EAAWF,EAAW,WAC5B,GAAIC,EAAS,SAAWC,EAAS,OAC/B,MAAO,GACT,IAAK,IAAIV,EAAI,EAAEA,EAAIS,EAAS,OAAQ,IAAK,CACvC,IAAME,EAAUF,EAAST,GACnBY,EAAeJ,EAAW,aAAaG,EAAQ,IAAI,EACzD,GAAIA,EAAQ,QAAUC,EACpB,MAAO,EACX,CACF,CAKA,OAJIP,EAAQ,WAAa,GACnBA,EAAQ,cAAgBC,EAAQ,WAIxC,EACA,SAASO,GAAW,EAAO,CACzB,OAAO,OAAOhC,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,SACpF,CACA,SAASiC,EAAQ,EAAO,CACtB,MAAO,GAAQjC,GAAS,OAAOA,GAAU,UAAY,SAAUA,EACjE,CACA,SAASkC,GAAa,EAAO,EAAU,GAAO,CAO5C,GANIC,GAAS,MAETH,GAAWG,CAAK,GAEhBF,EAAQE,CAAK,GAEbC,GAAWD,GAAS,OAAOA,GAAU,UAAY,eAAgBA,EACnE,OAAOA,CAEX,CACA,SAASE,GAAkB,EAAO,EAAU,GAAO,CACjD,IAAMnG,EAAM,CAAC,EACPoG,EAAa,GAAU,CAC3B,GAAI,MAAM,QAAQH,CAAK,EAAG,CACxBA,EAAM,QAAQG,CAAS,EACvB,MACF,CACA,IAAMC,EAAQL,GAAaC,EAAOC,CAAO,EACrC,GAAOG,IAAU,OAErB,IAAIN,EAAQM,CAAK,IAAMA,EAAM,OAAS,YAAcA,EAAM,OAAS,YAAa,EAC/D,MAAM,QAAQA,EAAM,QAAQ,EAAIA,EAAM,SAAW,CAAC,EAC3D,CAAC,QAAQD,CAAS,EACxB,MACF,CACIC,GAAU,MAAwC,OAAOA,GAAU,WAEvErG,EAAI,KAAKqG,CAAK,CAHd,CAIF,EACAD,EAAUtB,CAAK,EACf,IAAMwB,EAAQ,CAAC,EACXC,EAAS,KACPC,MAAc,CACdD,IAAW,MAAQA,EAAO,OAAS,GACrCD,EAAM,KAAKC,CAAM,EACnB,EAAS,IACX,EACA,IAAK,IAAMN,KAASjG,EAAK,CACvB,GAAI,OAAOiG,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAAW,CACxF,GAAUM,GAAU,IAAM,OAAON,CAAK,EACtC,QACF,CACAO,EAAM,EACNF,EAAM,KAAKL,CAAK,CAClB,CAEA,OADAO,EAAM,EACCF,CACT,CACA,SAASG,EAAiB,EAAO,CAC/B,GAAI,CAACR,GAAS,OAAOA,GAAU,SAC7B,OAAO,KACT,IAAMS,EAAMT,EAAM,YAAY,IAC9B,GAAI,OAAOS,GAAQ,UAAY,OAAOA,GAAQ,SAC5C,MAAO,KAAK,OAAOA,CAAG,IACxB,IAAMC,EAAKV,EAAM,YAAY,GAG7B,OAFI,OAAOU,GAAO,UAAYA,EAAG,OAAS,EACjC,MAAMA,IACR,IACT,CACA,SAASC,GAAkB,EAAO,CAIhC,OAHIX,GAAS,OAAOA,GAAU,SACrB,IAAI,OAAOA,EAAM,MAAS,SAAWA,EAAM,KAAO,YAAY,GAEhE,YACT,CACA,SAASY,GAAgB,EAAM,CAC7B,GAAIjG,EAAK,WAAa,EACpB,MAAO,CAAC,EACV,IAAMN,EAAKM,EACL4B,EAAO,CAAC,EACRsE,EAAcxG,EAAG,WACnBwG,GACFtE,EAAK,KAAK,KAAKsE,GAAa,EAC9B,IAAMC,EAAUzG,EAAG,aAAa,KAAK,EACjCyG,GACFvE,EAAK,KAAK,KAAKuE,GAAS,EAC1B,IAAMJ,EAAKrG,EAAG,GAGd,OAFIqG,GACFnE,EAAK,KAAK,MAAMmE,GAAI,EACfnE,CACT,CACA,SAASwE,GAAwB,EAAS,EAAO,CAC/C,GAAI,OAAOf,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAC7E,OAAOxD,EAAQ,WAAa,EAE9B,GAAIwD,GAAS,OAAOA,GAAU,SAAU,CACtC,GAAIxD,EAAQ,WAAa,EACvB,MAAO,GAET,IAAMwE,EAAS3G,EAAG,QAAQ,YAAY,EAChC4G,EAAS,OAAOjB,EAAM,MAAS,SAAWA,EAAM,KAAK,YAAY,EAAI,GAG3E,MAFA,EAAI,CAACiB,GAAUD,IAAWC,EAG5B,CACA,MAAO,EACT,CACA,SAASC,EAAmB,EAAO,EAAS,CAC1C,IAAMjE,EAAW1E,EAAY4I,EAAQ,OAAO,QAAQ,EACpD,GAAInB,GAAS,KACX,OACF,GAAI,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAC7E,MAAO,CAACmB,EAAQ,OAAO,SAAS,eAAe,OAAOnB,CAAK,CAAC,CAAC,EAE/D,IAAM1F,EAAU2C,EAAS,wBAAwB+C,CAAK,EAItD,OAHK1F,GAES,MAAM,QAAQA,CAAO,EAAIA,EAAU,CAACA,CAAO,EAC7C,CAAC,OAAO,OAAO,EAFzB,MAGJ,CACA,SAAS8G,GAAiC,EAAI,EAAU,EAAO,CAC7D,IAAMC,EAAMhH,EAAG,QAAQ,YAAY,EAUnC,OAToB,OAAO,OAAO+E,EAAM,YAAc,CAAC,EAAGhB,CAC5C,EACL,GACLiD,IAAQ,QACHjD,IAAa,SAAWA,IAAa,UAC1CiD,IAAQ,YAERA,IAAQ,SACHjD,IAAa,QACf,EACT,CACA,SAASkD,GAAoB,EAAI,EAAO,EAAS,EAAkB,GAAO,CACxE,IAAMrE,EAAW1E,EAAY4I,EAAQ,OAAO,QAAQ,EAC9CI,EAAgBC,EAAkB,CAAC,EAAI,MAAM,KAAKnH,EAAG,UAAU,EAC/DoH,EAAYrC,EAAM,YAAc,CAAC,EACvC,IAAK,IAAMT,KAAQ4C,EAAe,CAChC,GAAM,CAAE,QAAS5C,EACb,OAAS,OAET,GAAK,WAAW,IAAI,IAEpB9H,IAAS,SAAY,QAAO,OAAO4K,EAAW,OAAO,GAAK,QAAO,OAAOA,EAAW,WAAW,IAG9F,CAAC,OAAO,OAAOA,EAAW5K,CAAI,EAAG,CACnC,GAAIuK,GAAiC/G,EAAIxD,EAAMuI,CAAK,EAClD,SACF/E,EAAG,gBAAgBxD,CAAI,CACzB,CACF,CAEA,GAAI,EAD8B2K,GAA2BC,EAAUtI,IACvC,CAC9B,IAAMuI,EAAiBjJ,EAAuB4B,CAAE,EAC1CsH,EAAgB,IAAI,IAC1B,IAAK,IAAM7H,KAAY,OAAO,KAAK2H,CAAS,EAAG,CAC7C,IAAM1D,EAASnG,EAAmBkC,CAAQ,EAC1C,GAAIiE,EAAQ,CACV,IAAM9C,EAAQ8C,EAAO,QAAU,UAAY,SAC3C4D,EAAc,IAAI,GAAG5D,EAAO,UAAU,GAAG9C,GAAO,CAClD,CACF,CACA,IAAK,IAAMwF,KAAOiB,EAChB,GAAI,CAACC,EAAc,IAAIlB,CAAG,EAAG,CAC3B,GAAM,CAACvG,EAAWe,GAASwF,EAAI,MAAM,GAAG,EACxClJ,EAA0B8C,EAAIH,EAAWe,CAAK,CAChD,CAEJ,CACAgC,EAAS,cAAcmC,EAAO/E,CAAE,EAChChC,EAAgCgC,CAAE,EAClC,IAAMuH,EAAIxC,EAAM,YAAY,wBAC5B,GAAIwC,GAAK,OAAOA,GAAM,UAAY,OAAOA,EAAE,QAAW,SAAU,CAC9D,EAAG,UAAYA,EAAE,OACjB,MACF,CAEA,GADYvH,EAAG,QAAQ,YACjB,IAAM,WAAY,CACtB,IAAMwH,EAAe,OAAO,OAAOJ,EAAW,OAAO,EAErD,GADiBpH,EAAG,eAAe,gBAAkBA,GACrC,CAACwH,EACf,MACJ,CACIL,IAAoBpC,EAAM,WAAa,QAAaA,EAAM,SAAS,SAAW,GAAKqC,EAAUtI,KAEjG2I,GAAezH,EAAI+E,EAAM,UAAY,CAAC,EAAG+B,CAAO,CAClD,CACA,SAASY,GAAU,EAAS,EAAO,EAAS,EAAkB,GAAO,CACnE,GAAI,OAAO/B,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAAW,CACxF,IAAMvC,EAAO,OAAOuC,CAAK,EACzB,GAAIxD,EAAQ,WAAa,EAGvB,OAFIA,EAAQ,YAAciB,IACxB,EAAQ,UAAYA,GACfjB,EAET,IAAMwF,EAAOb,EAAQ,OAAO,SAAS,eAAe1D,CAAI,EAExD,OADAjB,EAAQ,YAAY,aAAawF,EAAMxF,CAAO,EACvCwF,CACT,CACA,GAAIhC,GAAS,OAAOA,GAAU,SAAU,CACtC,IAAMiC,EAAU,OAAOjC,EAAM,MAAS,SAAWA,EAAM,KAAO,KAC9D,GAAI,CAACiC,EACH,OAAOzF,EACT,GAAIA,EAAQ,WAAa,EAAG,CAC1B,IAAMlC,EAAU4G,EAAmBlB,EAAOmB,CAAO,EAC3Ce,EAAQ,MAAM,QAAQ5H,CAAO,EAAIA,EAAQ,GAAKA,EAKpD,OAJK4H,GAEL1F,EAAQ,YAAY,aAAa0F,EAAO1F,CAAO,EAC/CnE,EAAgC6J,CAAK,EAC9BA,GAHE,IAIX,CACA,IAAM7H,EAAKmC,EAGX,GAFenC,EAAG,QAAQ,YAEjB,IADM4H,EAAQ,YACH,EAAG,CACrB,IAAM3H,EAAU4G,EAAmBlB,EAAOmB,CAAO,EAC3Ce,EAAQ,MAAM,QAAQ5H,CAAO,EAAIA,EAAQ,GAAKA,EAKpD,OAJK4H,GAEL7H,EAAG,YAAY,aAAa6H,EAAO7H,CAAE,EACrChC,EAAgC6J,CAAK,EAC9BA,GAHE,IAIX,CAEA,OADAZ,GAAoBjH,EAAI2F,EAAOmB,EAASK,CAAe,EAChDnH,CACT,CAEA,OADAmC,EAAQ,YAAY,YAAYA,CAAO,EAChC,IACT,CACA,IAAI2F,EAAiB,IAAI,QACrBC,EAAgB,IAAI,IACpBhL,GAAkB,EAAI,IACpB+J,GAGG,CAAE,OADG9G,GAAI,eAAe,aAAe,UACzB,EAEvB,SAASgI,GAAoB,EAAI,CAC/B,IAAIC,EAAUjI,EAAG,cACjB,KAAOiI,GAAS,CACd,GAAIH,EAAe,IAAIG,CAAO,EAC5B,MAAO,GACT,EAAUA,EAAQ,aACpB,CACA,MAAO,EACT,CACA,SAASC,IAAqB,CAC5B,GAAIH,EAAc,OAAS,EACzB,OACF,IAAMI,EAAW,CAAC,GAAGJ,EAAc,QAAQ,CAAC,EAC5CA,EAAc,MAAM,EACpB,IAAK,GAAM,CAAC/H,EAAI,CAAE,OAAM,UAAS,WAAWmI,EACrCnI,EAAG,aAERlD,EAAkBkD,EAAIoI,EAAMtB,EAASuB,CAAI,CAE7C,CACA,SAASvL,EAAkB,EAAe,EAAS,EAAS,EAAO,UAAW,CAC5E,IAAMwL,EAAkBvL,EAAe+F,EAAegE,CAAO,EAC7D,GAAIgB,EAAe,IAAIhF,CAAa,GAAKkF,GAAoBlF,CAAa,EAAG,CAC3EiF,EAAc,IAAIjF,EAAe,CAC/B,KAAMyF,EACN,QAASD,EACT,MACF,CAAC,EACD,MACF,CACAR,EAAe,IAAIhF,CAAa,EAChC,GAAI,CACF2E,GAAe3E,EAAeyF,EAASD,EAAiBD,CAAI,CAC9D,QAAU,CACRP,EAAe,OAAOhF,CAAa,CACrC,CACAoF,GAAmB,CACrB,CACA,SAASM,GAAU,EAAY,EAAY,EAAS,CAClD,IAAMC,EAAY,IAAI,IACtB,IAAK,IAAMnI,KAAQ,MAAM,KAAKoI,EAAW,UAAU,EACjD,IAAK,IAAMC,KAAKpC,GAAgBjG,CAAI,EAC7BmI,EAAU,IAAIE,CAAC,GAClBF,EAAU,IAAIE,EAAGrI,CAAI,EAG3B,IAAK,IAAMsI,KAAQC,EAAY,CAC7B,GAAI,OAAOD,GAAS,UAAYA,EAAK,KAAK,IAAM,GAC9C,SACF,IAAMxC,EAAMD,EAAiByC,CAAI,EACjC,GAAI,CAACxC,EACH,MAAU,MAAM,4EAA4EE,GAAkBsC,CAAI,EAAE,EAAE,EAExH,IAAME,EAAQL,EAAU,IAAIrC,CAAG,EAC/B,GAAI0C,EAAO,CAETpB,GAAUoB,EADQF,GAAQ,OAAOA,GAAS,UAAY,CAACA,EAAK,KAAO,CAAE,GAAGA,EAAM,KAAME,EAAM,QAAQ,YAAY,CAAE,EAAIF,EACxF9B,EAAS,EAAI,EACzC,QACF,CACA,GAAI,CAAC8B,GAAM,KACT,MAAU,MAAM,kFAAkFxC,EAAI,EAAE,EAE1G,IAAMnG,EAAU4G,EAAmB+B,EAAM9B,CAAO,GAAK,CAAC,EACtD,IAAK,IAAMxG,KAAQL,EACjByI,EAAW,YAAYpI,CAAI,EAC3BtC,EAAgCsC,CAAI,CAExC,CACF,CACA,SAASmH,GAAe,EAAe,EAAS,EAAS,EAAO,UAAW,CACzE,IAAMzH,EAAK8C,EACLiG,EAAkB/I,EAAG,QAAQ,SAAS,GAAG,EACzC0I,EAAa1I,EAAG,YAAc,CAAC+I,EAAkB/I,EAAG,WAAa8C,EACjEkG,EAAenD,GAAkB0C,EAASF,IAAS,MAAM,EAC/D,GAAIA,IAAS,OAAQ,CACnBG,GAAUE,EAAYM,EAAclC,CAAO,EAC3C,MACF,CACA,IAAM/G,EAAW,MAAM,KAAK2I,EAAW,UAAU,EAC3CD,EAAY,IAAI,IAChBQ,EAAW,IAAI,QACfC,EAAc,CAAC,EACrB,IAAK,IAAM5I,KAAQP,EAAU,CAC3B,IAAMmC,EAAOqE,GAAgBjG,CAAI,EACjC,GAAI4B,EAAK,OAAS,EAAG,CACnB+G,EAAS,IAAI3I,EAAM4B,CAAI,EACvB,IAAIiH,EAAmB,GACvB,IAAK,IAAMR,KAAKzG,EACTuG,EAAU,IAAIE,CAAC,IAClBF,EAAU,IAAIE,EAAGrI,CAAI,EACrB,EAAmB,IAGlB6I,GACHD,EAAY,KAAK5I,CAAI,CAEzB,MACE4I,EAAY,KAAK5I,CAAI,CAEzB,CACA,IAAM8I,GAAoB,GAAS,CACjC,IAAMlH,EAAO+G,EAAS,IAAI3I,CAAI,GAAK,CAAC,EACpC,IAAK,IAAMqI,KAAKzG,EACduG,EAAU,OAAOE,CAAC,CACtB,EACMU,EAAoB,GAAU,CAClC,IAAK,IAAI1E,EAAI,EAAEA,EAAIuE,EAAY,OAAQ,IAAK,CAC1C,IAAMI,EAAYJ,EAAYvE,GAC9B,GAAI+B,GAAwB4C,EAAW3D,CAAK,EAE1C,OADAuD,EAAY,OAAOvE,EAAG,CAAC,EAChB2E,CAEX,CAEF,EACIC,EAAW,EACf,IAAK,IAAM5D,KAASqD,EAAc,CAChC,IAAM5C,EAAMD,EAAiBR,CAAK,EAC9BmD,EACA1C,GACF,EAAQqC,EAAU,IAAIrC,CAAG,EACrB0C,GACFM,GAAiBN,CAAK,GAExB,EAAQO,EAAiB1D,CAAK,EAEhC,IAAM6D,EAASd,EAAW,WAAWa,IAAa,KAClD,GAAIT,EAAO,CACLA,IAAUU,GACZd,EAAW,aAAaI,EAAOU,CAAM,EAEvB9B,GAAUoB,EAAOnD,EAAOmB,CAAO,EAE/C,IACA,QACF,CACA,IAAM7G,EAAU4G,EAAmBlB,EAAOmB,CAAO,EACjD,GAAI,CAAC7G,GAAW,MAAM,QAAQA,CAAO,GAAKA,EAAQ,SAAW,EAC3D,SACF,IAAMwJ,EAAQ,MAAM,QAAQxJ,CAAO,EAAIA,EAAU,CAACA,CAAO,EACzD,IAAK,IAAMK,KAAQmJ,EACjBf,EAAW,aAAapI,EAAMkJ,CAAM,EACpCxL,EAAgCsC,CAAI,EACpC,GAEJ,CACA,IAAMoJ,EAAY,IAAI,IACtB,IAAK,IAAMpJ,KAAQ4I,EACjBQ,EAAU,IAAIpJ,CAAI,EACpB,IAAK,IAAMA,KAAQmI,EAAU,OAAO,EAClCiB,EAAU,IAAIpJ,CAAI,EACpB,IAAK,IAAMA,KAAQoJ,EACbpJ,EAAK,aAAeoI,IAClBpI,EAAK,WAAa,GACpB/B,EAAyB+B,CAAI,EAE/BoI,EAAW,YAAYpI,CAAI,EAGjC,CACA,SAAStD,GAAmB,EAAe,EAAS,EAAS,CAC3D,IAAMsL,EAAkBvL,EAAe+F,EAAegE,CAAO,EAC7D,KAAOhE,EAAc,YACnBA,EAAc,YAAYA,EAAc,UAAU,EAGpD,IAAM6G,EADWzL,EAAYoK,EAAgB,OAAO,QAC9B,CAAC,CAAC,wBAAwBC,CAAO,EACvD,GAAI,MAAM,QAAQoB,CAAM,EACtB,IAAK,IAAMrJ,KAAQqJ,EACbrJ,IACFwC,EAAc,YAAYxC,CAAI,EAC9BtC,EAAgCsC,CAAI,QAG/BqJ,IACT7G,EAAc,YAAY6G,CAAM,EAChC3L,EAAgC2L,CAAM,EAE1C,CAGA,IAAIC,GAAwB,GAAQ,CAC7B,MAED,CAACpJ,EAAI,eAAe,cAAc,EAAG,CACvC,IAAMqJ,EAAQrJ,EAAI,cAAc,OAAO,EACvC,EAAM,GAAK,eACX,EAAM,YAAc,+JACpBA,EAAI,KAAK,YAAYqJ,CAAK,CAC5B,CACF,EACI5L,GAAuB,EAAM,EAAU,EAAS,gBAAkB,CACpE,IAAM4C,EAAI,aAAaiJ,EAAS,KAAKC,EAAO,YAAYD,EAAS,KAAKC,IAsDtE,MAAO,CApDL,KAAM,CACJ,MAAO,CAAE,QAAS,IAAK,WAAYlJ,EAAG,UAAW,oBAAqB,EACtE,YAAa,CAAE,QAAS,GAAI,EAC5B,KAAM,CAAE,QAAS,IAAK,WAAYA,EAAG,UAAW,oBAAqB,EACrE,WAAY,CAAE,QAAS,GAAI,CAC7B,EACA,aAAc,CACZ,MAAO,CACL,UAAW,wBACX,QAAS,MACT,WAAYA,CACd,EACA,YAAa,CAAE,UAAW,qBAAsB,QAAS,GAAI,EAC7D,KAAM,CAAE,UAAW,qBAAsB,QAAS,IAAK,WAAYA,CAAE,EACrE,WAAY,CAAE,UAAW,yBAA0B,QAAS,KAAM,CACpE,EACA,cAAe,CACb,MAAO,CACL,UAAW,yBACX,QAAS,MACT,WAAYA,CACd,EACA,YAAa,CAAE,UAAW,qBAAsB,QAAS,GAAI,EAC7D,KAAM,CAAE,UAAW,qBAAsB,QAAS,IAAK,WAAYA,CAAE,EACrE,WAAY,CAAE,UAAW,wBAAyB,QAAS,KAAM,CACnE,EACA,OACE+I,GAAqB,OAAO,SAAa,IAAc,SAAW,MAAS,EACpE,CACL,MAAO,CACL,UAAW,qBACX,QAAS,IACT,WAAY,MACd,EACA,YAAa,CACX,UAAW,qBACX,QAAS,IACT,UAAW,SAASE,EAAS,qCAC/B,EACA,KAAM,CACJ,UAAW,qBACX,QAAS,IACT,WAAY,MACd,EACA,WAAY,CACV,UAAW,qBACX,QAAS,IACT,UAAW,SAASA,EAAS,qCAC/B,CACF,EAGQ,EAAE/G,IAAS,CAAE,MAAO,CAAC,EAAG,YAAa,CAAC,EAAG,KAAM,CAAC,EAAG,WAAY,CAAC,CAAE,CAChF,EACIrE,GAAe,EAAI,IAAW,OAAO,QAAQsL,CAAM,CAAC,CAAC,SAAS,CAACrB,EAAGrM,KAAO0D,EAAG,MAAM,YAAY2I,EAAG,OAAOrM,CAAC,CAAC,CAAC,EAC3GyC,EAA4B,CAC9B,KAAM,OACN,SAAU,IACV,OAAQ,cACR,MAAO,EACP,OAAQ,QACV,EACIkL,EAAQ,GAAO,IAAI,QAAS,GAAM,WAAWC,EAAGC,CAAE,CAAC,EACnDC,GAAmB,MAAO,EAAS,EAAgB,EAAU,IAAW,CAC1E,IAAMC,EAAgBzI,EAAQ,MAAM,QAC9BuG,EAAWvG,EAAQ,UAAU,EAAI,EACjCpB,EAAMoB,EAAQ,cACpB,GAAI,CACF,IAAM0I,EAAO1I,EAAQ,sBAAsB,EAC3C,EAAS,MAAM,QAAU,yBAAyB0I,EAAK,IAAI,UAAUA,EAAK,KAAK,WAAWA,EAAK,MAAM,YAAYA,EAAK,OAAO,kCAAkCR,EAAS,KAAKC,EAAO,gBACpL,EAAQ,MAAM,QAAU,IACxB,EAAQ,MAAM,WAAa,WAAWD,EAAS,KAAKC,IACpDvJ,EAAI,KAAK,YAAY2H,CAAQ,EAC7B,MAAMoC,EAAe,EACrB3I,EAAQ,aACR,EAAS,MAAM,QAAU,IACzB,EAAQ,MAAM,QAAU,IACxB,MAAMqI,EAAKH,CAAQ,EACnBtJ,EAAI,KAAK,YAAY2H,CAAQ,CAC/B,OAASqC,EAAO,CAGd,MAFIrC,EAAS,eACX3H,EAAI,KAAK,YAAY2H,CAAQ,EACzBqC,CACR,QAAU,CACR,EAAQ,MAAM,QAAUH,CAC1B,CACF,EACI/M,EAAoB,MAAO,EAAS,EAAgB,EAAS,CAAC,IAAM,CACtE,GAAM,CACJ,OAAO,OACP,WAAW,IACX,SAAS,cACT,QAAQ,GACN,CAAE,GAAGyB,EAA2B,GAAG0L,CAAO,EAC9C,GAAI1H,IAAS,OAAQ,CACnB,MAAMwH,EAAe,EACrB,MACF,CAGA,GAFIG,EAAQ,GACV,MAAMT,EAAKS,CAAK,EACd3H,IAAS,OAAQ,CACnB,MAAMqH,GAAiBxI,EAAS2I,EAAgBT,EAAUC,CAAM,EAChE,MACF,CACA,IAAMC,EAASS,EAAO,QAAUxM,EAAoB8E,EAAM+G,EAAUC,CAAM,EACpEY,EAAqB/I,EAAQ,MAAM,WACnCgJ,EAAoBhJ,EAAQ,MAAM,UACxC,GAAI,CACEmB,IAAS,UACX,EAAQ,MAAM,UAAY,OAC1BnB,EAAQ,cAEVlD,EAAYkD,EAASoI,EAAO,IAAI,EAChCpI,EAAQ,aACRlD,EAAYkD,EAASoI,EAAO,UAAU,EACtC,MAAMC,EAAKH,CAAQ,EACnB,MAAMS,EAAe,EACrB7L,EAAYkD,EAASoI,EAAO,KAAK,EACjCpI,EAAQ,aACRlD,EAAYkD,EAASoI,EAAO,WAAW,EACvC,MAAMC,EAAKH,CAAQ,EACnB,EAAQ,MAAM,WAAaa,EAC3B,EAAQ,MAAM,UAAYC,CAC5B,OAASJ,EAAO,CAGd,KAFA,GAAQ,MAAM,WAAaG,EAC3B,EAAQ,MAAM,UAAYC,EACpBJ,CACR,CACF,EAGIK,EAAsB,IAAI,QAC1BlN,GAAU,EAAI,EAAY,EAAU,CAAC,IAAM,CAC7C,IAAMmJ,EAAU/J,EAAeiD,CAAE,EAC3BS,EAAMqG,EAAQ,OACduB,EAAOvG,EAAQ,KAAO,OAAS,UAC/BgJ,EAAS,GAAYhO,EAAkBkD,EAAI,OAAO+K,GAAY,SAAWhN,EAAmBgN,EAAStK,EAAI,SAAS,EAAIsK,EAASjE,EAASuB,CAAI,EAC5I2C,EAAalJ,EAAQ,WAC3B,GAAIkJ,GAAcA,EAAW,OAAS,OAAQ,CAC5C,IAAMP,EAAS,CAAE,GAAG1L,EAA2B,GAAGiM,CAAW,EACvDC,EAAmBR,EAAO,SAAW,OAASzK,EAAKA,EAAG,cAC5D,GAAI,CAACiL,EAAkB,CACrBH,EAAMI,CAAU,EAChB,MACF,CACA,IAAMC,EAAQ,CAAE,QAASD,CAAW,EAEpC,OADAL,EAAoB,IAAI7K,EAAImL,CAAK,EAC1B7N,EAAkB2N,EAAkB,SAAY,CACjDJ,EAAoB,IAAI7K,CAAE,IAAMmL,GAClCL,EAAMK,EAAM,OAAO,CACvB,EAAGV,CAAM,CAAC,CAAC,YAAc,CACnBI,EAAoB,IAAI7K,CAAE,IAAMmL,GAClCN,EAAoB,OAAO7K,CAAE,CACjC,CAAC,CACH,CACA,IAAMoL,EAAOP,EAAoB,IAAI7K,CAAE,EACnCoL,IACF,EAAK,QAAUF,GACjBJ,EAAMI,CAAU,CAClB,EAGA,GAAI,OAAO,WAAe,IAAa,CACrC,IAAMG,EAAI,WACJpD,EAAUoD,EAAE,KACdpD,IAAY,MAAQ,OAAOA,GAAY,UAAY,OAAOA,GAAY,cACxE,EAAE,IAAM,CAAC,GAEX,OAAO,OAAOoD,EAAE,IAAKxO,CAAW,CAClC,CACA,OACEC,uBACAC,oBACAC,yBACAC,kBACAC,+BACAC,2BACAC,4BACAC,mBACAC,uBACAC,wBACAC,cACAC,oBACAC,WACAC,KAAU,MACVC,WACAC,cACAC,YACAC,wBACAC,qCACAC,yBACAC,iBACAC,6BACAC,4BACAC,iBACAC,oBACAC,8BACAC,0BACAC,sBACAC,iBACAC,0BACAC,0BACAC,wBACAC,qBACAC,+BACAC,0CACAC,0BACAC","names":["__defProp","__returnValue","v","__exportSetter","name","newValue","__export","all","target","exports_src","updateDomWithVdom","resolveGlobals","replaceDomWithVdom","renderMarkup","removeDelegatedEventByKey","removeDelegatedEvent","registerDelegatedEvent","queueCallback","performTransition","parseEventPropName","parseDOM","observeUnmount","nsMap","morph2","isSVG","isMarkup","isHTML","htmlStringToVNodes","handleLifecycleEventsForOnMount","getTransitionStyles","getRenderer","getRegisteredEventTypes","getRegisteredEventKeys","getMimeType","domNodeToVNode","clearDelegatedEventsDeep","clearDelegatedEvents","areDomNodesEqual","applyStyles","XMLNS_ATTRIBUTE_NAME","XLINK_ATTRIBUTE_NAME","REF_ATTRIBUTE_NAME","FROM_DOM_MARKER","DEFAULT_TRANSITION_CONFIG","DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE","CLASS_ATTRIBUTE_NAME","CAPTURE_ONLY_EVENTS","args","cb","elementHandlerMap","bubbleDispatched","captureDispatched","activeDispatches","propName","raw","lower","isCapture","eventType","getOrCreateElementHandlers","existing","el","created","getEventPath","composedPath","event","path","node","maybeNode","doc","win","createPhaseHandler","dispatched","phase","t","ordered","handlersByEvent","entry","targets","dispatchKey","activeSet","handler","installedRootListeners","ensureRootListener","installed","root","captureKey","bubbleKey","getEventRoot","element","capture","options","byEvent","isEntryEmpty","walker","keys","domNode","onUnmount","parentNode","observer","mutation","mutationsList","removedNode","newParent","newEl","renderer","domElement","parentElement","type","virtualNode","parentDomElement","document2","vNode","text","children","virtualChildren","virtualChild","value","ref","parsed","existingUnmount","val","nsEndIndex","ns","attrName","namespace","styleObj","prop","attrNames","HTML_BOOLEAN_ATTRIBUTES","domAttributeToVNodeValue","attr","Parser","input","markup","attributes","i","childVNode","html","vNodes","vnode","oldNode","newNode","oldElement","newElement","oldAttrs","newAttrs","oldAttr","newAttrValue","isTextLike","isVNode","toValidChild","child","lenient","normalizeChildren","pushChild","valid","fused","buffer","flush","getVNodeMatchKey","key","id","describePatchItem","getDomMatchKeys","internalKey","attrKey","areNodeAndChildMatching","oldTag","newTag","createDomFromChild","globals","shouldPreserveFormStateAttribute","tag","patchElementInPlace","existingAttrs","mergeAttributes","nextAttrs","registeredKeys","nextEventKeys","d","isControlled","morphDomDirect","morphNode","next","newType","first","renderingNodes","pendingMorphs","isAncestorRendering","current","flushPendingMorphs","snapshot","vdom","mode","resolvedGlobals","newVDOM","morphDiff","keyedPool","targetRoot","k","item","patchItems","match","isCustomElement","nextChildren","nodeKeys","unkeyedPool","addedToKeyedPool","consumeKeyedNode","takeUnkeyedMatch","candidate","domIndex","anchor","nodes","remaining","newDom","injectShakeKeyframes","style","duration","easing","styles","wait","r","ms","performCrossfade","originalStyle","rect","updateCallback","error","config","delay","originalTransition","originalAnimation","inflightTransitions","apply","content","transition","transitionTarget","newContent","slot2","slot","g"],"sources":["all.js"],"version":3,"sourcesContent":["var __defProp = Object.defineProperty;\nvar __returnValue = (v) => v;\nfunction __exportSetter(name, newValue) {\n this[name] = __returnValue.bind(null, newValue);\n}\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: __exportSetter.bind(all, name)\n });\n};\n\n// src/index.ts\nvar exports_src = {};\n__export(exports_src, {\n updateDomWithVdom: () => updateDomWithVdom,\n resolveGlobals: () => resolveGlobals,\n replaceDomWithVdom: () => replaceDomWithVdom,\n renderMarkup: () => renderMarkup,\n removeDelegatedEventByKey: () => removeDelegatedEventByKey,\n removeDelegatedEvent: () => removeDelegatedEvent,\n registerDelegatedEvent: () => registerDelegatedEvent,\n queueCallback: () => queueCallback,\n performTransition: () => performTransition,\n parseEventPropName: () => parseEventPropName,\n parseDOM: () => parseDOM,\n observeUnmount: () => observeUnmount,\n nsMap: () => nsMap,\n morph: () => morph2,\n isSVG: () => isSVG,\n isMarkup: () => isMarkup,\n isHTML: () => isHTML,\n htmlStringToVNodes: () => htmlStringToVNodes,\n handleLifecycleEventsForOnMount: () => handleLifecycleEventsForOnMount,\n getTransitionStyles: () => getTransitionStyles,\n getRenderer: () => getRenderer,\n getRegisteredEventTypes: () => getRegisteredEventTypes,\n getRegisteredEventKeys: () => getRegisteredEventKeys,\n getMimeType: () => getMimeType,\n domNodeToVNode: () => domNodeToVNode,\n clearDelegatedEventsDeep: () => clearDelegatedEventsDeep,\n clearDelegatedEvents: () => clearDelegatedEvents,\n areDomNodesEqual: () => areDomNodesEqual,\n applyStyles: () => applyStyles,\n XMLNS_ATTRIBUTE_NAME: () => XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME: () => XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME: () => REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER: () => FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG: () => DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE: () => DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n CLASS_ATTRIBUTE_NAME: () => CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS: () => CAPTURE_ONLY_EVENTS\n});\n\n// src/queue.ts\nvar queueCallback = (cb) => (...args) => queueMicrotask(() => cb(...args));\n\n// src/delegated-events.ts\nvar CAPTURE_ONLY_EVENTS = new Set([\n \"focus\",\n \"blur\",\n \"scroll\",\n \"mouseenter\",\n \"mouseleave\"\n]);\nvar elementHandlerMap = new WeakMap;\nvar bubbleDispatched = new WeakMap;\nvar captureDispatched = new WeakMap;\nvar activeDispatches = new WeakMap;\nvar parseEventPropName = (propName) => {\n if (!propName.startsWith(\"on\"))\n return null;\n const raw = propName.slice(2);\n if (!raw)\n return null;\n const lower = raw.toLowerCase();\n const isCapture = lower.endsWith(\"capture\");\n const eventType = isCapture ? lower.slice(0, -\"capture\".length) : lower;\n if (!eventType)\n return null;\n return { eventType, capture: isCapture };\n};\nvar getOrCreateElementHandlers = (el) => {\n const existing = elementHandlerMap.get(el);\n if (existing)\n return existing;\n const created = new Map;\n elementHandlerMap.set(el, created);\n return created;\n};\nvar getEventPath = (event) => {\n const composedPath = event.composedPath?.();\n if (composedPath && composedPath.length > 0)\n return composedPath;\n const path = [];\n let node = event.target;\n while (node) {\n path.push(node);\n const maybeNode = node;\n if (typeof maybeNode === \"object\" && maybeNode && \"parentNode\" in maybeNode) {\n node = maybeNode.parentNode;\n continue;\n }\n break;\n }\n const doc = event.target?.ownerDocument;\n if (doc && path[path.length - 1] !== doc)\n path.push(doc);\n const win = doc?.defaultView;\n if (win && path[path.length - 1] !== win)\n path.push(win);\n return path;\n};\nvar createPhaseHandler = (eventType, phase) => {\n const dispatched = phase === \"capture\" ? captureDispatched : bubbleDispatched;\n return (event) => {\n const path = getEventPath(event).filter((t) => typeof t === \"object\" && t !== null && t.nodeType === 1);\n const ordered = phase === \"capture\" ? [...path].reverse() : path;\n for (const target of ordered) {\n const handlersByEvent = elementHandlerMap.get(target);\n if (!handlersByEvent)\n continue;\n const entry = handlersByEvent.get(eventType);\n if (!entry)\n continue;\n let targets = dispatched.get(event);\n if (targets?.has(target))\n continue;\n if (!targets) {\n targets = new WeakSet;\n dispatched.set(event, targets);\n }\n targets.add(target);\n const dispatchKey = `${eventType}:${phase}`;\n let activeSet = activeDispatches.get(target);\n if (activeSet?.has(dispatchKey))\n continue;\n if (!activeSet) {\n activeSet = new Set;\n activeDispatches.set(target, activeSet);\n }\n activeSet.add(dispatchKey);\n try {\n if (phase === \"capture\") {\n if (entry.capture) {\n entry.capture.call(target, event);\n if (event.cancelBubble)\n return;\n }\n if (entry.captureSet) {\n for (const handler of entry.captureSet) {\n handler.call(target, event);\n if (event.cancelBubble)\n return;\n }\n }\n } else {\n if (entry.bubble) {\n entry.bubble.call(target, event);\n if (event.cancelBubble)\n return;\n }\n if (entry.bubbleSet) {\n for (const handler of entry.bubbleSet) {\n handler.call(target, event);\n if (event.cancelBubble)\n return;\n }\n }\n }\n } finally {\n activeSet.delete(dispatchKey);\n }\n }\n };\n};\nvar installedRootListeners = new WeakMap;\nvar ensureRootListener = (root, eventType) => {\n const installed = installedRootListeners.get(root) ?? new Set;\n installedRootListeners.set(root, installed);\n const captureKey = `${eventType}:capture`;\n if (!installed.has(captureKey)) {\n root.addEventListener(eventType, createPhaseHandler(eventType, \"capture\"), true);\n installed.add(captureKey);\n }\n const bubbleKey = `${eventType}:bubble`;\n if (!installed.has(bubbleKey)) {\n root.addEventListener(eventType, createPhaseHandler(eventType, \"bubble\"), false);\n installed.add(bubbleKey);\n }\n};\nvar getEventRoot = (element) => {\n const root = element.getRootNode();\n if (root && root.nodeType === 9) {\n return root;\n }\n if (root && root.nodeType === 11 && \"host\" in root) {\n return root;\n }\n return null;\n};\nvar registerDelegatedEvent = (element, eventType, handler, options = {}) => {\n const root = getEventRoot(element);\n const capture = options.capture || CAPTURE_ONLY_EVENTS.has(eventType);\n if (root) {\n ensureRootListener(root, eventType);\n } else if (element.ownerDocument) {\n ensureRootListener(element.ownerDocument, eventType);\n } else {\n element.addEventListener(eventType, handler, capture);\n }\n const byEvent = getOrCreateElementHandlers(element);\n const entry = byEvent.get(eventType) ?? {};\n byEvent.set(eventType, entry);\n if (options.multi) {\n if (capture) {\n if (!entry.captureSet)\n entry.captureSet = new Set;\n entry.captureSet.add(handler);\n } else {\n if (!entry.bubbleSet)\n entry.bubbleSet = new Set;\n entry.bubbleSet.add(handler);\n }\n } else {\n if (capture) {\n entry.capture = handler;\n } else {\n entry.bubble = handler;\n }\n }\n};\nvar isEntryEmpty = (entry) => !entry.capture && !entry.bubble && (!entry.captureSet || entry.captureSet.size === 0) && (!entry.bubbleSet || entry.bubbleSet.size === 0);\nvar removeDelegatedEvent = (target, eventType, handler, _options = {}) => {\n const byEvent = elementHandlerMap.get(target);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n if (handler) {\n if (entry.captureSet) {\n entry.captureSet.delete(handler);\n }\n if (entry.bubbleSet) {\n entry.bubbleSet.delete(handler);\n }\n if (entry.capture === handler) {\n entry.capture = undefined;\n }\n if (entry.bubble === handler) {\n entry.bubble = undefined;\n }\n target.removeEventListener(eventType, handler, true);\n target.removeEventListener(eventType, handler, false);\n } else {\n entry.capture = undefined;\n entry.bubble = undefined;\n entry.captureSet = undefined;\n entry.bubbleSet = undefined;\n }\n if (isEntryEmpty(entry)) {\n byEvent.delete(eventType);\n }\n};\nvar clearDelegatedEvents = (target) => {\n const byEvent = elementHandlerMap.get(target);\n if (!byEvent)\n return;\n byEvent.clear();\n};\nvar clearDelegatedEventsDeep = (root) => {\n clearDelegatedEvents(root);\n const doc = root.ownerDocument;\n if (!doc)\n return;\n const walker = doc.createTreeWalker(root, 1);\n let node = walker.nextNode();\n while (node) {\n clearDelegatedEvents(node);\n node = walker.nextNode();\n }\n};\nvar getRegisteredEventTypes = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n return new Set(byEvent.keys());\n};\nvar getRegisteredEventKeys = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n const keys = new Set;\n for (const [eventType, entry] of byEvent) {\n if (entry.bubble || entry.bubbleSet?.size)\n keys.add(`${eventType}:bubble`);\n if (entry.capture || entry.captureSet?.size)\n keys.add(`${eventType}:capture`);\n }\n return keys;\n};\nvar removeDelegatedEventByKey = (element, eventType, phase) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n if (phase === \"capture\") {\n entry.capture = undefined;\n entry.captureSet = undefined;\n } else {\n entry.bubble = undefined;\n entry.bubbleSet = undefined;\n }\n if (isEntryEmpty(entry))\n byEvent.delete(eventType);\n};\n\n// src/renderer.ts\nvar CLASS_ATTRIBUTE_NAME = \"class\";\nvar XLINK_ATTRIBUTE_NAME = \"xlink\";\nvar XMLNS_ATTRIBUTE_NAME = \"xmlns\";\nvar REF_ATTRIBUTE_NAME = \"ref\";\nvar DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE = \"dangerouslySetInnerHTML\";\nvar nsMap = {\n [XMLNS_ATTRIBUTE_NAME]: \"http://www.w3.org/2000/xmlns/\",\n [XLINK_ATTRIBUTE_NAME]: \"http://www.w3.org/1999/xlink\",\n svg: \"http://www.w3.org/2000/svg\"\n};\nvar observeUnmount = (domNode, onUnmount) => {\n if (!domNode || typeof onUnmount !== \"function\") {\n throw new Error(\"Invalid arguments. Ensure domNode and onUnmount are valid.\");\n }\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n let parentNode = domNode.parentNode;\n if (!parentNode) {\n throw new Error(\"The provided domNode does not have a parentNode.\");\n }\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.removedNodes.length > 0) {\n for (const removedNode of mutation.removedNodes) {\n if (removedNode === domNode) {\n queueMicrotask(() => {\n if (!domNode.isConnected) {\n onUnmount();\n observer.disconnect();\n return;\n }\n const newParent = domNode.parentNode;\n if (newParent && newParent !== parentNode) {\n parentNode = newParent;\n observer.disconnect();\n observer.observe(parentNode, { childList: true });\n }\n });\n return;\n }\n }\n }\n }\n });\n observer.observe(parentNode, { childList: true });\n};\nvar handleLifecycleEventsForOnMount = (newEl) => {\n if (typeof newEl?.$onMount === \"function\") {\n newEl.$onMount(newEl);\n newEl.$onMount = null;\n }\n if (typeof newEl?.$onUnmount === \"function\") {\n observeUnmount(newEl, newEl.$onUnmount);\n }\n};\nvar getRenderer = (document2) => {\n const renderer = {\n hasElNamespace: (domElement) => domElement.namespaceURI === nsMap.svg,\n hasSvgNamespace: (parentElement, type) => renderer.hasElNamespace(parentElement) && type !== \"STYLE\" && type !== \"SCRIPT\",\n createElementOrElements: (virtualNode, parentDomElement) => {\n if (Array.isArray(virtualNode)) {\n return renderer.createChildElements(virtualNode, parentDomElement);\n }\n if (typeof virtualNode !== \"undefined\") {\n return renderer.createElement(virtualNode, parentDomElement);\n }\n return renderer.createTextNode(\"\", parentDomElement);\n },\n createElement: (virtualNode, parentDomElement) => {\n let newEl;\n try {\n if (typeof virtualNode === \"function\" && virtualNode.constructor.name === \"AsyncFunction\") {\n newEl = document2.createElement(\"div\");\n } else if (typeof virtualNode === \"object\" && virtualNode !== null && \"type\" in virtualNode) {\n const vNode = virtualNode;\n if (typeof vNode.type === \"function\") {\n newEl = document2.createElement(\"div\");\n newEl.innerText = `FATAL ERROR: ${vNode.type._error}`;\n } else if (typeof vNode.type === \"string\" && vNode.type.toUpperCase() === \"SVG\" || parentDomElement && renderer.hasSvgNamespace(parentDomElement, typeof vNode.type === \"string\" ? vNode.type.toUpperCase() : \"\")) {\n newEl = document2.createElementNS(nsMap.svg, vNode.type);\n } else {\n newEl = document2.createElement(vNode.type);\n }\n if (vNode.attributes) {\n renderer.setAttributes(vNode, newEl);\n if (vNode.attributes.dangerouslySetInnerHTML) {\n newEl.innerHTML = vNode.attributes.dangerouslySetInnerHTML.__html;\n }\n }\n if (vNode.children && !vNode.attributes?.dangerouslySetInnerHTML) {\n renderer.createChildElements(vNode.children, newEl);\n }\n } else {\n if (typeof virtualNode === \"string\" || typeof virtualNode === \"number\") {\n newEl = document2.createElement(String(virtualNode));\n }\n }\n if (newEl && parentDomElement) {\n parentDomElement.appendChild(newEl);\n handleLifecycleEventsForOnMount(newEl);\n }\n } catch (e) {\n console.error(\"Fatal error! Error happend while rendering the VDOM!\", e, virtualNode);\n throw e;\n }\n return newEl;\n },\n createTextNode: (text, domElement) => {\n const node = document2.createTextNode(text.toString());\n if (domElement) {\n domElement.appendChild(node);\n }\n return node;\n },\n createChildElements: (virtualChildren, domElement) => {\n const children = [];\n for (let i = 0;i < virtualChildren.length; i++) {\n const virtualChild = virtualChildren[i];\n if (typeof virtualChild === \"boolean\") {\n continue;\n }\n if (virtualChild === null || typeof virtualChild !== \"object\" && typeof virtualChild !== \"function\") {\n children.push(renderer.createTextNode((typeof virtualChild === \"undefined\" || virtualChild === null ? \"\" : virtualChild).toString(), domElement));\n } else {\n children.push(renderer.createElement(virtualChild, domElement));\n }\n }\n return children;\n },\n setAttribute: (name, value, domElement) => {\n if (typeof value === \"undefined\")\n return;\n if (name === DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE)\n return;\n if (name === \"key\") {\n domElement._defussKey = String(value);\n return;\n }\n if (name === REF_ATTRIBUTE_NAME && typeof value !== \"function\") {\n const ref = value;\n ref.current = domElement;\n domElement._defussRef = value;\n domElement.$onUnmount = queueCallback(() => {});\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n } else {\n queueMicrotask(() => {\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n }\n });\n }\n return;\n }\n const parsed = parseEventPropName(name);\n if (parsed && typeof value === \"function\") {\n const { eventType, capture } = parsed;\n if (eventType === \"mount\") {\n domElement.$onMount = queueCallback(value);\n return;\n }\n if (eventType === \"unmount\") {\n if (domElement.$onUnmount) {\n const existingUnmount = domElement.$onUnmount;\n domElement.$onUnmount = () => {\n existingUnmount();\n value();\n };\n } else {\n domElement.$onUnmount = queueCallback(value);\n }\n return;\n }\n registerDelegatedEvent(domElement, eventType, value, { capture });\n return;\n }\n if (name === \"className\") {\n name = CLASS_ATTRIBUTE_NAME;\n }\n if (name === CLASS_ATTRIBUTE_NAME && Array.isArray(value)) {\n value = value.filter((val) => !!val).join(\" \");\n }\n const nsEndIndex = name.match(/[A-Z]/)?.index;\n if (renderer.hasElNamespace(domElement) && nsEndIndex) {\n const ns = name.substring(0, nsEndIndex).toLowerCase();\n const attrName = name.substring(nsEndIndex, name.length).toLowerCase();\n const namespace = nsMap[ns] || null;\n domElement.setAttributeNS(namespace, ns === XLINK_ATTRIBUTE_NAME || ns === XMLNS_ATTRIBUTE_NAME ? `${ns}:${attrName}` : name, String(value));\n } else if (name === \"style\" && typeof value !== \"string\") {\n const styleObj = value;\n for (const prop of Object.keys(styleObj)) {\n domElement.style[prop] = String(styleObj[prop]);\n }\n } else if (typeof value === \"boolean\") {\n domElement[name] = value;\n if (value) {\n domElement.setAttribute(name, \"\");\n } else {\n domElement.removeAttribute(name);\n }\n } else if ((name === \"value\" || name === \"checked\" || name === \"selectedIndex\") && (domElement.nodeName === \"INPUT\" || domElement.nodeName === \"TEXTAREA\" || domElement.nodeName === \"SELECT\")) {\n domElement[name] = value;\n if (name === \"checked\") {\n if (value) {\n domElement.setAttribute(\"checked\", \"\");\n } else {\n domElement.removeAttribute(\"checked\");\n }\n } else if (name === \"value\") {\n domElement.setAttribute(\"value\", String(value));\n }\n } else {\n domElement.setAttribute(name, String(value));\n }\n },\n setAttributes: (virtualNode, domElement) => {\n const attrNames = Object.keys(virtualNode.attributes ?? {});\n for (let i = 0;i < attrNames.length; i++) {\n renderer.setAttribute(attrNames[i], virtualNode.attributes[attrNames[i]], domElement);\n }\n }\n };\n return renderer;\n};\n\n// src/html.ts\nvar FROM_DOM_MARKER = Symbol(\"defuss-morph.from-dom\");\nvar HTML_BOOLEAN_ATTRIBUTES = new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\"\n]);\nvar domAttributeToVNodeValue = (attr) => HTML_BOOLEAN_ATTRIBUTES.has(attr.name.toLowerCase()) ? true : attr.value;\nfunction parseDOM(input, type, Parser) {\n return new Parser().parseFromString(input, type);\n}\nfunction isSVG(input, Parser) {\n const doc = parseDOM(input, \"image/svg+xml\", Parser);\n if (!doc.documentElement)\n return false;\n return doc.documentElement.nodeName.toLowerCase() === \"svg\";\n}\nfunction isHTML(input, Parser) {\n const doc = parseDOM(input, \"text/html\", Parser);\n return doc.documentElement.querySelectorAll(\"*\").length > 2;\n}\nvar isMarkup = (input, Parser) => input.indexOf(\"<\") > -1 && input.indexOf(\">\") > -1 && (isHTML(input, Parser) || isSVG(input, Parser));\nfunction renderMarkup(markup, Parser, doc) {\n const parsed = doc ? doc : parseDOM(markup, getMimeType(markup, Parser), Parser);\n if (parsed.body)\n return Array.from(parsed.body.childNodes);\n return parsed.documentElement ? [parsed.documentElement] : [];\n}\nfunction getMimeType(input, Parser) {\n if (isSVG(input, Parser)) {\n return \"image/svg+xml\";\n }\n return \"text/html\";\n}\nfunction domNodeToVNode(node) {\n if (node.nodeType === 3) {\n return node.textContent || \"\";\n }\n if (node.nodeType === 1) {\n const element = node;\n const attributes = {};\n for (let i = 0;i < element.attributes.length; i++) {\n const attr = element.attributes[i];\n attributes[attr.name] = domAttributeToVNodeValue(attr);\n }\n const children = [];\n for (let i = 0;i < element.childNodes.length; i++) {\n const childVNode = domNodeToVNode(element.childNodes[i]);\n children.push(childVNode);\n }\n return {\n type: element.tagName.toLowerCase(),\n attributes: { ...attributes, [FROM_DOM_MARKER]: true },\n children\n };\n }\n return \"\";\n}\nfunction htmlStringToVNodes(html, Parser) {\n const parser = new Parser;\n const doc = parser.parseFromString(html, \"text/html\");\n const vNodes = [];\n for (let i = 0;i < doc.body.childNodes.length; i++) {\n const vnode = domNodeToVNode(doc.body.childNodes[i]);\n if (vnode !== \"\") {\n vNodes.push(vnode);\n }\n }\n return vNodes;\n}\n\n// src/morph.ts\nvar areDomNodesEqual = (oldNode, newNode) => {\n if (oldNode === newNode)\n return true;\n if (oldNode.nodeType !== newNode.nodeType)\n return false;\n if (oldNode.nodeType === 1) {\n const oldElement = oldNode;\n const newElement = newNode;\n if (oldElement.tagName !== newElement.tagName)\n return false;\n const oldAttrs = oldElement.attributes;\n const newAttrs = newElement.attributes;\n if (oldAttrs.length !== newAttrs.length)\n return false;\n for (let i = 0;i < oldAttrs.length; i++) {\n const oldAttr = oldAttrs[i];\n const newAttrValue = newElement.getAttribute(oldAttr.name);\n if (oldAttr.value !== newAttrValue)\n return false;\n }\n }\n if (oldNode.nodeType === 3) {\n if (oldNode.textContent !== newNode.textContent)\n return false;\n }\n return true;\n};\nfunction isTextLike(value) {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction isVNode(value) {\n return Boolean(value && typeof value === \"object\" && \"type\" in value);\n}\nfunction toValidChild(child, lenient = false) {\n if (child == null)\n return child;\n if (isTextLike(child))\n return child;\n if (isVNode(child))\n return child;\n if (lenient && child && typeof child === \"object\" && \"attributes\" in child)\n return child;\n return;\n}\nfunction normalizeChildren(input, lenient = false) {\n const raw = [];\n const pushChild = (child) => {\n if (Array.isArray(child)) {\n child.forEach(pushChild);\n return;\n }\n const valid = toValidChild(child, lenient);\n if (typeof valid === \"undefined\")\n return;\n if (isVNode(valid) && (valid.type === \"fragment\" || valid.type === \"Fragment\")) {\n const nested = Array.isArray(valid.children) ? valid.children : [];\n nested.forEach(pushChild);\n return;\n }\n if (valid === null || typeof valid === \"undefined\" || typeof valid === \"boolean\")\n return;\n raw.push(valid);\n };\n pushChild(input);\n const fused = [];\n let buffer = null;\n const flush = () => {\n if (buffer !== null && buffer.length > 0)\n fused.push(buffer);\n buffer = null;\n };\n for (const child of raw) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n buffer = (buffer ?? \"\") + String(child);\n continue;\n }\n flush();\n fused.push(child);\n }\n flush();\n return fused;\n}\nfunction getVNodeMatchKey(child) {\n if (!child || typeof child !== \"object\")\n return null;\n const key = child.attributes?.key;\n if (typeof key === \"string\" || typeof key === \"number\")\n return `k:${String(key)}`;\n const id = child.attributes?.id;\n if (typeof id === \"string\" && id.length > 0)\n return `id:${id}`;\n return null;\n}\nfunction describePatchItem(child) {\n if (child && typeof child === \"object\") {\n return `<${typeof child.type === \"string\" ? child.type : \"component\"}>`;\n }\n return \"plain text\";\n}\nfunction getDomMatchKeys(node) {\n if (node.nodeType !== 1)\n return [];\n const el = node;\n const keys = [];\n const internalKey = el._defussKey;\n if (internalKey)\n keys.push(`k:${internalKey}`);\n const attrKey = el.getAttribute(\"key\");\n if (attrKey)\n keys.push(`k:${attrKey}`);\n const id = el.id;\n if (id)\n keys.push(`id:${id}`);\n return keys;\n}\nfunction areNodeAndChildMatching(domNode, child) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return domNode.nodeType === 3;\n }\n if (child && typeof child === \"object\") {\n if (domNode.nodeType !== 1)\n return false;\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = typeof child.type === \"string\" ? child.type.toLowerCase() : \"\";\n if (!newTag || oldTag !== newTag)\n return false;\n return true;\n }\n return false;\n}\nfunction createDomFromChild(child, globals) {\n const renderer = getRenderer(globals.window.document);\n if (child == null)\n return;\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return [globals.window.document.createTextNode(String(child))];\n }\n const created = renderer.createElementOrElements(child);\n if (!created)\n return;\n const nodes = Array.isArray(created) ? created : [created];\n return nodes.filter(Boolean);\n}\nfunction shouldPreserveFormStateAttribute(el, attrName, vnode) {\n const tag = el.tagName.toLowerCase();\n const hasExplicit = Object.hasOwn(vnode.attributes ?? {}, attrName);\n if (hasExplicit)\n return false;\n if (tag === \"input\")\n return attrName === \"value\" || attrName === \"checked\";\n if (tag === \"textarea\")\n return attrName === \"value\";\n if (tag === \"select\")\n return attrName === \"value\";\n return false;\n}\nfunction patchElementInPlace(el, vnode, globals, mergeAttributes = false) {\n const renderer = getRenderer(globals.window.document);\n const existingAttrs = mergeAttributes ? [] : Array.from(el.attributes);\n const nextAttrs = vnode.attributes ?? {};\n for (const attr of existingAttrs) {\n const { name } = attr;\n if (name === \"key\")\n continue;\n if (name.startsWith(\"on\"))\n continue;\n if (name === \"class\" && (Object.hasOwn(nextAttrs, \"class\") || Object.hasOwn(nextAttrs, \"className\"))) {\n continue;\n }\n if (!Object.hasOwn(nextAttrs, name)) {\n if (shouldPreserveFormStateAttribute(el, name, vnode))\n continue;\n el.removeAttribute(name);\n }\n }\n const preserveDelegatedHandlers = mergeAttributes || Boolean(nextAttrs[FROM_DOM_MARKER]);\n if (!preserveDelegatedHandlers) {\n const registeredKeys = getRegisteredEventKeys(el);\n const nextEventKeys = new Set;\n for (const propName of Object.keys(nextAttrs)) {\n const parsed = parseEventPropName(propName);\n if (parsed) {\n const phase = parsed.capture ? \"capture\" : \"bubble\";\n nextEventKeys.add(`${parsed.eventType}:${phase}`);\n }\n }\n for (const key of registeredKeys) {\n if (!nextEventKeys.has(key)) {\n const [eventType, phase] = key.split(\":\");\n removeDelegatedEventByKey(el, eventType, phase);\n }\n }\n }\n renderer.setAttributes(vnode, el);\n handleLifecycleEventsForOnMount(el);\n const d = vnode.attributes?.dangerouslySetInnerHTML;\n if (d && typeof d === \"object\" && typeof d.__html === \"string\") {\n el.innerHTML = d.__html;\n return;\n }\n const tag = el.tagName.toLowerCase();\n if (tag === \"textarea\") {\n const isControlled = Object.hasOwn(nextAttrs, \"value\");\n const isActive = el.ownerDocument?.activeElement === el;\n if (isActive && !isControlled)\n return;\n }\n if (mergeAttributes && (vnode.children === undefined || vnode.children.length === 0 && nextAttrs[FROM_DOM_MARKER]))\n return;\n morphDomDirect(el, vnode.children ?? [], globals);\n}\nfunction morphNode(domNode, child, globals, mergeAttributes = false) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n const text = String(child);\n if (domNode.nodeType === 3) {\n if (domNode.nodeValue !== text)\n domNode.nodeValue = text;\n return domNode;\n }\n const next = globals.window.document.createTextNode(text);\n domNode.parentNode?.replaceChild(next, domNode);\n return next;\n }\n if (child && typeof child === \"object\") {\n const newType = typeof child.type === \"string\" ? child.type : null;\n if (!newType)\n return domNode;\n if (domNode.nodeType !== 1) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n domNode.parentNode?.replaceChild(first, domNode);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = newType.toLowerCase();\n if (oldTag !== newTag) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n el.parentNode?.replaceChild(first, el);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n patchElementInPlace(el, child, globals, mergeAttributes);\n return el;\n }\n domNode.parentNode?.removeChild(domNode);\n return null;\n}\nvar renderingNodes = new WeakSet;\nvar pendingMorphs = new Map;\nvar resolveGlobals = (el, globals) => {\n if (globals)\n return globals;\n const win = el?.ownerDocument?.defaultView ?? globalThis;\n return { window: win };\n};\nfunction isAncestorRendering(el) {\n let current = el.parentElement;\n while (current) {\n if (renderingNodes.has(current))\n return true;\n current = current.parentElement;\n }\n return false;\n}\nfunction flushPendingMorphs() {\n if (pendingMorphs.size === 0)\n return;\n const snapshot = [...pendingMorphs.entries()];\n pendingMorphs.clear();\n for (const [el, { vdom, globals, mode }] of snapshot) {\n if (!el.isConnected)\n continue;\n updateDomWithVdom(el, vdom, globals, mode);\n }\n}\nfunction updateDomWithVdom(parentElement, newVDOM, globals, mode = \"replace\") {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n if (renderingNodes.has(parentElement) || isAncestorRendering(parentElement)) {\n pendingMorphs.set(parentElement, {\n vdom: newVDOM,\n globals: resolvedGlobals,\n mode\n });\n return;\n }\n renderingNodes.add(parentElement);\n try {\n morphDomDirect(parentElement, newVDOM, resolvedGlobals, mode);\n } finally {\n renderingNodes.delete(parentElement);\n }\n flushPendingMorphs();\n}\nfunction morphDiff(targetRoot, patchItems, globals) {\n const keyedPool = new Map;\n for (const node of Array.from(targetRoot.childNodes)) {\n for (const k of getDomMatchKeys(node)) {\n if (!keyedPool.has(k))\n keyedPool.set(k, node);\n }\n }\n for (const item of patchItems) {\n if (typeof item === \"string\" && item.trim() === \"\")\n continue;\n const key = getVNodeMatchKey(item);\n if (!key) {\n throw new Error(`morph diff: patch items must be elements with a key or id attribute (got ${describePatchItem(item)})`);\n }\n const match = keyedPool.get(key);\n if (match) {\n const patchItem = item && typeof item === \"object\" && !item.type ? { ...item, type: match.tagName.toLowerCase() } : item;\n morphNode(match, patchItem, globals, true);\n continue;\n }\n if (!item?.type) {\n throw new Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id \"${key}\"`);\n }\n const created = createDomFromChild(item, globals) ?? [];\n for (const node of created) {\n targetRoot.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n}\nfunction morphDomDirect(parentElement, newVDOM, globals, mode = \"replace\") {\n const el = parentElement;\n const isCustomElement = el.tagName.includes(\"-\");\n const targetRoot = el.shadowRoot && !isCustomElement ? el.shadowRoot : parentElement;\n const nextChildren = normalizeChildren(newVDOM, mode === \"diff\");\n if (mode === \"diff\") {\n morphDiff(targetRoot, nextChildren, globals);\n return;\n }\n const existing = Array.from(targetRoot.childNodes);\n const keyedPool = new Map;\n const nodeKeys = new WeakMap;\n const unkeyedPool = [];\n for (const node of existing) {\n const keys = getDomMatchKeys(node);\n if (keys.length > 0) {\n nodeKeys.set(node, keys);\n let addedToKeyedPool = false;\n for (const k of keys) {\n if (!keyedPool.has(k)) {\n keyedPool.set(k, node);\n addedToKeyedPool = true;\n }\n }\n if (!addedToKeyedPool) {\n unkeyedPool.push(node);\n }\n } else {\n unkeyedPool.push(node);\n }\n }\n const consumeKeyedNode = (node) => {\n const keys = nodeKeys.get(node) ?? [];\n for (const k of keys)\n keyedPool.delete(k);\n };\n const takeUnkeyedMatch = (child) => {\n for (let i = 0;i < unkeyedPool.length; i++) {\n const candidate = unkeyedPool[i];\n if (areNodeAndChildMatching(candidate, child)) {\n unkeyedPool.splice(i, 1);\n return candidate;\n }\n }\n return;\n };\n let domIndex = 0;\n for (const child of nextChildren) {\n const key = getVNodeMatchKey(child);\n let match;\n if (key) {\n match = keyedPool.get(key);\n if (match)\n consumeKeyedNode(match);\n } else {\n match = takeUnkeyedMatch(child);\n }\n const anchor = targetRoot.childNodes[domIndex] ?? null;\n if (match) {\n if (match !== anchor) {\n targetRoot.insertBefore(match, anchor);\n }\n const morphed = morphNode(match, child, globals);\n if (morphed && morphed !== match) {}\n domIndex++;\n continue;\n }\n const created = createDomFromChild(child, globals);\n if (!created || Array.isArray(created) && created.length === 0)\n continue;\n const nodes = Array.isArray(created) ? created : [created];\n for (const node of nodes) {\n targetRoot.insertBefore(node, anchor);\n handleLifecycleEventsForOnMount(node);\n domIndex++;\n }\n }\n const remaining = new Set;\n for (const node of unkeyedPool)\n remaining.add(node);\n for (const node of keyedPool.values())\n remaining.add(node);\n for (const node of remaining) {\n if (node.parentNode === targetRoot) {\n if (node.nodeType === 1) {\n clearDelegatedEventsDeep(node);\n }\n targetRoot.removeChild(node);\n }\n }\n}\nfunction replaceDomWithVdom(parentElement, newVDOM, globals) {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n const renderer = getRenderer(resolvedGlobals.window.document);\n const newDom = renderer.createElementOrElements(newVDOM);\n if (Array.isArray(newDom)) {\n for (const node of newDom) {\n if (node) {\n parentElement.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n } else if (newDom) {\n parentElement.appendChild(newDom);\n handleLifecycleEventsForOnMount(newDom);\n }\n}\n\n// src/transitions.ts\nvar injectShakeKeyframes = (doc) => {\n if (!doc)\n return;\n if (!doc.getElementById(\"defuss-shake\")) {\n const style = doc.createElement(\"style\");\n style.id = \"defuss-shake\";\n style.textContent = \"@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}\";\n doc.head.appendChild(style);\n }\n};\nvar getTransitionStyles = (type, duration, easing = \"ease-in-out\") => {\n const t = `transform ${duration}ms ${easing}, opacity ${duration}ms ${easing}`;\n const styles = {\n fade: {\n enter: { opacity: \"0\", transition: t, transform: \"translate3d(0,0,0)\" },\n enterActive: { opacity: \"1\" },\n exit: { opacity: \"1\", transition: t, transform: \"translate3d(0,0,0)\" },\n exitActive: { opacity: \"0\" }\n },\n \"slide-left\": {\n enter: {\n transform: \"translate3d(100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(-100%,0,0)\", opacity: \"0.5\" }\n },\n \"slide-right\": {\n enter: {\n transform: \"translate3d(-100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(100%,0,0)\", opacity: \"0.5\" }\n },\n shake: (() => {\n injectShakeKeyframes(typeof document !== \"undefined\" ? document : undefined);\n return {\n enter: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n enterActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n },\n exit: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n exitActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n }\n };\n })()\n };\n return styles[type] || { enter: {}, enterActive: {}, exit: {}, exitActive: {} };\n};\nvar applyStyles = (el, styles) => Object.entries(styles).forEach(([k, v]) => el.style.setProperty(k, String(v)));\nvar DEFAULT_TRANSITION_CONFIG = {\n type: \"fade\",\n duration: 300,\n easing: \"ease-in-out\",\n delay: 0,\n target: \"parent\"\n};\nvar wait = (ms) => new Promise((r) => setTimeout(r, ms));\nvar performCrossfade = async (element, updateCallback, duration, easing) => {\n const originalStyle = element.style.cssText;\n const snapshot = element.cloneNode(true);\n const doc = element.ownerDocument;\n try {\n const rect = element.getBoundingClientRect();\n snapshot.style.cssText = `position:absolute;top:${rect.top}px;left:${rect.left}px;width:${rect.width}px;height:${rect.height}px;opacity:1;transition:opacity ${duration}ms ${easing};z-index:1000;`;\n element.style.opacity = \"0\";\n element.style.transition = `opacity ${duration}ms ${easing}`;\n doc.body.appendChild(snapshot);\n await updateCallback();\n element.offsetHeight;\n snapshot.style.opacity = \"0\";\n element.style.opacity = \"1\";\n await wait(duration);\n doc.body.removeChild(snapshot);\n } catch (error) {\n if (snapshot.parentElement)\n doc.body.removeChild(snapshot);\n throw error;\n } finally {\n element.style.cssText = originalStyle;\n }\n};\nvar performTransition = async (element, updateCallback, config = {}) => {\n const {\n type = \"fade\",\n duration = 300,\n easing = \"ease-in-out\",\n delay = 0\n } = { ...DEFAULT_TRANSITION_CONFIG, ...config };\n if (type === \"none\") {\n await updateCallback();\n return;\n }\n if (delay > 0)\n await wait(delay);\n if (type === \"fade\") {\n await performCrossfade(element, updateCallback, duration, easing);\n return;\n }\n const styles = config.styles || getTransitionStyles(type, duration, easing);\n const originalTransition = element.style.transition;\n const originalAnimation = element.style.animation;\n try {\n if (type === \"shake\") {\n element.style.animation = \"none\";\n element.offsetHeight;\n }\n applyStyles(element, styles.exit);\n element.offsetHeight;\n applyStyles(element, styles.exitActive);\n await wait(duration);\n await updateCallback();\n applyStyles(element, styles.enter);\n element.offsetHeight;\n applyStyles(element, styles.enterActive);\n await wait(duration);\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n } catch (error) {\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n throw error;\n }\n};\n\n// src/index.ts\nvar inflightTransitions = new WeakMap;\nvar morph2 = (el, newContent, options = {}) => {\n const globals = resolveGlobals(el);\n const win = globals.window;\n const mode = options.diff ? \"diff\" : \"replace\";\n const apply = (content) => updateDomWithVdom(el, typeof content === \"string\" ? htmlStringToVNodes(content, win.DOMParser) : content, globals, mode);\n const transition = options.transition;\n if (transition && transition.type !== \"none\") {\n const config = { ...DEFAULT_TRANSITION_CONFIG, ...transition };\n const transitionTarget = config.target === \"self\" ? el : el.parentElement;\n if (!transitionTarget) {\n apply(newContent);\n return;\n }\n const slot2 = { content: newContent };\n inflightTransitions.set(el, slot2);\n return performTransition(transitionTarget, async () => {\n if (inflightTransitions.get(el) === slot2)\n apply(slot2.content);\n }, config).finally(() => {\n if (inflightTransitions.get(el) === slot2)\n inflightTransitions.delete(el);\n });\n }\n const slot = inflightTransitions.get(el);\n if (slot)\n slot.content = newContent;\n apply(newContent);\n};\n\n// src/global.ts\nif (typeof globalThis !== \"undefined\") {\n const g = globalThis;\n const current = g.df$;\n if (current === null || typeof current !== \"object\" && typeof current !== \"function\") {\n g.df$ = {};\n }\n Object.assign(g.df$, exports_src);\n}\nexport {\n updateDomWithVdom,\n resolveGlobals,\n replaceDomWithVdom,\n renderMarkup,\n removeDelegatedEventByKey,\n removeDelegatedEvent,\n registerDelegatedEvent,\n queueCallback,\n performTransition,\n parseEventPropName,\n parseDOM,\n observeUnmount,\n nsMap,\n morph2 as morph,\n isSVG,\n isMarkup,\n isHTML,\n htmlStringToVNodes,\n handleLifecycleEventsForOnMount,\n getTransitionStyles,\n getRenderer,\n getRegisteredEventTypes,\n getRegisteredEventKeys,\n getMimeType,\n domNodeToVNode,\n clearDelegatedEventsDeep,\n clearDelegatedEvents,\n areDomNodesEqual,\n applyStyles,\n XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS\n};\n\n//# debugId=BA5C1E84E9A829C164756E2164756E21\n//# sourceMappingURL=all.js.map\n"],"file":"all.min.js"}
package/dist/stats.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "defuss-morph",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "files": {
5
5
  "dist/index.mjs": {
6
6
  "bytes": 41197,
@@ -11,12 +11,12 @@
11
11
  "gzip": 9912
12
12
  },
13
13
  "dist/all.js": {
14
- "bytes": 42572,
15
- "gzip": 10076
14
+ "bytes": 42634,
15
+ "gzip": 10082
16
16
  },
17
17
  "dist/all.min.js": {
18
- "bytes": 19394,
19
- "gzip": 6948
18
+ "bytes": 19416,
19
+ "gzip": 6951
20
20
  }
21
21
  }
22
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "defuss-morph",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"