@torpor/view 0.0.2 → 0.0.4

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 (589) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{Component-Dpu-AVgs.d.cts → Component-CysAnHpO.d.cts} +1 -1
  3. package/dist/{Component-Dpu-AVgs.d.ts → Component-CysAnHpO.d.ts} +1 -1
  4. package/dist/{ServerSlotRender-BJ4LZmv6.d.cts → ServerSlotRender-AWF3bD5B.d.cts} +1 -1
  5. package/dist/{ServerSlotRender-BJ4LZmv6.d.ts → ServerSlotRender-AWF3bD5B.d.ts} +1 -1
  6. package/dist/chunk-EGRHWZRV.js +1 -0
  7. package/dist/chunk-EGRHWZRV.js.map +1 -0
  8. package/dist/compile.cjs +119 -89
  9. package/dist/compile.cjs.map +1 -1
  10. package/dist/compile.d.cts +37 -30
  11. package/dist/compile.d.ts +37 -30
  12. package/dist/compile.js +121 -89
  13. package/dist/compile.js.map +1 -1
  14. package/dist/index.cjs +3 -3
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +14 -14
  17. package/dist/index.d.ts +14 -14
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/metafile-cjs.json +1 -1
  21. package/dist/metafile-esm.json +1 -1
  22. package/dist/ssr.cjs +2 -2
  23. package/dist/ssr.cjs.map +1 -1
  24. package/dist/ssr.d.cts +4 -4
  25. package/dist/ssr.d.ts +4 -4
  26. package/dist/ssr.js +2 -2
  27. package/dist/ssr.js.map +1 -1
  28. package/package.json +12 -12
  29. package/scripts/buildTestOutput.ts +7 -8
  30. package/scripts/copyToRepl.ts +5 -3
  31. package/src/ambient.d.ts +23 -0
  32. package/src/compile/build/client/BuildStatus.ts +6 -4
  33. package/src/compile/build/client/buildAddFragment.ts +5 -5
  34. package/src/compile/build/client/buildAwaitNode.ts +3 -9
  35. package/src/compile/build/client/buildCode.ts +16 -12
  36. package/src/compile/build/client/buildComponentNode.ts +11 -9
  37. package/src/compile/build/client/buildControlNode.ts +10 -15
  38. package/src/compile/build/client/buildElementNode.ts +20 -23
  39. package/src/compile/build/client/buildForNode.ts +3 -10
  40. package/src/compile/build/client/buildFragment.ts +20 -8
  41. package/src/compile/build/client/buildFragmentText.ts +7 -7
  42. package/src/compile/build/client/buildHeadNode.ts +2 -2
  43. package/src/compile/build/client/buildHtmlNode.ts +3 -9
  44. package/src/compile/build/client/buildIfNode.ts +3 -9
  45. package/src/compile/build/client/buildMount.ts +5 -10
  46. package/src/compile/build/client/buildNode.ts +11 -11
  47. package/src/compile/build/client/buildReplaceNode.ts +3 -9
  48. package/src/compile/build/client/buildRootNode.ts +2 -2
  49. package/src/compile/build/client/buildRun.ts +4 -9
  50. package/src/compile/build/client/buildScriptNode.ts +1 -1
  51. package/src/compile/build/client/buildSlotNode.ts +10 -12
  52. package/src/compile/build/client/buildSpecialNode.ts +5 -6
  53. package/src/compile/build/client/buildStyles.ts +3 -4
  54. package/src/compile/build/client/buildSwitchNode.ts +3 -9
  55. package/src/compile/build/client/buildTextNode.ts +3 -9
  56. package/src/compile/build/client/replaceForVarNames.ts +16 -0
  57. package/src/compile/build/server/BuildServerStatus.ts +3 -3
  58. package/src/compile/build/server/buildServerAwaitNode.ts +2 -2
  59. package/src/compile/build/server/buildServerCode.ts +11 -14
  60. package/src/compile/build/server/buildServerComponentNode.ts +15 -7
  61. package/src/compile/build/server/buildServerControlNode.ts +4 -3
  62. package/src/compile/build/server/buildServerElementNode.ts +4 -4
  63. package/src/compile/build/server/buildServerForNode.ts +2 -2
  64. package/src/compile/build/server/buildServerHtmlNode.ts +3 -9
  65. package/src/compile/build/server/buildServerIfNode.ts +2 -2
  66. package/src/compile/build/server/buildServerNode.ts +7 -7
  67. package/src/compile/build/server/buildServerReplaceNode.ts +2 -2
  68. package/src/compile/build/server/buildServerRootNode.ts +2 -2
  69. package/src/compile/build/server/buildServerScriptNode.ts +1 -1
  70. package/src/compile/build/server/buildServerSlotNode.ts +3 -3
  71. package/src/compile/build/server/buildServerSpecialNode.ts +2 -2
  72. package/src/compile/build/server/buildServerSwitchNode.ts +3 -3
  73. package/src/compile/build/server/buildServerTextNode.ts +3 -4
  74. package/src/compile/build/utils/isReactiveAttribute.ts +6 -7
  75. package/src/compile/build/utils/nextVarName.ts +2 -2
  76. package/src/compile/build.ts +3 -3
  77. package/src/compile/buildType.ts +4 -8
  78. package/src/compile/parse/ParseStatus.ts +13 -6
  79. package/src/compile/parse/addSpaceElement.ts +4 -4
  80. package/src/compile/parse/parseCode.ts +6 -5
  81. package/src/compile/parse/parseControl.ts +4 -4
  82. package/src/compile/parse/parseElement.ts +10 -8
  83. package/src/compile/parse/parseImports.ts +1 -1
  84. package/src/compile/parse/parseInlineScript.ts +3 -3
  85. package/src/compile/parse/parseMarkup.ts +1 -1
  86. package/src/compile/parse/parseStyles.ts +5 -4
  87. package/src/compile/parse/parseTag.ts +3 -3
  88. package/src/compile/parse/scopeStyles.ts +3 -3
  89. package/src/compile/parse/slottifyChildNodes.ts +2 -2
  90. package/src/compile/parse/utils/accept.ts +1 -1
  91. package/src/compile/parse/utils/addError.ts +1 -1
  92. package/src/compile/parse/utils/consumeAlphaNumeric.ts +1 -1
  93. package/src/compile/parse/utils/consumeNonSpace.ts +1 -1
  94. package/src/compile/parse/utils/consumeSpace.ts +1 -1
  95. package/src/compile/parse/utils/consumeUntil.ts +1 -1
  96. package/src/compile/parse/utils/expect.ts +1 -1
  97. package/src/compile/parse.ts +1 -1
  98. package/src/compile/types/BuildResult.ts +2 -2
  99. package/src/compile/types/CompileError.ts +2 -2
  100. package/src/compile/types/Import.ts +2 -2
  101. package/src/compile/types/ParseResult.ts +4 -4
  102. package/src/compile/types/nodes/Attribute.ts +2 -2
  103. package/src/compile/types/nodes/ControlNode.ts +6 -6
  104. package/src/compile/types/nodes/ElementNode.ts +6 -6
  105. package/src/compile/types/nodes/Fragment.ts +2 -2
  106. package/src/compile/types/nodes/NodeType.ts +1 -3
  107. package/src/compile/types/nodes/OperationType.ts +1 -3
  108. package/src/compile/types/nodes/ParentNode.ts +4 -4
  109. package/src/compile/types/nodes/RootNode.ts +5 -5
  110. package/src/compile/types/nodes/TemplateNode.ts +3 -3
  111. package/src/compile/types/nodes/TextNode.ts +3 -3
  112. package/src/compile/types/nodes/isControlNode.ts +2 -2
  113. package/src/compile/types/nodes/isElementNode.ts +2 -2
  114. package/src/compile/types/nodes/isParentNode.ts +2 -2
  115. package/src/compile/types/nodes/isSpaceNode.ts +2 -2
  116. package/src/compile/types/nodes/isSpecialNode.ts +2 -2
  117. package/src/compile/types/nodes/isTextNode.ts +2 -2
  118. package/src/compile/types/styles/Attribute.ts +2 -2
  119. package/src/compile/types/styles/Style.ts +3 -3
  120. package/src/compile/types/styles/StyleBlock.ts +3 -3
  121. package/src/compile/utils/Builder.ts +0 -1
  122. package/src/compile.ts +2 -2
  123. package/src/debug/printNode.ts +2 -2
  124. package/src/index.ts +5 -5
  125. package/src/render/$mount.ts +1 -1
  126. package/src/render/$run.ts +2 -2
  127. package/src/render/$serverMount.ts +2 -2
  128. package/src/render/$serverRun.ts +2 -2
  129. package/src/render/$watch.ts +2 -2
  130. package/src/render/addAnimation.ts +1 -1
  131. package/src/render/addFragment.ts +1 -1
  132. package/src/render/applyProps.ts +1 -1
  133. package/src/render/clearRange.ts +1 -1
  134. package/src/render/context.ts +5 -5
  135. package/src/render/flushMountEffects.ts +1 -1
  136. package/src/render/getFragment.ts +0 -2
  137. package/src/render/hydrate.ts +2 -2
  138. package/src/render/hydrateRoot.ts +2 -2
  139. package/src/render/mount.ts +2 -2
  140. package/src/render/moveRange.ts +1 -1
  141. package/src/render/newListItem.ts +1 -1
  142. package/src/render/newRange.ts +1 -1
  143. package/src/render/popRange.ts +1 -1
  144. package/src/render/pushRange.ts +1 -1
  145. package/src/render/runControl.ts +2 -2
  146. package/src/render/runControlBranch.ts +1 -1
  147. package/src/render/runList.ts +3 -3
  148. package/src/render/runListItems.ts +3 -4
  149. package/src/ssr.ts +1 -1
  150. package/src/types/Animation.ts +1 -1
  151. package/src/types/BuildOptions.ts +2 -2
  152. package/src/types/Cleanup.ts +1 -3
  153. package/src/types/Component.ts +2 -4
  154. package/src/types/Effect.ts +4 -4
  155. package/src/types/ListItem.ts +3 -3
  156. package/src/types/ProxyData.ts +3 -3
  157. package/src/types/ProxyPropData.ts +3 -3
  158. package/src/types/Range.ts +3 -3
  159. package/src/types/ServerComponent.ts +2 -4
  160. package/src/types/ServerSlotRender.ts +4 -3
  161. package/src/types/SlotRender.ts +3 -5
  162. package/src/types/Template.ts +4 -4
  163. package/src/types/TemplateComponent.ts +11 -4
  164. package/src/types/WatchOptions.ts +2 -2
  165. package/src/watch/proxyGet.ts +1 -1
  166. package/src/watch/proxySet.ts +1 -1
  167. package/src/watch/removeEffect.ts +1 -1
  168. package/src/watch/runEffect.ts +1 -1
  169. package/src/watch/trackEffect.ts +1 -1
  170. package/src/watch/transferEffects.ts +1 -1
  171. package/src/watch/triggerEffects.ts +1 -1
  172. package/test/attributes/attributes.test.ts +1 -1
  173. package/test/attributes/components/Attributes.d.ts +1 -1
  174. package/test/attributes/components/output/Attributes-client.ts +8 -3
  175. package/test/attributes/components/output/Attributes-server.ts +4 -3
  176. package/test/attributes/components/temp/{Attributes-client-6a45dee9b3b1a2cce54feceb78dd18c6dcf9ea71.ts → Attributes-client-c4812cb9307eac6ff44f90f3358a1811b52c7390.ts} +8 -3
  177. package/test/attributes/components/temp/{Attributes-server-81340ff9f0a53bdd3b568cb371e5c7648adbee4f.ts → Attributes-server-a7ebed503f2169f7c900d4613531082f1023b086.ts} +4 -3
  178. package/test/attributes/parse.test.ts +2 -2
  179. package/test/await/components/Await.d.ts +1 -1
  180. package/test/await/components/output/Await-client.ts +16 -5
  181. package/test/await/components/output/Await-server.ts +4 -1
  182. package/test/await/components/temp/{Await-client-fbc4a91efad261d702579b56b5d52ef4ed3684ba.ts → Await-client-6ce3ac610ce79ae3b474c81964b715e6f3d966da.ts} +16 -5
  183. package/test/await/components/temp/{Await-server-7906b4a37d8918108ba74466a48f67c4791aadc4.ts → Await-server-06cd2a3d8c7eb5bef026ffe2fb11793becf547c2.ts} +4 -1
  184. package/test/bench/bench.bench.ts +1 -1
  185. package/test/bench/components/Bench.d.ts +1 -17
  186. package/test/bench/components/output/Bench-client.ts +87 -9
  187. package/test/bench/components/output/Bench-server.ts +18 -21
  188. package/test/bind/components/BindText.d.ts +1 -1
  189. package/test/bind/components/output/BindText-client.ts +7 -2
  190. package/test/bind/components/output/BindText-server.ts +4 -1
  191. package/test/bind/components/temp/{BindText-client-6963638e95f6555cdf292aa921fdc866fa8ae1de.ts → BindText-client-d8b5da0867d612966fa091da7aa20baa77190d64.ts} +7 -2
  192. package/test/bind/components/temp/{BindText-server-6f62805628866f32e39045cd45e0f9da64c94837.ts → BindText-server-20ad98151d8e9dd7d347968051c4602d6b35124c.ts} +4 -1
  193. package/test/build-server/build-server-element-node.test.ts +1 -1
  194. package/test/build-server/build-server.test.ts +7 -4
  195. package/test/build-server/components/IfNested.d.ts +1 -1
  196. package/test/build-server/components/output/IfNested-client.ts +8 -7
  197. package/test/build-server/components/output/IfNested-server.ts +3 -2
  198. package/test/buildHtml.ts +10 -8
  199. package/test/buildOutputFiles.ts +7 -8
  200. package/test/child-component/components/ParentChild.d.ts +1 -1
  201. package/test/child-component/components/output/ParentChild-client.ts +13 -4
  202. package/test/child-component/components/output/ParentChild-server.ts +7 -3
  203. package/test/child-component/components/temp/{ParentChild-client-e2c85a44f6480588f7ff993be1b4d2c42f8e3cd3.ts → ParentChild-client-8f00a3a31a7f666990765fc4755b62a39c855226.ts} +13 -4
  204. package/test/child-component/components/temp/{ParentChild-server-17b1277850eee5321527307cd7b647be2485ea70.ts → ParentChild-server-9c791bdfa521c3f6549857a34a6cd414fa3c9e80.ts} +7 -3
  205. package/test/class/components/Class.d.ts +1 -1
  206. package/test/class/components/output/Class-client.ts +7 -3
  207. package/test/class/components/output/Class-server.ts +4 -3
  208. package/test/class/components/temp/{Class-client-8c6c84b3d23af8694670343c15cd5ca964c7da72.ts → Class-client-600bf865c14f1052d24e1c79242f837aaf5ae5e8.ts} +7 -3
  209. package/test/class/components/temp/{Class-server-5885a4a2dd951a6f311ae3e12cb59c08ce00c51c.ts → Class-server-082505b03612c762384ffff329472db3f55b8097.ts} +4 -3
  210. package/test/comments/html-comments.test.ts +2 -2
  211. package/test/comments/js-block-comments.test.ts +2 -2
  212. package/test/comments/js-line-comments.test.ts +2 -2
  213. package/test/component/components/Component.d.ts +1 -1
  214. package/test/component/components/Header.d.ts +1 -1
  215. package/test/component/components/output/Component-client.ts +7 -3
  216. package/test/component/components/output/Component-server.ts +5 -2
  217. package/test/component/components/output/Header-client.ts +8 -3
  218. package/test/component/components/output/Header-server.ts +4 -3
  219. package/test/component/components/temp/{Component-client-b419d2d8209ab069408eeaa294ec4c5a37bc310d.ts → Component-client-32cd481f03e25d10b8e93947a2ff8773135b4975.ts} +7 -3
  220. package/test/component/components/temp/{Component-server-8990933d40416aca88488988f30dfc3364dc456c.ts → Component-server-11542f55405218c0b471172cac1d6a1a4edb5c09.ts} +5 -2
  221. package/test/console/components/Console.d.ts +1 -1
  222. package/test/console/components/output/Console-client.ts +8 -2
  223. package/test/console/components/output/Console-server.ts +4 -1
  224. package/test/console/components/temp/{Console-client-3532f7492c0c06ab37cbce1c2472806396330dc5.ts → Console-client-2f206752ce59e59fba9bb91263b4102fd515951e.ts} +8 -2
  225. package/test/const/components/Const.d.ts +1 -1
  226. package/test/const/components/output/Const-client.ts +7 -2
  227. package/test/const/components/output/Const-server.ts +4 -1
  228. package/test/const/components/temp/{Const-client-5ba2f9f95af7840cbe1790a706596b0e97da2737.ts → Const-client-536e8fdf18d6f4f7f23b2789de2330ecf62d7865.ts} +7 -2
  229. package/test/const/components/temp/{Const-server-4914c3d9a707e19c852f31c40b4e8e16ed1b4b6b.ts → Const-server-8f84096c03a19296425aee5d243af0734b70ca61.ts} +4 -1
  230. package/test/effects/components/For.d.ts +1 -1
  231. package/test/effects/components/If.d.ts +1 -1
  232. package/test/effects/components/NestedIf.d.ts +1 -1
  233. package/test/effects/components/output/For-client.ts +10 -4
  234. package/test/effects/components/output/For-server.ts +3 -2
  235. package/test/effects/components/output/If-client.ts +12 -4
  236. package/test/effects/components/output/If-server.ts +3 -2
  237. package/test/effects/components/output/NestedIf-client.ts +15 -5
  238. package/test/effects/components/output/NestedIf-server.ts +3 -2
  239. package/test/effects/components/temp/{For-client-adc406645b9dd71d03bd2aafc56b642c2d21c2ae.ts → For-client-887b1758cf5c80f64708a47369e0e6ce44ffa20f.ts} +10 -4
  240. package/test/effects/components/temp/{For-server-8cc4e9e3fa2ae038e519460c85e558d9947b6fa5.ts → For-server-8e1c7393b102c870167dd086cbee45c47e614dfa.ts} +3 -2
  241. package/test/effects/components/temp/{If-client-cee3b0d8ea35c90cc1a0506fd121ad6ad7afde2d.ts → If-client-bfc548ef699b91f33e604f066211ce6269cc9506.ts} +12 -4
  242. package/test/effects/components/temp/{If-server-62a737eb85f6f9931bc5ce6f9121561c3474e5e3.ts → If-server-8c213b1a82cd0a5c2bccfeb90ba8bf01fa4672d2.ts} +3 -2
  243. package/test/effects/components/temp/{NestedIf-client-0df3cf11db8413f1af92857fbebdc05128eb7525.ts → NestedIf-client-9e9155398f240345af392194063adc6e42dda80c.ts} +15 -5
  244. package/test/effects/components/temp/{NestedIf-server-37e3b835c2ba3e0a280fa7589fd2a2861b7a8d0f.ts → NestedIf-server-5f11d075c2ff224ee5feb7f61aa41aea8af44313.ts} +3 -2
  245. package/test/effects/for-effect.test.ts +2 -2
  246. package/test/effects/if-effect.test.ts +1 -1
  247. package/test/effects/nested-if-effect.test.ts +1 -1
  248. package/test/events/components/Increment.d.ts +1 -1
  249. package/test/events/components/output/Increment-client.ts +7 -2
  250. package/test/events/components/output/Increment-server.ts +4 -1
  251. package/test/events/components/temp/{Increment-client-44da5864e44c53bed1fa35069403559fe3ec33b3.ts → Increment-client-35c275d15e94e4aa7625af12c45210521995ead5.ts} +7 -2
  252. package/test/events/components/temp/{Increment-server-bd1216d8417b709a52131417405be76909885775.ts → Increment-server-bbf5ac93c4f73382c4262ae42f4cc836bcb8ac1b.ts} +4 -1
  253. package/test/events/events.test.ts +1 -1
  254. package/test/for/components/For.d.ts +1 -1
  255. package/test/for/components/ForEscape.d.ts +18 -0
  256. package/test/for/components/ForEscape.torp +13 -0
  257. package/test/for/components/ForIn.d.ts +1 -1
  258. package/test/for/components/ForOf.d.ts +1 -1
  259. package/test/for/components/output/For-client.ts +11 -4
  260. package/test/for/components/output/For-server.ts +4 -1
  261. package/test/for/components/output/ForEscape-client.ts +96 -0
  262. package/test/for/components/output/ForEscape-server.ts +24 -0
  263. package/test/for/components/output/ForIn-client.ts +11 -5
  264. package/test/for/components/output/ForIn-server.ts +4 -3
  265. package/test/for/components/output/ForOf-client.ts +11 -5
  266. package/test/for/components/output/ForOf-server.ts +4 -3
  267. package/test/for/components/temp/{For-client-c28b3b4ffaff54e225968666bb89a9801aa4be38.ts → For-client-1f6e475347f0474375f12a7c24b0b293e3942aa7.ts} +11 -4
  268. package/test/for/components/temp/{For-server-f8858496076f65ca1abefa4cc8e3f5d8abb8939d.ts → For-server-8490f15d02ae76b218feb7fa266415f44b2a4ab9.ts} +4 -1
  269. package/test/for/components/temp/ForEscape-client-2c881b16a6382edf074e1f151a209d60ca9b2b66.ts +96 -0
  270. package/test/for/components/temp/ForEscape-server-94a1bceabed006e15326a7f635724d88c3daa8fe.ts +24 -0
  271. package/test/for/components/temp/{ForIn-client-9f9383ab12774da311700aa5215c3cd00710b4fa.ts → ForIn-client-c8a1ec4473d05475e11928d06d081ab671fd9f28.ts} +11 -5
  272. package/test/for/components/temp/{ForIn-server-dd6f6da286061c14a1871ce86b29d4cc1b3851f6.ts → ForIn-server-d92cf8d3c3e300b562308607caca2c9cab3cb30b.ts} +4 -3
  273. package/test/for/components/temp/{ForOf-client-6a1c4b8b20f4e20ec413902c8fa4f47dcc564895.ts → ForOf-client-069881d4d9e52bc091e7213154924f3e1626174a.ts} +11 -5
  274. package/test/for/components/temp/{ForOf-server-4101449127dfcf735eb1bfe9e571f7fa53b4182d.ts → ForOf-server-3bfbb33bd589890d272bbcbea53d9598f53bfd70.ts} +4 -3
  275. package/test/for/for-escape.test.ts +41 -0
  276. package/test/for/for-with-key.test.ts +2 -2
  277. package/test/function/components/Function.d.ts +1 -1
  278. package/test/function/components/Function.torp +1 -0
  279. package/test/function/components/output/Function-client.ts +8 -2
  280. package/test/function/components/output/Function-server.ts +5 -1
  281. package/test/function/components/temp/{Function-client-97c3afdfd0ed80a74a9bfd41136927045699114c.ts → Function-client-b8931e51769f3f1e84d1491c6474f8551acf9f8d.ts} +8 -2
  282. package/test/function/components/temp/{Function-server-648cf7cb39698cd436479079551d43be1460ca05.ts → Function-server-2d32fbe35260c0948a135f287f131c5520e8bce7.ts} +5 -1
  283. package/test/function/function.test.ts +1 -1
  284. package/test/helpers.ts +8 -8
  285. package/test/html/components/Html.d.ts +1 -1
  286. package/test/html/components/output/Html-client.ts +7 -3
  287. package/test/html/components/output/Html-server.ts +4 -3
  288. package/test/html/components/temp/{Html-client-83841e19c73a4c003a0a89a268d17120c093f4d1.ts → Html-client-5fc745d9980a42a70dcb3473b0fd976e69882c9e.ts} +7 -3
  289. package/test/html/components/temp/{Html-server-fe700ee95c04e6418f7df23e98353fc9f196bb30.ts → Html-server-437ea390e58947213ede74755a012cdacceeebe7.ts} +4 -3
  290. package/test/hydrateComponent.ts +2 -2
  291. package/test/if/components/IfAfterIf.d.ts +1 -1
  292. package/test/if/components/IfElse.d.ts +1 -1
  293. package/test/if/components/IfElseIf.d.ts +1 -1
  294. package/test/if/components/IfNested.d.ts +1 -1
  295. package/test/if/components/output/IfAfterIf-client.ts +12 -4
  296. package/test/if/components/output/IfAfterIf-server.ts +3 -2
  297. package/test/if/components/output/IfElse-client.ts +12 -4
  298. package/test/if/components/output/IfElse-server.ts +3 -2
  299. package/test/if/components/output/IfElseIf-client.ts +15 -5
  300. package/test/if/components/output/IfElseIf-server.ts +3 -2
  301. package/test/if/components/output/IfNested-client.ts +18 -6
  302. package/test/if/components/output/IfNested-server.ts +3 -2
  303. package/test/if/components/temp/{IfAfterIf-client-f6bb64b0dda769d8e7a2e81a8bc37dc3c3113e4d.ts → IfAfterIf-client-a489daa5b961ed9da71418fdbb1665b6ba39f1b7.ts} +12 -4
  304. package/test/if/components/temp/{IfAfterIf-server-76bbc2178815e296b81865693aefe8de20f6dac9.ts → IfAfterIf-server-243736e666e7d77d3f8553a1682734555f5ffd22.ts} +3 -2
  305. package/test/if/components/temp/{IfElse-client-46690dea26d700b1cde101f33c12cc404671ac12.ts → IfElse-client-4c71642f412d5dd2f45729eafb7e974781dbe011.ts} +12 -4
  306. package/test/if/components/temp/{IfElse-server-70dfdfc697531324af41de11c3c0e3c8cd1fd89e.ts → IfElse-server-64c055182b327504ee71d1f1d44cfccf48be350d.ts} +3 -2
  307. package/test/if/components/temp/{IfElseIf-client-24b71b4710bc0a155f46d44656f14d4cc134d217.ts → IfElseIf-client-98d50d6f40c2385c4ef4fc02329f9d2e182c76c4.ts} +15 -5
  308. package/test/if/components/temp/{IfElseIf-server-dfaf8f0a0afea900b547d000a068328bb3755133.ts → IfElseIf-server-79788b13af905175f50bfa8658f2ff2af73db232.ts} +3 -2
  309. package/test/if/components/temp/{IfNested-client-42d93aa332e02a638e0adcb82b37d64c30df0b7d.ts → IfNested-client-979db97eea5b4595550b9b46f297f3fbc31796d2.ts} +18 -6
  310. package/test/if/components/temp/{IfNested-server-8ad247311e91f4b0b5b37df501191b654dfb6739.ts → IfNested-server-3c4e4b6f2162c0906cef685830219b9ea9ee985c.ts} +3 -2
  311. package/test/importComponent.ts +1 -1
  312. package/test/imports/commented-imports.ts +2 -2
  313. package/test/imports/imports.ts +2 -2
  314. package/test/imports/multiple-imports.ts +2 -2
  315. package/test/mount/components/Mount.d.ts +1 -1
  316. package/test/mount/components/output/Mount-client.ts +8 -2
  317. package/test/mount/components/output/Mount-server.ts +4 -1
  318. package/test/mount/components/temp/{Mount-client-2a25acbe52ac71618466dbc5bdd8b0a21fcb1c69.ts → Mount-client-49d8d6475336b5749fe8a17be847fd2b6cda5ccc.ts} +8 -2
  319. package/test/mount/components/temp/{Mount-server-23552a7d89c61823077d26086bff3949ee19bdbe.ts → Mount-server-e3d689cf52a4477da9aa00e2c7604110710db991.ts} +4 -1
  320. package/test/mount/mount.test.ts +0 -2
  321. package/test/mountComponent.ts +1 -1
  322. package/test/on-mount/components/OnMount.d.ts +1 -1
  323. package/test/on-mount/components/output/OnMount-client.ts +8 -2
  324. package/test/on-mount/components/output/OnMount-server.ts +4 -1
  325. package/test/on-mount/components/temp/{OnMount-client-faa4dd0b96fd60a897ab0bc41a046a3fe000a7c2.ts → OnMount-client-b2dfd41a0aaeafb3b7af14793a03e0fc3bc43aaa.ts} +8 -2
  326. package/test/on-mount/components/temp/{OnMount-server-049b2392d0c75bf829507043e2670c98953f4759.ts → OnMount-server-1758fe2b16972fca7d4b9bb49d9256fce99780eb.ts} +4 -1
  327. package/test/party/10-on-mount.test.ts +1 -1
  328. package/test/party/12-props.test.ts +1 -1
  329. package/test/party/14-slot.test.ts +1 -1
  330. package/test/party/15-slot-fallback.test.ts +1 -1
  331. package/test/party/16-context.test.ts +1 -1
  332. package/test/party/17-input-text.test.ts +1 -1
  333. package/test/party/18-input-checkbox.test.ts +1 -1
  334. package/test/party/19-input-radio.test.ts +1 -1
  335. package/test/party/20-input-select.test.ts +1 -1
  336. package/test/party/5-styling.test.ts +1 -1
  337. package/test/party/6-loop.test.ts +1 -1
  338. package/test/party/7-event-click.test.ts +1 -1
  339. package/test/party/8-dom-ref.test.ts +0 -2
  340. package/test/party/components/AnswerButton.d.ts +1 -1
  341. package/test/party/components/AnswerButtonApp.d.ts +1 -1
  342. package/test/party/components/ColorSelect.d.ts +1 -1
  343. package/test/party/components/Colors.d.ts +1 -1
  344. package/test/party/components/Counter.d.ts +1 -1
  345. package/test/party/components/CssStyle.d.ts +1 -1
  346. package/test/party/components/DoubleCount.d.ts +1 -1
  347. package/test/party/components/FunnyButton.d.ts +1 -1
  348. package/test/party/components/FunnyButtonApp.d.ts +1 -1
  349. package/test/party/components/HelloWorld.d.ts +1 -1
  350. package/test/party/components/InputFocused.d.ts +1 -1
  351. package/test/party/components/InputHello.d.ts +1 -1
  352. package/test/party/components/IsAvailable.d.ts +1 -1
  353. package/test/party/components/Name.d.ts +1 -1
  354. package/test/party/components/NameUpdate.d.ts +1 -1
  355. package/test/party/components/PageTitle.d.ts +1 -1
  356. package/test/party/components/PickPill.d.ts +1 -1
  357. package/test/party/components/Time.d.ts +1 -1
  358. package/test/party/components/TrafficLight.d.ts +1 -1
  359. package/test/party/components/UserProfile.d.ts +1 -1
  360. package/test/party/components/UserProfileApp.d.ts +1 -1
  361. package/test/party/components/UserProfileContext.d.ts +1 -1
  362. package/test/party/components/UserProfileContextApp.d.ts +1 -1
  363. package/test/party/components/output/AnswerButton-client.ts +6 -2
  364. package/test/party/components/output/AnswerButton-server.ts +3 -2
  365. package/test/party/components/output/AnswerButtonApp-client.ts +8 -3
  366. package/test/party/components/output/AnswerButtonApp-server.ts +5 -2
  367. package/test/party/components/output/ColorSelect-client.ts +11 -4
  368. package/test/party/components/output/ColorSelect-server.ts +4 -1
  369. package/test/party/components/output/Colors-client.ts +11 -4
  370. package/test/party/components/output/Colors-server.ts +4 -1
  371. package/test/party/components/output/Counter-client.ts +7 -2
  372. package/test/party/components/output/Counter-server.ts +4 -1
  373. package/test/party/components/output/CssStyle-client.ts +11 -8
  374. package/test/party/components/output/CssStyle-server.ts +6 -2
  375. package/test/party/components/output/DoubleCount-client.ts +8 -2
  376. package/test/party/components/output/DoubleCount-server.ts +4 -1
  377. package/test/party/components/output/FunnyButton-client.ts +10 -4
  378. package/test/party/components/output/FunnyButton-server.ts +3 -1
  379. package/test/party/components/output/FunnyButtonApp-client.ts +19 -5
  380. package/test/party/components/output/FunnyButtonApp-server.ts +11 -3
  381. package/test/party/components/output/HelloWorld-client.ts +8 -2
  382. package/test/party/components/output/HelloWorld-server.ts +4 -1
  383. package/test/party/components/output/InputFocused-client.ts +8 -2
  384. package/test/party/components/output/InputFocused-server.ts +4 -1
  385. package/test/party/components/output/InputHello-client.ts +7 -2
  386. package/test/party/components/output/InputHello-server.ts +4 -1
  387. package/test/party/components/output/IsAvailable-client.ts +7 -2
  388. package/test/party/components/output/IsAvailable-server.ts +4 -1
  389. package/test/party/components/output/Name-client.ts +8 -2
  390. package/test/party/components/output/Name-server.ts +4 -1
  391. package/test/party/components/output/NameUpdate-client.ts +8 -2
  392. package/test/party/components/output/NameUpdate-server.ts +4 -1
  393. package/test/party/components/output/PageTitle-client.ts +8 -2
  394. package/test/party/components/output/PageTitle-server.ts +4 -1
  395. package/test/party/components/output/PickPill-client.ts +7 -2
  396. package/test/party/components/output/PickPill-server.ts +4 -1
  397. package/test/party/components/output/Time-client.ts +8 -2
  398. package/test/party/components/output/Time-server.ts +4 -1
  399. package/test/party/components/output/TrafficLight-client.ts +16 -5
  400. package/test/party/components/output/TrafficLight-server.ts +4 -1
  401. package/test/party/components/output/UserProfile-client.ts +6 -2
  402. package/test/party/components/output/UserProfile-server.ts +3 -2
  403. package/test/party/components/output/UserProfileApp-client.ts +7 -3
  404. package/test/party/components/output/UserProfileApp-server.ts +5 -2
  405. package/test/party/components/output/UserProfileContext-client.ts +6 -2
  406. package/test/party/components/output/UserProfileContext-server.ts +3 -1
  407. package/test/party/components/output/UserProfileContextApp-client.ts +6 -2
  408. package/test/party/components/output/UserProfileContextApp-server.ts +3 -1
  409. package/test/party/components/temp/{AnswerButtonApp-client-3e03cd1d6f95f5f9300028e5f1cdd260b5e61bcc.ts → AnswerButtonApp-client-34311c2e7412807867fb6267af31a341f092bf31.ts} +8 -3
  410. package/test/party/components/temp/{AnswerButtonApp-server-5d3914c7c62fb67c51f73d78e256ee1bd7302c2d.ts → AnswerButtonApp-server-3f5071775abea24ee8830830072c6fe465fc4e56.ts} +5 -2
  411. package/test/party/components/temp/{ColorSelect-client-1897c35dcd9fd8268ae214265d0257f3f9600a84.ts → ColorSelect-client-f9fb9fa09f4729da3226d5aaf30e84cd3cd705b5.ts} +11 -4
  412. package/test/party/components/temp/{ColorSelect-server-38cf44a5b4ba0ed79dcc8395c708bda5a69d2792.ts → ColorSelect-server-3ed19eff17bf10b31d03ec507974ff913932c97a.ts} +4 -1
  413. package/test/party/components/temp/{Colors-client-03ff835fd17118c9da283df7403cd96dc3033ed2.ts → Colors-client-f124162d1dd8f0c3d37bf96c8e5f18599ae3a682.ts} +11 -4
  414. package/test/party/components/temp/{Colors-server-4a5fb2264c0a19c2b6fc270af1316042e1420444.ts → Colors-server-f9b3037a5f25979f71b5f8f3e658140be7c27920.ts} +4 -1
  415. package/test/party/components/temp/{Counter-client-f8d52c7077575f4319bd2e79bba2a6bdc1abd101.ts → Counter-client-c349710110b4afbf9593f20cfc40c162ed836079.ts} +7 -2
  416. package/test/party/components/temp/{Counter-server-11f44d1f3437878c41c0845899f0c79c7e4f7d31.ts → Counter-server-36d1137c519691f5b86a18a5c27b7cf615b7e37c.ts} +4 -1
  417. package/test/party/components/temp/{CssStyle-client-cfc3fd2cf399a204de8b5f5523b3c7fb71dff889.ts → CssStyle-client-59c0f261f67bc04f2829a0371f655d146101cec6.ts} +8 -2
  418. package/test/party/components/temp/CssStyle-server-3e58d7e2f5c381a251f593245d3d8bf4b50925ae.ts +17 -0
  419. package/test/party/components/temp/{DoubleCount-client-2dd560a563301bd6da2fdfe2219249b34d12aa51.ts → DoubleCount-client-0426f128507a8d4516ef7501cd180662112b6d1d.ts} +8 -2
  420. package/test/party/components/temp/{DoubleCount-server-30aa97d18a7bcc0b24facc3ec4f30d1c2b4ff499.ts → DoubleCount-server-40fc88156e52281b80fd6b12dd73d2469201fa29.ts} +4 -1
  421. package/test/party/components/temp/{FunnyButtonApp-client-86fbab3b909222d7fc79abd53cf782b0cf94c9ef.ts → FunnyButtonApp-client-4ed0ebf5be13ddb62d9942bac7f4b8a885ec6c50.ts} +19 -5
  422. package/test/party/components/temp/{FunnyButtonApp-server-3d4f5946eed07e638d2a423ffffb966dfa4f4258.ts → FunnyButtonApp-server-9748c9096848e643c91237c46ea09d23f1b3fa7c.ts} +11 -3
  423. package/test/party/components/temp/{HelloWorld-client-5a32a86f768cc125d5ef0ed526c73b26919433df.ts → HelloWorld-client-791e8b9a0bd4b01e87fbe70f2b28d4ac356e3624.ts} +8 -2
  424. package/test/party/components/temp/{HelloWorld-server-cbcefb2b79dbba49c8699fa0417326662a23d2d3.ts → HelloWorld-server-3c4b9a995a78d652d9220a20124c9e0d18fc7101.ts} +4 -1
  425. package/test/party/components/temp/{InputFocused-client-bdde50cb9c6bc70d4306cacda193b3ff92351ebf.ts → InputFocused-client-a543f82c8db205fb3e33c62de699cff43c668a68.ts} +8 -2
  426. package/test/party/components/temp/{InputFocused-server-a863dd8dfbe87c47de1d6d415ee7e3ea75a32a9f.ts → InputFocused-server-222f2fa7029d1cd6941a3777293a9b2d37b7295e.ts} +4 -1
  427. package/test/party/components/temp/{InputHello-client-4aaeab79a049de079052e03d619f516d3a9c0993.ts → InputHello-client-9953499de5778bb1d8aac7691129210a6098db07.ts} +7 -2
  428. package/test/party/components/temp/{InputHello-server-37755f5410442a879097449df910faf0b6288878.ts → InputHello-server-6c982438e58d3649ee3890efec636ca4590a5cdb.ts} +4 -1
  429. package/test/party/components/temp/{IsAvailable-client-e5912560c2333f37b0033188ed00c1789203b40e.ts → IsAvailable-client-929ed6c872e72b6c5243b882c6a9a0d13f6a7c47.ts} +7 -2
  430. package/test/party/components/temp/{IsAvailable-server-601e1c621e40760f8354392061ec951d1ba4f64c.ts → IsAvailable-server-a35b7ec5f111472c76aa1b67c857b169fe363594.ts} +4 -1
  431. package/test/party/components/temp/{Name-client-f314881fb1fbc4c927e8620a44e508c4acae1cf6.ts → Name-client-cb8bef7cfca1306386b65410a0bd7a8acfaed359.ts} +8 -2
  432. package/test/party/components/temp/{Name-server-2f1400f7b8f889aef984f5f4f64f51f435528e21.ts → Name-server-9da0823f748e9751e017078f39717298be232636.ts} +4 -1
  433. package/test/party/components/temp/{NameUpdate-client-abc797f7c1e00e380ef170b454f38347a5ad17d5.ts → NameUpdate-client-ebef69b0da12d640994099592ce06c7e4b5089d4.ts} +8 -2
  434. package/test/party/components/temp/{NameUpdate-server-d9915a163ea8d9fcdea76630095f5a1c38f3298f.ts → NameUpdate-server-1856bdb5e010f7d7e5e67f2a0d87ac3f92f4e0ee.ts} +4 -1
  435. package/test/party/components/temp/{PageTitle-client-89c844f5140e569cc190836da5f64d90d94daed5.ts → PageTitle-client-403645e918294e5cdeea8cb3f602e0a2642b2650.ts} +8 -2
  436. package/test/party/components/temp/{PageTitle-server-91f02c92e1a3aef3441aa0529e8e71af245fd02d.ts → PageTitle-server-4d959183b7029b6817372abd1d60a7e996baeb15.ts} +4 -1
  437. package/test/party/components/temp/{PickPill-client-ad6c2a265ed708f49cab7347b29398f83af3387f.ts → PickPill-client-f9a50a75ce63ec2ee3ac34e378e20602b93629f7.ts} +7 -2
  438. package/test/party/components/temp/{PickPill-server-30a8311db60f7e3cd8929a54ec7ab9ff4fa45281.ts → PickPill-server-49e033c5f97dd2f98e1498327e16eb9c8c9d2f66.ts} +4 -1
  439. package/test/party/components/temp/{TrafficLight-client-6a0bbdc4eb55b3189de6feecbcd775485c6f5e4e.ts → TrafficLight-client-81dd9bd9f3332533e01f6c9b271c15e5f76e1fdb.ts} +16 -5
  440. package/test/party/components/temp/{TrafficLight-server-5196e9a6a350b53e08caf0127eeed585805bc192.ts → TrafficLight-server-ed2a8640fd82cf381eee8f4fb83bb09d174a4557.ts} +4 -1
  441. package/test/party/components/temp/{UserProfileApp-client-377b64d798df3cdb22cd25c1fdb9e7c7e45c9307.ts → UserProfileApp-client-af27173415d65647cab0f30a9a4967cef0307e25.ts} +7 -3
  442. package/test/party/components/temp/{UserProfileApp-server-c98cb680c86d52e8de1ebe7ecf8a9c83c4b58d05.ts → UserProfileApp-server-6a7dbe68ee8041785cef50fb15a9e5ba475e120f.ts} +5 -2
  443. package/test/party/components/temp/{UserProfileContextApp-client-fb3c86949640d30bb5abce8cc54be3f193b88942.ts → UserProfileContextApp-client-7ea7d90a35894408757aef3e935d3a8badf93aea.ts} +6 -2
  444. package/test/party/components/temp/{UserProfileContextApp-server-816f3848764aee3cb9edda5b4e1babe11a3f8958.ts → UserProfileContextApp-server-90290c770529d7211eabf29e7d0fe868aa856b52.ts} +3 -1
  445. package/test/props/props.test.ts +1 -1
  446. package/test/replace/components/Replace.d.ts +1 -1
  447. package/test/replace/components/output/Replace-client.ts +9 -3
  448. package/test/replace/components/output/Replace-server.ts +3 -2
  449. package/test/replace/components/temp/{Replace-client-a41872410e8a44ab1a1ae7efb26657519580b892.ts → Replace-client-ea4ddc73c71181fb6ef3c6f5bf61b0b9e017f00a.ts} +9 -3
  450. package/test/replace/components/temp/{Replace-server-c3a2e0c6304ca4cc5bf77b24426b5996e68d0142.ts → Replace-server-30eb1ad796516fa4d310798a9c8a6811ec13cbd9.ts} +3 -2
  451. package/test/run/watch-defined-property.test.ts +1 -1
  452. package/test/run/watch-effect.test.ts +1 -1
  453. package/test/run/watch-function.test.ts +1 -1
  454. package/test/run/watch-getter.test.ts +1 -1
  455. package/test/run/watch-set-same-value.test.ts +1 -1
  456. package/test/script/script-with-comments.test.ts +2 -2
  457. package/test/script/script-with-strings.test.ts +2 -2
  458. package/test/script/script.test.ts +2 -2
  459. package/test/slots/components/Article.d.ts +1 -1
  460. package/test/slots/components/Basic.d.ts +1 -1
  461. package/test/slots/components/Header.d.ts +1 -1
  462. package/test/slots/components/Let.d.ts +1 -1
  463. package/test/slots/components/List.d.ts +1 -1
  464. package/test/slots/components/Named.d.ts +1 -1
  465. package/test/slots/components/Unused.d.ts +1 -1
  466. package/test/slots/components/output/Article-client.ts +9 -5
  467. package/test/slots/components/output/Article-server.ts +3 -1
  468. package/test/slots/components/output/Basic-client.ts +19 -5
  469. package/test/slots/components/output/Basic-server.ts +11 -3
  470. package/test/slots/components/output/Header-client.ts +10 -4
  471. package/test/slots/components/output/Header-server.ts +3 -1
  472. package/test/slots/components/output/Let-client.ts +19 -6
  473. package/test/slots/components/output/Let-server.ts +11 -5
  474. package/test/slots/components/output/List-client.ts +11 -6
  475. package/test/slots/components/output/List-server.ts +4 -4
  476. package/test/slots/components/output/Named-client.ts +29 -7
  477. package/test/slots/components/output/Named-server.ts +17 -4
  478. package/test/slots/components/output/Unused-client.ts +6 -2
  479. package/test/slots/components/output/Unused-server.ts +4 -1
  480. package/test/slots/components/temp/{Basic-client-7c3d966d05bf02f2efb4d2defd01106c4a875f0e.ts → Basic-client-c82bc3c5e10f2f2c1869347435262c8f3039e32f.ts} +19 -5
  481. package/test/slots/components/temp/{Basic-server-10598ecc3722031c5b179112ebb78e573ddb995a.ts → Basic-server-21fb4f8caa3bbcae219aaef388af8c26c46fa5ce.ts} +11 -3
  482. package/test/slots/components/temp/{Let-client-f3705ad315d7a5a39b4b69d6bfd098e8306bf4b6.ts → Let-client-c54696fd1b5b859a693744722957fa960f72fad6.ts} +19 -6
  483. package/test/slots/components/temp/{Let-server-ebcf5b8bbdc8393fd6a713a40ffedcafec5de3ef.ts → Let-server-4d78ffc8741fa737f2cd915b36c0e6ec88a9146f.ts} +11 -5
  484. package/test/slots/components/temp/{Named-client-90b44efe110f9fc0d044af93f303826d2d8a92cb.ts → Named-client-0626b2f0911f77f5edcfda82f9751bcbc37b7641.ts} +29 -7
  485. package/test/slots/components/temp/{Named-server-9be98d66310a50762580d958c4f8839bd72904ef.ts → Named-server-e802f901223d697c7fd0a1a234ce1930af1b4b3f.ts} +17 -4
  486. package/test/slots/components/temp/{Unused-client-0c90dd59b1bccb280d7fa66635b14017aace5e7c.ts → Unused-client-aa05465731e0d00e18189498f49c94f991e76f10.ts} +6 -2
  487. package/test/slots/components/temp/{Unused-server-76e858fffa1ff9ca6657b1820105fa5cb03c8cdb.ts → Unused-server-00b92d14665a565f0042b1f56231f28bc38a1252.ts} +4 -1
  488. package/test/special-component/components/BigTitle.d.ts +1 -1
  489. package/test/special-component/components/Component.d.ts +1 -1
  490. package/test/special-component/components/SmallTitle.d.ts +1 -1
  491. package/test/special-component/components/output/BigTitle-client.ts +7 -3
  492. package/test/special-component/components/output/BigTitle-server.ts +3 -1
  493. package/test/special-component/components/output/Component-client.ts +20 -7
  494. package/test/special-component/components/output/Component-server.ts +12 -5
  495. package/test/special-component/components/output/SmallTitle-client.ts +7 -3
  496. package/test/special-component/components/output/SmallTitle-server.ts +3 -1
  497. package/test/special-component/components/temp/{Component-client-7c6efd9a0218c7ee02265c741321b30507d7d65e.ts → Component-client-3cc84b23def8830b8ef441bde0f03b3e9718196a.ts} +20 -7
  498. package/test/special-component/components/temp/{Component-server-8be4db515d02637a9c3ae367ecd9a308c1aefacb.ts → Component-server-5dc597784ea1fe45ac2cfb21305cf2187a3868e8.ts} +12 -5
  499. package/test/special-element/components/Element.d.ts +1 -1
  500. package/test/special-element/components/output/Element-client.ts +10 -4
  501. package/test/special-element/components/output/Element-server.ts +4 -3
  502. package/test/special-element/components/temp/{Element-client-6b3502e6ef5e1d2a804e527d3eb697c070e8bb21.ts → Element-client-0ab8992a8e914c7e190cddac790585fef9be1c9f.ts} +10 -4
  503. package/test/special-element/components/temp/{Element-server-f195e538a133b7a4af228a1eaa03e02f0bd7d67d.ts → Element-server-ddb0170df4a3f369577ca7e9768e5fe799f14dfb.ts} +4 -3
  504. package/test/special-head/components/Head.d.ts +1 -1
  505. package/test/special-head/components/output/Head-client.ts +8 -2
  506. package/test/special-head/components/output/Head-server.ts +4 -1
  507. package/test/special-head/components/temp/{Head-client-81055df0cf65a3cfe54b1e6043e28acc046891d1.ts → Head-client-07e8af6386d767a52667a4fdc978a335ec388302.ts} +8 -2
  508. package/test/special-head/components/temp/{Head-server-f3a4b72bef3716f3e02ebf71b8022f3d5c2af1d2.ts → Head-server-d80a0f1ee10e9942d9a631df35a24cb1cfb15555.ts} +4 -1
  509. package/test/special-head/special-head.test.ts +1 -2
  510. package/test/special-self/components/Self.d.ts +1 -1
  511. package/test/special-self/components/output/Self-client.ts +10 -4
  512. package/test/special-self/components/output/Self-server.ts +4 -3
  513. package/test/special-self/components/temp/{Self-client-7ab817163886fba5c8604dc54111335d4af52d0b.ts → Self-client-3982f174954034643c4d17cfc66d7f10bf1d4df6.ts} +10 -4
  514. package/test/special-self/components/temp/{Self-server-d605191b8649ba5bc515a92d37f97f872ab327c3.ts → Self-server-97ffbdaae47f4463034e1d318a8073d078ff138f.ts} +4 -3
  515. package/test/special-self/special-self.test.ts +1 -1
  516. package/test/style/components/Style.d.ts +1 -1
  517. package/test/style/components/output/Style-client.ts +9 -4
  518. package/test/style/components/output/Style-server.ts +4 -3
  519. package/test/style/components/temp/{Style-client-038dddfc74f14e95d17936a3fd6732584d85fcaa.ts → Style-client-085517e82bdd015c86f4c2577447c6a2791cf656.ts} +9 -4
  520. package/test/style/components/temp/{Style-server-7529b8cdc2f761b80747f66533163551cae1214d.ts → Style-server-b2615163fbafdcb2a5d4155120edf2f66ef3bba6.ts} +4 -3
  521. package/test/style/parse.test.ts +2 -2
  522. package/test/switch/components/Switch.d.ts +1 -1
  523. package/test/switch/components/output/Switch-client.ts +15 -5
  524. package/test/switch/components/output/Switch-server.ts +3 -2
  525. package/test/switch/components/temp/{Switch-client-4136875ddb11497e2d95caf2359abee086aaa75c.ts → Switch-client-4c4adac7308795807517e66bc268a38f87df6bda.ts} +15 -5
  526. package/test/switch/components/temp/{Switch-server-9b74d83bdb27f06d3fcf7e6a6ce82036aa47f874.ts → Switch-server-21fcac2b02c6071136bb0dc394babd27e454d2c9.ts} +3 -2
  527. package/test/template/basic-file.test.ts +2 -2
  528. package/test/template/empty-file.test.ts +2 -2
  529. package/test/template/errors.test.ts +1 -1
  530. package/test/watch/watch-nested-object.test.ts +3 -1
  531. package/test/watch/watch-null-object.test.ts +1 -1
  532. package/test/watch/watch-null-property.test.ts +1 -1
  533. package/test/watch/watch-simple-object.test.ts +2 -1
  534. package/test/watch/watch-undefined-object.test.ts +1 -1
  535. package/test/watch/watch-undefined-property.test.ts +1 -1
  536. package/test/watch-array/ArrayState.ts +2 -2
  537. package/test/watch-array/array-all-functions-unkeyed.test.ts +1 -2
  538. package/test/watch-array/array-all-functions.test.ts +1 -2
  539. package/test/watch-array/array-empty.test.ts +3 -5
  540. package/test/watch-array/array-entries.test.ts +1 -2
  541. package/test/watch-array/array-indexes.test.ts +1 -2
  542. package/test/watch-array/array-pop.test.ts +1 -2
  543. package/test/watch-array/array-push.test.ts +1 -2
  544. package/test/watch-array/array-reassign.test.ts +1 -1
  545. package/test/watch-array/array-reverse.test.ts +1 -2
  546. package/test/watch-array/array-set-object.test.ts +1 -2
  547. package/test/watch-array/array-set-property.test.ts +1 -2
  548. package/test/watch-array/array-shift.test.ts +1 -2
  549. package/test/watch-array/array-sort.test.ts +1 -2
  550. package/test/watch-array/array-splice-add.test.ts +1 -2
  551. package/test/watch-array/array-splice-delete-all.test.ts +1 -2
  552. package/test/watch-array/array-splice-delete-and-add.test.ts +1 -1
  553. package/test/watch-array/array-splice-delete-end.test.ts +1 -2
  554. package/test/watch-array/array-splice-delete.test.ts +1 -1
  555. package/test/watch-array/array-swap.test.ts +1 -2
  556. package/test/watch-array/array-unshift.test.ts +1 -2
  557. package/test/watch-array/array-update-assignment.test.ts +1 -2
  558. package/test/watch-array/components/Array.d.ts +1 -1
  559. package/test/watch-array/components/ArrayEntries.d.ts +1 -1
  560. package/test/watch-array/components/ArrayIndexes.d.ts +1 -1
  561. package/test/watch-array/components/ArrayUnkeyed.d.ts +1 -1
  562. package/test/watch-array/components/output/Array-client.ts +11 -5
  563. package/test/watch-array/components/output/Array-server.ts +4 -3
  564. package/test/watch-array/components/output/ArrayEntries-client.ts +11 -5
  565. package/test/watch-array/components/output/ArrayEntries-server.ts +4 -3
  566. package/test/watch-array/components/output/ArrayIndexes-client.ts +11 -5
  567. package/test/watch-array/components/output/ArrayIndexes-server.ts +4 -3
  568. package/test/watch-array/components/output/ArrayUnkeyed-client.ts +11 -5
  569. package/test/watch-array/components/output/ArrayUnkeyed-server.ts +4 -3
  570. package/test/watch-array/components/temp/{Array-client-7b40de2b50a8603f24654d0db984ff3b555e4104.ts → Array-client-b29a42f88c2a2f37b3a86bdb9535e20a487887e1.ts} +11 -5
  571. package/test/watch-array/components/temp/{Array-server-02515e92b822f1198b350264d81fe1f2a0564824.ts → Array-server-ced54fc7e63196f9c24c2e55b27bfe6cf7821dcb.ts} +4 -3
  572. package/test/watch-array/components/temp/{ArrayEntries-client-ec475fe4e32bce404c26d32ec676020f801b9cc2.ts → ArrayEntries-client-6289890758b1f6b462a74417e0b9e2e46d946ccd.ts} +11 -5
  573. package/test/watch-array/components/temp/{ArrayEntries-server-0ad3ea5e862952524f136e97a93646ee0cac1c26.ts → ArrayEntries-server-0429a18ffbe39afe87612889a3010c3fcaa601dc.ts} +4 -3
  574. package/test/watch-array/components/temp/{ArrayIndexes-client-50b5e551cd07fab2e3e2f01edfd101dd45b01063.ts → ArrayIndexes-client-fe4b1c49f442b3e5411f331c52ae6c5ab38f2b2d.ts} +11 -5
  575. package/test/watch-array/components/temp/{ArrayIndexes-server-692be8d9d103af14233ab4818e5b4c79b5c38f18.ts → ArrayIndexes-server-20c01f10832f035b007f85a423778934d51a703a.ts} +4 -3
  576. package/test/watch-array/components/temp/{ArrayUnkeyed-client-f62a5b1af81b12bf106a58a98ac392e0daee9501.ts → ArrayUnkeyed-client-3fffe2ce749ee84e0730130bfd730d432e3c4e12.ts} +11 -5
  577. package/test/watch-array/components/temp/{ArrayUnkeyed-server-e909a5b553fc692bb4b8a794382c0961ae13f4e6.ts → ArrayUnkeyed-server-0ab804a5e7bf5b47594d85adab79735e89a3939d.ts} +4 -3
  578. package/test/watch-object/components/Watched.d.ts +1 -1
  579. package/test/watch-object/components/output/Watched-client.ts +6 -2
  580. package/test/watch-object/components/output/Watched-server.ts +3 -2
  581. package/test/watch-object/components/temp/{Watched-client-7330a12b5cac7537b2b39ead6dad4eb3595cd099.ts → Watched-client-cb293038cd0a39043d05639c624a17d512419c25.ts} +6 -2
  582. package/test/watch-object/components/temp/{Watched-server-9db79c195516fc2c69c1170c8e5b40d6186cca0b.ts → Watched-server-4884585cf4f50493a70631909f2230153531208e.ts} +3 -2
  583. package/test/watch-object/watch-object.test.ts +0 -1
  584. package/tsconfig.json +2 -2
  585. package/test/on-mount/components/temp/OnMount-server-a9748dbc5bb7cadcacb94b4cabe8009d7b116989.ts +0 -7
  586. package/test/party/components/temp/CssStyle-server-a07cf02faad80642252776e2a7ad774376343de3.ts +0 -14
  587. package/test/special-element/components/temp/Element-server-c22cdebcbd076d32bb27f26e698054f36718b8de.ts +0 -9
  588. package/test/special-head/components/temp/Head-server-279cfa547d7ba593f57c0a3a9c3edca92ebb5118.ts +0 -11
  589. package/tsconfig-check.json +0 -5
