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