@adaas/are-html 0.0.21 → 0.0.23

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 (154) hide show
  1. package/.conf/tsconfig.base.json +1 -0
  2. package/.conf/tsconfig.browser.json +1 -0
  3. package/.conf/tsconfig.node.json +1 -0
  4. package/dist/browser/index.d.mts +214 -3
  5. package/dist/browser/index.mjs +787 -201
  6. package/dist/browser/index.mjs.map +1 -1
  7. package/dist/node/{AreBinding.attribute-doUvtOjc.d.mts → AreBinding.attribute-BWzEIw6H.d.mts} +45 -0
  8. package/dist/node/{AreBinding.attribute-Bm5LlOyE.d.ts → AreBinding.attribute-GpT-5Qmf.d.ts} +45 -0
  9. package/dist/node/attributes/AreBinding.attribute.d.mts +1 -1
  10. package/dist/node/attributes/AreBinding.attribute.d.ts +1 -1
  11. package/dist/node/attributes/AreDirective.attribute.d.mts +1 -1
  12. package/dist/node/attributes/AreDirective.attribute.d.ts +1 -1
  13. package/dist/node/attributes/AreEvent.attribute.d.mts +1 -1
  14. package/dist/node/attributes/AreEvent.attribute.d.ts +1 -1
  15. package/dist/node/attributes/AreStatic.attribute.d.mts +1 -1
  16. package/dist/node/attributes/AreStatic.attribute.d.ts +1 -1
  17. package/dist/node/directives/AreDirectiveFor.directive.d.mts +55 -2
  18. package/dist/node/directives/AreDirectiveFor.directive.d.ts +55 -2
  19. package/dist/node/directives/AreDirectiveFor.directive.js +141 -12
  20. package/dist/node/directives/AreDirectiveFor.directive.js.map +1 -1
  21. package/dist/node/directives/AreDirectiveFor.directive.mjs +141 -12
  22. package/dist/node/directives/AreDirectiveFor.directive.mjs.map +1 -1
  23. package/dist/node/directives/AreDirectiveIf.directive.d.mts +1 -1
  24. package/dist/node/directives/AreDirectiveIf.directive.d.ts +1 -1
  25. package/dist/node/directives/AreDirectiveShow.directive.d.mts +1 -1
  26. package/dist/node/directives/AreDirectiveShow.directive.d.ts +1 -1
  27. package/dist/node/engine/AreHTML.compiler.d.mts +1 -1
  28. package/dist/node/engine/AreHTML.compiler.d.ts +1 -1
  29. package/dist/node/engine/AreHTML.compiler.js +4 -0
  30. package/dist/node/engine/AreHTML.compiler.js.map +1 -1
  31. package/dist/node/engine/AreHTML.compiler.mjs +4 -0
  32. package/dist/node/engine/AreHTML.compiler.mjs.map +1 -1
  33. package/dist/node/engine/AreHTML.constants.d.mts +33 -1
  34. package/dist/node/engine/AreHTML.constants.d.ts +33 -1
  35. package/dist/node/engine/AreHTML.constants.js +166 -0
  36. package/dist/node/engine/AreHTML.constants.js.map +1 -1
  37. package/dist/node/engine/AreHTML.constants.mjs +165 -1
  38. package/dist/node/engine/AreHTML.constants.mjs.map +1 -1
  39. package/dist/node/engine/AreHTML.context.d.mts +66 -0
  40. package/dist/node/engine/AreHTML.context.d.ts +66 -0
  41. package/dist/node/engine/AreHTML.context.js +98 -0
  42. package/dist/node/engine/AreHTML.context.js.map +1 -1
  43. package/dist/node/engine/AreHTML.context.mjs +98 -0
  44. package/dist/node/engine/AreHTML.context.mjs.map +1 -1
  45. package/dist/node/engine/AreHTML.interpreter.d.mts +3 -0
  46. package/dist/node/engine/AreHTML.interpreter.d.ts +3 -0
  47. package/dist/node/engine/AreHTML.interpreter.js +66 -10
  48. package/dist/node/engine/AreHTML.interpreter.js.map +1 -1
  49. package/dist/node/engine/AreHTML.interpreter.mjs +66 -10
  50. package/dist/node/engine/AreHTML.interpreter.mjs.map +1 -1
  51. package/dist/node/engine/AreHTML.lifecycle.d.mts +2 -2
  52. package/dist/node/engine/AreHTML.lifecycle.d.ts +2 -2
  53. package/dist/node/engine/AreHTML.lifecycle.js +32 -4
  54. package/dist/node/engine/AreHTML.lifecycle.js.map +1 -1
  55. package/dist/node/engine/AreHTML.lifecycle.mjs +32 -4
  56. package/dist/node/engine/AreHTML.lifecycle.mjs.map +1 -1
  57. package/dist/node/engine/AreHTML.tokenizer.d.mts +1 -1
  58. package/dist/node/engine/AreHTML.tokenizer.d.ts +1 -1
  59. package/dist/node/engine/AreHTML.tokenizer.js +7 -1
  60. package/dist/node/engine/AreHTML.tokenizer.js.map +1 -1
  61. package/dist/node/engine/AreHTML.tokenizer.mjs +7 -1
  62. package/dist/node/engine/AreHTML.tokenizer.mjs.map +1 -1
  63. package/dist/node/engine/AreHTML.transformer.d.mts +1 -1
  64. package/dist/node/engine/AreHTML.transformer.d.ts +1 -1
  65. package/dist/node/helpers/AreScheduler.helper.d.mts +39 -0
  66. package/dist/node/helpers/AreScheduler.helper.d.ts +39 -0
  67. package/dist/node/helpers/AreScheduler.helper.js +40 -0
  68. package/dist/node/helpers/AreScheduler.helper.js.map +1 -0
  69. package/dist/node/helpers/AreScheduler.helper.mjs +40 -0
  70. package/dist/node/helpers/AreScheduler.helper.mjs.map +1 -0
  71. package/dist/node/index.d.mts +4 -3
  72. package/dist/node/index.d.ts +4 -3
  73. package/dist/node/index.js +7 -0
  74. package/dist/node/index.mjs +1 -0
  75. package/dist/node/instructions/AddStaticHTML.instruction.d.mts +8 -0
  76. package/dist/node/instructions/AddStaticHTML.instruction.d.ts +8 -0
  77. package/dist/node/instructions/AddStaticHTML.instruction.js +31 -0
  78. package/dist/node/instructions/AddStaticHTML.instruction.js.map +1 -0
  79. package/dist/node/instructions/AddStaticHTML.instruction.mjs +24 -0
  80. package/dist/node/instructions/AddStaticHTML.instruction.mjs.map +1 -0
  81. package/dist/node/instructions/AreHTML.instructions.constants.d.mts +1 -0
  82. package/dist/node/instructions/AreHTML.instructions.constants.d.ts +1 -0
  83. package/dist/node/instructions/AreHTML.instructions.constants.js +1 -0
  84. package/dist/node/instructions/AreHTML.instructions.constants.js.map +1 -1
  85. package/dist/node/instructions/AreHTML.instructions.constants.mjs +1 -0
  86. package/dist/node/instructions/AreHTML.instructions.constants.mjs.map +1 -1
  87. package/dist/node/instructions/AreHTML.instructions.types.d.mts +9 -1
  88. package/dist/node/instructions/AreHTML.instructions.types.d.ts +9 -1
  89. package/dist/node/lib/AreDirective/AreDirective.component.d.mts +1 -1
  90. package/dist/node/lib/AreDirective/AreDirective.component.d.ts +1 -1
  91. package/dist/node/lib/AreDirective/AreDirective.types.d.mts +1 -1
  92. package/dist/node/lib/AreDirective/AreDirective.types.d.ts +1 -1
  93. package/dist/node/lib/AreHTML/AreHTML.tokenizer.d.mts +1 -1
  94. package/dist/node/lib/AreHTML/AreHTML.tokenizer.d.ts +1 -1
  95. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.d.mts +1 -1
  96. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.d.ts +1 -1
  97. package/dist/node/lib/AreHTMLNode/AreHTMLNode.d.mts +1 -1
  98. package/dist/node/lib/AreHTMLNode/AreHTMLNode.d.ts +1 -1
  99. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js +51 -0
  100. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js.map +1 -1
  101. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs +51 -0
  102. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs.map +1 -1
  103. package/dist/node/lib/AreRoot/AreRoot.component.js +1 -1
  104. package/dist/node/lib/AreRoot/AreRoot.component.js.map +1 -1
  105. package/dist/node/lib/AreRoot/AreRoot.component.mjs +1 -1
  106. package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +1 -1
  107. package/dist/node/nodes/AreComment.d.mts +1 -1
  108. package/dist/node/nodes/AreComment.d.ts +1 -1
  109. package/dist/node/nodes/AreComponent.d.mts +1 -1
  110. package/dist/node/nodes/AreComponent.d.ts +1 -1
  111. package/dist/node/nodes/AreInterpolation.d.mts +1 -1
  112. package/dist/node/nodes/AreInterpolation.d.ts +1 -1
  113. package/dist/node/nodes/AreRoot.d.mts +1 -1
  114. package/dist/node/nodes/AreRoot.d.ts +1 -1
  115. package/dist/node/nodes/AreText.d.mts +1 -1
  116. package/dist/node/nodes/AreText.d.ts +1 -1
  117. package/examples/dashboard/concept.ts +1 -1
  118. package/examples/dashboard/dist/index.html +1 -1
  119. package/examples/dashboard/dist/{mq19zxz4-mnlgmd.js → mqiw5sqa-ypckmj.js} +2275 -1323
  120. package/examples/dashboard/src/concept.ts +3 -2
  121. package/examples/for-perf/concept.ts +45 -0
  122. package/examples/for-perf/containers/UI.container.ts +161 -0
  123. package/examples/for-perf/dist/index.html +270 -0
  124. package/examples/for-perf/dist/mqj1mpf2-z4aokv.js +15664 -0
  125. package/examples/for-perf/dist/mqj1mpff-4fr7mw.js +15664 -0
  126. package/examples/for-perf/public/index.html +270 -0
  127. package/examples/for-perf/src/components/PerfApp.component.ts +37 -0
  128. package/examples/for-perf/src/components/PerfControls.component.ts +34 -0
  129. package/examples/for-perf/src/components/PerfGrid.component.ts +225 -0
  130. package/examples/for-perf/src/components/PerfHeader.component.ts +34 -0
  131. package/examples/for-perf/src/components/PerfStats.component.ts +43 -0
  132. package/examples/for-perf/src/concept.ts +94 -0
  133. package/examples/jumpstart/dist/index.html +1 -1
  134. package/examples/jumpstart/dist/{mq7hqrxy-4kus50.js → mq7mgf58-vbf07e.js} +269 -91
  135. package/examples/signal-routing/dist/index.html +1 -1
  136. package/examples/signal-routing/dist/{mq7k53th-qiwy4x.js → mqiwo23h-bhcolu.js} +2090 -1430
  137. package/jest.config.ts +1 -0
  138. package/package.json +10 -9
  139. package/src/directives/AreDirectiveFor.directive.ts +233 -19
  140. package/src/engine/AreHTML.compiler.ts +13 -0
  141. package/src/engine/AreHTML.constants.ts +142 -0
  142. package/src/engine/AreHTML.context.ts +112 -0
  143. package/src/engine/AreHTML.interpreter.ts +114 -13
  144. package/src/engine/AreHTML.lifecycle.ts +91 -7
  145. package/src/engine/AreHTML.tokenizer.ts +30 -1
  146. package/src/helpers/AreScheduler.helper.ts +61 -0
  147. package/src/index.ts +1 -0
  148. package/src/instructions/AddStaticHTML.instruction.ts +23 -0
  149. package/src/instructions/AreHTML.instructions.constants.ts +1 -0
  150. package/src/instructions/AreHTML.instructions.types.ts +9 -0
  151. package/src/lib/AreHTMLNode/AreHTMLNode.ts +74 -0
  152. package/src/lib/AreRoot/AreRoot.component.ts +4 -1
  153. package/tests/StaticIsland.test.ts +115 -0
  154. package/tsconfig.json +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":["AreHTMLTokenizer","AreTokenizer","AreBindingAttribute","AreEventAttribute","AreDirectiveAttribute","AreStaticAttribute","A_Feature","AreNodeFeatures","AreComponentNode","AreRootNode","A_Caller","AreContext","A_Logger","A_Frame"],"mappings":"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","file":"AreHTML.tokenizer.js","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required.'\n})\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w.-]+(?::[\\w.-]+)?)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n super.tokenize(node, context, logger);\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":["AreHTMLTokenizer","AreTokenizer","AreComponentNode","isStaticMarkup","AreBindingAttribute","AreEventAttribute","AreDirectiveAttribute","AreStaticAttribute","A_Feature","AreNodeFeatures","AreRootNode","A_Caller","AreContext","A_Logger","A_Frame"],"mappings":"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","file":"AreHTML.tokenizer.js","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\nimport { isStaticMarkup } from \"./AreHTML.constants\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required.'\n})\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w.-]+(?::[\\w.-]+)?)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n /**\n * Static-island fast path.\n *\n * When a node's entire inner subtree is fully static — no `{{ }}`\n * interpolations, no dynamic (`$`/`:`/`@`) attributes and only standard\n * HTML tags — we skip exploding it into one child AreNode per element /\n * text run and instead capture the inner markup verbatim. The interpreter\n * later materialises it in a single pass (browser-parsed innerHTML /\n * cached `<template>` clone), which:\n * - eliminates N node + scope + scene + instruction allocations,\n * - collapses N isolated DOM mutations into one, and\n * - decodes HTML entities (e.g. `&nbsp;`) for free.\n *\n * Routing outlets (AreRootNode) are intentionally excluded — they own\n * their content dynamically. The node's OWN attributes are still\n * extracted below, so a dynamic attribute on the island root itself\n * (e.g. `<div :class=\"x\"> …static… </div>`) keeps working.\n */\n const isStaticIsland =\n node instanceof AreComponentNode &&\n !!node.content &&\n isStaticMarkup(node.content);\n\n if (isStaticIsland) {\n (node as AreHTMLNode).markStatic(node.content);\n } else {\n super.tokenize(node, context, logger);\n }\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
