@adaas/are-html 0.0.2

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 (365) hide show
  1. package/.conf/tsconfig.base.json +87 -0
  2. package/.conf/tsconfig.browser.json +34 -0
  3. package/.conf/tsconfig.node.json +35 -0
  4. package/.nvmrc +1 -0
  5. package/LICENSE +13 -0
  6. package/README.md +678 -0
  7. package/dist/browser/index.d.mts +521 -0
  8. package/dist/browser/index.mjs +1782 -0
  9. package/dist/browser/index.mjs.map +1 -0
  10. package/dist/node/AreBinding.attribute-C6JasbJL.d.ts +110 -0
  11. package/dist/node/AreBinding.attribute-C6qrxN8K.d.mts +110 -0
  12. package/dist/node/attributes/AreBinding.attribute.d.mts +4 -0
  13. package/dist/node/attributes/AreBinding.attribute.d.ts +4 -0
  14. package/dist/node/attributes/AreBinding.attribute.js +15 -0
  15. package/dist/node/attributes/AreBinding.attribute.js.map +1 -0
  16. package/dist/node/attributes/AreBinding.attribute.mjs +14 -0
  17. package/dist/node/attributes/AreBinding.attribute.mjs.map +1 -0
  18. package/dist/node/attributes/AreDirective.attribute.d.mts +4 -0
  19. package/dist/node/attributes/AreDirective.attribute.d.ts +4 -0
  20. package/dist/node/attributes/AreDirective.attribute.js +20 -0
  21. package/dist/node/attributes/AreDirective.attribute.js.map +1 -0
  22. package/dist/node/attributes/AreDirective.attribute.mjs +19 -0
  23. package/dist/node/attributes/AreDirective.attribute.mjs.map +1 -0
  24. package/dist/node/attributes/AreEvent.attribute.d.mts +4 -0
  25. package/dist/node/attributes/AreEvent.attribute.d.ts +4 -0
  26. package/dist/node/attributes/AreEvent.attribute.js +10 -0
  27. package/dist/node/attributes/AreEvent.attribute.js.map +1 -0
  28. package/dist/node/attributes/AreEvent.attribute.mjs +9 -0
  29. package/dist/node/attributes/AreEvent.attribute.mjs.map +1 -0
  30. package/dist/node/attributes/AreStatic.attribute.d.mts +4 -0
  31. package/dist/node/attributes/AreStatic.attribute.d.ts +4 -0
  32. package/dist/node/attributes/AreStatic.attribute.js +10 -0
  33. package/dist/node/attributes/AreStatic.attribute.js.map +1 -0
  34. package/dist/node/attributes/AreStatic.attribute.mjs +9 -0
  35. package/dist/node/attributes/AreStatic.attribute.mjs.map +1 -0
  36. package/dist/node/chunk-EQQGB2QZ.mjs +15 -0
  37. package/dist/node/chunk-EQQGB2QZ.mjs.map +1 -0
  38. package/dist/node/directives/AreComponent.directive.d.mts +2 -0
  39. package/dist/node/directives/AreComponent.directive.d.ts +2 -0
  40. package/dist/node/directives/AreComponent.directive.js +4 -0
  41. package/dist/node/directives/AreComponent.directive.js.map +1 -0
  42. package/dist/node/directives/AreComponent.directive.mjs +3 -0
  43. package/dist/node/directives/AreComponent.directive.mjs.map +1 -0
  44. package/dist/node/directives/AreDirectiveFor.directive.d.mts +41 -0
  45. package/dist/node/directives/AreDirectiveFor.directive.d.ts +41 -0
  46. package/dist/node/directives/AreDirectiveFor.directive.js +206 -0
  47. package/dist/node/directives/AreDirectiveFor.directive.js.map +1 -0
  48. package/dist/node/directives/AreDirectiveFor.directive.mjs +196 -0
  49. package/dist/node/directives/AreDirectiveFor.directive.mjs.map +1 -0
  50. package/dist/node/directives/AreDirectiveIf.directive.d.mts +15 -0
  51. package/dist/node/directives/AreDirectiveIf.directive.d.ts +15 -0
  52. package/dist/node/directives/AreDirectiveIf.directive.js +91 -0
  53. package/dist/node/directives/AreDirectiveIf.directive.js.map +1 -0
  54. package/dist/node/directives/AreDirectiveIf.directive.mjs +81 -0
  55. package/dist/node/directives/AreDirectiveIf.directive.mjs.map +1 -0
  56. package/dist/node/engine/AreHTML.compiler.d.mts +27 -0
  57. package/dist/node/engine/AreHTML.compiler.d.ts +27 -0
  58. package/dist/node/engine/AreHTML.compiler.js +150 -0
  59. package/dist/node/engine/AreHTML.compiler.js.map +1 -0
  60. package/dist/node/engine/AreHTML.compiler.mjs +140 -0
  61. package/dist/node/engine/AreHTML.compiler.mjs.map +1 -0
  62. package/dist/node/engine/AreHTML.constants.d.mts +2 -0
  63. package/dist/node/engine/AreHTML.constants.d.ts +2 -0
  64. package/dist/node/engine/AreHTML.constants.js +4 -0
  65. package/dist/node/engine/AreHTML.constants.js.map +1 -0
  66. package/dist/node/engine/AreHTML.constants.mjs +3 -0
  67. package/dist/node/engine/AreHTML.constants.mjs.map +1 -0
  68. package/dist/node/engine/AreHTML.context.d.mts +108 -0
  69. package/dist/node/engine/AreHTML.context.d.ts +108 -0
  70. package/dist/node/engine/AreHTML.context.js +155 -0
  71. package/dist/node/engine/AreHTML.context.js.map +1 -0
  72. package/dist/node/engine/AreHTML.context.mjs +154 -0
  73. package/dist/node/engine/AreHTML.context.mjs.map +1 -0
  74. package/dist/node/engine/AreHTML.engine.d.mts +21 -0
  75. package/dist/node/engine/AreHTML.engine.d.ts +21 -0
  76. package/dist/node/engine/AreHTML.engine.js +191 -0
  77. package/dist/node/engine/AreHTML.engine.js.map +1 -0
  78. package/dist/node/engine/AreHTML.engine.mjs +181 -0
  79. package/dist/node/engine/AreHTML.engine.mjs.map +1 -0
  80. package/dist/node/engine/AreHTML.interpreter.d.mts +28 -0
  81. package/dist/node/engine/AreHTML.interpreter.d.ts +28 -0
  82. package/dist/node/engine/AreHTML.interpreter.js +340 -0
  83. package/dist/node/engine/AreHTML.interpreter.js.map +1 -0
  84. package/dist/node/engine/AreHTML.interpreter.mjs +330 -0
  85. package/dist/node/engine/AreHTML.interpreter.mjs.map +1 -0
  86. package/dist/node/engine/AreHTML.lifecycle.d.mts +17 -0
  87. package/dist/node/engine/AreHTML.lifecycle.d.ts +17 -0
  88. package/dist/node/engine/AreHTML.lifecycle.js +91 -0
  89. package/dist/node/engine/AreHTML.lifecycle.js.map +1 -0
  90. package/dist/node/engine/AreHTML.lifecycle.mjs +79 -0
  91. package/dist/node/engine/AreHTML.lifecycle.mjs.map +1 -0
  92. package/dist/node/engine/AreHTML.tokenizer.d.mts +13 -0
  93. package/dist/node/engine/AreHTML.tokenizer.d.ts +13 -0
  94. package/dist/node/engine/AreHTML.tokenizer.js +83 -0
  95. package/dist/node/engine/AreHTML.tokenizer.js.map +1 -0
  96. package/dist/node/engine/AreHTML.tokenizer.mjs +71 -0
  97. package/dist/node/engine/AreHTML.tokenizer.mjs.map +1 -0
  98. package/dist/node/engine/AreHTML.transformer.d.mts +11 -0
  99. package/dist/node/engine/AreHTML.transformer.d.ts +11 -0
  100. package/dist/node/engine/AreHTML.transformer.js +44 -0
  101. package/dist/node/engine/AreHTML.transformer.js.map +1 -0
  102. package/dist/node/engine/AreHTML.transformer.mjs +32 -0
  103. package/dist/node/engine/AreHTML.transformer.mjs.map +1 -0
  104. package/dist/node/engine/AreHTML.types.d.mts +6 -0
  105. package/dist/node/engine/AreHTML.types.d.ts +6 -0
  106. package/dist/node/engine/AreHTML.types.js +4 -0
  107. package/dist/node/engine/AreHTML.types.js.map +1 -0
  108. package/dist/node/engine/AreHTML.types.mjs +3 -0
  109. package/dist/node/engine/AreHTML.types.mjs.map +1 -0
  110. package/dist/node/index.d.mts +39 -0
  111. package/dist/node/index.d.ts +39 -0
  112. package/dist/node/index.js +294 -0
  113. package/dist/node/index.js.map +1 -0
  114. package/dist/node/index.mjs +43 -0
  115. package/dist/node/index.mjs.map +1 -0
  116. package/dist/node/instructions/AddAttribute.instruction.d.mts +9 -0
  117. package/dist/node/instructions/AddAttribute.instruction.d.ts +9 -0
  118. package/dist/node/instructions/AddAttribute.instruction.js +32 -0
  119. package/dist/node/instructions/AddAttribute.instruction.js.map +1 -0
  120. package/dist/node/instructions/AddAttribute.instruction.mjs +25 -0
  121. package/dist/node/instructions/AddAttribute.instruction.mjs.map +1 -0
  122. package/dist/node/instructions/AddComment.instruction.d.mts +9 -0
  123. package/dist/node/instructions/AddComment.instruction.d.ts +9 -0
  124. package/dist/node/instructions/AddComment.instruction.js +35 -0
  125. package/dist/node/instructions/AddComment.instruction.js.map +1 -0
  126. package/dist/node/instructions/AddComment.instruction.mjs +28 -0
  127. package/dist/node/instructions/AddComment.instruction.mjs.map +1 -0
  128. package/dist/node/instructions/AddElement.instruction.d.mts +8 -0
  129. package/dist/node/instructions/AddElement.instruction.d.ts +8 -0
  130. package/dist/node/instructions/AddElement.instruction.js +32 -0
  131. package/dist/node/instructions/AddElement.instruction.js.map +1 -0
  132. package/dist/node/instructions/AddElement.instruction.mjs +25 -0
  133. package/dist/node/instructions/AddElement.instruction.mjs.map +1 -0
  134. package/dist/node/instructions/AddInterpolation.instruction.d.mts +8 -0
  135. package/dist/node/instructions/AddInterpolation.instruction.d.ts +8 -0
  136. package/dist/node/instructions/AddInterpolation.instruction.js +32 -0
  137. package/dist/node/instructions/AddInterpolation.instruction.js.map +1 -0
  138. package/dist/node/instructions/AddInterpolation.instruction.mjs +25 -0
  139. package/dist/node/instructions/AddInterpolation.instruction.mjs.map +1 -0
  140. package/dist/node/instructions/AddListener.instruction.d.mts +8 -0
  141. package/dist/node/instructions/AddListener.instruction.d.ts +8 -0
  142. package/dist/node/instructions/AddListener.instruction.js +32 -0
  143. package/dist/node/instructions/AddListener.instruction.js.map +1 -0
  144. package/dist/node/instructions/AddListener.instruction.mjs +25 -0
  145. package/dist/node/instructions/AddListener.instruction.mjs.map +1 -0
  146. package/dist/node/instructions/AddStyle.instruction.d.mts +8 -0
  147. package/dist/node/instructions/AddStyle.instruction.d.ts +8 -0
  148. package/dist/node/instructions/AddStyle.instruction.js +32 -0
  149. package/dist/node/instructions/AddStyle.instruction.js.map +1 -0
  150. package/dist/node/instructions/AddStyle.instruction.mjs +25 -0
  151. package/dist/node/instructions/AddStyle.instruction.mjs.map +1 -0
  152. package/dist/node/instructions/AddText.instruction.d.mts +8 -0
  153. package/dist/node/instructions/AddText.instruction.d.ts +8 -0
  154. package/dist/node/instructions/AddText.instruction.js +32 -0
  155. package/dist/node/instructions/AddText.instruction.js.map +1 -0
  156. package/dist/node/instructions/AddText.instruction.mjs +25 -0
  157. package/dist/node/instructions/AddText.instruction.mjs.map +1 -0
  158. package/dist/node/instructions/AreHTML.instructions.constants.d.mts +11 -0
  159. package/dist/node/instructions/AreHTML.instructions.constants.d.ts +11 -0
  160. package/dist/node/instructions/AreHTML.instructions.constants.js +15 -0
  161. package/dist/node/instructions/AreHTML.instructions.constants.js.map +1 -0
  162. package/dist/node/instructions/AreHTML.instructions.constants.mjs +15 -0
  163. package/dist/node/instructions/AreHTML.instructions.constants.mjs.map +1 -0
  164. package/dist/node/instructions/AreHTML.instructions.types.d.mts +46 -0
  165. package/dist/node/instructions/AreHTML.instructions.types.d.ts +46 -0
  166. package/dist/node/instructions/AreHTML.instructions.types.js +4 -0
  167. package/dist/node/instructions/AreHTML.instructions.types.js.map +1 -0
  168. package/dist/node/instructions/AreHTML.instructions.types.mjs +3 -0
  169. package/dist/node/instructions/AreHTML.instructions.types.mjs.map +1 -0
  170. package/dist/node/lib/AreDirective/AreDirective.component.d.mts +4 -0
  171. package/dist/node/lib/AreDirective/AreDirective.component.d.ts +4 -0
  172. package/dist/node/lib/AreDirective/AreDirective.component.js +117 -0
  173. package/dist/node/lib/AreDirective/AreDirective.component.js.map +1 -0
  174. package/dist/node/lib/AreDirective/AreDirective.component.mjs +107 -0
  175. package/dist/node/lib/AreDirective/AreDirective.component.mjs.map +1 -0
  176. package/dist/node/lib/AreDirective/AreDirective.constants.d.mts +16 -0
  177. package/dist/node/lib/AreDirective/AreDirective.constants.d.ts +16 -0
  178. package/dist/node/lib/AreDirective/AreDirective.constants.js +20 -0
  179. package/dist/node/lib/AreDirective/AreDirective.constants.js.map +1 -0
  180. package/dist/node/lib/AreDirective/AreDirective.constants.mjs +20 -0
  181. package/dist/node/lib/AreDirective/AreDirective.constants.mjs.map +1 -0
  182. package/dist/node/lib/AreDirective/AreDirective.context.d.mts +9 -0
  183. package/dist/node/lib/AreDirective/AreDirective.context.d.ts +9 -0
  184. package/dist/node/lib/AreDirective/AreDirective.context.js +14 -0
  185. package/dist/node/lib/AreDirective/AreDirective.context.js.map +1 -0
  186. package/dist/node/lib/AreDirective/AreDirective.context.mjs +13 -0
  187. package/dist/node/lib/AreDirective/AreDirective.context.mjs.map +1 -0
  188. package/dist/node/lib/AreDirective/AreDirective.meta.d.mts +7 -0
  189. package/dist/node/lib/AreDirective/AreDirective.meta.d.ts +7 -0
  190. package/dist/node/lib/AreDirective/AreDirective.meta.js +14 -0
  191. package/dist/node/lib/AreDirective/AreDirective.meta.js.map +1 -0
  192. package/dist/node/lib/AreDirective/AreDirective.meta.mjs +13 -0
  193. package/dist/node/lib/AreDirective/AreDirective.meta.mjs.map +1 -0
  194. package/dist/node/lib/AreDirective/AreDirective.types.d.mts +17 -0
  195. package/dist/node/lib/AreDirective/AreDirective.types.d.ts +17 -0
  196. package/dist/node/lib/AreDirective/AreDirective.types.js +4 -0
  197. package/dist/node/lib/AreDirective/AreDirective.types.js.map +1 -0
  198. package/dist/node/lib/AreDirective/AreDirective.types.mjs +3 -0
  199. package/dist/node/lib/AreDirective/AreDirective.types.mjs.map +1 -0
  200. package/dist/node/lib/AreHTML/AreHTML.tokenizer.d.mts +13 -0
  201. package/dist/node/lib/AreHTML/AreHTML.tokenizer.d.ts +13 -0
  202. package/dist/node/lib/AreHTML/AreHTML.tokenizer.js +82 -0
  203. package/dist/node/lib/AreHTML/AreHTML.tokenizer.js.map +1 -0
  204. package/dist/node/lib/AreHTML/AreHTML.tokenizer.mjs +70 -0
  205. package/dist/node/lib/AreHTML/AreHTML.tokenizer.mjs.map +1 -0
  206. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.d.mts +4 -0
  207. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.d.ts +4 -0
  208. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.js +13 -0
  209. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.js.map +1 -0
  210. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.mjs +12 -0
  211. package/dist/node/lib/AreHTMLAttribute/AreHTML.attribute.mjs.map +1 -0
  212. package/dist/node/lib/AreHTMLNode/AreHTMLNode.d.mts +4 -0
  213. package/dist/node/lib/AreHTMLNode/AreHTMLNode.d.ts +4 -0
  214. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js +82 -0
  215. package/dist/node/lib/AreHTMLNode/AreHTMLNode.js.map +1 -0
  216. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs +75 -0
  217. package/dist/node/lib/AreHTMLNode/AreHTMLNode.mjs.map +1 -0
  218. package/dist/node/lib/AreRoot/AreRoot.component.d.mts +13 -0
  219. package/dist/node/lib/AreRoot/AreRoot.component.d.ts +13 -0
  220. package/dist/node/lib/AreRoot/AreRoot.component.js +117 -0
  221. package/dist/node/lib/AreRoot/AreRoot.component.js.map +1 -0
  222. package/dist/node/lib/AreRoot/AreRoot.component.mjs +107 -0
  223. package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +1 -0
  224. package/dist/node/lib/AreStyle/AreStyle.context.d.mts +8 -0
  225. package/dist/node/lib/AreStyle/AreStyle.context.d.ts +8 -0
  226. package/dist/node/lib/AreStyle/AreStyle.context.js +16 -0
  227. package/dist/node/lib/AreStyle/AreStyle.context.js.map +1 -0
  228. package/dist/node/lib/AreStyle/AreStyle.context.mjs +15 -0
  229. package/dist/node/lib/AreStyle/AreStyle.context.mjs.map +1 -0
  230. package/dist/node/lib/AreStyle/AreStyle.types.d.mts +2 -0
  231. package/dist/node/lib/AreStyle/AreStyle.types.d.ts +2 -0
  232. package/dist/node/lib/AreStyle/AreStyle.types.js +4 -0
  233. package/dist/node/lib/AreStyle/AreStyle.types.js.map +1 -0
  234. package/dist/node/lib/AreStyle/AreStyle.types.mjs +3 -0
  235. package/dist/node/lib/AreStyle/AreStyle.types.mjs.map +1 -0
  236. package/dist/node/lib/AreWatcher/AreWatcher.component.d.mts +18 -0
  237. package/dist/node/lib/AreWatcher/AreWatcher.component.d.ts +18 -0
  238. package/dist/node/lib/AreWatcher/AreWatcher.component.js +78 -0
  239. package/dist/node/lib/AreWatcher/AreWatcher.component.js.map +1 -0
  240. package/dist/node/lib/AreWatcher/AreWatcher.component.mjs +71 -0
  241. package/dist/node/lib/AreWatcher/AreWatcher.component.mjs.map +1 -0
  242. package/dist/node/nodes/AreComment.d.mts +10 -0
  243. package/dist/node/nodes/AreComment.d.ts +10 -0
  244. package/dist/node/nodes/AreComment.js +19 -0
  245. package/dist/node/nodes/AreComment.js.map +1 -0
  246. package/dist/node/nodes/AreComment.mjs +18 -0
  247. package/dist/node/nodes/AreComment.mjs.map +1 -0
  248. package/dist/node/nodes/AreComponent.d.mts +17 -0
  249. package/dist/node/nodes/AreComponent.d.ts +17 -0
  250. package/dist/node/nodes/AreComponent.js +35 -0
  251. package/dist/node/nodes/AreComponent.js.map +1 -0
  252. package/dist/node/nodes/AreComponent.mjs +28 -0
  253. package/dist/node/nodes/AreComponent.mjs.map +1 -0
  254. package/dist/node/nodes/AreInterpolation.d.mts +10 -0
  255. package/dist/node/nodes/AreInterpolation.d.ts +10 -0
  256. package/dist/node/nodes/AreInterpolation.js +19 -0
  257. package/dist/node/nodes/AreInterpolation.js.map +1 -0
  258. package/dist/node/nodes/AreInterpolation.mjs +18 -0
  259. package/dist/node/nodes/AreInterpolation.mjs.map +1 -0
  260. package/dist/node/nodes/AreRoot.d.mts +21 -0
  261. package/dist/node/nodes/AreRoot.d.ts +21 -0
  262. package/dist/node/nodes/AreRoot.js +41 -0
  263. package/dist/node/nodes/AreRoot.js.map +1 -0
  264. package/dist/node/nodes/AreRoot.mjs +34 -0
  265. package/dist/node/nodes/AreRoot.mjs.map +1 -0
  266. package/dist/node/nodes/AreText.d.mts +10 -0
  267. package/dist/node/nodes/AreText.d.ts +10 -0
  268. package/dist/node/nodes/AreText.js +19 -0
  269. package/dist/node/nodes/AreText.js.map +1 -0
  270. package/dist/node/nodes/AreText.mjs +18 -0
  271. package/dist/node/nodes/AreText.mjs.map +1 -0
  272. package/dist/node/signals/AreRoute.signal.d.mts +12 -0
  273. package/dist/node/signals/AreRoute.signal.d.ts +12 -0
  274. package/dist/node/signals/AreRoute.signal.js +25 -0
  275. package/dist/node/signals/AreRoute.signal.js.map +1 -0
  276. package/dist/node/signals/AreRoute.signal.mjs +24 -0
  277. package/dist/node/signals/AreRoute.signal.mjs.map +1 -0
  278. package/docs/a-logo-docs.png +0 -0
  279. package/examples/dashboard/concept.ts +60 -0
  280. package/examples/dashboard/containers/UI.container.ts +233 -0
  281. package/examples/dashboard/dist/index.html +22 -0
  282. package/examples/dashboard/dist/mnzfypsd-6zjt7w.js +11454 -0
  283. package/examples/dashboard/dist/styles.css +792 -0
  284. package/examples/dashboard/public/index.html +22 -0
  285. package/examples/dashboard/public/styles.css +792 -0
  286. package/examples/dashboard/src/components/DashboardApp.component.ts +31 -0
  287. package/examples/dashboard/src/components/DashboardHeader.component.ts +40 -0
  288. package/examples/dashboard/src/components/DashboardLogo.component.ts +29 -0
  289. package/examples/dashboard/src/components/DashboardMain.component.ts +57 -0
  290. package/examples/dashboard/src/components/DashboardMenu.component.ts +94 -0
  291. package/examples/dashboard/src/components/DashboardNav.component.ts +28 -0
  292. package/examples/dashboard/src/components/DashboardNavItem.component.ts +32 -0
  293. package/examples/dashboard/src/components/DashboardSidebar.component.ts +43 -0
  294. package/examples/dashboard/src/components/DashboardStatCard.component.ts +71 -0
  295. package/examples/dashboard/src/components/DashboardStats.component.ts +28 -0
  296. package/examples/dashboard/src/components/DashboardTable.component.ts +138 -0
  297. package/examples/dashboard/src/components/DashboardUserCard.component.ts +39 -0
  298. package/examples/dashboard/src/concept.ts +93 -0
  299. package/examples/jumpstart/concept.ts +60 -0
  300. package/examples/jumpstart/containers/UI.container.ts +233 -0
  301. package/examples/jumpstart/dist/index.html +104 -0
  302. package/examples/jumpstart/dist/mnpl1g4i-nobz9g.js +10882 -0
  303. package/examples/jumpstart/dist/static/css/main.css +40 -0
  304. package/examples/jumpstart/dist/static/img/test.png +0 -0
  305. package/examples/jumpstart/public/index.html +104 -0
  306. package/examples/jumpstart/public/static/css/main.css +40 -0
  307. package/examples/jumpstart/public/static/img/test.png +0 -0
  308. package/examples/jumpstart/src/components/A-Btn.component.ts +150 -0
  309. package/examples/jumpstart/src/components/A-Input.component.ts +78 -0
  310. package/examples/jumpstart/src/components/A-Navigation.component.ts +167 -0
  311. package/examples/jumpstart/src/components/List.component.ts +138 -0
  312. package/examples/jumpstart/src/components/PromptTextArea.component.ts +359 -0
  313. package/examples/jumpstart/src/components/SignInComponent.component.ts +127 -0
  314. package/examples/jumpstart/src/concept.ts +105 -0
  315. package/jest.config.ts +61 -0
  316. package/package.json +110 -0
  317. package/src/attributes/AreBinding.attribute.ts +19 -0
  318. package/src/attributes/AreDirective.attribute.ts +26 -0
  319. package/src/attributes/AreEvent.attribute.ts +5 -0
  320. package/src/attributes/AreStatic.attribute.ts +6 -0
  321. package/src/directives/AreComponent.directive.ts +0 -0
  322. package/src/directives/AreDirectiveFor.directive.ts +322 -0
  323. package/src/directives/AreDirectiveIf.directive.ts +130 -0
  324. package/src/engine/AreHTML.compiler.ts +226 -0
  325. package/src/engine/AreHTML.constants.ts +2 -0
  326. package/src/engine/AreHTML.context.ts +196 -0
  327. package/src/engine/AreHTML.engine.ts +210 -0
  328. package/src/engine/AreHTML.interpreter.ts +466 -0
  329. package/src/engine/AreHTML.lifecycle.ts +96 -0
  330. package/src/engine/AreHTML.tokenizer.ts +90 -0
  331. package/src/engine/AreHTML.transformer.ts +37 -0
  332. package/src/engine/AreHTML.types.ts +6 -0
  333. package/src/index.ts +80 -0
  334. package/src/instructions/AddAttribute.instruction.ts +25 -0
  335. package/src/instructions/AddComment.instruction.ts +27 -0
  336. package/src/instructions/AddElement.instruction.ts +22 -0
  337. package/src/instructions/AddInterpolation.instruction.ts +24 -0
  338. package/src/instructions/AddListener.instruction.ts +24 -0
  339. package/src/instructions/AddStyle.instruction.ts +24 -0
  340. package/src/instructions/AddText.instruction.ts +21 -0
  341. package/src/instructions/AreHTML.instructions.constants.ts +11 -0
  342. package/src/instructions/AreHTML.instructions.types.ts +51 -0
  343. package/src/lib/AreDirective/AreDirective.component.ts +124 -0
  344. package/src/lib/AreDirective/AreDirective.constants.ts +16 -0
  345. package/src/lib/AreDirective/AreDirective.context.ts +16 -0
  346. package/src/lib/AreDirective/AreDirective.meta.ts +9 -0
  347. package/src/lib/AreDirective/AreDirective.types.ts +14 -0
  348. package/src/lib/AreHTML/AreHTML.tokenizer.ts +86 -0
  349. package/src/lib/AreHTMLAttribute/AreHTML.attribute.ts +13 -0
  350. package/src/lib/AreHTMLNode/AreHTMLNode.ts +84 -0
  351. package/src/lib/AreRoot/AreRoot.component.ts +134 -0
  352. package/src/lib/AreStyle/AreStyle.context.ts +20 -0
  353. package/src/lib/AreStyle/AreStyle.types.ts +0 -0
  354. package/src/lib/AreWatcher/AreWatcher.component.ts +84 -0
  355. package/src/nodes/AreComment.ts +17 -0
  356. package/src/nodes/AreComponent.ts +25 -0
  357. package/src/nodes/AreInterpolation.ts +16 -0
  358. package/src/nodes/AreRoot.ts +29 -0
  359. package/src/nodes/AreText.ts +17 -0
  360. package/src/signals/AreRoute.signal.ts +27 -0
  361. package/tests/AreTokenizer.test.ts +260 -0
  362. package/tests/jest.setup.ts +30 -0
  363. package/tsconfig.json +60 -0
  364. package/tslint.json +98 -0
  365. package/tsup.config.ts +108 -0