@@ -1,10 +1,10 @@
1
1
  import isSpace from "../../parse/utils/isSpace";
2
- import type ControlNode from "../../types/nodes/ControlNode";
3
- import type ElementNode from "../../types/nodes/ElementNode";
4
- import type Fragment from "../../types/nodes/Fragment";
5
- import type RootNode from "../../types/nodes/RootNode";
6
- import type TemplateNode from "../../types/nodes/TemplateNode";
7
- import type TextNode from "../../types/nodes/TextNode";
2
+ import { type ControlNode } from "../../types/nodes/ControlNode";
3
+ import { type ElementNode } from "../../types/nodes/ElementNode";
4
+ import { type Fragment } from "../../types/nodes/Fragment";
5
+ import { type RootNode } from "../../types/nodes/RootNode";
6
+ import { type TemplateNode } from "../../types/nodes/TemplateNode";
7
+ import { type TextNode } from "../../types/nodes/TextNode";
8
8
  import isControlNode from "../../types/nodes/isControlNode";
9
9
  import isElementNode from "../../types/nodes/isElementNode";
10
10
  import isTextNode from "../../types/nodes/isTextNode";
@@ -13,7 +13,7 @@ import trimQuotes from "../../utils/trimQuotes";
13
13
  import isReactive from "../utils/isReactive";
