@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
@@ -1,3 +1,4 @@
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";
@@ -18,7 +19,7 @@ export default function IfElseIf(
18
19
  // @ts-ignore
19
20
  $slots?: Record<string, SlotRender>
20
21
  ) {
21
- $props ??= {};
22
+ $props ??= $watch({});
22
23
 
23
24
  /* User interface */
24
25
  const t_fragments: DocumentFragment[] = [];
@@ -37,7 +38,7 @@ export default function IfElseIf(
37
38
  // @ts-ignore
38
39
  const t_root_1 = t_root(t_fragment_1);
39
40
  // @ts-ignore
40
- const t_text_1 = t_next(t_next(t_root_1));
41
+ const t_text_1 = t_next(t_root_1, 2);
41
42
  t_add_fragment(t_fragment_1, t_div_1, t_before);
42
43
  t_next(t_text_1);
43
44
  });
@@ -48,7 +49,7 @@ export default function IfElseIf(
48
49
  // @ts-ignore
49
50
  const t_root_2 = t_root(t_fragment_2);
50
51
  // @ts-ignore
51
- const t_text_2 = t_next(t_next(t_root_2));
52
+ const t_text_2 = t_next(t_root_2, 2);
52
53
  t_add_fragment(t_fragment_2, t_div_1, t_before);
53
54
  t_next(t_text_2);
54
55
  });
@@ -59,7 +60,7 @@ export default function IfElseIf(
59
60
  // @ts-ignore
60
61
  const t_root_3 = t_root(t_fragment_3);
61
62
  // @ts-ignore
62
- const t_text_3 = t_next(t_next(t_root_3));
63
+ const t_text_3 = t_next(t_root_3, 2);
63
64
  t_add_fragment(t_fragment_3, t_div_1, t_before);
64
65
  t_next(t_text_3);
65
66
  });
@@ -7,6 +7,7 @@ export default function IfElseIf(
7
7
  // @ts-ignore
8
8
  $slots?: Record<string, ServerSlotRender>
9
9
  ) {
10
+ $props ??= {};
10
11
 
11
12
  /* User interface */
12
13
  let $output = "";
@@ -1,3 +1,4 @@
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";
@@ -18,7 +19,7 @@ export default function IfNested(
18
19
  // @ts-ignore
19
20
  $slots?: Record<string, SlotRender>
20
21
  ) {
21
- $props ??= {};
22
+ $props ??= $watch({});
22
23
 
23
24
  /* User interface */
24
25
  const t_fragments: DocumentFragment[] = [];
@@ -47,7 +48,7 @@ export default function IfNested(
47
48
  // @ts-ignore
48
49
  const t_root_2 = t_root(t_fragment_2);
49
50
  // @ts-ignore
50
- const t_text_1 = t_next(t_next(t_root_2));
51
+ const t_text_1 = t_next(t_root_2, 2);
51
52
  t_add_fragment(t_fragment_2, t_fragment_1, t_before);
52
53
  t_next(t_text_1);
53
54
  });
@@ -58,7 +59,7 @@ export default function IfNested(
58
59
  // @ts-ignore
59
60
  const t_root_3 = t_root(t_fragment_3);
60
61
  // @ts-ignore
61
- const t_text_2 = t_next(t_next(t_root_3));
62
+ const t_text_2 = t_next(t_root_3, 2);
62
63
  t_add_fragment(t_fragment_3, t_fragment_1, t_before);
63
64
  t_next(t_text_2);
64
65
  });
@@ -77,7 +78,7 @@ export default function IfNested(
77
78
  // @ts-ignore
78
79
  const t_root_4 = t_root(t_fragment_4);
79
80
  // @ts-ignore
80
- const t_text_4 = t_next(t_next(t_root_4));
81
+ const t_text_4 = t_next(t_root_4, 2);
81
82
  t_add_fragment(t_fragment_4, t_div_1, t_before);
82
83
  t_next(t_text_4);
83
84
  });
