@torpor/view 0.0.14 → 0.1.1

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 (276) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +5 -5
  3. package/dist/compile.cjs +77 -32
  4. package/dist/compile.cjs.map +1 -1
  5. package/dist/compile.js +77 -32
  6. package/dist/compile.js.map +1 -1
  7. package/dist/index.cjs +31 -15
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +2 -4
  10. package/dist/index.d.ts +2 -4
  11. package/dist/index.js +31 -14
  12. package/dist/index.js.map +1 -1
  13. package/dist/metafile-cjs.json +1 -1
  14. package/dist/metafile-esm.json +1 -1
  15. package/package.json +4 -4
  16. package/scripts/copyToRepl.ts +1 -1
  17. package/src/compile/build/client/buildCode.ts +2 -11
  18. package/src/compile/build/client/buildComponentNode.ts +21 -5
  19. package/src/compile/build/client/buildElementNode.ts +27 -10
  20. package/src/compile/build/client/buildFragment.ts +37 -1
  21. package/src/compile/build/client/buildHtmlNode.ts +1 -0
  22. package/src/compile/build/client/buildSlotNode.ts +4 -1
  23. package/src/compile/build/server/buildServerComponentNode.ts +4 -1
  24. package/src/compile/build/server/buildServerElementNode.ts +5 -2
  25. package/src/compile/build/server/buildServerSlotNode.ts +4 -1
  26. package/src/compile/parse/parseCode.ts +20 -12
  27. package/src/index.ts +0 -2
  28. package/src/motion/animate.ts +10 -6
  29. package/src/render/$unwrap.ts +1 -1
  30. package/src/render/addFragment.ts +14 -4
  31. package/src/render/hydrate.ts +7 -0
  32. package/src/render/nodeNext.ts +14 -7
  33. package/src/render/runControlBranch.ts +11 -1
  34. package/src/render/runList.ts +8 -2
  35. package/test/attributes/attributes.test.ts +3 -0
  36. package/test/attributes/components/Attributes.torp +6 -1
  37. package/test/attributes/components/output/Attributes-client.ts +6 -2
  38. package/test/attributes/components/output/Attributes-server.ts +2 -1
  39. package/test/attributes/components/temp/{Attributes-client-c4812cb9307eac6ff44f90f3358a1811b52c7390.ts → Attributes-client-7b8f7b9996208e8d2d0a12d4f4a40a73df63d9d8.ts} +6 -2
  40. package/test/attributes/components/temp/{Attributes-server-a7ebed503f2169f7c900d4613531082f1023b086.ts → Attributes-server-a1289434a5a801be1d63bfc85b621579e06452f0.ts} +2 -1
  41. package/test/await/await.test.ts +2 -4
  42. package/test/await/components/output/Await-client.ts +4 -4
  43. package/test/await/components/temp/{Await-client-6ce3ac610ce79ae3b474c81964b715e6f3d966da.ts → Await-client-a7bf000bf2b59a3d5251a0fa18ec79890a52a547.ts} +4 -4
  44. package/test/bench/bench.bench.ts +5 -7
  45. package/test/bench/components/output/Bench-client.ts +208 -0
  46. package/test/bench/components/output/Bench-server.ts +130 -0
  47. package/test/bench/components/temp/{Bench-client-5fee290225ae4771aa847360006123671e8f17f1.ts → Bench-client-fca94b485c6263778751927240ab3ca4048d7a10.ts} +10 -10
  48. package/test/bind/bind.test.ts +3 -5
  49. package/test/bind/component.test.ts +45 -0
  50. package/test/bind/components/BindComponent.torp +29 -0
  51. package/test/bind/components/BindText.torp +2 -2
  52. package/test/bind/components/output/BindComponent-client.ts +87 -0
  53. package/test/bind/components/output/BindComponent-server.ts +52 -0
  54. package/test/bind/components/output/BindText-client.ts +3 -3
  55. package/test/bind/components/temp/BindComponent-client-a645474748485a878871c062ad69e6bcf35e6550.ts +87 -0
  56. package/test/bind/components/temp/BindComponent-server-c557e7aa944517ab87415b8bb35b41b0034254e7.ts +52 -0
  57. package/test/bind/components/temp/{BindText-client-9e2f542e13bcbf9a44eab2c5a79d67ddb128f928.ts → BindText-client-d5f7d721df55020ef337f660e5d278eb80fcc330.ts} +3 -3
  58. package/test/build-server/build-server-element-node.test.ts +1 -1
  59. package/test/buildOutputFiles.ts +6 -3
  60. package/test/child-component/components/output/ParentChild-client.ts +3 -2
  61. package/test/child-component/components/output/ParentChild-server.ts +1 -0
  62. package/test/child-component/components/temp/{ParentChild-client-8f00a3a31a7f666990765fc4755b62a39c855226.ts → ParentChild-client-eaefb0cbfd251badab3c57ae2037d973f785a1b8.ts} +3 -2
  63. package/test/child-component/components/temp/{ParentChild-server-9c791bdfa521c3f6549857a34a6cd414fa3c9e80.ts → ParentChild-server-8f2fc556f87867e6e3393e2e9e6d696cda107b69.ts} +1 -0
  64. package/test/class/components/output/Class-client.ts +7 -6
  65. package/test/class/components/output/Class-server.ts +1 -0
  66. package/test/class/components/temp/{Class-client-8bf02b6a0c85674d341617dfb755b285b1af89cf.ts → Class-client-dc885e1e391f38973bd9ea25b7475b07f7c23960.ts} +7 -6
  67. package/test/class/components/temp/{Class-server-dd71b6ec62f40231917a912819520fc614f017ae.ts → Class-server-d1a2463ba432e10c6f68bd59d1d31949c5a2044f.ts} +1 -0
  68. package/test/component/components/output/Component-client.ts +3 -2
  69. package/test/component/components/output/Component-server.ts +1 -1
  70. package/test/component/components/output/Header-client.ts +2 -1
  71. package/test/component/components/output/Header-server.ts +1 -0
  72. package/test/component/components/temp/{Component-client-32cd481f03e25d10b8e93947a2ff8773135b4975.ts → Component-client-a2fb6f30fc340bac909b64cb4f5ac68cde376de3.ts} +3 -2
  73. package/test/component/components/temp/{Component-server-11542f55405218c0b471172cac1d6a1a4edb5c09.ts → Component-server-40be12cd528ccf768f1ad40ef2a435ad2b2a2d71.ts} +1 -1
  74. package/test/component/components/temp/{Header-client-ac151eea86e3f6b058fab101661e13ae73864968.ts → Header-client-75cb4aa868295ac168c16ba7b275fbb5ab9256f9.ts} +2 -1
  75. package/test/component/components/temp/{Header-server-4f10f2332f3ca7a097517cfb938ab1e6f31d68ac.ts → Header-server-f73307874bec34a95dcd152d7f83a3ad13a0f4ac.ts} +1 -0
  76. package/test/effects/components/output/For-client.ts +3 -2
  77. package/test/effects/components/output/For-server.ts +1 -0
  78. package/test/effects/components/output/If-client.ts +4 -3
  79. package/test/effects/components/output/If-server.ts +1 -0
  80. package/test/effects/components/output/NestedIf-client.ts +4 -3
  81. package/test/effects/components/output/NestedIf-server.ts +1 -0
  82. package/test/effects/components/temp/{For-client-887b1758cf5c80f64708a47369e0e6ce44ffa20f.ts → For-client-d8d4e4424ec3238fe9f79cc907d673612b63bcdf.ts} +3 -2
  83. package/test/effects/components/temp/{For-server-8e1c7393b102c870167dd086cbee45c47e614dfa.ts → For-server-1f853c161bea31a1a5b11b00d7a021b70c778066.ts} +1 -0
  84. package/test/effects/components/temp/{If-client-bfc548ef699b91f33e604f066211ce6269cc9506.ts → If-client-bb06988422395321bf298a75bf5563c6f750f776.ts} +4 -3
  85. package/test/effects/components/temp/{If-server-8c213b1a82cd0a5c2bccfeb90ba8bf01fa4672d2.ts → If-server-97e3cbe059306fc607985dcd1b187df3a278d979.ts} +1 -0
  86. package/test/effects/components/temp/{NestedIf-client-9e9155398f240345af392194063adc6e42dda80c.ts → NestedIf-client-dc880c1ec92e716ec730dfa0bac0e3d9265bdf27.ts} +4 -3
  87. package/test/effects/components/temp/{NestedIf-server-5f11d075c2ff224ee5feb7f61aa41aea8af44313.ts → NestedIf-server-9f199a33bae5d5fe34920d6a419937537a2b18dc.ts} +1 -0
  88. package/test/events/components/output/Increment-client.ts +2 -2
  89. package/test/events/components/temp/{Increment-client-35c275d15e94e4aa7625af12c45210521995ead5.ts → Increment-client-41bd7bc91aac8c7a9bf73527c8f7ba1794b09ab3.ts} +2 -2
  90. package/test/events/events.test.ts +2 -3
  91. package/test/for/components/ForEscape.torp +1 -1
  92. package/test/for/components/output/For-client.ts +1 -1
  93. package/test/for/components/output/ForEscape-client.ts +4 -4
  94. package/test/for/components/output/ForIn-client.ts +3 -2
  95. package/test/for/components/output/ForIn-server.ts +1 -0
  96. package/test/for/components/output/ForOf-client.ts +3 -2
  97. package/test/for/components/output/ForOf-server.ts +1 -0
  98. package/test/for/components/temp/{For-client-1f6e475347f0474375f12a7c24b0b293e3942aa7.ts → For-client-0be5994e98c07a3455cd8a18a2b1b8ef3605aba6.ts} +1 -1
  99. package/test/for/components/temp/{ForEscape-client-80d3078cf15001f2ab37b0ec63cfce7267a8a166.ts → ForEscape-client-a973a145e28b32ca55fe3dca53d885fcf5e11c37.ts} +4 -4
  100. package/test/for/components/temp/{ForIn-client-c8a1ec4473d05475e11928d06d081ab671fd9f28.ts → ForIn-client-5cc25a98e10826e8477fe6f931d5d2bbd0b13c9f.ts} +3 -2
  101. package/test/for/components/temp/{ForIn-server-d92cf8d3c3e300b562308607caca2c9cab3cb30b.ts → ForIn-server-d68e82c048f7e0f1525f74724b91e5cd01cdc6a6.ts} +1 -0
  102. package/test/for/components/temp/{ForOf-client-069881d4d9e52bc091e7213154924f3e1626174a.ts → ForOf-client-70b0d59ff72f1cffe2e0ac8523dd7ccdca4ffe39.ts} +3 -2
  103. package/test/for/components/temp/{ForOf-server-3bfbb33bd589890d272bbcbea53d9598f53bfd70.ts → ForOf-server-ac08d98dd249a3e64a366b8488450e6ce0d18def.ts} +1 -0
  104. package/test/for/for-escape.test.ts +2 -3
  105. package/test/function/components/output/Function-client.ts +1 -1
  106. package/test/function/components/temp/{Function-client-b8931e51769f3f1e84d1491c6474f8551acf9f8d.ts → Function-client-b3ff029a821d47e1a2249a52dfb681f4b2e96232.ts} +1 -1
  107. package/test/function/function.test.ts +1 -2
  108. package/test/html/components/output/Html-client.ts +3 -1
  109. package/test/html/components/output/Html-server.ts +1 -0
  110. package/test/html/components/temp/{Html-client-5fc745d9980a42a70dcb3473b0fd976e69882c9e.ts → Html-client-766ba4a63f28f929ca16cd7d1640fe92f9b30792.ts} +3 -1
  111. package/test/html/components/temp/{Html-server-437ea390e58947213ede74755a012cdacceeebe7.ts → Html-server-0a41da8b81bf833f331f3becdbac14be7ddc6c8c.ts} +1 -0
  112. package/test/if/components/output/IfAfterIf-client.ts +5 -4
  113. package/test/if/components/output/IfAfterIf-server.ts +1 -0
  114. package/test/if/components/output/IfElse-client.ts +4 -3
  115. package/test/if/components/output/IfElse-server.ts +1 -0
  116. package/test/if/components/output/IfElseIf-client.ts +5 -4
  117. package/test/if/components/output/IfElseIf-server.ts +1 -0
  118. package/test/if/components/output/IfNested-client.ts +5 -4
  119. package/test/if/components/output/IfNested-server.ts +1 -0
  120. package/test/if/components/temp/{IfAfterIf-client-a489daa5b961ed9da71418fdbb1665b6ba39f1b7.ts → IfAfterIf-client-49b6b8c42b0a351561f9f5f22c2ae2e844bf3b58.ts} +5 -4
  121. package/test/if/components/temp/{IfAfterIf-server-243736e666e7d77d3f8553a1682734555f5ffd22.ts → IfAfterIf-server-eb67cf1fcf6711882266219940a47bd4a66497f3.ts} +1 -0
  122. package/test/if/components/temp/{IfElse-client-4c71642f412d5dd2f45729eafb7e974781dbe011.ts → IfElse-client-e236d4a2e99262ff09675bc519c07e2826c0d70b.ts} +4 -3
  123. package/test/if/components/temp/{IfElse-server-64c055182b327504ee71d1f1d44cfccf48be350d.ts → IfElse-server-c077e0e30f4d2adec41ab779198362d21542d055.ts} +1 -0
  124. package/test/if/components/temp/{IfElseIf-client-98d50d6f40c2385c4ef4fc02329f9d2e182c76c4.ts → IfElseIf-client-b92106861f0c7ec3d09e3a42bb93d8f5bd4e3bdf.ts} +5 -4
  125. package/test/if/components/temp/{IfElseIf-server-79788b13af905175f50bfa8658f2ff2af73db232.ts → IfElseIf-server-67991eee3f56dc687cda600511c31396438e0a77.ts} +1 -0
  126. package/test/{build-server/components/temp/IfNested-client-979db97eea5b4595550b9b46f297f3fbc31796d2.ts → if/components/temp/IfNested-client-f563ac1b16a2280e457557281c4925ed447a9cd7.ts} +5 -4
  127. package/test/{build-server/components/temp/IfNested-server-3c4e4b6f2162c0906cef685830219b9ea9ee985c.ts → if/components/temp/IfNested-server-0a2a9643324ab73b02b310cad61ba87dab146ab2.ts} +1 -0
  128. package/test/mount/components/Mount.torp +1 -1
  129. package/test/mount/components/output/Mount-client.ts +0 -2
  130. package/test/mount/components/output/Mount-server.ts +1 -1
  131. package/test/mount/components/temp/{Mount-client-49d8d6475336b5749fe8a17be847fd2b6cda5ccc.ts → Mount-client-36dbc95a61345a1b7dcf07e6b0c998af2afca691.ts} +0 -2
  132. package/test/mount/components/temp/{Mount-server-e3d689cf52a4477da9aa00e2c7604110710db991.ts → Mount-server-8bef1924a731f3db63cb827be3938fec685e53af.ts} +1 -1
  133. package/test/on-mount/components/output/OnMount-client.ts +0 -2
  134. package/test/on-mount/components/temp/{OnMount-client-b2dfd41a0aaeafb3b7af14793a03e0fc3bc43aaa.ts → OnMount-client-21708a638d2939ee8b017f5dc819cee4748bde87.ts} +0 -2
  135. package/test/party/13-emit-to-parent.test.ts +2 -3
  136. package/test/party/16-context.test.ts +1 -2
  137. package/test/party/17-input-text.test.ts +2 -3
  138. package/test/party/18-input-checkbox.test.ts +1 -2
  139. package/test/party/19-input-radio.test.ts +2 -3
  140. package/test/party/20-input-select.test.ts +3 -4
  141. package/test/party/7-event-click.test.ts +1 -3
  142. package/test/party/9-conditional.test.ts +2 -4
  143. package/test/party/components/ColorSelect.torp +1 -1
  144. package/test/party/components/InputFocused.torp +1 -1
  145. package/test/party/components/InputHello.torp +1 -1
  146. package/test/party/components/IsAvailable.torp +1 -1
  147. package/test/party/components/PickPill.torp +2 -2
  148. package/test/party/components/output/AnswerButton-client.ts +3 -2
  149. package/test/party/components/output/AnswerButton-server.ts +1 -0
  150. package/test/party/components/output/AnswerButtonApp-client.ts +4 -4
  151. package/test/party/components/output/AnswerButtonApp-server.ts +1 -1
  152. package/test/party/components/output/ColorSelect-client.ts +1 -1
  153. package/test/party/components/output/Colors-client.ts +1 -1
  154. package/test/party/components/output/Counter-client.ts +1 -1
  155. package/test/party/components/output/FunnyButton-client.ts +1 -1
  156. package/test/party/components/output/FunnyButtonApp-client.ts +2 -2
  157. package/test/party/components/output/FunnyButtonApp-server.ts +1 -1
  158. package/test/party/components/output/InputFocused-client.ts +0 -2
  159. package/test/party/components/output/InputFocused-server.ts +1 -1
  160. package/test/party/components/output/InputHello-client.ts +1 -1
  161. package/test/party/components/output/IsAvailable-client.ts +1 -1
  162. package/test/party/components/output/PickPill-client.ts +2 -2
  163. package/test/party/components/output/TrafficLight-client.ts +6 -6
  164. package/test/party/components/output/UserProfile-client.ts +5 -4
  165. package/test/party/components/output/UserProfile-server.ts +1 -0
  166. package/test/party/components/output/UserProfileApp-client.ts +3 -2
  167. package/test/party/components/output/UserProfileApp-server.ts +1 -1
  168. package/test/party/components/output/UserProfileContext-client.ts +3 -3
  169. package/test/party/components/output/UserProfileContextApp-client.ts +2 -2
  170. package/test/party/components/output/UserProfileContextApp-server.ts +1 -1
  171. package/test/party/components/temp/{AnswerButton-client-243454cd7bf84c648f244b3587e60d01a0401039.ts → AnswerButton-client-c3dc7edbfff2db1ea111086002147d771ee12193.ts} +3 -2
  172. package/test/party/components/temp/{AnswerButton-server-938e46c1d2510ea37454854ef527e4aa64eb8e52.ts → AnswerButton-server-427442fa8cfc0a18817c2d37f9cb5cbcb3a88a05.ts} +1 -0
  173. package/test/party/components/temp/{AnswerButtonApp-client-34311c2e7412807867fb6267af31a341f092bf31.ts → AnswerButtonApp-client-3e0b63a6bbc1dee3e6cb715c0297cc2ce58d3e4e.ts} +4 -4
  174. package/test/party/components/temp/{AnswerButtonApp-server-3f5071775abea24ee8830830072c6fe465fc4e56.ts → AnswerButtonApp-server-bbc8bb739d2060ccda77ce406aa6b15d8f90b91c.ts} +1 -1
  175. package/test/party/components/temp/{ColorSelect-client-f9fb9fa09f4729da3226d5aaf30e84cd3cd705b5.ts → ColorSelect-client-5ffa6f9d77de967993088c9a01b9f976f3333176.ts} +1 -1
  176. package/test/party/components/temp/{Colors-client-f124162d1dd8f0c3d37bf96c8e5f18599ae3a682.ts → Colors-client-3dafffc5c2a72037f4419fc45d08963872a29958.ts} +1 -1
  177. package/test/party/components/temp/{Counter-client-c349710110b4afbf9593f20cfc40c162ed836079.ts → Counter-client-4d553521fcfc6c9a4e05dce89e70b2ecf8785c4e.ts} +1 -1
  178. package/test/party/components/temp/{FunnyButton-client-2e6bec8259065b5bc9ae16d1ca93dd1bd0c56b7c.ts → FunnyButton-client-45f2c5dd56f2cdb80102193a978df6b0cec822ab.ts} +1 -1
  179. package/test/party/components/temp/{FunnyButtonApp-client-4ed0ebf5be13ddb62d9942bac7f4b8a885ec6c50.ts → FunnyButtonApp-client-ac7101af922dc6ba472b75a428f340caca6be74a.ts} +2 -2
  180. package/test/party/components/temp/{FunnyButtonApp-server-9748c9096848e643c91237c46ea09d23f1b3fa7c.ts → FunnyButtonApp-server-f1a98a946e0bb9d1bb76b01e26d6ead8f55d32bb.ts} +1 -1
  181. package/test/party/components/temp/{InputFocused-client-a543f82c8db205fb3e33c62de699cff43c668a68.ts → InputFocused-client-11a9cb08909b26945bbc2451ab4c1dac09e6d113.ts} +0 -2
  182. package/test/party/components/temp/{InputFocused-server-222f2fa7029d1cd6941a3777293a9b2d37b7295e.ts → InputFocused-server-82be1a63c80d1dd3f06efaf0bef349d58cf1d9af.ts} +1 -1
  183. package/test/party/components/temp/{InputHello-client-9953499de5778bb1d8aac7691129210a6098db07.ts → InputHello-client-b0453caeae0d43dc1878039c6b49318d12624d48.ts} +1 -1
  184. package/test/party/components/temp/{IsAvailable-client-929ed6c872e72b6c5243b882c6a9a0d13f6a7c47.ts → IsAvailable-client-d789346a68b26fd3f5d9f7aebc4c7bd181c47cad.ts} +1 -1
  185. package/test/party/components/temp/{PickPill-client-f9a50a75ce63ec2ee3ac34e378e20602b93629f7.ts → PickPill-client-b47d371ae5f41d87c96b3cdeed0a8bc06fbfa9c7.ts} +2 -2
  186. package/test/party/components/temp/{TrafficLight-client-81dd9bd9f3332533e01f6c9b271c15e5f76e1fdb.ts → TrafficLight-client-549f9fe3418c113fb240cfa17e09c42e1e7f346a.ts} +6 -6
  187. package/test/party/components/temp/{UserProfile-client-938bcef20a2555de22aca939022a32742ac5e729.ts → UserProfile-client-2c13aac1ad915e51dc557f9af765669e636c0fea.ts} +5 -4
  188. package/test/party/components/temp/{UserProfile-server-9df5c59b8797fa67c479bc76450104d45e6076f9.ts → UserProfile-server-cc1162a4297f6163bfb86e7a8aeea08e8c0625c6.ts} +1 -0
  189. package/test/party/components/temp/{UserProfileApp-client-af27173415d65647cab0f30a9a4967cef0307e25.ts → UserProfileApp-client-2be7a11319cca4d7bfa0f3d2205c441d7e203780.ts} +3 -2
  190. package/test/party/components/temp/{UserProfileApp-server-6a7dbe68ee8041785cef50fb15a9e5ba475e120f.ts → UserProfileApp-server-ab9ff66f787f775aa8571314fee8bcbef85489ef.ts} +1 -1
  191. package/test/party/components/temp/{UserProfileContext-client-93211cdba795b8baf926f60f5b17da90701743b3.ts → UserProfileContext-client-2aa36f436a5f20614d77f48963ec5ca442eebd90.ts} +3 -3
  192. package/test/party/components/temp/{UserProfileContextApp-client-7ea7d90a35894408757aef3e935d3a8badf93aea.ts → UserProfileContextApp-client-5099052fdcd8fb4c368c45090390947424a4e9b0.ts} +2 -2
  193. package/test/party/components/temp/{UserProfileContextApp-server-90290c770529d7211eabf29e7d0fe868aa856b52.ts → UserProfileContextApp-server-6be8dab2ed4f8911f26bef137e7dea164f2b894d.ts} +1 -1
  194. package/test/props/components/Reactive.torp +18 -0
  195. package/test/props/components/output/Reactive-client.ts +70 -0
  196. package/test/props/components/output/Reactive-server.ts +40 -0
  197. package/test/props/components/temp/Reactive-client-e3e5f6ee2f22c46337c6ab1df2f241133c7e2646.ts +70 -0
  198. package/test/props/components/temp/Reactive-server-0914d91287a1bc6d32d7cc56d086624762dbfc04.ts +40 -0
  199. package/test/props/reactive.test.ts +40 -0
  200. package/test/replace/components/output/Replace-client.ts +3 -2
  201. package/test/replace/components/output/Replace-server.ts +1 -0
  202. package/test/replace/components/temp/{Replace-client-ea4ddc73c71181fb6ef3c6f5bf61b0b9e017f00a.ts → Replace-client-3fdab63871fa4bb792317caefd3539b1888325b1.ts} +3 -2
  203. package/test/replace/components/temp/{Replace-server-30eb1ad796516fa4d310798a9c8a6811ec13cbd9.ts → Replace-server-857aca7a58deffc3a1c95ab9d31628b4051ca203.ts} +1 -0
  204. package/test/slots/components/output/Article-client.ts +2 -2
  205. package/test/slots/components/output/Basic-client.ts +1 -1
  206. package/test/slots/components/output/Basic-server.ts +1 -1
  207. package/test/slots/components/output/Let-client.ts +4 -3
  208. package/test/slots/components/output/Let-server.ts +2 -1
  209. package/test/slots/components/output/List-client.ts +1 -1
  210. package/test/slots/components/output/List-server.ts +1 -0
  211. package/test/slots/components/output/Named-client.ts +2 -2
  212. package/test/slots/components/output/Named-server.ts +1 -1
  213. package/test/slots/components/output/Unused-client.ts +1 -1
  214. package/test/slots/components/output/Unused-server.ts +1 -1
  215. package/test/slots/components/temp/{Article-client-741f94eab2e96655f4c9d69ccd7d9c7cc998f4ce.ts → Article-client-80848d6cadd8abac61865d14ddd35685844797e0.ts} +2 -2
  216. package/test/slots/components/temp/{Basic-client-c82bc3c5e10f2f2c1869347435262c8f3039e32f.ts → Basic-client-97b18686412869e8c814fd4542dfe826b1f7669f.ts} +1 -1
  217. package/test/slots/components/temp/{Basic-server-21fb4f8caa3bbcae219aaef388af8c26c46fa5ce.ts → Basic-server-248392e2cd147b537cd44e9a5a71885ef20102e4.ts} +1 -1
  218. package/test/slots/components/temp/{Let-client-c54696fd1b5b859a693744722957fa960f72fad6.ts → Let-client-be69c1f5aa32faf16239050d7836db46cfdcba2f.ts} +4 -3
  219. package/test/slots/components/temp/{Let-server-4d78ffc8741fa737f2cd915b36c0e6ec88a9146f.ts → Let-server-c3293219ed27aec61a6af36d451ddf6609c40027.ts} +2 -1
  220. package/test/slots/components/temp/{List-client-0659d999cfb48b865fe5b8aaaf2a4ddac3a8a8b6.ts → List-client-a829b33214de829de689a72d2e8703b2266ad7a4.ts} +1 -1
  221. package/test/slots/components/temp/{List-server-4b76485a259d054187edad8aa691d80ac918ad86.ts → List-server-06503834c9bfae9b8c2b61742568b020a3de961c.ts} +1 -0
  222. package/test/slots/components/temp/{Named-client-0626b2f0911f77f5edcfda82f9751bcbc37b7641.ts → Named-client-2d9d88f5fdf74d81c3ed1d769a476f4ac36c8b99.ts} +2 -2
  223. package/test/slots/components/temp/{Named-server-e802f901223d697c7fd0a1a234ce1930af1b4b3f.ts → Named-server-65a7bbf038111475c8f07dccb34040ab8c1392c4.ts} +1 -1
  224. package/test/slots/components/temp/{Unused-client-aa05465731e0d00e18189498f49c94f991e76f10.ts → Unused-client-1b16491cb800bbbbd871d9fbf5966c7275244019.ts} +1 -1
  225. package/test/slots/components/temp/{Unused-server-00b92d14665a565f0042b1f56231f28bc38a1252.ts → Unused-server-e5d1e85116bebc7e1a2882cb8f2c9ae7975a1de7.ts} +1 -1
  226. package/test/special-component/components/output/Component-client.ts +5 -4
  227. package/test/special-component/components/output/Component-server.ts +3 -2
  228. package/test/special-component/components/temp/{Component-client-3cc84b23def8830b8ef441bde0f03b3e9718196a.ts → Component-client-22f7e1d0955fb3d90939e956a1f0f77118c259b6.ts} +5 -4
  229. package/test/special-component/components/temp/{Component-server-5dc597784ea1fe45ac2cfb21305cf2187a3868e8.ts → Component-server-ce596cd84dc11f67c9f0588060a5b672eddf9715.ts} +3 -2
  230. package/test/special-element/components/output/Element-client.ts +2 -1
  231. package/test/special-element/components/output/Element-server.ts +1 -0
  232. package/test/special-element/components/temp/{Element-client-0ab8992a8e914c7e190cddac790585fef9be1c9f.ts → Element-client-21c92c04579b1d29e8813265a10897d069aad5c5.ts} +2 -1
  233. package/test/special-element/components/temp/{Element-server-ddb0170df4a3f369577ca7e9768e5fe799f14dfb.ts → Element-server-4bed9653529f39e72754126147fe8618f328853a.ts} +1 -0
  234. package/test/special-self/components/output/Self-client.ts +3 -2
  235. package/test/special-self/components/output/Self-server.ts +1 -0
  236. package/test/special-self/components/temp/{Self-client-3982f174954034643c4d17cfc66d7f10bf1d4df6.ts → Self-client-911c67194be1fdd997537310bcafe712161e8251.ts} +3 -2
  237. package/test/special-self/components/temp/{Self-server-97ffbdaae47f4463034e1d318a8073d078ff138f.ts → Self-server-49ba9be1f6255dd4daf490c640f5222a85960218.ts} +1 -0
  238. package/test/style/components/output/Style-client.ts +2 -1
  239. package/test/style/components/output/Style-server.ts +1 -0
  240. package/test/style/components/temp/{Style-client-085517e82bdd015c86f4c2577447c6a2791cf656.ts → Style-client-cbfac1e255c33a867ccbd5f9d1484a855d91a2d7.ts} +2 -1
  241. package/test/style/components/temp/{Style-server-b2615163fbafdcb2a5d4155120edf2f66ef3bba6.ts → Style-server-763d82ee2296be3f7620814aed950b505329c04c.ts} +1 -0
  242. package/test/svg/components/output/Shape-client.ts +4 -3
  243. package/test/svg/components/output/Shape-server.ts +1 -0
  244. package/test/svg/components/temp/{Shape-client-ea698ed1b7d0c3615adff35fa4956f22840f5fda.ts → Shape-client-cb98b36ab2a0d9f06b484a3c988fb43c3a71a4a0.ts} +4 -3
  245. package/test/svg/components/temp/{Shape-server-eb32049cfb7c058b2c4079c5f86ef00651ff6d69.ts → Shape-server-500d7fe4556026234ce5379b8e90595ddd094edc.ts} +1 -0
  246. package/test/switch/components/output/Switch-client.ts +5 -4
  247. package/test/switch/components/output/Switch-server.ts +1 -0
  248. package/test/switch/components/temp/{Switch-client-4c4adac7308795807517e66bc268a38f87df6bda.ts → Switch-client-9980de45e3346b79525c445edec7cbc3b375e8a4.ts} +5 -4
  249. package/test/switch/components/temp/{Switch-server-21fcac2b02c6071136bb0dc394babd27e454d2c9.ts → Switch-server-1c5690726f28008bb565966af69b6e4e019dea82.ts} +1 -0
  250. package/test/text/components/output/Text-client.ts +3 -2
  251. package/test/text/components/output/Text-server.ts +1 -0
  252. package/test/text/components/temp/{Text-client-9840092be1b4552ddce6e5efc2f1b395637a0a3d.ts → Text-client-63f1d3bf9b3bd145c7ce7058716640e27144055e.ts} +3 -2
  253. package/test/text/components/temp/{Text-server-6774aa9d4ccce941224ba0a8fb1d3e42eb31807e.ts → Text-server-9d3dd6f51e893e63c1999ceafce19ca1697d76ea.ts} +1 -0
  254. package/test/watch-array/components/output/Array-client.ts +4 -3
  255. package/test/watch-array/components/output/Array-server.ts +1 -0
  256. package/test/watch-array/components/output/ArrayEntries-client.ts +4 -3
  257. package/test/watch-array/components/output/ArrayEntries-server.ts +1 -0
  258. package/test/watch-array/components/output/ArrayIndexes-client.ts +4 -3
  259. package/test/watch-array/components/output/ArrayIndexes-server.ts +1 -0
  260. package/test/watch-array/components/output/ArrayUnkeyed-client.ts +4 -3
  261. package/test/watch-array/components/output/ArrayUnkeyed-server.ts +1 -0
  262. package/test/watch-array/components/temp/{Array-client-b29a42f88c2a2f37b3a86bdb9535e20a487887e1.ts → Array-client-ffd82188a45877d74053c82fb3616e4aed0fc2ad.ts} +4 -3
  263. package/test/watch-array/components/temp/{Array-server-ced54fc7e63196f9c24c2e55b27bfe6cf7821dcb.ts → Array-server-3715e815af887e8487b214e7de324850fe99e312.ts} +1 -0
  264. package/test/watch-array/components/temp/{ArrayEntries-client-6289890758b1f6b462a74417e0b9e2e46d946ccd.ts → ArrayEntries-client-b6e982660628576061dbb44539e970b9549bdcfa.ts} +4 -3
  265. package/test/watch-array/components/temp/{ArrayEntries-server-0429a18ffbe39afe87612889a3010c3fcaa601dc.ts → ArrayEntries-server-85cbe80fbb7f6885287825e2cc0dfc1cb9835d79.ts} +1 -0
  266. package/test/watch-array/components/temp/{ArrayIndexes-client-fe4b1c49f442b3e5411f331c52ae6c5ab38f2b2d.ts → ArrayIndexes-client-39337aa43bd8c10a53db836c3be233d48dd39b91.ts} +4 -3
  267. package/test/watch-array/components/temp/{ArrayIndexes-server-20c01f10832f035b007f85a423778934d51a703a.ts → ArrayIndexes-server-ec623c724af0c7212675d61ea68e9dee87f96caa.ts} +1 -0
  268. package/test/watch-array/components/temp/{ArrayUnkeyed-client-3fffe2ce749ee84e0730130bfd730d432e3c4e12.ts → ArrayUnkeyed-client-7606f9a6a221c8cf6a8b51e4895d10a3d7bccc11.ts} +4 -3
  269. package/test/watch-array/components/temp/{ArrayUnkeyed-server-0ab804a5e7bf5b47594d85adab79735e89a3939d.ts → ArrayUnkeyed-server-db21cd576a4c70973abe10f6c8ef5cecb3ead86c.ts} +1 -0
  270. package/test/watch-object/components/output/Watched-client.ts +2 -1
  271. package/test/watch-object/components/output/Watched-server.ts +1 -0
  272. package/test/watch-object/components/temp/{Watched-client-cb293038cd0a39043d05639c624a17d512419c25.ts → Watched-client-bbffbf2cede1a5c071b770670eb39c0f0be725af.ts} +2 -1
  273. package/test/watch-object/components/temp/{Watched-server-4884585cf4f50493a70631909f2230153531208e.ts → Watched-server-0252addaf92fb0f0c1e2937f42918a1c9f31d196.ts} +1 -0
  274. package/src/render/flushMountEffects.ts +0 -8
  275. package/test/if/components/temp/IfNested-client-979db97eea5b4595550b9b46f297f3fbc31796d2.ts +0 -90
  276. package/test/if/components/temp/IfNested-server-3c4e4b6f2162c0906cef685830219b9ea9ee985c.ts +0 -30
