@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.js CHANGED
@@ -1,3 +1,5 @@
1
+ import "./chunk-EGRHWZRV.js";
2
+
1
3
  // src/compile/utils/Builder.ts
2
4
  var Builder = class {
3
5
  #text = "";
@@ -20,7 +22,6 @@ var Builder = class {
20
22
  if (text[i] === "}" || text[i] === ")" || text[i] === "]") {
21
23
  this.#space -= 1;
22
24
  }
23
- let gotText = false;
24
25
  this.#text += " ".repeat(Math.max(0, this.#space));
25
26
  const start = i;
26
27
  while (i < text.length && text[i] !== "\n") {
@@ -252,7 +253,7 @@ function buildAddFragment(node, status, b, parentName, anchorName) {
252
253
  const fragmentName = `t_fragment_${fragment.number}`;
253
254
  status.imports.add("t_add_fragment");
254
255
  b.append(`t_add_fragment(${fragmentName}, ${parentName}, ${anchorName});`);
255
- if (fragment.endVarName && node.children.length > 1) {
256
+ if (fragment.endVarName) {
256
257
  status.imports.add("t_next");
257
258
  b.append(`t_next(${fragment.endVarName});`);
258
259
  }
@@ -292,7 +293,7 @@ function isTextNode(node) {
292
293
 
293
294
  // src/compile/build/utils/isReactiveAttribute.ts
294
295
  function isReactiveAttribute(name, value) {
295
- return name.startsWith("{") && name.endsWith("}") || value.startsWith("{") && value.endsWith("}") || name.startsWith("on");
296
+ return isFullyReactive(name) || isReactive(value) || name.startsWith("on");
296
297
  }
297
298
 
298
299
  // src/compile/build/client/buildFragment.ts
@@ -336,7 +337,7 @@ function buildFragment(node, status, b, parentName, anchorName) {
336
337
  status.imports.add("t_fragment");
337
338
  const fragmentText = fragment.text.replaceAll("`", "\\`").replaceAll(/\s+/g, " ");
338
339
  b.append(
339
- `const ${fragmentName} = t_fragment($parent.ownerDocument, t_fragments, ${fragment.number}, \`${fragmentText}\`);`
340
+ `const ${fragmentName} = t_fragment($parent.ownerDocument!, t_fragments, ${fragment.number}, \`${fragmentText}\`);`
340
341
  );
341
342
  let fragmentPath = { parent: null, type: "fragment", children: [] };
342
343
  let varPaths = /* @__PURE__ */ new Map();
@@ -365,6 +366,7 @@ function maybeAddRootNodeDeclaration(node, fragment, fragmentName, status, b, va
365
366
  status.imports.add("t_root");
366
367
  const rootName = `t_root_${fragment.number}`;
367
368
  const rootPath = `t_root(${fragmentName})`;
369
+ b.append("// @ts-ignore");
368
370
  b.append(`const ${rootName} = ${rootPath};`);
369
371
  varPaths.set(rootPath, rootName);
370
372
  }
@@ -562,6 +564,9 @@ function declareElementFragmentVars(fragment, node, path, status, b, parentName,
562
564
  if (node.tagName === ":element") {
563
565
  b.append(`let ${node.varName} = ${varPath} as ${elementTypeName(node)};`);
564
566
  } else {
567
+ if (topLevel && lastChild) {
568
+ b.append("// @ts-ignore");
569
+ }
565
570
  b.append(`const ${node.varName} = ${varPath} as ${elementTypeName(node)};`);
566
571
  }
567
572
  }
@@ -637,6 +642,9 @@ function declareTextFragmentVars(fragment, node, path, status, b, varPaths, last
637
642
  if (status.options?.useCreateElement) {
638
643
  b.append(`let ${node.varName};`);
639
644
  } else {
645
+ if (topLevel && lastChild) {
646
+ b.append("// @ts-ignore");
647
+ }
640
648
  b.append(`const ${node.varName} = ${varPath};`);
641
649
  }
642
650
  }
@@ -810,7 +818,7 @@ function buildRun(functionName, functionBody, status, b) {
810
818
  b.append(`$run(function ${functionName}() {`);
811
819
  for (let varName of status.forVarNames) {
812
820
  functionBody = functionBody.replaceAll(
813
- new RegExp(`([\\s\\(\\[])${varName}([\\s\\.\\(\\)\\[\\];])`, "g"),
821
+ new RegExp(`([\\s\\(\\[\\{])${varName}([\\s\\.\\(\\)\\[\\]\\};])`, "g"),
814
822
  `$1t_item.data.${varName}$2`
815
823
  );
816
824
  }
@@ -819,13 +827,13 @@ function buildRun(functionName, functionBody, status, b) {
819
827
  }
820
828
 
821
829
  // src/compile/build/client/buildComponentNode.ts
822
- function buildComponentNode(node, status, b, parentName, anchorName, root = false) {
830
+ function buildComponentNode(node, status, b, root = false) {
823
831
  b.append("");
824
832
  b.append("/* @component */");
825
833
  const componentHasProps = node.attributes.length || root;
826
834
  const propsName = componentHasProps ? nextVarName("props", status) : "undefined";
827
835
  if (componentHasProps) {
828
- b.append(`const ${propsName} = {};`);
836
+ b.append(`const ${propsName}: any = {};`);
829
837
  for (let { name, value } of node.attributes) {
830
838
  if (name === "self" && node.tagName === ":component") {
831
839
  } else if (name.startsWith("{") && name.endsWith("}")) {
@@ -868,14 +876,20 @@ function buildComponentNode(node, status, b, parentName, anchorName, root = fals
868
876
  const componentHasSlots = node.children.length;
869
877
  const slotsName = componentHasSlots ? nextVarName("slots", status) : "undefined";
870
878
  if (componentHasSlots) {
871
- b.append(`const ${slotsName} = {};`);
879
+ b.append(`const ${slotsName}: Record<string, SlotRender> = {};`);
872
880
  for (let slot of node.children) {
873
881
  if (isSpecialNode(slot)) {
874
882
  const nameAttribute = slot.attributes.find((a) => a.name === "name");
875
883
  const slotName = nameAttribute?.value ? trimQuotes(nameAttribute.value) : "_";
876
- b.append(
877
- `${slotsName}["${slotName}"] = ($sparent: ParentNode, $sanchor: Node | null, $sprops: Record<PropertyKey, any>, $context: Record<PropertyKey, any>) => {`
878
- );
884
+ const slotParams = [
885
+ "$sparent: ParentNode",
886
+ "$sanchor: Node | null",
887
+ "//@ts-ignore\n$sprops?: Record<PropertyKey, any>",
888
+ "//@ts-ignore\n$context?: Record<PropertyKey, any>"
889
+ ];
890
+ b.append(`${slotsName}["${slotName}"] = (
891
+ ${slotParams.join(",\n")}
892
+ ) => {`);
879
893
  buildFragment(slot, status, b, "$sparent", "$sanchor");
880
894
  status.fragmentStack.push({
881
895
  fragment: slot.fragment,
@@ -907,7 +921,7 @@ function buildComponentNode(node, status, b, parentName, anchorName, root = fals
907
921
  }
908
922
 
909
923
  // src/compile/build/client/buildAwaitNode.ts
910
- function buildAwaitNode(node, status, b, parentName, anchorName) {
924
+ function buildAwaitNode(node, status, b) {
911
925
  const awaitParentName = node.parentName;
912
926
  const awaitAnchorName = node.varName;
913
927
  const awaitRangeName = nextVarName("await_range", status);
@@ -1001,7 +1015,7 @@ function trimEnd(text, char) {
1001
1015
  var forLoopRegex = /for\s*\((.+?);.*?;.*?\)/;
1002
1016
  var forLoopVarsRegex = /(?:let\s+|var\s+){0,1}([^\s,;+=]+)(?:\s*=\s*[^,;]+){0,1}/g;
1003
1017
  var forOfRegex = /for\s*\(\s*(?:let\s*|var\s*){0,1}(.+?)\s+(?:of|in).*?\)/;
1004
- function buildForNode(node, status, b, parentName, anchorName) {
1018
+ function buildForNode(node, status, b) {
1005
1019
  const forParentName = node.parentName;
1006
1020
  const forAnchorName = node.varName;
1007
1021
  node = node.children[0];
@@ -1086,7 +1100,7 @@ function buildForItem(node, status, b, parentName) {
1086
1100
  }
1087
1101
 
1088
1102
  // src/compile/build/client/buildHtmlNode.ts
1089
- function buildHtmlNode(node, status, b, parentName, anchorName) {
1103
+ function buildHtmlNode(node, status, b) {
1090
1104
  const htmlAnchorName = node.varName;
1091
1105
  const htmlParentName = node.parentName || htmlAnchorName + ".parentNode";
1092
1106
  const htmlRangeName = nextVarName("html_range", status);
@@ -1115,7 +1129,7 @@ function buildHtmlBranch(node, status, b, parentName, rangeName) {
1115
1129
  }
1116
1130
 
1117
1131
  // src/compile/build/client/buildIfNode.ts
1118
- function buildIfNode(node, status, b, parentName, anchorName) {
1132
+ function buildIfNode(node, status, b) {
1119
1133
  const ifAnchorName = node.varName;
1120
1134
  const ifParentName = node.parentName || ifAnchorName + ".parentNode";
1121
1135
  const ifRangeName = nextVarName("if_range", status);
@@ -1161,7 +1175,7 @@ function buildIfBranch(node, status, b, parentName, rangeName, index) {
1161
1175
  }
1162
1176
 
1163
1177
  // src/compile/build/client/buildReplaceNode.ts
1164
- function buildReplaceNode(node, status, b, parentName, anchorName) {
1178
+ function buildReplaceNode(node, status, b) {
1165
1179
  const replaceAnchorName = node.varName;
1166
1180
  const replaceParentName = node.parentName || replaceAnchorName + ".parentNode";
1167
1181
  const replaceRangeName = nextVarName("replace_range", status);
@@ -1207,7 +1221,7 @@ function maybeAppend(text, end) {
1207
1221
  }
1208
1222
 
1209
1223
  // src/compile/build/client/buildSwitchNode.ts
1210
- function buildSwitchNode(node, status, b, parentName, anchorName) {
1224
+ function buildSwitchNode(node, status, b) {
1211
1225
  const switchParentName = node.parentName;
1212
1226
  const switchAnchorName = node.varName;
1213
1227
  const switchRangeName = nextVarName("switch_range", status);
@@ -1256,10 +1270,10 @@ function buildSwitchBranch(node, status, b, parentName, rangeName, index) {
1256
1270
  }
1257
1271
 
1258
1272
  // src/compile/build/client/buildControlNode.ts
1259
- function buildControlNode(node, status, b, parentName, anchorName) {
1273
+ function buildControlNode(node, status, b) {
1260
1274
  switch (node.operation) {
1261
1275
  case "@if group": {
1262
- buildIfNode(node, status, b, parentName, anchorName);
1276
+ buildIfNode(node, status, b);
1263
1277
  break;
1264
1278
  }
1265
1279
  case "@if":
@@ -1268,14 +1282,15 @@ function buildControlNode(node, status, b, parentName, anchorName) {
1268
1282
  break;
1269
1283
  }
1270
1284
  case "@switch group": {
1271
- buildSwitchNode(node, status, b, parentName, anchorName);
1285
+ buildSwitchNode(node, status, b);
1286
+ break;
1272
1287
  }
1273
1288
  case "@case":
1274
1289
  case "@default": {
1275
1290
  break;
1276
1291
  }
1277
1292
  case "@for group": {
1278
- buildForNode(node, status, b, parentName, anchorName);
1293
+ buildForNode(node, status, b);
1279
1294
  break;
1280
1295
  }
1281
1296
  case "@for":
@@ -1283,7 +1298,7 @@ function buildControlNode(node, status, b, parentName, anchorName) {
1283
1298
  break;
1284
1299
  }
1285
1300
  case "@await group": {
1286
- buildAwaitNode(node, status, b, parentName, anchorName);
1301
+ buildAwaitNode(node, status, b);
1287
1302
  break;
1288
1303
  }
1289
1304
  case "@await":
@@ -1292,14 +1307,14 @@ function buildControlNode(node, status, b, parentName, anchorName) {
1292
1307
  break;
1293
1308
  }
1294
1309
  case "@replace group": {
1295
- buildReplaceNode(node, status, b, parentName, anchorName);
1310
+ buildReplaceNode(node, status, b);
1296
1311
  break;
1297
1312
  }
1298
1313
  case "@replace": {
1299
1314
  break;
1300
1315
  }
1301
1316
  case "@html group": {
1302
- buildHtmlNode(node, status, b, parentName, anchorName);
1317
+ buildHtmlNode(node, status, b);
1303
1318
  break;
1304
1319
  }
1305
1320
  case "@html": {
@@ -1338,7 +1353,7 @@ function buildRun2(functionName, functionBody, status, b) {
1338
1353
  }
1339
1354
 
1340
1355
  // src/compile/build/client/buildElementNode.ts
1341
- function buildElementNode(node, status, b, parentName, anchorName, root = false) {
1356
+ function buildElementNode(node, status, b, parentName, root = false) {
1342
1357
  if (status.inHead) {
1343
1358
  if (node.tagName === "title") {
1344
1359
  buildTitleNode(node, status, b);
@@ -1461,13 +1476,13 @@ function buildElementAttributes(node, varName, status, b) {
1461
1476
  if (name === ":self") {
1462
1477
  b.append(`${value} = ${varName};`);
1463
1478
  } else if (name === ":group") {
1464
- buildBindGroupAttribute(node, varName, name, value, status, b);
1479
+ buildBindGroupAttribute(node, varName, value, status, b);
1465
1480
  } else if (name === ":value" || name === ":checked") {
1466
1481
  buildBindAttribute(node, varName, name, value, status, b);
1467
1482
  } else if (name === ":onmount") {
1468
1483
  buildRun2("elMount", `return (${trimEnd(value.trim(), ";")})(${varName});`, status, b);
1469
1484
  } else if (name.startsWith("on")) {
1470
- buildEventAttribute(node, varName, name, value, status, b);
1485
+ buildEventAttribute(varName, name, value, status, b);
1471
1486
  } else if (name.startsWith(":transition")) {
1472
1487
  buildTransitionAttribute(node, varName, name, value, status, b);
1473
1488
  } else if (name === "class") {
@@ -1477,7 +1492,7 @@ function buildElementAttributes(node, varName, status, b) {
1477
1492
  buildRun("setClasses", `${varName}.className = t_class(${value});`, status, b);
1478
1493
  } else if (name === ":style") {
1479
1494
  status.imports.add("t_style");
1480
- buildRun("setStyles", `${varName}.style = t_style(${value});`, status, b);
1495
+ buildRun("setStyles", `${varName}.setAttribute("style", t_style(${value}));`, status, b);
1481
1496
  } else if (name.includes("-")) {
1482
1497
  status.imports.add("t_attribute");
1483
1498
  buildRun("setDataAttribute", `t_attribute(${varName}, "${name}", ${value});`, status, b);
@@ -1488,7 +1503,7 @@ function buildElementAttributes(node, varName, status, b) {
1488
1503
  }
1489
1504
  }
1490
1505
  }
1491
- function buildBindGroupAttribute(node, varName, name, value, status, b) {
1506
+ function buildBindGroupAttribute(node, varName, value, status, b) {
1492
1507
  let eventName = "change";
1493
1508
  let inputValue = node.attributes.find((a) => a.name === "value")?.value;
1494
1509
  let set = `${value} == ${inputValue}`;
@@ -1535,7 +1550,7 @@ function buildBindAttribute(node, varName, name, value, status, b) {
1535
1550
  status.imports.add("t_event");
1536
1551
  b.append(`t_event(${varName}, "${eventName}", (e) => ${value} = ${inputValue});`);
1537
1552
  }
1538
- function buildEventAttribute(node, varName, name, value, status, b) {
1553
+ function buildEventAttribute(varName, name, value, status, b) {
1539
1554
  for (let varName2 of status.forVarNames) {
1540
1555
  value = value.replaceAll(
1541
1556
  new RegExp(`([\\s\\(\\[])${varName2}([\\s\\.\\(\\)\\[\\];])`, "g"),
@@ -1551,18 +1566,18 @@ function buildTransitionAttribute(node, varName, name, value, status, b) {
1551
1566
  let entryVarName = nextVarName("trans_in", status);
1552
1567
  let exitVarName = nextVarName("trans_out", status);
1553
1568
  if (name === ":transition") {
1554
- b.append(`const ${entryVarName} = ${getAnimationDetails(value, status)};`);
1569
+ b.append(`const ${entryVarName} = ${getAnimationDetails(value)};`);
1555
1570
  b.append(`const ${exitVarName} = ${entryVarName};`);
1556
1571
  b.append(`t_animate(${varName}, ${entryVarName}, ${exitVarName});`);
1557
1572
  } else if (name === ":transition-in") {
1558
1573
  let outAttribute = node.attributes.find((a) => a.name === ":transition-out");
1559
1574
  if (outAttribute && outAttribute.value) {
1560
1575
  let outValue = trimMatched(outAttribute.value, "{", "}");
1561
- b.append(`const ${entryVarName} = ${getAnimationDetails(value, status)};`);
1562
- b.append(`const ${exitVarName} = ${getAnimationDetails(outValue, status)};`);
1576
+ b.append(`const ${entryVarName} = ${getAnimationDetails(value)};`);
1577
+ b.append(`const ${exitVarName} = ${getAnimationDetails(outValue)};`);
1563
1578
  b.append(`t_animate(${varName}, ${entryVarName}, ${exitVarName});`);
1564
1579
  } else {
1565
- b.append(`const ${entryVarName} = ${getAnimationDetails(value, status)};`);
1580
+ b.append(`const ${entryVarName} = ${getAnimationDetails(value)};`);
1566
1581
  b.append(`t_animate(${varName}, ${entryVarName});`);
1567
1582
  }
1568
1583
  } else if (name === ":transition-out") {
@@ -1570,13 +1585,13 @@ function buildTransitionAttribute(node, varName, name, value, status, b) {
1570
1585
  if (inAttribute) {
1571
1586
  return;
1572
1587
  } else {
1573
- b.append(`const ${exitVarName} = ${getAnimationDetails(value, status)};`);
1588
+ b.append(`const ${exitVarName} = ${getAnimationDetails(value)};`);
1574
1589
  b.append(`t_animate(${varName}, null, ${entryVarName});`);
1575
1590
  }
1576
1591
  } else {
1577
1592
  }
1578
1593
  }
1579
- function getAnimationDetails(value, status) {
1594
+ function getAnimationDetails(value) {
1580
1595
  let parts = [];
1581
1596
  let start = 0;
1582
1597
  let squareCount = 0;
@@ -1635,7 +1650,7 @@ function buildHeadNode2(node, status, b) {
1635
1650
  }
1636
1651
 
1637
1652
  // src/compile/build/client/buildSlotNode.ts
1638
- function buildSlotNode(node, status, b, parentName, anchorName) {
1653
+ function buildSlotNode(node, status, b) {
1639
1654
  let slotName = node.attributes.find((a) => a.name === "name")?.value;
1640
1655
  slotName = slotName ? trimQuotes(slotName) : "_";
1641
1656
  const propsName = nextVarName("sprops", status);
@@ -1670,9 +1685,13 @@ function buildSlotNode(node, status, b, parentName, anchorName) {
1670
1685
  const slotParentName = node.parentName;
1671
1686
  const slotAnchorName = node.varName;
1672
1687
  b.append(`if ($slots && $slots["${slotName}"]) {`);
1673
- b.append(
1674
- `$slots["${slotName}"](${slotParentName}, ${slotAnchorName}, ${slotHasProps ? propsName : "undefined"}, $context)`
1675
- );
1688
+ let params = [
1689
+ slotParentName,
1690
+ slotAnchorName,
1691
+ slotHasProps ? propsName : "undefined",
1692
+ status.contextProps.length ? "$context" : "undefined"
1693
+ ];
1694
+ b.append(`$slots["${slotName}"](${params.join(", ")})`);
1676
1695
  const fill = node.children.find((c) => isSpecialNode(c) && c.tagName === ":fill");
1677
1696
  if (fill && isSpecialNode(fill) && fill.children.length) {
1678
1697
  b.append(`} else {`);
@@ -1691,18 +1710,18 @@ function buildSlotNode(node, status, b, parentName, anchorName) {
1691
1710
  }
1692
1711
 
1693
1712
  // src/compile/build/client/buildSpecialNode.ts
1694
- function buildSpecialNode(node, status, b, parentName, anchorName, root = false) {
1713
+ function buildSpecialNode(node, status, b, parentName, root = false) {
1695
1714
  switch (node.tagName) {
1696
1715
  case ":slot": {
1697
- buildSlotNode(node, status, b, parentName, anchorName);
1716
+ buildSlotNode(node, status, b);
1698
1717
  break;
1699
1718
  }
1700
1719
  case ":element": {
1701
- buildElementNode(node, status, b, parentName, anchorName, root);
1720
+ buildElementNode(node, status, b, parentName, root);
1702
1721
  break;
1703
1722
  }
1704
1723
  case ":component": {
1705
- buildComponentNode(node, status, b, parentName, anchorName, root);
1724
+ buildComponentNode(node, status, b, root);
1706
1725
  break;
1707
1726
  }
1708
1727
  case ":head": {
@@ -1720,7 +1739,7 @@ function buildSpecialNode(node, status, b, parentName, anchorName, root = false)
1720
1739
  }
1721
1740
 
1722
1741
  // src/compile/build/client/buildTextNode.ts
1723
- function buildTextNode(node, status, b, parentName, anchorName) {
1742
+ function buildTextNode(node, status, b) {
1724
1743
  let content = node.content || "";
1725
1744
  if (!status.preserveWhitespace) {
1726
1745
  content = content.replaceAll(/\s+/g, " ");
@@ -1810,23 +1829,23 @@ function buildNode(node, status, b, parentName, anchorName, root = false) {
1810
1829
  break;
1811
1830
  }
1812
1831
  case "control": {
1813
- buildControlNode(node, status, b, parentName, anchorName);
1832
+ buildControlNode(node, status, b);
1814
1833
  break;
1815
1834
  }
1816
1835
  case "component": {
1817
- buildComponentNode(node, status, b, parentName, anchorName, root);
1836
+ buildComponentNode(node, status, b, root);
1818
1837
  break;
1819
1838
  }
1820
1839
  case "element": {
1821
- buildElementNode(node, status, b, parentName, anchorName, root);
1840
+ buildElementNode(node, status, b, parentName, root);
1822
1841
  break;
1823
1842
  }
1824
1843
  case "text": {
1825
- buildTextNode(node, status, b, parentName, anchorName);
1844
+ buildTextNode(node, status, b);
1826
1845
  break;
1827
1846
  }
1828
1847
  case "special": {
1829
- buildSpecialNode(node, status, b, parentName, anchorName, root);
1848
+ buildSpecialNode(node, status, b, parentName, root);
1830
1849
  break;
1831
1850
  }
1832
1851
  default: {
@@ -1867,8 +1886,8 @@ var importsMap = {
1867
1886
  t_elm: 'import { t_elm } from "${folder}";',
1868
1887
  t_txt: 'import { t_txt } from "${folder}";',
1869
1888
  t_cmt: 'import { t_cmt } from "${folder}";',
1870
- ListItem: 'import type { ListItem } from "${folder}";',
1871
- SlotRender: 'import type { SlotRender } from "${folder}";'
1889
+ ListItem: 'import { type ListItem } from "${folder}";',
1890
+ SlotRender: 'import { type SlotRender } from "${folder}";'
1872
1891
  };
1873
1892
  function buildCode(template, options) {
1874
1893
  let b = new Builder();
@@ -1896,13 +1915,14 @@ function buildTemplate(template, imports, b) {
1896
1915
  for (let i = 0; i < script.length; i++) {
1897
1916
  if (script.substring(i, i + "/* @params */".length) === "/* @params */") {
1898
1917
  b.append(script.substring(marker, i));
1899
- b.append(
1900
- `$parent: ParentNode,
1901
- $anchor: Node | null,
1902
- ${current.params || "$props?: Record<PropertyKey, any>"},
1903
- $context?: Record<PropertyKey, any>,
1904
- $slots?: Record<string, SlotRender>`
1905
- );
1918
+ let params = [
1919
+ "$parent: ParentNode",
1920
+ "$anchor: Node | null",
1921
+ current.params ?? `${current.props?.length ? "$props" : "// @ts-ignore\n$props?"}: Record<PropertyKey, any>`,
1922
+ `${current.contextProps?.length ? "" : "// @ts-ignore\n"}$context?: Record<PropertyKey, any>`,
1923
+ `${current.slotProps?.length ? "" : "// @ts-ignore\n"}$slots?: Record<string, SlotRender>`
1924
+ ];
1925
+ b.append(params.join(",\n"));
1906
1926
  marker = i + "/* @params */".length;
1907
1927
  } else if (script.substring(i, i + "/* @start */".length) === "/* @start */") {
1908
1928
  b.append(script.substring(marker, i));
@@ -1920,6 +1940,8 @@ function buildTemplate(template, imports, b) {
1920
1940
  const status = {
1921
1941
  imports,
1922
1942
  props: current.props || [],
1943
+ contextProps: current.contextProps || [],
1944
+ slotProps: current.slotProps || [],
1923
1945
  styleHash: current.style?.hash || "",
1924
1946
  varNames: {},
1925
1947
  fragmentStack: [],
@@ -1989,7 +2011,7 @@ function buildServerComponentNode(node, status, b) {
1989
2011
  const componentHasProps = node.attributes.length;
1990
2012
  const propsName = componentHasProps ? nextVarName("props", status) : "undefined";
1991
2013
  if (componentHasProps) {
1992
- b.append(`const ${propsName} = {};`);
2014
+ b.append(`const ${propsName}: any = {};`);
1993
2015
  for (let { name, value } of node.attributes) {
1994
2016
  if (name.startsWith("{") && name.endsWith("}")) {
1995
2017
  name = name.substring(1, name.length - 1);
@@ -2014,14 +2036,18 @@ function buildServerComponentNode(node, status, b) {
2014
2036
  const componentHasSlots = node.children.length;
2015
2037
  const slotsName = componentHasSlots ? nextVarName("slots", status) : "undefined";
2016
2038
  if (componentHasSlots) {
2017
- b.append(`const ${slotsName} = {};`);
2039
+ b.append(`const ${slotsName}: Record<string, ServerSlotRender> = {};`);
2018
2040
  for (let slot of node.children) {
2019
2041
  if (isSpecialNode(slot)) {
2020
2042
  const nameAttribute = slot.attributes.find((a) => a.name === "name");
2021
2043
  const slotName = nameAttribute?.value ? trimQuotes(nameAttribute.value) : "_";
2022
- b.append(
2023
- `${slotsName}["${slotName}"] = ($sprops: Record<PropertyKey, any>, $context: Record<PropertyKey, any>) => {`
2024
- );
2044
+ const slotParams = [
2045
+ "// @ts-ignore\n$sprops?: Record<PropertyKey, any>",
2046
+ "// @ts-ignore\n$context?: Record<PropertyKey, any>"
2047
+ ];
2048
+ b.append(`${slotsName}["${slotName}"] = (
2049
+ ${slotParams.join(",\n")}
2050
+ ) => {`);
2025
2051
  b.append(`let $output = "";`);
2026
2052
  for (let child of slot.children) {
2027
2053
  buildServerNode(child, status, b);
@@ -2048,6 +2074,9 @@ function buildServerComponentNode(node, status, b) {
2048
2074
  }
2049
2075
  b.append("");
2050
2076
  b.append(`$output += ${componentName}(${renderParams})`);
2077
+ if (node.tagName === ":component") {
2078
+ status.output += ANCHOR_COMMENT;
2079
+ }
2051
2080
  }
2052
2081
 
2053
2082
  // src/compile/build/server/buildServerAwaitNode.ts
@@ -2104,7 +2133,7 @@ function buildServerForBranch(node, status, b) {
2104
2133
  }
2105
2134
 
2106
2135
  // src/compile/build/server/buildServerHtmlNode.ts
2107
- function buildServerHtmlNode(node, status, b) {
2136
+ function buildServerHtmlNode(node, status) {
2108
2137
  status.output += HYDRATION_START_COMMENT;
2109
2138
  for (let branch of node.children) {
2110
2139
  if (isControlNode(branch)) {
@@ -2187,7 +2216,7 @@ function buildServerSwitchNode(node, status, b) {
2187
2216
  status.output = "";
2188
2217
  }
2189
2218
  b.append(`${node.statement} {`);
2190
- for (let [i, branch] of node.children.filter((c) => isControlNode(c)).entries()) {
2219
+ for (let branch of node.children.filter((c) => isControlNode(c))) {
2191
2220
  if (isControlNode(branch)) {
2192
2221
  buildServerSwitchBranch(branch, status, b);
2193
2222
  }
@@ -2223,6 +2252,7 @@ function buildServerControlNode(node, status, b) {
2223
2252
  }
2224
2253
  case "@switch group": {
2225
2254
  buildServerSwitchNode(node, status, b);
2255
+ break;
2226
2256
  }
2227
2257
  case "@case":
2228
2258
  case "@default": {
@@ -2253,7 +2283,7 @@ function buildServerControlNode(node, status, b) {
2253
2283
  break;
2254
2284
  }
2255
2285
  case "@html group": {
2256
- buildServerHtmlNode(node, status, b);
2286
+ buildServerHtmlNode(node, status);
2257
2287
  break;
2258
2288
  }
2259
2289
  case "@html": {
@@ -2308,7 +2338,7 @@ var voidTags_default = voidTags;
2308
2338
 
2309
2339
  // src/compile/build/server/buildServerElementNode.ts
2310
2340
  function buildServerElementNode(node, status, b) {
2311
- let attributes = buildElementAttributes2(node, status, b);
2341
+ let attributes = buildElementAttributes2(node, status);
2312
2342
  if (attributes.length) {
2313
2343
  attributes = " " + attributes;
2314
2344
  }
@@ -2330,7 +2360,7 @@ function buildServerElementNode(node, status, b) {
2330
2360
  status.output += `</${tagName}>`;
2331
2361
  }
2332
2362
  }
2333
- function buildElementAttributes2(node, status, b) {
2363
+ function buildElementAttributes2(node, status) {
2334
2364
  let attributes = [];
2335
2365
  for (let { name, value } of node.attributes) {
2336
2366
  if (name === "self" && node.tagName === ":element") {
@@ -2417,7 +2447,7 @@ function buildServerSlotNode(node, status, b) {
2417
2447
  const slotAttributes = node.attributes.filter((a) => a.name !== "name");
2418
2448
  const slotHasProps = slotAttributes.length;
2419
2449
  if (slotHasProps) {
2420
- b.append(`const ${propsName} = {};`);
2450
+ b.append(`const ${propsName}: any = {};`);
2421
2451
  for (let { name, value } of slotAttributes) {
2422
2452
  if (name.startsWith("{") && name.endsWith("}")) {
2423
2453
  name = name.substring(1, name.length - 1);
@@ -2484,7 +2514,7 @@ function buildServerSpecialNode(node, status, b) {
2484
2514
  }
2485
2515
 
2486
2516
  // src/compile/build/server/buildServerTextNode.ts
2487
- function buildServerTextNode(node, status, b) {
2517
+ function buildServerTextNode(node, status) {
2488
2518
  let content = node.content || "";
2489
2519
  if (!status.preserveWhitespace) {
2490
2520
  content = content.replaceAll(/\s+/g, " ");
@@ -2572,7 +2602,7 @@ function buildServerNode(node, status, b) {
2572
2602
  break;
2573
2603
  }
2574
2604
  case "text": {
2575
- buildServerTextNode(node, status, b);
2605
+ buildServerTextNode(node, status);
2576
2606
  break;
2577
2607
  }
2578
2608
  case "special": {
@@ -2595,7 +2625,7 @@ var importsMap2 = {
2595
2625
  t_attr: 'import { t_attr } from "${folder}";',
2596
2626
  t_class: 'import { t_class } from "${folder}";',
2597
2627
  t_style: 'import { t_style } from "${folder}";',
2598
- ServerSlotRender: 'import type { ServerSlotRender } from "${folder}";'
2628
+ ServerSlotRender: 'import { type ServerSlotRender } from "${folder}";'
2599
2629
  };
2600
2630
  function buildServerCode(template, options) {
2601
2631
  let b = new Builder();
@@ -2623,17 +2653,15 @@ function buildServerTemplate(template, imports, b, options) {
2623
2653
  for (let i = 0; i < script.length; i++) {
2624
2654
  if (script.substring(i, i + "/* @params */".length) === "/* @params */") {
2625
2655
  b.append(script.substring(marker, i));
2626
- b.append(
2627
- `${current.params || "$props?: Record<PropertyKey, any>"},
2628
- $context?: Record<PropertyKey, any>,
2629
- $slots?: Record<string, ServerSlotRender>`
2630
- );
2656
+ let params = [
2657
+ current.params ?? `${current.props?.length ? "$props" : "// @ts-ignore\n$props?"}: Record<PropertyKey, any>`,
2658
+ `${current.contextProps?.length ? "" : "// @ts-ignore\n"}$context?: Record<PropertyKey, any>`,
2659
+ `${current.slotProps?.length ? "" : "// @ts-ignore\n"}$slots?: Record<string, ServerSlotRender>`
2660
+ ];
2661
+ b.append(params.join(",\n"));
2631
2662
  marker = i + "/* @params */".length;
2632
2663
  } else if (script.substring(i, i + "/* @start */".length) === "/* @start */") {
2633
2664
  b.append(script.substring(marker, i));
2634
- if (current.props?.length) {
2635
- b.append(`$props ??= {};`);
2636
- }
2637
2665
  if (current.contextProps?.length) {
2638
2666
  b.append(`$context = Object.assign({}, $context);`);
2639
2667
  }
@@ -2683,9 +2711,9 @@ function build(template, options) {
2683
2711
  }
2684
2712
 
2685
2713
  // src/compile/buildType.ts
2686
- function buildType(name, template, options) {
2714
+ function buildType(template, options) {
2687
2715
  let b = new Builder();
2688
- b.append(`import type { SlotRender } from "${options?.renderFolder || "@torpor/view"}";`);
2716
+ b.append(`import { type SlotRender } from "${options?.renderFolder || "@torpor/view"}";`);
2689
2717
  for (let component of template.components) {
2690
2718
  b.append("");
2691
2719
  b.append(`
@@ -2779,7 +2807,7 @@ function parseInlineScript(status) {
2779
2807
  }
2780
2808
  } else if (accept('"', status) || accept("'", status)) {
2781
2809
  const char = status.source[status.i - 1];
2782
- for (let j = status.i + 1; j < status.source.length; j++) {
2810
+ for (let j = status.i; j < status.source.length; j++) {
2783
2811
  if (status.source[j] === char && status.source[j - 1] !== "\\") {
2784
2812
  status.i = j + 1;
2785
2813
  break;
@@ -2788,7 +2816,7 @@ function parseInlineScript(status) {
2788
2816
  } else if (accept("`", status)) {
2789
2817
  const char = status.source[status.i - 1];
2790
2818
  let level2 = 0;
2791
- for (let j = status.i + 1; j < status.source.length; j++) {
2819
+ for (let j = status.i; j < status.source.length; j++) {
2792
2820
  if (status.source[j] === char && status.source[j - 1] !== "\\" && level2 === 0) {
2793
2821
  status.i = j + 1;
2794
2822
  break;
@@ -3211,13 +3239,16 @@ function parseElement(status) {
3211
3239
  }
3212
3240
  current.stack.pop();
3213
3241
  }
3214
- if (!element.tagName.startsWith(":") && element.tagName.substring(0, 1) === element.tagName.substring(0, 1).toLocaleUpperCase()) {
3242
+ if (!element.tagName.startsWith(":") && /[A-Z]/.test(element.tagName[0])) {
3215
3243
  element.type = "component";
3216
3244
  slottifyChildNodes(element);
3217
3245
  }
3218
3246
  if (isSpecialNode(element)) {
3219
3247
  if (element.tagName === ":slot") {
3220
3248
  slottifyChildNodes(element);
3249
+ const current = status.components[status.components.length - 1];
3250
+ current.slotProps ??= [];
3251
+ current.slotProps.push(element.attributes.find((a) => a.name === "name")?.name ?? "default");
3221
3252
  } else if (element.tagName === ":component") {
3222
3253
  const selfAttribute = element.attributes.find((a) => a.name === "self");
3223
3254
  if (selfAttribute && selfAttribute.value) {
@@ -3580,12 +3611,12 @@ function parseCode(source) {
3580
3611
  }
3581
3612
  } else if (accept("function", status)) {
3582
3613
  consumeSpace(status);
3583
- if (source[status.i] === source[status.i].toLocaleUpperCase()) {
3614
+ if (/[A-Z]/.test(source[status.i])) {
3584
3615
  parseComponentStart(status);
3585
3616
  }
3586
3617
  } else if (accept("const", status)) {
3587
3618
  consumeSpace(status);
3588
- if (source[status.i] === source[status.i].toLocaleUpperCase()) {
3619
+ if (/[A-Z]/.test(source[status.i])) {
3589
3620
  const start = status.i;
3590
3621
  consumeAlphaNumeric(status);
3591
3622
  consumeSpace(status);
@@ -3634,7 +3665,8 @@ function parseCode(source) {
3634
3665
  } : void 0,
3635
3666
  style: c.style,
3636
3667
  props: c.props,
3637
- contextProps: c.contextProps
3668
+ contextProps: c.contextProps,
3669
+ slotProps: c.slotProps
3638
3670
  };
3639
3671
  })
3640
3672
  } : void 0