@@ -7,6 +7,7 @@ export default function IfNested(
7
7
  // @ts-ignore
8
8
  $slots?: Record<string, ServerSlotRender>
9
9
  ) {
10
+ $props ??= {};
10
11
 
11
12
  /* User interface */
12
13
  let $output = "";
@@ -1,3 +1,4 @@
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";
@@ -18,7 +19,7 @@ export default function IfAfterIf(
18
19
  // @ts-ignore
19
20
  $slots?: Record<string, SlotRender>
20
21
  ) {
21
- $props ??= {};
22
+ $props ??= $watch({});
22
23
 
23
24
  /* User interface */
24
25
  const t_fragments: DocumentFragment[] = [];
@@ -37,7 +38,7 @@ export default function IfAfterIf(
37
38
  // @ts-ignore
38
39
  const t_root_1 = t_root(t_fragment_1);
39
40
  // @ts-ignore
40
- const t_text_1 = t_next(t_next(t_root_1));
41
+ const t_text_1 = t_next(t_root_1, 2);
41
42
  t_add_fragment(t_fragment_1, t_div_1, t_before);
42
43
  t_next(t_text_1);
43
44
  });
@@ -48,7 +49,7 @@ export default function IfAfterIf(
48
49
  }
49
50
  });
50
51
 
51
- const t_if_anchor_2 = t_anchor(t_next(t_next(t_if_anchor_1))) as HTMLElement;
52
+ const t_if_anchor_2 = t_anchor(t_next(t_if_anchor_1, 2)) as HTMLElement;
52
53
 
53
54
  /* @if */
54
55
  const t_if_range_2 = t_range();
@@ -59,7 +60,7 @@ export default function IfAfterIf(
59
60
  // @ts-ignore
60
61
  const t_root_2 = t_root(t_fragment_2);
61
62
  // @ts-ignore
62
- const t_text_2 = t_next(t_next(t_root_2));
63
+ const t_text_2 = t_next(t_root_2, 2);
63
64
  t_add_fragment(t_fragment_2, t_div_1, t_before);
64
65
  t_next(t_text_2);
65
66
  });
@@ -7,6 +7,7 @@ export default function IfAfterIf(
7
7
  // @ts-ignore
8
8
  $slots?: Record<string, ServerSlotRender>
9
9
  ) {
10
+ $props ??= {};
10
11
 
11
12
  /* User interface */
12
13
  let $output = "";
@@ -1,3 +1,4 @@
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";
@@ -18,7 +19,7 @@ export default function IfElse(
18
19
  // @ts-ignore
19
20
  $slots?: Record<string, SlotRender>
20
21
  ) {
21
- $props ??= {};
22
+ $props ??= $watch({});
22
23
 
23
24
  /* User interface */
24
25
  const t_fragments: DocumentFragment[] = [];
@@ -37,7 +38,7 @@ export default function IfElse(
37
38
  // @ts-ignore
38
39
  const t_root_1 = t_root(t_fragment_1);
39
40
  // @ts-ignore
40
- const t_text_1 = t_next(t_next(t_root_1));
41
+ const t_text_1 = t_next(t_root_1, 2);
41
42
  t_add_fragment(t_fragment_1, t_div_1, t_before);
42
43
  t_next(t_text_1);
43
44
  });
@@ -48,7 +49,7 @@ export default function IfElse(
48
49
  // @ts-ignore
49
50
  const t_root_2 = t_root(t_fragment_2);
50
51
  // @ts-ignore
51
- const t_text_2 = t_next(t_next(t_root_2));
52
+ const t_text_2 = t_next(t_root_2, 2);
52
53
  t_add_fragment(t_fragment_2, t_div_1, t_before);
53
54
  t_next(t_text_2);
54
55
  });