@@ -0,0 +1,87 @@
1
+ import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
3
+ import { type SlotRender } from "../../../../src/types/SlotRender";
4
+ import t_add_fragment from "../../../../src/render/addFragment";
5
+ import t_anchor from "../../../../src/render/nodeAnchor";
6
+ import t_child from "../../../../src/render/nodeChild";
7
+ import t_event from "../../../../src/render/addEvent";
8
+ import t_fmt from "../../../../src/render/formatText";
9
+ import t_fragment from "../../../../src/render/getFragment";
10
+ import t_next from "../../../../src/render/nodeNext";
11
+ import t_root from "../../../../src/render/nodeRoot";
12
+
13
+ export default function BindComponent(
14
+ $parent: ParentNode,
15
+ $anchor: Node | null,
16
+ // @ts-ignore
17
+ $props?: Record<PropertyKey, any>,
18
+ // @ts-ignore
19
+ $context?: Record<PropertyKey, any>,
20
+ // @ts-ignore
21
+ $slots?: Record<string, SlotRender>
22
+ ) {
23
+
24
+ let $state = $watch({ name: "Alice", selected: 1 });
25
+
26
+ /* User interface */
27
+ const t_fragments: DocumentFragment[] = [];
28
+
29
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, `<div> <!> <p>#</p> </div>`);
30
+ // @ts-ignore
31
+ const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
32
+ const t_comp_anchor_1 = t_anchor(t_next(t_child(t_div_1))) as HTMLElement;
33
+
34
+ /* @component */
35
+ const t_props_1: any = $watch({});
36
+ $run(function setProp() {
37
+ t_props_1["name"] = $state.name;
38
+ });
39
+ $run(function setBinding() {
40
+ $state.name = t_props_1["name"];
41
+ });
42
+ BindText(t_div_1, t_comp_anchor_1, t_props_1, $context);
43
+ const t_text_1 = t_child(t_next(t_comp_anchor_1, 2));
44
+ $run(function setTextContent() {
45
+ t_text_1.textContent = `Hello, ${t_fmt($state.name)}`;
46
+ });
47
+ t_add_fragment(t_fragment_0, $parent, $anchor);
48
+ t_next(t_div_1);
49
+
50
+ }
51
+
52
+ function BindText(
53
+ $parent: ParentNode,
54
+ $anchor: Node | null,
55
+ $props: any,
56
+ // @ts-ignore
57
+ $context?: Record<PropertyKey, any>,
58
+ // @ts-ignore
59
+ $slots?: Record<string, SlotRender>
60
+ ) {
61
+ $props ??= $watch({});
62
+
63
+ //let $state = $watch({
64
+ // text: $props.name
65
+ //})
66
+
67
+ // $run(() => t_name_changed($props.name))
68
+
69
+ //$run(() => {
70
+ // $props.name = $state.text
71
+ //});
72
+
73
+ /* User interface */
74
+ const t_fragments: DocumentFragment[] = [];
75
+
76
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, `<div> <input></input> </div>`);
77
+ // @ts-ignore
78
+ const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
79
+ const t_input_1 = t_next(t_child(t_div_1)) as HTMLInputElement;
80
+ $run(function setBinding() {
81
+ t_input_1.value = $props.name || "";
82
+ });
83
+ t_event(t_input_1, "input", (e) => $props.name = e.target.value);
84
+ t_add_fragment(t_fragment_0, $parent, $anchor);
85
+ t_next(t_div_1);
86
+
87
+ }
@@ -0,0 +1,52 @@
1
+ import $run from "../../../../src/render/$serverRun";
2
+ import $watch from "../../../../src/render/$serverWatch";
3
+ import { type ServerSlotRender } from "../../../../src/types/ServerSlotRender";
4
+ import t_attr from "../../../../src/render/formatAttributeText";
5
+ import t_fmt from "../../../../src/render/formatText";
6
+
7
+ export default function BindComponent(
8
+ // @ts-ignore
9
+ $props?: Record<PropertyKey, any>,
10
+ // @ts-ignore
11
+ $context?: Record<PropertyKey, any>,
12
+ // @ts-ignore
13
+ $slots?: Record<string, ServerSlotRender>
14
+ ) {
15
+ let $state = $watch({ name: "Alice", selected: 1 });
16
+
17
+ /* User interface */
18
+ let $output = "";
19
+ $output += `<div> `;
20
+ const t_props_1: any = {};
21
+ t_props_1["&name"] = $state.name;
22
+
23
+ $output += BindText(t_props_1, $context)
24
+ $output += ` <p>Hello, ${t_fmt($state.name)}</p> </div>`;
25
+
26
+ return $output;
27
+ }
28
+
29
+ function BindText(
30
+ $props: any,
31
+ // @ts-ignore
32
+ $context?: Record<PropertyKey, any>,
33
+ // @ts-ignore
34
+ $slots?: Record<string, ServerSlotRender>
35
+ ) {
36
+ $props ??= {};
37
+ //let $state = $watch({
38
+ // text: $props.name
39
+ //})
40
+
41
+ // $run(() => t_name_changed($props.name))
42
+
43
+ //$run(() => {
44
+ // $props.name = $state.text
45
+ //});
46
+
47
+ /* User interface */
48
+ let $output = "";
49
+ $output += `<div> <input value="${t_attr($props.name) || ""}"> </div>`;
50
+
51
+ return $output;
52
+ }
@@ -29,9 +29,9 @@ export default function BindText(
29
29
  // @ts-ignore
30
30
  const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
31
31
  const t_input_1 = t_next(t_child(t_div_1)) as HTMLInputElement;
32
- const t_select_1 = t_next(t_next(t_input_1)) as HTMLElement;
33
- const t_text_1 = t_child(t_next(t_next(t_select_1)));
34
- const t_text_2 = t_child(t_next(t_next(t_next(t_next(t_select_1)))));
32
+ const t_select_1 = t_next(t_input_1, 2) as HTMLElement;
33
+ const t_text_1 = t_child(t_next(t_select_1, 2));
34
+ const t_text_2 = t_child(t_next(t_select_1, 4));
35
35
  $run(function setBinding() {
36
36
  t_input_1.value = $state.name || "";
37
37
  });
@@ -0,0 +1,87 @@
1
+ import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
3
+ import { type SlotRender } from "../../../../src/types/SlotRender";
4
+ import t_add_fragment from "../../../../src/render/addFragment";
5
+ import t_anchor from "../../../../src/render/nodeAnchor";
6
+ import t_child from "../../../../src/render/nodeChild";
7
+ import t_event from "../../../../src/render/addEvent";
8
+ import t_fmt from "../../../../src/render/formatText";
9
+ import t_fragment from "../../../../src/render/getFragment";
10
+ import t_next from "../../../../src/render/nodeNext";
11
+ import t_root from "../../../../src/render/nodeRoot";
12
+
13
+ export default function BindComponent(
14
+ $parent: ParentNode,
15
+ $anchor: Node | null,
16
+ // @ts-ignore
17
+ $props?: Record<PropertyKey, any>,
18
+ // @ts-ignore
19
+ $context?: Record<PropertyKey, any>,
20
+ // @ts-ignore
21
+ $slots?: Record<string, SlotRender>
22
+ ) {
23
+
24
+ let $state = $watch({ name: "Alice", selected: 1 });
25
+
26
+ /* User interface */
27
+ const t_fragments: DocumentFragment[] = [];
28
+
29
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, `<div> <!> <p>#</p> </div>`);
30
+ // @ts-ignore
31
+ const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
32
+ const t_comp_anchor_1 = t_anchor(t_next(t_child(t_div_1))) as HTMLElement;
33
+
34
+ /* @component */
35
+ const t_props_1: any = $watch({});
36
+ $run(function setProp() {
37
+ t_props_1["name"] = $state.name;
38
+ });
39
+ $run(function setBinding() {
40
+ $state.name = t_props_1["name"];
41
+ });
42
+ BindText(t_div_1, t_comp_anchor_1, t_props_1, $context);
43
+ const t_text_1 = t_child(t_next(t_comp_anchor_1, 2));
44
+ $run(function setTextContent() {
45
+ t_text_1.textContent = `Hello, ${t_fmt($state.name)}`;
46
+ });
47
+ t_add_fragment(t_fragment_0, $parent, $anchor);
48
+ t_next(t_div_1);
49
+
50
+ }
51
+
52
+ function BindText(
53
+ $parent: ParentNode,
54
+ $anchor: Node | null,
55
+ $props: any,
56
+ // @ts-ignore
57
+ $context?: Record<PropertyKey, any>,
58
+ // @ts-ignore
59
+ $slots?: Record<string, SlotRender>
60
+ ) {
61
+ $props ??= $watch({});
62
+
63
+ //let $state = $watch({
64
+ // text: $props.name
65
+ //})
66
+
67
+ // $run(() => t_name_changed($props.name))
68
+
69
+ //$run(() => {
70
+ // $props.name = $state.text
71
+ //});
72
+
73
+ /* User interface */
74
+ const t_fragments: DocumentFragment[] = [];
75
+
76
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, `<div> <input></input> </div>`);
77
+ // @ts-ignore
78
+ const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
79
+ const t_input_1 = t_next(t_child(t_div_1)) as HTMLInputElement;
80
+ $run(function setBinding() {
81
+ t_input_1.value = $props.name || "";
82
+ });
83
+ t_event(t_input_1, "input", (e) => $props.name = e.target.value);
84
+ t_add_fragment(t_fragment_0, $parent, $anchor);
85
+ t_next(t_div_1);
86
+
87
+ }
@@ -0,0 +1,52 @@
1
+ import $run from "../../../../src/render/$serverRun";
2
+ import $watch from "../../../../src/render/$serverWatch";
3
+ import { type ServerSlotRender } from "../../../../src/types/ServerSlotRender";
4
+ import t_attr from "../../../../src/render/formatAttributeText";
5
+ import t_fmt from "../../../../src/render/formatText";
6
+
7
+ export default function BindComponent(
8
+ // @ts-ignore
9
+ $props?: Record<PropertyKey, any>,
10
+ // @ts-ignore
11
+ $context?: Record<PropertyKey, any>,
12
+ // @ts-ignore
13
+ $slots?: Record<string, ServerSlotRender>
14
+ ) {
15
+ let $state = $watch({ name: "Alice", selected: 1 });
16
+
17
+ /* User interface */
18
+ let $output = "";
19
+ $output += `<div> `;
20
+ const t_props_1: any = {};
21
+ t_props_1["&name"] = $state.name;
22
+
23
+ $output += BindText(t_props_1, $context)
24
+ $output += ` <p>Hello, ${t_fmt($state.name)}</p> </div>`;
25
+
26
+ return $output;
27
+ }
28
+
29
+ function BindText(
30
+ $props: any,
31
+ // @ts-ignore
32
+ $context?: Record<PropertyKey, any>,
33
+ // @ts-ignore
34
+ $slots?: Record<string, ServerSlotRender>
35
+ ) {
36
+ $props ??= {};
37
+ //let $state = $watch({
38
+ // text: $props.name
39
+ //})
40
+
41
+ // $run(() => t_name_changed($props.name))
42
+
43
+ //$run(() => {
44
+ // $props.name = $state.text
45
+ //});
46
+
47
+ /* User interface */
48
+ let $output = "";
49
+ $output += `<div> <input value="${t_attr($props.name) || ""}"> </div>`;
50
+
51
+ return $output;
52
+ }
@@ -29,9 +29,9 @@ export default function BindText(
29
29
  // @ts-ignore
30
30
  const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
31
31
  const t_input_1 = t_next(t_child(t_div_1)) as HTMLInputElement;
32
- const t_select_1 = t_next(t_next(t_input_1)) as HTMLElement;
33
- const t_text_1 = t_child(t_next(t_next(t_select_1)));
34
- const t_text_2 = t_child(t_next(t_next(t_next(t_next(t_select_1)))));
32
+ const t_select_1 = t_next(t_input_1, 2) as HTMLElement;
33
+ const t_text_1 = t_child(t_next(t_select_1, 2));
34
+ const t_text_2 = t_child(t_next(t_select_1, 4));
35
35
  $run(function setBinding() {
36
36
  t_input_1.value = $state.name || "";
37
37
  });
@@ -35,7 +35,7 @@ export default function Component() {
35
35
  <p>
36
36
  <input value='some "text"'>
37
37
  <input value={value}>
38
- <input :value={value}>
38
+ <input &value={value}>
39
39
  <input {value}>
40
40
  <input value={value + " extra"}>
41
41
  <input value="{value} extra">
@@ -83,7 +83,12 @@ function formatCode(code: string, suffix: string): string {
83
83
  }
84
84
 
85
85
  // Replace component imports with JS imports
86
- code = code.replaceAll(/import (.+?) from ['"](.+?).torp['"]/g, `import $1 from "$2-${suffix}"`);
86
+ // HACK: Reference from `../output/` as it will work in both the hashed files
87
+ // (in `/temp`) and non-hashed files (in `/output`)
88
+ code = code.replaceAll(
89
+ /import (.+?) from ['"](.+?).torp['"]/g,
90
+ `import $1 from "../output/$2-${suffix}"`,
91
+ );
87
92
 
88
93
  return code;
89
94
  }
@@ -95,8 +100,6 @@ const importsMap: Record<string, string> = {
95
100
  'import $unwrap from "../../../../src/render/$unwrap";',
96
101
  'import { $run } from "@torpor/view";': 'import $run from "../../../../src/render/$run";',
97
102
  'import { $mount } from "@torpor/view";': 'import $mount from "../../../../src/render/$mount";',
98
- 'import { t_flush } from "@torpor/view";':
99
- 'import t_flush from "../../../../src/render/flushMountEffects";',
100
103
  'import { t_range } from "@torpor/view";':
101
104
  'import t_range from "../../../../src/render/newRange";',
102
105
  'import { t_push_range } from "@torpor/view";':
@@ -1,4 +1,5 @@
1
1
  import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
2
3
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
4
  import t_add_fragment from "../../../../src/render/addFragment";
4
5
  import t_anchor from "../../../../src/render/nodeAnchor";
@@ -28,7 +29,7 @@ export default function ParentChild(
28
29
  const t_comp_anchor_1 = t_anchor(t_next(t_child(t_div_1))) as HTMLElement;
29
30
 
30
31
  /* @component */
31
- const t_props_1: any = {};
32
+ const t_props_1: any = $watch({});
32
33
  t_props_1["name"] = "Anna";
33
34
  Child(t_div_1, t_comp_anchor_1, t_props_1, $context);
34
35
  t_add_fragment(t_fragment_0, $parent, $anchor);
@@ -45,7 +46,7 @@ function Child(
45
46
  // @ts-ignore
46
47
  $slots?: Record<string, SlotRender>
47
48
  ) {
48
- $props ??= {};
49
+ $props ??= $watch({});
49
50
 
50
51
  /* User interface */
51
52
  const t_fragments: DocumentFragment[] = [];
@@ -29,6 +29,7 @@ function Child(
29
29
  // @ts-ignore
30
30
  $slots?: Record<string, ServerSlotRender>
31
31
  ) {
32
+ $props ??= {};
32
33
 
33
34
  /* User interface */
34
35
  let $output = "";
@@ -1,4 +1,5 @@
1
1
  import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
2
3
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
4
  import t_add_fragment from "../../../../src/render/addFragment";
4
5
  import t_anchor from "../../../../src/render/nodeAnchor";
@@ -28,7 +29,7 @@ export default function ParentChild(
28
29
  const t_comp_anchor_1 = t_anchor(t_next(t_child(t_div_1))) as HTMLElement;
29
30
 
30
31
  /* @component */
31
- const t_props_1: any = {};
32
+ const t_props_1: any = $watch({});
32
33
  t_props_1["name"] = "Anna";
33
34
  Child(t_div_1, t_comp_anchor_1, t_props_1, $context);
34
35
  t_add_fragment(t_fragment_0, $parent, $anchor);
@@ -45,7 +46,7 @@ function Child(
45
46
  // @ts-ignore
46
47
  $slots?: Record<string, SlotRender>
47
48
  ) {
48
- $props ??= {};
49
+ $props ??= $watch({});
49
50
 
50
51
  /* User interface */
51
52
  const t_fragments: DocumentFragment[] = [];
@@ -29,6 +29,7 @@ function Child(
29
29
  // @ts-ignore
30
30
  $slots?: Record<string, ServerSlotRender>
31
31
  ) {
32
+ $props ??= {};
32
33
 
33
34
  /* User interface */
34
35
  let $output = "";
@@ -1,4 +1,5 @@
1
1
  import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
2
3
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
4
  import t_add_fragment from "../../../../src/render/addFragment";
4
5
  import t_child from "../../../../src/render/nodeChild";
@@ -16,7 +17,7 @@ export default function Class(
16
17
  // @ts-ignore
17
18
  $slots?: Record<string, SlotRender>
18
19
  ) {
19
- $props ??= {};
20
+ $props ??= $watch({});
20
21
 
21
22
  /* User interface */
22
23
  const t_fragments: DocumentFragment[] = [];
@@ -24,11 +25,11 @@ export default function Class(
24
25
  const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, `<div class="torp-1ljxz83"> <div id="divid" class="torp-1ljxz83"> From id </div> <div class="divclass torp-1ljxz83"> From string </div> <a class="torp-1ljxz83"> From state </a> <div class="torp-1ljxz83"> From state with scope </div> <div class="torp-1ljxz83"> Class object </div> <div class="torp-1ljxz83"> Class array </div> <div class="torp-1ljxz83"> Class nested </div> </div>`);
25
26
  // @ts-ignore
26
27
  const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
27
- const t_a_1 = t_next(t_next(t_next(t_next(t_next(t_child(t_div_1)))))) as HTMLElement;
28
- const t_div_2 = t_next(t_next(t_a_1)) as HTMLDivElement;
29
- const t_div_3 = t_next(t_next(t_div_2)) as HTMLDivElement;
30
- const t_div_4 = t_next(t_next(t_div_3)) as HTMLDivElement;
31
- const t_div_5 = t_next(t_next(t_div_4)) as HTMLDivElement;
28
+ const t_a_1 = t_next(t_child(t_div_1), 5) as HTMLElement;
29
+ const t_div_2 = t_next(t_a_1, 2) as HTMLDivElement;
30
+ const t_div_3 = t_next(t_div_2, 2) as HTMLDivElement;
31
+ const t_div_4 = t_next(t_div_3, 2) as HTMLDivElement;
32
+ const t_div_5 = t_next(t_div_4, 2) as HTMLDivElement;
32
33
  $run(function setClasses() {
33
34
  t_a_1.className = t_class({ hello: true, red: $props.red, green: $props.green, blue: $props.blue }, "torp-1ljxz83");
34
35
  });
@@ -8,6 +8,7 @@ export default function Class(
8
8
  // @ts-ignore
9
9
  $slots?: Record<string, ServerSlotRender>
10
10
  ) {
11
+ $props ??= {};
11
12
 
12
13
  /* User interface */
13
14
  let $output = "";
@@ -1,4 +1,5 @@
1
1
  import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
2
3
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
4
  import t_add_fragment from "../../../../src/render/addFragment";
4
5
  import t_child from "../../../../src/render/nodeChild";
@@ -16,7 +17,7 @@ export default function Class(
16
17
  // @ts-ignore
17
18
  $slots?: Record<string, SlotRender>
18
19
  ) {
19
- $props ??= {};
20
+ $props ??= $watch({});
20
21
 
21
22
  /* User interface */
22
23
  const t_fragments: DocumentFragment[] = [];
@@ -24,11 +25,11 @@ export default function Class(
24
25
  const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, `<div class="torp-1ljxz83"> <div id="divid" class="torp-1ljxz83"> From id </div> <div class="divclass torp-1ljxz83"> From string </div> <a class="torp-1ljxz83"> From state </a> <div class="torp-1ljxz83"> From state with scope </div> <div class="torp-1ljxz83"> Class object </div> <div class="torp-1ljxz83"> Class array </div> <div class="torp-1ljxz83"> Class nested </div> </div>`);
25
26
  // @ts-ignore
26
27
  const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
27
- const t_a_1 = t_next(t_next(t_next(t_next(t_next(t_child(t_div_1)))))) as HTMLElement;
28
- const t_div_2 = t_next(t_next(t_a_1)) as HTMLDivElement;
29
- const t_div_3 = t_next(t_next(t_div_2)) as HTMLDivElement;
30
- const t_div_4 = t_next(t_next(t_div_3)) as HTMLDivElement;
31
- const t_div_5 = t_next(t_next(t_div_4)) as HTMLDivElement;
28
+ const t_a_1 = t_next(t_child(t_div_1), 5) as HTMLElement;
29
+ const t_div_2 = t_next(t_a_1, 2) as HTMLDivElement;
30
+ const t_div_3 = t_next(t_div_2, 2) as HTMLDivElement;
31
+ const t_div_4 = t_next(t_div_3, 2) as HTMLDivElement;
32
+ const t_div_5 = t_next(t_div_4, 2) as HTMLDivElement;
32
33
  $run(function setClasses() {
33
34
  t_a_1.className = t_class({ hello: true, red: $props.red, green: $props.green, blue: $props.blue }, "torp-1ljxz83");
34
35
  });
@@ -8,6 +8,7 @@ export default function Class(
8
8
  // @ts-ignore
9
9
  $slots?: Record<string, ServerSlotRender>
10
10
  ) {
11
+ $props ??= {};
11
12
 
12
13
  /* User interface */
13
14
  let $output = "";
@@ -1,10 +1,11 @@
1
+ import $watch from "../../../../src/render/$watch";
1
2
  import { type SlotRender } from "../../../../src/types/SlotRender";
2
3
  import t_add_fragment from "../../../../src/render/addFragment";
3
4
  import t_anchor from "../../../../src/render/nodeAnchor";
4
5
  import t_fragment from "../../../../src/render/getFragment";
5
6
  import t_root from "../../../../src/render/nodeRoot";
6
7
 
7
- import Header from "./Header-client";
8
+ import Header from "../output/./Header-client";
8
9
 
9
10
  export default function Component(
10
11
  $parent: ParentNode,
@@ -26,7 +27,7 @@ export default function Component(
26
27
  const t_comp_anchor_1 = t_anchor(t_root_0) as HTMLElement;
27
28
 
28
29
  /* @component */
29
- const t_props_1: any = {};
30
+ const t_props_1: any = $watch({});
30
31
  t_props_1["name"] = "Amy";
31
32
  Header(t_fragment_0, t_comp_anchor_1, t_props_1, $context);
32
33
  t_add_fragment(t_fragment_0, $parent, $anchor);
@@ -1,6 +1,6 @@
1
1
  import { type ServerSlotRender } from "../../../../src/types/ServerSlotRender";
2
2
 
3
- import Header from "./Header-server";
3
+ import Header from "../output/./Header-server";
4
4
 
5
5
  export default function Component(
6
6
  // @ts-ignore
@@ -1,4 +1,5 @@
1
1
  import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
2
3
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
4
  import t_add_fragment from "../../../../src/render/addFragment";
4
5
  import t_child from "../../../../src/render/nodeChild";
@@ -16,7 +17,7 @@ export default function Header(
16
17
  // @ts-ignore
17
18
  $slots?: Record<string, SlotRender>
18
19
  ) {
19
- $props ??= {};
20
+ $props ??= $watch({});
20
21
 
21
22
  /* User interface */
22
23
  const t_fragments: DocumentFragment[] = [];
@@ -8,6 +8,7 @@ export default function Header(
8
8
  // @ts-ignore
9
9
  $slots?: Record<string, ServerSlotRender>
10
10
  ) {
11
+ $props ??= {};
11
12
 
12
13
  /* User interface */
13
14
  let $output = "";
@@ -1,10 +1,11 @@
1
+ import $watch from "../../../../src/render/$watch";
1
2
  import { type SlotRender } from "../../../../src/types/SlotRender";
2
3
  import t_add_fragment from "../../../../src/render/addFragment";
3
4
  import t_anchor from "../../../../src/render/nodeAnchor";
4
5
  import t_fragment from "../../../../src/render/getFragment";
5
6
  import t_root from "../../../../src/render/nodeRoot";
6
7
 
7
- import Header from "../output/Header-client";
8
+ import Header from "../output/./Header-client";
8
9
 
9
10
  export default function Component(
10
11
  $parent: ParentNode,
@@ -26,7 +27,7 @@ export default function Component(
26
27
  const t_comp_anchor_1 = t_anchor(t_root_0) as HTMLElement;
27
28
 
28
29
  /* @component */
29
- const t_props_1: any = {};
30
+ const t_props_1: any = $watch({});
30
31
  t_props_1["name"] = "Amy";
31
32
  Header(t_fragment_0, t_comp_anchor_1, t_props_1, $context);
32
33
  t_add_fragment(t_fragment_0, $parent, $anchor);
@@ -1,6 +1,6 @@
1
1
  import { type ServerSlotRender } from "../../../../src/types/ServerSlotRender";
2
2
 
3
- import Header from "../output/Header-server";
3
+ import Header from "../output/./Header-server";
4
4
 
5
5
  export default function Component(
6
6
  // @ts-ignore
@@ -1,4 +1,5 @@
1
1
  import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
2
3
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
4
  import t_add_fragment from "../../../../src/render/addFragment";
4
5
  import t_child from "../../../../src/render/nodeChild";
@@ -16,7 +17,7 @@ export default function Header(
16
17
  // @ts-ignore
17
18
  $slots?: Record<string, SlotRender>
18
19
  ) {
19
- $props ??= {};
20
+ $props ??= $watch({});
20
21
 
21
22
  /* User interface */
22
23
  const t_fragments: DocumentFragment[] = [];
@@ -8,6 +8,7 @@ export default function Header(
8
8
  // @ts-ignore
9
9
  $slots?: Record<string, ServerSlotRender>
10
10
  ) {
11
+ $props ??= {};
11
12
 
12
13
  /* User interface */
13
14
  let $output = "";
@@ -1,4 +1,5 @@
1
1
  import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
2
3
  import { type ListItem } from "../../../../src/types/ListItem";
3
4
  import { type SlotRender } from "../../../../src/types/SlotRender";
4
5
  import t_add_fragment from "../../../../src/render/addFragment";
@@ -23,7 +24,7 @@ export default function For(
23
24
  // @ts-ignore
24
25
  $slots?: Record<string, SlotRender>
25
26
  ) {
26
- $props ??= {};
27
+ $props ??= $watch({});
27
28
 
28
29
  /* User interface */
29
30
  const t_fragments: DocumentFragment[] = [];
@@ -56,7 +57,7 @@ export default function For(
56
57
  const t_root_1 = t_root(t_fragment_1);
57
58
  const t_text_1 = t_child(t_next(t_root_1));
58
59
  // @ts-ignore
59
- const t_text_2 = t_next(t_next(t_root_1));
60
+ const t_text_2 = t_next(t_root_1, 2);
60
61
  $run(function setTextContent() {
61
62
  t_text_1.textContent = t_fmt(t_item.data.item.text);
62
63
  });
@@ -8,6 +8,7 @@ export default function For(
8
8
  // @ts-ignore
9
9
  $slots?: Record<string, ServerSlotRender>
10
10
  ) {
11
+ $props ??= {};
11
12
 
12
13
  /* User interface */
13
14
  let $output = "";