@ecopages/radiant 0.3.0-beta.2 → 0.3.0-beta.3

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 (302) hide show
  1. package/README.md +11 -7
  2. package/client/app-bootstrap.js +2 -2
  3. package/client/app-bootstrap.js.map +2 -2
  4. package/client/hydrator.js +2 -2
  5. package/client/hydrator.js.map +2 -2
  6. package/client/install-hydrator.js +2 -2
  7. package/client/install-hydrator.js.map +2 -2
  8. package/context/context-consumer-bootstrap.js +2 -2
  9. package/context/context-consumer-bootstrap.js.map +4 -4
  10. package/context/context-consumer-runtime.js +2 -2
  11. package/context/context-consumer-runtime.js.map +4 -4
  12. package/context/context-host.js +2 -2
  13. package/context/context-host.js.map +2 -2
  14. package/context/context-provider.js +2 -2
  15. package/context/context-provider.js.map +2 -2
  16. package/context/context-ssr-bridge.d.ts +1 -1
  17. package/context/context-ssr-bridge.js +2 -2
  18. package/context/context-ssr-bridge.js.map +3 -3
  19. package/context/create-context.js +2 -2
  20. package/context/create-context.js.map +2 -2
  21. package/context/decorators/consume-context.js +2 -2
  22. package/context/decorators/consume-context.js.map +4 -4
  23. package/context/decorators/context-selection-delivery.js +2 -2
  24. package/context/decorators/context-selection-delivery.js.map +2 -2
  25. package/context/decorators/context-selector.js +2 -2
  26. package/context/decorators/context-selector.js.map +4 -4
  27. package/context/decorators/legacy/consume-context.js +2 -2
  28. package/context/decorators/legacy/consume-context.js.map +4 -4
  29. package/context/decorators/legacy/context-selector-field.js +2 -2
  30. package/context/decorators/legacy/context-selector-field.js.map +4 -4
  31. package/context/decorators/legacy/context-selector.js +2 -2
  32. package/context/decorators/legacy/context-selector.js.map +4 -4
  33. package/context/decorators/legacy/provide-context.js +2 -2
  34. package/context/decorators/legacy/provide-context.js.map +2 -2
  35. package/context/decorators/on-context-update.js +2 -2
  36. package/context/decorators/on-context-update.js.map +4 -4
  37. package/context/decorators/provide-context.js +2 -2
  38. package/context/decorators/provide-context.js.map +2 -2
  39. package/context/decorators/standard/consume-context.js +2 -2
  40. package/context/decorators/standard/consume-context.js.map +4 -4
  41. package/context/decorators/standard/context-selector-field.js +2 -2
  42. package/context/decorators/standard/context-selector-field.js.map +4 -4
  43. package/context/decorators/standard/context-selector.js +2 -2
  44. package/context/decorators/standard/context-selector.js.map +4 -4
  45. package/context/decorators/standard/provide-context.js +2 -2
  46. package/context/decorators/standard/provide-context.js.map +2 -2
  47. package/context/decorators/standard-legacy-dispatch.js +2 -2
  48. package/context/decorators/standard-legacy-dispatch.js.map +2 -2
  49. package/context/events.js +2 -2
  50. package/context/events.js.map +2 -2
  51. package/context/hydration-script.js +2 -2
  52. package/context/hydration-script.js.map +2 -2
  53. package/context/index.js +2 -2
  54. package/context/index.js.map +4 -4
  55. package/controller-registry.js +2 -2
  56. package/controller-registry.js.map +2 -2
  57. package/core/controller-metadata.js +2 -2
  58. package/core/controller-metadata.js.map +2 -2
  59. package/core/custom-element-metadata.js +2 -2
  60. package/core/custom-element-metadata.js.map +2 -2
  61. package/core/event-subscription-registry.js +2 -2
  62. package/core/event-subscription-registry.js.map +2 -2
  63. package/core/host-ssr-registry.js +2 -2
  64. package/core/host-ssr-registry.js.map +2 -2
  65. package/core/hydration-capable-host.js +2 -2
  66. package/core/hydration-capable-host.js.map +2 -2
  67. package/core/hydration-codec.js +2 -2
  68. package/core/hydration-codec.js.map +2 -2
  69. package/core/radiant-controller.js +2 -2
  70. package/core/radiant-controller.js.map +2 -2
  71. package/core/radiant-element-brand.d.ts +2 -0
  72. package/core/radiant-element-brand.js +3 -0
  73. package/core/radiant-element-brand.js.map +10 -0
  74. package/core/radiant-element-ssr-host-source.d.ts +32 -0
  75. package/core/radiant-element-ssr-host-source.js +3 -0
  76. package/core/radiant-element-ssr-host-source.js.map +11 -0
  77. package/core/radiant-element-ssr-host.d.ts +5 -6
  78. package/core/radiant-element-ssr-host.js +1 -2
  79. package/core/radiant-element-ssr-host.js.map +3 -4
  80. package/core/radiant-element-ssr-registry.d.ts +24 -11
  81. package/core/radiant-element-ssr-registry.js +2 -2
  82. package/core/radiant-element-ssr-registry.js.map +3 -3
  83. package/core/radiant-element.d.ts +5 -3
  84. package/core/radiant-element.js +2 -2
  85. package/core/radiant-element.js.map +6 -5
  86. package/core/radiant-hydrator-state.js +2 -2
  87. package/core/radiant-hydrator-state.js.map +2 -2
  88. package/core/reactive-binding-adapter.js +2 -2
  89. package/core/reactive-binding-adapter.js.map +2 -2
  90. package/core/reactive-host.js +2 -2
  91. package/core/reactive-host.js.map +2 -2
  92. package/core/reactive-jsx-value.js +2 -2
  93. package/core/reactive-jsx-value.js.map +2 -2
  94. package/core/reactive-prop-core.js +2 -2
  95. package/core/reactive-prop-core.js.map +2 -2
  96. package/core/reactive-prop-metadata.js +2 -2
  97. package/core/reactive-prop-metadata.js.map +2 -2
  98. package/core/reactive-property-state.js +2 -2
  99. package/core/reactive-property-state.js.map +2 -2
  100. package/core/reactivity-adapter.js +2 -2
  101. package/core/reactivity-adapter.js.map +2 -2
  102. package/core/reactivity-runtime.js +2 -2
  103. package/core/reactivity-runtime.js.map +2 -2
  104. package/core/reactivity-signals.js +2 -2
  105. package/core/reactivity-signals.js.map +2 -2
  106. package/core/render-runtime.js +2 -2
  107. package/core/render-runtime.js.map +2 -2
  108. package/core/render-scheduler.js +2 -2
  109. package/core/render-scheduler.js.map +2 -2
  110. package/core/slot-projection-runtime.js +2 -2
  111. package/core/slot-projection-runtime.js.map +2 -2
  112. package/core/ssr-preparation.js +2 -2
  113. package/core/ssr-preparation.js.map +2 -2
  114. package/decorators/attr.js +2 -2
  115. package/decorators/attr.js.map +2 -2
  116. package/decorators/bound.js +2 -2
  117. package/decorators/bound.js.map +2 -2
  118. package/decorators/bridge.js +2 -2
  119. package/decorators/bridge.js.map +2 -2
  120. package/decorators/controller.js +2 -2
  121. package/decorators/controller.js.map +2 -2
  122. package/decorators/custom-element.js +2 -2
  123. package/decorators/custom-element.js.map +2 -2
  124. package/decorators/debounce.js +2 -2
  125. package/decorators/debounce.js.map +2 -2
  126. package/decorators/event.js +2 -2
  127. package/decorators/event.js.map +2 -2
  128. package/decorators/legacy/attr.js +2 -2
  129. package/decorators/legacy/attr.js.map +2 -2
  130. package/decorators/legacy/bound.js +2 -2
  131. package/decorators/legacy/bound.js.map +2 -2
  132. package/decorators/legacy/custom-element.js +2 -2
  133. package/decorators/legacy/custom-element.js.map +2 -2
  134. package/decorators/legacy/debounce.js +2 -2
  135. package/decorators/legacy/debounce.js.map +2 -2
  136. package/decorators/legacy/event.js +2 -2
  137. package/decorators/legacy/event.js.map +2 -2
  138. package/decorators/legacy/host-readiness.js +2 -2
  139. package/decorators/legacy/host-readiness.js.map +2 -2
  140. package/decorators/legacy/instance-initializers.js +2 -2
  141. package/decorators/legacy/instance-initializers.js.map +2 -2
  142. package/decorators/legacy/member-bootstrap.js +2 -2
  143. package/decorators/legacy/member-bootstrap.js.map +2 -2
  144. package/decorators/legacy/on-event.js +2 -2
  145. package/decorators/legacy/on-event.js.map +2 -2
  146. package/decorators/legacy/on-updated.js +2 -2
  147. package/decorators/legacy/on-updated.js.map +2 -2
  148. package/decorators/legacy/query-slot.js +2 -2
  149. package/decorators/legacy/query-slot.js.map +2 -2
  150. package/decorators/legacy/query.js +2 -2
  151. package/decorators/legacy/query.js.map +2 -2
  152. package/decorators/legacy/reactive-field.js +2 -2
  153. package/decorators/legacy/reactive-field.js.map +2 -2
  154. package/decorators/legacy/reactive-prop.js +2 -2
  155. package/decorators/legacy/reactive-prop.js.map +2 -2
  156. package/decorators/legacy/signal.js +2 -2
  157. package/decorators/legacy/signal.js.map +2 -2
  158. package/decorators/on-event.js +2 -2
  159. package/decorators/on-event.js.map +2 -2
  160. package/decorators/on-updated.js +2 -2
  161. package/decorators/on-updated.js.map +2 -2
  162. package/decorators/prop.js +2 -2
  163. package/decorators/prop.js.map +2 -2
  164. package/decorators/query-slot.js +2 -2
  165. package/decorators/query-slot.js.map +2 -2
  166. package/decorators/query.js +2 -2
  167. package/decorators/query.js.map +2 -2
  168. package/decorators/shared/auto-bind.js +2 -2
  169. package/decorators/shared/auto-bind.js.map +2 -2
  170. package/decorators/shared/reactive-attr.js +2 -2
  171. package/decorators/shared/reactive-attr.js.map +2 -2
  172. package/decorators/signal.js +2 -2
  173. package/decorators/signal.js.map +2 -2
  174. package/decorators/standard/attr.js +2 -2
  175. package/decorators/standard/attr.js.map +2 -2
  176. package/decorators/standard/bound.js +2 -2
  177. package/decorators/standard/bound.js.map +2 -2
  178. package/decorators/standard/custom-element.js +2 -2
  179. package/decorators/standard/custom-element.js.map +2 -2
  180. package/decorators/standard/debounce.js +2 -2
  181. package/decorators/standard/debounce.js.map +2 -2
  182. package/decorators/standard/event.js +2 -2
  183. package/decorators/standard/event.js.map +2 -2
  184. package/decorators/standard/on-event.js +2 -2
  185. package/decorators/standard/on-event.js.map +2 -2
  186. package/decorators/standard/on-updated.js +2 -2
  187. package/decorators/standard/on-updated.js.map +2 -2
  188. package/decorators/standard/query-slot.js +2 -2
  189. package/decorators/standard/query-slot.js.map +2 -2
  190. package/decorators/standard/query.js +2 -2
  191. package/decorators/standard/query.js.map +2 -2
  192. package/decorators/standard/reactive-field.js +2 -2
  193. package/decorators/standard/reactive-field.js.map +2 -2
  194. package/decorators/standard/reactive-prop.js +2 -2
  195. package/decorators/standard/reactive-prop.js.map +2 -2
  196. package/decorators/standard/signal.js +2 -2
  197. package/decorators/standard/signal.js.map +2 -2
  198. package/decorators/state.js +2 -2
  199. package/decorators/state.js.map +2 -2
  200. package/helpers/create-event-listener.js +2 -2
  201. package/helpers/create-event-listener.js.map +2 -2
  202. package/helpers/create-event.js +2 -2
  203. package/helpers/create-event.js.map +2 -2
  204. package/helpers/create-query-slot.js +2 -2
  205. package/helpers/create-query-slot.js.map +2 -2
  206. package/helpers/create-query.js +2 -2
  207. package/helpers/create-query.js.map +2 -2
  208. package/helpers/debounce.js +2 -2
  209. package/helpers/debounce.js.map +2 -2
  210. package/helpers/index.js +2 -2
  211. package/helpers/index.js.map +2 -2
  212. package/index.js +2 -2
  213. package/index.js.map +6 -5
  214. package/package.json +13 -3
  215. package/server/assert-light-dom-ssr.d.ts +10 -0
  216. package/server/assert-light-dom-ssr.js +3 -0
  217. package/server/assert-light-dom-ssr.js.map +10 -0
  218. package/server/context-ssr.d.ts +8 -19
  219. package/server/context-ssr.js +2 -2
  220. package/server/context-ssr.js.map +5 -5
  221. package/server/host-attribute-serialization.js +2 -2
  222. package/server/host-attribute-serialization.js.map +4 -4
  223. package/server/host-script-composition.js +2 -2
  224. package/server/host-script-composition.js.map +2 -2
  225. package/server/html-parser.js +2 -2
  226. package/server/html-parser.js.map +2 -2
  227. package/server/install-light-dom-shim.d.ts +2 -1
  228. package/server/install-light-dom-shim.js +2 -2
  229. package/server/install-light-dom-shim.js.map +9 -8
  230. package/server/install-ssr-runtime.d.ts +8 -0
  231. package/server/install-ssr-runtime.js +3 -0
  232. package/server/install-ssr-runtime.js.map +21 -0
  233. package/server/install-ssr-scope-adapters.d.ts +1 -0
  234. package/server/install-ssr-scope-adapters.js +3 -0
  235. package/server/install-ssr-scope-adapters.js.map +11 -0
  236. package/server/light-dom-shim.js +2 -2
  237. package/server/light-dom-shim.js.map +8 -7
  238. package/server/minimal-dom/dataset.d.ts +2 -0
  239. package/server/minimal-dom/dataset.js +3 -0
  240. package/server/minimal-dom/dataset.js.map +10 -0
  241. package/server/minimal-dom/document.js +2 -2
  242. package/server/minimal-dom/document.js.map +5 -6
  243. package/server/minimal-dom/html.d.ts +1 -2
  244. package/server/minimal-dom/html.js +2 -2
  245. package/server/minimal-dom/html.js.map +6 -5
  246. package/server/minimal-dom/install.d.ts +1 -0
  247. package/server/minimal-dom/install.js +2 -2
  248. package/server/minimal-dom/install.js.map +8 -7
  249. package/server/minimal-dom/nodes.d.ts +9 -0
  250. package/server/minimal-dom/nodes.js +3 -0
  251. package/server/minimal-dom/nodes.js.map +12 -0
  252. package/server/project-root.js +2 -2
  253. package/server/project-root.js.map +4 -5
  254. package/server/radiant-element-ssr-bridge.d.ts +9 -9
  255. package/server/radiant-element-ssr-bridge.js +2 -2
  256. package/server/radiant-element-ssr-bridge.js.map +27 -14
  257. package/server/radiant-element-ssr-extractor.d.ts +5 -1
  258. package/server/radiant-element-ssr-extractor.js +2 -2
  259. package/server/radiant-element-ssr-extractor.js.map +6 -5
  260. package/server/radiant-element-ssr-service.d.ts +4 -1
  261. package/server/radiant-element-ssr-service.js +2 -2
  262. package/server/radiant-element-ssr-service.js.map +15 -12
  263. package/server/radiant-element-ssr.d.ts +1 -1
  264. package/server/radiant-element-ssr.js +2 -2
  265. package/server/radiant-element-ssr.js.map +27 -14
  266. package/server/render-component.d.ts +3 -5
  267. package/server/render-component.js +2 -2
  268. package/server/render-component.js.map +27 -20
  269. package/server/render-controller.d.ts +1 -0
  270. package/server/render-controller.js +2 -2
  271. package/server/render-controller.js.map +30 -23
  272. package/server/render-fragment.js +2 -2
  273. package/server/render-fragment.js.map +2 -2
  274. package/server/slot-projection-html.js +2 -2
  275. package/server/slot-projection-html.js.map +5 -6
  276. package/signals/host-resource.js +2 -2
  277. package/signals/host-resource.js.map +2 -2
  278. package/signals/host-signal.js +2 -2
  279. package/signals/host-signal.js.map +2 -2
  280. package/signals/hydration-script.js +2 -2
  281. package/signals/hydration-script.js.map +2 -2
  282. package/tools/escape-css-identifier.js +2 -2
  283. package/tools/escape-css-identifier.js.map +2 -2
  284. package/tools/escape-script-json.js +2 -2
  285. package/tools/escape-script-json.js.map +2 -2
  286. package/tools/event-emitter.js +2 -2
  287. package/tools/event-emitter.js.map +2 -2
  288. package/tools/index.js +2 -2
  289. package/tools/index.js.map +2 -2
  290. package/tools/render-jsx-template.js +2 -2
  291. package/tools/render-jsx-template.js.map +2 -2
  292. package/types.js +2 -2
  293. package/types.js.map +2 -2
  294. package/utils/attribute-utils.js +2 -2
  295. package/utils/attribute-utils.js.map +2 -2
  296. package/utils/escape-html-attribute.js +2 -2
  297. package/utils/escape-html-attribute.js.map +2 -2
  298. package/utils/index.js +2 -2
  299. package/utils/index.js.map +2 -2
  300. package/server/internal-radiant-host.d.ts +0 -2
  301. package/server/internal-radiant-host.js +0 -3
  302. package/server/internal-radiant-host.js.map +0 -9
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/utils/escape-html-attribute.ts", "../src/server/html-parser.ts", "../src/server/minimal-dom/nodes.ts", "../src/server/minimal-dom/html.ts", "../src/server/minimal-dom/document.ts"],
3
+ "sources": ["../src/server/minimal-dom/dataset.ts", "../src/utils/escape-html-attribute.ts", "../src/server/minimal-dom/nodes.ts", "../src/server/minimal-dom/document.ts"],
4
4
  "sourcesContent": [
5
+ "export function toDataAttributeName(property: string): string {\n\treturn `data-${property.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n}\n\nexport function toDatasetPropertyName(attributeName: string): string {\n\treturn attributeName.replace(/-([a-z])/g, (_match, character: string) => character.toUpperCase());\n}\n",
5
6
  "/** Escapes a string for safe interpolation inside a double-quoted HTML attribute value. */\nexport function escapeHtmlAttribute(value: string): string {\n\treturn value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n",
6
- "export type ParsedHtmlTag = {\n\tattributes: Record<string, string>;\n\tend: number;\n\tinnerHtml: string;\n\tselfClosing: boolean;\n\ttagName: string;\n\ttype: 'open';\n};\n\nexport type ParsedHtmlToken =\n\t| ParsedHtmlTag\n\t| {\n\t\t\tend: number;\n\t\t\ttype: 'close';\n\t }\n\t| {\n\t\t\tend: number;\n\t\t\ttype: 'comment' | 'declaration';\n\t };\n\nexport const voidElementNames = new Set([\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr',\n]);\n\nexport function collectTopLevelHtmlFragments(html: string): string[] {\n\tconst fragments: string[] = [];\n\tlet index = 0;\n\n\twhile (index < html.length) {\n\t\tconst fragmentStart = index;\n\n\t\tif (html.startsWith('<!--', index)) {\n\t\t\tconst commentEnd = html.indexOf('-->', index + 4);\n\t\t\tindex = commentEnd === -1 ? html.length : commentEnd + 3;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (html[index] !== '<') {\n\t\t\tconst nextTagIndex = html.indexOf('<', index);\n\t\t\tindex = nextTagIndex === -1 ? html.length : nextTagIndex;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst token = parseHtmlTagToken(html, index);\n\n\t\tif (!token) {\n\t\t\tfragments.push(html.slice(fragmentStart));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (token.type !== 'open' || token.selfClosing || voidElementNames.has(token.tagName)) {\n\t\t\tindex = token.end;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tindex = token.end;\n\t\tlet depth = 1;\n\n\t\twhile (index < html.length && depth > 0) {\n\t\t\tconst nextTagIndex = html.indexOf('<', index);\n\n\t\t\tif (nextTagIndex === -1) {\n\t\t\t\tindex = html.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst nestedToken = parseHtmlTagToken(html, nextTagIndex);\n\n\t\t\tif (!nestedToken) {\n\t\t\t\tindex = html.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tindex = nestedToken.end;\n\n\t\t\tif (nestedToken.type === 'comment' || nestedToken.type === 'declaration') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (nestedToken.type === 'open' && !nestedToken.selfClosing && !voidElementNames.has(nestedToken.tagName)) {\n\t\t\t\tdepth += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (nestedToken.type === 'close') {\n\t\t\t\tdepth -= 1;\n\t\t\t}\n\t\t}\n\n\t\tfragments.push(html.slice(fragmentStart, index));\n\t}\n\n\treturn fragments.filter((fragment) => fragment !== '');\n}\n\nexport function findHtmlTagEnd(html: string, startIndex: number): number {\n\tlet quote: '\"' | \"'\" | undefined;\n\n\tfor (let index = startIndex + 1; index < html.length; index += 1) {\n\t\tconst character = html[index];\n\n\t\tif (quote) {\n\t\t\tif (character === quote) {\n\t\t\t\tquote = undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (character === '\"' || character === \"'\") {\n\t\t\tquote = character;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (character === '>') {\n\t\t\treturn index + 1;\n\t\t}\n\t}\n\n\treturn html.length;\n}\n\nexport function parseAttributes(rawAttributes: string): Record<string, string> {\n\tconst attributes: Record<string, string> = {};\n\tconst attributePattern = /([:^@A-Za-z0-9_.-]+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s\"'>/]+)))?/g;\n\n\tfor (const match of rawAttributes.matchAll(attributePattern)) {\n\t\tconst [, name, doubleQuoted, singleQuoted, bareValue] = match;\n\n\t\tif (!name) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tattributes[name] = doubleQuoted ?? singleQuoted ?? bareValue ?? '';\n\t}\n\n\treturn attributes;\n}\n\nexport function parseHtmlTagToken(html: string, startIndex: number): ParsedHtmlToken | undefined {\n\tif (html.startsWith('<!--', startIndex)) {\n\t\tconst endIndex = html.indexOf('-->', startIndex + 4);\n\t\treturn {\n\t\t\tend: endIndex === -1 ? html.length : endIndex + 3,\n\t\t\ttype: 'comment',\n\t\t};\n\t}\n\n\tconst endIndex = findHtmlTagEnd(html, startIndex);\n\tconst rawToken = html.slice(startIndex + 1, endIndex - 1).trim();\n\n\tif (rawToken === '') {\n\t\treturn undefined;\n\t}\n\n\tif (rawToken.startsWith('!') || rawToken.startsWith('?')) {\n\t\treturn {\n\t\t\tend: endIndex,\n\t\t\ttype: 'declaration',\n\t\t};\n\t}\n\n\tif (rawToken.startsWith('/')) {\n\t\treturn {\n\t\t\tend: endIndex,\n\t\t\ttype: 'close',\n\t\t};\n\t}\n\n\tconst selfClosing = /\\/\\s*$/.test(rawToken);\n\tconst tagBody = selfClosing ? rawToken.replace(/\\/\\s*$/, '').trim() : rawToken;\n\tconst tagName = tagBody.split(/[\\s/>]/, 1)[0]?.toLowerCase() ?? '';\n\tconst attributesStart = tagName.length;\n\tconst rawAttributes = tagBody.slice(attributesStart).trim();\n\tconst innerHtml =\n\t\tselfClosing || voidElementNames.has(tagName)\n\t\t\t? ''\n\t\t\t: extractInnerHtmlFragment(html, startIndex, endIndex, tagName);\n\n\treturn {\n\t\tattributes: parseAttributes(rawAttributes),\n\t\tend: endIndex,\n\t\tinnerHtml,\n\t\tselfClosing,\n\t\ttagName,\n\t\ttype: 'open',\n\t};\n}\n\nexport function extractInnerHtmlFragment(\n\thtml: string,\n\tstartIndex: number,\n\ttagEndIndex: number,\n\ttagName: string,\n): string {\n\tlet index = tagEndIndex;\n\tlet depth = 1;\n\n\twhile (index < html.length && depth > 0) {\n\t\tconst nextTagIndex = html.indexOf('<', index);\n\n\t\tif (nextTagIndex === -1) {\n\t\t\treturn html.slice(tagEndIndex);\n\t\t}\n\n\t\tconst nextTag = parseHtmlTagToken(html, nextTagIndex);\n\n\t\tif (!nextTag) {\n\t\t\treturn html.slice(tagEndIndex);\n\t\t}\n\n\t\tif (\n\t\t\tnextTag.type === 'open' &&\n\t\t\tnextTag.tagName === tagName &&\n\t\t\t!nextTag.selfClosing &&\n\t\t\t!voidElementNames.has(tagName)\n\t\t) {\n\t\t\tdepth += 1;\n\t\t}\n\n\t\tif (nextTag.type === 'close') {\n\t\t\tconst closingName = html\n\t\t\t\t.slice(nextTagIndex + 2, nextTag.end - 1)\n\t\t\t\t.trim()\n\t\t\t\t.toLowerCase();\n\n\t\t\tif (closingName === tagName) {\n\t\t\t\tdepth -= 1;\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\treturn html.slice(tagEndIndex, nextTagIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tindex = nextTag.end;\n\t}\n\n\treturn html.slice(tagEndIndex);\n}\n",
7
- "import { escapeHtmlAttribute } from '../../utils/escape-html-attribute';\n\ntype MinimalParentNode = Node & ParentNode;\n\ntype HtmlModule = typeof import('./html');\n\nlet htmlModule: HtmlModule | undefined;\n\nfunction getHtmlModule(): HtmlModule {\n\thtmlModule ??= require('./html') as HtmlModule;\n\treturn htmlModule;\n}\n\nexport class MinimalNode extends EventTarget {\n\tstatic readonly DOCUMENT_NODE = 9;\n\tstatic readonly ELEMENT_NODE = 1;\n\tstatic readonly TEXT_NODE = 3;\n\n\tpublic childNodes: Node[] = [];\n\tpublic ownerDocument: Document | null;\n\tpublic parentNode: MinimalParentNode | null = null;\n\n\tconstructor(\n\t\tpublic readonly nodeType: number,\n\t\townerDocument: Document | null = null,\n\t) {\n\t\tsuper();\n\t\tthis.ownerDocument = ownerDocument;\n\t}\n\n\tappend(...nodes: Array<Node | string>): void {\n\t\tfor (const node of nodes) {\n\t\t\tthis.appendChild(typeof node === 'string' ? createTextNode(node) : node);\n\t\t}\n\t}\n\n\tappendChild<TNode extends Node>(node: TNode): TNode {\n\t\tif ('parentNode' in node && node.parentNode && 'removeChild' in node.parentNode) {\n\t\t\t(node.parentNode as Node & { removeChild(node: Node): Node }).removeChild(node);\n\t\t}\n\n\t\tthis.childNodes.push(node);\n\t\t(node as Node & { ownerDocument: Document | null }).ownerDocument =\n\t\t\tthis.nodeType === MinimalNode.DOCUMENT_NODE ? (this as unknown as Document) : this.ownerDocument;\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = this as unknown as MinimalParentNode;\n\t\treturn node;\n\t}\n\n\tremoveChild<TNode extends Node>(node: TNode): TNode {\n\t\tconst nodeIndex = this.childNodes.indexOf(node);\n\n\t\tif (nodeIndex === -1) {\n\t\t\treturn node;\n\t\t}\n\n\t\tthis.childNodes.splice(nodeIndex, 1);\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\treturn node;\n\t}\n\n\treplaceChildren(...nodes: Array<Node | string>): void {\n\t\tfor (const child of this.childNodes) {\n\t\t\t(child as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\t}\n\n\t\tthis.childNodes = [];\n\t\tthis.append(...nodes);\n\t}\n\n\tget textContent(): string | null {\n\t\treturn this.childNodes.map((child) => child.textContent ?? '').join('');\n\t}\n\n\tset textContent(value: string | null) {\n\t\tthis.replaceChildren(value ?? '');\n\t}\n\n\tgetRootNode(): Node {\n\t\tlet current: Node = this as unknown as Node;\n\n\t\twhile ('parentNode' in current && current.parentNode) {\n\t\t\tcurrent = current.parentNode;\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nexport class MinimalTextNode extends MinimalNode {\n\tconstructor(\n\t\tprivate value: string,\n\t\townerDocument: Document | null = getInstalledDocumentLike(),\n\t) {\n\t\tsuper(MinimalNode.TEXT_NODE, ownerDocument);\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.value;\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.value = value ?? '';\n\t}\n}\n\nclass MinimalClassList {\n\tconstructor(private readonly element: MinimalElement) {}\n\n\tadd(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tif (token !== '') {\n\t\t\t\tnextTokens.add(token);\n\t\t\t}\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\tremove(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tnextTokens.delete(token);\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\ttoggle(token: string, force?: boolean): boolean {\n\t\tconst hasToken = this.contains(token);\n\t\tconst shouldAdd = force ?? !hasToken;\n\n\t\tif (shouldAdd) {\n\t\t\tthis.add(token);\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.remove(token);\n\t\treturn false;\n\t}\n\n\tcontains(token: string): boolean {\n\t\treturn this.readTokens().includes(token);\n\t}\n\n\ttoString(): string {\n\t\treturn this.value;\n\t}\n\n\tget value(): string {\n\t\treturn this.element.getAttribute('class') ?? '';\n\t}\n\n\tprivate readTokens(): string[] {\n\t\treturn this.value\n\t\t\t.split(/\\s+/)\n\t\t\t.map((token) => token.trim())\n\t\t\t.filter((token) => token.length > 0);\n\t}\n\n\tprivate writeTokens(tokens: string[]): void {\n\t\tif (tokens.length === 0) {\n\t\t\tthis.element.removeAttribute('class');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element.setAttribute('class', tokens.join(' '));\n\t}\n}\n\nexport class MinimalElement extends MinimalNode {\n\tprivate attributes = new Map<string, string>();\n\tprivate classListValue?: MinimalClassList;\n\tprivate datasetValue?: DOMStringMap;\n\tprivate fragmentHtml?: string;\n\tprivate fragmentText?: string;\n\n\tpublic readonly localName: string;\n\tpublic readonly tagName: string;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(MinimalNode.ELEMENT_NODE, ownerDocument);\n\t\tthis.localName = tagName.toLowerCase();\n\t\tthis.tagName = this.localName.toUpperCase();\n\t}\n\n\tget id(): string {\n\t\treturn this.getAttribute('id') ?? '';\n\t}\n\n\tset id(value: string) {\n\t\tif (value === '') {\n\t\t\tthis.removeAttribute('id');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setAttribute('id', value);\n\t}\n\n\tget classList(): DOMTokenList {\n\t\tthis.classListValue ??= new MinimalClassList(this);\n\t\treturn this.classListValue as unknown as DOMTokenList;\n\t}\n\n\tget dataset(): DOMStringMap {\n\t\tthis.datasetValue ??= new Proxy(\n\t\t\t{},\n\t\t\t{\n\t\t\t\tdeleteProperty: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.removeAttribute(getHtmlModule().toDataAttributeName(property));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tget: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.getAttribute(getHtmlModule().toDataAttributeName(property)) ?? undefined;\n\t\t\t\t},\n\t\t\t\tgetOwnPropertyDescriptor: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tvalue: this.getAttribute(getHtmlModule().toDataAttributeName(property)) ?? undefined,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\thas: (_target, property) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\ttypeof property === 'string' && this.hasAttribute(getHtmlModule().toDataAttributeName(property))\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\townKeys: () => {\n\t\t\t\t\treturn this.getAttributeNames()\n\t\t\t\t\t\t.filter((name) => name.startsWith('data-'))\n\t\t\t\t\t\t.map((name) => getHtmlModule().toDatasetPropertyName(name.slice(5)));\n\t\t\t\t},\n\t\t\t\tset: (_target, property, value) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setAttribute(getHtmlModule().toDataAttributeName(property), String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t},\n\t\t) as DOMStringMap;\n\n\t\treturn this.datasetValue;\n\t}\n\n\thasAttribute(name: string): boolean {\n\t\treturn this.attributes.has(name);\n\t}\n\n\tgetAttribute(name: string): string | null {\n\t\treturn this.attributes.get(name) ?? null;\n\t}\n\n\tgetAttributeNames(): string[] {\n\t\treturn Array.from(this.attributes.keys());\n\t}\n\n\tsetAttribute(name: string, value: unknown): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.set(name, String(value));\n\t}\n\n\ttoggleAttribute(name: string, force?: boolean): boolean {\n\t\tconst shouldHaveAttribute = force ?? !this.hasAttribute(name);\n\n\t\tif (shouldHaveAttribute) {\n\t\t\tthis.setAttribute(name, '');\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.removeAttribute(name);\n\t\treturn false;\n\t}\n\n\tremoveAttribute(name: string): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.delete(name);\n\t}\n\n\tquerySelector(): Element | null {\n\t\treturn null;\n\t}\n\n\tquerySelectorAll(): Element[] {\n\t\treturn [];\n\t}\n\n\tmatches(): boolean {\n\t\treturn false;\n\t}\n\n\tget outerHTML(): string {\n\t\tif (this.fragmentHtml !== undefined) {\n\t\t\treturn this.fragmentHtml;\n\t\t}\n\n\t\tconst attributes = Array.from(this.attributes.entries())\n\t\t\t.map(([name, value]) => ` ${name}=\"${escapeHtmlAttribute(value)}\"`)\n\t\t\t.join('');\n\n\t\treturn `<${this.localName}${attributes}>${this.innerHTML}</${this.localName}>`;\n\t}\n\n\tget innerHTML(): string {\n\t\treturn this.childNodes.map((child) => getHtmlModule().serializeNodeHtml(child)).join('');\n\t}\n\n\tset innerHTML(html: string) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = undefined;\n\t\tthis.replaceChildren(...getHtmlModule().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.fragmentText ?? super.textContent ?? '';\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = value ?? '';\n\t\tsuper.textContent = value;\n\t}\n\n\tsetSerializedFragment(fragmentHtml: string, fragmentText: string, attributes: Record<string, string>): void {\n\t\tthis.fragmentHtml = fragmentHtml;\n\t\tthis.fragmentText = fragmentText;\n\t\tthis.attributes = new Map(Object.entries(attributes));\n\t\tthis.replaceChildren();\n\t}\n}\n\nexport class MinimalEvent {\n\tpublic readonly bubbles: boolean;\n\tpublic readonly cancelable: boolean;\n\tpublic readonly composed: boolean;\n\tpublic readonly type: string;\n\n\tconstructor(type: string, eventInitDict: EventInit = {}) {\n\t\tthis.type = type;\n\t\tthis.bubbles = eventInitDict.bubbles ?? false;\n\t\tthis.cancelable = eventInitDict.cancelable ?? false;\n\t\tthis.composed = eventInitDict.composed ?? false;\n\t}\n}\n\nexport class MinimalCustomEvent<T = unknown> extends MinimalEvent {\n\tpublic readonly detail: T;\n\n\tconstructor(type: string, eventInitDict: CustomEventInit<T> = {}) {\n\t\tsuper(type, eventInitDict);\n\t\tthis.detail = eventInitDict.detail as T;\n\t}\n}\n\nexport class MinimalHTMLElement extends MinimalElement {\n\tpublic isConnected = false;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(tagName, ownerDocument);\n\t}\n\n\tinsertAdjacentHTML(_position: InsertPosition, html: string): void {\n\t\tthis.append(...getHtmlModule().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\tconnectedCallback?(): void;\n\tattributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void;\n\tdisconnectedCallback?(): void;\n}\n\nexport class MinimalHtmlScriptElement extends MinimalHTMLElement {\n\tconstructor(ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper('script', ownerDocument);\n\t}\n}\n\nexport function createTextNode(value: string): Node {\n\treturn new MinimalTextNode(value, getInstalledDocumentLike()) as unknown as Node;\n}\n\nexport function getInstalledDocumentLike(): Document | null {\n\treturn ((globalThis as typeof globalThis & { document?: Document }).document ?? null) as Document | null;\n}\n",
8
- "import { collectTopLevelHtmlFragments, parseHtmlTagToken, type ParsedHtmlTag } from '../html-parser';\nimport {\n\tgetInstalledDocumentLike,\n\tMinimalElement,\n\tMinimalHtmlScriptElement,\n\tMinimalHTMLElement,\n\tMinimalNode,\n\tMinimalTextNode,\n} from './nodes';\n\nexport function createElementFromFragment(fragment: string, tag: ParsedHtmlTag, ownerDocument: Document | null): Node {\n\tconst element =\n\t\ttag.tagName === 'script'\n\t\t\t? (new MinimalHtmlScriptElement(ownerDocument) as MinimalElement)\n\t\t\t: new MinimalHTMLElement(tag.tagName, ownerDocument);\n\n\telement.setSerializedFragment(fragment, extractTextContent(tag.innerHtml), tag.attributes);\n\treturn element as unknown as Node;\n}\n\nexport function extractTextContent(html: string): string {\n\treturn html.replace(/<!--.*?-->/gs, '').replace(/<[^>]+>/g, '');\n}\n\nexport function parseHtmlToNodes(html: string, ownerDocument: Document | null = getInstalledDocumentLike()): Node[] {\n\treturn collectTopLevelHtmlFragments(html).map((fragment) => {\n\t\tif (!fragment.startsWith('<')) {\n\t\t\treturn new MinimalTextNode(fragment, ownerDocument) as unknown as Node;\n\t\t}\n\n\t\tconst tag = parseHtmlTagToken(fragment, 0);\n\n\t\tif (!tag || tag.type !== 'open') {\n\t\t\treturn new MinimalTextNode(fragment, ownerDocument) as unknown as Node;\n\t\t}\n\n\t\treturn createElementFromFragment(fragment, tag, ownerDocument);\n\t});\n}\n\nexport function toDataAttributeName(property: string): string {\n\treturn `data-${property.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n}\n\nexport function toDatasetPropertyName(attributeName: string): string {\n\treturn attributeName.replace(/-([a-z])/g, (_match, character: string) => character.toUpperCase());\n}\n\nexport function serializeNodeHtml(node: Node): string {\n\tif (node.nodeType === MinimalNode.TEXT_NODE) {\n\t\treturn node.textContent ?? '';\n\t}\n\n\treturn 'outerHTML' in node && typeof node.outerHTML === 'string' ? node.outerHTML : (node.textContent ?? '');\n}\n",
7
+ "import { escapeHtmlAttribute } from '../../utils/escape-html-attribute';\nimport { toDataAttributeName, toDatasetPropertyName } from './dataset';\n\ntype MinimalParentNode = Node & ParentNode;\n\ntype HtmlParsers = {\n\tparseHtmlToNodes: (html: string, ownerDocument: Document | null) => Node[];\n\tserializeNodeHtml: (node: Node) => string;\n};\n\nlet htmlParsers: HtmlParsers | undefined;\n\n/**\n * Registers HTML parse/serialize helpers from `./html` to break a circular import.\n * Import `./html` (or the light-DOM install entry) before using `innerHTML`.\n */\nexport function registerMinimalDomHtmlParsers(parsers: HtmlParsers): void {\n\thtmlParsers = parsers;\n}\n\nfunction ensureHtmlParsers(): HtmlParsers {\n\tif (!htmlParsers) {\n\t\tthrow new Error(\n\t\t\t'Minimal DOM HTML parsers are not registered. Import @ecopages/radiant/server/install-ssr-runtime (or ./html) before using innerHTML.',\n\t\t);\n\t}\n\n\treturn htmlParsers;\n}\n\nexport class MinimalNode extends EventTarget {\n\tstatic readonly DOCUMENT_NODE = 9;\n\tstatic readonly ELEMENT_NODE = 1;\n\tstatic readonly TEXT_NODE = 3;\n\n\tpublic childNodes: Node[] = [];\n\tpublic ownerDocument: Document | null;\n\tpublic parentNode: MinimalParentNode | null = null;\n\n\tconstructor(\n\t\tpublic readonly nodeType: number,\n\t\townerDocument: Document | null = null,\n\t) {\n\t\tsuper();\n\t\tthis.ownerDocument = ownerDocument;\n\t}\n\n\tappend(...nodes: Array<Node | string>): void {\n\t\tfor (const node of nodes) {\n\t\t\tthis.appendChild(typeof node === 'string' ? createTextNode(node) : node);\n\t\t}\n\t}\n\n\tappendChild<TNode extends Node>(node: TNode): TNode {\n\t\tif ('parentNode' in node && node.parentNode && 'removeChild' in node.parentNode) {\n\t\t\t(node.parentNode as Node & { removeChild(node: Node): Node }).removeChild(node);\n\t\t}\n\n\t\tthis.childNodes.push(node);\n\t\t(node as Node & { ownerDocument: Document | null }).ownerDocument =\n\t\t\tthis.nodeType === MinimalNode.DOCUMENT_NODE ? (this as unknown as Document) : this.ownerDocument;\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = this as unknown as MinimalParentNode;\n\t\treturn node;\n\t}\n\n\tremoveChild<TNode extends Node>(node: TNode): TNode {\n\t\tconst nodeIndex = this.childNodes.indexOf(node);\n\n\t\tif (nodeIndex === -1) {\n\t\t\treturn node;\n\t\t}\n\n\t\tthis.childNodes.splice(nodeIndex, 1);\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\treturn node;\n\t}\n\n\treplaceChildren(...nodes: Array<Node | string>): void {\n\t\tfor (const child of this.childNodes) {\n\t\t\t(child as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\t}\n\n\t\tthis.childNodes = [];\n\t\tthis.append(...nodes);\n\t}\n\n\tget textContent(): string | null {\n\t\treturn this.childNodes.map((child) => child.textContent ?? '').join('');\n\t}\n\n\tset textContent(value: string | null) {\n\t\tthis.replaceChildren(value ?? '');\n\t}\n\n\tgetRootNode(): Node {\n\t\tlet current: Node = this as unknown as Node;\n\n\t\twhile ('parentNode' in current && current.parentNode) {\n\t\t\tcurrent = current.parentNode;\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nexport class MinimalTextNode extends MinimalNode {\n\tconstructor(\n\t\tprivate value: string,\n\t\townerDocument: Document | null = getInstalledDocumentLike(),\n\t) {\n\t\tsuper(MinimalNode.TEXT_NODE, ownerDocument);\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.value;\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.value = value ?? '';\n\t}\n}\n\nclass MinimalClassList {\n\tconstructor(private readonly element: MinimalElement) {}\n\n\tadd(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tif (token !== '') {\n\t\t\t\tnextTokens.add(token);\n\t\t\t}\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\tremove(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tnextTokens.delete(token);\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\ttoggle(token: string, force?: boolean): boolean {\n\t\tconst hasToken = this.contains(token);\n\t\tconst shouldAdd = force ?? !hasToken;\n\n\t\tif (shouldAdd) {\n\t\t\tthis.add(token);\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.remove(token);\n\t\treturn false;\n\t}\n\n\tcontains(token: string): boolean {\n\t\treturn this.readTokens().includes(token);\n\t}\n\n\ttoString(): string {\n\t\treturn this.value;\n\t}\n\n\tget value(): string {\n\t\treturn this.element.getAttribute('class') ?? '';\n\t}\n\n\tprivate readTokens(): string[] {\n\t\treturn this.value\n\t\t\t.split(/\\s+/)\n\t\t\t.map((token) => token.trim())\n\t\t\t.filter((token) => token.length > 0);\n\t}\n\n\tprivate writeTokens(tokens: string[]): void {\n\t\tif (tokens.length === 0) {\n\t\t\tthis.element.removeAttribute('class');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element.setAttribute('class', tokens.join(' '));\n\t}\n}\n\nexport class MinimalElement extends MinimalNode {\n\tprivate attributes = new Map<string, string>();\n\tprivate classListValue?: MinimalClassList;\n\tprivate datasetValue?: DOMStringMap;\n\tprivate fragmentHtml?: string;\n\tprivate fragmentText?: string;\n\n\tpublic readonly localName: string;\n\tpublic readonly tagName: string;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(MinimalNode.ELEMENT_NODE, ownerDocument);\n\t\tthis.localName = tagName.toLowerCase();\n\t\tthis.tagName = this.localName.toUpperCase();\n\t}\n\n\tget id(): string {\n\t\treturn this.getAttribute('id') ?? '';\n\t}\n\n\tset id(value: string) {\n\t\tif (value === '') {\n\t\t\tthis.removeAttribute('id');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setAttribute('id', value);\n\t}\n\n\tget classList(): DOMTokenList {\n\t\tthis.classListValue ??= new MinimalClassList(this);\n\t\treturn this.classListValue as unknown as DOMTokenList;\n\t}\n\n\tget dataset(): DOMStringMap {\n\t\tthis.datasetValue ??= new Proxy(\n\t\t\t{},\n\t\t\t{\n\t\t\t\tdeleteProperty: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.removeAttribute(toDataAttributeName(property));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tget: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.getAttribute(toDataAttributeName(property)) ?? undefined;\n\t\t\t\t},\n\t\t\t\tgetOwnPropertyDescriptor: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tvalue: this.getAttribute(toDataAttributeName(property)) ?? undefined,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\thas: (_target, property) => {\n\t\t\t\t\treturn typeof property === 'string' && this.hasAttribute(toDataAttributeName(property));\n\t\t\t\t},\n\t\t\t\townKeys: () => {\n\t\t\t\t\treturn this.getAttributeNames()\n\t\t\t\t\t\t.filter((name) => name.startsWith('data-'))\n\t\t\t\t\t\t.map((name) => toDatasetPropertyName(name.slice(5)));\n\t\t\t\t},\n\t\t\t\tset: (_target, property, value) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setAttribute(toDataAttributeName(property), String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t},\n\t\t) as DOMStringMap;\n\n\t\treturn this.datasetValue;\n\t}\n\n\thasAttribute(name: string): boolean {\n\t\treturn this.attributes.has(name);\n\t}\n\n\tgetAttribute(name: string): string | null {\n\t\treturn this.attributes.get(name) ?? null;\n\t}\n\n\tgetAttributeNames(): string[] {\n\t\treturn Array.from(this.attributes.keys());\n\t}\n\n\tsetAttribute(name: string, value: unknown): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.set(name, String(value));\n\t}\n\n\ttoggleAttribute(name: string, force?: boolean): boolean {\n\t\tconst shouldHaveAttribute = force ?? !this.hasAttribute(name);\n\n\t\tif (shouldHaveAttribute) {\n\t\t\tthis.setAttribute(name, '');\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.removeAttribute(name);\n\t\treturn false;\n\t}\n\n\tremoveAttribute(name: string): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.delete(name);\n\t}\n\n\tquerySelector(): Element | null {\n\t\treturn null;\n\t}\n\n\tquerySelectorAll(): Element[] {\n\t\treturn [];\n\t}\n\n\tmatches(): boolean {\n\t\treturn false;\n\t}\n\n\tget outerHTML(): string {\n\t\tif (this.fragmentHtml !== undefined) {\n\t\t\treturn this.fragmentHtml;\n\t\t}\n\n\t\tconst attributes = Array.from(this.attributes.entries())\n\t\t\t.map(([name, value]) => ` ${name}=\"${escapeHtmlAttribute(value)}\"`)\n\t\t\t.join('');\n\n\t\treturn `<${this.localName}${attributes}>${this.innerHTML}</${this.localName}>`;\n\t}\n\n\tget innerHTML(): string {\n\t\treturn this.childNodes.map((child) => ensureHtmlParsers().serializeNodeHtml(child)).join('');\n\t}\n\n\tset innerHTML(html: string) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = undefined;\n\t\tthis.replaceChildren(...ensureHtmlParsers().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.fragmentText ?? super.textContent ?? '';\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = value ?? '';\n\t\tsuper.textContent = value;\n\t}\n\n\tsetSerializedFragment(fragmentHtml: string, fragmentText: string, attributes: Record<string, string>): void {\n\t\tthis.fragmentHtml = fragmentHtml;\n\t\tthis.fragmentText = fragmentText;\n\t\tthis.attributes = new Map(Object.entries(attributes));\n\t\tthis.replaceChildren();\n\t}\n}\n\nexport class MinimalEvent {\n\tpublic readonly bubbles: boolean;\n\tpublic readonly cancelable: boolean;\n\tpublic readonly composed: boolean;\n\tpublic readonly type: string;\n\n\tconstructor(type: string, eventInitDict: EventInit = {}) {\n\t\tthis.type = type;\n\t\tthis.bubbles = eventInitDict.bubbles ?? false;\n\t\tthis.cancelable = eventInitDict.cancelable ?? false;\n\t\tthis.composed = eventInitDict.composed ?? false;\n\t}\n}\n\nexport class MinimalCustomEvent<T = unknown> extends MinimalEvent {\n\tpublic readonly detail: T;\n\n\tconstructor(type: string, eventInitDict: CustomEventInit<T> = {}) {\n\t\tsuper(type, eventInitDict);\n\t\tthis.detail = eventInitDict.detail as T;\n\t}\n}\n\nexport class MinimalHTMLElement extends MinimalElement {\n\tpublic isConnected = false;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(tagName, ownerDocument);\n\t}\n\n\tinsertAdjacentHTML(_position: InsertPosition, html: string): void {\n\t\tthis.append(...ensureHtmlParsers().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\tconnectedCallback?(): void;\n\tattributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void;\n\tdisconnectedCallback?(): void;\n}\n\nexport class MinimalHtmlScriptElement extends MinimalHTMLElement {\n\tconstructor(ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper('script', ownerDocument);\n\t}\n}\n\nexport function createTextNode(value: string): Node {\n\treturn new MinimalTextNode(value, getInstalledDocumentLike()) as unknown as Node;\n}\n\nexport function getInstalledDocumentLike(): Document | null {\n\treturn ((globalThis as typeof globalThis & { document?: Document }).document ?? null) as Document | null;\n}\n",
9
8
  "import { MinimalHtmlScriptElement, MinimalHTMLElement, MinimalNode, MinimalTextNode } from './nodes';\n\nexport type MinimalCustomElementRegistry = {\n\tdefine(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;\n\tget(name: string): CustomElementConstructor | undefined;\n};\n\nexport class MinimalDocument extends MinimalNode {\n\tconstructor() {\n\t\tsuper(MinimalNode.DOCUMENT_NODE);\n\t}\n\n\tcreateElement(tagName: string): HTMLElement {\n\t\treturn (tagName.toLowerCase() === 'script'\n\t\t\t? new MinimalHtmlScriptElement(this as unknown as Document)\n\t\t\t: new MinimalHTMLElement(tagName, this as unknown as Document)) as unknown as HTMLElement;\n\t}\n\n\tcreateTextNode(value: string): Text {\n\t\treturn new MinimalTextNode(value, this as unknown as Document) as unknown as Text;\n\t}\n\n\tquerySelector(): Element | null {\n\t\treturn null;\n\t}\n\n\tquerySelectorAll(): Element[] {\n\t\treturn [];\n\t}\n}\n\nexport class MinimalCustomElementsRegistry implements MinimalCustomElementRegistry {\n\tprivate definitions = new Map<string, CustomElementConstructor>();\n\n\tdefine(name: string, constructor: CustomElementConstructor): void {\n\t\tif (this.definitions.has(name)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.definitions.set(name, constructor);\n\t}\n\n\tget(name: string): CustomElementConstructor | undefined {\n\t\treturn this.definitions.get(name);\n\t}\n}\n"
10
9
  ],