@@ -7,6 +7,7 @@ export default function IfElse(
7
7
  // @ts-ignore
8
8
  $slots?: Record<string, ServerSlotRender>
9
9
  ) {
10
+ $props ??= {};
10
11
 
11
12
  /* User interface */
12
13
  let $output = "";
@@ -1,3 +1,4 @@
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";
@@ -18,7 +19,7 @@ export default function IfElseIf(
18
19
  // @ts-ignore
19
20
  $slots?: Record<string, SlotRender>
20
21
  ) {
21
- $props ??= {};
22
+ $props ??= $watch({});
22
23
 
23
24
  /* User interface */
24
25
  const t_fragments: DocumentFragment[] = [];
@@ -37,7 +38,7 @@ export default function IfElseIf(
37
38
  // @ts-ignore
38
39
  const t_root_1 = t_root(t_fragment_1);
39
40
  // @ts-ignore
40
- const t_text_1 = t_next(t_next(t_root_1));
41
+ const t_text_1 = t_next(t_root_1, 2);
41
42
  t_add_fragment(t_fragment_1, t_div_1, t_before);
42
43
  t_next(t_text_1);
43
44
  });
@@ -48,7 +49,7 @@ export default function IfElseIf(
48
49
  // @ts-ignore
49
50
  const t_root_2 = t_root(t_fragment_2);
50
51
  // @ts-ignore
51
- const t_text_2 = t_next(t_next(t_root_2));
52
+ const t_text_2 = t_next(t_root_2, 2);
52
53
  t_add_fragment(t_fragment_2, t_div_1, t_before);
53
54
  t_next(t_text_2);
54
55
  });
@@ -59,7 +60,7 @@ export default function IfElseIf(
59
60
  // @ts-ignore
60
61
  const t_root_3 = t_root(t_fragment_3);
61
62
  // @ts-ignore
62
- const t_text_3 = t_next(t_next(t_root_3));
63
+ const t_text_3 = t_next(t_root_3, 2);
63
64
  t_add_fragment(t_fragment_3, t_div_1, t_before);
64
65
  t_next(t_text_3);
65
66
  });
@@ -7,6 +7,7 @@ export default function IfElseIf(
7
7
  // @ts-ignore
8
8
  $slots?: Record<string, ServerSlotRender>
9
9
  ) {
10
+ $props ??= {};
10
11
 
11
12
  /* User interface */
12
13
  let $output = "";
@@ -1,3 +1,4 @@
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";
@@ -18,7 +19,7 @@ export default function IfNested(
18
19
  // @ts-ignore
19
20
  $slots?: Record<string, SlotRender>
20
21
  ) {
21
- $props ??= {};
22
+ $props ??= $watch({});
22
23
 
23
24
  /* User interface */
24
25
  const t_fragments: DocumentFragment[] = [];
@@ -47,7 +48,7 @@ export default function IfNested(
47
48
  // @ts-ignore
48
49
  const t_root_2 = t_root(t_fragment_2);
49
50
  // @ts-ignore
50
- const t_text_1 = t_next(t_next(t_root_2));
51
+ const t_text_1 = t_next(t_root_2, 2);
51
52
  t_add_fragment(t_fragment_2, t_fragment_1, t_before);
52
53
  t_next(t_text_1);
53
54
  });
@@ -58,7 +59,7 @@ export default function IfNested(
58
59
  // @ts-ignore
59
60
  const t_root_3 = t_root(t_fragment_3);
60
61
  // @ts-ignore
61
- const t_text_2 = t_next(t_next(t_root_3));
62
+ const t_text_2 = t_next(t_root_3, 2);
62
63
  t_add_fragment(t_fragment_3, t_fragment_1, t_before);
63
64
  t_next(t_text_2);
64
65
  });
@@ -77,7 +78,7 @@ export default function IfNested(
77
78
  // @ts-ignore
78
79
  const t_root_4 = t_root(t_fragment_4);
79
80
  // @ts-ignore
80
- const t_text_4 = t_next(t_next(t_root_4));
81
+ const t_text_4 = t_next(t_root_4, 2);
81
82
  t_add_fragment(t_fragment_4, t_div_1, t_before);
82
83
  t_next(t_text_4);
83
84
  });
@@ -7,6 +7,7 @@ export default function IfNested(
7
7
  // @ts-ignore
8
8
  $slots?: Record<string, ServerSlotRender>
9
9
  ) {
10
+ $props ??= {};
10
11
 
11
12
  /* User interface */
12
13
  let $output = "";
@@ -6,6 +6,6 @@ export default function Mount() {
6
6
  });
7
7
 
8
8
  @render {
9
- <input :self={inputElement} />
9
+ <input &ref={inputElement} />
10
10
  }
11
11
  }
@@ -1,7 +1,6 @@
1
1
  import $mount from "../../../../src/render/$mount";
