@torpor/view 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/compile.cjs +128 -76
  3. package/dist/compile.cjs.map +1 -1
  4. package/dist/compile.d.cts +6 -0
  5. package/dist/compile.d.cts.map +1 -1
  6. package/dist/compile.d.ts +6 -0
  7. package/dist/compile.d.ts.map +1 -1
  8. package/dist/compile.js +128 -76
  9. package/dist/compile.js.map +1 -1
  10. package/dist/formatText-B0FXBdFT.js.map +1 -1
  11. package/dist/formatText-DufG5l83.cjs.map +1 -1
  12. package/package.json +1 -1
  13. package/src/compile/build/client/buildAwaitNode.ts +15 -7
  14. package/src/compile/build/client/buildCode.ts +8 -1
  15. package/src/compile/build/client/buildIfNode.ts +11 -5
  16. package/src/compile/build/client/buildSwitchNode.ts +12 -5
  17. package/src/compile/buildType.ts +11 -12
  18. package/src/compile/parse/ParseComponentStatus.ts +6 -0
  19. package/src/compile/parse/parseCode.ts +61 -7
  20. package/src/compile/parse/parseTag.ts +7 -0
  21. package/src/types/TemplateComponent.ts +6 -0
  22. package/src/watch/checkEffect.ts +2 -0
  23. package/test/attributes/components/output/Attributes-client.ts +3 -0
  24. package/test/attributes/components/output/Attributes-types.ts +10 -0
  25. package/test/attributes/components/temp/{Attributes-client-9b2935d7824ba501776fdc6c48861422c15b6a12.ts → Attributes-client-ffbdd4d85a50436c1a51a4499921304098c1b396.ts} +3 -0
  26. package/test/attributes/components/temp/Attributes-types-5892927754ac19a8b3a8560fa1c78ce653e5f318.ts +10 -0
  27. package/test/attributes/errors.test.ts +35 -0
  28. package/test/await/components/output/Await-client.ts +12 -5
  29. package/test/await/components/output/Await-types.ts +10 -0
  30. package/test/await/components/temp/{Await-client-e969f4bd0712acf259ddfaa5a3b3448307201fd2.ts → Await-client-4d2c318baf00e6fb8fea11e34189817ca8002a1f.ts} +12 -5
  31. package/test/await/components/temp/Await-types-355b335acd1c17a2271920d51e542ce1fc61eeef.ts +10 -0
  32. package/test/bench/components/output/Bench-client.ts +3 -0
  33. package/test/bench/components/output/Bench-types.ts +10 -0
  34. package/test/bench/components/temp/{Bench-client-7f31596dafc8077370d8d90b1bb9b6e0208154e7.ts → Bench-client-33b5a23562f6a00687449c5ffe72dc42ac7f766e.ts} +3 -0
  35. package/test/bench/components/temp/Bench-types-a798f6c7b7ec235754ff5fdd5d7020633253b042.ts +10 -0
  36. package/test/bind/components/output/BindComponent-client.ts +5 -0
  37. package/test/bind/components/output/BindComponent-types.ts +10 -0
  38. package/test/bind/components/output/BindText-client.ts +3 -0
  39. package/test/bind/components/output/BindText-types.ts +10 -0
  40. package/test/bind/components/temp/{BindComponent-client-22eccb5354a2b0267841e015f3a2a0baf534bf89.ts → BindComponent-client-eb816edf9f83c19641ced9ecb1c2c5fc87e8e32c.ts} +5 -0
  41. package/test/bind/components/temp/BindComponent-types-8a10f6efddd92990ed5390f3c89ba17db179d801.ts +10 -0
  42. package/test/bind/components/temp/{BindText-client-7692ae1570533cc17e2186e9c7d4768529e4a2fe.ts → BindText-client-63e98b4407a8f0f22f4766d029567ac0aac7dba8.ts} +3 -0
  43. package/test/bind/components/temp/BindText-types-5892d9ef33c61a0de524b74323ba135accee8175.ts +10 -0
  44. package/test/build-server/components/output/IfNested-client.ts +17 -8
  45. package/test/build-server/components/output/IfNested-types.ts +10 -0
  46. package/test/build-server/components/temp/{IfNested-client-eefdd449fa700b2e7326bc72df8b32ddcadf9d21.ts → IfNested-client-2af78cceff5dbce510db31fd5b8bb4da5d30d53a.ts} +17 -8
  47. package/test/build-server/components/temp/IfNested-types-692d58ca98f3534102193a44aa358994f798ca7b.ts +10 -0
  48. package/test/buildOutputFiles.ts +16 -4
  49. package/test/child-component/components/output/ParentChild-client.ts +5 -0
  50. package/test/child-component/components/output/ParentChild-types.ts +10 -0
  51. package/test/child-component/components/temp/{ParentChild-client-2dfd600f7d409630d429a1d2d18c038bd08b08da.ts → ParentChild-client-93ca4d2ac521ef996a6548bfacb3e36f6f71fcf9.ts} +5 -0
  52. package/test/child-component/components/temp/ParentChild-types-4d26850ef18600f398f7aa9c4502071349bf5624.ts +10 -0
  53. package/test/class/components/output/Class-client.ts +5 -0
  54. package/test/class/components/output/Class-types.ts +10 -0
  55. package/test/class/components/temp/{Class-client-5af6a50cd454ae019b2aa79457ba7ead83b8c056.ts → Class-client-284ac46628b2d3d6b4a4edbdbfd1700626d3fed0.ts} +5 -0
  56. package/test/class/components/temp/Class-types-38567e85c9ec17739c7c97e12281fc1818267190.ts +10 -0
  57. package/test/component/components/output/Component-client.ts +3 -0
  58. package/test/component/components/output/Component-types.ts +10 -0
  59. package/test/component/components/output/Header-client.ts +3 -0
  60. package/test/component/components/output/Header-types.ts +10 -0
  61. package/test/component/components/temp/{Component-client-fdc327499be0a01f987d0f2897baf022a247c77c.ts → Component-client-3cb873dd1782874af78544c1d8886bbfa4bef11b.ts} +3 -0
  62. package/test/component/components/temp/Component-types-3ef4f140ba29c98357caf0f2618785437b5804de.ts +10 -0
  63. package/test/component/components/temp/{Header-client-6beb5770e68e6b19595e53e20bc906765fc6c260.ts → Header-client-cb780b85ee6e0587eca3d9ad7a8b8c947075e394.ts} +3 -0
  64. package/test/component/components/temp/Header-types-c56a108c6fb5a22b8ae156936bc05e58eef199c2.ts +10 -0
  65. package/test/console/components/output/Console-client.ts +3 -0
  66. package/test/console/components/output/Console-types.ts +10 -0
  67. package/test/console/components/temp/{Console-client-2b58290ac407ebbe89a0613d64eb9cd141b99887.ts → Console-client-b0feb868a912138e8af01bd06902d28c536ebb87.ts} +3 -0
  68. package/test/console/components/temp/Console-types-93ad3f25ddc6280fcff2cf4db7c2913d3a474912.ts +10 -0
  69. package/test/const/components/output/Const-client.ts +3 -0
  70. package/test/const/components/output/Const-types.ts +10 -0
  71. package/test/const/components/temp/{Const-client-d1037557e7ef75a8fe06f56816e65883047e9421.ts → Const-client-149dbc44ee609c54a99bacb715d04034a1d33c9c.ts} +3 -0
  72. package/test/const/components/temp/Const-types-afba269310bd143aa325752d3cc7e0c598fd0de2.ts +10 -0
  73. package/test/context/components/output/ChildA-client.ts +3 -0
  74. package/test/context/components/output/ChildA-types.ts +10 -0
  75. package/test/context/components/output/ChildB-client.ts +3 -0
  76. package/test/context/components/output/ChildB-types.ts +10 -0
  77. package/test/context/components/{temp/Parent-client-9898b2e521527c86d69905053b6727ea8fd28166.ts → output/Parent-client.ts} +3 -0
  78. package/test/context/components/output/Parent-types.ts +10 -0
  79. package/test/context/components/temp/{ChildA-client-9dea3e29ffcb82ca1779f6ff671e19b1c106fc4a.ts → ChildA-client-b9ad03bb0c64e9fb27a38b85792df79dc3ebf7f1.ts} +3 -0
  80. package/test/context/components/temp/ChildA-types-2ee15b25e68166d1574582f08e2280cbae948e5d.ts +10 -0
  81. package/test/context/components/temp/{ChildB-client-4b801099936c8aa013a1220f291375f67eba1acb.ts → ChildB-client-f4e1a447378a9a9be05aa37c8b3eae7ca6be8411.ts} +3 -0
  82. package/test/context/components/temp/ChildB-types-531f67cfda5bd04468e827c14f9358a431853fc5.ts +10 -0
  83. package/test/context/components/temp/Parent-client-2ecf387911773f5cd74c7bf1d04f98da08bc4450.ts +44 -0
  84. package/test/context/components/temp/Parent-types-e6be7d1cf118d7a8927af59db780010392966d01.ts +10 -0
  85. package/test/effects/components/output/For-client.ts +3 -0
  86. package/test/effects/components/output/For-types.ts +10 -0
  87. package/test/effects/components/output/If-client.ts +10 -4
  88. package/test/effects/components/output/If-types.ts +10 -0
  89. package/test/effects/components/output/NestedIf-client.ts +17 -8
  90. package/test/effects/components/output/NestedIf-types.ts +10 -0
  91. package/test/effects/components/temp/{For-client-7c7d7c0dba2547f816b9bd9c6a95d6873ec00ffd.ts → For-client-af16b99099e237c988932845b79500dfc28c6642.ts} +3 -0
  92. package/test/effects/components/temp/For-types-cfec41b41b054674bf8b01ce0e0003c8a6640a82.ts +10 -0
  93. package/test/effects/components/temp/{If-client-f0480a98f80b32612d12765c6838ff6db5982e82.ts → If-client-7f0b171f29a1f1ff969b21c33b241cd35eb1ce0e.ts} +10 -4
  94. package/test/effects/components/temp/If-types-7b245b6e531e122e0d0cfb72903bb88223b98793.ts +10 -0
  95. package/test/effects/components/temp/{NestedIf-client-702deffd158f219c5da4199b563a62cd54385a7f.ts → NestedIf-client-e2dd594c8f77f5ce53265b234e72b7c2f29ba76d.ts} +17 -8
  96. package/test/effects/components/temp/NestedIf-types-0912466d777f52f3616557823a7e47f5901cb755.ts +10 -0
  97. package/test/events/components/output/Increment-client.ts +3 -0
  98. package/test/events/components/output/Increment-types.ts +10 -0
  99. package/test/events/components/temp/{Increment-client-84c09711baf098c82ee226598ba7a36913616b75.ts → Increment-client-aeee696f3a4363c5c4c1ecf86de8ec071342ba22.ts} +3 -0
  100. package/test/events/components/temp/Increment-types-f259dd221aa967b0426746303f1f2c33aeeaf068.ts +10 -0
  101. package/test/for/components/output/For-client.ts +3 -0
  102. package/test/for/components/output/For-types.ts +10 -0
  103. package/test/for/components/output/ForEscape-client.ts +3 -0
  104. package/test/for/components/output/ForEscape-types.ts +10 -0
  105. package/test/for/components/output/ForIn-client.ts +3 -0
  106. package/test/for/components/output/ForIn-types.ts +10 -0
  107. package/test/for/components/output/ForOf-client.ts +3 -0
  108. package/test/for/components/output/ForOf-types.ts +10 -0
  109. package/test/for/components/temp/{For-client-2f6b4b81670b0ba31b01176b4f61ebf321e945bb.ts → For-client-bc23ebc49e3cf710762bce7cd1b73244c94a3abb.ts} +3 -0
  110. package/test/for/components/temp/For-types-8bcd17ab2e0faebb340a19f56e052cc94820a29a.ts +10 -0
  111. package/test/for/components/temp/{ForEscape-client-8d0fcc940851e687173b6a9129c3d83e0fc771ef.ts → ForEscape-client-a475ec9bdab5d57d30c27124fcf9ce38110ddf75.ts} +3 -0
  112. package/test/for/components/temp/ForEscape-types-bb4f3457b02c2ad97a7b6cbc66f9097a37728ed2.ts +10 -0
  113. package/test/for/components/temp/{ForIn-client-fa0614a1c7b8aa6e8819ed91a518479fd80453ae.ts → ForIn-client-890cee3ac35ede73eafad4e935eefd2fe7ecb9e2.ts} +3 -0
  114. package/test/for/components/temp/ForIn-types-fb4f7b02e23a40d27376760b7e1d06f8ecaa13ba.ts +10 -0
  115. package/test/for/components/temp/{ForOf-client-11006c4239d9018363e582dc5b54b50477d652e7.ts → ForOf-client-309297e25afd249f1a3e27126af23b7329c5c727.ts} +3 -0
  116. package/test/for/components/temp/ForOf-types-6e2fbcd0fbfd3c0a2c3d8c458fdda7b05c2a19b1.ts +10 -0
  117. package/test/function/components/output/Function-client.ts +3 -0
  118. package/test/function/components/output/Function-types.ts +10 -0
  119. package/test/function/components/temp/{Function-client-ec5fe7d599d6099bdfab78c2a0c8edf77a23cd9b.ts → Function-client-8423f53837e6503cdcc0d997684dd3e208b5dd13.ts} +3 -0
  120. package/test/function/components/temp/Function-types-5479cb46b9bef3251b7961fb6e99a8c30cd4220f.ts +10 -0
  121. package/test/html/components/output/Html-client.ts +3 -0
  122. package/test/html/components/output/Html-types.ts +10 -0
  123. package/test/html/components/temp/{Html-client-82ff34dcdcbdf4be1112bcb1baac8027cdc32de7.ts → Html-client-83b1a1be5c4b8e9cc06a616acf8418c786804255.ts} +3 -0
  124. package/test/html/components/temp/Html-types-c5dc816f932e3fb021c006f266a7c9a2f2fb5353.ts +10 -0
  125. package/test/if/components/IfCache.torp +14 -0
  126. package/test/if/components/output/IfAfterIf-client.ts +17 -8
  127. package/test/if/components/output/IfAfterIf-types.ts +10 -0
  128. package/test/if/components/output/IfCache-client.ts +70 -0
  129. package/test/if/components/output/IfCache-server.ts +22 -0
  130. package/test/if/components/output/IfCache-types.ts +10 -0
  131. package/test/if/components/output/IfElse-client.ts +10 -4
  132. package/test/if/components/output/IfElse-types.ts +10 -0
  133. package/test/if/components/output/IfElseIf-client.ts +12 -5
  134. package/test/if/components/output/IfElseIf-types.ts +10 -0
  135. package/test/if/components/output/IfFalse-client.ts +10 -4
  136. package/test/if/components/output/IfFalse-types.ts +10 -0
  137. package/test/if/components/output/IfNested-client.ts +17 -8
  138. package/test/if/components/output/IfNested-types.ts +10 -0
  139. package/test/if/components/temp/{IfAfterIf-client-c1cfd21a6ace4945703ba8f46aada923a60265d9.ts → IfAfterIf-client-5aa5aac7099224e0ec1e8bff6162d729f89267ec.ts} +17 -8
  140. package/test/if/components/temp/IfAfterIf-types-c4bd4f93c103a618889f40c77d55fa7de454f70b.ts +10 -0
  141. package/test/if/components/temp/IfCache-client-8433b3b239bc225d616f12e8904c4f2ba530efb4.ts +70 -0
  142. package/test/if/components/temp/IfCache-server-8b35e6a2009d72083013cfb01b187a1d027fdcc9.ts +22 -0
  143. package/test/if/components/temp/IfCache-types-02f467ce9ebc23ae68c9e5f33c90ecc96b666452.ts +10 -0
  144. package/test/if/components/temp/{IfElse-client-06dfcacd3a5225dcb0947587bcd4fae9ec3d3c1e.ts → IfElse-client-8bd2aa123e050847fdf28172479f0cc1a3ddb01c.ts} +10 -4
  145. package/test/if/components/temp/IfElse-types-e81080227f8f69ac1d81141d97a07e0a0e9391c1.ts +10 -0
  146. package/test/if/components/temp/{IfElseIf-client-26df9a728c9cb712d5ac0235b4c99885f25545b8.ts → IfElseIf-client-a17e2408252495ef0e90ba303a2d9e076867b6fd.ts} +12 -5
  147. package/test/if/components/temp/IfElseIf-types-a492d2b6e8517f598befca7127cd514244239984.ts +10 -0
  148. package/test/if/components/temp/{IfFalse-client-de6fc8e9eb222153608490e6d172e9aae9000aa1.ts → IfFalse-client-00a24a722347d2c711064dd504db9443747e5099.ts} +10 -4
  149. package/test/if/components/temp/IfFalse-types-1d512c6d82e2af9efe0221a9929b05ad62fd97fb.ts +10 -0
  150. package/test/if/components/temp/{IfNested-client-eefdd449fa700b2e7326bc72df8b32ddcadf9d21.ts → IfNested-client-2af78cceff5dbce510db31fd5b8bb4da5d30d53a.ts} +17 -8
  151. package/test/if/components/temp/IfNested-types-692d58ca98f3534102193a44aa358994f798ca7b.ts +10 -0
  152. package/test/if/if-cache.test.ts +68 -0
  153. package/test/mount/components/output/Mount-client.ts +3 -0
  154. package/test/mount/components/output/Mount-types.ts +10 -0
  155. package/test/mount/components/temp/{Mount-client-29896228d7d0ef3692a9d13065c1bbfbe3198cdc.ts → Mount-client-f4dd3d5a21d287d3d22a797805816fe09528dfb6.ts} +3 -0
  156. package/test/mount/components/temp/Mount-types-2d88616243f860d43b8b7d74a6bbeff9b2c6f27b.ts +10 -0
  157. package/test/on-mount/components/output/OnMount-client.ts +3 -0
  158. package/test/on-mount/components/output/OnMount-types.ts +10 -0
  159. package/test/on-mount/components/temp/{OnMount-client-038f8c6bbcf0278406909d6ba5394f311924fda9.ts → OnMount-client-8afb8473b51815e9b0ba994f3476217506b41b1d.ts} +3 -0
  160. package/test/on-mount/components/temp/OnMount-types-d0f834addb351520cc75a589cb9ec5b6a5a787b4.ts +10 -0
  161. package/test/party/components/output/AnswerButton-client.ts +3 -0
  162. package/test/party/components/output/AnswerButton-types.ts +10 -0
  163. package/test/party/components/output/AnswerButtonApp-client.ts +3 -0
  164. package/test/party/components/output/AnswerButtonApp-types.ts +10 -0
  165. package/test/party/components/output/ColorSelect-client.ts +3 -0
  166. package/test/party/components/output/ColorSelect-types.ts +10 -0
  167. package/test/party/components/output/Colors-client.ts +3 -0
  168. package/test/party/components/output/Colors-types.ts +10 -0
  169. package/test/party/components/output/Counter-client.ts +3 -0
  170. package/test/party/components/output/Counter-types.ts +10 -0
  171. package/test/party/components/output/CssStyle-client.ts +3 -0
  172. package/test/party/components/output/CssStyle-types.ts +10 -0
  173. package/test/party/components/output/DoubleCount-client.ts +3 -0
  174. package/test/party/components/output/DoubleCount-types.ts +10 -0
  175. package/test/party/components/output/FunnyButton-client.ts +3 -0
  176. package/test/party/components/output/FunnyButton-types.ts +10 -0
  177. package/test/party/components/output/FunnyButtonApp-client.ts +3 -0
  178. package/test/party/components/output/FunnyButtonApp-types.ts +10 -0
  179. package/test/party/components/output/HelloWorld-client.ts +3 -0
  180. package/test/party/components/output/HelloWorld-types.ts +10 -0
  181. package/test/party/components/output/InputFocused-client.ts +3 -0
  182. package/test/party/components/output/InputFocused-types.ts +10 -0
  183. package/test/party/components/output/InputHello-client.ts +3 -0
  184. package/test/party/components/output/InputHello-types.ts +10 -0
  185. package/test/party/components/output/IsAvailable-client.ts +3 -0
  186. package/test/party/components/output/IsAvailable-types.ts +10 -0
  187. package/test/party/components/output/Name-client.ts +3 -0
  188. package/test/party/components/output/Name-types.ts +10 -0
  189. package/test/party/components/output/NameUpdate-client.ts +3 -0
  190. package/test/party/components/output/NameUpdate-types.ts +10 -0
  191. package/test/party/components/output/PageTitle-client.ts +3 -0
  192. package/test/party/components/output/PageTitle-types.ts +10 -0
  193. package/test/party/components/output/PickPill-client.ts +3 -0
  194. package/test/party/components/output/PickPill-types.ts +10 -0
  195. package/test/party/components/output/Time-client.ts +3 -0
  196. package/test/party/components/output/Time-types.ts +10 -0
  197. package/test/party/components/output/TrafficLight-client.ts +14 -6
  198. package/test/party/components/output/TrafficLight-types.ts +10 -0
  199. package/test/party/components/output/UserProfile-client.ts +3 -0
  200. package/test/party/components/output/UserProfile-types.ts +15 -0
  201. package/test/party/components/output/UserProfileApp-client.ts +3 -0
  202. package/test/party/components/output/UserProfileApp-types.ts +10 -0
  203. package/test/party/components/output/UserProfileContext-client.ts +3 -0
  204. package/test/party/components/output/UserProfileContext-types.ts +10 -0
  205. package/test/party/components/output/UserProfileContextApp-client.ts +3 -0
  206. package/test/party/components/output/UserProfileContextApp-types.ts +10 -0
  207. package/test/party/components/temp/{AnswerButton-client-df895c3e7a88fd7ede9f951fc9de2ed75c27a5cb.ts → AnswerButton-client-2119fa9523949bca3e8ef264eff7e72611d70bac.ts} +3 -0
  208. package/test/party/components/temp/AnswerButton-types-7dc4d046e52be1e6cb46d6235ce7540bd3e7b2a5.ts +10 -0
  209. package/test/party/components/temp/{AnswerButtonApp-client-4c05ef36b1c0e93370fb463643419928717fa701.ts → AnswerButtonApp-client-87979b0578066e637c4257d6a7dbc2bfa1542515.ts} +3 -0
  210. package/test/party/components/temp/AnswerButtonApp-types-10a6f55029e859366f9a3a73cdcdb3f63e89dbeb.ts +10 -0
  211. package/test/party/components/temp/{ColorSelect-client-5db8d1b0924361fdb5efb867c14491402ec9668c.ts → ColorSelect-client-d7eb9276031b613439d7bd6212c76b4a972ebcad.ts} +3 -0
  212. package/test/party/components/temp/ColorSelect-types-e652a36ebdd98e8c23a8de3156c4499023f09301.ts +10 -0
  213. package/test/party/components/temp/{Colors-client-6d3ac693e85bdda50b8742282915997063a32769.ts → Colors-client-42c890154b9a132ebd784cccc4f4f9962f400b3e.ts} +3 -0
  214. package/test/party/components/temp/Colors-types-075975e9b9074b49f96f99d660f0ee580546a630.ts +10 -0
  215. package/test/party/components/temp/{Counter-client-0c604a107c5b84cdbf725f307dfe29d34f8a2cc8.ts → Counter-client-ad5e891eaea79548afabef156b87fee5317319b2.ts} +3 -0
  216. package/test/party/components/temp/Counter-types-206b0704ee2e25f5f3198d716fa524295581c075.ts +10 -0
  217. package/test/party/components/temp/{CssStyle-client-2a642d115ad52539f97c051c34687b8d6d12b324.ts → CssStyle-client-5078b4c735f6273e2565c7d7688c41afa026a2c3.ts} +3 -0
  218. package/test/party/components/temp/CssStyle-types-f1ce4f0b03d404c70704f271ce9bfc5d5107346c.ts +10 -0
  219. package/test/party/components/temp/{DoubleCount-client-8c85c3af12c471ea23bb702bbf5a3e240420f3ec.ts → DoubleCount-client-9406fd993ae8d0efa1f87848ae6e952591b20c3d.ts} +3 -0
  220. package/test/party/components/temp/DoubleCount-types-436bd75fe7808c3a30389aeb1740aea361aa8681.ts +10 -0
  221. package/test/party/components/temp/{FunnyButton-client-850dd3da0fa803c1bce5c53e88fcd2d48d279eb8.ts → FunnyButton-client-f8dea087fd6e3f2d7d0697cd3c87444c6866daf5.ts} +3 -0
  222. package/test/party/components/temp/FunnyButton-types-7780d5c5dfe3ff2369f8e3c505616036cfcd3759.ts +10 -0
  223. package/test/party/components/temp/{FunnyButtonApp-client-00300846d11a3d0a5a620c2ade87b935b7f0ebf8.ts → FunnyButtonApp-client-22aa2ee00b25a3ee0bda442372da843828231242.ts} +3 -0
  224. package/test/party/components/temp/FunnyButtonApp-types-ea73d641565a4478759166f462206dd97c92cedd.ts +10 -0
  225. package/test/party/components/temp/{HelloWorld-client-890b311ad9a3919379acdc1d52807ea36cc9f489.ts → HelloWorld-client-84fa7bd70d75149892044f4a15fdbf9ac8c7fcff.ts} +3 -0
  226. package/test/party/components/temp/HelloWorld-types-3c153ac7af343dbce6cb081f1ae1b4f85d7f0b10.ts +10 -0
  227. package/test/party/components/temp/{InputFocused-client-03527f9ceb52f66ac53887dbc884a0aa83bb7a23.ts → InputFocused-client-504b10731a6c96079a0abd7bb4a8381634ff4a0d.ts} +3 -0
  228. package/test/party/components/temp/InputFocused-types-33da14c13216ca00edaa8f02508db21f5cd32d31.ts +10 -0
  229. package/test/party/components/temp/{InputHello-client-f65a477624975b68b7aaa3614fbf198d4476480f.ts → InputHello-client-b9dd846c4cc129749781955f645327cc3c0956ac.ts} +3 -0
  230. package/test/party/components/temp/InputHello-types-ab629048402441fde9a292bc2d376c0deea482a8.ts +10 -0
  231. package/test/party/components/temp/{IsAvailable-client-8767437fd92cf79713de5b00828e1502e38d79e3.ts → IsAvailable-client-3bd6d53a45c3dcda3e958bb4b5000fef78301b04.ts} +3 -0
  232. package/test/party/components/temp/IsAvailable-types-23d4e196c659901c347a7b3e5c9e4a6668234adb.ts +10 -0
  233. package/test/party/components/temp/{Name-client-08903a8df8bdff5288170d3c89658192956587a9.ts → Name-client-b2cd160fc076bb34c0421a673358e7b7f61e4b49.ts} +3 -0
  234. package/test/party/components/temp/Name-types-06f89338c785a1fd352ed7de3ebe02b30722760d.ts +10 -0
  235. package/test/party/components/temp/{NameUpdate-client-d65b2476c3721d2efddf9385a61433e2a2dd0d72.ts → NameUpdate-client-f2dfcab63d80c25681aa6b15a61c547a0aab2f96.ts} +3 -0
  236. package/test/party/components/temp/NameUpdate-types-9c69805006d2d3bb457c5d4d87db8baeb431aeb6.ts +10 -0
  237. package/test/party/components/temp/{PageTitle-client-c006df9a3e662488a1db089de53fd485c6b923e4.ts → PageTitle-client-f4094f4b23126a99a211f804ed7c4a97a34733b3.ts} +3 -0
  238. package/test/party/components/temp/PageTitle-types-dfb55ea9b607c89167dbd7538523a484a6eec300.ts +10 -0
  239. package/test/party/components/temp/{PickPill-client-af8357daf3f6633c7f451d0bddd72fefe786d5c3.ts → PickPill-client-0a4e095bc2c963a2f091ae2f69c8d075f7d9b5a5.ts} +3 -0
  240. package/test/party/components/temp/PickPill-types-526e2bb4c36ec1bed87eaf5722093a0eaefcd9d3.ts +10 -0
  241. package/test/party/components/temp/{Time-client-94380d45de7275a5cec98e5f58c15b74b13e9c3e.ts → Time-client-95ee134377911d1c1cddbf074b8f943cdcf2a966.ts} +3 -0
  242. package/test/party/components/temp/Time-types-2bf6facfbb2d6e7de472d18760029afaefbb93e1.ts +10 -0
  243. package/test/party/components/temp/{TrafficLight-client-12b20962b4146ef08fe0c37597441533c7699408.ts → TrafficLight-client-dc0248dc967afbbbce4873cd37677cd97cc4933c.ts} +14 -6
  244. package/test/party/components/temp/TrafficLight-types-d301a2317da01a215fc8e5222dc6ff87226fa250.ts +10 -0
  245. package/test/party/components/temp/{UserProfile-client-e5330b2c96bd8b225cb6291bc8b1d9f35c93307e.ts → UserProfile-client-352291dcaf115cc563ae3a07ec6aed901fcc2bc1.ts} +3 -0
  246. package/test/party/components/temp/UserProfile-types-412089462c8dcc757d2f53e7ff8030296d3100c2.ts +15 -0
  247. package/test/party/components/temp/{UserProfileApp-client-4c86e4f9a0d042f4f4811868f0146e872b17353c.ts → UserProfileApp-client-18ad0243fd853dac3c3f71bea21b021bbd5b35f4.ts} +3 -0
  248. package/test/party/components/temp/UserProfileApp-types-3e70c106e03c68b4aa06c2fe21dfeceffe7cc313.ts +10 -0
  249. package/test/party/components/temp/{UserProfileContext-client-424131db3cc89ae4babe127b9108ffc5696c9e1d.ts → UserProfileContext-client-a3f521facb10ae64007c362e34bce41d8144bf96.ts} +3 -0
  250. package/test/party/components/temp/UserProfileContext-types-076b9fa0a87d3ca098884a003284050b36172cc6.ts +10 -0
  251. package/test/party/components/temp/{UserProfileContextApp-client-5f94a7ccf3e4542ea40d8046ad75eeb21005c55f.ts → UserProfileContextApp-client-cccb3b8e819279cd7f729af61b84ad9801213597.ts} +3 -0
  252. package/test/party/components/temp/UserProfileContextApp-types-d04199ab7d43ecc12ceccb7a0bef7ff38ac1e8b1.ts +10 -0
  253. package/test/props/components/output/Reactive-client.ts +5 -0
  254. package/test/props/components/output/Reactive-types.ts +10 -0
  255. package/test/props/components/temp/{Reactive-client-9bc3643675fc563f96efb00bc3c4b843ba4b7f2e.ts → Reactive-client-644526502a3c5db2be797056d127a124f76976d5.ts} +5 -0
  256. package/test/props/components/temp/Reactive-types-bd642939107f1be06666bfce1ad97a94ccc21ee1.ts +10 -0
  257. package/test/replace/components/output/Replace-client.ts +3 -0
  258. package/test/replace/components/output/Replace-types.ts +10 -0
  259. package/test/replace/components/temp/{Replace-client-6f21ff3eb303bd5488d211087dc35fcf998d4e2a.ts → Replace-client-b80bc4591f8638cf125e8de9c1b25ea840dc75e9.ts} +3 -0
  260. package/test/replace/components/temp/Replace-types-9aedaa79e9b616ea1780ea97306f3428faa5d477.ts +10 -0
  261. package/test/slots/components/output/Article-client.ts +3 -0
  262. package/test/slots/components/output/Article-types.ts +10 -0
  263. package/test/slots/components/output/Basic-client.ts +3 -0
  264. package/test/slots/components/output/Basic-types.ts +10 -0
  265. package/test/slots/components/output/Header-client.ts +3 -0
  266. package/test/slots/components/output/Header-types.ts +10 -0
  267. package/test/slots/components/output/Let-client.ts +3 -0
  268. package/test/slots/components/output/Let-types.ts +10 -0
  269. package/test/slots/components/output/List-client.ts +3 -0
  270. package/test/slots/components/output/List-types.ts +10 -0
  271. package/test/slots/components/output/Named-client.ts +3 -0
  272. package/test/slots/components/output/Named-types.ts +10 -0
  273. package/test/slots/components/output/Unused-client.ts +3 -0
  274. package/test/slots/components/output/Unused-types.ts +10 -0
  275. package/test/slots/components/temp/{Article-client-0b674ee98ae7f85021bfb8b912f28e3c4b35e877.ts → Article-client-df86e549f8681f2329bffb4bc6bdf8ef60659d82.ts} +3 -0
  276. package/test/slots/components/temp/Article-types-d3d960fbab7644ec2d90dfe39d908fbb65abaaa2.ts +10 -0
  277. package/test/slots/components/temp/{Basic-client-196f7f0244dca0baeffb547eec55c089a108283d.ts → Basic-client-5bf137a656d5bc8739443df8e6876ac6ffdaeddd.ts} +3 -0
  278. package/test/slots/components/temp/Basic-types-709765786c453e34088db3e894a59fb3332d3ed1.ts +10 -0
  279. package/test/slots/components/temp/{Header-client-e5c784d60469523803898ee4d8b85fb82a7b7c0b.ts → Header-client-89439803e4de9b44da53fc051088ded2b4816a83.ts} +3 -0
  280. package/test/slots/components/temp/Header-types-c56a108c6fb5a22b8ae156936bc05e58eef199c2.ts +10 -0
  281. package/test/slots/components/temp/{Let-client-645271fcd63cd500001c75740b22b1b387330657.ts → Let-client-1e404c72bae5fe99bdced72d497dc3700d001112.ts} +3 -0
  282. package/test/slots/components/temp/Let-types-3d05614de77a23df63a3cc1873b27ce1b0148c58.ts +10 -0
  283. package/test/slots/components/temp/{List-client-ee6047ac396dc0b6fce5e38af51c38093fae83a2.ts → List-client-73ebb1a2d1364d807ca67c2b3008efb73e5bc74f.ts} +3 -0
  284. package/test/slots/components/temp/List-types-fd59ad7d85c06e67ee766a2cf14a637dd129569e.ts +10 -0
  285. package/test/slots/components/temp/{Named-client-559988562c5de1ae6017d2ad6de063f4363064b6.ts → Named-client-fae857376ae748995be367ea0b78c86cb778dcee.ts} +3 -0
  286. package/test/slots/components/temp/Named-types-ed10fb6338eb9bd67281b9658bd7b10b572d346a.ts +10 -0
  287. package/test/slots/components/temp/{Unused-client-52d1828bd28ebf7046a2e948a369563c0ea83b98.ts → Unused-client-715ddd9fa963f8185b11dd3725849dddc9b4a8e0.ts} +3 -0
  288. package/test/slots/components/temp/Unused-types-88f7e38611b4cae1067969cf702cde41422837ae.ts +10 -0
  289. package/test/source-maps/components/output/Source-client.ts +10 -4
  290. package/test/source-maps/components/output/Source-types.ts +10 -0
  291. package/test/source-maps/components/temp/{Source-client-ae8c4811ff658c13ee8c9b9e0e53fff1b83b178b.ts → Source-client-ea4254d629d7270203bf98ffae915e9b753a2fe2.ts} +10 -4
  292. package/test/source-maps/components/temp/Source-types-69770c124317e0a0fd6aeb3d4f331b50231452fa.ts +10 -0
  293. package/test/special-component/components/output/BigTitle-client.ts +3 -0
  294. package/test/special-component/components/output/BigTitle-types.ts +10 -0
  295. package/test/special-component/components/output/Component-client.ts +3 -0
  296. package/test/special-component/components/output/Component-types.ts +10 -0
  297. package/test/special-component/components/output/SmallTitle-client.ts +3 -0
  298. package/test/special-component/components/output/SmallTitle-types.ts +10 -0
  299. package/test/special-component/components/temp/{BigTitle-client-cb3055f809aaf17bd1fa82748d039ac3730a8d44.ts → BigTitle-client-d46e785f86a5daee62360043056359ca3e1cb7a0.ts} +3 -0
  300. package/test/special-component/components/temp/BigTitle-types-cb6363da78f853772d3408240f32030d5e826859.ts +10 -0
  301. package/test/special-component/components/temp/{Component-client-0eb9553b52acce2dfa564242295a4c57a38bd540.ts → Component-client-bd3af877909777431434a02fb77e751980a0b822.ts} +3 -0
  302. package/test/special-component/components/temp/Component-types-196e5e5c55f61a9d24837f8de1fb9e9eeb2dd3f1.ts +10 -0
  303. package/test/special-component/components/temp/{SmallTitle-client-5a65b233be29395e9650f57d9708a33de1279af3.ts → SmallTitle-client-28035d0154e3af173e9e3a1921be3a358e236cc5.ts} +3 -0
  304. package/test/special-component/components/temp/SmallTitle-types-629b435eb6f9a402ff576511db3e1d150f8c612b.ts +10 -0
  305. package/test/special-element/components/output/Element-client.ts +3 -0
  306. package/test/special-element/components/output/Element-types.ts +10 -0
  307. package/test/special-element/components/temp/{Element-client-745e610fbd5c652d327c8ac349d49d5ee4c8d9ea.ts → Element-client-83bfbaab3d8c85cce6b97675d8955e03ae99ba24.ts} +3 -0
  308. package/test/special-element/components/temp/Element-types-478aac6fcc8cc71dc587b534bb45ddcde069e2cb.ts +10 -0
  309. package/test/special-head/components/output/Head-client.ts +3 -0
  310. package/test/special-head/components/output/Head-types.ts +10 -0
  311. package/test/special-head/components/temp/{Head-client-bbbb5e712247ee41ca65a7ffd457987de5e99b3e.ts → Head-client-9e828c39f1930711e6c7db1d318b63f195e01e92.ts} +3 -0
  312. package/test/special-head/components/temp/Head-types-88772e6c9aefe7f65c342350ad45b29e7fa16604.ts +10 -0
  313. package/test/special-self/components/output/Self-client.ts +10 -4
  314. package/test/special-self/components/output/Self-types.ts +10 -0
  315. package/test/special-self/components/temp/{Self-client-dfe57df69e3677e94f7b5f3657c82602054ef19e.ts → Self-client-6846c5e6cdac15947ab4361f2e2b4ec900abd988.ts} +10 -4
  316. package/test/special-self/components/temp/Self-types-d438955d6f42951942dfa72ec1b79ad4ee95e966.ts +10 -0
  317. package/test/style/components/output/Style-client.ts +3 -0
  318. package/test/style/components/output/Style-types.ts +10 -0
  319. package/test/style/components/temp/{Style-client-9491a5aff97f118df542f976d7f7a21e7cc88c62.ts → Style-client-710dc4eba0e6a6ecbee26adc0d739ffdfb73ef10.ts} +3 -0
  320. package/test/style/components/temp/Style-types-d7ced2961f74be74eebaedfb98c492c6789d3cb8.ts +10 -0
  321. package/test/svg/components/output/Shape-client.ts +10 -4
  322. package/test/svg/components/output/Shape-types.ts +10 -0
  323. package/test/svg/components/temp/{Shape-client-4cc148d8b70d3750d2982360aad76b74d194b60e.ts → Shape-client-691decdc6064d94b0951c7a08da10feebd087324.ts} +10 -4
  324. package/test/svg/components/temp/Shape-types-70f9e311a005452b58286636c0dcb67a73e9fab4.ts +10 -0
  325. package/test/switch/components/Switch.torp +6 -4
  326. package/test/switch/components/output/Switch-client.ts +18 -9
  327. package/test/switch/components/output/Switch-server.ts +6 -4
  328. package/test/switch/components/output/Switch-types.ts +18 -0
  329. package/test/switch/components/temp/{Switch-client-5fc00f4d41300dc7587b113d8e53a102beca7558.ts → Switch-client-dcb3511bb3db12ad47e2237afc32a788184ad566.ts} +18 -9
  330. package/test/switch/components/temp/{Switch-server-440f7e852145b79656c0023ddc776e4d1d077d2a.ts → Switch-server-bbb3b40226e88388eb6f016cb0fd4be54f6139e7.ts} +6 -4
  331. package/test/switch/components/temp/Switch-types-fad2e2b194747eb6c06474c81de5f814c15e06aa.ts +18 -0
  332. package/test/text/components/output/Text-client.ts +3 -0
  333. package/test/text/components/output/Text-types.ts +16 -0
  334. package/test/text/components/temp/{Text-client-6c3be8a1a31a13eff86ce8b5330829cd15b07fab.ts → Text-client-e05d0c431475bf49349b4f6c162c9e78e0577b10.ts} +3 -0
  335. package/test/text/components/temp/Text-types-f9e6d77cf5a6def5aff78be41ebca3e8e6a54278.ts +16 -0
  336. package/test/watch-array/components/output/Array-client.ts +3 -0
  337. package/test/watch-array/components/output/Array-types.ts +10 -0
  338. package/test/watch-array/components/output/ArrayEntries-client.ts +3 -0
  339. package/test/watch-array/components/output/ArrayEntries-types.ts +10 -0
  340. package/test/watch-array/components/output/ArrayIndexes-client.ts +3 -0
  341. package/test/watch-array/components/output/ArrayIndexes-types.ts +10 -0
  342. package/test/watch-array/components/output/ArrayUnkeyed-client.ts +3 -0
  343. package/test/watch-array/components/output/ArrayUnkeyed-types.ts +10 -0
  344. package/test/watch-array/components/temp/{Array-client-552f81452d33fe6dc715c9f6bb7986f06475d761.ts → Array-client-3110972e940a678cc26316f5f38b9315a27559ee.ts} +3 -0
  345. package/test/watch-array/components/temp/Array-types-4afcc38999fa0a5d5b28b8c54ea8f25659d91165.ts +10 -0
  346. package/test/watch-array/components/temp/{ArrayEntries-client-736755fba2492e74812ff9c905202810de54e15a.ts → ArrayEntries-client-7f1e7bf740768a929f21e62f6b8ee31db8a50918.ts} +3 -0
  347. package/test/watch-array/components/temp/ArrayEntries-types-ae83cd05c68e5e6b7e8d31212035c14ec9ea6b85.ts +10 -0
  348. package/test/watch-array/components/temp/{ArrayIndexes-client-a496328fa92ffca676ab8893013a0cfec1734ad1.ts → ArrayIndexes-client-9861162934f1d779326d4d268cd95d765155a085.ts} +3 -0
  349. package/test/watch-array/components/temp/ArrayIndexes-types-5f02ec73d46553fd5730abfe022dba9a76a341f7.ts +10 -0
  350. package/test/watch-array/components/temp/{ArrayUnkeyed-client-5a2c5cb1fecba52653f7f35cfd07627682930c15.ts → ArrayUnkeyed-client-4ae3d9a74e763f8879458012de2a3c3837956c99.ts} +3 -0
  351. package/test/watch-array/components/temp/ArrayUnkeyed-types-6f544a6b354c46913b9ee0e843d0a6482af2745d.ts +10 -0
  352. package/test/watch-object/components/output/Watched-client.ts +3 -0
  353. package/test/watch-object/components/output/Watched-types.ts +10 -0
  354. package/test/watch-object/components/temp/{Watched-client-1f0409aa6e2c425d0319a23caec7d10ad313d579.ts → Watched-client-a7ddca317e29ef12d882d90e7b043d9c99a5f355.ts} +3 -0
  355. package/test/watch-object/components/temp/Watched-types-70c7bde732f624bfbb8e353bf9d1be8dbaea63e1.ts +10 -0
  356. package/test/attributes/components/Attributes.d.ts +0 -18
  357. package/test/await/components/Await.d.ts +0 -18
  358. package/test/bench/components/Bench.d.ts +0 -18
  359. package/test/bind/components/BindText.d.ts +0 -18
  360. package/test/child-component/components/ParentChild.d.ts +0 -34
  361. package/test/class/components/Class.d.ts +0 -18
  362. package/test/component/components/Component.d.ts +0 -18
  363. package/test/component/components/Header.d.ts +0 -18
  364. package/test/console/components/Console.d.ts +0 -18
  365. package/test/const/components/Const.d.ts +0 -18
  366. package/test/effects/components/For.d.ts +0 -18
  367. package/test/effects/components/If.d.ts +0 -18
  368. package/test/effects/components/NestedIf.d.ts +0 -18
  369. package/test/events/components/Increment.d.ts +0 -18
  370. package/test/for/components/For.d.ts +0 -18
  371. package/test/for/components/ForEscape.d.ts +0 -18
  372. package/test/for/components/ForIn.d.ts +0 -18
  373. package/test/for/components/ForOf.d.ts +0 -18
  374. package/test/function/components/Function.d.ts +0 -18
  375. package/test/html/components/Html.d.ts +0 -18
  376. package/test/if/components/IfAfterIf.d.ts +0 -18
  377. package/test/if/components/IfElse.d.ts +0 -18
  378. package/test/if/components/IfElseIf.d.ts +0 -18
  379. package/test/if/components/IfNested.d.ts +0 -18
  380. package/test/mount/components/Mount.d.ts +0 -18
  381. package/test/on-mount/components/OnMount.d.ts +0 -18
  382. package/test/party/components/AnswerButton.d.ts +0 -18
  383. package/test/party/components/AnswerButtonApp.d.ts +0 -18
  384. package/test/party/components/ColorSelect.d.ts +0 -18
  385. package/test/party/components/Colors.d.ts +0 -18
  386. package/test/party/components/Counter.d.ts +0 -18
  387. package/test/party/components/CssStyle.d.ts +0 -18
  388. package/test/party/components/DoubleCount.d.ts +0 -18
  389. package/test/party/components/FunnyButton.d.ts +0 -18
  390. package/test/party/components/FunnyButtonApp.d.ts +0 -18
  391. package/test/party/components/HelloWorld.d.ts +0 -18
  392. package/test/party/components/InputFocused.d.ts +0 -18
  393. package/test/party/components/InputHello.d.ts +0 -18
  394. package/test/party/components/IsAvailable.d.ts +0 -18
  395. package/test/party/components/Name.d.ts +0 -18
  396. package/test/party/components/NameUpdate.d.ts +0 -18
  397. package/test/party/components/PageTitle.d.ts +0 -18
  398. package/test/party/components/PickPill.d.ts +0 -18
  399. package/test/party/components/Time.d.ts +0 -18
  400. package/test/party/components/TrafficLight.d.ts +0 -18
  401. package/test/party/components/UserProfile.d.ts +0 -23
  402. package/test/party/components/UserProfileApp.d.ts +0 -18
  403. package/test/party/components/UserProfileContext.d.ts +0 -18
  404. package/test/party/components/UserProfileContextApp.d.ts +0 -18
  405. package/test/replace/components/Replace.d.ts +0 -18
  406. package/test/slots/components/Article.d.ts +0 -18
  407. package/test/slots/components/Basic.d.ts +0 -18
  408. package/test/slots/components/Header.d.ts +0 -18
  409. package/test/slots/components/Let.d.ts +0 -18
  410. package/test/slots/components/List.d.ts +0 -18
  411. package/test/slots/components/Named.d.ts +0 -18
  412. package/test/slots/components/Unused.d.ts +0 -18
  413. package/test/special-component/components/BigTitle.d.ts +0 -18
  414. package/test/special-component/components/Component.d.ts +0 -18
  415. package/test/special-component/components/SmallTitle.d.ts +0 -18
  416. package/test/special-element/components/Element.d.ts +0 -18
  417. package/test/special-head/components/Head.d.ts +0 -18
  418. package/test/special-self/components/Self.d.ts +0 -18
  419. package/test/style/components/Style.d.ts +0 -18
  420. package/test/svg/components/Shape.d.ts +0 -18
  421. package/test/switch/components/Switch.d.ts +0 -21
  422. package/test/text/components/Text.d.ts +0 -21
  423. package/test/watch-array/components/Array.d.ts +0 -18
  424. package/test/watch-array/components/ArrayEntries.d.ts +0 -18
  425. package/test/watch-array/components/ArrayIndexes.d.ts +0 -18
  426. package/test/watch-array/components/ArrayUnkeyed.d.ts +0 -18
  427. package/test/watch-object/components/Watched.d.ts +0 -18
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @torpor/view
2
2
 