@@ -0,0 +1,340 @@
1
+ 'use strict';
2
+
3
+ var aConcept = require('@adaas/a-concept');
4
+ var aFrame = require('@adaas/a-frame');
5
+ var aLogger = require('@adaas/a-utils/a-logger');
6
+ var are = require('@adaas/are');
7
+ var AreHTML_instructions_constants = require('@adaas/are-html/instructions/AreHTML.instructions.constants');
8
+ var AreDirective_context = require('@adaas/are-html/directive/AreDirective.context');
9
+ var AreHTML_context = require('./AreHTML.context');
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __decorateClass = (decorators, target, key, kind) => {
14
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
15
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
16
+ if (decorator = decorators[i])
17
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
18
+ if (kind && result) __defProp(target, key, result);
19
+ return result;
20
+ };
21
+ var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
22
+ exports.AreHTMLInterpreter = class AreHTMLInterpreter extends are.AreInterpreter {
23
+ addElement(declaration, context, logger) {
24
+ try {
25
+ const node = declaration.owner;
26
+ let currentNode = node;
27
+ let parent = node.parent;
28
+ while (parent) {
29
+ if (context.getNodeElement(parent)) {
30
+ break;
31
+ }
32
+ currentNode = parent;
33
+ parent = parent.parent;
34
+ }
35
+ const tag = node.tag;
36
+ if (parent) {
37
+ const mountPoint = context.getNodeElement(parent);
38
+ if (!mountPoint) {
39
+ throw new are.AreInterpreterError({
40
+ title: "Mount Point Not Found",
41
+ description: `Could not find a mount point for the node with id "${node.id}". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`
42
+ });
43
+ }
44
+ const element = context.container.createElement(tag);
45
+ if (mountPoint.nodeType === Node.ELEMENT_NODE) {
46
+ mountPoint.appendChild(element);
47
+ } else {
48
+ mountPoint.parentNode?.insertBefore(element, mountPoint);
49
+ }
50
+ context.setInstructionElement(declaration, element);
51
+ } else {
52
+ const mountPoint = context.container.getElementById(node.id);
53
+ if (!mountPoint) {
54
+ throw new are.AreInterpreterError({
55
+ title: "Mount Point Not Found",
56
+ description: `Could not find a mount point for the node with id "${node.id}". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`
57
+ });
58
+ }
59
+ const element = context.container.createElement(tag);
60
+ element.setAttribute("data-aseid", node.aseid.toString());
61
+ mountPoint.parentNode?.replaceChild(element, mountPoint);
62
+ context.setInstructionElement(declaration, element);
63
+ }
64
+ logger?.debug("green", `Element ${node.aseid.toString()} added to Context:`);
65
+ } catch (error) {
66
+ logger?.error(error);
67
+ throw error;
68
+ }
69
+ }
70
+ removeElement(declaration, context) {
71
+ const element = context.getElementByInstruction(declaration);
72
+ if (element && element.parentNode) {
73
+ element.parentNode.removeChild(element);
74
+ }
75
+ context.removeInstructionElement(declaration);
76
+ }
77
+ addAttribute(mutation, context, store, syntax, directiveContext, logger) {
78
+ const element = context.getElementByInstruction(mutation.parent);
79
+ if (!element) {
80
+ throw new are.AreInterpreterError({
81
+ title: "Element Not Found",
82
+ description: `Could not find a DOM element associated with the instruction ASEID "${mutation.parent}". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`
83
+ });
84
+ }
85
+ const { name, content, evaluate } = mutation.payload;
86
+ const value = evaluate ? syntax.evaluate(content, store, {
87
+ ...directiveContext?.scope || {}
88
+ }) : content;
89
+ if (mutation.cache === void 0) {
90
+ const existingValue = element.getAttribute(name);
91
+ const result = existingValue ? `${existingValue} ${value}` : value;
92
+ element.setAttribute(name, result);
93
+ mutation.cache = value;
94
+ } else {
95
+ const existingValue = element.getAttribute(name);
96
+ const existingParts = existingValue ? existingValue.split(/\s+/).filter(Boolean) : [];
97
+ const oldParts = new Set(mutation.cache.split(/\s+/).filter(Boolean));
98
+ const newParts = value ? value.split(/\s+/).filter(Boolean) : [];
99
+ const result = [...existingParts.filter((part) => !oldParts.has(part)), ...newParts].join(" ");
100
+ element.setAttribute(name, result);
101
+ mutation.cache = value;
102
+ }
103
+ }
104
+ removeAttribute(mutation, context) {
105
+ try {
106
+ const element = context.getElementByInstruction(mutation.parent);
107
+ if (!element) return;
108
+ const { name } = mutation.payload;
109
+ if (name && element.nodeType === Node.ELEMENT_NODE) {
110
+ element?.removeAttribute(name);
111
+ }
112
+ } catch (error) {
113
+ console.log("Error removing attribute:", error);
114
+ }
115
+ }
116
+ addEventListener(mutation, context, store, syntax, directiveContext, logger) {
117
+ const element = context.getElementByInstruction(mutation.parent);
118
+ if (!element) {
119
+ throw new are.AreInterpreterError({
120
+ title: "Element Not Found",
121
+ description: `Could not find a DOM element associated with the instruction ASEID "${mutation.parent}". Ensure that the parent instruction is properly rendered and associated with a DOM element before adding event listeners.`
122
+ });
123
+ }
124
+ const handlers = syntax.extractEmitHandlers(mutation.payload.handler);
125
+ const handlerScope = {};
126
+ for (const handler of handlers) {
127
+ const handlerFn = (...args) => {
128
+ const event = new are.AreEvent(handler);
129
+ event.set("args", args);
130
+ event.set("element", element);
131
+ event.set("instruction", mutation);
132
+ mutation.owner.emit(event);
133
+ };
134
+ handlerScope[`$${handler}`] = handlerFn;
135
+ }
136
+ const callback = (e) => {
137
+ context.startPerformance("Click");
138
+ const result = syntax.evaluate(mutation.payload.handler, store, {
139
+ ...handlerScope,
140
+ ...directiveContext?.scope || {}
141
+ });
142
+ if (typeof result === "function") result(e);
143
+ };
144
+ if (callback) {
145
+ element.addEventListener(mutation.payload.name, callback);
146
+ context.addListener(element, mutation.payload.name, callback);
147
+ }
148
+ }
149
+ removeEventListener(mutation, context) {
150
+ const element = context.getElementByInstruction(mutation.parent);
151
+ if (!element) return;
152
+ const { name } = mutation.payload;
153
+ const listener = context.getListener(element, name);
154
+ if (listener) {
155
+ element.removeEventListener(name, listener);
156
+ context.removeListener(element, name);
157
+ }
158
+ }
159
+ addText(declaration, context, store, syntax, directiveContext, logger) {
160
+ const node = declaration.owner.parent;
161
+ const { content, evaluate } = declaration.payload;
162
+ const value = evaluate ? syntax.evaluate(content, store, {
163
+ ...directiveContext?.scope || {}
164
+ }) : content;
165
+ if (!node) {
166
+ const textNode = context.container.createTextNode(value);
167
+ context.container.body.appendChild(textNode);
168
+ context.setInstructionElement(declaration, textNode);
169
+ } else {
170
+ const element = context.getNodeElement(node);
171
+ if (!element) {
172
+ throw new are.AreInterpreterError({
173
+ title: "Element Not Found",
174
+ description: `Could not find a DOM element associated with the instruction ASEID "${declaration.owner.parent.aseid}". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`
175
+ });
176
+ }
177
+ const existingNode = context.getElementByInstruction(declaration);
178
+ if (existingNode) {
179
+ existingNode.textContent = value;
180
+ } else {
181
+ const textNode = context.container.createTextNode(value);
182
+ element.appendChild(textNode);
183
+ context.setInstructionElement(declaration, textNode);
184
+ }
185
+ }
186
+ logger?.debug("green", `Text ${node?.aseid.toString()} added to Context:`);
187
+ }
188
+ removeText(declaration, context) {
189
+ const element = context.getElementByInstruction(declaration);
190
+ if (!element) return;
191
+ element.parentNode?.removeChild(element);
192
+ context.removeInstructionElement(declaration);
193
+ }
194
+ addComment(declaration, context, store, syntax, directiveContext, logger) {
195
+ const node = declaration.owner.parent;
196
+ const { content, evaluate } = declaration.payload;
197
+ const value = evaluate ? syntax.evaluate(content, store, {
198
+ ...directiveContext?.scope || {}
199
+ }) : content;
200
+ if (!node) {
201
+ const commentNode = context.container.createComment(value);
202
+ context.container.body.appendChild(commentNode);
203
+ context.setInstructionElement(declaration, commentNode);
204
+ } else {
205
+ const element = context.getNodeElement(node);
206
+ if (!element) {
207
+ throw new are.AreInterpreterError({
208
+ title: "Element Not Found",
209
+ description: `Could not find a DOM element associated with the instruction ASEID "${declaration.owner.parent.aseid}". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`
210
+ });
211
+ }
212
+ const existingNode = context.getElementByInstruction(declaration);
213
+ if (existingNode) {
214
+ existingNode.textContent = value;
215
+ } else {
216
+ const commentNode = context.container.createComment(value);
217
+ element.appendChild(commentNode);
218
+ context.setInstructionElement(declaration, commentNode);
219
+ }
220
+ }
221
+ logger?.debug("green", `Comment ${node?.aseid.toString()} added to Context:`);
222
+ }
223
+ removeComment(declaration, context) {
224
+ const element = context.getElementByInstruction(declaration);
225
+ if (!element) return;
226
+ element.parentNode?.removeChild(element);
227
+ context.removeInstructionElement(declaration);
228
+ }
229
+ };
230
+ __decorateClass([
231
+ aFrame.A_Frame.Method({
232
+ description: "Create an HTML element based on the provided declaration instruction. Handles both root-level mounting and child element creation based on the structural parent hierarchy."
233
+ }),
234
+ are.AreInterpreter.Apply(are.AreInstructionDefaultNames.Default),
235
+ are.AreInterpreter.Apply(AreHTML_instructions_constants.AreHTMLInstructions.AddElement),
236
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
237
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
238
+ __decorateParam(2, aConcept.A_Inject(aLogger.A_Logger))
239
+ ], exports.AreHTMLInterpreter.prototype, "addElement", 1);
240
+ __decorateClass([
241
+ aFrame.A_Frame.Method({
242
+ description: "Remove an HTML element that was created by a CreateElement declaration. Cleans up the DOM and the context index."
243
+ }),
244
+ are.AreInterpreter.Revert(are.AreInstructionDefaultNames.Default),
245
+ are.AreInterpreter.Revert(AreHTML_instructions_constants.AreHTMLInstructions.AddElement),
246
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
247
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext))
248
+ ], exports.AreHTMLInterpreter.prototype, "removeElement", 1);
249
+ __decorateClass([
250
+ aFrame.A_Frame.Method({
251
+ description: "Add an attribute to an HTML element based on the provided mutation instruction."
252
+ }),
253
+ are.AreInterpreter.Apply(AreHTML_instructions_constants.AreHTMLInstructions.AddAttribute),
254
+ are.AreInterpreter.Update(AreHTML_instructions_constants.AreHTMLInstructions.AddAttribute),
255
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
256
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
257
+ __decorateParam(2, aConcept.A_Inject(are.AreStore)),
258
+ __decorateParam(3, aConcept.A_Inject(are.AreSyntax)),
259
+ __decorateParam(4, aConcept.A_Inject(AreDirective_context.AreDirectiveContext)),
260
+ __decorateParam(5, aConcept.A_Inject(aLogger.A_Logger))
261
+ ], exports.AreHTMLInterpreter.prototype, "addAttribute", 1);
262
+ __decorateClass([
263
+ aFrame.A_Frame.Method({
264
+ description: "Remove an attribute from an HTML element based on the provided mutation instruction."
265
+ }),
266
+ are.AreInterpreter.Revert(AreHTML_instructions_constants.AreHTMLInstructions.AddAttribute),
267
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
268
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext))
269
+ ], exports.AreHTMLInterpreter.prototype, "removeAttribute", 1);
270
+ __decorateClass([
271
+ aFrame.A_Frame.Method({
272
+ description: "Add an event listener to an HTML element based on the provided mutation instruction."
273
+ }),
274
+ are.AreInterpreter.Apply(AreHTML_instructions_constants.AreHTMLInstructions.AddListener),
275
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
276
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
277
+ __decorateParam(2, aConcept.A_Inject(are.AreStore)),
278
+ __decorateParam(3, aConcept.A_Inject(are.AreSyntax)),
279
+ __decorateParam(4, aConcept.A_Inject(AreDirective_context.AreDirectiveContext)),
280
+ __decorateParam(5, aConcept.A_Inject(aLogger.A_Logger))
281
+ ], exports.AreHTMLInterpreter.prototype, "addEventListener", 1);
282
+ __decorateClass([
283
+ aFrame.A_Frame.Method({
284
+ description: "Remove an event listener from an HTML element based on the provided mutation instruction."
285
+ }),
286
+ are.AreInterpreter.Revert(AreHTML_instructions_constants.AreHTMLInstructions.AddListener),
287
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
288
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext))
289
+ ], exports.AreHTMLInterpreter.prototype, "removeEventListener", 1);
290
+ __decorateClass([
291
+ aFrame.A_Frame.Method({
292
+ description: "Add text content to an HTML element based on the provided declaration instruction."
293
+ }),
294
+ are.AreInterpreter.Apply(AreHTML_instructions_constants.AreHTMLInstructions.AddText),
295
+ are.AreInterpreter.Update(AreHTML_instructions_constants.AreHTMLInstructions.AddText),
296
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
297
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
298
+ __decorateParam(2, aConcept.A_Inject(are.AreStore)),
299
+ __decorateParam(3, aConcept.A_Inject(are.AreSyntax)),
300
+ __decorateParam(4, aConcept.A_Inject(AreDirective_context.AreDirectiveContext)),
301
+ __decorateParam(5, aConcept.A_Inject(aLogger.A_Logger))
302
+ ], exports.AreHTMLInterpreter.prototype, "addText", 1);
303
+ __decorateClass([
304
+ aFrame.A_Frame.Method({
305
+ description: "Remove text content from an HTML element based on the provided declaration instruction."
306
+ }),
307
+ are.AreInterpreter.Revert(AreHTML_instructions_constants.AreHTMLInstructions.AddText),
308
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
309
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext))
310
+ ], exports.AreHTMLInterpreter.prototype, "removeText", 1);
311
+ __decorateClass([
312
+ aFrame.A_Frame.Method({
313
+ description: "Add a comment node to the DOM based on the provided declaration instruction."
314
+ }),
315
+ are.AreInterpreter.Apply(AreHTML_instructions_constants.AreHTMLInstructions.AddComment),
316
+ are.AreInterpreter.Update(AreHTML_instructions_constants.AreHTMLInstructions.AddComment),
317
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
318
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext)),
319
+ __decorateParam(2, aConcept.A_Inject(are.AreStore)),
320
+ __decorateParam(3, aConcept.A_Inject(are.AreSyntax)),
321
+ __decorateParam(4, aConcept.A_Inject(AreDirective_context.AreDirectiveContext)),
322
+ __decorateParam(5, aConcept.A_Inject(aLogger.A_Logger))
323
+ ], exports.AreHTMLInterpreter.prototype, "addComment", 1);
324
+ __decorateClass([
325
+ aFrame.A_Frame.Method({
326
+ description: "Remove a comment node from the DOM based on the provided declaration instruction."
327
+ }),
328
+ are.AreInterpreter.Revert(AreHTML_instructions_constants.AreHTMLInstructions.AddComment),
329
+ __decorateParam(0, aConcept.A_Inject(aConcept.A_Caller)),
330
+ __decorateParam(1, aConcept.A_Inject(AreHTML_context.AreHTMLEngineContext))
331
+ ], exports.AreHTMLInterpreter.prototype, "removeComment", 1);
332
+ exports.AreHTMLInterpreter = __decorateClass([
333
+ aFrame.A_Frame.Component({
334
+ namespace: "A-ARE",
335
+ name: "AreHTMLInterpreter",
336
+ description: "AreHTMLInterpreter is a component that serves as a host for rendering AreNodes into HTML. It provides the necessary context and environment for AreNodes to be rendered and interact with the DOM."
337
+ })
338
+ ], exports.AreHTMLInterpreter);
339
+ //# sourceMappingURL=AreHTML.interpreter.js.map
340
+ //# sourceMappingURL=AreHTML.interpreter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/engine/AreHTML.interpreter.ts"],"names":["AreHTMLInterpreter","AreInterpreter","AreInterpreterError","AreEvent","A_Frame","AreInstructionDefaultNames","AreHTMLInstructions","A_Caller","AreHTMLEngineContext","A_Logger","AreStore","AreSyntax","AreDirectiveContext"],"mappings":"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","file":"AreHTML.interpreter.js","sourcesContent":["import { A_Caller, A_Inject } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport {\n AreSyntax, AreStore,\n AreEvent,\n AreInstructionDefaultNames,\n AreInterpreterError,\n AreInterpreter\n} from \"@adaas/are\";\nimport { AreHTMLInstructions } from \"@adaas/are-html/instructions/AreHTML.instructions.constants\";\nimport { AddAttributeInstruction } from \"@adaas/are-html/instructions/AddAttribute.instruction\";\nimport { AddCommentInstruction } from \"@adaas/are-html/instructions/AddComment.instruction\";\nimport { AddElementInstruction } from \"@adaas/are-html/instructions/AddElement.instruction\";\nimport { AddListenerInstruction } from \"@adaas/are-html/instructions/AddListener.instruction\";\nimport { AddTextInstruction } from \"@adaas/are-html/instructions/AddText.instruction\";\nimport { AreDirectiveContext } from \"@adaas/are-html/directive/AreDirective.context\";\nimport { AreHTMLNode } from \"../lib/AreHTMLNode/AreHTMLNode\";\nimport { AreHTMLEngineContext } from \"./AreHTML.context\";\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreHTMLInterpreter',\n description: 'AreHTMLInterpreter is a component that serves as a host for rendering AreNodes into HTML. It provides the necessary context and environment for AreNodes to be rendered and interact with the DOM.'\n})\nexport class AreHTMLInterpreter extends AreInterpreter {\n // ─────────────────────────────────────────────────────────────────────────────\n // ── CreateElement — Apply / Revert ───────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n @A_Frame.Method({\n description: 'Create an HTML element based on the provided declaration instruction. Handles both root-level mounting and child element creation based on the structural parent hierarchy.'\n })\n @AreInterpreter.Apply(AreInstructionDefaultNames.Default)\n @AreInterpreter.Apply(AreHTMLInstructions.AddElement)\n addElement(\n @A_Inject(A_Caller) declaration: AddElementInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n try {\n const node = declaration.owner as AreHTMLNode;\n\n let currentNode: AreHTMLNode | undefined = node;\n let parent: AreHTMLNode | undefined = node.parent as AreHTMLNode | undefined;\n\n while (parent) {\n if (context.getNodeElement(parent)) {\n break;\n }\n currentNode = parent;\n parent = parent.parent as AreHTMLNode | undefined;\n }\n\n\n // Determine the element tag — components render as a wrapper div\n const tag = node.tag;\n\n if (parent) {\n\n const mountPoint = context.getNodeElement(parent)\n\n if (!mountPoint) {\n throw new AreInterpreterError({\n title: 'Mount Point Not Found',\n description: `Could not find a mount point for the node with id \"${node.id}\". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`\n });\n }\n\n const element = context.container.createElement(tag);\n\n if (mountPoint.nodeType === Node.ELEMENT_NODE) {\n // parent is a real element — just append\n mountPoint.appendChild(element);\n } else {\n // parent is an anchor (comment/text node) — insert before it\n // so content always appears before the anchor marker\n mountPoint.parentNode?.insertBefore(element, mountPoint);\n }\n\n context.setInstructionElement(declaration, element);\n\n } else {\n const mountPoint = context.container.getElementById(node.id);\n if (!mountPoint) {\n throw new AreInterpreterError({\n title: 'Mount Point Not Found',\n description: `Could not find a mount point for the node with id \"${node.id}\". Ensure that the parent node is rendered before its children, or that a valid root element with the corresponding id exists in the DOM.`\n });\n }\n\n const element = context.container.createElement(tag);\n\n element.setAttribute('data-aseid', node.aseid.toString());\n\n mountPoint.parentNode?.replaceChild(element, mountPoint);\n\n context.setInstructionElement(declaration, element);\n }\n\n // Register the element in the context index\n\n logger?.debug('green', `Element ${node.aseid.toString()} added to Context:`);\n\n } catch (error) {\n logger?.error(error);\n throw error;\n }\n }\n\n\n @A_Frame.Method({\n description: 'Remove an HTML element that was created by a CreateElement declaration. Cleans up the DOM and the context index.'\n })\n @AreInterpreter.Revert(AreInstructionDefaultNames.Default)\n @AreInterpreter.Revert(AreHTMLInstructions.AddElement)\n removeElement(\n @A_Inject(A_Caller) declaration: AddElementInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n context.removeInstructionElement(declaration);\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── AddAttribute — Apply / Revert ────────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n @A_Frame.Method({\n description: 'Add an attribute to an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddAttribute)\n @AreInterpreter.Update(AreHTMLInstructions.AddAttribute)\n addAttribute(\n @A_Inject(A_Caller) mutation: AddAttributeInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ): void {\n const element = context.getElementByInstruction(mutation.parent!);\n\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${mutation.parent}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n }\n const { name, content, evaluate } = mutation.payload;\n\n const value = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n\n /**\n * First time\n */\n if (mutation.cache === undefined) {\n\n const existingValue = (element as HTMLElement).getAttribute(name);\n\n const result = (existingValue ? `${existingValue} ${value}` : value);\n\n (element as HTMLElement).setAttribute(name, result);\n\n mutation.cache = value;\n\n } else {\n\n const existingValue = (element as HTMLElement).getAttribute(name);\n\n const existingParts = existingValue ? existingValue.split(/\\s+/).filter(Boolean) : [];\n const oldParts = new Set((mutation.cache as string).split(/\\s+/).filter(Boolean));\n const newParts = value ? value.split(/\\s+/).filter(Boolean) : [];\n\n const result = [...existingParts.filter(part => !oldParts.has(part)), ...newParts].join(' ');\n\n (element as HTMLElement).setAttribute(name, result);\n\n mutation.cache = value;\n }\n\n\n }\n\n @A_Frame.Method({\n description: 'Remove an attribute from an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddAttribute)\n removeAttribute(\n @A_Inject(A_Caller) mutation: AddAttributeInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ): void {\n try {\n const element = context.getElementByInstruction(mutation.parent!);\n\n if (!element) return;\n\n const { name } = mutation.payload;\n\n if (name && element.nodeType === Node.ELEMENT_NODE) {\n (element as HTMLElement)?.removeAttribute(name);\n }\n } catch (error) {\n console.log('Error removing attribute:', error);\n }\n\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── addEventListener — Apply / Revert ────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n\n @A_Frame.Method({\n description: 'Add an event listener to an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddListener)\n addEventListener(\n @A_Inject(A_Caller) mutation: AddListenerInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const element = context.getElementByInstruction(mutation.parent);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${mutation.parent}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before adding event listeners.`\n });\n }\n\n /**\n * e.g. @click=\"handleClick\" \n * \n * e.g. @click=\"handleClick($event, element)\"\n * \n * e.g. @click=\"(e)=> user.name ? handleClick(e) : null\" (with conditional logic)\n * \n * e.g. @click=\"(e)=> isValid(user.name) ? handleClick(e) : null\" (with conditional logic)\n * \n * e.g. @click=\"(e)=> isValid(user.name) ? handleClick(e, format(user.name)) : null\" (with conditional logic)\n */\n\n\n const handlers = syntax.extractEmitHandlers(mutation.payload.handler);\n const handlerScope = {}\n\n for (const handler of handlers) {\n const handlerFn = (...args: any[]) => {\n const event = new AreEvent(handler)\n\n event.set('args', args);\n event.set('element', element);\n event.set('instruction', mutation);\n\n mutation.owner.emit(event);\n }\n\n handlerScope[`$${handler}`] = handlerFn;\n }\n\n const callback = (e: Event) => {\n context.startPerformance('Click')\n\n const result = syntax.evaluate(mutation.payload.handler, store, {\n ...handlerScope,\n ...(directiveContext?.scope || {})\n });\n if (typeof result === 'function') result(e);\n };\n\n\n if (callback) {\n element.addEventListener(mutation.payload.name, callback);\n context.addListener(element, mutation.payload.name, callback);\n }\n }\n\n\n @A_Frame.Method({\n description: 'Remove an event listener from an HTML element based on the provided mutation instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddListener)\n removeEventListener(\n @A_Inject(A_Caller) mutation: AddListenerInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(mutation.parent);\n\n if (!element) return;\n\n const { name } = mutation.payload;\n\n const listener = context.getListener(element, name);\n\n if (listener) {\n element.removeEventListener(name, listener);\n context.removeListener(element, name);\n }\n }\n\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ── AddText — Apply / Revert ─────────────────────────────────────────────────\n // ─────────────────────────────────────────────────────────────────────────────\n\n @A_Frame.Method({\n description: 'Add text content to an HTML element based on the provided declaration instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddText)\n @AreInterpreter.Update(AreHTMLInstructions.AddText)\n addText(\n @A_Inject(A_Caller) declaration: AddTextInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = declaration.owner.parent;\n const { content, evaluate } = declaration.payload;\n\n const value = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n\n if (!node) {\n const textNode = context.container.createTextNode(value);\n context.container.body.appendChild(textNode);\n context.setInstructionElement(declaration, textNode);\n\n } else {\n const element = context.getNodeElement(node);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${declaration.owner.parent.aseid}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n\n }\n\n const existingNode = context.getElementByInstruction(declaration);\n\n if (existingNode) {\n existingNode.textContent = value;\n } else {\n const textNode = context.container.createTextNode(value);\n element.appendChild(textNode);\n\n context.setInstructionElement(declaration, textNode);\n }\n }\n\n\n\n logger?.debug('green', `Text ${node?.aseid.toString()} added to Context:`);\n\n }\n\n\n @A_Frame.Method({\n description: 'Remove text content from an HTML element based on the provided declaration instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddText)\n removeText(\n @A_Inject(A_Caller) declaration: AddTextInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (!element) return;\n\n element.parentNode?.removeChild(element);\n context.removeInstructionElement(declaration);\n }\n\n\n\n @A_Frame.Method({\n description: 'Add a comment node to the DOM based on the provided declaration instruction.'\n })\n @AreInterpreter.Apply(AreHTMLInstructions.AddComment)\n @AreInterpreter.Update(AreHTMLInstructions.AddComment)\n addComment(\n @A_Inject(A_Caller) declaration: AddCommentInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(AreDirectiveContext) directiveContext?: AreDirectiveContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = declaration.owner.parent;\n const { content, evaluate } = declaration.payload;\n\n const value = evaluate ? syntax.evaluate(content, store, {\n ...(directiveContext?.scope || {})\n }) : content;\n\n\n if (!node) {\n const commentNode = context.container.createComment(value);\n context.container.body.appendChild(commentNode);\n context.setInstructionElement(declaration, commentNode);\n\n } else {\n const element = context.getNodeElement(node);\n\n if (!element) {\n throw new AreInterpreterError({\n title: 'Element Not Found',\n description: `Could not find a DOM element associated with the instruction ASEID \"${declaration.owner.parent.aseid}\". Ensure that the parent instruction is properly rendered and associated with a DOM element before applying attribute mutations.`\n });\n }\n\n const existingNode = context.getElementByInstruction(declaration);\n\n if (existingNode) {\n existingNode.textContent = value;\n } else {\n const commentNode = context.container.createComment(value);\n element.appendChild(commentNode);\n\n context.setInstructionElement(declaration, commentNode);\n }\n }\n\n\n\n logger?.debug('green', `Comment ${node?.aseid.toString()} added to Context:`);\n }\n\n\n @A_Frame.Method({\n description: 'Remove a comment node from the DOM based on the provided declaration instruction.'\n })\n @AreInterpreter.Revert(AreHTMLInstructions.AddComment)\n removeComment(\n @A_Inject(A_Caller) declaration: AddCommentInstruction,\n @A_Inject(AreHTMLEngineContext) context: AreHTMLEngineContext,\n ) {\n const element = context.getElementByInstruction(declaration);\n\n if (!element) return;\n\n element.parentNode?.removeChild(element);\n context.removeInstructionElement(declaration);\n }\n}"]}