2
2
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
3
  import t_add_fragment from "../../../../src/render/addFragment";
4
- import t_flush from "../../../../src/render/flushMountEffects";
5
4
  import t_fragment from "../../../../src/render/getFragment";
6
5
  import t_next from "../../../../src/render/nodeNext";
7
6
  import t_root from "../../../../src/render/nodeRoot";
@@ -33,5 +32,4 @@ export default function Mount(
33
32
  t_add_fragment(t_fragment_0, $parent, $anchor);
34
33
  t_next(t_input_1);
35
34
 
36
- t_flush();
37
35
  }
@@ -18,7 +18,7 @@ export default function Mount(
18
18
 
19
19
  /* User interface */
20
20
  let $output = "";
21
- $output += `<input self="${t_attr(inputElement) || ""}">`;
21
+ $output += `<input ref="${t_attr(inputElement) || ""}">`;
22
22
 
23
23
  return $output;
24
24
  }
@@ -1,7 +1,6 @@
1
1
  import $mount from "../../../../src/render/$mount";
2
2
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
3
  import t_add_fragment from "../../../../src/render/addFragment";
4
- import t_flush from "../../../../src/render/flushMountEffects";
5
4
  import t_fragment from "../../../../src/render/getFragment";
6
5
  import t_next from "../../../../src/render/nodeNext";
7
6
  import t_root from "../../../../src/render/nodeRoot";
@@ -33,5 +32,4 @@ export default function Mount(
33
32
  t_add_fragment(t_fragment_0, $parent, $anchor);
34
33
  t_next(t_input_1);
35
34
 
36
- t_flush();
37
35
  }
@@ -18,7 +18,7 @@ export default function Mount(
18
18
 
19
19
  /* User interface */
20
20
  let $output = "";
21
- $output += `<input self="${t_attr(inputElement) || ""}">`;
21
+ $output += `<input ref="${t_attr(inputElement) || ""}">`;
22
22
 
23
23
  return $output;
24
24
  }
@@ -1,7 +1,6 @@
1
1
  import $mount from "../../../../src/render/$mount";
2
2
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
3
  import t_add_fragment from "../../../../src/render/addFragment";
4
- import t_flush from "../../../../src/render/flushMountEffects";
5
4
  import t_fragment from "../../../../src/render/getFragment";
6
5
  import t_next from "../../../../src/render/nodeNext";
7
6
  import t_root from "../../../../src/render/nodeRoot";
@@ -29,5 +28,4 @@ export default function OnMount(
29
28
  t_add_fragment(t_fragment_0, $parent, $anchor);
30
29
  t_next(t_input_1);
31
30
 
32
- t_flush();
33
31
  }
@@ -1,7 +1,6 @@
1
1
  import $mount from "../../../../src/render/$mount";
2
2
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
3
  import t_add_fragment from "../../../../src/render/addFragment";
4
- import t_flush from "../../../../src/render/flushMountEffects";
5
4
  import t_fragment from "../../../../src/render/getFragment";
6
5
  import t_next from "../../../../src/render/nodeNext";
7
6
  import t_root from "../../../../src/render/nodeRoot";
@@ -29,5 +28,4 @@ export default function OnMount(
29
28
  t_add_fragment(t_fragment_0, $parent, $anchor);
30
29
  t_next(t_input_1);
31
30
 
32
- t_flush();
33
31
  }