14
14
  import isReactiveAttribute from "../utils/isReactiveAttribute";
15
15
  import nextVarName from "../utils/nextVarName";
16
- import type BuildStatus from "./BuildStatus";
16
+ import { type BuildStatus } from "./BuildStatus";
17
17
  import buildNode from "./buildNode";
18
18
 
19
19
  interface VariablePath {
@@ -74,7 +74,7 @@ export default function buildFragment(
74
74
  status.imports.add("t_fragment");
75
75
  const fragmentText = fragment.text.replaceAll("`", "\\`").replaceAll(/\s+/g, " ");
76
76
  b.append(
77
- `const ${fragmentName} = t_fragment($parent.ownerDocument, t_fragments, ${fragment.number}, \`${fragmentText}\`);`,
77
+ `const ${fragmentName} = t_fragment($parent.ownerDocument!, t_fragments, ${fragment.number}, \`${fragmentText}\`);`,
78
78
  );
79
79
  let fragmentPath = { parent: null, type: "fragment", children: [] };
80
80
  let varPaths = new Map<string, string>();
@@ -120,6 +120,10 @@ function maybeAddRootNodeDeclaration(
120
120
  status.imports.add("t_root");
121
121
  const rootName = `t_root_${fragment.number}`;
122
122
  const rootPath = `t_root(${fragmentName})`;
123
+ // HACK: We don't know whether this variable will be used by other child
124
+ // nodes, so we have to create it regardless and ignore the error if
125
+ // it's not used -- maybe we could be smarter about this
126
+ b.append("// @ts-ignore");
123
127
  b.append(`const ${rootName} = ${rootPath};`);
124
128
  varPaths.set(rootPath, rootName);
125
129
  //b.append(`console.log("${rootName}", ${rootName}, ${rootName}.textContent);`);
@@ -380,6 +384,10 @@ function declareElementFragmentVars(
380
384
  if (node.tagName === ":element") {
381
385
  b.append(`let ${node.varName} = ${varPath} as ${elementTypeName(node)};`);
382
386
  } else {
387
+ // HACK: Not great
388
+ if (topLevel && lastChild) {
389
+ b.append("// @ts-ignore");
390
+ }
383
391
  b.append(`const ${node.varName} = ${varPath} as ${elementTypeName(node)};`);
384
392
  }
385
393
  //b.append(`console.log("${node.varName}", ${node.varName}, ${node.varName}.textContent);`);
@@ -487,6 +495,10 @@ function declareTextFragmentVars(
487
495
  if (status.options?.useCreateElement) {
488
496
  b.append(`let ${node.varName};`);
489
497
  } else {
498
+ // HACK: Not great
499
+ if (topLevel && lastChild) {
500
+ b.append("// @ts-ignore");
501
+ }
490
502
  b.append(`const ${node.varName} = ${varPath};`);
491
503
  //b.append(`console.log("${node.varName}", ${node.varName}, ${node.varName}.textContent);`);
492
504
  }
@@ -1,13 +1,13 @@
1
1
  import { ANCHOR_COMMENT } from "../../types/comments";
2
- import type ControlNode from "../../types/nodes/ControlNode";
3
- import type ElementNode from "../../types/nodes/ElementNode";
4
- import type Fragment from "../../types/nodes/Fragment";
5
- import type RootNode from "../../types/nodes/RootNode";
6
- import type TemplateNode from "../../types/nodes/TemplateNode";
7
- import type TextNode from "../../types/nodes/TextNode";
2
+ import { type ControlNode } from "../../types/nodes/ControlNode";
3
+ import { type ElementNode } from "../../types/nodes/ElementNode";
4
+ import { type Fragment } from "../../types/nodes/Fragment";
5
+ import { type RootNode } from "../../types/nodes/RootNode";
6
+ import { type TemplateNode } from "../../types/nodes/TemplateNode";
7
+ import { type TextNode } from "../../types/nodes/TextNode";
8
8
  import Builder from "../../utils/Builder";
9
9
  import isReactive from "../utils/isReactive";
10
- import type BuildStatus from "./BuildStatus";
10
+ import { type BuildStatus } from "./BuildStatus";
11
11
 
12
12
  /**
13
13
  * Builds the HTML template text for all of the fragments in a component
@@ -1,6 +1,6 @@
1
- import type ElementNode from "../../types/nodes/ElementNode";
1
+ import { type ElementNode } from "../../types/nodes/ElementNode";
2
2
  import Builder from "../../utils/Builder";
3
- import type BuildStatus from "./BuildStatus";
3
+ import { type BuildStatus } from "./BuildStatus";
4
4
  import buildNode from "./buildNode";
5
5
 
6
6
  export default function buildHeadNode(node: ElementNode, status: BuildStatus, b: Builder) {
@@ -1,16 +1,10 @@
1
- import type ControlNode from "../../types/nodes/ControlNode";
1
+ import { type ControlNode } from "../../types/nodes/ControlNode";
2
2
  import Builder from "../../utils/Builder";
3
3
  import nextVarName from "../utils/nextVarName";
4
- import type BuildStatus from "./BuildStatus";
4
+ import { type BuildStatus } from "./BuildStatus";
5
5
  import buildAddFragment from "./buildAddFragment";
6
6
 
7
- export default function buildHtmlNode(
8
- node: ControlNode,
9
- status: BuildStatus,
10
- b: Builder,
11
- parentName: string,
12
- anchorName: string,
13
- ) {
7
+ export default function buildHtmlNode(node: ControlNode, status: BuildStatus, b: Builder) {
14
8
  const htmlAnchorName = node.varName!;
15
9
  const htmlParentName = node.parentName || htmlAnchorName + ".parentNode";
16
10
  const htmlRangeName = nextVarName("html_range", status);
@@ -1,21 +1,15 @@
1
- import type ControlNode from "../../types/nodes/ControlNode";
1
+ import { type ControlNode } from "../../types/nodes/ControlNode";
2
2
  import isControlNode from "../../types/nodes/isControlNode";
3
3
  import Builder from "../../utils/Builder";
4
4
  import nextVarName from "../utils/nextVarName";
5
- import type BuildStatus from "./BuildStatus";
5
+ import { type BuildStatus } from "./BuildStatus";
6
6
  import buildAddFragment from "./buildAddFragment";
7
7
  import buildFragment from "./buildFragment";
8
8
  import buildNode from "./buildNode";
9
9
 
10
10
  // TODO: Are there too many branches for ifs etc?
11
11
 
12
- export default function buildIfNode(
13
- node: ControlNode,
14
- status: BuildStatus,
15
- b: Builder,
16
- parentName: string,
17
- anchorName: string,
18
- ) {
12
+ export default function buildIfNode(node: ControlNode, status: BuildStatus, b: Builder) {
19
13
  const ifAnchorName = node.varName!;
20
14
  const ifParentName = node.parentName || ifAnchorName + ".parentNode";
21
15
  const ifRangeName = nextVarName("if_range", status);
@@ -1,22 +1,17 @@
1
1
  import Builder from "../../utils/Builder";
2
- import type BuildStatus from "./BuildStatus";
2
+ import { type BuildStatus } from "./BuildStatus";
3
+ import replaceForVarNames from "./replaceForVarNames";
3
4
 
4
- export default function buildRun(
5
+ export default function buildMount(
5
6
  functionName: string,
6
7
  functionBody: string,
7
8
  status: BuildStatus,
8
9
  b: Builder,
9
10
  ) {
11
+ functionBody = replaceForVarNames(functionBody, status);
12
+
10
13
  status.imports.add("$mount");
11
14
  b.append(`$mount(function ${functionName}() {`);
12
- // HACK: If a value from a for loop is used in the function body,
13
- // get it from the loop data to trigger an update when it is changed
14
- for (let varName of status.forVarNames) {
15
- functionBody = functionBody.replaceAll(
16
- new RegExp(`([\\s\\(\\[])${varName}([\\s\\.\\(\\)\\[\\];])`, "g"),
17
- `$1t_item.data.${varName}$2`,
18
- );
19
- }
20
15
  b.append(functionBody);
21
16
  b.append("});");
22
17
  }
@@ -1,10 +1,10 @@
1
- import type ControlNode from "../../types/nodes/ControlNode";
2
- import type ElementNode from "../../types/nodes/ElementNode";
3
- import type RootNode from "../../types/nodes/RootNode";
4
- import type TemplateNode from "../../types/nodes/TemplateNode";
5
- import type TextNode from "../../types/nodes/TextNode";
1
+ import { type ControlNode } from "../../types/nodes/ControlNode";
2
+ import { type ElementNode } from "../../types/nodes/ElementNode";
3
+ import { type RootNode } from "../../types/nodes/RootNode";
4
+ import { type TemplateNode } from "../../types/nodes/TemplateNode";
5
+ import { type TextNode } from "../../types/nodes/TextNode";
6
6
  import Builder from "../../utils/Builder";
7
- import type BuildStatus from "./BuildStatus";
7
+ import { type BuildStatus } from "./BuildStatus";
8
8
  import buildComponentNode from "./buildComponentNode";
9
9
  import buildControlNode from "./buildControlNode";
10
10
  import buildElementNode from "./buildElementNode";
@@ -33,23 +33,23 @@ export default function buildNode(
33
33
  break;
34
34
  }
35
35
  case "control": {
36
- buildControlNode(node as ControlNode, status, b, parentName, anchorName);
36
+ buildControlNode(node as ControlNode, status, b);
37
37
  break;
38
38
  }
39
39
  case "component": {
40
- buildComponentNode(node as ElementNode, status, b, parentName, anchorName, root);
40
+ buildComponentNode(node as ElementNode, status, b, root);
41
41
  break;
42
42
  }
43
43
  case "element": {
44
- buildElementNode(node as ElementNode, status, b, parentName, anchorName, root);
44
+ buildElementNode(node as ElementNode, status, b, parentName, root);
45
45
  break;
46
46
  }
47
47
  case "text": {
48
- buildTextNode(node as TextNode, status, b, parentName, anchorName);
48
+ buildTextNode(node as TextNode, status, b);
49
49
  break;
50
50
  }
51
51
  case "special": {
52
- buildSpecialNode(node as ElementNode, status, b, parentName, anchorName, root);
52
+ buildSpecialNode(node as ElementNode, status, b, parentName, root);
53
53
  break;
54
54
  }
55
55
  default: {
@@ -1,18 +1,12 @@
1
- import type ControlNode from "../../types/nodes/ControlNode";
1
+ import { type ControlNode } from "../../types/nodes/ControlNode";
2
2
  import Builder from "../../utils/Builder";
3
3
  import nextVarName from "../utils/nextVarName";
4
- import type BuildStatus from "./BuildStatus";
4
+ import { type BuildStatus } from "./BuildStatus";
5
5
  import buildAddFragment from "./buildAddFragment";
6
6
  import buildFragment from "./buildFragment";
7
7
  import buildNode from "./buildNode";
8
8
 
9
- export default function buildReplaceNode(
10
- node: ControlNode,
11
- status: BuildStatus,
12
- b: Builder,
13
- parentName: string,
14
- anchorName: string,
15
- ) {
9
+ export default function buildReplaceNode(node: ControlNode, status: BuildStatus, b: Builder) {
16
10
  const replaceAnchorName = node.varName!;
17
11
  const replaceParentName = node.parentName || replaceAnchorName + ".parentNode";
18
12
  const replaceRangeName = nextVarName("replace_range", status);
@@ -1,6 +1,6 @@
1
- import type RootNode from "../../types/nodes/RootNode";
1
+ import { type RootNode } from "../../types/nodes/RootNode";
2
2
  import Builder from "../../utils/Builder";
3
- import type BuildStatus from "./BuildStatus";
3
+ import { type BuildStatus } from "./BuildStatus";
4
4
  import buildAddFragment from "./buildAddFragment";
5
5
  import buildFragment from "./buildFragment";
6
6
  import buildNode from "./buildNode";
@@ -1,5 +1,6 @@
1
1
  import Builder from "../../utils/Builder";
2
- import type BuildStatus from "./BuildStatus";
2
+ import { type BuildStatus } from "./BuildStatus";
3
+ import replaceForVarNames from "./replaceForVarNames";
3
4
 
4
5
  export default function buildRun(
5
6
  functionName: string,
@@ -7,16 +8,10 @@ export default function buildRun(
7
8
  status: BuildStatus,
8
9
  b: Builder,
9
10
  ) {
11
+ functionBody = replaceForVarNames(functionBody, status);
12
+
10
13
  status.imports.add("$run");
11
14
  b.append(`$run(function ${functionName}() {`);
12
- // HACK: If a value from a for loop is used in the function body,
13
- // get it from the loop data to trigger an update when it is changed
14
- for (let varName of status.forVarNames) {
15
- functionBody = functionBody.replaceAll(
16
- new RegExp(`([\\s\\(\\[])${varName}([\\s\\.\\(\\)\\[\\];])`, "g"),
17
- `$1t_item.data.${varName}$2`,
18
- );
19
- }
20
15
  b.append(functionBody);
21
16
  b.append("});");
22
17
  }
@@ -1,4 +1,4 @@
1
- import type ControlNode from "../../types/nodes/ControlNode";
1
+ import { type ControlNode } from "../../types/nodes/ControlNode";
2
2
  import Builder from "../../utils/Builder";
3
3
 
4
4
  export default function buildScriptNode(node: ControlNode, b: Builder) {
@@ -1,23 +1,17 @@
1
- import type ElementNode from "../../types/nodes/ElementNode";
1
+ import { type ElementNode } from "../../types/nodes/ElementNode";
2
2
  import isSpecialNode from "../../types/nodes/isSpecialNode";
3
3
  import Builder from "../../utils/Builder";
4
4
  import trimQuotes from "../../utils/trimQuotes";
5
5
  import isFullyReactive from "../utils/isFullyReactive";
6
6
  import isReactive from "../utils/isReactive";
7
7
  import nextVarName from "../utils/nextVarName";
8
- import type BuildStatus from "./BuildStatus";
8
+ import { type BuildStatus } from "./BuildStatus";
9
9
  import buildAddFragment from "./buildAddFragment";
10
10
  import buildFragment from "./buildFragment";
11
11
  import buildNode from "./buildNode";
12
12
  import buildRun from "./buildRun";
13
13
 
14
- export default function buildSlotNode(
15
- node: ElementNode,
16
- status: BuildStatus,
17
- b: Builder,
18
- parentName: string,
19
- anchorName: string,
20
- ) {
14
+ export default function buildSlotNode(node: ElementNode, status: BuildStatus, b: Builder) {
21
15
  // If there's a slot, build that, otherwise build the default nodes
22
16
  let slotName = node.attributes.find((a) => a.name === "name")?.value;
23
17
  slotName = slotName ? trimQuotes(slotName) : "_";
@@ -59,9 +53,13 @@ export default function buildSlotNode(
59
53
  const slotAnchorName = node.varName!;
60
54
 
61
55
  b.append(`if ($slots && $slots["${slotName}"]) {`);
62
- b.append(
63
- `$slots["${slotName}"](${slotParentName}, ${slotAnchorName}, ${slotHasProps ? propsName : "undefined"}, $context)`,
64
- );
56
+ let params = [
57
+ slotParentName,
58
+ slotAnchorName,
59
+ slotHasProps ? propsName : "undefined",
60
+ status.contextProps.length ? "$context" : "undefined",
61
+ ];
62
+ b.append(`$slots["${slotName}"](${params.join(", ")})`);
65
63
 
66
64
  // TODO: Maybe not if there's only a single space node?
67
65
  const fill = node.children.find((c) => isSpecialNode(c) && c.tagName === ":fill");
@@ -1,6 +1,6 @@
1
- import type ElementNode from "../../types/nodes/ElementNode";
1
+ import { type ElementNode } from "../../types/nodes/ElementNode";
2
2
  import Builder from "../../utils/Builder";
3
- import type BuildStatus from "./BuildStatus";
3
+ import { type BuildStatus } from "./BuildStatus";
4
4
  import buildComponentNode from "./buildComponentNode";
5
5
  import buildElementNode from "./buildElementNode";
6
6
  import buildHeadNode from "./buildHeadNode";
@@ -11,20 +11,19 @@ export default function buildSpecialNode(
11
11
  status: BuildStatus,
12
12
  b: Builder,
13
13
  parentName: string,
14
- anchorName: string,
15
14
  root = false,
16
15
  ) {
17
16
  switch (node.tagName) {
18
17
  case ":slot": {
19
- buildSlotNode(node, status, b, parentName, anchorName);
18
+ buildSlotNode(node, status, b);
20
19
  break;
21
20
  }
22
21
  case ":element": {
23
- buildElementNode(node, status, b, parentName, anchorName, root);
22
+ buildElementNode(node, status, b, parentName, root);
24
23
  break;
25
24
  }
26
25
  case ":component": {
27
- buildComponentNode(node, status, b, parentName, anchorName, root);
26
+ buildComponentNode(node, status, b, root);
28
27
  break;
29
28
  }
30
29
  case ":head": {
@@ -1,7 +1,6 @@
1
- import type Template from "../../../types/Template";
2
- import type Attribute from "../../types/nodes/Attribute";
3
- import Style from "../../types/styles/Style";
4
- import type StyleBlock from "../../types/styles/StyleBlock";
1
+ import { type Attribute } from "../../types/nodes/Attribute";
2
+ import { type Style } from "../../types/styles/Style";
3
+ import { type StyleBlock } from "../../types/styles/StyleBlock";
5
4
  import Builder from "../../utils/Builder";
6
5
 
7
6
  export default function buildStyles(style: Style, styleHash: string): string {
@@ -1,19 +1,13 @@
1
- import type ControlNode from "../../types/nodes/ControlNode";
1
+ import { type ControlNode } from "../../types/nodes/ControlNode";
2
2
  import isControlNode from "../../types/nodes/isControlNode";
3
3
  import Builder from "../../utils/Builder";
4
4
  import nextVarName from "../utils/nextVarName";
5
- import type BuildStatus from "./BuildStatus";
5
+ import { type BuildStatus } from "./BuildStatus";
6
6
  import buildAddFragment from "./buildAddFragment";
7
7
  import buildFragment from "./buildFragment";
8
8
  import buildNode from "./buildNode";
9
9
 
10
- export default function buildSwitchNode(
11
- node: ControlNode,
12
- status: BuildStatus,
13
- b: Builder,
14
- parentName: string,
15
- anchorName: string,
16
- ) {
10
+ export default function buildSwitchNode(node: ControlNode, status: BuildStatus, b: Builder) {
17
11
  const switchParentName = node.parentName!;
18
12
  const switchAnchorName = node.varName!;
19
13
  const switchRangeName = nextVarName("switch_range", status);
@@ -1,15 +1,9 @@
1
- import type TextNode from "../../types/nodes/TextNode";
1
+ import { type TextNode } from "../../types/nodes/TextNode";
2
2
  import Builder from "../../utils/Builder";
3
- import type BuildStatus from "./BuildStatus";
3
+ import { type BuildStatus } from "./BuildStatus";
4
4
  import buildRun from "./buildRun";
5
5
 
6
- export default function buildTextNode(
7
- node: TextNode,
8
- status: BuildStatus,
9
- b: Builder,
10
- parentName: string,
11
- anchorName: string,
12
- ) {
6
+ export default function buildTextNode(node: TextNode, status: BuildStatus, b: Builder) {
13
7
  let content = node.content || "";
14
8
 
15
9
  if (!status.preserveWhitespace) {
@@ -0,0 +1,16 @@
1
+ import type { BuildStatus } from "./BuildStatus";
2
+
3
+ /**
4
+ * Variables used within a for loop need to be retrieved from the loop data.
5
+ */
6
+ export default function replaceForVarNames(value: string, status: BuildStatus) {
7
+ // HACK: If a value from a for loop is used in the function body,
8
+ // get it from the loop data to trigger an update when it is changed
9
+ for (let varName of status.forVarNames) {
10
+ value = value.replaceAll(
11
+ new RegExp(`([\\s\\(\\[\\{])${varName}([\\s\\.\\(\\)\\[\\]\\};])`, "g"),
12
+ `$1t_item.data.${varName}$2`,
13
+ );
14
+ }
15
+ return value;
16
+ }
@@ -1,10 +1,10 @@
1
- import type BuildOptions from "../../../types/BuildOptions";
1
+ import { type BuildOptions } from "../../../types/BuildOptions";
2
2
 
3
- export default interface BuildServerStatus {
3
+ export type BuildServerStatus = {
4
4
  imports: Set<string>;
5
5
  output: string;
6
6
  styleHash: string;
7
7
  varNames: Record<string, number>;
8
8
  preserveWhitespace: boolean;
9
9
  options?: BuildOptions;
10
- }
10
+ };
@@ -3,10 +3,10 @@ import {
3
3
  HYDRATION_END_COMMENT,
4
4
  HYDRATION_START_COMMENT,
5
5
  } from "../../types/comments";
6
- import type ControlNode from "../../types/nodes/ControlNode";
6
+ import { type ControlNode } from "../../types/nodes/ControlNode";
7
7
  import isControlNode from "../../types/nodes/isControlNode";
8
8
  import Builder from "../../utils/Builder";
9
- import type BuildServerStatus from "./BuildServerStatus";
9
+ import { type BuildServerStatus } from "./BuildServerStatus";
10
10
  import buildServerNode from "./buildServerNode";
11
11
 
12
12
  export default function buildServerAwaitNode(
@@ -1,7 +1,7 @@
1
- import type BuildOptions from "../../../types/BuildOptions";
2
- import type Template from "../../../types/Template";
1
+ import { type BuildOptions } from "../../../types/BuildOptions";
2
+ import { type Template } from "../../../types/Template";
3
3
  import Builder from "../../utils/Builder";
4
- import type BuildServerStatus from "./BuildServerStatus";
4
+ import { type BuildServerStatus } from "./BuildServerStatus";
5
5
  import buildServerNode from "./buildServerNode";
6
6
 
7
7
  const importsMap: Record<string, string> = {
@@ -13,7 +13,7 @@ const importsMap: Record<string, string> = {
13
13
  t_attr: 'import { t_attr } from "${folder}";',
14
14
  t_class: 'import { t_class } from "${folder}";',
15
15
  t_style: 'import { t_style } from "${folder}";',
16
- ServerSlotRender: 'import type { ServerSlotRender } from "${folder}";',
16
+ ServerSlotRender: 'import { type ServerSlotRender } from "${folder}";',
17
17
  };
18
18
 
19
19
  export default function buildServerCode(template: Template, options?: BuildOptions): string {
@@ -61,21 +61,18 @@ function buildServerTemplate(
61
61
  b.append(script.substring(marker, i));
62
62
 
63
63
  // TODO: Support other params, like the user setting $context
64
- b.append(
65
- `${current.params || "$props?: Record<PropertyKey, any>"},
66
- $context?: Record<PropertyKey, any>,
67
- $slots?: Record<string, ServerSlotRender>`,
68
- );
64
+ let params = [
65
+ current.params ??
66
+ `${current.props?.length ? "$props" : "// @ts-ignore\n$props?"}: Record<PropertyKey, any>`,
67
+ `${current.contextProps?.length ? "" : "// @ts-ignore\n"}$context?: Record<PropertyKey, any>`,
68
+ `${current.slotProps?.length ? "" : "// @ts-ignore\n"}$slots?: Record<string, ServerSlotRender>`,
69
+ ];
70
+ b.append(params.join(",\n"));
69
71
 
70
72
  marker = i + "/* @params */".length;
71
73
  } else if (script.substring(i, i + "/* @start */".length) === "/* @start */") {
72
74
  b.append(script.substring(marker, i));
73
75
 
74
- // Make sure we've got $props if we're going to be using it
75
- if (current.props?.length) {
76
- b.append(`$props ??= {};`);
77
- }
78
-
79
76
  // Redefine $context so that any newly added properties will only be passed to children
80
77
  if (current.contextProps?.length) {
81
78
  b.append(`$context = Object.assign({}, $context);`);
@@ -1,4 +1,5 @@
1
- import type ElementNode from "../../types/nodes/ElementNode";
1
+ import { ANCHOR_COMMENT } from "../../types/comments";
2
+ import { type ElementNode } from "../../types/nodes/ElementNode";
2
3
  import isSpecialNode from "../../types/nodes/isSpecialNode";
3
4
  import Builder from "../../utils/Builder";
4
5
  import trimMatched from "../../utils/trimMatched";
@@ -6,7 +7,7 @@ import trimQuotes from "../../utils/trimQuotes";
6
7
  import isFullyReactive from "../utils/isFullyReactive";
7
8
  import isReactive from "../utils/isReactive";
8
9
  import nextVarName from "../utils/nextVarName";
9
- import type BuildServerStatus from "./BuildServerStatus";
10
+ import { type BuildServerStatus } from "./BuildServerStatus";
10
11
  import buildServerNode from "./buildServerNode";
11
12
 
12
13
  export default function buildServerComponentNode(
@@ -24,7 +25,7 @@ export default function buildServerComponentNode(
24
25
  const propsName = componentHasProps ? nextVarName("props", status) : "undefined";
25
26
  if (componentHasProps) {
26
27
  // TODO: defaults etc props
27
- b.append(`const ${propsName} = {};`);
28
+ b.append(`const ${propsName}: any = {};`);
28
29
  for (let { name, value } of node.attributes) {
29
30
  if (name.startsWith("{") && name.endsWith("}")) {
30
31
  // It's a shortcut attribute
@@ -68,14 +69,16 @@ export default function buildServerComponentNode(
68
69
  const componentHasSlots = node.children.length;
69
70
  const slotsName = componentHasSlots ? nextVarName("slots", status) : "undefined";
70
71
  if (componentHasSlots) {
71
- b.append(`const ${slotsName} = {};`);
72
+ b.append(`const ${slotsName}: Record<string, ServerSlotRender> = {};`);
72
73
  for (let slot of node.children) {
73
74
  if (isSpecialNode(slot)) {
74
75
  const nameAttribute = slot.attributes.find((a) => a.name === "name");
75
76
  const slotName = nameAttribute?.value ? trimQuotes(nameAttribute.value) : "_";
76
- b.append(
77
- `${slotsName}["${slotName}"] = ($sprops: Record<PropertyKey, any>, $context: Record<PropertyKey, any>) => {`,
78
- );
77
+ const slotParams = [
78
+ "// @ts-ignore\n$sprops?: Record<PropertyKey, any>",
79
+ "// @ts-ignore\n$context?: Record<PropertyKey, any>",
80
+ ];
81
+ b.append(`${slotsName}["${slotName}"] = (\n${slotParams.join(",\n")}\n) => {`);
79
82
  b.append(`let $output = "";`);
80
83
 
81
84
  for (let child of slot.children) {
@@ -108,4 +111,9 @@ export default function buildServerComponentNode(
108
111
  }
109
112
  b.append("");
110
113
  b.append(`$output += ${componentName}(${renderParams})`);
114
+
115
+ // If we're using a @replace to update a :component, we need another anchor comment
116
+ if (node.tagName === ":component") {
117
+ status.output += ANCHOR_COMMENT;
118
+ }
111
119
  }
@@ -1,6 +1,6 @@
1
- import type ControlNode from "../../types/nodes/ControlNode";
1
+ import { type ControlNode } from "../../types/nodes/ControlNode";
2
2
  import Builder from "../../utils/Builder";
3
- import type BuildServerStatus from "./BuildServerStatus";
3
+ import { type BuildServerStatus } from "./BuildServerStatus";
4
4
  import buildServerAwaitNode from "./buildServerAwaitNode";
5
5
  import buildServerForNode from "./buildServerForNode";
6
6
  import buildServerHtmlNode from "./buildServerHtmlNode";
@@ -27,6 +27,7 @@ export default function buildServerControlNode(
27
27
  }
28
28
  case "@switch group": {
29
29
  buildServerSwitchNode(node, status, b);
30
+ break;
30
31
  }
31
32
  case "@case":
32
33
  case "@default": {
@@ -61,7 +62,7 @@ export default function buildServerControlNode(
61
62
  break;
62
63
  }
63
64
  case "@html group": {
64
- buildServerHtmlNode(node, status, b);
65
+ buildServerHtmlNode(node, status);
65
66
  break;
66
67
  }
67
68
  case "@html": {
@@ -1,10 +1,10 @@
1
- import type ElementNode from "../../types/nodes/ElementNode";
1
+ import { type ElementNode } from "../../types/nodes/ElementNode";
2
2
  import Builder from "../../utils/Builder";
3
3
  import trimQuotes from "../../utils/trimQuotes";
4
4
  import voidTags from "../../utils/voidTags";
5
5
  import isFullyReactive from "../utils/isFullyReactive";
6
6
  import isReactive from "../utils/isReactive";
7
- import type BuildServerStatus from "./BuildServerStatus";
7
+ import { type BuildServerStatus } from "./BuildServerStatus";
8
8
  import buildServerNode from "./buildServerNode";
9
9
 
10
10
  export default function buildServerElementNode(
@@ -12,7 +12,7 @@ export default function buildServerElementNode(
12
12
  status: BuildServerStatus,
13
13
  b: Builder,
14
14
  ) {
15
- let attributes = buildElementAttributes(node, status, b);
15
+ let attributes = buildElementAttributes(node, status);
16
16
  if (attributes.length) {
17
17
  attributes = " " + attributes;
18
18
  }
@@ -39,7 +39,7 @@ export default function buildServerElementNode(
39
39
  }
40
40
  }
41
41
 
42
- function buildElementAttributes(node: ElementNode, status: BuildServerStatus, b: Builder) {
42
+ function buildElementAttributes(node: ElementNode, status: BuildServerStatus) {
43
43
  let attributes: string[] = [];
44
44
  for (let { name, value } of node.attributes) {
45
45
  if (name === "self" && node.tagName === ":element") {