@torpor/view 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/CHANGELOG.md +11 -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 +12 -15
  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 +1 -1
  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 +2 -2
  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/server/BuildServerStatus.ts +3 -3
  57. package/src/compile/build/server/buildServerAwaitNode.ts +2 -2
  58. package/src/compile/build/server/buildServerCode.ts +11 -14
  59. package/src/compile/build/server/buildServerComponentNode.ts +15 -7
  60. package/src/compile/build/server/buildServerControlNode.ts +4 -3
  61. package/src/compile/build/server/buildServerElementNode.ts +4 -4
  62. package/src/compile/build/server/buildServerForNode.ts +2 -2
  63. package/src/compile/build/server/buildServerHtmlNode.ts +3 -9
  64. package/src/compile/build/server/buildServerIfNode.ts +2 -2
  65. package/src/compile/build/server/buildServerNode.ts +7 -7
  66. package/src/compile/build/server/buildServerReplaceNode.ts +2 -2
  67. package/src/compile/build/server/buildServerRootNode.ts +2 -2
  68. package/src/compile/build/server/buildServerScriptNode.ts +1 -1
  69. package/src/compile/build/server/buildServerSlotNode.ts +3 -3
  70. package/src/compile/build/server/buildServerSpecialNode.ts +2 -2
  71. package/src/compile/build/server/buildServerSwitchNode.ts +3 -3
  72. package/src/compile/build/server/buildServerTextNode.ts +3 -4
  73. package/src/compile/build/utils/isReactiveAttribute.ts +6 -7
  74. package/src/compile/build/utils/nextVarName.ts +2 -2
  75. package/src/compile/build.ts +3 -3
  76. package/src/compile/buildType.ts +4 -8
  77. package/src/compile/parse/ParseStatus.ts +13 -6
  78. package/src/compile/parse/addSpaceElement.ts +4 -4
  79. package/src/compile/parse/parseCode.ts +6 -5
  80. package/src/compile/parse/parseControl.ts +4 -4
  81. package/src/compile/parse/parseElement.ts +10 -8
  82. package/src/compile/parse/parseImports.ts +1 -1
  83. package/src/compile/parse/parseInlineScript.ts +3 -3
  84. package/src/compile/parse/parseMarkup.ts +1 -1
  85. package/src/compile/parse/parseStyles.ts +3 -4
  86. package/src/compile/parse/parseTag.ts +3 -3
  87. package/src/compile/parse/scopeStyles.ts +3 -3
  88. package/src/compile/parse/slottifyChildNodes.ts +2 -2
  89. package/src/compile/parse/utils/accept.ts +1 -1
  90. package/src/compile/parse/utils/addError.ts +1 -1
  91. package/src/compile/parse/utils/consumeAlphaNumeric.ts +1 -1
  92. package/src/compile/parse/utils/consumeNonSpace.ts +1 -1
  93. package/src/compile/parse/utils/consumeSpace.ts +1 -1
  94. package/src/compile/parse/utils/consumeUntil.ts +1 -1
  95. package/src/compile/parse/utils/expect.ts +1 -1
  96. package/src/compile/parse.ts +1 -1
  97. package/src/compile/types/BuildResult.ts +2 -2
  98. package/src/compile/types/CompileError.ts +2 -2
  99. package/src/compile/types/Import.ts +2 -2
  100. package/src/compile/types/ParseResult.ts +4 -4
  101. package/src/compile/types/nodes/Attribute.ts +2 -2
  102. package/src/compile/types/nodes/ControlNode.ts +6 -6
  103. package/src/compile/types/nodes/ElementNode.ts +6 -6
  104. package/src/compile/types/nodes/Fragment.ts +2 -2
  105. package/src/compile/types/nodes/NodeType.ts +1 -3
  106. package/src/compile/types/nodes/OperationType.ts +1 -3
  107. package/src/compile/types/nodes/ParentNode.ts +4 -4
  108. package/src/compile/types/nodes/RootNode.ts +5 -5
  109. package/src/compile/types/nodes/TemplateNode.ts +3 -3
  110. package/src/compile/types/nodes/TextNode.ts +3 -3
  111. package/src/compile/types/nodes/isControlNode.ts +2 -2
  112. package/src/compile/types/nodes/isElementNode.ts +2 -2
  113. package/src/compile/types/nodes/isParentNode.ts +2 -2
  114. package/src/compile/types/nodes/isSpaceNode.ts +2 -2
  115. package/src/compile/types/nodes/isSpecialNode.ts +2 -2
  116. package/src/compile/types/nodes/isTextNode.ts +2 -2
  117. package/src/compile/types/styles/Attribute.ts +2 -2
  118. package/src/compile/types/styles/Style.ts +3 -3
  119. package/src/compile/types/styles/StyleBlock.ts +3 -3
  120. package/src/compile/utils/Builder.ts +0 -1
  121. package/src/compile.ts +2 -2
  122. package/src/debug/printNode.ts +2 -2
  123. package/src/index.ts +5 -5
  124. package/src/render/$mount.ts +1 -1
  125. package/src/render/$run.ts +2 -2
  126. package/src/render/$serverMount.ts +2 -2
  127. package/src/render/$serverRun.ts +2 -2
  128. package/src/render/$watch.ts +2 -2
  129. package/src/render/addAnimation.ts +1 -1
  130. package/src/render/addFragment.ts +1 -1
  131. package/src/render/applyProps.ts +1 -1
  132. package/src/render/clearRange.ts +1 -1
  133. package/src/render/context.ts +5 -5
  134. package/src/render/flushMountEffects.ts +1 -1
  135. package/src/render/getFragment.ts +0 -2
  136. package/src/render/hydrate.ts +2 -2
  137. package/src/render/hydrateRoot.ts +2 -2
  138. package/src/render/mount.ts +2 -2
  139. package/src/render/moveRange.ts +1 -1
  140. package/src/render/newListItem.ts +1 -1
  141. package/src/render/newRange.ts +1 -1
  142. package/src/render/popRange.ts +1 -1
  143. package/src/render/pushRange.ts +1 -1
  144. package/src/render/runControl.ts +2 -2
  145. package/src/render/runControlBranch.ts +1 -1
  146. package/src/render/runList.ts +3 -3
  147. package/src/render/runListItems.ts +3 -4
  148. package/src/ssr.ts +1 -1
  149. package/src/types/Animation.ts +1 -1
  150. package/src/types/BuildOptions.ts +2 -2
  151. package/src/types/Cleanup.ts +1 -3
  152. package/src/types/Component.ts +2 -4
  153. package/src/types/Effect.ts +4 -4
  154. package/src/types/ListItem.ts +3 -3
  155. package/src/types/ProxyData.ts +3 -3
  156. package/src/types/ProxyPropData.ts +3 -3
  157. package/src/types/Range.ts +3 -3
  158. package/src/types/ServerComponent.ts +2 -4
  159. package/src/types/ServerSlotRender.ts +4 -3
  160. package/src/types/SlotRender.ts +3 -5
  161. package/src/types/Template.ts +4 -4
  162. package/src/types/TemplateComponent.ts +11 -4
  163. package/src/types/WatchOptions.ts +2 -2
  164. package/src/watch/proxyGet.ts +1 -1
  165. package/src/watch/proxySet.ts +1 -1
  166. package/src/watch/removeEffect.ts +1 -1
  167. package/src/watch/runEffect.ts +1 -1
  168. package/src/watch/trackEffect.ts +1 -1
  169. package/src/watch/transferEffects.ts +1 -1
  170. package/src/watch/triggerEffects.ts +1 -1
  171. package/test/attributes/attributes.test.ts +1 -1
  172. package/test/attributes/components/Attributes.d.ts +1 -1
  173. package/test/attributes/components/output/Attributes-client.ts +8 -3
  174. package/test/attributes/components/output/Attributes-server.ts +4 -3
  175. package/test/attributes/components/temp/{Attributes-client-6a45dee9b3b1a2cce54feceb78dd18c6dcf9ea71.ts → Attributes-client-c4812cb9307eac6ff44f90f3358a1811b52c7390.ts} +8 -3
  176. package/test/attributes/components/temp/{Attributes-server-81340ff9f0a53bdd3b568cb371e5c7648adbee4f.ts → Attributes-server-a7ebed503f2169f7c900d4613531082f1023b086.ts} +4 -3
  177. package/test/attributes/parse.test.ts +2 -2
  178. package/test/await/components/Await.d.ts +1 -1
  179. package/test/await/components/output/Await-client.ts +16 -5
  180. package/test/await/components/output/Await-server.ts +4 -1
  181. package/test/await/components/temp/{Await-client-fbc4a91efad261d702579b56b5d52ef4ed3684ba.ts → Await-client-6ce3ac610ce79ae3b474c81964b715e6f3d966da.ts} +16 -5
  182. package/test/await/components/temp/{Await-server-7906b4a37d8918108ba74466a48f67c4791aadc4.ts → Await-server-06cd2a3d8c7eb5bef026ffe2fb11793becf547c2.ts} +4 -1
  183. package/test/bench/bench.bench.ts +1 -1
  184. package/test/bench/components/Bench.d.ts +1 -17
  185. package/test/bench/components/output/Bench-client.ts +87 -9
  186. package/test/bench/components/output/Bench-server.ts +18 -21
  187. package/test/bind/components/BindText.d.ts +1 -1
  188. package/test/bind/components/output/BindText-client.ts +7 -2
  189. package/test/bind/components/output/BindText-server.ts +4 -1
  190. package/test/bind/components/temp/{BindText-client-6963638e95f6555cdf292aa921fdc866fa8ae1de.ts → BindText-client-d8b5da0867d612966fa091da7aa20baa77190d64.ts} +7 -2
  191. package/test/bind/components/temp/{BindText-server-6f62805628866f32e39045cd45e0f9da64c94837.ts → BindText-server-20ad98151d8e9dd7d347968051c4602d6b35124c.ts} +4 -1
  192. package/test/build-server/build-server-element-node.test.ts +1 -1
  193. package/test/build-server/build-server.test.ts +7 -4
  194. package/test/build-server/components/IfNested.d.ts +1 -1
  195. package/test/build-server/components/output/IfNested-client.ts +8 -7
  196. package/test/build-server/components/output/IfNested-server.ts +3 -2
  197. package/test/buildHtml.ts +10 -8
  198. package/test/buildOutputFiles.ts +7 -8
  199. package/test/child-component/components/ParentChild.d.ts +1 -1
  200. package/test/child-component/components/output/ParentChild-client.ts +13 -4
  201. package/test/child-component/components/output/ParentChild-server.ts +7 -3
  202. package/test/child-component/components/temp/{ParentChild-client-e2c85a44f6480588f7ff993be1b4d2c42f8e3cd3.ts → ParentChild-client-8f00a3a31a7f666990765fc4755b62a39c855226.ts} +13 -4
  203. package/test/child-component/components/temp/{ParentChild-server-17b1277850eee5321527307cd7b647be2485ea70.ts → ParentChild-server-9c791bdfa521c3f6549857a34a6cd414fa3c9e80.ts} +7 -3
  204. package/test/class/components/Class.d.ts +1 -1
  205. package/test/class/components/output/Class-client.ts +7 -3
  206. package/test/class/components/output/Class-server.ts +4 -3
  207. package/test/class/components/temp/{Class-client-8c6c84b3d23af8694670343c15cd5ca964c7da72.ts → Class-client-600bf865c14f1052d24e1c79242f837aaf5ae5e8.ts} +7 -3
  208. package/test/class/components/temp/{Class-server-5885a4a2dd951a6f311ae3e12cb59c08ce00c51c.ts → Class-server-082505b03612c762384ffff329472db3f55b8097.ts} +4 -3
  209. package/test/comments/html-comments.test.ts +2 -2
  210. package/test/comments/js-block-comments.test.ts +2 -2
  211. package/test/comments/js-line-comments.test.ts +2 -2
  212. package/test/component/components/Component.d.ts +1 -1
  213. package/test/component/components/Header.d.ts +1 -1
  214. package/test/component/components/output/Component-client.ts +7 -3
  215. package/test/component/components/output/Component-server.ts +5 -2
  216. package/test/component/components/output/Header-client.ts +8 -3
  217. package/test/component/components/output/Header-server.ts +4 -3
  218. package/test/component/components/temp/{Component-client-b419d2d8209ab069408eeaa294ec4c5a37bc310d.ts → Component-client-32cd481f03e25d10b8e93947a2ff8773135b4975.ts} +7 -3
  219. package/test/component/components/temp/{Component-server-8990933d40416aca88488988f30dfc3364dc456c.ts → Component-server-11542f55405218c0b471172cac1d6a1a4edb5c09.ts} +5 -2
  220. package/test/console/components/Console.d.ts +1 -1
  221. package/test/console/components/output/Console-client.ts +8 -2
  222. package/test/console/components/output/Console-server.ts +4 -1
  223. package/test/console/components/temp/{Console-client-3532f7492c0c06ab37cbce1c2472806396330dc5.ts → Console-client-2f206752ce59e59fba9bb91263b4102fd515951e.ts} +8 -2
  224. package/test/const/components/Const.d.ts +1 -1
  225. package/test/const/components/output/Const-client.ts +7 -2
  226. package/test/const/components/output/Const-server.ts +4 -1
  227. package/test/const/components/temp/{Const-client-5ba2f9f95af7840cbe1790a706596b0e97da2737.ts → Const-client-536e8fdf18d6f4f7f23b2789de2330ecf62d7865.ts} +7 -2
  228. package/test/const/components/temp/{Const-server-4914c3d9a707e19c852f31c40b4e8e16ed1b4b6b.ts → Const-server-8f84096c03a19296425aee5d243af0734b70ca61.ts} +4 -1
  229. package/test/effects/components/For.d.ts +1 -1
  230. package/test/effects/components/If.d.ts +1 -1
  231. package/test/effects/components/NestedIf.d.ts +1 -1
  232. package/test/effects/components/output/For-client.ts +10 -4
  233. package/test/effects/components/output/For-server.ts +3 -2
  234. package/test/effects/components/output/If-client.ts +12 -4
  235. package/test/effects/components/output/If-server.ts +3 -2
  236. package/test/effects/components/output/NestedIf-client.ts +15 -5
  237. package/test/effects/components/output/NestedIf-server.ts +3 -2
  238. package/test/effects/components/temp/{For-client-adc406645b9dd71d03bd2aafc56b642c2d21c2ae.ts → For-client-887b1758cf5c80f64708a47369e0e6ce44ffa20f.ts} +10 -4
  239. package/test/effects/components/temp/{For-server-8cc4e9e3fa2ae038e519460c85e558d9947b6fa5.ts → For-server-8e1c7393b102c870167dd086cbee45c47e614dfa.ts} +3 -2
  240. package/test/effects/components/temp/{If-client-cee3b0d8ea35c90cc1a0506fd121ad6ad7afde2d.ts → If-client-bfc548ef699b91f33e604f066211ce6269cc9506.ts} +12 -4
  241. package/test/effects/components/temp/{If-server-62a737eb85f6f9931bc5ce6f9121561c3474e5e3.ts → If-server-8c213b1a82cd0a5c2bccfeb90ba8bf01fa4672d2.ts} +3 -2
  242. package/test/effects/components/temp/{NestedIf-client-0df3cf11db8413f1af92857fbebdc05128eb7525.ts → NestedIf-client-9e9155398f240345af392194063adc6e42dda80c.ts} +15 -5
  243. package/test/effects/components/temp/{NestedIf-server-37e3b835c2ba3e0a280fa7589fd2a2861b7a8d0f.ts → NestedIf-server-5f11d075c2ff224ee5feb7f61aa41aea8af44313.ts} +3 -2
  244. package/test/effects/for-effect.test.ts +2 -2
  245. package/test/effects/if-effect.test.ts +1 -1
  246. package/test/effects/nested-if-effect.test.ts +1 -1
  247. package/test/events/components/Increment.d.ts +1 -1
  248. package/test/events/components/output/Increment-client.ts +7 -2
  249. package/test/events/components/output/Increment-server.ts +4 -1
  250. package/test/events/components/temp/{Increment-client-44da5864e44c53bed1fa35069403559fe3ec33b3.ts → Increment-client-35c275d15e94e4aa7625af12c45210521995ead5.ts} +7 -2
  251. package/test/events/components/temp/{Increment-server-bd1216d8417b709a52131417405be76909885775.ts → Increment-server-bbf5ac93c4f73382c4262ae42f4cc836bcb8ac1b.ts} +4 -1
  252. package/test/events/events.test.ts +1 -1
  253. package/test/for/components/For.d.ts +1 -1
  254. package/test/for/components/ForEscape.d.ts +18 -0
  255. package/test/for/components/ForEscape.torp +13 -0
  256. package/test/for/components/ForIn.d.ts +1 -1
  257. package/test/for/components/ForOf.d.ts +1 -1
  258. package/test/for/components/output/For-client.ts +11 -4
  259. package/test/for/components/output/For-server.ts +4 -1
  260. package/test/for/components/output/ForEscape-client.ts +96 -0
  261. package/test/for/components/output/ForEscape-server.ts +24 -0
  262. package/test/for/components/output/ForIn-client.ts +11 -5
  263. package/test/for/components/output/ForIn-server.ts +4 -3
  264. package/test/for/components/output/ForOf-client.ts +11 -5
  265. package/test/for/components/output/ForOf-server.ts +4 -3
  266. package/test/for/components/temp/{For-client-c28b3b4ffaff54e225968666bb89a9801aa4be38.ts → For-client-1f6e475347f0474375f12a7c24b0b293e3942aa7.ts} +11 -4
  267. package/test/for/components/temp/{For-server-f8858496076f65ca1abefa4cc8e3f5d8abb8939d.ts → For-server-8490f15d02ae76b218feb7fa266415f44b2a4ab9.ts} +4 -1
  268. package/test/for/components/temp/ForEscape-client-2c881b16a6382edf074e1f151a209d60ca9b2b66.ts +96 -0
  269. package/test/for/components/temp/ForEscape-server-94a1bceabed006e15326a7f635724d88c3daa8fe.ts +24 -0
  270. package/test/for/components/temp/{ForIn-client-9f9383ab12774da311700aa5215c3cd00710b4fa.ts → ForIn-client-c8a1ec4473d05475e11928d06d081ab671fd9f28.ts} +11 -5
  271. package/test/for/components/temp/{ForIn-server-dd6f6da286061c14a1871ce86b29d4cc1b3851f6.ts → ForIn-server-d92cf8d3c3e300b562308607caca2c9cab3cb30b.ts} +4 -3
  272. package/test/for/components/temp/{ForOf-client-6a1c4b8b20f4e20ec413902c8fa4f47dcc564895.ts → ForOf-client-069881d4d9e52bc091e7213154924f3e1626174a.ts} +11 -5
  273. package/test/for/components/temp/{ForOf-server-4101449127dfcf735eb1bfe9e571f7fa53b4182d.ts → ForOf-server-3bfbb33bd589890d272bbcbea53d9598f53bfd70.ts} +4 -3
  274. package/test/for/for-escape.test.ts +41 -0
  275. package/test/for/for-with-key.test.ts +2 -2
  276. package/test/function/components/Function.d.ts +1 -1
  277. package/test/function/components/Function.torp +1 -0
  278. package/test/function/components/output/Function-client.ts +8 -2
  279. package/test/function/components/output/Function-server.ts +5 -1
  280. package/test/function/components/temp/{Function-client-97c3afdfd0ed80a74a9bfd41136927045699114c.ts → Function-client-b8931e51769f3f1e84d1491c6474f8551acf9f8d.ts} +8 -2
  281. package/test/function/components/temp/{Function-server-648cf7cb39698cd436479079551d43be1460ca05.ts → Function-server-2d32fbe35260c0948a135f287f131c5520e8bce7.ts} +5 -1
  282. package/test/function/function.test.ts +1 -1
  283. package/test/helpers.ts +8 -8
  284. package/test/html/components/Html.d.ts +1 -1
  285. package/test/html/components/output/Html-client.ts +7 -3
  286. package/test/html/components/output/Html-server.ts +4 -3
  287. package/test/html/components/temp/{Html-client-83841e19c73a4c003a0a89a268d17120c093f4d1.ts → Html-client-5fc745d9980a42a70dcb3473b0fd976e69882c9e.ts} +7 -3
  288. package/test/html/components/temp/{Html-server-fe700ee95c04e6418f7df23e98353fc9f196bb30.ts → Html-server-437ea390e58947213ede74755a012cdacceeebe7.ts} +4 -3
  289. package/test/hydrateComponent.ts +2 -2
  290. package/test/if/components/IfAfterIf.d.ts +1 -1
  291. package/test/if/components/IfElse.d.ts +1 -1
  292. package/test/if/components/IfElseIf.d.ts +1 -1
  293. package/test/if/components/IfNested.d.ts +1 -1
  294. package/test/if/components/output/IfAfterIf-client.ts +12 -4
  295. package/test/if/components/output/IfAfterIf-server.ts +3 -2
  296. package/test/if/components/output/IfElse-client.ts +12 -4
  297. package/test/if/components/output/IfElse-server.ts +3 -2
  298. package/test/if/components/output/IfElseIf-client.ts +15 -5
  299. package/test/if/components/output/IfElseIf-server.ts +3 -2
  300. package/test/if/components/output/IfNested-client.ts +18 -6
  301. package/test/if/components/output/IfNested-server.ts +3 -2
  302. package/test/if/components/temp/{IfAfterIf-client-f6bb64b0dda769d8e7a2e81a8bc37dc3c3113e4d.ts → IfAfterIf-client-a489daa5b961ed9da71418fdbb1665b6ba39f1b7.ts} +12 -4
  303. package/test/if/components/temp/{IfAfterIf-server-76bbc2178815e296b81865693aefe8de20f6dac9.ts → IfAfterIf-server-243736e666e7d77d3f8553a1682734555f5ffd22.ts} +3 -2
  304. package/test/if/components/temp/{IfElse-client-46690dea26d700b1cde101f33c12cc404671ac12.ts → IfElse-client-4c71642f412d5dd2f45729eafb7e974781dbe011.ts} +12 -4
  305. package/test/if/components/temp/{IfElse-server-70dfdfc697531324af41de11c3c0e3c8cd1fd89e.ts → IfElse-server-64c055182b327504ee71d1f1d44cfccf48be350d.ts} +3 -2
  306. package/test/if/components/temp/{IfElseIf-client-24b71b4710bc0a155f46d44656f14d4cc134d217.ts → IfElseIf-client-98d50d6f40c2385c4ef4fc02329f9d2e182c76c4.ts} +15 -5
  307. package/test/if/components/temp/{IfElseIf-server-dfaf8f0a0afea900b547d000a068328bb3755133.ts → IfElseIf-server-79788b13af905175f50bfa8658f2ff2af73db232.ts} +3 -2
  308. package/test/if/components/temp/{IfNested-client-42d93aa332e02a638e0adcb82b37d64c30df0b7d.ts → IfNested-client-979db97eea5b4595550b9b46f297f3fbc31796d2.ts} +18 -6
  309. package/test/if/components/temp/{IfNested-server-8ad247311e91f4b0b5b37df501191b654dfb6739.ts → IfNested-server-3c4e4b6f2162c0906cef685830219b9ea9ee985c.ts} +3 -2
  310. package/test/importComponent.ts +1 -1
  311. package/test/imports/commented-imports.ts +2 -2
  312. package/test/imports/imports.ts +2 -2
  313. package/test/imports/multiple-imports.ts +2 -2
  314. package/test/mount/components/Mount.d.ts +1 -1
  315. package/test/mount/components/output/Mount-client.ts +8 -2
  316. package/test/mount/components/output/Mount-server.ts +4 -1
  317. package/test/mount/components/temp/{Mount-client-2a25acbe52ac71618466dbc5bdd8b0a21fcb1c69.ts → Mount-client-49d8d6475336b5749fe8a17be847fd2b6cda5ccc.ts} +8 -2
  318. package/test/mount/components/temp/{Mount-server-23552a7d89c61823077d26086bff3949ee19bdbe.ts → Mount-server-e3d689cf52a4477da9aa00e2c7604110710db991.ts} +4 -1
  319. package/test/mount/mount.test.ts +0 -2
  320. package/test/mountComponent.ts +1 -1
  321. package/test/on-mount/components/OnMount.d.ts +1 -1
  322. package/test/on-mount/components/output/OnMount-client.ts +8 -2
  323. package/test/on-mount/components/output/OnMount-server.ts +4 -1
  324. package/test/on-mount/components/temp/{OnMount-client-faa4dd0b96fd60a897ab0bc41a046a3fe000a7c2.ts → OnMount-client-b2dfd41a0aaeafb3b7af14793a03e0fc3bc43aaa.ts} +8 -2
  325. package/test/on-mount/components/temp/{OnMount-server-049b2392d0c75bf829507043e2670c98953f4759.ts → OnMount-server-1758fe2b16972fca7d4b9bb49d9256fce99780eb.ts} +4 -1
  326. package/test/party/10-on-mount.test.ts +1 -1
  327. package/test/party/12-props.test.ts +1 -1
  328. package/test/party/14-slot.test.ts +1 -1
  329. package/test/party/15-slot-fallback.test.ts +1 -1
  330. package/test/party/16-context.test.ts +1 -1
  331. package/test/party/17-input-text.test.ts +1 -1
  332. package/test/party/18-input-checkbox.test.ts +1 -1
  333. package/test/party/19-input-radio.test.ts +1 -1
  334. package/test/party/20-input-select.test.ts +1 -1
  335. package/test/party/5-styling.test.ts +1 -1
  336. package/test/party/6-loop.test.ts +1 -1
  337. package/test/party/7-event-click.test.ts +1 -1
  338. package/test/party/8-dom-ref.test.ts +0 -2
  339. package/test/party/components/AnswerButton.d.ts +1 -1
  340. package/test/party/components/AnswerButtonApp.d.ts +1 -1
  341. package/test/party/components/ColorSelect.d.ts +1 -1
  342. package/test/party/components/Colors.d.ts +1 -1
  343. package/test/party/components/Counter.d.ts +1 -1
  344. package/test/party/components/CssStyle.d.ts +1 -1
  345. package/test/party/components/DoubleCount.d.ts +1 -1
  346. package/test/party/components/FunnyButton.d.ts +1 -1
  347. package/test/party/components/FunnyButtonApp.d.ts +1 -1
  348. package/test/party/components/HelloWorld.d.ts +1 -1
  349. package/test/party/components/InputFocused.d.ts +1 -1
  350. package/test/party/components/InputHello.d.ts +1 -1
  351. package/test/party/components/IsAvailable.d.ts +1 -1
  352. package/test/party/components/Name.d.ts +1 -1
  353. package/test/party/components/NameUpdate.d.ts +1 -1
  354. package/test/party/components/PageTitle.d.ts +1 -1
  355. package/test/party/components/PickPill.d.ts +1 -1
  356. package/test/party/components/Time.d.ts +1 -1
  357. package/test/party/components/TrafficLight.d.ts +1 -1
  358. package/test/party/components/UserProfile.d.ts +1 -1
  359. package/test/party/components/UserProfileApp.d.ts +1 -1
  360. package/test/party/components/UserProfileContext.d.ts +1 -1
  361. package/test/party/components/UserProfileContextApp.d.ts +1 -1
  362. package/test/party/components/output/AnswerButton-client.ts +6 -2
  363. package/test/party/components/output/AnswerButton-server.ts +3 -2
  364. package/test/party/components/output/AnswerButtonApp-client.ts +8 -3
  365. package/test/party/components/output/AnswerButtonApp-server.ts +5 -2
  366. package/test/party/components/output/ColorSelect-client.ts +11 -4
  367. package/test/party/components/output/ColorSelect-server.ts +4 -1
  368. package/test/party/components/output/Colors-client.ts +11 -4
  369. package/test/party/components/output/Colors-server.ts +4 -1
  370. package/test/party/components/output/Counter-client.ts +7 -2
  371. package/test/party/components/output/Counter-server.ts +4 -1
  372. package/test/party/components/output/CssStyle-client.ts +11 -8
  373. package/test/party/components/output/CssStyle-server.ts +6 -2
  374. package/test/party/components/output/DoubleCount-client.ts +8 -2
  375. package/test/party/components/output/DoubleCount-server.ts +4 -1
  376. package/test/party/components/output/FunnyButton-client.ts +10 -4
  377. package/test/party/components/output/FunnyButton-server.ts +3 -1
  378. package/test/party/components/output/FunnyButtonApp-client.ts +19 -5
  379. package/test/party/components/output/FunnyButtonApp-server.ts +11 -3
  380. package/test/party/components/output/HelloWorld-client.ts +8 -2
  381. package/test/party/components/output/HelloWorld-server.ts +4 -1
  382. package/test/party/components/output/InputFocused-client.ts +8 -2
  383. package/test/party/components/output/InputFocused-server.ts +4 -1
  384. package/test/party/components/output/InputHello-client.ts +7 -2
  385. package/test/party/components/output/InputHello-server.ts +4 -1
  386. package/test/party/components/output/IsAvailable-client.ts +7 -2
  387. package/test/party/components/output/IsAvailable-server.ts +4 -1
  388. package/test/party/components/output/Name-client.ts +8 -2
  389. package/test/party/components/output/Name-server.ts +4 -1
  390. package/test/party/components/output/NameUpdate-client.ts +8 -2
  391. package/test/party/components/output/NameUpdate-server.ts +4 -1
  392. package/test/party/components/output/PageTitle-client.ts +8 -2
  393. package/test/party/components/output/PageTitle-server.ts +4 -1
  394. package/test/party/components/output/PickPill-client.ts +7 -2
  395. package/test/party/components/output/PickPill-server.ts +4 -1
  396. package/test/party/components/output/Time-client.ts +8 -2
  397. package/test/party/components/output/Time-server.ts +4 -1
  398. package/test/party/components/output/TrafficLight-client.ts +16 -5
  399. package/test/party/components/output/TrafficLight-server.ts +4 -1
  400. package/test/party/components/output/UserProfile-client.ts +6 -2
  401. package/test/party/components/output/UserProfile-server.ts +3 -2
  402. package/test/party/components/output/UserProfileApp-client.ts +7 -3
  403. package/test/party/components/output/UserProfileApp-server.ts +5 -2
  404. package/test/party/components/output/UserProfileContext-client.ts +6 -2
  405. package/test/party/components/output/UserProfileContext-server.ts +3 -1
  406. package/test/party/components/output/UserProfileContextApp-client.ts +6 -2
  407. package/test/party/components/output/UserProfileContextApp-server.ts +3 -1
  408. package/test/party/components/temp/{AnswerButtonApp-client-3e03cd1d6f95f5f9300028e5f1cdd260b5e61bcc.ts → AnswerButtonApp-client-34311c2e7412807867fb6267af31a341f092bf31.ts} +8 -3
  409. package/test/party/components/temp/{AnswerButtonApp-server-5d3914c7c62fb67c51f73d78e256ee1bd7302c2d.ts → AnswerButtonApp-server-3f5071775abea24ee8830830072c6fe465fc4e56.ts} +5 -2
  410. package/test/party/components/temp/{ColorSelect-client-1897c35dcd9fd8268ae214265d0257f3f9600a84.ts → ColorSelect-client-f9fb9fa09f4729da3226d5aaf30e84cd3cd705b5.ts} +11 -4
  411. package/test/party/components/temp/{ColorSelect-server-38cf44a5b4ba0ed79dcc8395c708bda5a69d2792.ts → ColorSelect-server-3ed19eff17bf10b31d03ec507974ff913932c97a.ts} +4 -1
  412. package/test/party/components/temp/{Colors-client-03ff835fd17118c9da283df7403cd96dc3033ed2.ts → Colors-client-f124162d1dd8f0c3d37bf96c8e5f18599ae3a682.ts} +11 -4
  413. package/test/party/components/temp/{Colors-server-4a5fb2264c0a19c2b6fc270af1316042e1420444.ts → Colors-server-f9b3037a5f25979f71b5f8f3e658140be7c27920.ts} +4 -1
  414. package/test/party/components/temp/{Counter-client-f8d52c7077575f4319bd2e79bba2a6bdc1abd101.ts → Counter-client-c349710110b4afbf9593f20cfc40c162ed836079.ts} +7 -2
  415. package/test/party/components/temp/{Counter-server-11f44d1f3437878c41c0845899f0c79c7e4f7d31.ts → Counter-server-36d1137c519691f5b86a18a5c27b7cf615b7e37c.ts} +4 -1
  416. package/test/party/components/temp/{CssStyle-client-cfc3fd2cf399a204de8b5f5523b3c7fb71dff889.ts → CssStyle-client-59c0f261f67bc04f2829a0371f655d146101cec6.ts} +8 -2
  417. package/test/party/components/temp/CssStyle-server-3e58d7e2f5c381a251f593245d3d8bf4b50925ae.ts +17 -0
  418. package/test/party/components/temp/{DoubleCount-client-2dd560a563301bd6da2fdfe2219249b34d12aa51.ts → DoubleCount-client-0426f128507a8d4516ef7501cd180662112b6d1d.ts} +8 -2
  419. package/test/party/components/temp/{DoubleCount-server-30aa97d18a7bcc0b24facc3ec4f30d1c2b4ff499.ts → DoubleCount-server-40fc88156e52281b80fd6b12dd73d2469201fa29.ts} +4 -1
  420. package/test/party/components/temp/{FunnyButtonApp-client-86fbab3b909222d7fc79abd53cf782b0cf94c9ef.ts → FunnyButtonApp-client-4ed0ebf5be13ddb62d9942bac7f4b8a885ec6c50.ts} +19 -5
  421. package/test/party/components/temp/{FunnyButtonApp-server-3d4f5946eed07e638d2a423ffffb966dfa4f4258.ts → FunnyButtonApp-server-9748c9096848e643c91237c46ea09d23f1b3fa7c.ts} +11 -3
  422. package/test/party/components/temp/{HelloWorld-client-5a32a86f768cc125d5ef0ed526c73b26919433df.ts → HelloWorld-client-791e8b9a0bd4b01e87fbe70f2b28d4ac356e3624.ts} +8 -2
  423. package/test/party/components/temp/{HelloWorld-server-cbcefb2b79dbba49c8699fa0417326662a23d2d3.ts → HelloWorld-server-3c4b9a995a78d652d9220a20124c9e0d18fc7101.ts} +4 -1
  424. package/test/party/components/temp/{InputFocused-client-bdde50cb9c6bc70d4306cacda193b3ff92351ebf.ts → InputFocused-client-a543f82c8db205fb3e33c62de699cff43c668a68.ts} +8 -2
  425. package/test/party/components/temp/{InputFocused-server-a863dd8dfbe87c47de1d6d415ee7e3ea75a32a9f.ts → InputFocused-server-222f2fa7029d1cd6941a3777293a9b2d37b7295e.ts} +4 -1
  426. package/test/party/components/temp/{InputHello-client-4aaeab79a049de079052e03d619f516d3a9c0993.ts → InputHello-client-9953499de5778bb1d8aac7691129210a6098db07.ts} +7 -2
  427. package/test/party/components/temp/{InputHello-server-37755f5410442a879097449df910faf0b6288878.ts → InputHello-server-6c982438e58d3649ee3890efec636ca4590a5cdb.ts} +4 -1
  428. package/test/party/components/temp/{IsAvailable-client-e5912560c2333f37b0033188ed00c1789203b40e.ts → IsAvailable-client-929ed6c872e72b6c5243b882c6a9a0d13f6a7c47.ts} +7 -2
  429. package/test/party/components/temp/{IsAvailable-server-601e1c621e40760f8354392061ec951d1ba4f64c.ts → IsAvailable-server-a35b7ec5f111472c76aa1b67c857b169fe363594.ts} +4 -1
  430. package/test/party/components/temp/{Name-client-f314881fb1fbc4c927e8620a44e508c4acae1cf6.ts → Name-client-cb8bef7cfca1306386b65410a0bd7a8acfaed359.ts} +8 -2
  431. package/test/party/components/temp/{Name-server-2f1400f7b8f889aef984f5f4f64f51f435528e21.ts → Name-server-9da0823f748e9751e017078f39717298be232636.ts} +4 -1
  432. package/test/party/components/temp/{NameUpdate-client-abc797f7c1e00e380ef170b454f38347a5ad17d5.ts → NameUpdate-client-ebef69b0da12d640994099592ce06c7e4b5089d4.ts} +8 -2
  433. package/test/party/components/temp/{NameUpdate-server-d9915a163ea8d9fcdea76630095f5a1c38f3298f.ts → NameUpdate-server-1856bdb5e010f7d7e5e67f2a0d87ac3f92f4e0ee.ts} +4 -1
  434. package/test/party/components/temp/{PageTitle-client-89c844f5140e569cc190836da5f64d90d94daed5.ts → PageTitle-client-403645e918294e5cdeea8cb3f602e0a2642b2650.ts} +8 -2
  435. package/test/party/components/temp/{PageTitle-server-91f02c92e1a3aef3441aa0529e8e71af245fd02d.ts → PageTitle-server-4d959183b7029b6817372abd1d60a7e996baeb15.ts} +4 -1
  436. package/test/party/components/temp/{PickPill-client-ad6c2a265ed708f49cab7347b29398f83af3387f.ts → PickPill-client-f9a50a75ce63ec2ee3ac34e378e20602b93629f7.ts} +7 -2
  437. package/test/party/components/temp/{PickPill-server-30a8311db60f7e3cd8929a54ec7ab9ff4fa45281.ts → PickPill-server-49e033c5f97dd2f98e1498327e16eb9c8c9d2f66.ts} +4 -1
  438. package/test/party/components/temp/{TrafficLight-client-6a0bbdc4eb55b3189de6feecbcd775485c6f5e4e.ts → TrafficLight-client-81dd9bd9f3332533e01f6c9b271c15e5f76e1fdb.ts} +16 -5
  439. package/test/party/components/temp/{TrafficLight-server-5196e9a6a350b53e08caf0127eeed585805bc192.ts → TrafficLight-server-ed2a8640fd82cf381eee8f4fb83bb09d174a4557.ts} +4 -1
  440. package/test/party/components/temp/{UserProfileApp-client-377b64d798df3cdb22cd25c1fdb9e7c7e45c9307.ts → UserProfileApp-client-af27173415d65647cab0f30a9a4967cef0307e25.ts} +7 -3
  441. package/test/party/components/temp/{UserProfileApp-server-c98cb680c86d52e8de1ebe7ecf8a9c83c4b58d05.ts → UserProfileApp-server-6a7dbe68ee8041785cef50fb15a9e5ba475e120f.ts} +5 -2
  442. package/test/party/components/temp/{UserProfileContextApp-client-fb3c86949640d30bb5abce8cc54be3f193b88942.ts → UserProfileContextApp-client-7ea7d90a35894408757aef3e935d3a8badf93aea.ts} +6 -2
  443. package/test/party/components/temp/{UserProfileContextApp-server-816f3848764aee3cb9edda5b4e1babe11a3f8958.ts → UserProfileContextApp-server-90290c770529d7211eabf29e7d0fe868aa856b52.ts} +3 -1
  444. package/test/props/props.test.ts +1 -1
  445. package/test/replace/components/Replace.d.ts +1 -1
  446. package/test/replace/components/output/Replace-client.ts +9 -3
  447. package/test/replace/components/output/Replace-server.ts +3 -2
  448. package/test/replace/components/temp/{Replace-client-a41872410e8a44ab1a1ae7efb26657519580b892.ts → Replace-client-ea4ddc73c71181fb6ef3c6f5bf61b0b9e017f00a.ts} +9 -3
  449. package/test/replace/components/temp/{Replace-server-c3a2e0c6304ca4cc5bf77b24426b5996e68d0142.ts → Replace-server-30eb1ad796516fa4d310798a9c8a6811ec13cbd9.ts} +3 -2
  450. package/test/run/watch-defined-property.test.ts +1 -1
  451. package/test/run/watch-effect.test.ts +1 -1
  452. package/test/run/watch-function.test.ts +1 -1
  453. package/test/run/watch-getter.test.ts +1 -1
  454. package/test/run/watch-set-same-value.test.ts +1 -1
  455. package/test/script/script-with-comments.test.ts +2 -2
  456. package/test/script/script-with-strings.test.ts +2 -2
  457. package/test/script/script.test.ts +2 -2
  458. package/test/slots/components/Article.d.ts +1 -1
  459. package/test/slots/components/Basic.d.ts +1 -1
  460. package/test/slots/components/Header.d.ts +1 -1
  461. package/test/slots/components/Let.d.ts +1 -1
  462. package/test/slots/components/List.d.ts +1 -1
  463. package/test/slots/components/Named.d.ts +1 -1
  464. package/test/slots/components/Unused.d.ts +1 -1
  465. package/test/slots/components/output/Article-client.ts +9 -5
  466. package/test/slots/components/output/Article-server.ts +3 -1
  467. package/test/slots/components/output/Basic-client.ts +19 -5
  468. package/test/slots/components/output/Basic-server.ts +11 -3
  469. package/test/slots/components/output/Header-client.ts +10 -4
  470. package/test/slots/components/output/Header-server.ts +3 -1
  471. package/test/slots/components/output/Let-client.ts +19 -6
  472. package/test/slots/components/output/Let-server.ts +11 -5
  473. package/test/slots/components/output/List-client.ts +11 -6
  474. package/test/slots/components/output/List-server.ts +4 -4
  475. package/test/slots/components/output/Named-client.ts +29 -7
  476. package/test/slots/components/output/Named-server.ts +17 -4
  477. package/test/slots/components/output/Unused-client.ts +6 -2
  478. package/test/slots/components/output/Unused-server.ts +4 -1
  479. package/test/slots/components/temp/{Basic-client-7c3d966d05bf02f2efb4d2defd01106c4a875f0e.ts → Basic-client-c82bc3c5e10f2f2c1869347435262c8f3039e32f.ts} +19 -5
  480. package/test/slots/components/temp/{Basic-server-10598ecc3722031c5b179112ebb78e573ddb995a.ts → Basic-server-21fb4f8caa3bbcae219aaef388af8c26c46fa5ce.ts} +11 -3
  481. package/test/slots/components/temp/{Let-client-f3705ad315d7a5a39b4b69d6bfd098e8306bf4b6.ts → Let-client-c54696fd1b5b859a693744722957fa960f72fad6.ts} +19 -6
  482. package/test/slots/components/temp/{Let-server-ebcf5b8bbdc8393fd6a713a40ffedcafec5de3ef.ts → Let-server-4d78ffc8741fa737f2cd915b36c0e6ec88a9146f.ts} +11 -5
  483. package/test/slots/components/temp/{Named-client-90b44efe110f9fc0d044af93f303826d2d8a92cb.ts → Named-client-0626b2f0911f77f5edcfda82f9751bcbc37b7641.ts} +29 -7
  484. package/test/slots/components/temp/{Named-server-9be98d66310a50762580d958c4f8839bd72904ef.ts → Named-server-e802f901223d697c7fd0a1a234ce1930af1b4b3f.ts} +17 -4
  485. package/test/slots/components/temp/{Unused-client-0c90dd59b1bccb280d7fa66635b14017aace5e7c.ts → Unused-client-aa05465731e0d00e18189498f49c94f991e76f10.ts} +6 -2
  486. package/test/slots/components/temp/{Unused-server-76e858fffa1ff9ca6657b1820105fa5cb03c8cdb.ts → Unused-server-00b92d14665a565f0042b1f56231f28bc38a1252.ts} +4 -1
  487. package/test/special-component/components/BigTitle.d.ts +1 -1
  488. package/test/special-component/components/Component.d.ts +1 -1
  489. package/test/special-component/components/SmallTitle.d.ts +1 -1
  490. package/test/special-component/components/output/BigTitle-client.ts +7 -3
  491. package/test/special-component/components/output/BigTitle-server.ts +3 -1
  492. package/test/special-component/components/output/Component-client.ts +20 -7
  493. package/test/special-component/components/output/Component-server.ts +12 -5
  494. package/test/special-component/components/output/SmallTitle-client.ts +7 -3
  495. package/test/special-component/components/output/SmallTitle-server.ts +3 -1
  496. package/test/special-component/components/temp/{Component-client-7c6efd9a0218c7ee02265c741321b30507d7d65e.ts → Component-client-3cc84b23def8830b8ef441bde0f03b3e9718196a.ts} +20 -7
  497. package/test/special-component/components/temp/{Component-server-8be4db515d02637a9c3ae367ecd9a308c1aefacb.ts → Component-server-5dc597784ea1fe45ac2cfb21305cf2187a3868e8.ts} +12 -5
  498. package/test/special-element/components/Element.d.ts +1 -1
  499. package/test/special-element/components/output/Element-client.ts +10 -4
  500. package/test/special-element/components/output/Element-server.ts +4 -3
  501. package/test/special-element/components/temp/{Element-client-6b3502e6ef5e1d2a804e527d3eb697c070e8bb21.ts → Element-client-0ab8992a8e914c7e190cddac790585fef9be1c9f.ts} +10 -4
  502. package/test/special-element/components/temp/{Element-server-f195e538a133b7a4af228a1eaa03e02f0bd7d67d.ts → Element-server-ddb0170df4a3f369577ca7e9768e5fe799f14dfb.ts} +4 -3
  503. package/test/special-head/components/Head.d.ts +1 -1
  504. package/test/special-head/components/output/Head-client.ts +8 -2
  505. package/test/special-head/components/output/Head-server.ts +4 -1
  506. package/test/special-head/components/temp/{Head-client-81055df0cf65a3cfe54b1e6043e28acc046891d1.ts → Head-client-07e8af6386d767a52667a4fdc978a335ec388302.ts} +8 -2
  507. package/test/special-head/components/temp/{Head-server-f3a4b72bef3716f3e02ebf71b8022f3d5c2af1d2.ts → Head-server-d80a0f1ee10e9942d9a631df35a24cb1cfb15555.ts} +4 -1
  508. package/test/special-head/special-head.test.ts +1 -2
  509. package/test/special-self/components/Self.d.ts +1 -1
  510. package/test/special-self/components/output/Self-client.ts +10 -4
  511. package/test/special-self/components/output/Self-server.ts +4 -3
  512. package/test/special-self/components/temp/{Self-client-7ab817163886fba5c8604dc54111335d4af52d0b.ts → Self-client-3982f174954034643c4d17cfc66d7f10bf1d4df6.ts} +10 -4
  513. package/test/special-self/components/temp/{Self-server-d605191b8649ba5bc515a92d37f97f872ab327c3.ts → Self-server-97ffbdaae47f4463034e1d318a8073d078ff138f.ts} +4 -3
  514. package/test/special-self/special-self.test.ts +1 -1
  515. package/test/style/components/Style.d.ts +1 -1
  516. package/test/style/components/output/Style-client.ts +9 -4
  517. package/test/style/components/output/Style-server.ts +4 -3
  518. package/test/style/components/temp/{Style-client-038dddfc74f14e95d17936a3fd6732584d85fcaa.ts → Style-client-085517e82bdd015c86f4c2577447c6a2791cf656.ts} +9 -4
  519. package/test/style/components/temp/{Style-server-7529b8cdc2f761b80747f66533163551cae1214d.ts → Style-server-b2615163fbafdcb2a5d4155120edf2f66ef3bba6.ts} +4 -3
  520. package/test/style/parse.test.ts +2 -2
  521. package/test/switch/components/Switch.d.ts +1 -1
  522. package/test/switch/components/output/Switch-client.ts +15 -5
  523. package/test/switch/components/output/Switch-server.ts +3 -2
  524. package/test/switch/components/temp/{Switch-client-4136875ddb11497e2d95caf2359abee086aaa75c.ts → Switch-client-4c4adac7308795807517e66bc268a38f87df6bda.ts} +15 -5
  525. package/test/switch/components/temp/{Switch-server-9b74d83bdb27f06d3fcf7e6a6ce82036aa47f874.ts → Switch-server-21fcac2b02c6071136bb0dc394babd27e454d2c9.ts} +3 -2
  526. package/test/template/basic-file.test.ts +2 -2
  527. package/test/template/empty-file.test.ts +2 -2
  528. package/test/template/errors.test.ts +1 -1
  529. package/test/watch/watch-nested-object.test.ts +3 -1
  530. package/test/watch/watch-null-object.test.ts +1 -1
  531. package/test/watch/watch-null-property.test.ts +1 -1
  532. package/test/watch/watch-simple-object.test.ts +2 -1
  533. package/test/watch/watch-undefined-object.test.ts +1 -1
  534. package/test/watch/watch-undefined-property.test.ts +1 -1
  535. package/test/watch-array/ArrayState.ts +2 -2
  536. package/test/watch-array/array-all-functions-unkeyed.test.ts +1 -2
  537. package/test/watch-array/array-all-functions.test.ts +1 -2
  538. package/test/watch-array/array-empty.test.ts +3 -5
  539. package/test/watch-array/array-entries.test.ts +1 -2
  540. package/test/watch-array/array-indexes.test.ts +1 -2
  541. package/test/watch-array/array-pop.test.ts +1 -2
  542. package/test/watch-array/array-push.test.ts +1 -2
  543. package/test/watch-array/array-reassign.test.ts +1 -1
  544. package/test/watch-array/array-reverse.test.ts +1 -2
  545. package/test/watch-array/array-set-object.test.ts +1 -2
  546. package/test/watch-array/array-set-property.test.ts +1 -2
  547. package/test/watch-array/array-shift.test.ts +1 -2
  548. package/test/watch-array/array-sort.test.ts +1 -2
  549. package/test/watch-array/array-splice-add.test.ts +1 -2
  550. package/test/watch-array/array-splice-delete-all.test.ts +1 -2
  551. package/test/watch-array/array-splice-delete-and-add.test.ts +1 -1
  552. package/test/watch-array/array-splice-delete-end.test.ts +1 -2
  553. package/test/watch-array/array-splice-delete.test.ts +1 -1
  554. package/test/watch-array/array-swap.test.ts +1 -2
  555. package/test/watch-array/array-unshift.test.ts +1 -2
  556. package/test/watch-array/array-update-assignment.test.ts +1 -2
  557. package/test/watch-array/components/Array.d.ts +1 -1
  558. package/test/watch-array/components/ArrayEntries.d.ts +1 -1
  559. package/test/watch-array/components/ArrayIndexes.d.ts +1 -1
  560. package/test/watch-array/components/ArrayUnkeyed.d.ts +1 -1
  561. package/test/watch-array/components/output/Array-client.ts +11 -5
  562. package/test/watch-array/components/output/Array-server.ts +4 -3
  563. package/test/watch-array/components/output/ArrayEntries-client.ts +11 -5
  564. package/test/watch-array/components/output/ArrayEntries-server.ts +4 -3
  565. package/test/watch-array/components/output/ArrayIndexes-client.ts +11 -5
  566. package/test/watch-array/components/output/ArrayIndexes-server.ts +4 -3
  567. package/test/watch-array/components/output/ArrayUnkeyed-client.ts +11 -5
  568. package/test/watch-array/components/output/ArrayUnkeyed-server.ts +4 -3
  569. package/test/watch-array/components/temp/{Array-client-7b40de2b50a8603f24654d0db984ff3b555e4104.ts → Array-client-b29a42f88c2a2f37b3a86bdb9535e20a487887e1.ts} +11 -5
  570. package/test/watch-array/components/temp/{Array-server-02515e92b822f1198b350264d81fe1f2a0564824.ts → Array-server-ced54fc7e63196f9c24c2e55b27bfe6cf7821dcb.ts} +4 -3
  571. package/test/watch-array/components/temp/{ArrayEntries-client-ec475fe4e32bce404c26d32ec676020f801b9cc2.ts → ArrayEntries-client-6289890758b1f6b462a74417e0b9e2e46d946ccd.ts} +11 -5
  572. package/test/watch-array/components/temp/{ArrayEntries-server-0ad3ea5e862952524f136e97a93646ee0cac1c26.ts → ArrayEntries-server-0429a18ffbe39afe87612889a3010c3fcaa601dc.ts} +4 -3
  573. package/test/watch-array/components/temp/{ArrayIndexes-client-50b5e551cd07fab2e3e2f01edfd101dd45b01063.ts → ArrayIndexes-client-fe4b1c49f442b3e5411f331c52ae6c5ab38f2b2d.ts} +11 -5
  574. package/test/watch-array/components/temp/{ArrayIndexes-server-692be8d9d103af14233ab4818e5b4c79b5c38f18.ts → ArrayIndexes-server-20c01f10832f035b007f85a423778934d51a703a.ts} +4 -3
  575. package/test/watch-array/components/temp/{ArrayUnkeyed-client-f62a5b1af81b12bf106a58a98ac392e0daee9501.ts → ArrayUnkeyed-client-3fffe2ce749ee84e0730130bfd730d432e3c4e12.ts} +11 -5
  576. package/test/watch-array/components/temp/{ArrayUnkeyed-server-e909a5b553fc692bb4b8a794382c0961ae13f4e6.ts → ArrayUnkeyed-server-0ab804a5e7bf5b47594d85adab79735e89a3939d.ts} +4 -3
  577. package/test/watch-object/components/Watched.d.ts +1 -1
  578. package/test/watch-object/components/output/Watched-client.ts +6 -2
  579. package/test/watch-object/components/output/Watched-server.ts +3 -2
  580. package/test/watch-object/components/temp/{Watched-client-7330a12b5cac7537b2b39ead6dad4eb3595cd099.ts → Watched-client-cb293038cd0a39043d05639c624a17d512419c25.ts} +6 -2
  581. package/test/watch-object/components/temp/{Watched-server-9db79c195516fc2c69c1170c8e5b40d6186cca0b.ts → Watched-server-4884585cf4f50493a70631909f2230153531208e.ts} +3 -2
  582. package/test/watch-object/watch-object.test.ts +0 -1
  583. package/tsconfig.json +2 -2
  584. package/test/on-mount/components/temp/OnMount-server-a9748dbc5bb7cadcacb94b4cabe8009d7b116989.ts +0 -7
  585. package/test/party/components/temp/CssStyle-server-a07cf02faad80642252776e2a7ad774376343de3.ts +0 -14
  586. package/test/special-element/components/temp/Element-server-c22cdebcbd076d32bb27f26e698054f36718b8de.ts +0 -9
  587. package/test/special-head/components/temp/Head-server-279cfa547d7ba593f57c0a3a9c3edca92ebb5118.ts +0 -11
  588. package/tsconfig-check.json +0 -5