@@ -31,19 +31,18 @@ test("emit to parent -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
34
  const yesButton = container.getElementsByTagName("button")[0];
36
35
  const noButton = container.getElementsByTagName("button")[1];
37
36
 
38
37
  expect(queryByText(container, "😀")).not.toBeNull();
39
38
  expect(queryByText(container, "😥")).toBeNull();
40
39
 
41
- await user.click(noButton);
40
+ await userEvent.click(noButton);
42
41
 
43
42
  expect(queryByText(container, "😀")).toBeNull();
44
43
  expect(queryByText(container, "😥")).not.toBeNull();
45
44
 
46
- await user.click(yesButton);
45
+ await userEvent.click(yesButton);
47
46
 
48
47
  expect(queryByText(container, "😀")).not.toBeNull();
49
48
  expect(queryByText(container, "😥")).toBeNull();
@@ -31,13 +31,12 @@ test("context -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
34
  const button = container.getElementsByTagName("button")[0];
36
35
 
37
36
  expect(queryByText(container, "Welcome back, unicorn42")).not.toBeNull();
38
37
  expect(queryByText(container, "Username: unicorn42")).not.toBeNull();
39
38
 
40
- await user.click(button);
39
+ await userEvent.click(button);
41
40
 
42
41
  expect(queryByText(container, "Welcome back, Jane")).not.toBeNull();
43
42
  expect(queryByText(container, "Username: Jane")).not.toBeNull();
@@ -31,13 +31,12 @@ test("input text -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
34
  const input = container.getElementsByTagName("input")[0];
36
35
 
37
36
  expect(queryByText(container, "Hello World")).not.toBeNull();
38
37
 
39
- await user.clear(input);
40
- await user.type(input, "Hello Jane");
38
+ await userEvent.clear(input);
39
+ await userEvent.type(input, "Hello Jane");
41
40
 
42
41
  expect(queryByText(container, "Hello Jane")).not.toBeNull();
43
42
  }
@@ -31,12 +31,11 @@ test("input checkbox -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
34
  const input = container.getElementsByTagName("input")[0];
36
35
 
37
36
  expect(queryByText(container, "Not available")).not.toBeNull();
38
37
 
39
- await user.click(input);
38
+ await userEvent.click(input);
40
39
 
41
40
  expect(queryByText(container, "Available")).not.toBeNull();
42
41
  }
@@ -31,19 +31,18 @@ test("input radio -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
34
  const blueRadio = container.getElementsByTagName("input")[0];
36
35
  const redRadio = container.getElementsByTagName("input")[1];
37
36
 
38
37
  expect(queryByText(container, "Picked: red")).not.toBeNull();
39
38
  expect(queryByText(container, "Picked: blue")).toBeNull();
40
39
 
41
- await user.click(blueRadio);
40
+ await userEvent.click(blueRadio);
42
41
 
43
42
  expect(queryByText(container, "Picked: red")).toBeNull();
44
43
  expect(queryByText(container, "Picked: blue")).not.toBeNull();
45
44
 
46
- await user.click(redRadio);
45
+ await userEvent.click(redRadio);
47
46
 
48
47
  expect(queryByText(container, "Picked: red")).not.toBeNull();
49
48
  expect(queryByText(container, "Picked: blue")).toBeNull();
@@ -31,21 +31,20 @@ test("input select -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
34
  const select = container.getElementsByTagName("select")[0];
36
35
 
37
36
  expect(queryByText(container, "Selected: blue")).not.toBeNull();
38
37
 
39
- await user.selectOptions(select, "1");
38
+ await userEvent.selectOptions(select, "1");
40
39
 
41
40
  expect(queryByText(container, "Selected: red")).not.toBeNull();
42
41
 
43
- await user.selectOptions(select, "3");
42
+ await userEvent.selectOptions(select, "3");
44
43
 
45
44
  expect(queryByText(container, "Selected: green")).not.toBeNull();
46
45
 
47
46
  // This shouldn't work because the option is disabled
48
- await user.selectOptions(select, "4");
47
+ await userEvent.selectOptions(select, "4");
49
48
 
50
49
  expect(queryByText(container, "Selected: gray")).toBeNull();
51
50
  expect(queryByText(container, "Selected: green")).not.toBeNull();
@@ -31,12 +31,10 @@ test("event click -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
-
36
34
  expect(queryByText(container, "Counter: 0")).not.toBeNull();
37
35
 
38
36
  const button = container.getElementsByTagName("button")[0];
39
- await user.click(button);
37
+ await userEvent.click(button);
40
38
 
41
39
  expect(queryByText(container, "Counter: 1")).not.toBeNull();
42
40
  }
@@ -31,20 +31,18 @@ test("conditional -- hydrated", async () => {
31
31
  });
32
32
 
33
33
  async function check(container: HTMLElement) {
34
- const user = userEvent.setup();
35
-
36
34
  expect(queryByText(container, "STOP")).not.toBeNull();
37
35
  expect(queryByText(container, "SLOW DOWN")).toBeNull();
38
36
  expect(queryByText(container, "GO")).toBeNull();
39
37
 
40
38
  const button = container.getElementsByTagName("button")[0];
41
- await user.click(button);
39
+ await userEvent.click(button);
42
40
 
43
41
  expect(queryByText(container, "STOP")).toBeNull();
44
42
  expect(queryByText(container, "SLOW DOWN")).not.toBeNull();
45
43
  expect(queryByText(container, "GO")).toBeNull();
46
44
 
47
- await user.click(button);
45
+ await userEvent.click(button);
48
46
 
49
47
  expect(queryByText(container, "STOP")).toBeNull();
50
48
  expect(queryByText(container, "SLOW DOWN")).toBeNull();
@@ -14,7 +14,7 @@ export default function ColorSelect() {
14
14
  <div>
15
15
  <div>Selected: {colors[$state.selectedColorId - 1].text}</div>
16
16
 
17
- <select :value={$state.selectedColorId}>
17
+ <select &value={$state.selectedColorId}>
18
18
  @for (let color of colors) {
19
19
  <option value={color.id} disabled={color.isDisabled}>
20
20
  {color.text}
@@ -7,6 +7,6 @@ export default function InputFocused() {
7
7
  });
8
8
 
9
9
  @render {
10
- <input :self={inputElement} />
10
+ <input &ref={inputElement} />
11
11
  }
12
12
  }
@@ -6,7 +6,7 @@ export default function InputHello() {
6
6
  @render {
7
7
  <div>
8
8
  <p>{$state.text}</p>
9
- <input :value={$state.text} />
9
+ <input &value={$state.text} />
10
10
  </div>
11
11
  }
12
12
  }
@@ -7,7 +7,7 @@ export default function IsAvailable() {
7
7
  <div>
8
8
  <div>{$state.isAvailable ? "Available" : "Not available"}</div>
9
9
 
10
- <input id="is-available" type="checkbox" :checked={$state.isAvailable} />
10
+ <input id="is-available" type="checkbox" &checked={$state.isAvailable} />
11
11
  <label for="is-available">Is available</label>
12
12
  </div>
13
13
  }
@@ -7,10 +7,10 @@ export default function PickPill() {
7
7
  <div>
8
8
  <div>Picked: {$state.picked}</div>
9
9
 
10
- <input id="blue-pill" :group={$state.picked} type="radio" value="blue" />
10
+ <input id="blue-pill" &group={$state.picked} type="radio" value="blue" />
11
11
  <label for="blue-pill">Blue pill</label>
12
12
 
13
- <input id="red-pill" :group={$state.picked} type="radio" value="red" />
13
+ <input id="red-pill" &group={$state.picked} type="radio" value="red" />
14
14
  <label for="red-pill">Red pill</label>
15
15
  </div>
16
16
  }
@@ -1,3 +1,4 @@
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_child from "../../../../src/render/nodeChild";
@@ -15,7 +16,7 @@ export default function AnswerButton(
15
16
  // @ts-ignore
16
17
  $slots?: Record<string, SlotRender>
17
18
  ) {
18
- $props ??= {};
19
+ $props ??= $watch({});
19
20
 
20
21
  /* User interface */
21
22
  const t_fragments: DocumentFragment[] = [];
@@ -24,7 +25,7 @@ export default function AnswerButton(
24
25
  // @ts-ignore
25
26
  const t_div_1 = t_root(t_fragment_0) as HTMLDivElement;
26
27
  const t_button_1 = t_next(t_child(t_div_1)) as HTMLElement;
27
- const t_button_2 = t_next(t_next(t_button_1)) as HTMLElement;
28
+ const t_button_2 = t_next(t_button_1, 2) as HTMLElement;
28
29
  t_event(t_button_1, "click", $props.onYes);
29
30
  t_event(t_button_2, "click", $props.onNo);
30
31
  t_add_fragment(t_fragment_0, $parent, $anchor);
@@ -7,6 +7,7 @@ export default function AnswerButton(
7
7
  // @ts-ignore
8
8
  $slots?: Record<string, ServerSlotRender>
9
9
  ) {
10
+ $props ??= {};
10
11
 
11
12
  /* User interface */
12
13
  let $output = "";