11
- "mappings": "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",
12
- "debugId": "78201311EA16F50864756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "B55002B66071D94E64756E2164756E21",
13
12
  "names": []
14
13
  }
@@ -1,7 +1,6 @@
1
1
  import { type ParsedHtmlTag } from '../html-parser';
2
+ export { toDataAttributeName, toDatasetPropertyName } from './dataset';
2
3
  export declare function createElementFromFragment(fragment: string, tag: ParsedHtmlTag, ownerDocument: Document | null): Node;
3
4
  export declare function extractTextContent(html: string): string;
4
5
  export declare function parseHtmlToNodes(html: string, ownerDocument?: Document | null): Node[];
5
- export declare function toDataAttributeName(property: string): string;
6
- export declare function toDatasetPropertyName(attributeName: string): string;
7
6
  export declare function serializeNodeHtml(node: Node): string;
@@ -1,3 +1,3 @@
1
- var{defineProperty:o,getOwnPropertyNames:B,getOwnPropertyDescriptor:E}=Object,U=Object.prototype.hasOwnProperty;function V(s){return this[s]}var X=(s)=>{var r=(F??=new WeakMap).get(s),t;if(r)return r;if(r=o({},"__esModule",{value:!0}),s&&typeof s==="object"||typeof s==="function"){for(var i of B(s))if(!U.call(r,i))o(r,i,{get:V.bind(s,i),enumerable:!(t=E(s,i))||t.enumerable})}return F.set(s,r),r},F;var j=(s)=>s;function G(s,r){this[s]=j.bind(null,r)}var J=(s,r)=>{for(var t in r)o(s,t,{get:r[t],enumerable:!0,configurable:!0,set:G.bind(r,t)})};var C=(s,r)=>()=>(s&&(r=s(s=0)),r);var v=((s)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});function O(s){return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function W(s){let r=[],t=0;while(t<s.length){let i=t;if(s.startsWith("<!--",t)){let c=s.indexOf("-->",t+4);t=c===-1?s.length:c+3,r.push(s.slice(i,t));continue}if(s[t]!=="<"){let c=s.indexOf("<",t);t=c===-1?s.length:c,r.push(s.slice(i,t));continue}let n=p(s,t);if(!n){r.push(s.slice(i));break}if(n.type!=="open"||n.selfClosing||x.has(n.tagName)){t=n.end,r.push(s.slice(i,t));continue}t=n.end;let g=1;while(t<s.length&&g>0){let c=s.indexOf("<",t);if(c===-1){t=s.length;break}let e=p(s,c);if(!e){t=s.length;break}if(t=e.end,e.type==="comment"||e.type==="declaration")continue;if(e.type==="open"&&!e.selfClosing&&!x.has(e.tagName)){g+=1;continue}if(e.type==="close")g-=1}r.push(s.slice(i,t))}return r.filter((i)=>i!=="")}function Y(s,r){let t;for(let i=r+1;i<s.length;i+=1){let n=s[i];if(t){if(n===t)t=void 0;continue}if(n==='"'||n==="'"){t=n;continue}if(n===">")return i+1}return s.length}function y(s){let r={},t=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let i of s.matchAll(t)){let[,n,g,c,e]=i;if(!n)continue;r[n]=g??c??e??""}return r}function p(s,r){if(s.startsWith("<!--",r)){let A=s.indexOf("-->",r+4);return{end:A===-1?s.length:A+3,type:"comment"}}let t=Y(s,r),i=s.slice(r+1,t-1).trim();if(i==="")return;if(i.startsWith("!")||i.startsWith("?"))return{end:t,type:"declaration"};if(i.startsWith("/"))return{end:t,type:"close"};let n=/\/\s*$/.test(i),g=n?i.replace(/\/\s*$/,"").trim():i,c=g.split(/[\s/>]/,1)[0]?.toLowerCase()??"",e=c.length,P=g.slice(e).trim(),Z=n||x.has(c)?"":l(s,r,t,c);return{attributes:y(P),end:t,innerHtml:Z,selfClosing:n,tagName:c,type:"open"}}function l(s,r,t,i){let n=t,g=1;while(n<s.length&&g>0){let c=s.indexOf("<",n);if(c===-1)return s.slice(t);let e=p(s,c);if(!e)return s.slice(t);if(e.type==="open"&&e.tagName===i&&!e.selfClosing&&!x.has(i))g+=1;if(e.type==="close"){if(s.slice(c+2,e.end-1).trim().toLowerCase()===i){if(g-=1,g===0)return s.slice(t,c)}}n=e.end}return s.slice(t)}var x;var S=C(()=>{x=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function f(){return w??=(N(),X(z)),w}class ${element;constructor(s){this.element=s}add(...s){let r=new Set(this.readTokens());for(let t of s)if(t!=="")r.add(t);this.writeTokens([...r])}remove(...s){let r=new Set(this.readTokens());for(let t of s)r.delete(t);this.writeTokens([...r])}toggle(s,r){let t=this.contains(s);if(r??!t)return this.add(s),!0;return this.remove(s),!1}contains(s){return this.readTokens().includes(s)}toString(){return this.value}get value(){return this.element.getAttribute("class")??""}readTokens(){return this.value.split(/\s+/).map((s)=>s.trim()).filter((s)=>s.length>0)}writeTokens(s){if(s.length===0){this.element.removeAttribute("class");return}this.element.setAttribute("class",s.join(" "))}}class R{bubbles;cancelable;composed;type;constructor(s,r={}){this.type=s,this.bubbles=r.bubbles??!1,this.cancelable=r.cancelable??!1,this.composed=r.composed??!1}}function d(s){return new b(s,u())}function u(){return globalThis.document??null}var w,a,b,q,h,T,H;var _=C(()=>{a=class a extends EventTarget{nodeType;static DOCUMENT_NODE=9;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];ownerDocument;parentNode=null;constructor(s,r=null){super();this.nodeType=s;this.ownerDocument=r}append(...s){for(let r of s)this.appendChild(typeof r==="string"?d(r):r)}appendChild(s){if("parentNode"in s&&s.parentNode&&"removeChild"in s.parentNode)s.parentNode.removeChild(s);return this.childNodes.push(s),s.ownerDocument=this.nodeType===a.DOCUMENT_NODE?this:this.ownerDocument,s.parentNode=this,s}removeChild(s){let r=this.childNodes.indexOf(s);if(r===-1)return s;return this.childNodes.splice(r,1),s.parentNode=null,s}replaceChildren(...s){for(let r of this.childNodes)r.parentNode=null;this.childNodes=[],this.append(...s)}get textContent(){return this.childNodes.map((s)=>s.textContent??"").join("")}set textContent(s){this.replaceChildren(s??"")}getRootNode(){let s=this;while("parentNode"in s&&s.parentNode)s=s.parentNode;return s}};b=class b extends a{value;constructor(s,r=u()){super(a.TEXT_NODE,r);this.value=s}get textContent(){return this.value}set textContent(s){this.value=s??""}};q=class q extends a{attributes=new Map;classListValue;datasetValue;fragmentHtml;fragmentText;localName;tagName;constructor(s="div",r=u()){super(a.ELEMENT_NODE,r);this.localName=s.toLowerCase(),this.tagName=this.localName.toUpperCase()}get id(){return this.getAttribute("id")??""}set id(s){if(s===""){this.removeAttribute("id");return}this.setAttribute("id",s)}get classList(){return this.classListValue??=new $(this),this.classListValue}get dataset(){return this.datasetValue??=new Proxy({},{deleteProperty:(s,r)=>{if(typeof r!=="string")return!1;return this.removeAttribute(f().toDataAttributeName(r)),!0},get:(s,r)=>{if(typeof r!=="string")return;return this.getAttribute(f().toDataAttributeName(r))??void 0},getOwnPropertyDescriptor:(s,r)=>{if(typeof r!=="string")return;return{configurable:!0,enumerable:!0,value:this.getAttribute(f().toDataAttributeName(r))??void 0,writable:!0}},has:(s,r)=>{return typeof r==="string"&&this.hasAttribute(f().toDataAttributeName(r))},ownKeys:()=>{return this.getAttributeNames().filter((s)=>s.startsWith("data-")).map((s)=>f().toDatasetPropertyName(s.slice(5)))},set:(s,r,t)=>{if(typeof r!=="string")return!1;return this.setAttribute(f().toDataAttributeName(r),String(t)),!0}}),this.datasetValue}hasAttribute(s){return this.attributes.has(s)}getAttribute(s){return this.attributes.get(s)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(s,r){this.fragmentHtml=void 0,this.attributes.set(s,String(r))}toggleAttribute(s,r){if(r??!this.hasAttribute(s))return this.setAttribute(s,""),!0;return this.removeAttribute(s),!1}removeAttribute(s){this.fragmentHtml=void 0,this.attributes.delete(s)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let s=Array.from(this.attributes.entries()).map(([r,t])=>` ${r}="${O(t)}"`).join("");return`<${this.localName}${s}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((s)=>f().serializeNodeHtml(s)).join("")}set innerHTML(s){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...f().parseHtmlToNodes(s,this.ownerDocument))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(s){this.fragmentHtml=void 0,this.fragmentText=s??"",super.textContent=s}setSerializedFragment(s,r,t){this.fragmentHtml=s,this.fragmentText=r,this.attributes=new Map(Object.entries(t)),this.replaceChildren()}};h=class h extends R{detail;constructor(s,r={}){super(s,r);this.detail=r.detail}};T=class T extends q{isConnected=!1;constructor(s="div",r=u()){super(s,r)}insertAdjacentHTML(s,r){this.append(...f().parseHtmlToNodes(r,this.ownerDocument))}};H=class H extends T{constructor(s=u()){super("script",s)}}});var z={};J(z,{toDatasetPropertyName:()=>D,toDataAttributeName:()=>I,serializeNodeHtml:()=>M,parseHtmlToNodes:()=>k,extractTextContent:()=>Q,createElementFromFragment:()=>L});function L(s,r,t){let i=r.tagName==="script"?new H(t):new T(r.tagName,t);return i.setSerializedFragment(s,Q(r.innerHtml),r.attributes),i}function Q(s){return s.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function k(s,r=u()){return W(s).map((t)=>{if(!t.startsWith("<"))return new b(t,r);let i=p(t,0);if(!i||i.type!=="open")return new b(t,r);return L(t,i,r)})}function I(s){return`data-${s.replace(/([A-Z])/g,"-$1").toLowerCase()}`}function D(s){return s.replace(/-([a-z])/g,(r,t)=>t.toUpperCase())}function M(s){if(s.nodeType===a.TEXT_NODE)return s.textContent??"";return"outerHTML"in s&&typeof s.outerHTML==="string"?s.outerHTML:s.textContent??""}var N=C(()=>{S();_()});N();export{D as toDatasetPropertyName,I as toDataAttributeName,M as serializeNodeHtml,k as parseHtmlToNodes,Q as extractTextContent,L as createElementFromFragment};
1
+ function u(s){return`data-${s.replace(/([A-Z])/g,"-$1").toLowerCase()}`}function T(s){return s.replace(/-([a-z])/g,(t,r)=>r.toUpperCase())}function W(s){return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var H;function S(s){H=s}function l(){if(!H)throw Error("Minimal DOM HTML parsers are not registered. Import @ecopages/radiant/server/install-ssr-runtime (or ./html) before using innerHTML.");return H}class f extends EventTarget{nodeType;static DOCUMENT_NODE=9;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];ownerDocument;parentNode=null;constructor(s,t=null){super();this.nodeType=s;this.ownerDocument=t}append(...s){for(let t of s)this.appendChild(typeof t==="string"?R(t):t)}appendChild(s){if("parentNode"in s&&s.parentNode&&"removeChild"in s.parentNode)s.parentNode.removeChild(s);return this.childNodes.push(s),s.ownerDocument=this.nodeType===f.DOCUMENT_NODE?this:this.ownerDocument,s.parentNode=this,s}removeChild(s){let t=this.childNodes.indexOf(s);if(t===-1)return s;return this.childNodes.splice(t,1),s.parentNode=null,s}replaceChildren(...s){for(let t of this.childNodes)t.parentNode=null;this.childNodes=[],this.append(...s)}get textContent(){return this.childNodes.map((s)=>s.textContent??"").join("")}set textContent(s){this.replaceChildren(s??"")}getRootNode(){let s=this;while("parentNode"in s&&s.parentNode)s=s.parentNode;return s}}class o extends f{value;constructor(s,t=p()){super(f.TEXT_NODE,t);this.value=s}get textContent(){return this.value}set textContent(s){this.value=s??""}}class w{element;constructor(s){this.element=s}add(...s){let t=new Set(this.readTokens());for(let r of s)if(r!=="")t.add(r);this.writeTokens([...t])}remove(...s){let t=new Set(this.readTokens());for(let r of s)t.delete(r);this.writeTokens([...t])}toggle(s,t){let r=this.contains(s);if(t??!r)return this.add(s),!0;return this.remove(s),!1}contains(s){return this.readTokens().includes(s)}toString(){return this.value}get value(){return this.element.getAttribute("class")??""}readTokens(){return this.value.split(/\s+/).map((s)=>s.trim()).filter((s)=>s.length>0)}writeTokens(s){if(s.length===0){this.element.removeAttribute("class");return}this.element.setAttribute("class",s.join(" "))}}class z extends f{attributes=new Map;classListValue;datasetValue;fragmentHtml;fragmentText;localName;tagName;constructor(s="div",t=p()){super(f.ELEMENT_NODE,t);this.localName=s.toLowerCase(),this.tagName=this.localName.toUpperCase()}get id(){return this.getAttribute("id")??""}set id(s){if(s===""){this.removeAttribute("id");return}this.setAttribute("id",s)}get classList(){return this.classListValue??=new w(this),this.classListValue}get dataset(){return this.datasetValue??=new Proxy({},{deleteProperty:(s,t)=>{if(typeof t!=="string")return!1;return this.removeAttribute(u(t)),!0},get:(s,t)=>{if(typeof t!=="string")return;return this.getAttribute(u(t))??void 0},getOwnPropertyDescriptor:(s,t)=>{if(typeof t!=="string")return;return{configurable:!0,enumerable:!0,value:this.getAttribute(u(t))??void 0,writable:!0}},has:(s,t)=>{return typeof t==="string"&&this.hasAttribute(u(t))},ownKeys:()=>{return this.getAttributeNames().filter((s)=>s.startsWith("data-")).map((s)=>T(s.slice(5)))},set:(s,t,r)=>{if(typeof t!=="string")return!1;return this.setAttribute(u(t),String(r)),!0}}),this.datasetValue}hasAttribute(s){return this.attributes.has(s)}getAttribute(s){return this.attributes.get(s)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(s,t){this.fragmentHtml=void 0,this.attributes.set(s,String(t))}toggleAttribute(s,t){if(t??!this.hasAttribute(s))return this.setAttribute(s,""),!0;return this.removeAttribute(s),!1}removeAttribute(s){this.fragmentHtml=void 0,this.attributes.delete(s)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let s=Array.from(this.attributes.entries()).map(([t,r])=>` ${t}="${W(r)}"`).join("");return`<${this.localName}${s}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((s)=>l().serializeNodeHtml(s)).join("")}set innerHTML(s){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...l().parseHtmlToNodes(s,this.ownerDocument))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(s){this.fragmentHtml=void 0,this.fragmentText=s??"",super.textContent=s}setSerializedFragment(s,t,r){this.fragmentHtml=s,this.fragmentText=t,this.attributes=new Map(Object.entries(r)),this.replaceChildren()}}class P{bubbles;cancelable;composed;type;constructor(s,t={}){this.type=s,this.bubbles=t.bubbles??!1,this.cancelable=t.cancelable??!1,this.composed=t.composed??!1}}class A extends P{detail;constructor(s,t={}){super(s,t);this.detail=t.detail}}class b extends z{isConnected=!1;constructor(s="div",t=p()){super(s,t)}insertAdjacentHTML(s,t){this.append(...l().parseHtmlToNodes(t,this.ownerDocument))}}class C extends b{constructor(s=p()){super("script",s)}}function R(s){return new o(s,p())}function p(){return globalThis.document??null}var x=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function $(s){let t=[],r=0;while(r<s.length){let i=r;if(s.startsWith("<!--",r)){let g=s.indexOf("-->",r+4);r=g===-1?s.length:g+3,t.push(s.slice(i,r));continue}if(s[r]!=="<"){let g=s.indexOf("<",r);r=g===-1?s.length:g,t.push(s.slice(i,r));continue}let n=a(s,r);if(!n){t.push(s.slice(i));break}if(n.type!=="open"||n.selfClosing||x.has(n.tagName)){r=n.end,t.push(s.slice(i,r));continue}r=n.end;let e=1;while(r<s.length&&e>0){let g=s.indexOf("<",r);if(g===-1){r=s.length;break}let c=a(s,g);if(!c){r=s.length;break}if(r=c.end,c.type==="comment"||c.type==="declaration")continue;if(c.type==="open"&&!c.selfClosing&&!x.has(c.tagName)){e+=1;continue}if(c.type==="close")e-=1}t.push(s.slice(i,r))}return t.filter((i)=>i!=="")}function _(s,t){let r;for(let i=t+1;i<s.length;i+=1){let n=s[i];if(r){if(n===r)r=void 0;continue}if(n==='"'||n==="'"){r=n;continue}if(n===">")return i+1}return s.length}function L(s){let t={},r=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let i of s.matchAll(r)){let[,n,e,g,c]=i;if(!n)continue;t[n]=e??g??c??""}return t}function a(s,t){if(s.startsWith("<!--",t)){let O=s.indexOf("-->",t+4);return{end:O===-1?s.length:O+3,type:"comment"}}let r=_(s,t),i=s.slice(t+1,r-1).trim();if(i==="")return;if(i.startsWith("!")||i.startsWith("?"))return{end:r,type:"declaration"};if(i.startsWith("/"))return{end:r,type:"close"};let n=/\/\s*$/.test(i),e=n?i.replace(/\/\s*$/,"").trim():i,g=e.split(/[\s/>]/,1)[0]?.toLowerCase()??"",c=g.length,F=e.slice(c).trim(),q=n||x.has(g)?"":N(s,t,r,g);return{attributes:L(F),end:r,innerHtml:q,selfClosing:n,tagName:g,type:"open"}}function N(s,t,r,i){let n=r,e=1;while(n<s.length&&e>0){let g=s.indexOf("<",n);if(g===-1)return s.slice(r);let c=a(s,g);if(!c)return s.slice(r);if(c.type==="open"&&c.tagName===i&&!c.selfClosing&&!x.has(i))e+=1;if(c.type==="close"){if(s.slice(g+2,c.end-1).trim().toLowerCase()===i){if(e-=1,e===0)return s.slice(r,g)}}n=c.end}return s.slice(r)}function Q(s,t,r){let i=t.tagName==="script"?new C(r):new b(t.tagName,r);return i.setSerializedFragment(s,Z(t.innerHtml),t.attributes),i}function Z(s){return s.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function B(s,t=p()){return $(s).map((r)=>{if(!r.startsWith("<"))return new o(r,t);let i=a(r,0);if(!i||i.type!=="open")return new o(r,t);return Q(r,i,t)})}function E(s){if(s.nodeType===f.TEXT_NODE)return s.textContent??"";return"outerHTML"in s&&typeof s.outerHTML==="string"?s.outerHTML:s.textContent??""}S({parseHtmlToNodes:B,serializeNodeHtml:E});export{T as toDatasetPropertyName,u as toDataAttributeName,E as serializeNodeHtml,B as parseHtmlToNodes,Z as extractTextContent,Q as createElementFromFragment};
2
2
 
3
- //# debugId=09013647E3EBC14C64756E2164756E21
3
+ //# debugId=A7C8318FF5F39FD464756E2164756E21
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/utils/escape-html-attribute.ts", "../src/server/html-parser.ts", "../src/server/minimal-dom/nodes.ts", "../src/server/minimal-dom/html.ts"],
3
+ "sources": ["../src/server/minimal-dom/dataset.ts", "../src/utils/escape-html-attribute.ts", "../src/server/minimal-dom/nodes.ts", "../src/server/html-parser.ts", "../src/server/minimal-dom/html.ts"],
4
4
  "sourcesContent": [
5
+ "export function toDataAttributeName(property: string): string {\n\treturn `data-${property.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n}\n\nexport function toDatasetPropertyName(attributeName: string): string {\n\treturn attributeName.replace(/-([a-z])/g, (_match, character: string) => character.toUpperCase());\n}\n",
5
6
  "/** Escapes a string for safe interpolation inside a double-quoted HTML attribute value. */\nexport function escapeHtmlAttribute(value: string): string {\n\treturn value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n",
7
+ "import { escapeHtmlAttribute } from '../../utils/escape-html-attribute';\nimport { toDataAttributeName, toDatasetPropertyName } from './dataset';\n\ntype MinimalParentNode = Node & ParentNode;\n\ntype HtmlParsers = {\n\tparseHtmlToNodes: (html: string, ownerDocument: Document | null) => Node[];\n\tserializeNodeHtml: (node: Node) => string;\n};\n\nlet htmlParsers: HtmlParsers | undefined;\n\n/**\n * Registers HTML parse/serialize helpers from `./html` to break a circular import.\n * Import `./html` (or the light-DOM install entry) before using `innerHTML`.\n */\nexport function registerMinimalDomHtmlParsers(parsers: HtmlParsers): void {\n\thtmlParsers = parsers;\n}\n\nfunction ensureHtmlParsers(): HtmlParsers {\n\tif (!htmlParsers) {\n\t\tthrow new Error(\n\t\t\t'Minimal DOM HTML parsers are not registered. Import @ecopages/radiant/server/install-ssr-runtime (or ./html) before using innerHTML.',\n\t\t);\n\t}\n\n\treturn htmlParsers;\n}\n\nexport class MinimalNode extends EventTarget {\n\tstatic readonly DOCUMENT_NODE = 9;\n\tstatic readonly ELEMENT_NODE = 1;\n\tstatic readonly TEXT_NODE = 3;\n\n\tpublic childNodes: Node[] = [];\n\tpublic ownerDocument: Document | null;\n\tpublic parentNode: MinimalParentNode | null = null;\n\n\tconstructor(\n\t\tpublic readonly nodeType: number,\n\t\townerDocument: Document | null = null,\n\t) {\n\t\tsuper();\n\t\tthis.ownerDocument = ownerDocument;\n\t}\n\n\tappend(...nodes: Array<Node | string>): void {\n\t\tfor (const node of nodes) {\n\t\t\tthis.appendChild(typeof node === 'string' ? createTextNode(node) : node);\n\t\t}\n\t}\n\n\tappendChild<TNode extends Node>(node: TNode): TNode {\n\t\tif ('parentNode' in node && node.parentNode && 'removeChild' in node.parentNode) {\n\t\t\t(node.parentNode as Node & { removeChild(node: Node): Node }).removeChild(node);\n\t\t}\n\n\t\tthis.childNodes.push(node);\n\t\t(node as Node & { ownerDocument: Document | null }).ownerDocument =\n\t\t\tthis.nodeType === MinimalNode.DOCUMENT_NODE ? (this as unknown as Document) : this.ownerDocument;\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = this as unknown as MinimalParentNode;\n\t\treturn node;\n\t}\n\n\tremoveChild<TNode extends Node>(node: TNode): TNode {\n\t\tconst nodeIndex = this.childNodes.indexOf(node);\n\n\t\tif (nodeIndex === -1) {\n\t\t\treturn node;\n\t\t}\n\n\t\tthis.childNodes.splice(nodeIndex, 1);\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\treturn node;\n\t}\n\n\treplaceChildren(...nodes: Array<Node | string>): void {\n\t\tfor (const child of this.childNodes) {\n\t\t\t(child as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\t}\n\n\t\tthis.childNodes = [];\n\t\tthis.append(...nodes);\n\t}\n\n\tget textContent(): string | null {\n\t\treturn this.childNodes.map((child) => child.textContent ?? '').join('');\n\t}\n\n\tset textContent(value: string | null) {\n\t\tthis.replaceChildren(value ?? '');\n\t}\n\n\tgetRootNode(): Node {\n\t\tlet current: Node = this as unknown as Node;\n\n\t\twhile ('parentNode' in current && current.parentNode) {\n\t\t\tcurrent = current.parentNode;\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nexport class MinimalTextNode extends MinimalNode {\n\tconstructor(\n\t\tprivate value: string,\n\t\townerDocument: Document | null = getInstalledDocumentLike(),\n\t) {\n\t\tsuper(MinimalNode.TEXT_NODE, ownerDocument);\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.value;\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.value = value ?? '';\n\t}\n}\n\nclass MinimalClassList {\n\tconstructor(private readonly element: MinimalElement) {}\n\n\tadd(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tif (token !== '') {\n\t\t\t\tnextTokens.add(token);\n\t\t\t}\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\tremove(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tnextTokens.delete(token);\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\ttoggle(token: string, force?: boolean): boolean {\n\t\tconst hasToken = this.contains(token);\n\t\tconst shouldAdd = force ?? !hasToken;\n\n\t\tif (shouldAdd) {\n\t\t\tthis.add(token);\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.remove(token);\n\t\treturn false;\n\t}\n\n\tcontains(token: string): boolean {\n\t\treturn this.readTokens().includes(token);\n\t}\n\n\ttoString(): string {\n\t\treturn this.value;\n\t}\n\n\tget value(): string {\n\t\treturn this.element.getAttribute('class') ?? '';\n\t}\n\n\tprivate readTokens(): string[] {\n\t\treturn this.value\n\t\t\t.split(/\\s+/)\n\t\t\t.map((token) => token.trim())\n\t\t\t.filter((token) => token.length > 0);\n\t}\n\n\tprivate writeTokens(tokens: string[]): void {\n\t\tif (tokens.length === 0) {\n\t\t\tthis.element.removeAttribute('class');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element.setAttribute('class', tokens.join(' '));\n\t}\n}\n\nexport class MinimalElement extends MinimalNode {\n\tprivate attributes = new Map<string, string>();\n\tprivate classListValue?: MinimalClassList;\n\tprivate datasetValue?: DOMStringMap;\n\tprivate fragmentHtml?: string;\n\tprivate fragmentText?: string;\n\n\tpublic readonly localName: string;\n\tpublic readonly tagName: string;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(MinimalNode.ELEMENT_NODE, ownerDocument);\n\t\tthis.localName = tagName.toLowerCase();\n\t\tthis.tagName = this.localName.toUpperCase();\n\t}\n\n\tget id(): string {\n\t\treturn this.getAttribute('id') ?? '';\n\t}\n\n\tset id(value: string) {\n\t\tif (value === '') {\n\t\t\tthis.removeAttribute('id');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setAttribute('id', value);\n\t}\n\n\tget classList(): DOMTokenList {\n\t\tthis.classListValue ??= new MinimalClassList(this);\n\t\treturn this.classListValue as unknown as DOMTokenList;\n\t}\n\n\tget dataset(): DOMStringMap {\n\t\tthis.datasetValue ??= new Proxy(\n\t\t\t{},\n\t\t\t{\n\t\t\t\tdeleteProperty: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.removeAttribute(toDataAttributeName(property));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tget: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.getAttribute(toDataAttributeName(property)) ?? undefined;\n\t\t\t\t},\n\t\t\t\tgetOwnPropertyDescriptor: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tvalue: this.getAttribute(toDataAttributeName(property)) ?? undefined,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\thas: (_target, property) => {\n\t\t\t\t\treturn typeof property === 'string' && this.hasAttribute(toDataAttributeName(property));\n\t\t\t\t},\n\t\t\t\townKeys: () => {\n\t\t\t\t\treturn this.getAttributeNames()\n\t\t\t\t\t\t.filter((name) => name.startsWith('data-'))\n\t\t\t\t\t\t.map((name) => toDatasetPropertyName(name.slice(5)));\n\t\t\t\t},\n\t\t\t\tset: (_target, property, value) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setAttribute(toDataAttributeName(property), String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t},\n\t\t) as DOMStringMap;\n\n\t\treturn this.datasetValue;\n\t}\n\n\thasAttribute(name: string): boolean {\n\t\treturn this.attributes.has(name);\n\t}\n\n\tgetAttribute(name: string): string | null {\n\t\treturn this.attributes.get(name) ?? null;\n\t}\n\n\tgetAttributeNames(): string[] {\n\t\treturn Array.from(this.attributes.keys());\n\t}\n\n\tsetAttribute(name: string, value: unknown): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.set(name, String(value));\n\t}\n\n\ttoggleAttribute(name: string, force?: boolean): boolean {\n\t\tconst shouldHaveAttribute = force ?? !this.hasAttribute(name);\n\n\t\tif (shouldHaveAttribute) {\n\t\t\tthis.setAttribute(name, '');\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.removeAttribute(name);\n\t\treturn false;\n\t}\n\n\tremoveAttribute(name: string): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.delete(name);\n\t}\n\n\tquerySelector(): Element | null {\n\t\treturn null;\n\t}\n\n\tquerySelectorAll(): Element[] {\n\t\treturn [];\n\t}\n\n\tmatches(): boolean {\n\t\treturn false;\n\t}\n\n\tget outerHTML(): string {\n\t\tif (this.fragmentHtml !== undefined) {\n\t\t\treturn this.fragmentHtml;\n\t\t}\n\n\t\tconst attributes = Array.from(this.attributes.entries())\n\t\t\t.map(([name, value]) => ` ${name}=\"${escapeHtmlAttribute(value)}\"`)\n\t\t\t.join('');\n\n\t\treturn `<${this.localName}${attributes}>${this.innerHTML}</${this.localName}>`;\n\t}\n\n\tget innerHTML(): string {\n\t\treturn this.childNodes.map((child) => ensureHtmlParsers().serializeNodeHtml(child)).join('');\n\t}\n\n\tset innerHTML(html: string) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = undefined;\n\t\tthis.replaceChildren(...ensureHtmlParsers().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.fragmentText ?? super.textContent ?? '';\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = value ?? '';\n\t\tsuper.textContent = value;\n\t}\n\n\tsetSerializedFragment(fragmentHtml: string, fragmentText: string, attributes: Record<string, string>): void {\n\t\tthis.fragmentHtml = fragmentHtml;\n\t\tthis.fragmentText = fragmentText;\n\t\tthis.attributes = new Map(Object.entries(attributes));\n\t\tthis.replaceChildren();\n\t}\n}\n\nexport class MinimalEvent {\n\tpublic readonly bubbles: boolean;\n\tpublic readonly cancelable: boolean;\n\tpublic readonly composed: boolean;\n\tpublic readonly type: string;\n\n\tconstructor(type: string, eventInitDict: EventInit = {}) {\n\t\tthis.type = type;\n\t\tthis.bubbles = eventInitDict.bubbles ?? false;\n\t\tthis.cancelable = eventInitDict.cancelable ?? false;\n\t\tthis.composed = eventInitDict.composed ?? false;\n\t}\n}\n\nexport class MinimalCustomEvent<T = unknown> extends MinimalEvent {\n\tpublic readonly detail: T;\n\n\tconstructor(type: string, eventInitDict: CustomEventInit<T> = {}) {\n\t\tsuper(type, eventInitDict);\n\t\tthis.detail = eventInitDict.detail as T;\n\t}\n}\n\nexport class MinimalHTMLElement extends MinimalElement {\n\tpublic isConnected = false;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(tagName, ownerDocument);\n\t}\n\n\tinsertAdjacentHTML(_position: InsertPosition, html: string): void {\n\t\tthis.append(...ensureHtmlParsers().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\tconnectedCallback?(): void;\n\tattributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void;\n\tdisconnectedCallback?(): void;\n}\n\nexport class MinimalHtmlScriptElement extends MinimalHTMLElement {\n\tconstructor(ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper('script', ownerDocument);\n\t}\n}\n\nexport function createTextNode(value: string): Node {\n\treturn new MinimalTextNode(value, getInstalledDocumentLike()) as unknown as Node;\n}\n\nexport function getInstalledDocumentLike(): Document | null {\n\treturn ((globalThis as typeof globalThis & { document?: Document }).document ?? null) as Document | null;\n}\n",
6
8
  "export type ParsedHtmlTag = {\n\tattributes: Record<string, string>;\n\tend: number;\n\tinnerHtml: string;\n\tselfClosing: boolean;\n\ttagName: string;\n\ttype: 'open';\n};\n\nexport type ParsedHtmlToken =\n\t| ParsedHtmlTag\n\t| {\n\t\t\tend: number;\n\t\t\ttype: 'close';\n\t }\n\t| {\n\t\t\tend: number;\n\t\t\ttype: 'comment' | 'declaration';\n\t };\n\nexport const voidElementNames = new Set([\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr',\n]);\n\nexport function collectTopLevelHtmlFragments(html: string): string[] {\n\tconst fragments: string[] = [];\n\tlet index = 0;\n\n\twhile (index < html.length) {\n\t\tconst fragmentStart = index;\n\n\t\tif (html.startsWith('<!--', index)) {\n\t\t\tconst commentEnd = html.indexOf('-->', index + 4);\n\t\t\tindex = commentEnd === -1 ? html.length : commentEnd + 3;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (html[index] !== '<') {\n\t\t\tconst nextTagIndex = html.indexOf('<', index);\n\t\t\tindex = nextTagIndex === -1 ? html.length : nextTagIndex;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst token = parseHtmlTagToken(html, index);\n\n\t\tif (!token) {\n\t\t\tfragments.push(html.slice(fragmentStart));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (token.type !== 'open' || token.selfClosing || voidElementNames.has(token.tagName)) {\n\t\t\tindex = token.end;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tindex = token.end;\n\t\tlet depth = 1;\n\n\t\twhile (index < html.length && depth > 0) {\n\t\t\tconst nextTagIndex = html.indexOf('<', index);\n\n\t\t\tif (nextTagIndex === -1) {\n\t\t\t\tindex = html.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst nestedToken = parseHtmlTagToken(html, nextTagIndex);\n\n\t\t\tif (!nestedToken) {\n\t\t\t\tindex = html.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tindex = nestedToken.end;\n\n\t\t\tif (nestedToken.type === 'comment' || nestedToken.type === 'declaration') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (nestedToken.type === 'open' && !nestedToken.selfClosing && !voidElementNames.has(nestedToken.tagName)) {\n\t\t\t\tdepth += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (nestedToken.type === 'close') {\n\t\t\t\tdepth -= 1;\n\t\t\t}\n\t\t}\n\n\t\tfragments.push(html.slice(fragmentStart, index));\n\t}\n\n\treturn fragments.filter((fragment) => fragment !== '');\n}\n\nexport function findHtmlTagEnd(html: string, startIndex: number): number {\n\tlet quote: '\"' | \"'\" | undefined;\n\n\tfor (let index = startIndex + 1; index < html.length; index += 1) {\n\t\tconst character = html[index];\n\n\t\tif (quote) {\n\t\t\tif (character === quote) {\n\t\t\t\tquote = undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (character === '\"' || character === \"'\") {\n\t\t\tquote = character;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (character === '>') {\n\t\t\treturn index + 1;\n\t\t}\n\t}\n\n\treturn html.length;\n}\n\nexport function parseAttributes(rawAttributes: string): Record<string, string> {\n\tconst attributes: Record<string, string> = {};\n\tconst attributePattern = /([:^@A-Za-z0-9_.-]+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s\"'>/]+)))?/g;\n\n\tfor (const match of rawAttributes.matchAll(attributePattern)) {\n\t\tconst [, name, doubleQuoted, singleQuoted, bareValue] = match;\n\n\t\tif (!name) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tattributes[name] = doubleQuoted ?? singleQuoted ?? bareValue ?? '';\n\t}\n\n\treturn attributes;\n}\n\nexport function parseHtmlTagToken(html: string, startIndex: number): ParsedHtmlToken | undefined {\n\tif (html.startsWith('<!--', startIndex)) {\n\t\tconst endIndex = html.indexOf('-->', startIndex + 4);\n\t\treturn {\n\t\t\tend: endIndex === -1 ? html.length : endIndex + 3,\n\t\t\ttype: 'comment',\n\t\t};\n\t}\n\n\tconst endIndex = findHtmlTagEnd(html, startIndex);\n\tconst rawToken = html.slice(startIndex + 1, endIndex - 1).trim();\n\n\tif (rawToken === '') {\n\t\treturn undefined;\n\t}\n\n\tif (rawToken.startsWith('!') || rawToken.startsWith('?')) {\n\t\treturn {\n\t\t\tend: endIndex,\n\t\t\ttype: 'declaration',\n\t\t};\n\t}\n\n\tif (rawToken.startsWith('/')) {\n\t\treturn {\n\t\t\tend: endIndex,\n\t\t\ttype: 'close',\n\t\t};\n\t}\n\n\tconst selfClosing = /\\/\\s*$/.test(rawToken);\n\tconst tagBody = selfClosing ? rawToken.replace(/\\/\\s*$/, '').trim() : rawToken;\n\tconst tagName = tagBody.split(/[\\s/>]/, 1)[0]?.toLowerCase() ?? '';\n\tconst attributesStart = tagName.length;\n\tconst rawAttributes = tagBody.slice(attributesStart).trim();\n\tconst innerHtml =\n\t\tselfClosing || voidElementNames.has(tagName)\n\t\t\t? ''\n\t\t\t: extractInnerHtmlFragment(html, startIndex, endIndex, tagName);\n\n\treturn {\n\t\tattributes: parseAttributes(rawAttributes),\n\t\tend: endIndex,\n\t\tinnerHtml,\n\t\tselfClosing,\n\t\ttagName,\n\t\ttype: 'open',\n\t};\n}\n\nexport function extractInnerHtmlFragment(\n\thtml: string,\n\tstartIndex: number,\n\ttagEndIndex: number,\n\ttagName: string,\n): string {\n\tlet index = tagEndIndex;\n\tlet depth = 1;\n\n\twhile (index < html.length && depth > 0) {\n\t\tconst nextTagIndex = html.indexOf('<', index);\n\n\t\tif (nextTagIndex === -1) {\n\t\t\treturn html.slice(tagEndIndex);\n\t\t}\n\n\t\tconst nextTag = parseHtmlTagToken(html, nextTagIndex);\n\n\t\tif (!nextTag) {\n\t\t\treturn html.slice(tagEndIndex);\n\t\t}\n\n\t\tif (\n\t\t\tnextTag.type === 'open' &&\n\t\t\tnextTag.tagName === tagName &&\n\t\t\t!nextTag.selfClosing &&\n\t\t\t!voidElementNames.has(tagName)\n\t\t) {\n\t\t\tdepth += 1;\n\t\t}\n\n\t\tif (nextTag.type === 'close') {\n\t\t\tconst closingName = html\n\t\t\t\t.slice(nextTagIndex + 2, nextTag.end - 1)\n\t\t\t\t.trim()\n\t\t\t\t.toLowerCase();\n\n\t\t\tif (closingName === tagName) {\n\t\t\t\tdepth -= 1;\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\treturn html.slice(tagEndIndex, nextTagIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tindex = nextTag.end;\n\t}\n\n\treturn html.slice(tagEndIndex);\n}\n",
7
- "import { escapeHtmlAttribute } from '../../utils/escape-html-attribute';\n\ntype MinimalParentNode = Node & ParentNode;\n\ntype HtmlModule = typeof import('./html');\n\nlet htmlModule: HtmlModule | undefined;\n\nfunction getHtmlModule(): HtmlModule {\n\thtmlModule ??= require('./html') as HtmlModule;\n\treturn htmlModule;\n}\n\nexport class MinimalNode extends EventTarget {\n\tstatic readonly DOCUMENT_NODE = 9;\n\tstatic readonly ELEMENT_NODE = 1;\n\tstatic readonly TEXT_NODE = 3;\n\n\tpublic childNodes: Node[] = [];\n\tpublic ownerDocument: Document | null;\n\tpublic parentNode: MinimalParentNode | null = null;\n\n\tconstructor(\n\t\tpublic readonly nodeType: number,\n\t\townerDocument: Document | null = null,\n\t) {\n\t\tsuper();\n\t\tthis.ownerDocument = ownerDocument;\n\t}\n\n\tappend(...nodes: Array<Node | string>): void {\n\t\tfor (const node of nodes) {\n\t\t\tthis.appendChild(typeof node === 'string' ? createTextNode(node) : node);\n\t\t}\n\t}\n\n\tappendChild<TNode extends Node>(node: TNode): TNode {\n\t\tif ('parentNode' in node && node.parentNode && 'removeChild' in node.parentNode) {\n\t\t\t(node.parentNode as Node & { removeChild(node: Node): Node }).removeChild(node);\n\t\t}\n\n\t\tthis.childNodes.push(node);\n\t\t(node as Node & { ownerDocument: Document | null }).ownerDocument =\n\t\t\tthis.nodeType === MinimalNode.DOCUMENT_NODE ? (this as unknown as Document) : this.ownerDocument;\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = this as unknown as MinimalParentNode;\n\t\treturn node;\n\t}\n\n\tremoveChild<TNode extends Node>(node: TNode): TNode {\n\t\tconst nodeIndex = this.childNodes.indexOf(node);\n\n\t\tif (nodeIndex === -1) {\n\t\t\treturn node;\n\t\t}\n\n\t\tthis.childNodes.splice(nodeIndex, 1);\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\treturn node;\n\t}\n\n\treplaceChildren(...nodes: Array<Node | string>): void {\n\t\tfor (const child of this.childNodes) {\n\t\t\t(child as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\t}\n\n\t\tthis.childNodes = [];\n\t\tthis.append(...nodes);\n\t}\n\n\tget textContent(): string | null {\n\t\treturn this.childNodes.map((child) => child.textContent ?? '').join('');\n\t}\n\n\tset textContent(value: string | null) {\n\t\tthis.replaceChildren(value ?? '');\n\t}\n\n\tgetRootNode(): Node {\n\t\tlet current: Node = this as unknown as Node;\n\n\t\twhile ('parentNode' in current && current.parentNode) {\n\t\t\tcurrent = current.parentNode;\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nexport class MinimalTextNode extends MinimalNode {\n\tconstructor(\n\t\tprivate value: string,\n\t\townerDocument: Document | null = getInstalledDocumentLike(),\n\t) {\n\t\tsuper(MinimalNode.TEXT_NODE, ownerDocument);\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.value;\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.value = value ?? '';\n\t}\n}\n\nclass MinimalClassList {\n\tconstructor(private readonly element: MinimalElement) {}\n\n\tadd(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tif (token !== '') {\n\t\t\t\tnextTokens.add(token);\n\t\t\t}\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\tremove(...tokens: string[]): void {\n\t\tconst nextTokens = new Set(this.readTokens());\n\n\t\tfor (const token of tokens) {\n\t\t\tnextTokens.delete(token);\n\t\t}\n\n\t\tthis.writeTokens([...nextTokens]);\n\t}\n\n\ttoggle(token: string, force?: boolean): boolean {\n\t\tconst hasToken = this.contains(token);\n\t\tconst shouldAdd = force ?? !hasToken;\n\n\t\tif (shouldAdd) {\n\t\t\tthis.add(token);\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.remove(token);\n\t\treturn false;\n\t}\n\n\tcontains(token: string): boolean {\n\t\treturn this.readTokens().includes(token);\n\t}\n\n\ttoString(): string {\n\t\treturn this.value;\n\t}\n\n\tget value(): string {\n\t\treturn this.element.getAttribute('class') ?? '';\n\t}\n\n\tprivate readTokens(): string[] {\n\t\treturn this.value\n\t\t\t.split(/\\s+/)\n\t\t\t.map((token) => token.trim())\n\t\t\t.filter((token) => token.length > 0);\n\t}\n\n\tprivate writeTokens(tokens: string[]): void {\n\t\tif (tokens.length === 0) {\n\t\t\tthis.element.removeAttribute('class');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element.setAttribute('class', tokens.join(' '));\n\t}\n}\n\nexport class MinimalElement extends MinimalNode {\n\tprivate attributes = new Map<string, string>();\n\tprivate classListValue?: MinimalClassList;\n\tprivate datasetValue?: DOMStringMap;\n\tprivate fragmentHtml?: string;\n\tprivate fragmentText?: string;\n\n\tpublic readonly localName: string;\n\tpublic readonly tagName: string;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(MinimalNode.ELEMENT_NODE, ownerDocument);\n\t\tthis.localName = tagName.toLowerCase();\n\t\tthis.tagName = this.localName.toUpperCase();\n\t}\n\n\tget id(): string {\n\t\treturn this.getAttribute('id') ?? '';\n\t}\n\n\tset id(value: string) {\n\t\tif (value === '') {\n\t\t\tthis.removeAttribute('id');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setAttribute('id', value);\n\t}\n\n\tget classList(): DOMTokenList {\n\t\tthis.classListValue ??= new MinimalClassList(this);\n\t\treturn this.classListValue as unknown as DOMTokenList;\n\t}\n\n\tget dataset(): DOMStringMap {\n\t\tthis.datasetValue ??= new Proxy(\n\t\t\t{},\n\t\t\t{\n\t\t\t\tdeleteProperty: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.removeAttribute(getHtmlModule().toDataAttributeName(property));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tget: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.getAttribute(getHtmlModule().toDataAttributeName(property)) ?? undefined;\n\t\t\t\t},\n\t\t\t\tgetOwnPropertyDescriptor: (_target, property) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tvalue: this.getAttribute(getHtmlModule().toDataAttributeName(property)) ?? undefined,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\thas: (_target, property) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\ttypeof property === 'string' && this.hasAttribute(getHtmlModule().toDataAttributeName(property))\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\townKeys: () => {\n\t\t\t\t\treturn this.getAttributeNames()\n\t\t\t\t\t\t.filter((name) => name.startsWith('data-'))\n\t\t\t\t\t\t.map((name) => getHtmlModule().toDatasetPropertyName(name.slice(5)));\n\t\t\t\t},\n\t\t\t\tset: (_target, property, value) => {\n\t\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setAttribute(getHtmlModule().toDataAttributeName(property), String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t},\n\t\t) as DOMStringMap;\n\n\t\treturn this.datasetValue;\n\t}\n\n\thasAttribute(name: string): boolean {\n\t\treturn this.attributes.has(name);\n\t}\n\n\tgetAttribute(name: string): string | null {\n\t\treturn this.attributes.get(name) ?? null;\n\t}\n\n\tgetAttributeNames(): string[] {\n\t\treturn Array.from(this.attributes.keys());\n\t}\n\n\tsetAttribute(name: string, value: unknown): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.set(name, String(value));\n\t}\n\n\ttoggleAttribute(name: string, force?: boolean): boolean {\n\t\tconst shouldHaveAttribute = force ?? !this.hasAttribute(name);\n\n\t\tif (shouldHaveAttribute) {\n\t\t\tthis.setAttribute(name, '');\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.removeAttribute(name);\n\t\treturn false;\n\t}\n\n\tremoveAttribute(name: string): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.delete(name);\n\t}\n\n\tquerySelector(): Element | null {\n\t\treturn null;\n\t}\n\n\tquerySelectorAll(): Element[] {\n\t\treturn [];\n\t}\n\n\tmatches(): boolean {\n\t\treturn false;\n\t}\n\n\tget outerHTML(): string {\n\t\tif (this.fragmentHtml !== undefined) {\n\t\t\treturn this.fragmentHtml;\n\t\t}\n\n\t\tconst attributes = Array.from(this.attributes.entries())\n\t\t\t.map(([name, value]) => ` ${name}=\"${escapeHtmlAttribute(value)}\"`)\n\t\t\t.join('');\n\n\t\treturn `<${this.localName}${attributes}>${this.innerHTML}</${this.localName}>`;\n\t}\n\n\tget innerHTML(): string {\n\t\treturn this.childNodes.map((child) => getHtmlModule().serializeNodeHtml(child)).join('');\n\t}\n\n\tset innerHTML(html: string) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = undefined;\n\t\tthis.replaceChildren(...getHtmlModule().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.fragmentText ?? super.textContent ?? '';\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = value ?? '';\n\t\tsuper.textContent = value;\n\t}\n\n\tsetSerializedFragment(fragmentHtml: string, fragmentText: string, attributes: Record<string, string>): void {\n\t\tthis.fragmentHtml = fragmentHtml;\n\t\tthis.fragmentText = fragmentText;\n\t\tthis.attributes = new Map(Object.entries(attributes));\n\t\tthis.replaceChildren();\n\t}\n}\n\nexport class MinimalEvent {\n\tpublic readonly bubbles: boolean;\n\tpublic readonly cancelable: boolean;\n\tpublic readonly composed: boolean;\n\tpublic readonly type: string;\n\n\tconstructor(type: string, eventInitDict: EventInit = {}) {\n\t\tthis.type = type;\n\t\tthis.bubbles = eventInitDict.bubbles ?? false;\n\t\tthis.cancelable = eventInitDict.cancelable ?? false;\n\t\tthis.composed = eventInitDict.composed ?? false;\n\t}\n}\n\nexport class MinimalCustomEvent<T = unknown> extends MinimalEvent {\n\tpublic readonly detail: T;\n\n\tconstructor(type: string, eventInitDict: CustomEventInit<T> = {}) {\n\t\tsuper(type, eventInitDict);\n\t\tthis.detail = eventInitDict.detail as T;\n\t}\n}\n\nexport class MinimalHTMLElement extends MinimalElement {\n\tpublic isConnected = false;\n\n\tconstructor(tagName = 'div', ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper(tagName, ownerDocument);\n\t}\n\n\tinsertAdjacentHTML(_position: InsertPosition, html: string): void {\n\t\tthis.append(...getHtmlModule().parseHtmlToNodes(html, this.ownerDocument));\n\t}\n\n\tconnectedCallback?(): void;\n\tattributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void;\n\tdisconnectedCallback?(): void;\n}\n\nexport class MinimalHtmlScriptElement extends MinimalHTMLElement {\n\tconstructor(ownerDocument: Document | null = getInstalledDocumentLike()) {\n\t\tsuper('script', ownerDocument);\n\t}\n}\n\nexport function createTextNode(value: string): Node {\n\treturn new MinimalTextNode(value, getInstalledDocumentLike()) as unknown as Node;\n}\n\nexport function getInstalledDocumentLike(): Document | null {\n\treturn ((globalThis as typeof globalThis & { document?: Document }).document ?? null) as Document | null;\n}\n",
8
- "import { collectTopLevelHtmlFragments, parseHtmlTagToken, type ParsedHtmlTag } from '../html-parser';\nimport {\n\tgetInstalledDocumentLike,\n\tMinimalElement,\n\tMinimalHtmlScriptElement,\n\tMinimalHTMLElement,\n\tMinimalNode,\n\tMinimalTextNode,\n} from './nodes';\n\nexport function createElementFromFragment(fragment: string, tag: ParsedHtmlTag, ownerDocument: Document | null): Node {\n\tconst element =\n\t\ttag.tagName === 'script'\n\t\t\t? (new MinimalHtmlScriptElement(ownerDocument) as MinimalElement)\n\t\t\t: new MinimalHTMLElement(tag.tagName, ownerDocument);\n\n\telement.setSerializedFragment(fragment, extractTextContent(tag.innerHtml), tag.attributes);\n\treturn element as unknown as Node;\n}\n\nexport function extractTextContent(html: string): string {\n\treturn html.replace(/<!--.*?-->/gs, '').replace(/<[^>]+>/g, '');\n}\n\nexport function parseHtmlToNodes(html: string, ownerDocument: Document | null = getInstalledDocumentLike()): Node[] {\n\treturn collectTopLevelHtmlFragments(html).map((fragment) => {\n\t\tif (!fragment.startsWith('<')) {\n\t\t\treturn new MinimalTextNode(fragment, ownerDocument) as unknown as Node;\n\t\t}\n\n\t\tconst tag = parseHtmlTagToken(fragment, 0);\n\n\t\tif (!tag || tag.type !== 'open') {\n\t\t\treturn new MinimalTextNode(fragment, ownerDocument) as unknown as Node;\n\t\t}\n\n\t\treturn createElementFromFragment(fragment, tag, ownerDocument);\n\t});\n}\n\nexport function toDataAttributeName(property: string): string {\n\treturn `data-${property.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n}\n\nexport function toDatasetPropertyName(attributeName: string): string {\n\treturn attributeName.replace(/-([a-z])/g, (_match, character: string) => character.toUpperCase());\n}\n\nexport function serializeNodeHtml(node: Node): string {\n\tif (node.nodeType === MinimalNode.TEXT_NODE) {\n\t\treturn node.textContent ?? '';\n\t}\n\n\treturn 'outerHTML' in node && typeof node.outerHTML === 'string' ? node.outerHTML : (node.textContent ?? '');\n}\n"
9
+ "import { collectTopLevelHtmlFragments, parseHtmlTagToken, type ParsedHtmlTag } from '../html-parser';\nimport { toDataAttributeName, toDatasetPropertyName } from './dataset';\nimport {\n\tgetInstalledDocumentLike,\n\tMinimalElement,\n\tMinimalHtmlScriptElement,\n\tMinimalHTMLElement,\n\tMinimalNode,\n\tMinimalTextNode,\n\tregisterMinimalDomHtmlParsers,\n} from './nodes';\n\nexport { toDataAttributeName, toDatasetPropertyName } from './dataset';\n\nexport function createElementFromFragment(fragment: string, tag: ParsedHtmlTag, ownerDocument: Document | null): Node {\n\tconst element =\n\t\ttag.tagName === 'script'\n\t\t\t? (new MinimalHtmlScriptElement(ownerDocument) as MinimalElement)\n\t\t\t: new MinimalHTMLElement(tag.tagName, ownerDocument);\n\n\telement.setSerializedFragment(fragment, extractTextContent(tag.innerHtml), tag.attributes);\n\treturn element as unknown as Node;\n}\n\nexport function extractTextContent(html: string): string {\n\treturn html.replace(/<!--.*?-->/gs, '').replace(/<[^>]+>/g, '');\n}\n\nexport function parseHtmlToNodes(html: string, ownerDocument: Document | null = getInstalledDocumentLike()): Node[] {\n\treturn collectTopLevelHtmlFragments(html).map((fragment) => {\n\t\tif (!fragment.startsWith('<')) {\n\t\t\treturn new MinimalTextNode(fragment, ownerDocument) as unknown as Node;\n\t\t}\n\n\t\tconst tag = parseHtmlTagToken(fragment, 0);\n\n\t\tif (!tag || tag.type !== 'open') {\n\t\t\treturn new MinimalTextNode(fragment, ownerDocument) as unknown as Node;\n\t\t}\n\n\t\treturn createElementFromFragment(fragment, tag, ownerDocument);\n\t});\n}\n\nexport function serializeNodeHtml(node: Node): string {\n\tif (node.nodeType === MinimalNode.TEXT_NODE) {\n\t\treturn node.textContent ?? '';\n\t}\n\n\treturn 'outerHTML' in node && typeof node.outerHTML === 'string' ? node.outerHTML : (node.textContent ?? '');\n}\n\nregisterMinimalDomHtmlParsers({\n\tparseHtmlToNodes,\n\tserializeNodeHtml,\n});\n"
9
10
  ],
10
- "mappings": "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",
11
- "debugId": "09013647E3EBC14C64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "A7C8318FF5F39FD464756E2164756E21",
12
13
  "names": []
13
14
  }
@@ -1,4 +1,5 @@
1
1
  import { type MinimalCustomElementRegistry } from './document';
2
+ import './html';
2
3
  type MinimalCssNamespace = {
3
4
  escape(value: string): string;
4
5
  };
@@ -1,3 +1,3 @@
1
- var{defineProperty:R,getOwnPropertyNames:Y,getOwnPropertyDescriptor:W}=Object,E=Object.prototype.hasOwnProperty;function o(r){return this[r]}var S=(r)=>{var s=(Q??=new WeakMap).get(r),t;if(s)return s;if(s=R({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function"){for(var n of Y(r))if(!E.call(s,n))R(s,n,{get:o.bind(r,n),enumerable:!(t=W(r,n))||t.enumerable})}return Q.set(r,s),s},Q;var d=(r)=>r;function k(r,s){this[r]=d.bind(null,s)}var I=(r,s)=>{for(var t in s)R(r,t,{get:s[t],enumerable:!0,configurable:!0,set:k.bind(s,t)})};var _=(r,s)=>()=>(r&&(s=r(r=0)),s);var fr=((r)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(s,t)=>(typeof require<"u"?require:s)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});function Z(r){return r.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function h(r){let s=[],t=0;while(t<r.length){let n=t;if(r.startsWith("<!--",t)){let f=r.indexOf("-->",t+4);t=f===-1?r.length:f+3,s.push(r.slice(n,t));continue}if(r[t]!=="<"){let f=r.indexOf("<",t);t=f===-1?r.length:f,s.push(r.slice(n,t));continue}let i=H(r,t);if(!i){s.push(r.slice(n));break}if(i.type!=="open"||i.selfClosing||A.has(i.tagName)){t=i.end,s.push(r.slice(n,t));continue}t=i.end;let e=1;while(t<r.length&&e>0){let f=r.indexOf("<",t);if(f===-1){t=r.length;break}let c=H(r,f);if(!c){t=r.length;break}if(t=c.end,c.type==="comment"||c.type==="declaration")continue;if(c.type==="open"&&!c.selfClosing&&!A.has(c.tagName)){e+=1;continue}if(c.type==="close")e-=1}s.push(r.slice(n,t))}return s.filter((n)=>n!=="")}function M(r,s){let t;for(let n=s+1;n<r.length;n+=1){let i=r[n];if(t){if(i===t)t=void 0;continue}if(i==='"'||i==="'"){t=i;continue}if(i===">")return n+1}return r.length}function v(r){let s={},t=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let n of r.matchAll(t)){let[,i,e,f,c]=n;if(!i)continue;s[i]=e??f??c??""}return s}function H(r,s){if(r.startsWith("<!--",s)){let w=r.indexOf("-->",s+4);return{end:w===-1?r.length:w+3,type:"comment"}}let t=M(r,s),n=r.slice(s+1,t-1).trim();if(n==="")return;if(n.startsWith("!")||n.startsWith("?"))return{end:t,type:"declaration"};if(n.startsWith("/"))return{end:t,type:"close"};let i=/\/\s*$/.test(n),e=i?n.replace(/\/\s*$/,"").trim():n,f=e.split(/[\s/>]/,1)[0]?.toLowerCase()??"",c=f.length,b=e.slice(c).trim(),q=i||A.has(f)?"":l(r,s,t,f);return{attributes:v(b),end:t,innerHtml:q,selfClosing:i,tagName:f,type:"open"}}function l(r,s,t,n){let i=t,e=1;while(i<r.length&&e>0){let f=r.indexOf("<",i);if(f===-1)return r.slice(t);let c=H(r,f);if(!c)return r.slice(t);if(c.type==="open"&&c.tagName===n&&!c.selfClosing&&!A.has(n))e+=1;if(c.type==="close"){if(r.slice(f+2,c.end-1).trim().toLowerCase()===n){if(e-=1,e===0)return r.slice(t,f)}}i=c.end}return r.slice(t)}var A;var B=_(()=>{A=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function g(){return V??=(j(),S(X)),V}class G{element;constructor(r){this.element=r}add(...r){let s=new Set(this.readTokens());for(let t of r)if(t!=="")s.add(t);this.writeTokens([...s])}remove(...r){let s=new Set(this.readTokens());for(let t of r)s.delete(t);this.writeTokens([...s])}toggle(r,s){let t=this.contains(r);if(s??!t)return this.add(r),!0;return this.remove(r),!1}contains(r){return this.readTokens().includes(r)}toString(){return this.value}get value(){return this.element.getAttribute("class")??""}readTokens(){return this.value.split(/\s+/).map((r)=>r.trim()).filter((r)=>r.length>0)}writeTokens(r){if(r.length===0){this.element.removeAttribute("class");return}this.element.setAttribute("class",r.join(" "))}}class F{bubbles;cancelable;composed;type;constructor(r,s={}){this.type=r,this.bubbles=s.bubbles??!1,this.cancelable=s.cancelable??!1,this.composed=s.composed??!1}}function m(r){return new a(r,T())}function T(){return globalThis.document??null}var V,u,a,P,C,x,p;var $=_(()=>{u=class u extends EventTarget{nodeType;static DOCUMENT_NODE=9;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];ownerDocument;parentNode=null;constructor(r,s=null){super();this.nodeType=r;this.ownerDocument=s}append(...r){for(let s of r)this.appendChild(typeof s==="string"?m(s):s)}appendChild(r){if("parentNode"in r&&r.parentNode&&"removeChild"in r.parentNode)r.parentNode.removeChild(r);return this.childNodes.push(r),r.ownerDocument=this.nodeType===u.DOCUMENT_NODE?this:this.ownerDocument,r.parentNode=this,r}removeChild(r){let s=this.childNodes.indexOf(r);if(s===-1)return r;return this.childNodes.splice(s,1),r.parentNode=null,r}replaceChildren(...r){for(let s of this.childNodes)s.parentNode=null;this.childNodes=[],this.append(...r)}get textContent(){return this.childNodes.map((r)=>r.textContent??"").join("")}set textContent(r){this.replaceChildren(r??"")}getRootNode(){let r=this;while("parentNode"in r&&r.parentNode)r=r.parentNode;return r}};a=class a extends u{value;constructor(r,s=T()){super(u.TEXT_NODE,s);this.value=r}get textContent(){return this.value}set textContent(r){this.value=r??""}};P=class P extends u{attributes=new Map;classListValue;datasetValue;fragmentHtml;fragmentText;localName;tagName;constructor(r="div",s=T()){super(u.ELEMENT_NODE,s);this.localName=r.toLowerCase(),this.tagName=this.localName.toUpperCase()}get id(){return this.getAttribute("id")??""}set id(r){if(r===""){this.removeAttribute("id");return}this.setAttribute("id",r)}get classList(){return this.classListValue??=new G(this),this.classListValue}get dataset(){return this.datasetValue??=new Proxy({},{deleteProperty:(r,s)=>{if(typeof s!=="string")return!1;return this.removeAttribute(g().toDataAttributeName(s)),!0},get:(r,s)=>{if(typeof s!=="string")return;return this.getAttribute(g().toDataAttributeName(s))??void 0},getOwnPropertyDescriptor:(r,s)=>{if(typeof s!=="string")return;return{configurable:!0,enumerable:!0,value:this.getAttribute(g().toDataAttributeName(s))??void 0,writable:!0}},has:(r,s)=>{return typeof s==="string"&&this.hasAttribute(g().toDataAttributeName(s))},ownKeys:()=>{return this.getAttributeNames().filter((r)=>r.startsWith("data-")).map((r)=>g().toDatasetPropertyName(r.slice(5)))},set:(r,s,t)=>{if(typeof s!=="string")return!1;return this.setAttribute(g().toDataAttributeName(s),String(t)),!0}}),this.datasetValue}hasAttribute(r){return this.attributes.has(r)}getAttribute(r){return this.attributes.get(r)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(r,s){this.fragmentHtml=void 0,this.attributes.set(r,String(s))}toggleAttribute(r,s){if(s??!this.hasAttribute(r))return this.setAttribute(r,""),!0;return this.removeAttribute(r),!1}removeAttribute(r){this.fragmentHtml=void 0,this.attributes.delete(r)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let r=Array.from(this.attributes.entries()).map(([s,t])=>` ${s}="${Z(t)}"`).join("");return`<${this.localName}${r}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((r)=>g().serializeNodeHtml(r)).join("")}set innerHTML(r){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...g().parseHtmlToNodes(r,this.ownerDocument))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(r){this.fragmentHtml=void 0,this.fragmentText=r??"",super.textContent=r}setSerializedFragment(r,s,t){this.fragmentHtml=r,this.fragmentText=s,this.attributes=new Map(Object.entries(t)),this.replaceChildren()}};C=class C extends F{detail;constructor(r,s={}){super(r,s);this.detail=s.detail}};x=class x extends P{isConnected=!1;constructor(r="div",s=T()){super(r,s)}insertAdjacentHTML(r,s){this.append(...g().parseHtmlToNodes(s,this.ownerDocument))}};p=class p extends x{constructor(r=T()){super("script",r)}}});var X={};I(X,{toDatasetPropertyName:()=>tr,toDataAttributeName:()=>sr,serializeNodeHtml:()=>nr,parseHtmlToNodes:()=>rr,extractTextContent:()=>K,createElementFromFragment:()=>J});function J(r,s,t){let n=s.tagName==="script"?new p(t):new x(s.tagName,t);return n.setSerializedFragment(r,K(s.innerHtml),s.attributes),n}function K(r){return r.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function rr(r,s=T()){return h(r).map((t)=>{if(!t.startsWith("<"))return new a(t,s);let n=H(t,0);if(!n||n.type!=="open")return new a(t,s);return J(t,n,s)})}function sr(r){return`data-${r.replace(/([A-Z])/g,"-$1").toLowerCase()}`}function tr(r){return r.replace(/-([a-z])/g,(s,t)=>t.toUpperCase())}function nr(r){if(r.nodeType===u.TEXT_NODE)return r.textContent??"";return"outerHTML"in r&&typeof r.outerHTML==="string"?r.outerHTML:r.textContent??""}var j=_(()=>{B();$()});function U(r){let s=globalThis.CSS;if(typeof s?.escape==="function")return s.escape(r);let t="";for(let n=0;n<r.length;n+=1){let i=r[n]??"",e=i.codePointAt(0)??0;if(e===0){t+="�";continue}let f=e>=1&&e<=31||e===127,c=n===0&&e>=48&&e<=57,b=n===1&&e>=48&&e<=57&&(r[0]??"")==="-",q=n===0&&i==="-"&&r.length===1;if(f||c||b){t+=`\\${e.toString(16)} `;continue}if(e>=128||i==="-"||i==="_"||e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122){t+=q?`\\${i}`:i;continue}t+=`\\${i}`}return t}$();class y extends u{constructor(){super(u.DOCUMENT_NODE)}createElement(r){return r.toLowerCase()==="script"?new p(this):new x(r,this)}createTextNode(r){return new a(r,this)}querySelector(){return null}querySelectorAll(){return[]}}class z{definitions=new Map;define(r,s){if(this.definitions.has(r))return;this.definitions.set(r,s)}get(r){return this.definitions.get(r)}}$();var O,N={escape(r){return U(String(r))}};function L(){let r=globalThis,s=r.customElements;if(typeof r.Node>"u"||typeof r.Document>"u"||typeof r.Element>"u"||typeof r.HTMLElement>"u"||typeof r.document>"u"||!s||typeof s.define!=="function"||typeof s.get!=="function")return;return r.window??{CSS:r.CSS??N,CustomEvent:r.CustomEvent??C,Document:r.Document,Element:r.Element,Event:r.Event??F,EventTarget:r.EventTarget??EventTarget,HTMLScriptElement:r.HTMLScriptElement??r.HTMLElement,HTMLElement:r.HTMLElement,Node:r.Node,document:r.document,customElements:s}}function ir(){let r=L();if(r)return r;return er()}function $r(){return ir(),{prepareHost(r,s={}){if(s.authoredContent!==void 0)r.innerHTML=s.authoredContent}}}function er(){let r=L();if(r)return r;if(O)return O;let s=new z,t=new y,n=globalThis.Event??F,i=globalThis.CustomEvent??C,e=y,f=globalThis.EventTarget??EventTarget;return O={CSS:globalThis.CSS??N,CustomEvent:i,Document:e,Element:P,Event:n,EventTarget:f,HTMLScriptElement:p,HTMLElement:x,Node:u,document:t,customElements:s},Object.assign(globalThis,{CSS:globalThis.CSS??N,CustomEvent:i,Document:e,Element:P,Event:n,EventTarget:f,HTMLScriptElement:p,HTMLElement:x,Node:u,document:t,customElements:s,window:O}),O}export{er as installLightDomShim,ir as ensureLightDomShim,$r as createServerRenderEnvironment};
1
+ function p(r){return`data-${r.replace(/([A-Z])/g,"-$1").toLowerCase()}`}function q(r){return r.replace(/-([a-z])/g,(t,s)=>s.toUpperCase())}function N(r){return r.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var A;function Q(r){A=r}function R(){if(!A)throw Error("Minimal DOM HTML parsers are not registered. Import @ecopages/radiant/server/install-ssr-runtime (or ./html) before using innerHTML.");return A}class u extends EventTarget{nodeType;static DOCUMENT_NODE=9;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];ownerDocument;parentNode=null;constructor(r,t=null){super();this.nodeType=r;this.ownerDocument=t}append(...r){for(let t of r)this.appendChild(typeof t==="string"?X(t):t)}appendChild(r){if("parentNode"in r&&r.parentNode&&"removeChild"in r.parentNode)r.parentNode.removeChild(r);return this.childNodes.push(r),r.ownerDocument=this.nodeType===u.DOCUMENT_NODE?this:this.ownerDocument,r.parentNode=this,r}removeChild(r){let t=this.childNodes.indexOf(r);if(t===-1)return r;return this.childNodes.splice(t,1),r.parentNode=null,r}replaceChildren(...r){for(let t of this.childNodes)t.parentNode=null;this.childNodes=[],this.append(...r)}get textContent(){return this.childNodes.map((r)=>r.textContent??"").join("")}set textContent(r){this.replaceChildren(r??"")}getRootNode(){let r=this;while("parentNode"in r&&r.parentNode)r=r.parentNode;return r}}class T extends u{value;constructor(r,t=H()){super(u.TEXT_NODE,t);this.value=r}get textContent(){return this.value}set textContent(r){this.value=r??""}}class U{element;constructor(r){this.element=r}add(...r){let t=new Set(this.readTokens());for(let s of r)if(s!=="")t.add(s);this.writeTokens([...t])}remove(...r){let t=new Set(this.readTokens());for(let s of r)t.delete(s);this.writeTokens([...t])}toggle(r,t){let s=this.contains(r);if(t??!s)return this.add(r),!0;return this.remove(r),!1}contains(r){return this.readTokens().includes(r)}toString(){return this.value}get value(){return this.element.getAttribute("class")??""}readTokens(){return this.value.split(/\s+/).map((r)=>r.trim()).filter((r)=>r.length>0)}writeTokens(r){if(r.length===0){this.element.removeAttribute("class");return}this.element.setAttribute("class",r.join(" "))}}class a extends u{attributes=new Map;classListValue;datasetValue;fragmentHtml;fragmentText;localName;tagName;constructor(r="div",t=H()){super(u.ELEMENT_NODE,t);this.localName=r.toLowerCase(),this.tagName=this.localName.toUpperCase()}get id(){return this.getAttribute("id")??""}set id(r){if(r===""){this.removeAttribute("id");return}this.setAttribute("id",r)}get classList(){return this.classListValue??=new U(this),this.classListValue}get dataset(){return this.datasetValue??=new Proxy({},{deleteProperty:(r,t)=>{if(typeof t!=="string")return!1;return this.removeAttribute(p(t)),!0},get:(r,t)=>{if(typeof t!=="string")return;return this.getAttribute(p(t))??void 0},getOwnPropertyDescriptor:(r,t)=>{if(typeof t!=="string")return;return{configurable:!0,enumerable:!0,value:this.getAttribute(p(t))??void 0,writable:!0}},has:(r,t)=>{return typeof t==="string"&&this.hasAttribute(p(t))},ownKeys:()=>{return this.getAttributeNames().filter((r)=>r.startsWith("data-")).map((r)=>q(r.slice(5)))},set:(r,t,s)=>{if(typeof t!=="string")return!1;return this.setAttribute(p(t),String(s)),!0}}),this.datasetValue}hasAttribute(r){return this.attributes.has(r)}getAttribute(r){return this.attributes.get(r)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(r,t){this.fragmentHtml=void 0,this.attributes.set(r,String(t))}toggleAttribute(r,t){if(t??!this.hasAttribute(r))return this.setAttribute(r,""),!0;return this.removeAttribute(r),!1}removeAttribute(r){this.fragmentHtml=void 0,this.attributes.delete(r)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let r=Array.from(this.attributes.entries()).map(([t,s])=>` ${t}="${N(s)}"`).join("");return`<${this.localName}${r}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((r)=>R().serializeNodeHtml(r)).join("")}set innerHTML(r){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...R().parseHtmlToNodes(r,this.ownerDocument))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(r){this.fragmentHtml=void 0,this.fragmentText=r??"",super.textContent=r}setSerializedFragment(r,t,s){this.fragmentHtml=r,this.fragmentText=t,this.attributes=new Map(Object.entries(s)),this.replaceChildren()}}class F{bubbles;cancelable;composed;type;constructor(r,t={}){this.type=r,this.bubbles=t.bubbles??!1,this.cancelable=t.cancelable??!1,this.composed=t.composed??!1}}class $ extends F{detail;constructor(r,t={}){super(r,t);this.detail=t.detail}}class g extends a{isConnected=!1;constructor(r="div",t=H()){super(r,t)}insertAdjacentHTML(r,t){this.append(...R().parseHtmlToNodes(t,this.ownerDocument))}}class x extends g{constructor(r=H()){super("script",r)}}function X(r){return new T(r,H())}function H(){return globalThis.document??null}class P extends u{constructor(){super(u.DOCUMENT_NODE)}createElement(r){return r.toLowerCase()==="script"?new x(this):new g(r,this)}createTextNode(r){return new T(r,this)}querySelector(){return null}querySelectorAll(){return[]}}class _{definitions=new Map;define(r,t){if(this.definitions.has(r))return;this.definitions.set(r,t)}get(r){return this.definitions.get(r)}}var b=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function Z(r){let t=[],s=0;while(s<r.length){let n=s;if(r.startsWith("<!--",s)){let f=r.indexOf("-->",s+4);s=f===-1?r.length:f+3,t.push(r.slice(n,s));continue}if(r[s]!=="<"){let f=r.indexOf("<",s);s=f===-1?r.length:f,t.push(r.slice(n,s));continue}let i=O(r,s);if(!i){t.push(r.slice(n));break}if(i.type!=="open"||i.selfClosing||b.has(i.tagName)){s=i.end,t.push(r.slice(n,s));continue}s=i.end;let e=1;while(s<r.length&&e>0){let f=r.indexOf("<",s);if(f===-1){s=r.length;break}let c=O(r,f);if(!c){s=r.length;break}if(s=c.end,c.type==="comment"||c.type==="declaration")continue;if(c.type==="open"&&!c.selfClosing&&!b.has(c.tagName)){e+=1;continue}if(c.type==="close")e-=1}t.push(r.slice(n,s))}return t.filter((n)=>n!=="")}function h(r,t){let s;for(let n=t+1;n<r.length;n+=1){let i=r[n];if(s){if(i===s)s=void 0;continue}if(i==='"'||i==="'"){s=i;continue}if(i===">")return n+1}return r.length}function j(r){let t={},s=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let n of r.matchAll(s)){let[,i,e,f,c]=n;if(!i)continue;t[i]=e??f??c??""}return t}function O(r,t){if(r.startsWith("<!--",t)){let w=r.indexOf("-->",t+4);return{end:w===-1?r.length:w+3,type:"comment"}}let s=h(r,t),n=r.slice(t+1,s-1).trim();if(n==="")return;if(n.startsWith("!")||n.startsWith("?"))return{end:s,type:"declaration"};if(n.startsWith("/"))return{end:s,type:"close"};let i=/\/\s*$/.test(n),e=i?n.replace(/\/\s*$/,"").trim():n,f=e.split(/[\s/>]/,1)[0]?.toLowerCase()??"",c=f.length,y=e.slice(c).trim(),o=i||b.has(f)?"":G(r,t,s,f);return{attributes:j(y),end:s,innerHtml:o,selfClosing:i,tagName:f,type:"open"}}function G(r,t,s,n){let i=s,e=1;while(i<r.length&&e>0){let f=r.indexOf("<",i);if(f===-1)return r.slice(s);let c=O(r,f);if(!c)return r.slice(s);if(c.type==="open"&&c.tagName===n&&!c.selfClosing&&!b.has(n))e+=1;if(c.type==="close"){if(r.slice(f+2,c.end-1).trim().toLowerCase()===n){if(e-=1,e===0)return r.slice(s,f)}}i=c.end}return r.slice(s)}function J(r,t,s){let n=t.tagName==="script"?new x(s):new g(t.tagName,s);return n.setSerializedFragment(r,K(t.innerHtml),t.attributes),n}function K(r){return r.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function L(r,t=H()){return Z(r).map((s)=>{if(!s.startsWith("<"))return new T(s,t);let n=O(s,0);if(!n||n.type!=="open")return new T(s,t);return J(s,n,t)})}function Y(r){if(r.nodeType===u.TEXT_NODE)return r.textContent??"";return"outerHTML"in r&&typeof r.outerHTML==="string"?r.outerHTML:r.textContent??""}Q({parseHtmlToNodes:L,serializeNodeHtml:Y});function B(r){let t=globalThis.CSS;if(typeof t?.escape==="function")return t.escape(r);let s="";for(let n=0;n<r.length;n+=1){let i=r[n]??"",e=i.codePointAt(0)??0;if(e===0){s+="�";continue}let f=e>=1&&e<=31||e===127,c=n===0&&e>=48&&e<=57,y=n===1&&e>=48&&e<=57&&(r[0]??"")==="-",o=n===0&&i==="-"&&r.length===1;if(f||c||y){s+=`\\${e.toString(16)} `;continue}if(e>=128||i==="-"||i==="_"||e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122){s+=o?`\\${i}`:i;continue}s+=`\\${i}`}return s}var C,z={escape(r){return B(String(r))}};function V(){let r=globalThis,t=r.customElements;if(typeof r.Node>"u"||typeof r.Document>"u"||typeof r.Element>"u"||typeof r.HTMLElement>"u"||typeof r.document>"u"||!t||typeof t.define!=="function"||typeof t.get!=="function")return;return r.window??{CSS:r.CSS??z,CustomEvent:r.CustomEvent??$,Document:r.Document,Element:r.Element,Event:r.Event??F,EventTarget:r.EventTarget??EventTarget,HTMLScriptElement:r.HTMLScriptElement??r.HTMLElement,HTMLElement:r.HTMLElement,Node:r.Node,document:r.document,customElements:t}}function d(){let r=V();if(r)return r;return W()}function ur(){return d(),{prepareHost(r,t={}){if(t.authoredContent!==void 0)r.innerHTML=t.authoredContent}}}function W(){let r=V();if(r)return r;if(C)return C;let t=new _,s=new P,n=globalThis.Event??F,i=globalThis.CustomEvent??$,e=P,f=globalThis.EventTarget??EventTarget;return C={CSS:globalThis.CSS??z,CustomEvent:i,Document:e,Element:a,Event:n,EventTarget:f,HTMLScriptElement:x,HTMLElement:g,Node:u,document:s,customElements:t},Object.assign(globalThis,{CSS:globalThis.CSS??z,CustomEvent:i,Document:e,Element:a,Event:n,EventTarget:f,HTMLScriptElement:x,HTMLElement:g,Node:u,document:s,customElements:t,window:C}),C}export{W as installLightDomShim,d as ensureLightDomShim,ur as createServerRenderEnvironment};
2
2
 
3
- //# debugId=B56EAEC3A921A0C064756E2164756E21
3
+ //# debugId=9CF495AC82FBC24664756E2164756E21