package/dist/compile.cjs CHANGED
@@ -48,7 +48,6 @@ var Builder = class {
48
48
  if (text[i] === "}" || text[i] === ")" || text[i] === "]") {
49
49
  this.#space -= 1;
50
50
  }
51
- let gotText = false;
52
51
  this.#text += " ".repeat(Math.max(0, this.#space));
53
52
  const start = i;
54
53
  while (i < text.length && text[i] !== "\n") {
@@ -280,7 +279,7 @@ function buildAddFragment(node, status, b, parentName, anchorName) {
280
279
  const fragmentName = `t_fragment_${fragment.number}`;
281
280
  status.imports.add("t_add_fragment");
282
281
  b.append(`t_add_fragment(${fragmentName}, ${parentName}, ${anchorName});`);
283
- if (fragment.endVarName && node.children.length > 1) {
282
+ if (fragment.endVarName) {
284
283
  status.imports.add("t_next");
285
284
  b.append(`t_next(${fragment.endVarName});`);
286
285
  }
@@ -320,7 +319,7 @@ function isTextNode(node) {
320
319
 
321
320
  // src/compile/build/utils/isReactiveAttribute.ts
322
321
  function isReactiveAttribute(name, value) {
323
- return name.startsWith("{") && name.endsWith("}") || value.startsWith("{") && value.endsWith("}") || name.startsWith("on");
322
+ return isFullyReactive(name) || isReactive(value) || name.startsWith("on");
324
323
  }
325
324
 
326
325
  // src/compile/build/client/buildFragment.ts
@@ -364,7 +363,7 @@ function buildFragment(node, status, b, parentName, anchorName) {
364
363
  status.imports.add("t_fragment");
365
364
  const fragmentText = fragment.text.replaceAll("`", "\\`").replaceAll(/\s+/g, " ");
366
365
  b.append(
367
- `const ${fragmentName} = t_fragment($parent.ownerDocument, t_fragments, ${fragment.number}, \`${fragmentText}\`);`
366
+ `const ${fragmentName} = t_fragment($parent.ownerDocument!, t_fragments, ${fragment.number}, \`${fragmentText}\`);`
368
367
  );
369
368
  let fragmentPath = { parent: null, type: "fragment", children: [] };
370
369
  let varPaths = /* @__PURE__ */ new Map();
@@ -393,6 +392,7 @@ function maybeAddRootNodeDeclaration(node, fragment, fragmentName, status, b, va
393
392
  status.imports.add("t_root");
394
393
  const rootName = `t_root_${fragment.number}`;
395
394
  const rootPath = `t_root(${fragmentName})`;
395
+ b.append("// @ts-ignore");
396
396
  b.append(`const ${rootName} = ${rootPath};`);
397
397
  varPaths.set(rootPath, rootName);
398
398
  }
@@ -590,6 +590,9 @@ function declareElementFragmentVars(fragment, node, path, status, b, parentName,
590
590
  if (node.tagName === ":element") {
591
591
  b.append(`let ${node.varName} = ${varPath} as ${elementTypeName(node)};`);
592
592
  } else {
593
+ if (topLevel && lastChild) {
594
+ b.append("// @ts-ignore");
595
+ }
593
596
  b.append(`const ${node.varName} = ${varPath} as ${elementTypeName(node)};`);
594
597
  }
595
598
  }
@@ -665,6 +668,9 @@ function declareTextFragmentVars(fragment, node, path, status, b, varPaths, last
665
668
  if (status.options?.useCreateElement) {
666
669
  b.append(`let ${node.varName};`);
667
670
  } else {
671
+ if (topLevel && lastChild) {
672
+ b.append("// @ts-ignore");
673
+ }
668
674
  b.append(`const ${node.varName} = ${varPath};`);
669
675
  }
670
676
  }
@@ -838,7 +844,7 @@ function buildRun(functionName, functionBody, status, b) {
838
844
  b.append(`$run(function ${functionName}() {`);
839
845
  for (let varName of status.forVarNames) {
840
846
  functionBody = functionBody.replaceAll(
841
- new RegExp(`([\\s\\(\\[])${varName}([\\s\\.\\(\\)\\[\\];])`, "g"),
847
+ new RegExp(`([\\s\\(\\[\\{])${varName}([\\s\\.\\(\\)\\[\\]\\};])`, "g"),
842
848
  `$1t_item.data.${varName}$2`
843
849
  );
844
850
  }
@@ -847,13 +853,13 @@ function buildRun(functionName, functionBody, status, b) {
847
853
  }
848
854
 
849
855
  // src/compile/build/client/buildComponentNode.ts
850
- function buildComponentNode(node, status, b, parentName, anchorName, root = false) {
856
+ function buildComponentNode(node, status, b, root = false) {
851
857
  b.append("");
852
858
  b.append("/* @component */");
853
859
  const componentHasProps = node.attributes.length || root;
854
860
  const propsName = componentHasProps ? nextVarName("props", status) : "undefined";
855
861
  if (componentHasProps) {
856
- b.append(`const ${propsName} = {};`);
862
+ b.append(`const ${propsName}: any = {};`);
857
863
  for (let { name, value } of node.attributes) {
858
864
  if (name === "self" && node.tagName === ":component") {
859
865
  } else if (name.startsWith("{") && name.endsWith("}")) {
@@ -896,14 +902,20 @@ function buildComponentNode(node, status, b, parentName, anchorName, root = fals
896
902
  const componentHasSlots = node.children.length;
897
903
  const slotsName = componentHasSlots ? nextVarName("slots", status) : "undefined";
898
904
  if (componentHasSlots) {
899
- b.append(`const ${slotsName} = {};`);
905
+ b.append(`const ${slotsName}: Record<string, SlotRender> = {};`);
900
906
  for (let slot of node.children) {
901
907
  if (isSpecialNode(slot)) {
902
908
  const nameAttribute = slot.attributes.find((a) => a.name === "name");
903
909
  const slotName = nameAttribute?.value ? trimQuotes(nameAttribute.value) : "_";
904
- b.append(
905
- `${slotsName}["${slotName}"] = ($sparent: ParentNode, $sanchor: Node | null, $sprops: Record<PropertyKey, any>, $context: Record<PropertyKey, any>) => {`
906
- );
910
+ const slotParams = [
911
+ "$sparent: ParentNode",
912
+ "$sanchor: Node | null",
913
+ "//@ts-ignore\n$sprops?: Record<PropertyKey, any>",
914
+ "//@ts-ignore\n$context?: Record<PropertyKey, any>"
915
+ ];
916
+ b.append(`${slotsName}["${slotName}"] = (
917
+ ${slotParams.join(",\n")}
918
+ ) => {`);
907
919
  buildFragment(slot, status, b, "$sparent", "$sanchor");
908
920
  status.fragmentStack.push({
909
921
  fragment: slot.fragment,
@@ -935,7 +947,7 @@ function buildComponentNode(node, status, b, parentName, anchorName, root = fals
935
947
  }
936
948
 
937
949
  // src/compile/build/client/buildAwaitNode.ts
938
- function buildAwaitNode(node, status, b, parentName, anchorName) {
950
+ function buildAwaitNode(node, status, b) {
939
951
  const awaitParentName = node.parentName;
940
952
  const awaitAnchorName = node.varName;
941
953
  const awaitRangeName = nextVarName("await_range", status);
@@ -1029,7 +1041,7 @@ function trimEnd(text, char) {
1029
1041
  var forLoopRegex = /for\s*\((.+?);.*?;.*?\)/;
1030
1042
  var forLoopVarsRegex = /(?:let\s+|var\s+){0,1}([^\s,;+=]+)(?:\s*=\s*[^,;]+){0,1}/g;
1031
1043
  var forOfRegex = /for\s*\(\s*(?:let\s*|var\s*){0,1}(.+?)\s+(?:of|in).*?\)/;
1032
- function buildForNode(node, status, b, parentName, anchorName) {
1044
+ function buildForNode(node, status, b) {
1033
1045
  const forParentName = node.parentName;
1034
1046
  const forAnchorName = node.varName;
1035
1047
  node = node.children[0];
@@ -1114,7 +1126,7 @@ function buildForItem(node, status, b, parentName) {
1114
1126
  }
1115
1127
 
1116
1128
  // src/compile/build/client/buildHtmlNode.ts
1117
- function buildHtmlNode(node, status, b, parentName, anchorName) {
1129
+ function buildHtmlNode(node, status, b) {
1118
1130
  const htmlAnchorName = node.varName;
1119
1131
  const htmlParentName = node.parentName || htmlAnchorName + ".parentNode";
1120
1132
  const htmlRangeName = nextVarName("html_range", status);
@@ -1143,7 +1155,7 @@ function buildHtmlBranch(node, status, b, parentName, rangeName) {
1143
1155
  }
1144
1156
 
1145
1157
  // src/compile/build/client/buildIfNode.ts
1146
- function buildIfNode(node, status, b, parentName, anchorName) {
1158
+ function buildIfNode(node, status, b) {
1147
1159
  const ifAnchorName = node.varName;
1148
1160
  const ifParentName = node.parentName || ifAnchorName + ".parentNode";
1149
1161
  const ifRangeName = nextVarName("if_range", status);
@@ -1189,7 +1201,7 @@ function buildIfBranch(node, status, b, parentName, rangeName, index) {
1189
1201
  }
1190
1202
 
1191
1203
  // src/compile/build/client/buildReplaceNode.ts
1192
- function buildReplaceNode(node, status, b, parentName, anchorName) {
1204
+ function buildReplaceNode(node, status, b) {
1193
1205
  const replaceAnchorName = node.varName;
1194
1206
  const replaceParentName = node.parentName || replaceAnchorName + ".parentNode";
1195
1207
  const replaceRangeName = nextVarName("replace_range", status);
@@ -1235,7 +1247,7 @@ function maybeAppend(text, end) {
1235
1247
  }
1236
1248
 
1237
1249
  // src/compile/build/client/buildSwitchNode.ts
1238
- function buildSwitchNode(node, status, b, parentName, anchorName) {
1250
+ function buildSwitchNode(node, status, b) {
1239
1251
  const switchParentName = node.parentName;
1240
1252
  const switchAnchorName = node.varName;
1241
1253
  const switchRangeName = nextVarName("switch_range", status);
@@ -1284,10 +1296,10 @@ function buildSwitchBranch(node, status, b, parentName, rangeName, index) {
1284
1296
  }
1285
1297
 
1286
1298
  // src/compile/build/client/buildControlNode.ts
1287
- function buildControlNode(node, status, b, parentName, anchorName) {
1299
+ function buildControlNode(node, status, b) {
1288
1300
  switch (node.operation) {
1289
1301
  case "@if group": {
1290
- buildIfNode(node, status, b, parentName, anchorName);
1302
+ buildIfNode(node, status, b);
1291
1303
  break;
1292
1304
  }
1293
1305
  case "@if":
@@ -1296,14 +1308,15 @@ function buildControlNode(node, status, b, parentName, anchorName) {
1296
1308
  break;
1297
1309
  }
1298
1310
  case "@switch group": {
1299
- buildSwitchNode(node, status, b, parentName, anchorName);
1311
+ buildSwitchNode(node, status, b);
1312
+ break;
1300
1313
  }
1301
1314
  case "@case":
1302
1315
  case "@default": {
1303
1316
  break;
1304
1317
  }
1305
1318
  case "@for group": {
1306
- buildForNode(node, status, b, parentName, anchorName);
1319
+ buildForNode(node, status, b);
1307
1320
  break;
1308
1321
  }
1309
1322
  case "@for":
@@ -1311,7 +1324,7 @@ function buildControlNode(node, status, b, parentName, anchorName) {
1311
1324
  break;
1312
1325
  }
1313
1326
  case "@await group": {
1314
- buildAwaitNode(node, status, b, parentName, anchorName);
1327
+ buildAwaitNode(node, status, b);
1315
1328
  break;
1316
1329
  }
1317
1330
  case "@await":
@@ -1320,14 +1333,14 @@ function buildControlNode(node, status, b, parentName, anchorName) {
1320
1333
  break;
1321
1334
  }
1322
1335
  case "@replace group": {
1323
- buildReplaceNode(node, status, b, parentName, anchorName);
1336
+ buildReplaceNode(node, status, b);
1324
1337
  break;
1325
1338
  }
1326
1339
  case "@replace": {
1327
1340
  break;
1328
1341
  }
1329
1342
  case "@html group": {
1330
- buildHtmlNode(node, status, b, parentName, anchorName);
1343
+ buildHtmlNode(node, status, b);
1331
1344
  break;
1332
1345
  }
1333
1346
  case "@html": {
@@ -1366,7 +1379,7 @@ function buildRun2(functionName, functionBody, status, b) {
1366
1379
  }
1367
1380
 
1368
1381
  // src/compile/build/client/buildElementNode.ts
1369
- function buildElementNode(node, status, b, parentName, anchorName, root = false) {
1382
+ function buildElementNode(node, status, b, parentName, root = false) {
1370
1383
  if (status.inHead) {
1371
1384
  if (node.tagName === "title") {
1372
1385
  buildTitleNode(node, status, b);
@@ -1489,13 +1502,13 @@ function buildElementAttributes(node, varName, status, b) {
1489
1502
  if (name === ":self") {
1490
1503
  b.append(`${value} = ${varName};`);
1491
1504
  } else if (name === ":group") {
1492
- buildBindGroupAttribute(node, varName, name, value, status, b);
1505
+ buildBindGroupAttribute(node, varName, value, status, b);
1493
1506
  } else if (name === ":value" || name === ":checked") {
1494
1507
  buildBindAttribute(node, varName, name, value, status, b);
1495
1508
  } else if (name === ":onmount") {
1496
1509
  buildRun2("elMount", `return (${trimEnd(value.trim(), ";")})(${varName});`, status, b);
1497
1510
  } else if (name.startsWith("on")) {
1498
- buildEventAttribute(node, varName, name, value, status, b);
1511
+ buildEventAttribute(varName, name, value, status, b);
1499
1512
  } else if (name.startsWith(":transition")) {
1500
1513
  buildTransitionAttribute(node, varName, name, value, status, b);
1501
1514
  } else if (name === "class") {
@@ -1505,7 +1518,7 @@ function buildElementAttributes(node, varName, status, b) {
1505
1518
  buildRun("setClasses", `${varName}.className = t_class(${value});`, status, b);
1506
1519
  } else if (name === ":style") {
1507
1520
  status.imports.add("t_style");
1508
- buildRun("setStyles", `${varName}.style = t_style(${value});`, status, b);
1521
+ buildRun("setStyles", `${varName}.setAttribute("style", t_style(${value}));`, status, b);
1509
1522
  } else if (name.includes("-")) {
1510
1523
  status.imports.add("t_attribute");
1511
1524
  buildRun("setDataAttribute", `t_attribute(${varName}, "${name}", ${value});`, status, b);
@@ -1516,7 +1529,7 @@ function buildElementAttributes(node, varName, status, b) {
1516
1529
  }
1517
1530
  }
1518
1531
  }
1519
- function buildBindGroupAttribute(node, varName, name, value, status, b) {
1532
+ function buildBindGroupAttribute(node, varName, value, status, b) {
1520
1533
  let eventName = "change";
1521
1534
  let inputValue = node.attributes.find((a) => a.name === "value")?.value;
1522
1535
  let set = `${value} == ${inputValue}`;
@@ -1563,7 +1576,7 @@ function buildBindAttribute(node, varName, name, value, status, b) {
1563
1576
  status.imports.add("t_event");
1564
1577
  b.append(`t_event(${varName}, "${eventName}", (e) => ${value} = ${inputValue});`);
1565
1578
  }
1566
- function buildEventAttribute(node, varName, name, value, status, b) {
1579
+ function buildEventAttribute(varName, name, value, status, b) {
1567
1580
  for (let varName2 of status.forVarNames) {
1568
1581
  value = value.replaceAll(
1569
1582
  new RegExp(`([\\s\\(\\[])${varName2}([\\s\\.\\(\\)\\[\\];])`, "g"),
@@ -1579,18 +1592,18 @@ function buildTransitionAttribute(node, varName, name, value, status, b) {
1579
1592
  let entryVarName = nextVarName("trans_in", status);
1580
1593
  let exitVarName = nextVarName("trans_out", status);
1581
1594
  if (name === ":transition") {
1582
- b.append(`const ${entryVarName} = ${getAnimationDetails(value, status)};`);
1595
+ b.append(`const ${entryVarName} = ${getAnimationDetails(value)};`);
1583
1596
  b.append(`const ${exitVarName} = ${entryVarName};`);
1584
1597
  b.append(`t_animate(${varName}, ${entryVarName}, ${exitVarName});`);
1585
1598
  } else if (name === ":transition-in") {
1586
1599
  let outAttribute = node.attributes.find((a) => a.name === ":transition-out");
1587
1600
  if (outAttribute && outAttribute.value) {
1588
1601
  let outValue = trimMatched(outAttribute.value, "{", "}");
1589
- b.append(`const ${entryVarName} = ${getAnimationDetails(value, status)};`);
1590
- b.append(`const ${exitVarName} = ${getAnimationDetails(outValue, status)};`);
1602
+ b.append(`const ${entryVarName} = ${getAnimationDetails(value)};`);
1603
+ b.append(`const ${exitVarName} = ${getAnimationDetails(outValue)};`);
1591
1604
  b.append(`t_animate(${varName}, ${entryVarName}, ${exitVarName});`);
1592
1605
  } else {
1593
- b.append(`const ${entryVarName} = ${getAnimationDetails(value, status)};`);
1606
+ b.append(`const ${entryVarName} = ${getAnimationDetails(value)};`);
1594
1607
  b.append(`t_animate(${varName}, ${entryVarName});`);
1595
1608
  }
1596
1609
  } else if (name === ":transition-out") {
@@ -1598,13 +1611,13 @@ function buildTransitionAttribute(node, varName, name, value, status, b) {
1598
1611
  if (inAttribute) {
1599
1612
  return;
1600
1613
  } else {
1601
- b.append(`const ${exitVarName} = ${getAnimationDetails(value, status)};`);
1614
+ b.append(`const ${exitVarName} = ${getAnimationDetails(value)};`);
1602
1615
  b.append(`t_animate(${varName}, null, ${entryVarName});`);
1603
1616
  }
1604
1617
  } else {
1605
1618
  }
1606
1619
  }
1607
- function getAnimationDetails(value, status) {
1620
+ function getAnimationDetails(value) {
1608
1621
  let parts = [];
1609
1622
  let start = 0;
1610
1623
  let squareCount = 0;
@@ -1663,7 +1676,7 @@ function buildHeadNode2(node, status, b) {
1663
1676
  }
1664
1677
 
1665
1678
  // src/compile/build/client/buildSlotNode.ts
1666
- function buildSlotNode(node, status, b, parentName, anchorName) {
1679
+ function buildSlotNode(node, status, b) {
1667
1680
  let slotName = node.attributes.find((a) => a.name === "name")?.value;
1668
1681
  slotName = slotName ? trimQuotes(slotName) : "_";
1669
1682
  const propsName = nextVarName("sprops", status);
@@ -1698,9 +1711,13 @@ function buildSlotNode(node, status, b, parentName, anchorName) {
1698
1711
  const slotParentName = node.parentName;
1699
1712
  const slotAnchorName = node.varName;
1700
1713
  b.append(`if ($slots && $slots["${slotName}"]) {`);
1701
- b.append(
1702
- `$slots["${slotName}"](${slotParentName}, ${slotAnchorName}, ${slotHasProps ? propsName : "undefined"}, $context)`
1703
- );
1714
+ let params = [
1715
+ slotParentName,
1716
+ slotAnchorName,
1717
+ slotHasProps ? propsName : "undefined",
1718
+ status.contextProps.length ? "$context" : "undefined"
1719
+ ];
1720
+ b.append(`$slots["${slotName}"](${params.join(", ")})`);
1704
1721
  const fill = node.children.find((c) => isSpecialNode(c) && c.tagName === ":fill");
1705
1722
  if (fill && isSpecialNode(fill) && fill.children.length) {
1706
1723
  b.append(`} else {`);
@@ -1719,18 +1736,18 @@ function buildSlotNode(node, status, b, parentName, anchorName) {
1719
1736
  }
1720
1737
 
1721
1738
  // src/compile/build/client/buildSpecialNode.ts
1722
- function buildSpecialNode(node, status, b, parentName, anchorName, root = false) {
1739
+ function buildSpecialNode(node, status, b, parentName, root = false) {
1723
1740
  switch (node.tagName) {
1724
1741
  case ":slot": {
1725
- buildSlotNode(node, status, b, parentName, anchorName);
1742
+ buildSlotNode(node, status, b);
1726
1743
  break;
1727
1744
  }
1728
1745
  case ":element": {
1729
- buildElementNode(node, status, b, parentName, anchorName, root);
1746
+ buildElementNode(node, status, b, parentName, root);
1730
1747
  break;
1731
1748
  }
1732
1749
  case ":component": {
1733
- buildComponentNode(node, status, b, parentName, anchorName, root);
1750
+ buildComponentNode(node, status, b, root);
1734
1751
  break;
1735
1752
  }
1736
1753
  case ":head": {
@@ -1748,7 +1765,7 @@ function buildSpecialNode(node, status, b, parentName, anchorName, root = false)
1748
1765
  }
1749
1766
 
1750
1767
  // src/compile/build/client/buildTextNode.ts
1751
- function buildTextNode(node, status, b, parentName, anchorName) {
1768
+ function buildTextNode(node, status, b) {
1752
1769
  let content = node.content || "";
1753
1770
  if (!status.preserveWhitespace) {
1754
1771
  content = content.replaceAll(/\s+/g, " ");
@@ -1838,23 +1855,23 @@ function buildNode(node, status, b, parentName, anchorName, root = false) {
1838
1855
  break;
1839
1856
  }
1840
1857
  case "control": {
1841
- buildControlNode(node, status, b, parentName, anchorName);
1858
+ buildControlNode(node, status, b);
1842
1859
  break;
1843
1860
  }
1844
1861
  case "component": {
1845
- buildComponentNode(node, status, b, parentName, anchorName, root);
1862
+ buildComponentNode(node, status, b, root);
1846
1863
  break;
1847
1864
  }
1848
1865
  case "element": {
1849
- buildElementNode(node, status, b, parentName, anchorName, root);
1866
+ buildElementNode(node, status, b, parentName, root);
1850
1867
  break;
1851
1868
  }
1852
1869
  case "text": {
1853
- buildTextNode(node, status, b, parentName, anchorName);
1870
+ buildTextNode(node, status, b);
1854
1871
  break;
1855
1872
  }
1856
1873
  case "special": {
1857
- buildSpecialNode(node, status, b, parentName, anchorName, root);
1874
+ buildSpecialNode(node, status, b, parentName, root);
1858
1875
  break;
1859
1876
  }
1860
1877
  default: {
@@ -1895,8 +1912,8 @@ var importsMap = {
1895
1912
  t_elm: 'import { t_elm } from "${folder}";',
1896
1913
  t_txt: 'import { t_txt } from "${folder}";',
1897
1914
  t_cmt: 'import { t_cmt } from "${folder}";',
1898
- ListItem: 'import type { ListItem } from "${folder}";',
1899
- SlotRender: 'import type { SlotRender } from "${folder}";'
1915
+ ListItem: 'import { type ListItem } from "${folder}";',
1916
+ SlotRender: 'import { type SlotRender } from "${folder}";'
1900
1917
  };
1901
1918
  function buildCode(template, options) {
1902
1919
  let b = new Builder();
@@ -1924,13 +1941,14 @@ function buildTemplate(template, imports, b) {
1924
1941
  for (let i = 0; i < script.length; i++) {
1925
1942
  if (script.substring(i, i + "/* @params */".length) === "/* @params */") {
1926
1943
  b.append(script.substring(marker, i));
1927
- b.append(
1928
- `$parent: ParentNode,
1929
- $anchor: Node | null,
1930
- ${current.params || "$props?: Record<PropertyKey, any>"},
1931
- $context?: Record<PropertyKey, any>,
1932
- $slots?: Record<string, SlotRender>`
1933
- );
1944
+ let params = [
1945
+ "$parent: ParentNode",
1946
+ "$anchor: Node | null",
1947
+ current.params ?? `${current.props?.length ? "$props" : "// @ts-ignore\n$props?"}: Record<PropertyKey, any>`,
1948
+ `${current.contextProps?.length ? "" : "// @ts-ignore\n"}$context?: Record<PropertyKey, any>`,
1949
+ `${current.slotProps?.length ? "" : "// @ts-ignore\n"}$slots?: Record<string, SlotRender>`
1950
+ ];
1951
+ b.append(params.join(",\n"));
1934
1952
  marker = i + "/* @params */".length;
1935
1953
  } else if (script.substring(i, i + "/* @start */".length) === "/* @start */") {
1936
1954
  b.append(script.substring(marker, i));
@@ -1948,6 +1966,8 @@ function buildTemplate(template, imports, b) {
1948
1966
  const status = {
1949
1967
  imports,
1950
1968
  props: current.props || [],
1969
+ contextProps: current.contextProps || [],
1970
+ slotProps: current.slotProps || [],
1951
1971
  styleHash: current.style?.hash || "",
1952
1972
  varNames: {},
1953
1973
  fragmentStack: [],
@@ -2017,7 +2037,7 @@ function buildServerComponentNode(node, status, b) {
2017
2037
  const componentHasProps = node.attributes.length;
2018
2038
  const propsName = componentHasProps ? nextVarName("props", status) : "undefined";
2019
2039
  if (componentHasProps) {
2020
- b.append(`const ${propsName} = {};`);
2040
+ b.append(`const ${propsName}: any = {};`);
2021
2041
  for (let { name, value } of node.attributes) {
2022
2042
  if (name.startsWith("{") && name.endsWith("}")) {
2023
2043
  name = name.substring(1, name.length - 1);
@@ -2042,14 +2062,18 @@ function buildServerComponentNode(node, status, b) {
2042
2062
  const componentHasSlots = node.children.length;
2043
2063
  const slotsName = componentHasSlots ? nextVarName("slots", status) : "undefined";
2044
2064
  if (componentHasSlots) {
2045
- b.append(`const ${slotsName} = {};`);
2065
+ b.append(`const ${slotsName}: Record<string, ServerSlotRender> = {};`);
2046
2066
  for (let slot of node.children) {
2047
2067
  if (isSpecialNode(slot)) {
2048
2068
  const nameAttribute = slot.attributes.find((a) => a.name === "name");
2049
2069
  const slotName = nameAttribute?.value ? trimQuotes(nameAttribute.value) : "_";
2050
- b.append(
2051
- `${slotsName}["${slotName}"] = ($sprops: Record<PropertyKey, any>, $context: Record<PropertyKey, any>) => {`
2052
- );
2070
+ const slotParams = [
2071
+ "// @ts-ignore\n$sprops?: Record<PropertyKey, any>",
2072
+ "// @ts-ignore\n$context?: Record<PropertyKey, any>"
2073
+ ];
2074
+ b.append(`${slotsName}["${slotName}"] = (
2075
+ ${slotParams.join(",\n")}
2076
+ ) => {`);
2053
2077
  b.append(`let $output = "";`);
2054
2078
  for (let child of slot.children) {
2055
2079
  buildServerNode(child, status, b);
@@ -2076,6 +2100,9 @@ function buildServerComponentNode(node, status, b) {
2076
2100
  }
2077
2101
  b.append("");
2078
2102
  b.append(`$output += ${componentName}(${renderParams})`);
2103
+ if (node.tagName === ":component") {
2104
+ status.output += ANCHOR_COMMENT;
2105
+ }
2079
2106
  }
2080
2107
 
2081
2108
  // src/compile/build/server/buildServerAwaitNode.ts
@@ -2132,7 +2159,7 @@ function buildServerForBranch(node, status, b) {
2132
2159
  }
2133
2160
 
2134
2161
  // src/compile/build/server/buildServerHtmlNode.ts
2135
- function buildServerHtmlNode(node, status, b) {
2162
+ function buildServerHtmlNode(node, status) {
2136
2163
  status.output += HYDRATION_START_COMMENT;
2137
2164
  for (let branch of node.children) {
2138
2165
  if (isControlNode(branch)) {
@@ -2215,7 +2242,7 @@ function buildServerSwitchNode(node, status, b) {
2215
2242
  status.output = "";
2216
2243
  }
2217
2244
  b.append(`${node.statement} {`);
2218
- for (let [i, branch] of node.children.filter((c) => isControlNode(c)).entries()) {
2245
+ for (let branch of node.children.filter((c) => isControlNode(c))) {
2219
2246
  if (isControlNode(branch)) {
2220
2247
  buildServerSwitchBranch(branch, status, b);
2221
2248
  }
@@ -2251,6 +2278,7 @@ function buildServerControlNode(node, status, b) {
2251
2278
  }
2252
2279
  case "@switch group": {
2253
2280
  buildServerSwitchNode(node, status, b);
2281
+ break;
2254
2282
  }
2255
2283
  case "@case":
2256
2284
  case "@default": {
@@ -2281,7 +2309,7 @@ function buildServerControlNode(node, status, b) {
2281
2309
  break;
2282
2310
  }
2283
2311
  case "@html group": {
2284
- buildServerHtmlNode(node, status, b);
2312
+ buildServerHtmlNode(node, status);
2285
2313
  break;
2286
2314
  }
2287
2315
  case "@html": {
@@ -2336,7 +2364,7 @@ var voidTags_default = voidTags;
2336
2364
 
2337
2365
  // src/compile/build/server/buildServerElementNode.ts
2338
2366
  function buildServerElementNode(node, status, b) {
2339
- let attributes = buildElementAttributes2(node, status, b);
2367
+ let attributes = buildElementAttributes2(node, status);
2340
2368
  if (attributes.length) {
2341
2369
  attributes = " " + attributes;
2342
2370
  }
@@ -2358,7 +2386,7 @@ function buildServerElementNode(node, status, b) {
2358
2386
  status.output += `</${tagName}>`;
2359
2387
  }
2360
2388
  }
2361
- function buildElementAttributes2(node, status, b) {
2389
+ function buildElementAttributes2(node, status) {
2362
2390
  let attributes = [];
2363
2391
  for (let { name, value } of node.attributes) {
2364
2392
  if (name === "self" && node.tagName === ":element") {
@@ -2445,7 +2473,7 @@ function buildServerSlotNode(node, status, b) {
2445
2473
  const slotAttributes = node.attributes.filter((a) => a.name !== "name");
2446
2474
  const slotHasProps = slotAttributes.length;
2447
2475
  if (slotHasProps) {
2448
- b.append(`const ${propsName} = {};`);
2476
+ b.append(`const ${propsName}: any = {};`);
2449
2477
  for (let { name, value } of slotAttributes) {
2450
2478
  if (name.startsWith("{") && name.endsWith("}")) {
2451
2479
  name = name.substring(1, name.length - 1);
@@ -2512,7 +2540,7 @@ function buildServerSpecialNode(node, status, b) {
2512
2540
  }
2513
2541
 
2514
2542
  // src/compile/build/server/buildServerTextNode.ts
2515
- function buildServerTextNode(node, status, b) {
2543
+ function buildServerTextNode(node, status) {
2516
2544
  let content = node.content || "";
2517
2545
  if (!status.preserveWhitespace) {
2518
2546
  content = content.replaceAll(/\s+/g, " ");
@@ -2600,7 +2628,7 @@ function buildServerNode(node, status, b) {
2600
2628
  break;
2601
2629
  }
2602
2630
  case "text": {
2603
- buildServerTextNode(node, status, b);
2631
+ buildServerTextNode(node, status);
2604
2632
  break;
2605
2633
  }
2606
2634
  case "special": {
@@ -2623,7 +2651,7 @@ var importsMap2 = {
2623
2651
  t_attr: 'import { t_attr } from "${folder}";',
2624
2652
  t_class: 'import { t_class } from "${folder}";',
2625
2653
  t_style: 'import { t_style } from "${folder}";',
2626
- ServerSlotRender: 'import type { ServerSlotRender } from "${folder}";'
2654
+ ServerSlotRender: 'import { type ServerSlotRender } from "${folder}";'
2627
2655
  };
2628
2656
  function buildServerCode(template, options) {
2629
2657
  let b = new Builder();
@@ -2651,17 +2679,15 @@ function buildServerTemplate(template, imports, b, options) {
2651
2679
  for (let i = 0; i < script.length; i++) {
2652
2680
  if (script.substring(i, i + "/* @params */".length) === "/* @params */") {
2653
2681
  b.append(script.substring(marker, i));
2654
- b.append(
2655
- `${current.params || "$props?: Record<PropertyKey, any>"},
2656
- $context?: Record<PropertyKey, any>,
2657
- $slots?: Record<string, ServerSlotRender>`
2658
- );
2682
+ let params = [
2683
+ current.params ?? `${current.props?.length ? "$props" : "// @ts-ignore\n$props?"}: Record<PropertyKey, any>`,
2684
+ `${current.contextProps?.length ? "" : "// @ts-ignore\n"}$context?: Record<PropertyKey, any>`,
2685
+ `${current.slotProps?.length ? "" : "// @ts-ignore\n"}$slots?: Record<string, ServerSlotRender>`
2686
+ ];
2687
+ b.append(params.join(",\n"));
2659
2688
  marker = i + "/* @params */".length;
2660
2689
  } else if (script.substring(i, i + "/* @start */".length) === "/* @start */") {
2661
2690
  b.append(script.substring(marker, i));
2662
- if (current.props?.length) {
2663
- b.append(`$props ??= {};`);
2664
- }
2665
2691
  if (current.contextProps?.length) {
2666
2692
  b.append(`$context = Object.assign({}, $context);`);
2667
2693
  }
@@ -2711,9 +2737,9 @@ function build(template, options) {
2711
2737
  }
2712
2738
 
2713
2739
  // src/compile/buildType.ts
2714
- function buildType(name, template, options) {
2740
+ function buildType(template, options) {
2715
2741
  let b = new Builder();
2716
- b.append(`import type { SlotRender } from "${options?.renderFolder || "@torpor/view"}";`);
2742
+ b.append(`import { type SlotRender } from "${options?.renderFolder || "@torpor/view"}";`);
2717
2743
  for (let component of template.components) {
2718
2744
  b.append("");
2719
2745
  b.append(`
@@ -2807,7 +2833,7 @@ function parseInlineScript(status) {
2807
2833
  }
2808
2834
  } else if (accept('"', status) || accept("'", status)) {
2809
2835
  const char = status.source[status.i - 1];
2810
- for (let j = status.i + 1; j < status.source.length; j++) {
2836
+ for (let j = status.i; j < status.source.length; j++) {
2811
2837
  if (status.source[j] === char && status.source[j - 1] !== "\\") {
2812
2838
  status.i = j + 1;
2813
2839
  break;
@@ -2816,7 +2842,7 @@ function parseInlineScript(status) {
2816
2842
  } else if (accept("`", status)) {
2817
2843
  const char = status.source[status.i - 1];
2818
2844
  let level2 = 0;
2819
- for (let j = status.i + 1; j < status.source.length; j++) {
2845
+ for (let j = status.i; j < status.source.length; j++) {
2820
2846
  if (status.source[j] === char && status.source[j - 1] !== "\\" && level2 === 0) {
2821
2847
  status.i = j + 1;
2822
2848
  break;
@@ -3239,13 +3265,16 @@ function parseElement(status) {
3239
3265
  }
3240
3266
  current.stack.pop();
3241
3267
  }
3242
- if (!element.tagName.startsWith(":") && element.tagName.substring(0, 1) === element.tagName.substring(0, 1).toLocaleUpperCase()) {
3268
+ if (!element.tagName.startsWith(":") && /[A-Z]/.test(element.tagName[0])) {
3243
3269
  element.type = "component";
3244
3270
  slottifyChildNodes(element);
3245
3271
  }
3246
3272
  if (isSpecialNode(element)) {
3247
3273
  if (element.tagName === ":slot") {
3248
3274
  slottifyChildNodes(element);
3275
+ const current = status.components[status.components.length - 1];
3276
+ current.slotProps ??= [];
3277
+ current.slotProps.push(element.attributes.find((a) => a.name === "name")?.name ?? "default");
3249
3278
  } else if (element.tagName === ":component") {
3250
3279
  const selfAttribute = element.attributes.find((a) => a.name === "self");
3251
3280
  if (selfAttribute && selfAttribute.value) {
@@ -3608,12 +3637,12 @@ function parseCode(source) {
3608
3637
  }
3609
3638
  } else if (accept("function", status)) {
3610
3639
  consumeSpace(status);
3611
- if (source[status.i] === source[status.i].toLocaleUpperCase()) {
3640
+ if (/[A-Z]/.test(source[status.i])) {
3612
3641
  parseComponentStart(status);
3613
3642
  }
3614
3643
  } else if (accept("const", status)) {
3615
3644
  consumeSpace(status);
3616
- if (source[status.i] === source[status.i].toLocaleUpperCase()) {
3645
+ if (/[A-Z]/.test(source[status.i])) {
3617
3646
  const start = status.i;
3618
3647
  consumeAlphaNumeric(status);
3619
3648
  consumeSpace(status);
@@ -3662,7 +3691,8 @@ function parseCode(source) {
3662
3691
  } : void 0,
3663
3692
  style: c.style,
3664
3693
  props: c.props,
3665
- contextProps: c.contextProps
3694
+ contextProps: c.contextProps,
3695
+ slotProps: c.slotProps
3666
3696
  };
3667
3697
  })
3668
3698
  } : void 0