@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,521 @@
1
+ import { AreStoreWatchingEntity, AreNode, AreAttribute, AreStore, AreScene, AreSyntax, AreMutation, AreDeclaration, AreInstructionSerialized, AreNodeNewProps, Are, AreSignal, AreContext, AreInstruction, AreCompiler, AreEngine, AreSyntaxTokenMatch, AreInterpreter, AreLifecycle, AreSignalsContext, AreTokenizer, AreTransformer, ArePropDefinition } from '@adaas/are';
2
+ import { A_Component, A_TYPES__Ctor, A_Fragment, ASEID, A_Scope, A_Feature, A_ComponentMeta } from '@adaas/a-concept';
3
+ import { A_Logger } from '@adaas/a-utils/a-logger';
4
+ import { A_ExecutionContext } from '@adaas/a-utils/a-execution';
5
+ import { A_Route } from '@adaas/a-utils/a-route';
6
+ import { A_Signal, A_SignalVector } from '@adaas/a-utils/a-signal';
7
+
8
+ declare class AreDirective extends A_Component {
9
+ /**
10
+ * Allows to define a compilation order for directives, which is necessary when we have multiple directives on the same node and we want to control the order of their compilation and application. The directive with the highest priority will be compiled and applied first, and the directive with the lowest priority will be compiled and applied last. This is important because some directives may depend on the output of other directives, so we need to ensure that they are compiled and applied in the correct order to avoid errors and ensure the expected behavior.
11
+ *
12
+ * @param priority
13
+ * @returns
14
+ */
15
+ static Priority(priority: number): <TTarget extends A_TYPES__Ctor<AreDirective>>(target: TTarget) => TTarget;
16
+ /**
17
+ * Allows to define a custom method for transforming the AreNode tree based on the directive attribute. This method is called during the transformation phase of the ARE component and should perform any necessary transformations on the AreNode tree based on the directive's content and context. This can include tasks such as adding or removing nodes, modifying node properties, or restructuring the tree to ensure that the directive is applied correctly during rendering.
18
+ */
19
+ static get Transform(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => any;
20
+ /**
21
+ * Allows to define a custom method for compiling a directive attribute into a set of SceneInstructions.
22
+ * Can be used at any component to extend this logic not only for a AreDirective inherited.
23
+ */
24
+ static get Compile(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => any;
25
+ /**
26
+ * Allows to define a custom method for updating a directive attribute based on changes in the store or other dependencies.
27
+ * Can be used at any component to extend this logic not only for a AreDirective inherited.
28
+ */
29
+ static get Update(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => any;
30
+ /**
31
+ * Default transform method for directives, which can be overridden by specific directive implementations. This method is called during the transformation phase of the ARE component and should perform any necessary transformations on the AreNode tree based on the directive's content and context. This can include tasks such as adding or removing nodes, modifying node properties, or restructuring the tree to ensure that the directive is applied correctly during rendering.
32
+ *
33
+ * @param attribute - The directive attribute to transform, which contains all the information about the directive as defined in the template (e.g. name, raw content, evaluated value, etc.)
34
+ * @param args - Additional arguments that may be required for the transformation process.
35
+ */
36
+ transform(attribute: AreDirectiveAttribute, ...args: any[]): void;
37
+ /**
38
+ * Default compile method for directives, which can be overridden by specific directive implementations.
39
+ *
40
+ * @param attribute - The directive attribute to compile, which contains all the information about the directive as defined in the template (e.g. name, raw content, evaluated value, etc.)
41
+ * @param args - Additional arguments that may be required for the compilation process.
42
+ */
43
+ compile(attribute: AreDirectiveAttribute, ...args: any[]): void;
44
+ /**
45
+ * Default update method for directives, which can be overridden by specific directive implementations. This method is called when there are changes in the store or other dependencies that may affect the directive's behavior or appearance. The method should contain logic to update the directive accordingly, such as re-evaluating its value, modifying the DOM, or triggering re-rendering of the affected nodes.
46
+ *
47
+ * @param attribute - The directive attribute to update, which contains all the information about the directive as defined in the template (e.g. name, raw content, evaluated value, etc.)
48
+ * @param args - Additional arguments that may be required for the update process.
49
+ */
50
+ update(attribute: AreDirectiveAttribute, ...args: any[]): void;
51
+ }
52
+
53
+ declare class AreDirectiveAttribute extends AreHTMLAttribute implements AreStoreWatchingEntity {
54
+ cache?: any;
55
+ template?: AreHTMLNode;
56
+ /**
57
+ * Returns a custom directive component associated with this attribute, if available.
58
+ *
59
+ * The method uses the attribute's name to resolve the corresponding directive component from the scope. It constructs the expected directive name by converting the attribute name to PascalCase and prefixing it with "AreDirective". If a matching directive component is found in the scope, it is returned; otherwise, the method returns undefined.
60
+ */
61
+ get component(): AreDirective | undefined;
62
+ }
63
+
64
+ declare class AreEventAttribute extends AreHTMLAttribute {
65
+ }
66
+
67
+ declare class AreStaticAttribute extends AreHTMLAttribute {
68
+ }
69
+
70
+ declare class AreStyle extends A_Fragment {
71
+ styles: string;
72
+ constructor(styles: string, aseid?: ASEID | string);
73
+ }
74
+
75
+ declare class AreHTMLNode extends AreNode {
76
+ /**
77
+ * Actual node type.
78
+ * By default it's a tag name
79
+ */
80
+ get tag(): string;
81
+ /**
82
+ * The static attributes defined for the node, which are typically used to represent static properties or characteristics of the node that do not change based on the context or state. These attributes are usually defined in the template and are not reactive.
83
+ *
84
+ * Example: For a node defined as `<div class="static-class">`, the static attribute would be `class="static-class"`.
85
+ */
86
+ get staticAttributes(): AreStaticAttribute[];
87
+ /**
88
+ * The binding attributes defined for the node, which are typically used to represent dynamic properties or characteristics of the node that can change based on the context or state. These attributes are usually defined in the template with a specific syntax (e.g., `:prop="value"` or `v-bind:prop="value"`) and are reactive, meaning that they will update automatically when the underlying data changes.
89
+ *
90
+ * Example: For a node defined as `<div :class="dynamicClass">`, the binding attribute would be `:class="dynamicClass"`.
91
+ */
92
+ get bindings(): AreBindingAttribute[];
93
+ /**
94
+ * The directive attributes defined for the node, which are typically used to represent special instructions or behaviors that should be applied to the node. These attributes are usually defined in the template with a specific syntax (e.g., `v-if="condition"` or `v-for="item in list"`) and are processed by the rendering engine to apply the corresponding logic or behavior to the node.
95
+ *
96
+ * Example: For a node defined as `<div v-if="isVisible">`, the directive attribute would be `v-if="isVisible"`.
97
+ */
98
+ get directives(): AreDirectiveAttribute[];
99
+ /**
100
+ * The event attributes defined for the node, which are typically used to represent event listeners or handlers that should be attached to the node. These attributes are usually defined in the template with a specific syntax (e.g., `@click="handleClick"` or `v-on:click="handleClick"`) and are processed by the rendering engine to attach the corresponding event listeners to the node.
101
+ *
102
+ * Example: For a node defined as `<button @click="handleClick">`, the event attribute would be `@click="handleClick"`.
103
+ */
104
+ get events(): AreEventAttribute[];
105
+ /**
106
+ * The styles defined for the node, which can include inline styles or styles defined in a separate stylesheet that are applied to the node. These styles can be used to control the visual appearance of the node and can be defined using standard CSS syntax.
107
+ */
108
+ get styles(): AreStyle;
109
+ }
110
+
111
+ declare class AreHTMLAttribute extends AreAttribute {
112
+ get owner(): AreHTMLNode;
113
+ }
114
+
115
+ declare class AreBindingAttribute extends AreHTMLAttribute {
116
+ }
117
+
118
+ declare class AreDirectiveFor extends AreDirective {
119
+ transform(attribute: AreDirectiveAttribute, scope: A_Scope, store: AreStore, scene: AreScene, logger: A_Logger, ...args: any[]): void;
120
+ compile(attribute: AreDirectiveAttribute, store: AreStore, scene: AreScene, ...args: any[]): void;
121
+ update(attribute: AreDirectiveAttribute, store: AreStore, scene: AreScene, ...args: any[]): void;
122
+ /**
123
+ * Parses the $for expression string into its constituent parts.
124
+ *
125
+ * Supported formats:
126
+ * item in items
127
+ * item, index in items
128
+ * (item, index) in items
129
+ * item in filter(items)
130
+ * item, index in filter(items, 'active')
131
+ */
132
+ private parseExpression;
133
+ /**
134
+ * Resolves the array expression against the store.
135
+ * Supports both plain key lookups and function-call expressions:
136
+ * items → store.get('items')
137
+ * filter(items) → store.get('filter')(store.get('items'))
138
+ */
139
+ private resolveArray;
140
+ /**
141
+ * Creates a single item node from the template, registers it as a child of
142
+ * the owner, initialises it, injects item-scoped store values, and activates
143
+ * its scene so the mount/compile cycle will include it.
144
+ *
145
+ * NOTE: This method does NOT call compile() or mount() — the caller is
146
+ * responsible for doing so when the main lifecycle cycle won't cover it
147
+ * (i.e. during update, but not during the initial compile phase).
148
+ */
149
+ private spawnItemNode;
150
+ }
151
+
152
+ declare class AreDirectiveContext extends A_ExecutionContext {
153
+ scope: Record<string, any>;
154
+ constructor(aseid: ASEID | string);
155
+ }
156
+
157
+ declare class AreDirectiveIf extends AreDirective {
158
+ transform(attribute: AreDirectiveAttribute, scope: A_Scope, store: AreStore, scene: AreScene, logger: A_Logger, ...args: any[]): void;
159
+ compile(attribute: AreDirectiveAttribute, store: AreStore, scene: AreScene, syntax: AreSyntax, directiveContext?: AreDirectiveContext, ...args: any[]): void;
160
+ update(attribute: AreDirectiveAttribute, store: AreStore, scope: A_Scope, syntax: AreSyntax, scene: AreScene, ...args: any[]): void;
161
+ }
162
+
163
+ type AreHtmlAddAttributeInstructionPayload = {
164
+ name: string;
165
+ content: string;
166
+ evaluate?: boolean;
167
+ };
168
+ type AreHtmlAddElementInstructionPayload = {
169
+ tag: string;
170
+ };
171
+ type AreHtmlAddTextInstructionPayload = {
172
+ /**
173
+ * Static string content or a dynamic getter function.
174
+ * When a function is provided, it receives the instruction instance
175
+ * and should return the current text value (used for interpolations).
176
+ */
177
+ content: string;
178
+ evaluate?: boolean;
179
+ };
180
+ type AreHtmlAddCommentInstructionPayload = {
181
+ /**
182
+ * Static string content or a dynamic getter function.
183
+ * When a function is provided, it receives the instruction instance
184
+ * and should return the current text value (used for interpolations).
185
+ */
186
+ content: string;
187
+ evaluate?: boolean;
188
+ };
189
+ type AreHtmlAddStyleInstructionPayload = {
190
+ /** CSS property name in camelCase (e.g. "backgroundColor") or kebab-case (e.g. "background-color") */
191
+ property: string;
192
+ /** CSS property value */
193
+ value: string;
194
+ };
195
+ type AreHtmlAddListenerInstructionPayload = {
196
+ /** DOM event name (e.g. "click", "input", "submit") */
197
+ name: string;
198
+ /** Event handler callback */
199
+ handler: string;
200
+ };
201
+ type AreHtmlAddInterpolationInstructionPayload = {
202
+ /** The interpolation key used to look up the value in the store */
203
+ key: string;
204
+ /** Dynamic getter function that resolves the current interpolation value */
205
+ content: (...args: any[]) => string;
206
+ };
207
+
208
+ declare class AddAttributeInstruction extends AreMutation<AreHtmlAddAttributeInstructionPayload> {
209
+ cache?: string;
210
+ constructor(parent: AreDeclaration, props: AreHtmlAddAttributeInstructionPayload | AreInstructionSerialized<AreHtmlAddAttributeInstructionPayload>);
211
+ }
212
+
213
+ declare class AddElementInstruction extends AreDeclaration<AreHtmlAddElementInstructionPayload> {
214
+ constructor(props: AreHtmlAddElementInstructionPayload | AreInstructionSerialized<AreHtmlAddElementInstructionPayload>);
215
+ }
216
+
217
+ declare class AddInterpolationInstruction extends AreMutation<AreHtmlAddInterpolationInstructionPayload> {
218
+ constructor(parent: AreDeclaration, props: AreHtmlAddInterpolationInstructionPayload | AreInstructionSerialized<AreHtmlAddInterpolationInstructionPayload>);
219
+ }
220
+
221
+ declare class AddListenerInstruction extends AreMutation<AreHtmlAddListenerInstructionPayload> {
222
+ constructor(parent: AreDeclaration, props: AreHtmlAddListenerInstructionPayload | AreInstructionSerialized<AreHtmlAddListenerInstructionPayload>);
223
+ }
224
+
225
+ declare class AddStyleInstruction extends AreMutation<AreHtmlAddStyleInstructionPayload> {
226
+ constructor(parent: AreDeclaration, props: AreHtmlAddStyleInstructionPayload | AreInstructionSerialized<AreHtmlAddStyleInstructionPayload>);
227
+ }
228
+
229
+ declare class AddTextInstruction extends AreDeclaration<AreHtmlAddTextInstructionPayload> {
230
+ constructor(props: AreHtmlAddTextInstructionPayload | AreInstructionSerialized<AreHtmlAddTextInstructionPayload>);
231
+ }
232
+
233
+ declare const AreHTMLInstructions: {
234
+ readonly AddElement: "_AreHTML_AddElement";
235
+ readonly AddText: "_AreHTML_AddText";
236
+ readonly AddAttribute: "_AreHTML_AddAttribute";
237
+ readonly AddStyle: "_AreHTML_AddStyle";
238
+ readonly AddListener: "_AreHTML_AddListener";
239
+ readonly AddInterpolation: "_AreHTML_AddInterpolation";
240
+ readonly AddComment: "_AreHTML_AddComment";
241
+ };
242
+
243
+ declare class AreComment extends AreHTMLNode {
244
+ fromNew(newEntity: AreNodeNewProps): void;
245
+ }
246
+
247
+ declare class AreComponentNode extends AreHTMLNode {
248
+ /**
249
+ * A custom component associated with this node, which can be used to provide custom logic and behavior for the node. This component is typically defined in the context and can be resolved based on the node's type or other identifying information. The component can include its own template, markup, styles, and features that are specific to the functionality it provides.
250
+ *
251
+ * Example: If the node type is "custom-component", the corresponding component would be resolved from the context and can be used to provide custom rendering and behavior for nodes of that type.
252
+ *
253
+ * [!] Note: The component is optional and may not be defined for all nodes. If no component is associated with the node, it will be treated as a standard HTML element or a basic node without custom logic.
254
+ */
255
+ get component(): Are | undefined;
256
+ }
257
+
258
+ declare class AreInterpolation extends AreHTMLNode {
259
+ fromNew(newEntity: AreNodeNewProps): void;
260
+ }
261
+
262
+ declare class AreRootNode extends AreHTMLNode {
263
+ /**
264
+ * For the root node, we can default to a generic container element like <div> since it serves as the root of the component tree and does not correspond to a specific HTML tag defined in the markup. The actual content and structure of the root node will be determined by the child nodes and components that are rendered within it, allowing for flexibility in how the root node is used and what it contains.
265
+ */
266
+ get tag(): string;
267
+ /**
268
+ * A custom component associated with this node, which can be used to provide custom logic and behavior for the node. This component is typically defined in the context and can be resolved based on the node's type or other identifying information. The component can include its own template, markup, styles, and features that are specific to the functionality it provides.
269
+ *
270
+ * Example: If the node type is "custom-component", the corresponding component would be resolved from the context and can be used to provide custom rendering and behavior for nodes of that type.
271
+ *
272
+ * [!] Note: The component is optional and may not be defined for all nodes. If no component is associated with the node, it will be treated as a standard HTML element or a basic node without custom logic.
273
+ */
274
+ get component(): Are | undefined;
275
+ }
276
+
277
+ declare class AreText extends AreHTMLNode {
278
+ fromNew(newEntity: AreNodeNewProps): void;
279
+ }
280
+
281
+ declare class AreRoute extends AreSignal<A_Route> {
282
+ constructor(path: string | RegExp);
283
+ get route(): A_Route;
284
+ static default(): AreRoute | undefined;
285
+ compare(other: A_Signal<A_Route>): boolean;
286
+ }
287
+
288
+ type AreHTMLContextConstructor = {
289
+ container: Document;
290
+ source: string;
291
+ };
292
+
293
+ declare class AreHTMLEngineContext extends AreContext {
294
+ /**
295
+ * Index structure mapping:
296
+ *
297
+ * Node -> Group ID -> Element
298
+ * -----------------------------------------------------------------------------------
299
+ * | - Attribute | group: string | Node
300
+ * | - Directive (e.g. for) | | Node
301
+ */
302
+ protected index: {
303
+ /**
304
+ * 1 AreNode = 1 Dom Node
305
+ *
306
+ * uses ASEID
307
+ */
308
+ nodeToHostElements: Map<string, Node>;
309
+ /**
310
+ * 1 Group Instruction = MANY Dom Nodes (e.g. for loop)
311
+ *
312
+ * uses ASEID
313
+ */
314
+ groupToElements: Map<string, Set<Node>>;
315
+ /**
316
+ * 1 Dom Node = 1 Instruction
317
+ *
318
+ * uses ASEID
319
+ */
320
+ elementToInstruction: WeakMap<Node, string>;
321
+ /**
322
+ * 1 Instruction = 1 Dom Node (for CreateElement instructions, for example)
323
+ *
324
+ * uses ASEID
325
+ */
326
+ instructionToElement: Map<string, Node>;
327
+ /**
328
+ * Event listeners attached to elements, used for proper cleanup when reverting instructions. Maps a DOM element to a map of event names and their corresponding listeners, allowing the engine to track which listeners are attached to which elements and remove them when necessary (e.g., when an instruction is reverted).
329
+ */
330
+ elementListeners: WeakMap<Node, Map<string, EventListenerOrEventListenerObject>>;
331
+ };
332
+ /**
333
+ * The root container for the HTML engine, which can be either a Document or a ShadowRoot. This is where the engine will mount the generated DOM elements. The context uses this container to manage the relationship between AreNodes, instructions, and their corresponding DOM elements, allowing for efficient updates and cleanups as the application state changes.
334
+ */
335
+ protected _container: Document;
336
+ constructor(props: Partial<AreHTMLContextConstructor>);
337
+ get container(): Document;
338
+ /**
339
+ * Retrieves the DOM element associated with a given AreNode. This method looks up the node's ASEID in the nodeToHostElements map to find the corresponding DOM element. If the node is not found, it returns undefined. This allows the engine to efficiently access and manipulate the DOM elements that correspond to specific nodes in the AreNode tree, enabling dynamic updates and interactions based on the application state.
340
+ *
341
+ * @param nodeASEID
342
+ */
343
+ getNodeElement(nodeASEID: string): Node | undefined;
344
+ getNodeElement(node: AreNode): Node | undefined;
345
+ /**
346
+ * Associates a DOM element with a given instruction and its owner node. This method updates the context's index to map the instruction's ASEID to the provided DOM element, and also maps the element back to the instruction's ASEID for reverse lookup. If the instruction has an owner node, it also maps the node's ASEID to the element. Additionally, if the instruction belongs to a group, it adds the element to the set of elements associated with that group. This indexing allows the engine to efficiently manage and update DOM elements based on instructions and their corresponding nodes, enabling dynamic rendering and interaction in response to application state changes.
347
+ *
348
+ * @param instruction
349
+ * @param element
350
+ */
351
+ setInstructionElement(instruction: AreInstruction, element: Node): void;
352
+ /**
353
+ * Retrieves the DOM element associated with a given instruction. This method looks up the instruction's ASEID in the instructionToElement map to find the corresponding DOM element. If the instruction is not found, it returns undefined. This allows the engine to efficiently access and manipulate the DOM elements that correspond to specific instructions, enabling dynamic updates and interactions based on the application state.
354
+ *
355
+ * @param instructionASEID
356
+ */
357
+ getElementByInstruction(instructionASEID: string): Node | undefined;
358
+ getElementByInstruction(instruction: AreInstruction): Node | undefined;
359
+ /**
360
+ * Removes the association between a given instruction and its corresponding DOM element. This method looks up the instruction's ASEID to find the associated DOM element, and if found, it deletes the mapping from both instructionToElement and elementToInstruction. If the instruction has an owner node, it also removes the mapping from nodeToHostElements. Additionally, if the instruction belongs to a group, it removes the element from the set of elements associated with that group, and if the group has no more elements, it deletes the group from the index. This cleanup is essential for maintaining an accurate and efficient mapping of instructions to DOM elements, especially when instructions are reverted or when nodes are removed from the DOM.
361
+ *
362
+ * @param instruction
363
+ */
364
+ removeInstructionElement(instruction: AreInstruction): void;
365
+ /**
366
+ * Retrieves the set of DOM elements associated with a given group. This method looks up the group name or instruction's ASEID in the groupToElements map to find the corresponding set of DOM elements. If the group is not found, it returns undefined. This allows the engine to efficiently access and manipulate all DOM elements that belong to a specific group (e.g., all elements generated by a particular loop instruction), enabling dynamic updates and interactions based on the application state.
367
+ *
368
+ * @param groupName
369
+ */
370
+ getElementsByGroup(groupName: string): Set<Node> | undefined;
371
+ getElementsByGroup(instruction: AreInstruction): Set<Node> | undefined;
372
+ /**
373
+ * Adds an event listener to a specific DOM element and keeps track of it in the context's index for proper cleanup later. This method takes a DOM element, an event name, and a listener function or object, and stores this information in the elementListeners map. This allows the engine to efficiently manage event listeners attached to dynamically created elements, ensuring that they can be removed when the associated instructions are reverted or when nodes are removed from the DOM, preventing memory leaks and unintended behavior.
374
+ *
375
+ * @param element
376
+ * @param eventName
377
+ * @param listener
378
+ */
379
+ addListener(element: Node, eventName: string, listener: EventListenerOrEventListenerObject): void;
380
+ /**
381
+ * Retrieves the event listener associated with a specific DOM element and event name from the context's index. This method looks up the element in the elementListeners map and then retrieves the listener for the specified event name. If no listener is found for the given element and event, it returns undefined. This allows the engine to efficiently access and manage event listeners that have been attached to dynamically created elements, enabling proper cleanup when instructions are reverted or when nodes are removed from the DOM.
382
+ *
383
+ * @param element
384
+ * @param eventName
385
+ * @returns
386
+ */
387
+ getListener(element: Node, eventName: string): EventListenerOrEventListenerObject | undefined;
388
+ /**
389
+ * Removes an event listener from a specific DOM element and updates the context's index accordingly. This method looks up the element in the elementListeners map and deletes the listener for the specified event name. This is typically called when an instruction is reverted or when a node is removed from the DOM, ensuring that any attached event listeners are properly cleaned up to prevent memory leaks and unintended behavior.
390
+ *
391
+ * @param element
392
+ * @param eventName
393
+ */
394
+ removeListener(element: Node, eventName: string): void;
395
+ }
396
+
397
+ declare class AreHTMLCompiler extends AreCompiler {
398
+ /**
399
+ * Default compile method for interpolations, which can be overridden by specific implementations if needed.
400
+ *
401
+ * @param interpolation
402
+ * @param scope
403
+ * @param scene
404
+ * @param store
405
+ * @param feature
406
+ */
407
+ compileInterpolation(interpolation: AreInterpolation, scene: AreScene, store: AreStore, logger?: A_Logger, ...args: any[]): void;
408
+ compileText(text: AreText, scene: AreScene, logger?: A_Logger, ...args: any[]): void;
409
+ compileStaticAttribute(attribute: AreStaticAttribute, scene: AreScene, ...args: any[]): void;
410
+ compileDirectiveAttribute(directive: AreDirectiveAttribute, store: AreStore, feature: A_Feature, logger?: A_Logger, ...args: any[]): void;
411
+ compileEventAttribute(attribute: AreEventAttribute, scene: AreScene, ...args: any[]): void;
412
+ compileBindingAttribute(attribute: AreBindingAttribute, scene: AreScene, parentStore: AreStore, store: AreStore, ...args: any[]): void;
413
+ }
414
+
415
+ declare class AreHTMLEngine extends AreEngine {
416
+ get DefaultSyntax(): AreSyntax;
417
+ /**
418
+ * Inject AreHTMLSyntax into the container scope before loading
419
+ *
420
+ * @param container
421
+ */
422
+ init(scope: A_Scope): Promise<void>;
423
+ protected rootElementMatcher(source: string, from: number, to: number, build: (raw: string, content: string, position: number, closing: string) => AreSyntaxTokenMatch): AreSyntaxTokenMatch | null;
424
+ protected htmlElementMatcher(source: string, from: number, to: number, build: (raw: string, content: string, position: number, closing: string) => AreSyntaxTokenMatch): AreSyntaxTokenMatch | null;
425
+ /**
426
+ * Find the index of the closing `>` of an opening tag, skipping over
427
+ * `>` characters that appear inside quoted attribute values.
428
+ */
429
+ private static findTagClose;
430
+ }
431
+
432
+ declare class AddCommentInstruction extends AreDeclaration<AreHtmlAddCommentInstructionPayload> {
433
+ get content(): string;
434
+ constructor(props: AreHtmlAddCommentInstructionPayload | AreInstructionSerialized<AreHtmlAddCommentInstructionPayload>);
435
+ }
436
+
437
+ declare class AreHTMLInterpreter extends AreInterpreter {
438
+ addElement(declaration: AddElementInstruction, context: AreHTMLEngineContext, logger?: A_Logger): void;
439
+ removeElement(declaration: AddElementInstruction, context: AreHTMLEngineContext): void;
440
+ addAttribute(mutation: AddAttributeInstruction, context: AreHTMLEngineContext, store: AreStore, syntax: AreSyntax, directiveContext?: AreDirectiveContext, logger?: A_Logger): void;
441
+ removeAttribute(mutation: AddAttributeInstruction, context: AreHTMLEngineContext): void;
442
+ addEventListener(mutation: AddListenerInstruction, context: AreHTMLEngineContext, store: AreStore, syntax: AreSyntax, directiveContext?: AreDirectiveContext, logger?: A_Logger): void;
443
+ removeEventListener(mutation: AddListenerInstruction, context: AreHTMLEngineContext): void;
444
+ addText(declaration: AddTextInstruction, context: AreHTMLEngineContext, store: AreStore, syntax: AreSyntax, directiveContext?: AreDirectiveContext, logger?: A_Logger): void;
445
+ removeText(declaration: AddTextInstruction, context: AreHTMLEngineContext): void;
446
+ addComment(declaration: AddCommentInstruction, context: AreHTMLEngineContext, store: AreStore, syntax: AreSyntax, directiveContext?: AreDirectiveContext, logger?: A_Logger): void;
447
+ removeComment(declaration: AddCommentInstruction, context: AreHTMLEngineContext): void;
448
+ }
449
+
450
+ declare class AreHTMLLifecycle extends AreLifecycle {
451
+ initComponent(node: AreHTMLNode, scope: A_Scope, context: AreHTMLEngineContext, logger?: A_Logger, ...args: any[]): void;
452
+ initRoot(node: AreHTMLNode, scope: A_Scope, context: AreHTMLEngineContext, signalsContext?: AreSignalsContext, logger?: A_Logger, ...args: any[]): void;
453
+ initText(node: AreHTMLNode, scope: A_Scope, context: AreHTMLEngineContext, logger?: A_Logger, ...args: any[]): void;
454
+ initInterpolation(node: AreHTMLNode, scope: A_Scope, context: AreHTMLEngineContext, logger?: A_Logger, ...args: any[]): void;
455
+ updateDirectiveAttribute(directive: AreDirectiveAttribute, scope: A_Scope, feature: A_Feature, logger?: A_Logger, ...args: any[]): void;
456
+ }
457
+
458
+ declare class AreHTMLTokenizer extends AreTokenizer {
459
+ ATTR_PATTERN: RegExp;
460
+ tokenize(node: AreNode, context: AreContext, logger?: A_Logger): void;
461
+ extractAttributes(markup: string): AreHTMLAttribute[];
462
+ }
463
+
464
+ declare class AreHTMLTransformer extends AreTransformer {
465
+ transformDirectiveAttribute(directive: AreDirectiveAttribute, store: AreStore, feature: A_Feature, logger?: A_Logger, ...args: any[]): void;
466
+ }
467
+
468
+ declare const AreDirectiveFeatures: {
469
+ /**
470
+ * Feature that should transform the tree based on the directive attribute. This method is called during the transformation phase of the ARE component and should perform any necessary transformations on the AreNode tree based on the directive's content and context. This can include tasks such as adding or removing nodes, modifying node properties, or restructuring the tree to ensure that the directive is applied correctly during rendering.
471
+ */
472
+ readonly Transform: "_AreDirective_Transform";
473
+ /**
474
+ * Feature that should convert a directiveAttribute definition into a set of SceneInstructions to be rendered correctly
475
+ */
476
+ readonly Compile: "_AreDirective_Compile";
477
+ /**
478
+ * Feature that should update the directiveAttribute based on the changes in the store or other dependencies.
479
+ */
480
+ readonly Update: "_AreDirective_Update";
481
+ };
482
+
483
+ declare class AreDirectiveMeta extends A_ComponentMeta {
484
+ priority: number;
485
+ }
486
+
487
+ type AreDirectiveOrderDecoratorParameters = {
488
+ /**
489
+ * The directive that should be applied before the decorated directive. It can be specified as a string (directive name), a regular expression (to match directive names) or a constructor of the directive class.
490
+ */
491
+ before: string | RegExp | A_TYPES__Ctor<AreDirective>;
492
+ /**
493
+ * The directive that should be applied after the decorated directive. It can be specified as a string (directive name), a regular expression (to match directive names) or a constructor of the directive class.
494
+ */
495
+ after: string | RegExp | A_TYPES__Ctor<AreDirective>;
496
+ };
497
+
498
+ declare class AreRoot extends Are {
499
+ props: Record<string, ArePropDefinition>;
500
+ template(root: AreNode, logger: A_Logger, signalsContext?: AreSignalsContext): Promise<void>;
501
+ onSignal(root: AreNode, vector: A_SignalVector, store: AreStore<{
502
+ default: string;
503
+ }>, logger: A_Logger, signalsContext?: AreSignalsContext): Promise<void>;
504
+ }
505
+
506
+ declare class AreWatcher extends A_Component {
507
+ private readonly handlers;
508
+ private current;
509
+ constructor();
510
+ onChange(handler: (url: URL) => void): () => void;
511
+ get url(): URL;
512
+ destroy(): void;
513
+ private onPopState;
514
+ private onHashChange;
515
+ private onURLChange;
516
+ private attachListeners;
517
+ private patchHistory;
518
+ private notify;
519
+ }
520
+
521
+ export { AddAttributeInstruction, AddElementInstruction, AddInterpolationInstruction, AddListenerInstruction, AddStyleInstruction, AddTextInstruction, AreBindingAttribute, AreComment, AreComponentNode, AreDirective, AreDirectiveAttribute, AreDirectiveContext, AreDirectiveFeatures, AreDirectiveFor, AreDirectiveIf, AreDirectiveMeta, type AreDirectiveOrderDecoratorParameters, AreEventAttribute, AreHTMLAttribute, AreHTMLCompiler, type AreHTMLContextConstructor, AreHTMLEngine, AreHTMLEngineContext, AreHTMLInstructions, AreHTMLInterpreter, AreHTMLLifecycle, AreHTMLNode, AreHTMLTokenizer, AreHTMLTransformer, type AreHtmlAddAttributeInstructionPayload, type AreHtmlAddCommentInstructionPayload, type AreHtmlAddElementInstructionPayload, type AreHtmlAddInterpolationInstructionPayload, type AreHtmlAddListenerInstructionPayload, type AreHtmlAddStyleInstructionPayload, type AreHtmlAddTextInstructionPayload, AreInterpolation, AreRoot, AreRootNode, AreRoute, AreStaticAttribute, AreStyle, AreText, AreWatcher };