3
+ ## 0.3.2
4
+
5
+ ### Patch Changes
6
+
7
+ - f4716c5: Fix: isolate components
8
+ - 1253f7a: Fix: handle unclosed elements
9
+ - 6268e00: Fix: run @if, @switch and @await with cached signals
10
+ - f2fb547: Fix: better type definition generation
11
+
3
12
  ## 0.3.1
4
13
 
5
14
  ### Patch Changes
package/dist/compile.cjs CHANGED
@@ -779,6 +779,7 @@ function buildAwaitNode(node, status, b) {
779
779
  const parentName = node.parentName;
780
780
  const rangeName = nextVarName("await_range", status);
781
781
  const stateName = "$" + nextVarName("await_state", status);
782
+ const creatorsName = nextVarName("await_creators", status);
782
783
  const awaitVarsName = nextVarName("await_vars", status);
783
784
  const branches = node.children.filter((n) => isControlNode(n));
784
785
  let awaitBranch = branches.find((n) => n.operation === "@await");
@@ -817,11 +818,13 @@ function buildAwaitNode(node, status, b) {
817
818
  b.append(`
818
819
  /* @await */
819
820
  const ${rangeName} = t_range();
820
- let ${stateName} = $watch({ creator: (_: Node | null) => {} });`);
821
+ let ${stateName} = $watch({ index: -1 });
822
+ let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
821
823
  b.append(`
822
824
  let ${awaitVarsName} = { t_token: 0 };
823
825
  $run(function runAwait() {`);
824
- buildAwaitBranch(awaitBranch, status, b, parentName, stateName);
826
+ let index = 0;
827
+ buildAwaitBranch(awaitBranch, status, b, parentName, stateName, creatorsName, index++);
825
828
  b.append(`${awaitVarsName}.t_token++;
826
829
  ((t_token) => {`);
827
830
  awaitBranch.range.start += 7;
@@ -829,27 +832,27 @@ function buildAwaitNode(node, status, b) {
829
832
  thenBranch.range.start -= 1;
830
833
  addMappedText(".then((", replaceForVarNames(thenVar, status), ") => {", thenBranch.range, status, b);
831
834
  b.append(`if (t_token === ${awaitVarsName}.t_token) {`);
832
- buildAwaitBranch(thenBranch, status, b, parentName, stateName);
835
+ buildAwaitBranch(thenBranch, status, b, parentName, stateName, creatorsName, index++);
833
836
  b.append(`}
834
837
  })`);
835
838
  catchBranch.range.start -= 1;
836
839
  addMappedText(".catch((", replaceForVarNames(catchVar, status), ") => {", catchBranch.range, status, b);
837
840
  b.append(`
838
841
  if (t_token === ${awaitVarsName}.t_token) {`);
839
- buildAwaitBranch(catchBranch, status, b, parentName, stateName);
842
+ buildAwaitBranch(catchBranch, status, b, parentName, stateName, creatorsName, index++);
840
843
  b.append(`}
841
844
  });
842
845
  })(${awaitVarsName}.t_token);
843
846
  });`);
844
847
  b.append(`
845
848
  t_run_control(${rangeName}, ${anchorName}, (t_before) => {
846
- t_run_branch(${rangeName}, () => ${stateName}.creator(t_before));
849
+ t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
847
850
  });`);
848
851
  b.append("");
849
852
  }
850
- function buildAwaitBranch(node, status, b, parentName, stateName) {
853
+ function buildAwaitBranch(node, status, b, parentName, stateName, creatorsName, index) {
851
854
  if (node.children.length > 0) {
852
- b.append(`${stateName}.creator = (t_before) => {`);
855
+ b.append(`${creatorsName}[${index}] = (t_before) => {`);
853
856
  buildFragment(node, status, b, parentName, "t_before");
854
857
  status.fragmentStack.push({
855
858
  fragment: node.fragment,
@@ -859,7 +862,8 @@ function buildAwaitBranch(node, status, b, parentName, stateName) {
859
862
  status.fragmentStack.pop();
860
863
  buildAddFragment(node, status, b, parentName, "t_before");
861
864
  b.append("};");
862
- } else b.append(`${stateName}.creator = (_) => {};`);
865
+ } else b.append(`${creatorsName}[${index}] = (_) => {};`);
866
+ b.append(`${stateName}.index = ${index};`);
863
867
  }
864
868
 
865
869
  //#endregion
@@ -999,6 +1003,7 @@ function buildIfNode(node, status, b) {
999
1003
  const parentName = node.parentName || anchorName + ".parentNode";
1000
1004
  const rangeName = nextVarName("if_range", status);
1001
1005
  const stateName = "$" + nextVarName("if_state", status);
1006
+ const creatorsName = nextVarName("if_creators", status);
1002
1007
  const branches = node.children.filter((n) => isControlNode(n));
1003
1008
  if (branches.findIndex((n) => n.operation === "@else") === -1) branches.push({
1004
1009
  type: "control",
@@ -1019,20 +1024,22 @@ function buildIfNode(node, status, b) {
1019
1024
  b.append(`
1020
1025
  /* @if */
1021
1026
  const ${rangeName} = t_range();
1022
- let ${stateName} = $watch({ creator: (_: Node | null) => {} });`);
1027
+ let ${stateName} = $watch({ index: -1 });
1028
+ let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
1023
1029
  b.append(`$run(function runIf() {`);
1024
- for (let branch of branches) buildIfBranch(branch, status, b, parentName, stateName);
1030
+ let index = 0;
1031
+ for (let branch of branches) buildIfBranch(branch, status, b, parentName, stateName, creatorsName, index++);
1025
1032
  b.append(`});`);
1026
1033
  b.append(`
1027
1034
  t_run_control(${rangeName}, ${anchorName}, (t_before) => {
1028
- t_run_branch(${rangeName}, () => ${stateName}.creator(t_before));
1035
+ t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
1029
1036
  });`);
1030
1037
  b.append("");
1031
1038
  }
1032
- function buildIfBranch(node, status, b, parentName, stateName) {
1039
+ function buildIfBranch(node, status, b, parentName, stateName, creatorsName, index) {
1033
1040
  addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
1034
1041
  if (node.children.length > 0) {
1035
- b.append(`${stateName}.creator = (t_before) => {`);
1042
+ b.append(`${creatorsName}[${index}] = (t_before) => {`);
1036
1043
  buildFragment(node, status, b, parentName, "t_before");
1037
1044
  status.fragmentStack.push({
1038
1045
  fragment: node.fragment,
@@ -1042,7 +1049,8 @@ function buildIfBranch(node, status, b, parentName, stateName) {
1042
1049
  status.fragmentStack.pop();
1043
1050
  buildAddFragment(node, status, b, parentName, "t_before");
1044
1051
  b.append("};");
1045
- } else b.append(`${stateName}.creator = (_) => {};`);
1052
+ } else b.append(`${creatorsName}[${index}] = (_) => {};`);
1053
+ b.append(`${stateName}.index = ${index};`);
1046
1054
  b.append("}");
1047
1055
  }
1048
1056
 
@@ -1097,6 +1105,7 @@ function buildSwitchNode(node, status, b) {
1097
1105
  const parentName = node.parentName;
1098
1106
  const rangeName = nextVarName("switch_range", status);
1099
1107
  const stateName = "$" + nextVarName("switch_state", status);
1108
+ const creatorsName = nextVarName("switch_creators", status);
1100
1109
  const branches = node.children.filter((n) => isControlNode(n));
1101
1110
  if (branches.findIndex((n) => n.operation === "@default") === -1) branches.push({
1102
1111
  type: "control",
@@ -1117,24 +1126,26 @@ function buildSwitchNode(node, status, b) {
1117
1126
  b.append(`
1118
1127
  /* @switch */
1119
1128
  const ${rangeName} = t_range();
1120
- let ${stateName} = $watch({ creator: (_: Node | null) => {} });`);
1129
+ let ${stateName} = $watch({ index: -1 });
1130
+ let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
1121
1131
  b.append(`
1122
1132
  $run(function runSwitch() {`);
1133
+ let index = 0;
1123
1134
  addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
1124
- for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, stateName);
1135
+ for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, stateName, creatorsName, index++);
1125
1136
  b.append(`
1126
1137
  }
1127
1138
  });`);
1128
1139
  b.append(`
1129
1140
  t_run_control(${rangeName}, ${anchorName}, (t_before) => {
1130
- t_run_branch(${rangeName}, () => ${stateName}.creator(t_before));
1141
+ t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
1131
1142
  });`);
1132
1143
  b.append("");
1133
1144
  }
1134
- function buildSwitchBranch(node, status, b, parentName, stateName) {
1145
+ function buildSwitchBranch(node, status, b, parentName, stateName, creatorsName, index) {
1135
1146
  addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
1136
1147
  if (node.children.length > 0) {
1137
- b.append(`${stateName}.creator = (t_before) => {`);
1148
+ b.append(`${creatorsName}[${index}] = (t_before) => {`);
1138
1149
  buildFragment(node, status, b, parentName, "t_before");
1139
1150
  status.fragmentStack.push({
1140
1151
  fragment: node.fragment,
@@ -1144,7 +1155,8 @@ function buildSwitchBranch(node, status, b, parentName, stateName) {
1144
1155
  status.fragmentStack.pop();
1145
1156
  buildAddFragment(node, status, b, parentName, "t_before");
1146
1157
  b.append("};");
1147
- } else b.append(`${stateName}.creator = (_) => {};`);
1158
+ } else b.append(`${creatorsName}[${index}] = (_) => {};`);
1159
+ b.append(`${stateName}.index = ${index};`);
1148
1160
  b.append(`
1149
1161
  break;
1150
1162
  }`);
@@ -1713,7 +1725,7 @@ function buildTemplate(template, map, imports, b, options) {
1713
1725
  if (/\$run\b/.test(script)) imports.add("$run");
1714
1726
  if (/\$mount\b/.test(script)) imports.add("$mount");
1715
1727
  if (/\$unwrap\b/.test(script)) imports.add("$unwrap");
1716
- if (/\$peek\b/.test(script)) imports.add("$peek");
1728
+ imports.add("$peek");
1717
1729
  if (/\$batch\b/.test(script)) imports.add("$batch");
1718
1730
  let currentIndex = 0;
1719
1731
  let current = template.components[0];
@@ -1729,6 +1741,7 @@ function buildTemplate(template, map, imports, b, options) {
1729
1741
  } else if (chunk.script === ") /* @return_type */ {") b.append("): void {");
1730
1742
  else if (chunk.script === "/* @start */") {
1731
1743
  if (current.contextProps?.length) b.append(`$context = Object.assign({}, $context);`);
1744
+ b.append("$peek(() => { /**/");
1732
1745
  b.append("");
1733
1746
  } else if (chunk.script === "/* @render */") {
1734
1747
  if (current.markup) {
@@ -1749,6 +1762,7 @@ function buildTemplate(template, map, imports, b, options) {
1749
1762
  status.inHead = false;
1750
1763
  }
1751
1764
  } else if (chunk.script === "/* @style */") {} else if (chunk.script === "/* @end */") {
1765
+ b.append("/**/ });");
1752
1766
  currentIndex += 1;
1753
1767
  current = template.components[currentIndex];
1754
1768
  } else {
@@ -2426,17 +2440,14 @@ function build(template, options) {
2426
2440
  function buildType(template, options) {
2427
2441
  let b = new Builder();
2428
2442
  b.append(`import { type SlotRender } from "${options?.renderFolder || "@torpor/view"}";`);
2429
- for (let component of template.components) {
2443
+ for (let component of template.components) if (component.exported) {
2430
2444
  b.append("");
2445
+ if (component.propsType) {
2446
+ b.append(component.propsType);
2447
+ b.append("");
2448
+ }
2431
2449
  b.append(`
2432
- /**
2433
- * Mounts or hydrates the component into the supplied parent node.
2434
- * @param $parent -- The parent node.
2435
- * @param $anchor -- The node to mount the component before.
2436
- * @param $props -- The values that have been passed into the component as properties.
2437
- * @param $context -- Values that have been passed into the component from its ancestors.
2438
- * @param $slots -- Functions for rendering children into slot nodes within the component.
2439
- */
2450
+ ${component.documentation ?? ""}
2440
2451
  ${component.default ? "declare" : "export declare"} function ${component.name}(
2441
2452
  $parent: ParentNode,
2442
2453
  $anchor: Node | null,
@@ -2456,6 +2467,45 @@ function isSpaceNode(node) {
2456
2467
  return isTextNode(node) && isSpace(node.content);
2457
2468
  }
2458
2469
 
2470
+ //#endregion
2471
+ //#region src/compile/parse/utils/accept.ts
2472
+ /**
2473
+ * Checks whether the source at the current parse position matches the supplied
2474
+ * string
2475
+ *
2476
+ * @param value The string to check
2477
+ * @param status The parse status
2478
+ * @param advance (Optional) If true, advances the parse position past the
2479
+ * checked string (defaults to true)
2480
+ *
2481
+ * @returns True if the supplied string was found at the current parse position
2482
+ */
2483
+ function accept(value, status, advance = true) {
2484
+ if (status.source.substring(status.i, status.i + value.length) == value) {
2485
+ status.i += advance ? value.length : 0;
2486
+ return true;
2487
+ }
2488
+ return false;
2489
+ }
2490
+
2491
+ //#endregion
2492
+ //#region src/compile/parse/parseInlineScript.ts
2493
+ function parseInlineScript(status) {
2494
+ const start = status.i;
2495
+ let braceCount = 0;
2496
+ while (status.i < status.source.length) if (accept("{", status)) braceCount += 1;
2497
+ else if (accept("}", status)) if (braceCount > 0) braceCount -= 1;
2498
+ else return status.source.substring(start, status.i - 1);
2499
+ else if (accept("//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
2500
+ else if (accept("/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
2501
+ else if (accept("\"", status) || accept("'", status)) {
2502
+ const char = status.source[status.i - 1];
2503
+ status.i = endOfString(char, status.source, status.i - 1) + 1;
2504
+ } else if (accept("`", status)) status.i = endOfTemplateString(status.source, status.i - 1) + 1;
2505
+ else status.i += 1;
2506
+ return "";
2507
+ }
2508
+
2459
2509
  //#endregion
2460
2510
  //#region src/compile/utils/trimStart.ts
2461
2511
  /**
@@ -2520,45 +2570,6 @@ function isFullyReactive(text) {
2520
2570
  return text.trim().startsWith("{") && text.trim().endsWith("}");
2521
2571
  }
2522
2572
 
2523
- //#endregion
2524
- //#region src/compile/parse/utils/accept.ts
2525
- /**
2526
- * Checks whether the source at the current parse position matches the supplied
2527
- * string
2528
- *
2529
- * @param value The string to check
2530
- * @param status The parse status
2531
- * @param advance (Optional) If true, advances the parse position past the
2532
- * checked string (defaults to true)
2533
- *
2534
- * @returns True if the supplied string was found at the current parse position
2535
- */
2536
- function accept(value, status, advance = true) {
2537
- if (status.source.substring(status.i, status.i + value.length) == value) {
2538
- status.i += advance ? value.length : 0;
2539
- return true;
2540
- }
2541
- return false;
2542
- }
2543
-
2544
- //#endregion
2545
- //#region src/compile/parse/parseInlineScript.ts
2546
- function parseInlineScript(status) {
2547
- const start = status.i;
2548
- let braceCount = 0;
2549
- while (status.i < status.source.length) if (accept("{", status)) braceCount += 1;
2550
- else if (accept("}", status)) if (braceCount > 0) braceCount -= 1;
2551
- else return status.source.substring(start, status.i - 1);
2552
- else if (accept("//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
2553
- else if (accept("/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
2554
- else if (accept("\"", status) || accept("'", status)) {
2555
- const char = status.source[status.i - 1];
2556
- status.i = endOfString(char, status.source, status.i - 1) + 1;
2557
- } else if (accept("`", status)) status.i = endOfTemplateString(status.source, status.i - 1) + 1;
2558
- else status.i += 1;
2559
- return "";
2560
- }
2561
-
2562
2573
  //#endregion
2563
2574
  //#region src/compile/parse/utils/isAlphaNumericChar.ts
2564
2575
  /**
@@ -2652,6 +2663,7 @@ function parseTagAttributes(status) {
2652
2663
  if (accept("@//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
2653
2664
  else if (accept("@/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
2654
2665
  else if (accept("/>", status, false) || accept(">", status, false)) break;
2666
+ else if (accept("<", status, false) || accept("@", status, false) || accept("}", status, false)) break;
2655
2667
  else {
2656
2668
  const attribute = parseAttribute(status);
2657
2669
  attributes.push(attribute);
@@ -3401,11 +3413,14 @@ function parseCode(source) {
3401
3413
  return {
3402
3414
  start: c.start,
3403
3415
  name: c.name,
3416
+ exported: c.exported,
3404
3417
  default: c.default,
3418
+ documentation: c.documentation,
3405
3419
  params: c.params,
3406
3420
  markup: c.markup,
3407
3421
  head: c.head,
3408
3422
  style: c.style,
3423
+ propsType: c.propsType,
3409
3424
  props: c.props,
3410
3425
  contextProps: c.contextProps,
3411
3426
  slotProps: c.slotProps,
@@ -3416,17 +3431,31 @@ function parseCode(source) {
3416
3431
  };
3417
3432
  }
3418
3433
  function parseComponentStart(status) {
3419
- let source = status.source.substring(0, status.i);
3434
+ let source = status.source.substring(status.marker, status.i);
3435
+ let exported = /export\s+(default\s+)*(function\s+|const\s+)*$/.test(source);
3420
3436
  let def = /export\s+default\s+(function\s+|const\s+)*$/.test(source);
3421
3437
  let isConst = /const\s+$/.test(source);
3422
3438
  let isAnon = /export default\s+$/.test(source);
3423
- status.components.push({
3424
- start: status.i,
3425
- name: consumeAlphaNumeric(status),
3439
+ let componentStart = status.i;
3440
+ let name = consumeAlphaNumeric(status);
3441
+ const current = {
3442
+ start: componentStart,
3443
+ name,
3444
+ exported,
3426
3445
  default: def
3427
- });
3428
- const current = status.components.at(-1);
3429
- if (!current) return;
3446
+ };
3447
+ status.components.push(current);
3448
+ let presource = source.substring(0, status.i).trimEnd();
3449
+ let lastNewline = presource.lastIndexOf("\n");
3450
+ if (lastNewline !== -1) {
3451
+ presource = presource.substring(0, lastNewline).trimEnd();
3452
+ if (presource.endsWith("*/")) {
3453
+ for (let i = presource.length; i >= 0; i--) if (presource.substring(i, i + 3) === "/**") {
3454
+ current.documentation = presource.substring(i);
3455
+ break;
3456
+ }
3457
+ }
3458
+ }
3430
3459
  let start = -1;
3431
3460
  let end = -1;
3432
3461
  let level = 0;
@@ -3458,6 +3487,29 @@ function parseComponentStart(status) {
3458
3487
  }
3459
3488
  });
3460
3489
  current.params = status.source.substring(start, end).trim() || void 0;
3490
+ const paramsMatch = current.params?.match(/\$props:\s*([$A-Za-z0-9]+)/);
3491
+ if (paramsMatch) {
3492
+ let propsTypeName = paramsMatch[1];
3493
+ let propsTypeStart = status.source.search(/* @__PURE__ */ new RegExp(`interface\\s+${propsTypeName}`));
3494
+ if (propsTypeStart === -1) propsTypeStart = status.source.search(/* @__PURE__ */ new RegExp(`type\\s+${propsTypeName}`));
3495
+ if (propsTypeStart !== -1) {
3496
+ let bracesStart = status.source.indexOf("{", propsTypeStart);
3497
+ if (bracesStart !== -1) {
3498
+ const status2 = {
3499
+ source: status.source,
3500
+ i: bracesStart + 1,
3501
+ marker: 0,
3502
+ level: 0,
3503
+ imports: [],
3504
+ script: [],
3505
+ components: [],
3506
+ errors: []
3507
+ };
3508
+ const propsType = parseInlineScript(status2);
3509
+ if (propsType) current.propsType = `${status.source.substring(propsTypeStart, bracesStart)}{${propsType}}`;
3510
+ }
3511
+ }
3512
+ }
3461
3513
  status.marker = end;
3462
3514
  status.i = status.marker;
3463
3515
  accept(")", status);