@clusterenvision/ui-framework 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +295 -0
  3. package/dist/ai-assistant-Db002XYC.d.ts +92 -0
  4. package/dist/ai-assistant-EobSUV70.d.cts +92 -0
  5. package/dist/browser-DnHpnWwE.d.cts +354 -0
  6. package/dist/browser-Dx4oKf5e.d.ts +354 -0
  7. package/dist/browser-signals-07qodpYT.d.cts +66 -0
  8. package/dist/browser-signals-07qodpYT.d.ts +66 -0
  9. package/dist/browser-signals.cjs +32 -0
  10. package/dist/browser-signals.cjs.map +1 -0
  11. package/dist/browser-signals.d.cts +1 -0
  12. package/dist/browser-signals.d.ts +1 -0
  13. package/dist/browser-signals.js +3 -0
  14. package/dist/browser-signals.js.map +1 -0
  15. package/dist/browser.cjs +197 -0
  16. package/dist/browser.cjs.map +1 -0
  17. package/dist/browser.d.cts +13 -0
  18. package/dist/browser.d.ts +13 -0
  19. package/dist/browser.js +12 -0
  20. package/dist/browser.js.map +1 -0
  21. package/dist/chunk-22HQL2Y4.js +568 -0
  22. package/dist/chunk-22HQL2Y4.js.map +1 -0
  23. package/dist/chunk-3ZBRNFEE.js +1525 -0
  24. package/dist/chunk-3ZBRNFEE.js.map +1 -0
  25. package/dist/chunk-4HRORR2Q.js +1953 -0
  26. package/dist/chunk-4HRORR2Q.js.map +1 -0
  27. package/dist/chunk-4L3UXVL5.cjs +68 -0
  28. package/dist/chunk-4L3UXVL5.cjs.map +1 -0
  29. package/dist/chunk-6BYWFGQY.cjs +226 -0
  30. package/dist/chunk-6BYWFGQY.cjs.map +1 -0
  31. package/dist/chunk-7SCIB5HP.js +57 -0
  32. package/dist/chunk-7SCIB5HP.js.map +1 -0
  33. package/dist/chunk-BBAUALNU.js +888 -0
  34. package/dist/chunk-BBAUALNU.js.map +1 -0
  35. package/dist/chunk-CHLDE4JQ.js +715 -0
  36. package/dist/chunk-CHLDE4JQ.js.map +1 -0
  37. package/dist/chunk-CXTAUXLG.cjs +71 -0
  38. package/dist/chunk-CXTAUXLG.cjs.map +1 -0
  39. package/dist/chunk-D2USIT6V.js +121 -0
  40. package/dist/chunk-D2USIT6V.js.map +1 -0
  41. package/dist/chunk-D3H5CGVD.js +36 -0
  42. package/dist/chunk-D3H5CGVD.js.map +1 -0
  43. package/dist/chunk-DQBX75NJ.js +92 -0
  44. package/dist/chunk-DQBX75NJ.js.map +1 -0
  45. package/dist/chunk-DRPG2DFX.js +208 -0
  46. package/dist/chunk-DRPG2DFX.js.map +1 -0
  47. package/dist/chunk-EFOOXCY7.cjs +41 -0
  48. package/dist/chunk-EFOOXCY7.cjs.map +1 -0
  49. package/dist/chunk-FFCZSYC7.cjs +906 -0
  50. package/dist/chunk-FFCZSYC7.cjs.map +1 -0
  51. package/dist/chunk-FNXIYAET.cjs +1593 -0
  52. package/dist/chunk-FNXIYAET.cjs.map +1 -0
  53. package/dist/chunk-I6GNUM3P.cjs +63 -0
  54. package/dist/chunk-I6GNUM3P.cjs.map +1 -0
  55. package/dist/chunk-IHAMVLRY.js +129 -0
  56. package/dist/chunk-IHAMVLRY.js.map +1 -0
  57. package/dist/chunk-IRBUKIRF.cjs +133 -0
  58. package/dist/chunk-IRBUKIRF.cjs.map +1 -0
  59. package/dist/chunk-KPG5HAHK.cjs +97 -0
  60. package/dist/chunk-KPG5HAHK.cjs.map +1 -0
  61. package/dist/chunk-N7Q2ESLG.cjs +130 -0
  62. package/dist/chunk-N7Q2ESLG.cjs.map +1 -0
  63. package/dist/chunk-PFBEIFVS.js +180 -0
  64. package/dist/chunk-PFBEIFVS.js.map +1 -0
  65. package/dist/chunk-PVZVFICK.cjs +318 -0
  66. package/dist/chunk-PVZVFICK.cjs.map +1 -0
  67. package/dist/chunk-Q3KH6HMU.js +305 -0
  68. package/dist/chunk-Q3KH6HMU.js.map +1 -0
  69. package/dist/chunk-QPAAV32J.cjs +1985 -0
  70. package/dist/chunk-QPAAV32J.cjs.map +1 -0
  71. package/dist/chunk-R6XQUMWT.cjs +61 -0
  72. package/dist/chunk-R6XQUMWT.cjs.map +1 -0
  73. package/dist/chunk-SA5UD5B6.js +92 -0
  74. package/dist/chunk-SA5UD5B6.js.map +1 -0
  75. package/dist/chunk-SM35JOYD.cjs +211 -0
  76. package/dist/chunk-SM35JOYD.cjs.map +1 -0
  77. package/dist/chunk-SZQNIMYI.cjs +592 -0
  78. package/dist/chunk-SZQNIMYI.cjs.map +1 -0
  79. package/dist/chunk-T6T7QE4J.js +224 -0
  80. package/dist/chunk-T6T7QE4J.js.map +1 -0
  81. package/dist/chunk-TIF372DZ.js +65 -0
  82. package/dist/chunk-TIF372DZ.js.map +1 -0
  83. package/dist/chunk-V6JCOBGY.js +69 -0
  84. package/dist/chunk-V6JCOBGY.js.map +1 -0
  85. package/dist/chunk-VHUXNDW2.cjs +189 -0
  86. package/dist/chunk-VHUXNDW2.cjs.map +1 -0
  87. package/dist/chunk-W3LNNY3U.cjs +729 -0
  88. package/dist/chunk-W3LNNY3U.cjs.map +1 -0
  89. package/dist/chunk-ZUWSU4OA.js +61 -0
  90. package/dist/chunk-ZUWSU4OA.js.map +1 -0
  91. package/dist/chunk-ZWUA2LPB.cjs +103 -0
  92. package/dist/chunk-ZWUA2LPB.cjs.map +1 -0
  93. package/dist/cli/index.cjs +566 -0
  94. package/dist/cli/index.cjs.map +1 -0
  95. package/dist/cli/index.d.cts +1 -0
  96. package/dist/cli/index.d.ts +1 -0
  97. package/dist/cli/index.js +558 -0
  98. package/dist/cli/index.js.map +1 -0
  99. package/dist/compiler/index.cjs +80 -0
  100. package/dist/compiler/index.cjs.map +1 -0
  101. package/dist/compiler/index.d.cts +130 -0
  102. package/dist/compiler/index.d.ts +130 -0
  103. package/dist/compiler/index.js +3 -0
  104. package/dist/compiler/index.js.map +1 -0
  105. package/dist/component-BVzvepw9.d.cts +90 -0
  106. package/dist/component-wTxZ2BPD.d.ts +90 -0
  107. package/dist/index-CpxDa60m.d.cts +644 -0
  108. package/dist/index-CpxDa60m.d.ts +644 -0
  109. package/dist/index.cjs +1356 -0
  110. package/dist/index.cjs.map +1 -0
  111. package/dist/index.d.cts +165 -0
  112. package/dist/index.d.ts +165 -0
  113. package/dist/index.js +772 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/lib/dom.cjs +102 -0
  116. package/dist/lib/dom.cjs.map +1 -0
  117. package/dist/lib/dom.d.cts +373 -0
  118. package/dist/lib/dom.d.ts +373 -0
  119. package/dist/lib/dom.js +3 -0
  120. package/dist/lib/dom.js.map +1 -0
  121. package/dist/lib/icons.cjs +20 -0
  122. package/dist/lib/icons.cjs.map +1 -0
  123. package/dist/lib/icons.d.cts +64 -0
  124. package/dist/lib/icons.d.ts +64 -0
  125. package/dist/lib/icons.js +3 -0
  126. package/dist/lib/icons.js.map +1 -0
  127. package/dist/lib/index.cjs +247 -0
  128. package/dist/lib/index.cjs.map +1 -0
  129. package/dist/lib/index.d.cts +30 -0
  130. package/dist/lib/index.d.ts +30 -0
  131. package/dist/lib/index.js +92 -0
  132. package/dist/lib/index.js.map +1 -0
  133. package/dist/lib/theme.cjs +56 -0
  134. package/dist/lib/theme.cjs.map +1 -0
  135. package/dist/lib/theme.d.cts +27 -0
  136. package/dist/lib/theme.d.ts +27 -0
  137. package/dist/lib/theme.js +3 -0
  138. package/dist/lib/theme.js.map +1 -0
  139. package/dist/router-B9kms5XQ.d.ts +124 -0
  140. package/dist/router-YnpW_sIK.d.cts +124 -0
  141. package/dist/runtime/adapters/angular.cjs +48 -0
  142. package/dist/runtime/adapters/angular.cjs.map +1 -0
  143. package/dist/runtime/adapters/angular.d.cts +38 -0
  144. package/dist/runtime/adapters/angular.d.ts +38 -0
  145. package/dist/runtime/adapters/angular.js +46 -0
  146. package/dist/runtime/adapters/angular.js.map +1 -0
  147. package/dist/runtime/adapters/react.cjs +41 -0
  148. package/dist/runtime/adapters/react.cjs.map +1 -0
  149. package/dist/runtime/adapters/react.d.cts +26 -0
  150. package/dist/runtime/adapters/react.d.ts +26 -0
  151. package/dist/runtime/adapters/react.js +39 -0
  152. package/dist/runtime/adapters/react.js.map +1 -0
  153. package/dist/runtime/adapters/vue.cjs +44 -0
  154. package/dist/runtime/adapters/vue.cjs.map +1 -0
  155. package/dist/runtime/adapters/vue.d.cts +37 -0
  156. package/dist/runtime/adapters/vue.d.ts +37 -0
  157. package/dist/runtime/adapters/vue.js +42 -0
  158. package/dist/runtime/adapters/vue.js.map +1 -0
  159. package/dist/runtime/components/ai-assistant.cjs +18 -0
  160. package/dist/runtime/components/ai-assistant.cjs.map +1 -0
  161. package/dist/runtime/components/ai-assistant.d.cts +8 -0
  162. package/dist/runtime/components/ai-assistant.d.ts +8 -0
  163. package/dist/runtime/components/ai-assistant.js +9 -0
  164. package/dist/runtime/components/ai-assistant.js.map +1 -0
  165. package/dist/runtime/components/ai-summary-card.cjs +18 -0
  166. package/dist/runtime/components/ai-summary-card.cjs.map +1 -0
  167. package/dist/runtime/components/ai-summary-card.d.cts +19 -0
  168. package/dist/runtime/components/ai-summary-card.d.ts +19 -0
  169. package/dist/runtime/components/ai-summary-card.js +9 -0
  170. package/dist/runtime/components/ai-summary-card.js.map +1 -0
  171. package/dist/runtime/router.cjs +429 -0
  172. package/dist/runtime/router.cjs.map +1 -0
  173. package/dist/runtime/router.d.cts +2 -0
  174. package/dist/runtime/router.d.ts +2 -0
  175. package/dist/runtime/router.js +421 -0
  176. package/dist/runtime/router.js.map +1 -0
  177. package/dist/runtime/server.cjs +125 -0
  178. package/dist/runtime/server.cjs.map +1 -0
  179. package/dist/runtime/server.d.cts +27 -0
  180. package/dist/runtime/server.d.ts +27 -0
  181. package/dist/runtime/server.js +117 -0
  182. package/dist/runtime/server.js.map +1 -0
  183. package/dist/runtime/workflow/index.cjs +282 -0
  184. package/dist/runtime/workflow/index.cjs.map +1 -0
  185. package/dist/runtime/workflow/index.d.cts +1 -0
  186. package/dist/runtime/workflow/index.d.ts +1 -0
  187. package/dist/runtime/workflow/index.js +5 -0
  188. package/dist/runtime/workflow/index.js.map +1 -0
  189. package/dist/tracing-DGdvMCEl.d.cts +109 -0
  190. package/dist/tracing-DGdvMCEl.d.ts +109 -0
  191. package/dist/types-C4RXXKfk.d.cts +76 -0
  192. package/dist/types-C4RXXKfk.d.ts +76 -0
  193. package/package.json +166 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/compiler/html-parser.js","../src/compiler/compileTemplate.js"],"names":["NodeType","content"],"mappings":"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","file":"chunk-BBAUALNU.js","sourcesContent":["export var NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType[NodeType[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n})(NodeType || (NodeType = {}));\nconst defaultVoidElementNames = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nconst defaultRawTextElementNames = ['script', 'style', 'textarea'];\nconst namedEntities = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"',\n apos: \"'\",\n nbsp: '\\u00a0',\n};\nclass TreeNode {\n parentNode = null;\n previousSibling = null;\n nextSibling = null;\n}\nclass ParentNodeImpl extends TreeNode {\n childNodes = [];\n get firstChild() {\n return this.childNodes[0];\n }\n get lastChild() {\n return this.childNodes[this.childNodes.length - 1];\n }\n appendChild(child) {\n if (child === this) {\n return child;\n }\n detach(child);\n const last = this.lastChild ?? null;\n if (last) {\n last.nextSibling = child;\n }\n child.previousSibling = last;\n child.nextSibling = null;\n child.parentNode = this;\n this.childNodes.push(child);\n return child;\n }\n insertBefore(child, reference) {\n if (child === this) {\n return child;\n }\n if (reference === null) {\n return this.appendChild(child);\n }\n const index = this.childNodes.indexOf(reference);\n if (index === -1) {\n throw new Error('Reference node not found in parent.');\n }\n detach(child);\n const prev = reference.previousSibling;\n if (prev) {\n prev.nextSibling = child;\n }\n child.previousSibling = prev;\n child.nextSibling = reference;\n reference.previousSibling = child;\n child.parentNode = this;\n this.childNodes.splice(index, 0, child);\n return child;\n }\n removeChild(child) {\n const index = this.childNodes.indexOf(child);\n if (index === -1) {\n return child;\n }\n const prev = child.previousSibling;\n const next = child.nextSibling;\n if (prev) {\n prev.nextSibling = next;\n }\n if (next) {\n next.previousSibling = prev;\n }\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n this.childNodes.splice(index, 1);\n return child;\n }\n replaceChild(newChild, oldChild) {\n this.insertBefore(newChild, oldChild);\n this.removeChild(oldChild);\n return newChild;\n }\n clearChildren() {\n for (const child of this.childNodes) {\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n }\n this.childNodes.length = 0;\n }\n get textContent() {\n return this.childNodes.map((child) => child.textContent).join('');\n }\n set textContent(value) {\n this.clearChildren();\n if (value) {\n this.appendChild(new TextNode(value));\n }\n }\n}\n/** Minimal text node representation used by the template compiler and tooling. */\nexport class TextNode extends TreeNode {\n text;\n nodeType = NodeType.TEXT_NODE;\n constructor(text) {\n super();\n this.text = text;\n }\n get textContent() {\n return this.text;\n }\n set textContent(value) {\n this.text = value;\n }\n clone() {\n return new TextNode(this.text);\n }\n toString() {\n return escapeText(this.text);\n }\n}\n/** Comment node implementation used when `preserveComments` is enabled. */\nexport class CommentNode extends TreeNode {\n data;\n nodeType = NodeType.COMMENT_NODE;\n constructor(data) {\n super();\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(value) {\n this.data = value;\n }\n clone() {\n return new CommentNode(this.data);\n }\n toString() {\n return `<!--${this.data}-->`;\n }\n}\n/** Lightweight HTMLElement subset tailored for CE template compilation. */\nexport class HTMLElement extends ParentNodeImpl {\n tagName;\n nodeType = NodeType.ELEMENT_NODE;\n attrs = {};\n normalizedTagName;\n isVoidElement;\n lowerCaseAttributeName;\n constructor(tagName, attrs = {}, options = {}) {\n super();\n this.tagName = tagName;\n const shouldLowercase = options.lowerCaseTagName ?? true;\n this.tagName = shouldLowercase ? tagName.toLowerCase() : tagName;\n this.normalizedTagName = (options.normalizedTagName ?? this.tagName).toLowerCase();\n this.lowerCaseAttributeName = options.lowerCaseAttributeName ?? true;\n this.isVoidElement = options.isVoidElement ?? false;\n for (const [key, value] of Object.entries(attrs)) {\n const normalized = this.normalizeAttrName(key);\n this.attrs[normalized] = options.decodeEntities ? decodeHtmlEntities(value) : value;\n }\n }\n getAttribute(name) {\n return this.attrs[this.normalizeAttrName(name)];\n }\n getAttributeNames() {\n return Object.keys(this.attrs);\n }\n hasAttribute(name) {\n return Object.prototype.hasOwnProperty.call(this.attrs, this.normalizeAttrName(name));\n }\n setAttribute(name, value) {\n this.attrs[this.normalizeAttrName(name)] = value;\n }\n removeAttribute(name) {\n Reflect.deleteProperty(this.attrs, this.normalizeAttrName(name));\n }\n toggleAttribute(name, force) {\n const attr = this.normalizeAttrName(name);\n const exists = Object.prototype.hasOwnProperty.call(this.attrs, attr);\n if (force === true || (!exists && force === undefined)) {\n this.attrs[attr] = '';\n return true;\n }\n if (force === false || exists) {\n Reflect.deleteProperty(this.attrs, attr);\n return false;\n }\n return false;\n }\n clone(deep = true) {\n const clone = new HTMLElement(this.tagName, { ...this.attrs }, {\n lowerCaseTagName: false,\n lowerCaseAttributeName: false,\n isVoidElement: this.isVoidElement,\n normalizedTagName: this.normalizedTagName,\n });\n if (deep) {\n for (const child of this.childNodes) {\n clone.appendChild(child.clone(true));\n }\n }\n return clone;\n }\n toString() {\n const attrString = Object.entries(this.attrs)\n .map(([key, value]) => (value === '' ? key : `${key}=\"${escapeAttribute(value)}\"`))\n .join(' ');\n const openTag = attrString ? `<${this.tagName} ${attrString}>` : `<${this.tagName}>`;\n if (this.isVoidElement) {\n return openTag;\n }\n if (!this.childNodes.length) {\n return `${openTag}</${this.tagName}>`;\n }\n const children = this.childNodes.map((child) => child.toString()).join('');\n return `${openTag}${children}</${this.tagName}>`;\n }\n normalizeAttrName(name) {\n return this.lowerCaseAttributeName ? name.toLowerCase() : name;\n }\n}\n/** Document fragment wrapper returned by `parse` and creation helpers. */\nexport class DocumentFragment extends ParentNodeImpl {\n nodeType = NodeType.DOCUMENT_FRAGMENT_NODE;\n clone(deep = true) {\n const fragment = new DocumentFragment();\n if (deep) {\n for (const child of this.childNodes) {\n fragment.appendChild(child.clone(true));\n }\n }\n return fragment;\n }\n toString() {\n return this.childNodes.map((child) => child.toString()).join('');\n }\n}\nexport function parse(html, options = {}) {\n const runtime = normalizeParseOptions(options);\n const root = new DocumentFragment();\n const stack = [root];\n let index = 0;\n while (index < html.length) {\n const nextLt = html.indexOf('<', index);\n if (nextLt === -1) {\n appendText(html.slice(index));\n break;\n }\n if (nextLt > index) {\n appendText(html.slice(index, nextLt));\n }\n if (html.startsWith('<!--', nextLt)) {\n const endComment = html.indexOf('-->', nextLt + 4);\n if (endComment === -1) {\n if (runtime.preserveComments) {\n appendComment(html.slice(nextLt + 4));\n }\n break;\n }\n if (runtime.preserveComments) {\n appendComment(html.slice(nextLt + 4, endComment));\n }\n index = endComment + 3;\n continue;\n }\n if (html.startsWith('<![CDATA[', nextLt)) {\n const endCdata = html.indexOf(']]>', nextLt + 9);\n const content = endCdata === -1 ? html.slice(nextLt + 9) : html.slice(nextLt + 9, endCdata);\n appendText(content, false);\n if (endCdata === -1) {\n break;\n }\n index = endCdata + 3;\n continue;\n }\n const { content, endIndex } = readTag(html, nextLt + 1);\n if (!content) {\n index = endIndex + 1;\n continue;\n }\n if (content.startsWith('/')) {\n const closingName = extractClosingName(content);\n if (closingName) {\n const normalizedClosing = closingName.toLowerCase();\n while (stack.length > 1) {\n const node = stack.pop();\n if (node instanceof HTMLElement && node.normalizedTagName === normalizedClosing) {\n break;\n }\n }\n }\n index = endIndex + 1;\n continue;\n }\n if (content.startsWith('!') || content.startsWith('?')) {\n index = endIndex + 1;\n continue;\n }\n const tag = parseTag(content, runtime);\n const element = new HTMLElement(tag.tagName, tag.attrs, {\n lowerCaseTagName: false,\n lowerCaseAttributeName: runtime.lowerCaseAttributeName,\n decodeEntities: false,\n isVoidElement: runtime.voidElements.has(tag.normalizedTagName),\n normalizedTagName: tag.normalizedTagName,\n });\n stack[stack.length - 1].appendChild(element);\n if (runtime.rawTextElements.has(tag.normalizedTagName)) {\n const rawStart = endIndex + 1;\n const closing = findRawTextClosure(html, rawStart, tag.normalizedTagName);\n const inner = closing ? html.slice(rawStart, closing.start) : html.slice(rawStart);\n appendText(inner, false, element);\n index = closing ? closing.end + 1 : html.length;\n continue;\n }\n if (!tag.selfClosing && !runtime.voidElements.has(tag.normalizedTagName)) {\n stack.push(element);\n }\n index = endIndex + 1;\n }\n return root;\n function appendText(text, decode = true, target) {\n if (!text) {\n return;\n }\n const nodeText = decode && runtime.decodeEntities ? decodeHtmlEntities(text) : text;\n (target ?? stack[stack.length - 1]).appendChild(new TextNode(nodeText));\n }\n function appendComment(value) {\n stack[stack.length - 1].appendChild(new CommentNode(value));\n }\n}\nexport function createElement(tagName, attrs = {}, options = {}) {\n const normalizedTag = (options.lowerCaseTagName ?? true) ? tagName.toLowerCase() : tagName;\n const isVoid = options.isVoidElement ?? defaultVoidSet.has(normalizedTag.toLowerCase());\n return new HTMLElement(tagName, attrs, { ...options, isVoidElement: isVoid, normalizedTagName: normalizedTag.toLowerCase() });\n}\nexport function createTextNode(text) {\n return new TextNode(text);\n}\nexport function createCommentNode(content) {\n return new CommentNode(content);\n}\nexport function createFragment(children = [], options = {}) {\n const fragment = new DocumentFragment();\n for (const child of children) {\n fragment.appendChild(options.clone ? child.clone(true) : child);\n }\n return fragment;\n}\nexport function cloneNode(node, deep = true) {\n return node.clone(deep);\n}\nexport function serialize(target, options = {}) {\n const nodes = Array.isArray(target) ? target : [target];\n if (!options.pretty) {\n return nodes.map((node) => node.toString()).join('');\n }\n const indent = options.indent ?? ' ';\n const newline = options.newline ?? '\\n';\n return nodes\n .map((node) => serializePretty(node, indent, newline, 0))\n .filter(Boolean)\n .join(newline);\n}\nexport function walk(target, visitor) {\n const nodes = Array.isArray(target) ? target : [target];\n traverse(nodes, visitor, null, 0);\n}\nexport function isElementNode(node) {\n return node instanceof HTMLElement;\n}\nexport function isTextNode(node) {\n return node instanceof TextNode;\n}\nexport function isCommentNode(node) {\n return node instanceof CommentNode;\n}\nexport function isParentNode(node) {\n return node instanceof HTMLElement || node instanceof DocumentFragment;\n}\nconst defaultVoidSet = new Set(defaultVoidElementNames);\nfunction normalizeParseOptions(options) {\n const lowerCaseTagName = options.lowerCaseTagName ?? true;\n const lowerCaseAttributeName = options.lowerCaseAttributeName ?? true;\n const decodeEntities = options.decodeEntities ?? false;\n const preserveComments = options.preserveComments ?? options.comment ?? false;\n const voidElements = createNameSet(options.voidElements ?? defaultVoidElementNames);\n const rawTextElements = createNameSet(options.rawTextElements ?? defaultRawTextElementNames);\n return {\n lowerCaseTagName,\n lowerCaseAttributeName,\n decodeEntities,\n preserveComments,\n voidElements,\n rawTextElements,\n };\n}\nfunction parseTag(content, options) {\n let body = content;\n let selfClosing = false;\n if (body.endsWith('/')) {\n body = body.slice(0, -1);\n selfClosing = true;\n }\n const firstSpace = body.search(/\\s/);\n const rawName = firstSpace === -1 ? body : body.slice(0, firstSpace);\n const attrsSource = firstSpace === -1 ? '' : body.slice(firstSpace).trim();\n const normalizedTagName = rawName.toLowerCase();\n const tagName = options.lowerCaseTagName ? normalizedTagName : rawName;\n const attrs = parseAttributes(attrsSource, options);\n return { tagName, normalizedTagName, attrs, selfClosing };\n}\nfunction parseAttributes(source, options) {\n const attrs = {};\n let i = 0;\n while (i < source.length) {\n while (i < source.length && isWhitespace(source[i])) {\n i += 1;\n }\n if (i >= source.length) {\n break;\n }\n const nameStart = i;\n while (i < source.length && !isWhitespace(source[i]) && source[i] !== '=') {\n i += 1;\n }\n let name = source.slice(nameStart, i);\n while (i < source.length && isWhitespace(source[i])) {\n i += 1;\n }\n let value = '';\n if (source[i] === '=') {\n i += 1;\n while (i < source.length && isWhitespace(source[i])) {\n i += 1;\n }\n if (source[i] === '\"' || source[i] === \"'\") {\n const quote = source[i];\n i += 1;\n const valueStart = i;\n while (i < source.length && source[i] !== quote) {\n i += 1;\n }\n value = source.slice(valueStart, i);\n i += 1;\n }\n else {\n const valueStart = i;\n while (i < source.length && !isWhitespace(source[i])) {\n i += 1;\n }\n value = source.slice(valueStart, i);\n }\n }\n if (name) {\n if (options.lowerCaseAttributeName) {\n name = name.toLowerCase();\n }\n attrs[name] = options.decodeEntities ? decodeHtmlEntities(value) : value;\n }\n }\n return attrs;\n}\nfunction readTag(html, start) {\n let i = start;\n let inQuote = null;\n while (i < html.length) {\n const char = html[i];\n if (char === '\"' || char === \"'\") {\n if (inQuote === char) {\n inQuote = null;\n }\n else if (!inQuote) {\n inQuote = char;\n }\n }\n else if (char === '>' && !inQuote) {\n break;\n }\n i += 1;\n }\n return {\n content: html.slice(start, i).trim(),\n endIndex: i,\n };\n}\nfunction extractClosingName(content) {\n const body = content.slice(1).trim();\n if (!body) {\n return null;\n }\n const firstSpace = body.search(/\\s/);\n return firstSpace === -1 ? body : body.slice(0, firstSpace);\n}\nfunction findRawTextClosure(html, start, normalizedTagName) {\n let index = start;\n while (index < html.length) {\n const lt = html.indexOf('</', index);\n if (lt === -1) {\n return null;\n }\n const { content, endIndex } = readTag(html, lt + 1);\n if (content.startsWith('/')) {\n const closingName = extractClosingName(content);\n if (closingName && closingName.toLowerCase() === normalizedTagName) {\n return { start: lt, end: endIndex };\n }\n }\n index = endIndex + 1;\n }\n return null;\n}\nfunction createNameSet(input) {\n const set = new Set();\n for (const value of input) {\n set.add(value.toLowerCase());\n }\n return set;\n}\nfunction isWhitespace(char) {\n return char === ' ' || char === '\\n' || char === '\\t' || char === '\\r' || char === '\\f';\n}\nfunction decodeHtmlEntities(value) {\n return value.replace(/&(#x?[0-9a-fA-F]+|[\\w]+);/g, (_, entity) => {\n if (entity.startsWith('#')) {\n const isHex = entity.length > 1 && entity[1].toLowerCase() === 'x';\n const code = isHex ? parseInt(entity.slice(2), 16) : parseInt(entity.slice(1), 10);\n return Number.isFinite(code) ? String.fromCodePoint(code) : '';\n }\n return namedEntities[entity] ?? _;\n });\n}\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;');\n}\nfunction escapeText(value) {\n return value.replace(/&/g, '&amp;').replace(/</g, '&lt;');\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction serializePretty(node, indent, newline, depth) {\n const pad = indent.repeat(depth);\n if (node instanceof TextNode || node instanceof CommentNode) {\n const value = node.toString();\n return value ? `${pad}${value}` : '';\n }\n if (node instanceof DocumentFragment) {\n return node.childNodes\n .map((child) => serializePretty(child, indent, newline, depth))\n .filter(Boolean)\n .join(newline);\n }\n if (!(node instanceof HTMLElement)) {\n return '';\n }\n const element = node;\n const attrString = Object.entries(element.attrs)\n .map(([key, value]) => (value === '' ? key : `${key}=\"${escapeAttribute(value)}\"`))\n .join(' ');\n const openTag = attrString ? `<${element.tagName} ${attrString}>` : `<${element.tagName}>`;\n if (element.isVoidElement || !element.childNodes.length) {\n if (element.isVoidElement) {\n return `${pad}${openTag}`;\n }\n return `${pad}${openTag}</${element.tagName}>`;\n }\n const children = element.childNodes\n .map((child) => serializePretty(child, indent, newline, depth + 1))\n .filter(Boolean)\n .join(newline);\n const closing = `</${element.tagName}>`;\n if (!children) {\n return `${pad}${openTag}${closing}`;\n }\n return `${pad}${openTag}${newline}${children}${newline}${pad}${closing}`;\n}\nfunction traverse(nodes, visitor, parent, depth) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n const signal = visitor(node, { parent, depth, index: i });\n if (signal === 'stop') {\n return true;\n }\n if (signal !== 'skip' && isParentNode(node) && node.childNodes.length) {\n if (traverse(node.childNodes, visitor, node, depth + 1)) {\n return true;\n }\n }\n }\n return false;\n}\n","import { parse, NodeType } from './html-parser.js';\nconst structuralAttrs = new Set(['ce:if', 'ce:else', 'ce:for', 'track', 'ce:slot', 'ce:await', 'ce:then', 'ce:catch']);\nclass TemplateCompiler {\n constructor(options = {}) {\n this.options = options;\n this.instructions = [];\n this.styles = [];\n }\n compile(source) {\n const html = parse(`<fragment>${source}</fragment>`, {\n comment: false,\n lowerCaseTagName: false,\n });\n const fragment = html.firstChild ?? html;\n const nodes = fragment.childNodes;\n this.walkNodes(nodes);\n return {\n name: this.options.name,\n instructions: this.instructions,\n styles: this.styles.length ? this.styles : undefined,\n scopeId: this.options.scopeId,\n };\n }\n walkNodes(nodes) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (isStyleNode(node)) {\n const styleText = node.textContent.trim();\n if (styleText) {\n this.styles.push(styleText);\n }\n continue;\n }\n if (node.nodeType === NodeType.ELEMENT_NODE) {\n const element = node;\n if (element.hasAttribute('ce:else')) {\n continue;\n }\n if (element.hasAttribute('ce:await')) {\n this.instructions.push(this.compileAwait(element));\n continue;\n }\n if (element.hasAttribute('ce:if')) {\n const { instruction, consumedElse } = this.compileConditional(element, nodes, i);\n this.instructions.push(instruction);\n if (consumedElse) {\n i += 1;\n }\n continue;\n }\n if (element.hasAttribute('ce:for')) {\n this.instructions.push(this.compileLoop(element));\n continue;\n }\n this.instructions.push(this.compileElement(element));\n continue;\n }\n if (node.nodeType === NodeType.TEXT_NODE) {\n this.instructions.push(...this.compileText(node));\n }\n }\n }\n compileConditional(element, nodes, index) {\n const condition = element.getAttribute('ce:if') ?? '';\n const truthy = [this.compileElement(element, true)];\n let falsy;\n let consumedElse = false;\n const next = nodes[index + 1];\n if (next && next.nodeType === NodeType.ELEMENT_NODE) {\n const nextElement = next;\n if (nextElement.hasAttribute('ce:else')) {\n falsy = [this.compileElement(nextElement, true)];\n consumedElse = true;\n }\n }\n return {\n instruction: {\n type: 'if',\n condition,\n truthy,\n falsy,\n },\n consumedElse,\n };\n }\n compileLoop(element) {\n const loopExpr = element.getAttribute('ce:for') ?? '';\n const loop = parseLoop(loopExpr);\n return {\n type: 'for',\n ...loop,\n children: [this.compileElement(element, true)],\n };\n }\n compileElement(element, stripStructural = false) {\n if (element.tagName.toLowerCase() === 'slot') {\n const fallback = [];\n for (const child of element.childNodes) {\n if (child.nodeType === NodeType.TEXT_NODE) {\n fallback.push(...this.compileText(child));\n }\n else if (child.nodeType === NodeType.ELEMENT_NODE) {\n fallback.push(this.compileElement(child));\n }\n }\n return {\n type: 'slot',\n name: element.getAttribute('name') ?? undefined,\n children: fallback,\n };\n }\n const attributes = [];\n const attrSource = element.attrs;\n for (const [key, rawValue] of Object.entries(attrSource)) {\n const value = String(rawValue);\n if (stripStructural && structuralAttrs.has(key)) {\n continue;\n }\n if (key.startsWith('on:')) {\n const eventName = key.slice(3);\n attributes.push({ kind: 'event', name: eventName, handler: value });\n continue;\n }\n if (key.startsWith('[') && key.endsWith(']')) {\n const prop = key.slice(1, -1);\n attributes.push({ kind: 'property', name: prop, expression: value });\n continue;\n }\n if (key.startsWith('bind:')) {\n const prop = key.slice(5);\n attributes.push({ kind: 'property', name: prop, expression: value });\n continue;\n }\n if (key === 'class:list') {\n attributes.push({ kind: 'class-list', expression: value });\n continue;\n }\n if (key === 'ce:slot') {\n attributes.push({ kind: 'static', name: 'slot', value });\n continue;\n }\n attributes.push({ kind: 'static', name: key, value });\n }\n const children = [];\n for (const child of element.childNodes) {\n if (isStyleNode(child)) {\n continue;\n }\n if (child.nodeType === NodeType.ELEMENT_NODE) {\n const childEl = child;\n if (childEl.hasAttribute('ce:await')) {\n children.push(this.compileAwait(childEl));\n continue;\n }\n if (childEl.hasAttribute('ce:if') || childEl.hasAttribute('ce:for')) {\n const compiledFragment = compileTemplate(childEl.toString(), this.options);\n children.push(...compiledFragment.instructions);\n continue;\n }\n children.push(this.compileElement(childEl));\n continue;\n }\n if (child.nodeType === NodeType.TEXT_NODE) {\n children.push(...this.compileText(child));\n }\n }\n return {\n type: 'element',\n tag: element.tagName.toLowerCase(),\n attributes,\n children,\n };\n }\n compileAwait(element) {\n if (element.tagName.toLowerCase() !== 'template') {\n throw new Error('ce:await must be used on a <template> element.');\n }\n const expression = element.getAttribute('ce:await') ?? '';\n const pending = [];\n let resolved = [];\n let rejected = [];\n let valueName;\n let errorName;\n for (const child of element.childNodes) {\n if (isStyleNode(child)) {\n continue;\n }\n if (child.nodeType === NodeType.ELEMENT_NODE) {\n const childEl = child;\n if (childEl.tagName.toLowerCase() === 'template' && childEl.hasAttribute('ce:then')) {\n valueName = childEl.getAttribute('ce:then') ?? undefined;\n resolved = this.compileTemplateChildren(childEl);\n continue;\n }\n if (childEl.tagName.toLowerCase() === 'template' && childEl.hasAttribute('ce:catch')) {\n errorName = childEl.getAttribute('ce:catch') ?? undefined;\n rejected = this.compileTemplateChildren(childEl);\n continue;\n }\n pending.push(this.compileElement(childEl));\n continue;\n }\n if (child.nodeType === NodeType.TEXT_NODE) {\n pending.push(...this.compileText(child));\n }\n }\n return {\n type: 'await',\n expression,\n pending,\n resolved,\n rejected,\n valueName,\n errorName,\n };\n }\n compileTemplateChildren(element) {\n const children = [];\n for (const child of element.childNodes) {\n if (isStyleNode(child)) {\n continue;\n }\n if (child.nodeType === NodeType.TEXT_NODE) {\n children.push(...this.compileText(child));\n continue;\n }\n if (child.nodeType === NodeType.ELEMENT_NODE) {\n const childEl = child;\n if (childEl.hasAttribute('ce:await')) {\n children.push(this.compileAwait(childEl));\n continue;\n }\n if (childEl.hasAttribute('ce:if') || childEl.hasAttribute('ce:for')) {\n const compiledFragment = compileTemplate(childEl.toString(), this.options);\n children.push(...compiledFragment.instructions);\n continue;\n }\n children.push(this.compileElement(childEl));\n }\n }\n return children;\n }\n compileText(node) {\n const content = node.text;\n if (!this.options.preserveWhitespace && !content.trim()) {\n return [];\n }\n const parts = content.split(/({{[^}]+}})/g).filter(Boolean);\n return parts.map((part) => {\n if (part.startsWith('{{') && part.endsWith('}}')) {\n return {\n type: 'expression',\n expression: part.slice(2, -2).trim(),\n };\n }\n return {\n type: 'text',\n value: this.options.preserveWhitespace ? part : part.trim(),\n };\n });\n }\n}\nexport function compileTemplate(source, options = {}) {\n return new TemplateCompiler(options).compile(source);\n}\nfunction parseLoop(expression) {\n const loopRegex = /^(?<item>[\\w$]+)(?:\\s*,\\s*(?<index>[\\w$]+))?\\s+in\\s+(?<iterator>.+)$/;\n const match = loopRegex.exec(expression.trim());\n const groups = match?.groups;\n if (!groups) {\n throw new Error(`Invalid ce:for expression: ${expression}`);\n }\n return {\n item: groups.item,\n index: groups.index,\n iterator: groups.iterator,\n };\n}\nfunction isStyleNode(node) {\n return node.nodeType === NodeType.ELEMENT_NODE && node.tagName === 'STYLE';\n}\n"]}