@@ -8,6 +8,7 @@ import { AreDirectiveAttribute } from '@adaas/are-html/attributes/AreDirective.a
8
8
  import { AreEventAttribute } from '@adaas/are-html/attributes/AreEvent.attribute';
9
9
  import { AreBindingAttribute } from '@adaas/are-html/attributes/AreBinding.attribute';
10
10
  import { AreStaticAttribute } from '@adaas/are-html/attributes/AreStatic.attribute';
11
+ import { isStaticMarkup } from './AreHTML.constants';
11
12
  import { A_Frame } from '@adaas/a-frame/core';
12
13
 
13
14
  let AreHTMLTokenizer = class extends AreTokenizer {
@@ -16,7 +17,12 @@ let AreHTMLTokenizer = class extends AreTokenizer {
16
17
  this.ATTR_PATTERN = /([$:@]?[\w.-]+(?::[\w.-]+)?)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>/"'=]+)))?/g;
17
18
  }
18
19
  tokenize(node, context, logger) {
19
- super.tokenize(node, context, logger);
20
+ const isStaticIsland = node instanceof AreComponentNode && !!node.content && isStaticMarkup(node.content);
21
+ if (isStaticIsland) {
22
+ node.markStatic(node.content);
23
+ } else {
24
+ super.tokenize(node, context, logger);
25
+ }
20
26
  context.startPerformance("attributeExtraction");
21
27
  const attributes = this.extractAttributes(node.markup);
22
28
  for (const attr of attributes) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":[],"mappings":"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","file":"AreHTML.tokenizer.mjs","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required.'\n})\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w.-]+(?::[\\w.-]+)?)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n super.tokenize(node, context, logger);\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.tokenizer.ts"],"names":[],"mappings":"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","file":"AreHTML.tokenizer.mjs","sourcesContent":["import { A_Caller, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreNodeFeatures, AreNode, AreTokenizer, AreAttribute_Init, AreContext } from \"@adaas/are\";\nimport { AreComponentNode } from \"@adaas/are-html/nodes/AreComponent\";\nimport { AreRootNode } from \"@adaas/are-html/nodes/AreRoot\";\nimport { AreDirectiveAttribute } from \"@adaas/are-html/attributes/AreDirective.attribute\";\nimport { AreEventAttribute } from \"@adaas/are-html/attributes/AreEvent.attribute\";\nimport { AreBindingAttribute } from \"@adaas/are-html/attributes/AreBinding.attribute\";\nimport { AreStaticAttribute } from \"@adaas/are-html/attributes/AreStatic.attribute\";\nimport { AreHTMLAttribute } from \"../lib/AreHTMLAttribute/AreHTML.attribute\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\nimport { isStaticMarkup } from \"./AreHTML.constants\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'HTML-specific tokenizer extending AreTokenizer. Parses raw HTML template strings into AreHTMLNode trees by scanning element tags and resolving directive ($), event (@), binding (:), and static attributes to their typed attribute classes, constructing AreComponentNode and AreRootNode instances where required.'\n})\nexport class AreHTMLTokenizer extends AreTokenizer {\n\n ATTR_PATTERN = /([$:@]?[\\w.-]+(?::[\\w.-]+)?)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>/\"'=]+)))?/g\n\n\n @A_Feature.Extend({\n name: AreNodeFeatures.onTokenize,\n scope: [AreComponentNode, AreRootNode]\n })\n tokenize(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_Logger) logger?: A_Logger\n ): void {\n\n /**\n * Static-island fast path.\n *\n * When a node's entire inner subtree is fully static — no `{{ }}`\n * interpolations, no dynamic (`$`/`:`/`@`) attributes and only standard\n * HTML tags — we skip exploding it into one child AreNode per element /\n * text run and instead capture the inner markup verbatim. The interpreter\n * later materialises it in a single pass (browser-parsed innerHTML /\n * cached `<template>` clone), which:\n * - eliminates N node + scope + scene + instruction allocations,\n * - collapses N isolated DOM mutations into one, and\n * - decodes HTML entities (e.g. `&nbsp;`) for free.\n *\n * Routing outlets (AreRootNode) are intentionally excluded — they own\n * their content dynamically. The node's OWN attributes are still\n * extracted below, so a dynamic attribute on the island root itself\n * (e.g. `<div :class=\"x\"> …static… </div>`) keeps working.\n */\n const isStaticIsland =\n node instanceof AreComponentNode &&\n !!node.content &&\n isStaticMarkup(node.content);\n\n if (isStaticIsland) {\n (node as AreHTMLNode).markStatic(node.content);\n } else {\n super.tokenize(node, context, logger);\n }\n\n context.startPerformance('attributeExtraction');\n\n const attributes = this.extractAttributes(node.markup);\n\n for (const attr of attributes) {\n node.scope.register(attr);\n }\n\n context.endPerformance('attributeExtraction');\n }\n\n\n\n extractAttributes(markup: string): AreHTMLAttribute[] {\n // Strip the tag name, then remove the closing > that is NOT inside quotes\n const withoutTag = markup.replace(/^<[a-zA-Z][a-zA-Z0-9-]*\\s*/, '')\n\n // Walk the string to find the closing > that isn't inside a quoted value\n let inSingle = false\n let inDouble = false\n let endIdx = withoutTag.length\n\n for (let i = 0; i < withoutTag.length; i++) {\n const ch = withoutTag[i]\n if (ch === '\"' && !inSingle) inDouble = !inDouble\n else if (ch === \"'\" && !inDouble) inSingle = !inSingle\n else if (ch === '>' && !inSingle && !inDouble) {\n endIdx = i\n break\n }\n }\n\n const attrString = withoutTag.slice(0, endIdx).replace(/\\s*\\/?\\s*$/, '').trim()\n\n const results: AreHTMLAttribute[] = []\n\n for (const match of attrString.matchAll(this.ATTR_PATTERN)) {\n const raw = match[0]\n const full = match[1] // e.g. ':class', '@click', '$for', 'id'\n\n // skip zero-length or name-less regex matches\n if (!full) continue\n\n const value = match[2] ?? match[3] ?? match[4] ?? 'true'\n\n const prefix = full[0]\n const isSpecial = prefix === ':' || prefix === '@' || prefix === '$'\n const name = isSpecial ? full.slice(1) : full\n\n const meta: AreAttribute_Init = { name, content: value, raw, prefix: isSpecial ? prefix : '' }\n\n if (prefix === ':') results.push(new AreBindingAttribute(meta))\n else if (prefix === '@') results.push(new AreEventAttribute(meta))\n else if (prefix === '$') results.push(new AreDirectiveAttribute(meta))\n else results.push(new AreStaticAttribute(meta))\n }\n\n return results\n }\n\n}"]}
@@ -1,7 +1,7 @@
1
1
  import { A_Feature } from '@adaas/a-concept';
2
2
  import { A_Logger } from '@adaas/a-utils/a-logger';
3
3
  import { AreTransformer, AreStore } from '@adaas/are';
4
- import { b as AreDirectiveAttribute } from '../AreBinding.attribute-doUvtOjc.mjs';
4
+ import { b as AreDirectiveAttribute } from '../AreBinding.attribute-BWzEIw6H.mjs';
5
5
  import '../lib/AreStyle/AreStyle.context.mjs';
6
6
 
7
7
  declare class AreHTMLTransformer extends AreTransformer {
@@ -1,7 +1,7 @@
1
1
  import { A_Feature } from '@adaas/a-concept';
2
2
  import { A_Logger } from '@adaas/a-utils/a-logger';
3
3
  import { AreTransformer, AreStore } from '@adaas/are';
4
- import { b as AreDirectiveAttribute } from '../AreBinding.attribute-Bm5LlOyE.js';
4
+ import { b as AreDirectiveAttribute } from '../AreBinding.attribute-GpT-5Qmf.js';
5
5
  import '../lib/AreStyle/AreStyle.context.js';
6
6
 
7
7
  declare class AreHTMLTransformer extends AreTransformer {
@@ -0,0 +1,39 @@
1
+ /**
2
+ * AreSchedulerHelper
3
+ *
4
+ * Cooperative time-slicing primitives shared by the chunked (async) render
5
+ * paths — the initial whole-page mount walk and the `$for` directive. Both need
6
+ * the SAME two capabilities:
7
+ * 1. a high-resolution clock to measure how long the current chunk has run, and
8
+ * 2. a zero-delay macrotask scheduler to yield to the browser between chunks
9
+ * so it can paint and process input before resuming work.
10
+ *
11
+ * Keeping these in one helper avoids duplicating the `MessageChannel` plumbing
12
+ * across directives/lifecycle and gives a single place to tune the strategy.
13
+ */
14
+ declare class AreSchedulerHelper {
15
+ /**
16
+ * Lazily-created `MessageChannel` used to post zero-delay macrotasks.
17
+ * Created on first use so non-DOM environments (tests / SSR) that never
18
+ * schedule a chunk pay nothing.
19
+ */
20
+ private static _channel?;
21
+ /** FIFO queue of callbacks waiting for their posted macrotask to fire. */
22
+ private static readonly _queue;
23
+ /**
24
+ * High-resolution wall-clock time in milliseconds. Uses `performance.now()`
25
+ * when available (monotonic, sub-millisecond), falling back to `Date.now()`.
26
+ */
27
+ static now(): number;
28
+ /**
29
+ * Schedule `fn` to run on the next macrotask.
30
+ *
31
+ * `MessageChannel` yields a true macrotask without the ~4ms clamp that nested
32
+ * `setTimeout(0)` calls incur, so the browser can paint between chunks with
33
+ * minimal scheduling overhead. Falls back to `setTimeout` in non-DOM
34
+ * environments (e.g. tests / SSR).
35
+ */
36
+ static scheduleMacrotask(fn: () => void): void;
37
+ }
38
+
39
+ export { AreSchedulerHelper };
@@ -0,0 +1,39 @@
1
+ /**
2
+ * AreSchedulerHelper
3
+ *
4
+ * Cooperative time-slicing primitives shared by the chunked (async) render
5
+ * paths — the initial whole-page mount walk and the `$for` directive. Both need
6
+ * the SAME two capabilities:
7
+ * 1. a high-resolution clock to measure how long the current chunk has run, and
8
+ * 2. a zero-delay macrotask scheduler to yield to the browser between chunks
9
+ * so it can paint and process input before resuming work.
10
+ *
11
+ * Keeping these in one helper avoids duplicating the `MessageChannel` plumbing
12
+ * across directives/lifecycle and gives a single place to tune the strategy.
13
+ */
14
+ declare class AreSchedulerHelper {
15
+ /**
16
+ * Lazily-created `MessageChannel` used to post zero-delay macrotasks.
17
+ * Created on first use so non-DOM environments (tests / SSR) that never
18
+ * schedule a chunk pay nothing.
19
+ */
20
+ private static _channel?;
21
+ /** FIFO queue of callbacks waiting for their posted macrotask to fire. */
22
+ private static readonly _queue;
23
+ /**
24
+ * High-resolution wall-clock time in milliseconds. Uses `performance.now()`
25
+ * when available (monotonic, sub-millisecond), falling back to `Date.now()`.
26
+ */
27
+ static now(): number;
28
+ /**
29
+ * Schedule `fn` to run on the next macrotask.
30
+ *
31
+ * `MessageChannel` yields a true macrotask without the ~4ms clamp that nested
32
+ * `setTimeout(0)` calls incur, so the browser can paint between chunks with
33
+ * minimal scheduling overhead. Falls back to `setTimeout` in non-DOM
34
+ * environments (e.g. tests / SSR).
35
+ */
36
+ static scheduleMacrotask(fn: () => void): void;
37
+ }
38
+
39
+ export { AreSchedulerHelper };
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ class AreSchedulerHelper {
4
+ /**
5
+ * High-resolution wall-clock time in milliseconds. Uses `performance.now()`
6
+ * when available (monotonic, sub-millisecond), falling back to `Date.now()`.
7
+ */
8
+ static now() {
9
+ return typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
10
+ }
11
+ /**
12
+ * Schedule `fn` to run on the next macrotask.
13
+ *
14
+ * `MessageChannel` yields a true macrotask without the ~4ms clamp that nested
15
+ * `setTimeout(0)` calls incur, so the browser can paint between chunks with
16
+ * minimal scheduling overhead. Falls back to `setTimeout` in non-DOM
17
+ * environments (e.g. tests / SSR).
18
+ */
19
+ static scheduleMacrotask(fn) {
20
+ if (typeof MessageChannel === "undefined") {
21
+ setTimeout(fn, 0);
22
+ return;
23
+ }
24
+ if (!this._channel) {
25
+ this._channel = new MessageChannel();
26
+ this._channel.port1.onmessage = () => {
27
+ const next = this._queue.shift();
28
+ if (next) next();
29
+ };
30
+ }
31
+ this._queue.push(fn);
32
+ this._channel.port2.postMessage(null);
33
+ }
34
+ }
35
+ /** FIFO queue of callbacks waiting for their posted macrotask to fire. */
36
+ AreSchedulerHelper._queue = [];
37
+
38
+ exports.AreSchedulerHelper = AreSchedulerHelper;
39
+ //# sourceMappingURL=AreScheduler.helper.js.map
40
+ //# sourceMappingURL=AreScheduler.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/AreScheduler.helper.ts"],"names":[],"mappings":";;AAaO,MAAM,kBAAA,CAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB5B,OAAO,GAAA,GAAc;AACjB,IAAA,OAAQ,OAAO,WAAA,KAAgB,WAAA,IAAe,OAAO,WAAA,CAAY,GAAA,KAAQ,UAAA,GACnE,WAAA,CAAY,GAAA,EAAI,GAChB,IAAA,CAAK,GAAA,EAAI;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,kBAAkB,EAAA,EAAsB;AAC3C,IAAA,IAAI,OAAO,mBAAmB,WAAA,EAAa;AACvC,MAAA,UAAA,CAAW,IAAI,CAAC,CAAA;AAChB,MAAA;AAAA,IACJ;AAEA,IAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAChB,MAAA,IAAA,CAAK,QAAA,GAAW,IAAI,cAAA,EAAe;AACnC,MAAA,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,SAAA,GAAY,MAAM;AAClC,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,MAAA,CAAO,KAAA,EAAM;AAC/B,QAAA,IAAI,MAAM,IAAA,EAAK;AAAA,MACnB,CAAA;AAAA,IACJ;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,EAAE,CAAA;AACnB,IAAA,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,WAAA,CAAY,IAAI,CAAA;AAAA,EACxC;AACJ;AAAA;AA/Ca,kBAAA,CAUe,SAA4B,EAAC","file":"AreScheduler.helper.js","sourcesContent":["/**\n * AreSchedulerHelper\n *\n * Cooperative time-slicing primitives shared by the chunked (async) render\n * paths — the initial whole-page mount walk and the `$for` directive. Both need\n * the SAME two capabilities:\n * 1. a high-resolution clock to measure how long the current chunk has run, and\n * 2. a zero-delay macrotask scheduler to yield to the browser between chunks\n * so it can paint and process input before resuming work.\n *\n * Keeping these in one helper avoids duplicating the `MessageChannel` plumbing\n * across directives/lifecycle and gives a single place to tune the strategy.\n */\nexport class AreSchedulerHelper {\n\n /**\n * Lazily-created `MessageChannel` used to post zero-delay macrotasks.\n * Created on first use so non-DOM environments (tests / SSR) that never\n * schedule a chunk pay nothing.\n */\n private static _channel?: MessageChannel;\n\n /** FIFO queue of callbacks waiting for their posted macrotask to fire. */\n private static readonly _queue: Array<() => void> = [];\n\n /**\n * High-resolution wall-clock time in milliseconds. Uses `performance.now()`\n * when available (monotonic, sub-millisecond), falling back to `Date.now()`.\n */\n static now(): number {\n return (typeof performance !== 'undefined' && typeof performance.now === 'function')\n ? performance.now()\n : Date.now();\n }\n\n /**\n * Schedule `fn` to run on the next macrotask.\n *\n * `MessageChannel` yields a true macrotask without the ~4ms clamp that nested\n * `setTimeout(0)` calls incur, so the browser can paint between chunks with\n * minimal scheduling overhead. Falls back to `setTimeout` in non-DOM\n * environments (e.g. tests / SSR).\n */\n static scheduleMacrotask(fn: () => void): void {\n if (typeof MessageChannel === 'undefined') {\n setTimeout(fn, 0);\n return;\n }\n\n if (!this._channel) {\n this._channel = new MessageChannel();\n this._channel.port1.onmessage = () => {\n const next = this._queue.shift();\n if (next) next();\n };\n }\n\n this._queue.push(fn);\n this._channel.port2.postMessage(null);\n }\n}\n"]}
@@ -0,0 +1,40 @@
1
+ import '../chunk-EQQGB2QZ.mjs';
2
+
3
+ class AreSchedulerHelper {
4
+ /**
5
+ * High-resolution wall-clock time in milliseconds. Uses `performance.now()`
6
+ * when available (monotonic, sub-millisecond), falling back to `Date.now()`.
7
+ */
8
+ static now() {
9
+ return typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
10
+ }
11
+ /**
12
+ * Schedule `fn` to run on the next macrotask.
13
+ *
14
+ * `MessageChannel` yields a true macrotask without the ~4ms clamp that nested
15
+ * `setTimeout(0)` calls incur, so the browser can paint between chunks with
16
+ * minimal scheduling overhead. Falls back to `setTimeout` in non-DOM
17
+ * environments (e.g. tests / SSR).
18
+ */
19
+ static scheduleMacrotask(fn) {
20
+ if (typeof MessageChannel === "undefined") {
21
+ setTimeout(fn, 0);
22
+ return;
23
+ }
24
+ if (!this._channel) {
25
+ this._channel = new MessageChannel();
26
+ this._channel.port1.onmessage = () => {
27
+ const next = this._queue.shift();
28
+ if (next) next();
29
+ };
30
+ }
31
+ this._queue.push(fn);
32
+ this._channel.port2.postMessage(null);
33
+ }
34
+ }
35
+ /** FIFO queue of callbacks waiting for their posted macrotask to fire. */
36
+ AreSchedulerHelper._queue = [];
37
+
38
+ export { AreSchedulerHelper };
39
+ //# sourceMappingURL=AreScheduler.helper.mjs.map
40
+ //# sourceMappingURL=AreScheduler.helper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/AreScheduler.helper.ts"],"names":[],"mappings":";;AAaO,MAAM,kBAAA,CAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB5B,OAAO,GAAA,GAAc;AACjB,IAAA,OAAQ,OAAO,WAAA,KAAgB,WAAA,IAAe,OAAO,WAAA,CAAY,GAAA,KAAQ,UAAA,GACnE,WAAA,CAAY,GAAA,EAAI,GAChB,IAAA,CAAK,GAAA,EAAI;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,kBAAkB,EAAA,EAAsB;AAC3C,IAAA,IAAI,OAAO,mBAAmB,WAAA,EAAa;AACvC,MAAA,UAAA,CAAW,IAAI,CAAC,CAAA;AAChB,MAAA;AAAA,IACJ;AAEA,IAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAChB,MAAA,IAAA,CAAK,QAAA,GAAW,IAAI,cAAA,EAAe;AACnC,MAAA,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,SAAA,GAAY,MAAM;AAClC,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,MAAA,CAAO,KAAA,EAAM;AAC/B,QAAA,IAAI,MAAM,IAAA,EAAK;AAAA,MACnB,CAAA;AAAA,IACJ;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,EAAE,CAAA;AACnB,IAAA,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,WAAA,CAAY,IAAI,CAAA;AAAA,EACxC;AACJ;AAAA;AA/Ca,kBAAA,CAUe,SAA4B,EAAC","file":"AreScheduler.helper.mjs","sourcesContent":["/**\n * AreSchedulerHelper\n *\n * Cooperative time-slicing primitives shared by the chunked (async) render\n * paths — the initial whole-page mount walk and the `$for` directive. Both need\n * the SAME two capabilities:\n * 1. a high-resolution clock to measure how long the current chunk has run, and\n * 2. a zero-delay macrotask scheduler to yield to the browser between chunks\n * so it can paint and process input before resuming work.\n *\n * Keeping these in one helper avoids duplicating the `MessageChannel` plumbing\n * across directives/lifecycle and gives a single place to tune the strategy.\n */\nexport class AreSchedulerHelper {\n\n /**\n * Lazily-created `MessageChannel` used to post zero-delay macrotasks.\n * Created on first use so non-DOM environments (tests / SSR) that never\n * schedule a chunk pay nothing.\n */\n private static _channel?: MessageChannel;\n\n /** FIFO queue of callbacks waiting for their posted macrotask to fire. */\n private static readonly _queue: Array<() => void> = [];\n\n /**\n * High-resolution wall-clock time in milliseconds. Uses `performance.now()`\n * when available (monotonic, sub-millisecond), falling back to `Date.now()`.\n */\n static now(): number {\n return (typeof performance !== 'undefined' && typeof performance.now === 'function')\n ? performance.now()\n : Date.now();\n }\n\n /**\n * Schedule `fn` to run on the next macrotask.\n *\n * `MessageChannel` yields a true macrotask without the ~4ms clamp that nested\n * `setTimeout(0)` calls incur, so the browser can paint between chunks with\n * minimal scheduling overhead. Falls back to `setTimeout` in non-DOM\n * environments (e.g. tests / SSR).\n */\n static scheduleMacrotask(fn: () => void): void {\n if (typeof MessageChannel === 'undefined') {\n setTimeout(fn, 0);\n return;\n }\n\n if (!this._channel) {\n this._channel = new MessageChannel();\n this._channel.port1.onmessage = () => {\n const next = this._queue.shift();\n if (next) next();\n };\n }\n\n this._queue.push(fn);\n this._channel.port2.postMessage(null);\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- export { A as AreBindingAttribute, a as AreDirective, b as AreDirectiveAttribute, c as AreEventAttribute, d as AreHTMLAttribute, e as AreHTMLNode, f as AreStaticAttribute } from './AreBinding.attribute-doUvtOjc.mjs';
1
+ export { A as AreBindingAttribute, a as AreDirective, b as AreDirectiveAttribute, c as AreEventAttribute, d as AreHTMLAttribute, e as AreHTMLNode, f as AreStaticAttribute } from './AreBinding.attribute-BWzEIw6H.mjs';
2
2
  export { AreDirectiveFor } from './directives/AreDirectiveFor.directive.mjs';
3
3
  export { AreDirectiveIf } from './directives/AreDirectiveIf.directive.mjs';
4
4
  export { AreDirectiveShow } from './directives/AreDirectiveShow.directive.mjs';
@@ -6,18 +6,19 @@ export { AddAttributeInstruction } from './instructions/AddAttribute.instruction
6
6
  export { AddElementInstruction } from './instructions/AddElement.instruction.mjs';
7
7
  export { AddInterpolationInstruction } from './instructions/AddInterpolation.instruction.mjs';
8
8
  export { AddListenerInstruction } from './instructions/AddListener.instruction.mjs';
9
+ export { AddStaticHTMLInstruction } from './instructions/AddStaticHTML.instruction.mjs';
9
10
  export { AddStyleInstruction } from './instructions/AddStyle.instruction.mjs';
10
11
  export { AddTextInstruction } from './instructions/AddText.instruction.mjs';
11
12
  export { HideElementInstruction } from './instructions/HideElement.instruction.mjs';
12
13
  export { AreHTMLInstructions } from './instructions/AreHTML.instructions.constants.mjs';
13
- export { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload } from './instructions/AreHTML.instructions.types.mjs';
14
+ export { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStaticHTMLInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload } from './instructions/AreHTML.instructions.types.mjs';
14
15
  export { AreComment } from './nodes/AreComment.mjs';
15
16
  export { AreComponentNode } from './nodes/AreComponent.mjs';
16
17
  export { AreInterpolation } from './nodes/AreInterpolation.mjs';
17
18
  export { AreRootNode } from './nodes/AreRoot.mjs';
18
19
  export { AreText } from './nodes/AreText.mjs';
19
20
  export { AreRoute } from './signals/AreRoute.signal.mjs';
20
- export { BOOLEAN_ATTRIBUTES, IDL_FORM_PROPERTIES, LISTENER_OPTION_MODIFIERS, ParsedEventName, SVG_ATTRIBUTE_NS, SVG_NAMESPACE, VOID_ELEMENTS, isBooleanAttribute, isIDLFormProperty, isVoidElement, normalizeClassValue, normalizeStyleValue, parseEventName, toDOMString } from './engine/AreHTML.constants.mjs';
21
+ export { BOOLEAN_ATTRIBUTES, IDL_FORM_PROPERTIES, LISTENER_OPTION_MODIFIERS, ParsedEventName, STANDARD_HTML_TAGS, SVG_ATTRIBUTE_NS, SVG_NAMESPACE, VOID_ELEMENTS, isBooleanAttribute, isIDLFormProperty, isStaticMarkup, isVoidElement, normalizeClassValue, normalizeStyleValue, parseEventName, toDOMString } from './engine/AreHTML.constants.mjs';
21
22
  export { AreHTMLEngineContext } from './engine/AreHTML.context.mjs';
22
23
  export { AreHTMLContextConstructor } from './engine/AreHTML.types.mjs';
23
24
  export { AreHTMLCompiler } from './engine/AreHTML.compiler.mjs';
@@ -1,4 +1,4 @@
1
- export { A as AreBindingAttribute, a as AreDirective, b as AreDirectiveAttribute, c as AreEventAttribute, d as AreHTMLAttribute, e as AreHTMLNode, f as AreStaticAttribute } from './AreBinding.attribute-Bm5LlOyE.js';
1
+ export { A as AreBindingAttribute, a as AreDirective, b as AreDirectiveAttribute, c as AreEventAttribute, d as AreHTMLAttribute, e as AreHTMLNode, f as AreStaticAttribute } from './AreBinding.attribute-GpT-5Qmf.js';
2
2
  export { AreDirectiveFor } from './directives/AreDirectiveFor.directive.js';
3
3
  export { AreDirectiveIf } from './directives/AreDirectiveIf.directive.js';
4
4
  export { AreDirectiveShow } from './directives/AreDirectiveShow.directive.js';
@@ -6,18 +6,19 @@ export { AddAttributeInstruction } from './instructions/AddAttribute.instruction
6
6
  export { AddElementInstruction } from './instructions/AddElement.instruction.js';
7
7
  export { AddInterpolationInstruction } from './instructions/AddInterpolation.instruction.js';
8
8
  export { AddListenerInstruction } from './instructions/AddListener.instruction.js';
9
+ export { AddStaticHTMLInstruction } from './instructions/AddStaticHTML.instruction.js';
9
10
  export { AddStyleInstruction } from './instructions/AddStyle.instruction.js';
10
11
  export { AddTextInstruction } from './instructions/AddText.instruction.js';
11
12
  export { HideElementInstruction } from './instructions/HideElement.instruction.js';
12
13
  export { AreHTMLInstructions } from './instructions/AreHTML.instructions.constants.js';
13
- export { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload } from './instructions/AreHTML.instructions.types.js';
14
+ export { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStaticHTMLInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload } from './instructions/AreHTML.instructions.types.js';
14
15
  export { AreComment } from './nodes/AreComment.js';
15
16
  export { AreComponentNode } from './nodes/AreComponent.js';
16
17
  export { AreInterpolation } from './nodes/AreInterpolation.js';
17
18
  export { AreRootNode } from './nodes/AreRoot.js';
18
19
  export { AreText } from './nodes/AreText.js';
19
20
  export { AreRoute } from './signals/AreRoute.signal.js';
20
- export { BOOLEAN_ATTRIBUTES, IDL_FORM_PROPERTIES, LISTENER_OPTION_MODIFIERS, ParsedEventName, SVG_ATTRIBUTE_NS, SVG_NAMESPACE, VOID_ELEMENTS, isBooleanAttribute, isIDLFormProperty, isVoidElement, normalizeClassValue, normalizeStyleValue, parseEventName, toDOMString } from './engine/AreHTML.constants.js';
21
+ export { BOOLEAN_ATTRIBUTES, IDL_FORM_PROPERTIES, LISTENER_OPTION_MODIFIERS, ParsedEventName, STANDARD_HTML_TAGS, SVG_ATTRIBUTE_NS, SVG_NAMESPACE, VOID_ELEMENTS, isBooleanAttribute, isIDLFormProperty, isStaticMarkup, isVoidElement, normalizeClassValue, normalizeStyleValue, parseEventName, toDOMString } from './engine/AreHTML.constants.js';
21
22
  export { AreHTMLEngineContext } from './engine/AreHTML.context.js';
22
23
  export { AreHTMLContextConstructor } from './engine/AreHTML.types.js';
23
24
  export { AreHTMLCompiler } from './engine/AreHTML.compiler.js';
@@ -12,6 +12,7 @@ var AddAttribute_instruction = require('./instructions/AddAttribute.instruction'
12
12
  var AddElement_instruction = require('./instructions/AddElement.instruction');
13
13
  var AddInterpolation_instruction = require('./instructions/AddInterpolation.instruction');
14
14
  var AddListener_instruction = require('./instructions/AddListener.instruction');
15
+ var AddStaticHTML_instruction = require('./instructions/AddStaticHTML.instruction');
15
16
  var AddStyle_instruction = require('./instructions/AddStyle.instruction');
16
17
  var AddText_instruction = require('./instructions/AddText.instruction');
17
18
  var HideElement_instruction = require('./instructions/HideElement.instruction');
@@ -119,6 +120,12 @@ Object.keys(AddListener_instruction).forEach(function (k) {
119
120
  get: function () { return AddListener_instruction[k]; }
120
121
  });
121
122
  });
123
+ Object.keys(AddStaticHTML_instruction).forEach(function (k) {
124
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
125
+ enumerable: true,
126
+ get: function () { return AddStaticHTML_instruction[k]; }
127
+ });
128
+ });
122
129
  Object.keys(AddStyle_instruction).forEach(function (k) {
123
130
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
124
131
  enumerable: true,
@@ -10,6 +10,7 @@ export * from './instructions/AddAttribute.instruction';
10
10
  export * from './instructions/AddElement.instruction';
11
11
  export * from './instructions/AddInterpolation.instruction';
12
12
  export * from './instructions/AddListener.instruction';
13
+ export * from './instructions/AddStaticHTML.instruction';
13
14
  export * from './instructions/AddStyle.instruction';
14
15
  export * from './instructions/AddText.instruction';
15
16
  export * from './instructions/HideElement.instruction';
@@ -0,0 +1,8 @@
1
+ import { AreMutation, AreDeclaration, AreInstructionSerialized } from '@adaas/are';
2
+ import { AreHtmlAddStaticHTMLInstructionPayload } from './AreHTML.instructions.types.mjs';
3
+
4
+ declare class AddStaticHTMLInstruction extends AreMutation<AreHtmlAddStaticHTMLInstructionPayload> {
5
+ constructor(parent: AreDeclaration, props: AreHtmlAddStaticHTMLInstructionPayload | AreInstructionSerialized<AreHtmlAddStaticHTMLInstructionPayload>);
6
+ }
7
+
8
+ export { AddStaticHTMLInstruction };
@@ -0,0 +1,8 @@
1
+ import { AreMutation, AreDeclaration, AreInstructionSerialized } from '@adaas/are';
2
+ import { AreHtmlAddStaticHTMLInstructionPayload } from './AreHTML.instructions.types.js';
3
+
4
+ declare class AddStaticHTMLInstruction extends AreMutation<AreHtmlAddStaticHTMLInstructionPayload> {
5
+ constructor(parent: AreDeclaration, props: AreHtmlAddStaticHTMLInstructionPayload | AreInstructionSerialized<AreHtmlAddStaticHTMLInstructionPayload>);
6
+ }
7
+
8
+ export { AddStaticHTMLInstruction };
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var core = require('@adaas/a-frame/core');
4
+ var are = require('@adaas/are');
5
+ var AreHTML_instructions_constants = require('./AreHTML.instructions.constants');
6
+
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __decorateClass = (decorators, target, key, kind) => {
9
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
10
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
11
+ if (decorator = decorators[i])
12
+ result = (decorator(result)) || result;
13
+ return result;
14
+ };
15
+ exports.AddStaticHTMLInstruction = class AddStaticHTMLInstruction extends are.AreMutation {
16
+ constructor(parent, props) {
17
+ if ("aseid" in props) {
18
+ super(props);
19
+ } else {
20
+ super(AreHTML_instructions_constants.AreHTMLInstructions.AddStaticHTML, parent, props);
21
+ }
22
+ }
23
+ };
24
+ exports.AddStaticHTMLInstruction = __decorateClass([
25
+ core.A_Frame.Define({
26
+ namespace: "a-are-html",
27
+ description: 'Materialises a fully static subtree (a "static island") onto its parent element in a single pass via browser-parsed innerHTML / a cached <template> clone. Apply injects the markup; revert clears it. Decodes HTML entities (e.g. &nbsp;) for free.'
28
+ })
29
+ ], exports.AddStaticHTMLInstruction);
30
+ //# sourceMappingURL=AddStaticHTML.instruction.js.map
31
+ //# sourceMappingURL=AddStaticHTML.instruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/instructions/AddStaticHTML.instruction.ts"],"names":["AddStaticHTMLInstruction","AreMutation","AreHTMLInstructions","A_Frame"],"mappings":";;;;;;;;;;;;;;AAUaA,gCAAA,GAAN,uCAAuCC,eAAA,CAAoD;AAAA,EAE9F,WAAA,CACI,QACA,KAAA,EACF;AACE,IAAA,IAAI,WAAW,KAAA,EAAO;AAClB,MAAA,KAAA,CAAM,KAAyE,CAAA;AAAA,IACnF,CAAA,MAAO;AACH,MAAA,KAAA,CAAMC,kDAAA,CAAoB,aAAA,EAAe,MAAA,EAAQ,KAAK,CAAA;AAAA,IAC1D;AAAA,EACJ;AACJ;AAZaF,gCAAA,GAAN,eAAA,CAAA;AAAA,EAJNG,aAAQ,MAAA,CAAO;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACYH,gCAAA,CAAA","file":"AddStaticHTML.instruction.js","sourcesContent":["import { A_Frame } from \"@adaas/a-frame/core\"\nimport { AreDeclaration, AreMutation, AreInstructionSerialized } from \"@adaas/are\";\nimport { AreHtmlAddStaticHTMLInstructionPayload } from \"./AreHTML.instructions.types\";\nimport { AreHTMLInstructions } from \"./AreHTML.instructions.constants\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'Materialises a fully static subtree (a \"static island\") onto its parent element in a single pass via browser-parsed innerHTML / a cached <template> clone. Apply injects the markup; revert clears it. Decodes HTML entities (e.g. &nbsp;) for free.'\n})\nexport class AddStaticHTMLInstruction extends AreMutation<AreHtmlAddStaticHTMLInstructionPayload> {\n\n constructor(\n parent: AreDeclaration,\n props: AreHtmlAddStaticHTMLInstructionPayload | AreInstructionSerialized<AreHtmlAddStaticHTMLInstructionPayload>\n ) {\n if ('aseid' in props) {\n super(props as AreInstructionSerialized<AreHtmlAddStaticHTMLInstructionPayload>);\n } else {\n super(AreHTMLInstructions.AddStaticHTML, parent, props);\n }\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { __decorateClass } from '../chunk-EQQGB2QZ.mjs';
2
+ import { A_Frame } from '@adaas/a-frame/core';
3
+ import { AreMutation } from '@adaas/are';
4
+ import { AreHTMLInstructions } from './AreHTML.instructions.constants';
5
+
6
+ let AddStaticHTMLInstruction = class extends AreMutation {
7
+ constructor(parent, props) {
8
+ if ("aseid" in props) {
9
+ super(props);
10
+ } else {
11
+ super(AreHTMLInstructions.AddStaticHTML, parent, props);
12
+ }
13
+ }
14
+ };
15
+ AddStaticHTMLInstruction = __decorateClass([
16
+ A_Frame.Define({
17
+ namespace: "a-are-html",
18
+ description: 'Materialises a fully static subtree (a "static island") onto its parent element in a single pass via browser-parsed innerHTML / a cached <template> clone. Apply injects the markup; revert clears it. Decodes HTML entities (e.g. &nbsp;) for free.'
19
+ })
20
+ ], AddStaticHTMLInstruction);
21
+
22
+ export { AddStaticHTMLInstruction };
23
+ //# sourceMappingURL=AddStaticHTML.instruction.mjs.map
24
+ //# sourceMappingURL=AddStaticHTML.instruction.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/instructions/AddStaticHTML.instruction.ts"],"names":[],"mappings":";;;;;AAUO,IAAM,wBAAA,GAAN,cAAuC,WAAA,CAAoD;AAAA,EAE9F,WAAA,CACI,QACA,KAAA,EACF;AACE,IAAA,IAAI,WAAW,KAAA,EAAO;AAClB,MAAA,KAAA,CAAM,KAAyE,CAAA;AAAA,IACnF,CAAA,MAAO;AACH,MAAA,KAAA,CAAM,mBAAA,CAAoB,aAAA,EAAe,MAAA,EAAQ,KAAK,CAAA;AAAA,IAC1D;AAAA,EACJ;AACJ;AAZa,wBAAA,GAAN,eAAA,CAAA;AAAA,EAJN,QAAQ,MAAA,CAAO;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACY,wBAAA,CAAA","file":"AddStaticHTML.instruction.mjs","sourcesContent":["import { A_Frame } from \"@adaas/a-frame/core\"\nimport { AreDeclaration, AreMutation, AreInstructionSerialized } from \"@adaas/are\";\nimport { AreHtmlAddStaticHTMLInstructionPayload } from \"./AreHTML.instructions.types\";\nimport { AreHTMLInstructions } from \"./AreHTML.instructions.constants\";\n\n\n@A_Frame.Define({\n namespace: 'a-are-html',\n description: 'Materialises a fully static subtree (a \"static island\") onto its parent element in a single pass via browser-parsed innerHTML / a cached <template> clone. Apply injects the markup; revert clears it. Decodes HTML entities (e.g. &nbsp;) for free.'\n})\nexport class AddStaticHTMLInstruction extends AreMutation<AreHtmlAddStaticHTMLInstructionPayload> {\n\n constructor(\n parent: AreDeclaration,\n props: AreHtmlAddStaticHTMLInstructionPayload | AreInstructionSerialized<AreHtmlAddStaticHTMLInstructionPayload>\n ) {\n if ('aseid' in props) {\n super(props as AreInstructionSerialized<AreHtmlAddStaticHTMLInstructionPayload>);\n } else {\n super(AreHTMLInstructions.AddStaticHTML, parent, props);\n }\n }\n}\n"]}
@@ -6,6 +6,7 @@ declare const AreHTMLInstructions: {
6
6
  readonly AddListener: "_AreHTML_AddListener";
7
7
  readonly AddInterpolation: "_AreHTML_AddInterpolation";
8
8
  readonly AddComment: "_AreHTML_AddComment";
9
+ readonly AddStaticHTML: "_AreHTML_AddStaticHTML";
9
10
  readonly HideElement: "_AreHTML_HideElement";
10
11
  };
11
12
 
@@ -6,6 +6,7 @@ declare const AreHTMLInstructions: {
6
6
  readonly AddListener: "_AreHTML_AddListener";
7
7
  readonly AddInterpolation: "_AreHTML_AddInterpolation";
8
8
  readonly AddComment: "_AreHTML_AddComment";
9
+ readonly AddStaticHTML: "_AreHTML_AddStaticHTML";
9
10
  readonly HideElement: "_AreHTML_HideElement";
10
11
  };
11
12
 
@@ -8,6 +8,7 @@ const AreHTMLInstructions = {
8
8
  AddListener: "_AreHTML_AddListener",
9
9
  AddInterpolation: "_AreHTML_AddInterpolation",
10
10
  AddComment: "_AreHTML_AddComment",
11
+ AddStaticHTML: "_AreHTML_AddStaticHTML",
11
12
  HideElement: "_AreHTML_HideElement"
12
13
  };
13
14
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instructions/AreHTML.instructions.constants.ts"],"names":[],"mappings":";;AAEO,MAAM,mBAAA,GAAsB;AAAA,EAC/B,UAAA,EAAY,qBAAA;AAAA,EACZ,OAAA,EAAS,kBAAA;AAAA,EACT,YAAA,EAAc,uBAAA;AAAA,EACd,QAAA,EAAU,mBAAA;AAAA,EACV,WAAA,EAAa,sBAAA;AAAA,EACb,gBAAA,EAAkB,2BAAA;AAAA,EAClB,UAAA,EAAY,qBAAA;AAAA,EACZ,WAAA,EAAa;AACjB","file":"AreHTML.instructions.constants.js","sourcesContent":["\n\nexport const AreHTMLInstructions = {\n AddElement: '_AreHTML_AddElement',\n AddText: '_AreHTML_AddText',\n AddAttribute: '_AreHTML_AddAttribute',\n AddStyle: '_AreHTML_AddStyle',\n AddListener: '_AreHTML_AddListener',\n AddInterpolation: '_AreHTML_AddInterpolation',\n AddComment: '_AreHTML_AddComment',\n HideElement: '_AreHTML_HideElement',\n} as const"]}
1
+ {"version":3,"sources":["../../../src/instructions/AreHTML.instructions.constants.ts"],"names":[],"mappings":";;AAEO,MAAM,mBAAA,GAAsB;AAAA,EAC/B,UAAA,EAAY,qBAAA;AAAA,EACZ,OAAA,EAAS,kBAAA;AAAA,EACT,YAAA,EAAc,uBAAA;AAAA,EACd,QAAA,EAAU,mBAAA;AAAA,EACV,WAAA,EAAa,sBAAA;AAAA,EACb,gBAAA,EAAkB,2BAAA;AAAA,EAClB,UAAA,EAAY,qBAAA;AAAA,EACZ,aAAA,EAAe,wBAAA;AAAA,EACf,WAAA,EAAa;AACjB","file":"AreHTML.instructions.constants.js","sourcesContent":["\n\nexport const AreHTMLInstructions = {\n AddElement: '_AreHTML_AddElement',\n AddText: '_AreHTML_AddText',\n AddAttribute: '_AreHTML_AddAttribute',\n AddStyle: '_AreHTML_AddStyle',\n AddListener: '_AreHTML_AddListener',\n AddInterpolation: '_AreHTML_AddInterpolation',\n AddComment: '_AreHTML_AddComment',\n AddStaticHTML: '_AreHTML_AddStaticHTML',\n HideElement: '_AreHTML_HideElement',\n} as const"]}
@@ -8,6 +8,7 @@ const AreHTMLInstructions = {
8
8
  AddListener: "_AreHTML_AddListener",
9
9
  AddInterpolation: "_AreHTML_AddInterpolation",
10
10
  AddComment: "_AreHTML_AddComment",
11
+ AddStaticHTML: "_AreHTML_AddStaticHTML",
11
12
  HideElement: "_AreHTML_HideElement"
12
13
  };
13
14
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instructions/AreHTML.instructions.constants.ts"],"names":[],"mappings":";;AAEO,MAAM,mBAAA,GAAsB;AAAA,EAC/B,UAAA,EAAY,qBAAA;AAAA,EACZ,OAAA,EAAS,kBAAA;AAAA,EACT,YAAA,EAAc,uBAAA;AAAA,EACd,QAAA,EAAU,mBAAA;AAAA,EACV,WAAA,EAAa,sBAAA;AAAA,EACb,gBAAA,EAAkB,2BAAA;AAAA,EAClB,UAAA,EAAY,qBAAA;AAAA,EACZ,WAAA,EAAa;AACjB","file":"AreHTML.instructions.constants.mjs","sourcesContent":["\n\nexport const AreHTMLInstructions = {\n AddElement: '_AreHTML_AddElement',\n AddText: '_AreHTML_AddText',\n AddAttribute: '_AreHTML_AddAttribute',\n AddStyle: '_AreHTML_AddStyle',\n AddListener: '_AreHTML_AddListener',\n AddInterpolation: '_AreHTML_AddInterpolation',\n AddComment: '_AreHTML_AddComment',\n HideElement: '_AreHTML_HideElement',\n} as const"]}
1
+ {"version":3,"sources":["../../../src/instructions/AreHTML.instructions.constants.ts"],"names":[],"mappings":";;AAEO,MAAM,mBAAA,GAAsB;AAAA,EAC/B,UAAA,EAAY,qBAAA;AAAA,EACZ,OAAA,EAAS,kBAAA;AAAA,EACT,YAAA,EAAc,uBAAA;AAAA,EACd,QAAA,EAAU,mBAAA;AAAA,EACV,WAAA,EAAa,sBAAA;AAAA,EACb,gBAAA,EAAkB,2BAAA;AAAA,EAClB,UAAA,EAAY,qBAAA;AAAA,EACZ,aAAA,EAAe,wBAAA;AAAA,EACf,WAAA,EAAa;AACjB","file":"AreHTML.instructions.constants.mjs","sourcesContent":["\n\nexport const AreHTMLInstructions = {\n AddElement: '_AreHTML_AddElement',\n AddText: '_AreHTML_AddText',\n AddAttribute: '_AreHTML_AddAttribute',\n AddStyle: '_AreHTML_AddStyle',\n AddListener: '_AreHTML_AddListener',\n AddInterpolation: '_AreHTML_AddInterpolation',\n AddComment: '_AreHTML_AddComment',\n AddStaticHTML: '_AreHTML_AddStaticHTML',\n HideElement: '_AreHTML_HideElement',\n} as const"]}
@@ -28,6 +28,14 @@ type AreHtmlAddStyleInstructionPayload = {
28
28
  /** Full CSS string to inject as a <style> block scoped to the component. Applied to the document head and reverted on unmount. */
29
29
  styles: string;
30
30
  };
31
+ type AreHtmlAddStaticHTMLInstructionPayload = {
32
+ /**
33
+ * Verbatim inner markup of a static island, materialised on the parent
34
+ * element in a single pass (browser-parsed `innerHTML` / cached `<template>`
35
+ * clone). Decodes HTML entities (e.g. `&nbsp;`) for free via the parser.
36
+ */
37
+ html: string;
38
+ };
31
39
  type AreHtmlHideInstructionPayload = {
32
40
  /**
33
41
  * Optional explicit display value to restore when the element becomes
@@ -49,4 +57,4 @@ type AreHtmlAddInterpolationInstructionPayload = {
49
57
  content: (...args: any[]) => string;
50
58
  };
51
59
 
52
- export type { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload };
60
+ export type { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStaticHTMLInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload };
@@ -28,6 +28,14 @@ type AreHtmlAddStyleInstructionPayload = {
28
28
  /** Full CSS string to inject as a <style> block scoped to the component. Applied to the document head and reverted on unmount. */
29
29
  styles: string;
30
30
  };
31
+ type AreHtmlAddStaticHTMLInstructionPayload = {
32
+ /**
33
+ * Verbatim inner markup of a static island, materialised on the parent
34
+ * element in a single pass (browser-parsed `innerHTML` / cached `<template>`
35
+ * clone). Decodes HTML entities (e.g. `&nbsp;`) for free via the parser.
36
+ */
37
+ html: string;
38
+ };
31
39
  type AreHtmlHideInstructionPayload = {
32
40
  /**
33
41
  * Optional explicit display value to restore when the element becomes
@@ -49,4 +57,4 @@ type AreHtmlAddInterpolationInstructionPayload = {
49
57
  content: (...args: any[]) => string;
50
58
  };
51
59
 
52
- export type { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload };
60
+ export type { AreHtmlAddAttributeInstructionPayload, AreHtmlAddCommentInstructionPayload, AreHtmlAddElementInstructionPayload, AreHtmlAddInterpolationInstructionPayload, AreHtmlAddListenerInstructionPayload, AreHtmlAddStaticHTMLInstructionPayload, AreHtmlAddStyleInstructionPayload, AreHtmlAddTextInstructionPayload, AreHtmlHideInstructionPayload };
@@ -1,4 +1,4 @@
1
1
  import '@adaas/a-concept';
2
- export { a as AreDirective } from '../../AreBinding.attribute-doUvtOjc.mjs';
2
+ export { a as AreDirective } from '../../AreBinding.attribute-BWzEIw6H.mjs';
3
3
  import '@adaas/are';
4
4
  import '../AreStyle/AreStyle.context.mjs';
@@ -1,4 +1,4 @@
1
1
  import '@adaas/a-concept';
2
- export { a as AreDirective } from '../../AreBinding.attribute-Bm5LlOyE.js';
2
+ export { a as AreDirective } from '../../AreBinding.attribute-GpT-5Qmf.js';
3
3
  import '@adaas/are';
4
4
  import '../AreStyle/AreStyle.context.js';
@@ -1,5 +1,5 @@
1
1
  import { A_TYPES__Ctor } from '@adaas/a-concept';
2
- import { a as AreDirective } from '../../AreBinding.attribute-doUvtOjc.mjs';
2
+ import { a as AreDirective } from '../../AreBinding.attribute-BWzEIw6H.mjs';
3
3
  import '@adaas/are';
4
4
  import '../AreStyle/AreStyle.context.mjs';
5
5