@torpor/view 0.1.11 → 0.2.0

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 (315) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/{ServerSlotRender-t1sOutne.d.cts → ServerSlotRender-BMGG0yq3.d.cts} +4 -4
  4. package/dist/{ServerSlotRender-t1sOutne.d.ts → ServerSlotRender-BMGG0yq3.d.ts} +4 -4
  5. package/dist/chunk-XNO4YEJ3.js +64 -0
  6. package/dist/chunk-XNO4YEJ3.js.map +1 -0
  7. package/dist/compile.cjs +69 -60
  8. package/dist/compile.cjs.map +1 -1
  9. package/dist/compile.js +69 -60
  10. package/dist/compile.js.map +1 -1
  11. package/dist/index.cjs +77 -46
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.cts +6 -3
  14. package/dist/index.d.ts +6 -3
  15. package/dist/index.js +28 -16
  16. package/dist/index.js.map +1 -1
  17. package/dist/metafile-cjs.json +1 -1
  18. package/dist/metafile-esm.json +1 -1
  19. package/dist/ssr.cjs +44 -25
  20. package/dist/ssr.cjs.map +1 -1
  21. package/dist/ssr.d.cts +2 -2
  22. package/dist/ssr.d.ts +2 -2
  23. package/dist/ssr.js +6 -6
  24. package/package.json +5 -5
  25. package/src/compile/build/client/buildComponentNode.ts +13 -11
  26. package/src/compile/build/client/buildElementNode.ts +10 -13
  27. package/src/compile/build/server/buildServerAwaitNode.ts +2 -2
  28. package/src/compile/build/server/buildServerCode.ts +13 -4
  29. package/src/compile/build/server/buildServerComponentNode.ts +21 -16
  30. package/src/compile/build/server/buildServerControlNode.ts +2 -2
  31. package/src/compile/build/server/buildServerElementNode.ts +7 -4
  32. package/src/compile/build/server/buildServerForNode.ts +2 -2
  33. package/src/compile/build/server/buildServerIfNode.ts +2 -2
  34. package/src/compile/build/server/buildServerReplaceNode.ts +2 -2
  35. package/src/compile/build/server/buildServerSlotNode.ts +9 -5
  36. package/src/compile/build/server/buildServerSwitchNode.ts +2 -2
  37. package/src/compile/parse/scopeStyles.ts +1 -0
  38. package/src/debug/printNode.ts +8 -8
  39. package/src/index.ts +2 -2
  40. package/src/render/addFragment.ts +2 -1
  41. package/src/render/{getClasses.ts → buildClasses.ts} +13 -6
  42. package/src/render/buildStyles.ts +19 -0
  43. package/src/render/isCommentNode.ts +3 -0
  44. package/src/render/isFragmentNode.ts +3 -0
  45. package/src/render/isTextNode.ts +3 -0
  46. package/src/render/moveRange.ts +9 -0
  47. package/src/render/nodeAnchor.ts +3 -3
  48. package/src/render/nodeCheckHydrationBreak.ts +2 -2
  49. package/src/render/nodeNext.ts +2 -2
  50. package/src/render/nodeRoot.ts +11 -2
  51. package/src/ssr.ts +2 -2
  52. package/src/types/ServerComponent.ts +1 -1
  53. package/test/attributes/components/output/Attributes-server.ts +4 -3
  54. package/test/attributes/components/temp/{Attributes-server-80f9f58fd6cb30df11867386d4f0b15b44401ebe.ts → Attributes-server-f4c59f5e4757ce0113907389902499efc36cfe38.ts} +4 -3
  55. package/test/await/components/Await.torp +10 -12
  56. package/test/await/components/output/Await-client.ts +6 -7
  57. package/test/await/components/output/Await-server.ts +6 -5
  58. package/test/await/components/temp/{Await-client-9c30564ea39457e614e60c0cc0a71c431e8a1e76.ts → Await-client-17b0e7c682fbff8518a440831620c1024b8be23a.ts} +6 -7
  59. package/test/await/components/temp/{Await-server-f02f39af3bb3344ca6b18a1d64d60b21913fba31.ts → Await-server-eb8d79f8abc791dd8e87f9713534cebf0eb2c854.ts} +6 -5
  60. package/test/bench/components/Bench.torp +1 -1
  61. package/test/bench/components/output/Bench-client.ts +238 -32
  62. package/test/bench/components/output/Bench-server.ts +21 -9
  63. package/test/bench/components/temp/Bench-client-4e18421473e97bac7c24b17ba14751ce14dd187e.ts +414 -0
  64. package/test/bench/components/temp/{Bench-server-00cefa588803c01ca4f2741c595e4f045cdd101e.ts → Bench-server-4648921af9bc146718d55a7e9fc288b47a57dfda.ts} +18 -6
  65. package/test/bind/components/BindComponent.torp +3 -18
  66. package/test/bind/components/BindText.torp +8 -10
  67. package/test/bind/components/output/BindComponent-client.ts +19 -30
  68. package/test/bind/components/output/BindComponent-server.ts +14 -20
  69. package/test/bind/components/output/BindText-client.ts +3 -3
  70. package/test/bind/components/output/BindText-server.ts +4 -3
  71. package/test/bind/components/temp/{BindComponent-client-6f650efb818a185ef33e1b071cfd77415a803dd3.ts → BindComponent-client-a59ee6a598341c64c79be633ae7b22cb594dd0bc.ts} +19 -30
  72. package/test/bind/components/temp/{BindComponent-server-2e6caf0cbbb2831eb4bfbd7dcd6cf4d5c422d047.ts → BindComponent-server-96120f1e75c77e02ba11ab719c225005e168d25f.ts} +14 -20
  73. package/test/bind/components/temp/{BindText-client-134676d616abbad6b8a7ec48df0a2e38cbfe3b87.ts → BindText-client-dac614203e672e51675b22a246983168a7c173ea.ts} +3 -3
  74. package/test/bind/components/temp/{BindText-server-807a1ddcb68410b30429cb088d2e204ed6f585b2.ts → BindText-server-c713033ef787587f752fc8e6282e3a8faeee9a08.ts} +4 -3
  75. package/test/build-server/build-server.test.ts +1 -1
  76. package/test/build-server/components/IfNested.torp +11 -13
  77. package/test/buildHtml.ts +1 -1
  78. package/test/buildOutputFiles.ts +4 -4
  79. package/test/child-component/components/ParentChild.torp +1 -3
  80. package/test/child-component/components/output/ParentChild-client.ts +4 -5
  81. package/test/child-component/components/output/ParentChild-server.ts +12 -8
  82. package/test/child-component/components/temp/{ParentChild-client-50ca7e499599209c9d674f2561413ca14a282c22.ts → ParentChild-client-198e4ebc2ef5277ad7147f69d5879946fbe2d6ec.ts} +4 -5
  83. package/test/child-component/components/temp/{ParentChild-server-5e4a7fa5f4cd1c7dbe6866819025d2c03bfc62cb.ts → ParentChild-server-55e809830788ae740608136cf66664fc5434a9cd.ts} +12 -8
  84. package/test/class/components/Class.torp +22 -24
  85. package/test/class/components/output/Class-client.ts +7 -9
  86. package/test/class/components/output/Class-server.ts +13 -10
  87. package/test/class/components/temp/{Class-client-de2491c550647203bea08727fa8c88f30654db0a.ts → Class-client-7defac0b98d9c9f303670c0372e329e31823f163.ts} +7 -9
  88. package/test/class/components/temp/Class-server-46563e9c3bf56b642ac496b60179decfd0b4e952.ts +43 -0
  89. package/test/component/components/output/Component-server.ts +8 -5
  90. package/test/component/components/output/Header-server.ts +4 -3
  91. package/test/component/components/temp/{Component-server-57f59c74599572da6322a67cb97848cfbfcf6968.ts → Component-server-2d4aa317e6c385036e07f4c3946fc18ba848c00d.ts} +8 -5
  92. package/test/component/components/temp/{Header-server-6969d20782edd8f99d4b5c5b7b5563ce26e6dc2d.ts → Header-server-91088d2a5a543287bfdf1a24d92b66db6ccd294d.ts} +4 -3
  93. package/test/console/components/output/Console-server.ts +4 -3
  94. package/test/console/components/temp/{Console-server-cfb2208b130d5f15403df19ae8341aaa1c9ad33a.ts → Console-server-7bc7f568e9c3626dca1bdafcb23186c2dbc59199.ts} +4 -3
  95. package/test/const/components/Const.torp +4 -6
  96. package/test/const/components/output/Const-client.ts +2 -2
  97. package/test/const/components/output/Const-server.ts +5 -4
  98. package/test/const/components/temp/{Const-client-7dff2758c14bfbd208e301a702ae1781e6daba1b.ts → Const-client-b0293a037d9ed7b6ad4591c153723a3c26d46029.ts} +2 -2
  99. package/test/const/components/temp/{Const-server-1cf6ed84f72d3b15b318b80937b8de1f2c0f188c.ts → Const-server-5fd2444a9ae7a676b7c4480e01e28f7f89624fdc.ts} +5 -4
  100. package/test/dummy/components/temp/ProfilePreview-client-e57ca1ac502e0ddcb3ef376dd5ef27add70090d1.ts +327 -0
  101. package/test/dummy/components/temp/ProfilePreview-server-9d3d0f8b4f80f634db6ba97d037ab07de004b4d3.ts +56 -0
  102. package/test/effects/components/For.torp +3 -5
  103. package/test/effects/components/If.torp +5 -7
  104. package/test/effects/components/NestedIf.torp +6 -8
  105. package/test/effects/components/output/For-client.ts +5 -6
  106. package/test/effects/components/output/For-server.ts +6 -5
  107. package/test/effects/components/output/If-client.ts +5 -7
  108. package/test/effects/components/output/If-server.ts +7 -6
  109. package/test/effects/components/output/NestedIf-client.ts +4 -6
  110. package/test/effects/components/output/NestedIf-server.ts +9 -8
  111. package/test/effects/components/temp/{For-client-35bf9bea43f53d6c0cf807f9e31500765fa0b455.ts → For-client-268e69779d5b744377af9b30df256a453adaf183.ts} +5 -6
  112. package/test/effects/components/temp/{For-server-efe60939d185315f4c9b567b6867c6d5af14d9aa.ts → For-server-b15b01b4daaf50fd95de790102089eb930e84e9b.ts} +6 -5
  113. package/test/effects/components/temp/{If-client-efb994796596d9d08f59a0ab5ffdacc74bd04545.ts → If-client-4df0e6fc27a6f7d60ce056fd65df687213f3a2f9.ts} +5 -7
  114. package/test/effects/components/temp/{If-server-2424b7b812d350d7eb8ff9afb1146807217320cd.ts → If-server-0a213ea232e0225d5a8ecb012ad418136b86fbe7.ts} +7 -6
  115. package/test/effects/components/temp/{NestedIf-client-845b3789b8a938439bff758bc9b3731d769c8ff6.ts → NestedIf-client-bfd381672c51febbe2f101f19afd5f6ff570ce7e.ts} +4 -6
  116. package/test/effects/components/temp/{NestedIf-server-ab260586490cb5afed31377d2226bb5a1fc30e2d.ts → NestedIf-server-6089abc72d6208e64d1818ddb624ad5c3f236afa.ts} +9 -8
  117. package/test/events/components/Increment.torp +9 -11
  118. package/test/events/components/output/Increment-client.ts +3 -3
  119. package/test/events/components/output/Increment-server.ts +4 -3
  120. package/test/events/components/temp/{Increment-client-1b5f9e231c5c4fc059d77ca0da632719283e5ac4.ts → Increment-client-db2fd3376f12b186a4276eac470bf10b7bf2da19.ts} +3 -3
  121. package/test/events/components/temp/{Increment-server-b084f43082e2ec31dbe5f9edc1cb6e37e4c8df9d.ts → Increment-server-062b9757192b84e5a6e247aa44e1e7887129293d.ts} +4 -3
  122. package/test/for/components/output/For-server.ts +6 -5
  123. package/test/for/components/output/ForEscape-server.ts +6 -5
  124. package/test/for/components/output/ForIn-server.ts +6 -5
  125. package/test/for/components/output/ForOf-server.ts +6 -5
  126. package/test/for/components/temp/{For-server-3b6ead39728c79206203c519a215390d07d80f7e.ts → For-server-082c156a9f047995bc55f9477295d8e3262614f5.ts} +6 -5
  127. package/test/for/components/temp/{ForEscape-server-ed906c8cd593a0b467073ada415734de31dc38d9.ts → ForEscape-server-2db43ff8397ddbb114b5bff3d88a63728184a811.ts} +6 -5
  128. package/test/for/components/temp/{ForIn-server-c8f13304a2ba235e091685256909fbfa50bdd5fd.ts → ForIn-server-fda7a21cbb8a7ad69c48d2a8533cc13fa98d54b6.ts} +6 -5
  129. package/test/for/components/temp/{ForOf-server-8c2c33ca6595bf0a5e952ca9971e595e18446623.ts → ForOf-server-cd2b01507304e25c34030755b915f56785375de8.ts} +6 -5
  130. package/test/function/components/Function.torp +8 -10
  131. package/test/function/components/output/Function-client.ts +3 -3
  132. package/test/function/components/output/Function-server.ts +5 -4
  133. package/test/function/components/temp/{Function-client-4e2168306756eb927d5ed4b673334b357eecaa74.ts → Function-client-2068eb8ae35b3157b8eda79addde6afd9f4d7006.ts} +3 -3
  134. package/test/function/components/temp/{Function-server-2b19d0cd881c31dc67132107c6e322a18701c318.ts → Function-server-4b66a728f6f1b170d678313238bdc9158356511e.ts} +5 -4
  135. package/test/html/components/output/Html-server.ts +4 -3
  136. package/test/html/components/temp/{Html-server-d159b0ef04b1f65ae4f9e05a7b44b21e7aa14cf9.ts → Html-server-4f73a2b0c5cd9b82666a99ec6a217c758d435008.ts} +4 -3
  137. package/test/hydrateComponent.ts +2 -3
  138. package/test/if/components/output/IfAfterIf-server.ts +8 -7
  139. package/test/if/components/output/IfElse-server.ts +7 -6
  140. package/test/if/components/output/IfElseIf-server.ts +8 -7
  141. package/test/if/components/output/IfFalse-server.ts +6 -5
  142. package/test/if/components/output/IfNested-server.ts +10 -9
  143. package/test/if/components/temp/{IfAfterIf-server-a5005147e7902d1a5a048c9fe07feb9804eb6560.ts → IfAfterIf-server-3e6a3beab27821c3e53290ee72eca811814aad38.ts} +8 -7
  144. package/test/if/components/temp/{IfElse-server-80d93e5fc4ceba7a645f7081fa11b177dbe730d0.ts → IfElse-server-1b5006dfad695f257c7453a79bde3944898fbf6d.ts} +7 -6
  145. package/test/if/components/temp/{IfElseIf-server-ddc7348705d51b02538301e0aa704130748992cf.ts → IfElseIf-server-11c65065e9e5640ad65cd0c37af07f1e57c4f49c.ts} +8 -7
  146. package/test/if/components/temp/{IfFalse-server-e8385013cfdde584b43cc0d71311cbb417859116.ts → IfFalse-server-40d07bc07e5edffd7386fb6016cd025b98175219.ts} +6 -5
  147. package/test/if/components/temp/{IfNested-server-285a5d8e0e0fcc8ccf421df152fdc00811782835.ts → IfNested-server-061ea3d56576a352be8a9db8424fae0f1d74cd36.ts} +10 -9
  148. package/test/mount/components/output/Mount-server.ts +4 -3
  149. package/test/mount/components/temp/{Mount-server-62f94f276c2d6c9048765a77b575cb21146917f1.ts → Mount-server-8564e4e0886ea754dfedf9a4a5fd82f0484c1d83.ts} +4 -3
  150. package/test/on-mount/components/output/OnMount-server.ts +4 -3
  151. package/test/on-mount/components/temp/{OnMount-server-c531f718eb68754ea6c3001d5db9c07c511e434c.ts → OnMount-server-2ff035e067926fadc284030075aa5da69a05cf31.ts} +4 -3
  152. package/test/party/components/AnswerButton.torp +2 -5
  153. package/test/party/components/AnswerButtonApp.torp +3 -5
  154. package/test/party/components/ColorSelect.torp +8 -10
  155. package/test/party/components/Counter.torp +2 -4
  156. package/test/party/components/CssStyle.torp +2 -4
  157. package/test/party/components/FunnyButtonApp.torp +2 -4
  158. package/test/party/components/InputHello.torp +2 -4
  159. package/test/party/components/IsAvailable.torp +3 -5
  160. package/test/party/components/PickPill.torp +5 -7
  161. package/test/party/components/TrafficLight.torp +12 -14
  162. package/test/party/components/UserProfile.torp +4 -6
  163. package/test/party/components/UserProfileContext.torp +6 -8
  164. package/test/party/components/UserProfileContextApp.torp +2 -4
  165. package/test/party/components/output/AnswerButton-client.ts +3 -4
  166. package/test/party/components/output/AnswerButton-server.ts +4 -3
  167. package/test/party/components/output/AnswerButtonApp-client.ts +4 -5
  168. package/test/party/components/output/AnswerButtonApp-server.ts +8 -5
  169. package/test/party/components/output/ColorSelect-client.ts +4 -4
  170. package/test/party/components/output/ColorSelect-server.ts +6 -5
  171. package/test/party/components/output/Colors-server.ts +6 -5
  172. package/test/party/components/output/Counter-client.ts +4 -4
  173. package/test/party/components/output/Counter-server.ts +4 -3
  174. package/test/party/components/output/CssStyle-client.ts +2 -2
  175. package/test/party/components/output/CssStyle-server.ts +4 -3
  176. package/test/party/components/output/DoubleCount-server.ts +4 -3
  177. package/test/party/components/output/FunnyButton-server.ts +7 -6
  178. package/test/party/components/output/FunnyButtonApp-client.ts +5 -8
  179. package/test/party/components/output/FunnyButtonApp-server.ts +15 -10
  180. package/test/party/components/output/HelloWorld-server.ts +4 -3
  181. package/test/party/components/output/InputFocused-server.ts +4 -3
  182. package/test/party/components/output/InputHello-client.ts +4 -4
  183. package/test/party/components/output/InputHello-server.ts +4 -3
  184. package/test/party/components/output/IsAvailable-client.ts +4 -4
  185. package/test/party/components/output/IsAvailable-server.ts +4 -3
  186. package/test/party/components/output/Name-server.ts +4 -3
  187. package/test/party/components/output/NameUpdate-server.ts +4 -3
  188. package/test/party/components/output/PageTitle-server.ts +4 -3
  189. package/test/party/components/output/PickPill-client.ts +4 -4
  190. package/test/party/components/output/PickPill-server.ts +4 -3
  191. package/test/party/components/output/Time-server.ts +4 -3
  192. package/test/party/components/output/TrafficLight-client.ts +3 -3
  193. package/test/party/components/output/TrafficLight-server.ts +8 -7
  194. package/test/party/components/output/UserProfile-client.ts +6 -6
  195. package/test/party/components/output/UserProfile-server.ts +4 -3
  196. package/test/party/components/output/UserProfileApp-server.ts +8 -5
  197. package/test/party/components/output/UserProfileContext-client.ts +5 -5
  198. package/test/party/components/output/UserProfileContext-server.ts +4 -3
  199. package/test/party/components/output/UserProfileContextApp-client.ts +5 -6
  200. package/test/party/components/output/UserProfileContextApp-server.ts +8 -5
  201. package/test/party/components/temp/{AnswerButton-client-ad8f8db36b7aaa68d8de5898a324bacfbe9f20df.ts → AnswerButton-client-890e28879c132eea21260eb82af832afc6a48507.ts} +3 -4
  202. package/test/party/components/temp/{AnswerButton-server-928b5d447afa865fa09e0142c79bb1f2c1b86875.ts → AnswerButton-server-01ffab9f6f92073640df2cf2cb5473407d82b24f.ts} +4 -3
  203. package/test/party/components/temp/{AnswerButtonApp-client-5661f07868550612bcdeee268b82c473af6a2613.ts → AnswerButtonApp-client-295a835cadf7e7ccec608f84ed01865dd8c73954.ts} +4 -5
  204. package/test/party/components/temp/{AnswerButtonApp-server-e4ea88e0f4d65508950594437e5e34424bd28897.ts → AnswerButtonApp-server-b458692868307e6e08ad3deed9c2db542c28dee0.ts} +8 -5
  205. package/test/party/components/temp/{ColorSelect-client-70bf59d6399d63c0eed421b9d370a1e5c97a89ca.ts → ColorSelect-client-5f74d3b38193a0c9b22317598cdbf2f56754ca2b.ts} +4 -4
  206. package/test/party/components/temp/{ColorSelect-server-90f83722bd85155ebb2b8ccdaf053cd28d3152be.ts → ColorSelect-server-cf0b1b533948a558e1705d9a7cca3c0b6ae8d315.ts} +6 -5
  207. package/test/party/components/temp/{Colors-server-e13d49ba57f7b0dc6fb10a333ec872f5207e1ff0.ts → Colors-server-b050714bfe752b88a99f6498f1b5c13abe6b56a5.ts} +6 -5
  208. package/test/party/components/temp/{Counter-client-3b876c148f2b14da1766eff77eb6c494f7be6414.ts → Counter-client-006caeda8766cb17a161da0c6f58f006f8f16e8b.ts} +4 -4
  209. package/test/party/components/temp/{Counter-server-7adf9376b38d97f1fd4b9c14108e6814e81f14ea.ts → Counter-server-931d36d8e4bcd114047bbfec8aa5f2fac0c2ce1e.ts} +4 -3
  210. package/test/party/components/temp/{CssStyle-client-37465dd48d1479db1bae513eb0b92c4e9a15e9ea.ts → CssStyle-client-6ec06cbc4b34344234d289f6c4a9e427efff85a7.ts} +2 -2
  211. package/test/party/components/temp/{CssStyle-server-90a950501a20bfa5feac84ca6d97898c25bce2ed.ts → CssStyle-server-fa4bad3c82930632730e3b6b9f0e9193cab6f777.ts} +4 -3
  212. package/test/party/components/temp/{DoubleCount-server-62c94483ebe9661e5ecc4f489787e32448ddcafa.ts → DoubleCount-server-8c013a97a08562deb6ad0f35e6e337203b0ddde9.ts} +4 -3
  213. package/test/party/components/temp/{FunnyButton-server-e0adab2be2d283acb8a8b580479ade999dc918e9.ts → FunnyButton-server-3fd55a1e1dc71c183a6cea68e4c4693c988b7533.ts} +7 -6
  214. package/test/party/components/temp/{FunnyButtonApp-client-daa929c6d64f67e4a1a387b884317a4bb615b5d4.ts → FunnyButtonApp-client-1f2258b8488469d4704366bc49f5c171d8a854ae.ts} +5 -8
  215. package/test/party/components/temp/{FunnyButtonApp-server-80d85ede7da558154a5aa17cd602d6724bf1c9cb.ts → FunnyButtonApp-server-6463d1c57adf61450d1415f0d76da4561ca3e798.ts} +15 -10
  216. package/test/party/components/temp/{HelloWorld-server-e0ed80e7531f303952a4af30d646263ff2e4ead6.ts → HelloWorld-server-50dd4393d55ecd33d5b7684c4f9ed41dfa0ceb5d.ts} +4 -3
  217. package/test/party/components/temp/{InputFocused-server-ee70758a515227c04788be0e298a79c277994ccd.ts → InputFocused-server-7b062b0dd7686ccc389c3c1a17f37e9a9bb19da9.ts} +4 -3
  218. package/test/party/components/temp/{InputHello-client-2a4cbd980534fde14b9d3e8a2f8e4f59a4f15d64.ts → InputHello-client-496d26bdeb6a168c4242e45f35d22e6ecbd211b9.ts} +4 -4
  219. package/test/party/components/temp/{InputHello-server-1b9dd5442ded022abe92a9075ca5a4bb90486cbe.ts → InputHello-server-a5fb3e0d8766c19d177a1f4d43d421c7da1b92ab.ts} +4 -3
  220. package/test/party/components/temp/{IsAvailable-client-3949f85aea0e935c3b59ab1389baee836eff1866.ts → IsAvailable-client-491b92b5e21ebe1bbab47b2e422c35fb996b55e1.ts} +4 -4
  221. package/test/party/components/temp/{IsAvailable-server-123daa1ae56b77defe6666faddb44ba4252dd0fb.ts → IsAvailable-server-c0da3c019ef13617d2ab51353eb3360ddaae4189.ts} +4 -3
  222. package/test/party/components/temp/{Name-server-a402418f1ca2d8a0e6403596ec03ec47b5ff40ec.ts → Name-server-0306b0c622d71323eb79a6b466d900380a0944f3.ts} +4 -3
  223. package/test/party/components/temp/{NameUpdate-server-b7dcc875e894a5606544fcd78bda575ea07632ca.ts → NameUpdate-server-a54ea11dc6b8f0b55d29ad29163cf27b9aa6ec40.ts} +4 -3
  224. package/test/party/components/temp/{PageTitle-server-12dcb4e437aaef227c704a2ee8bbdee55ca323dc.ts → PageTitle-server-8b34f9af760ab39e20a60e10ee3185e70d92e42b.ts} +4 -3
  225. package/test/party/components/temp/{PickPill-client-0f13aa652cb1bd45f57d5a249f8364e80204441a.ts → PickPill-client-a1f48b5c28db87eb57f0ac1f6b4370e4b2952de7.ts} +4 -4
  226. package/test/party/components/temp/{PickPill-server-f10dae4708e36775a5e1a5ad10c6c0c309335009.ts → PickPill-server-9596fdb8ff254cb4e1b99b714f3c5e8ea8aaa308.ts} +4 -3
  227. package/test/party/components/temp/{Time-server-8e0278a4b16925903f3c4ceedbf1332cde4921fa.ts → Time-server-da1cafe72c0f9a6dbf15a04dfa7282ae5187c101.ts} +4 -3
  228. package/test/party/components/temp/{TrafficLight-client-4a90675ca6157ed7701aefa0d9141575960a1d47.ts → TrafficLight-client-d04c95686ec0ad8a9c54710773945e9904224d5e.ts} +3 -3
  229. package/test/party/components/temp/{TrafficLight-server-04bb3b2f11322ccc97a9a8a8fbb26c3c99843042.ts → TrafficLight-server-6c0f66cdabfc7239b99665c3f7087462ee302e8a.ts} +8 -7
  230. package/test/party/components/temp/{UserProfile-client-11c2a928de5a5ed4cab45186f08ca09f6161afb5.ts → UserProfile-client-a59466813b208664f35e6e394858c3d61e040644.ts} +6 -6
  231. package/test/party/components/temp/{UserProfile-server-a0576b8d9dd15b3fab6c11758984c686ddfe2f66.ts → UserProfile-server-b10ec192e03dc818fe66dbd4aad14200e817e596.ts} +4 -3
  232. package/test/party/components/temp/{UserProfileApp-server-86c204098fd0ffbeded50372354488768b255156.ts → UserProfileApp-server-4b308db466a80bcacd190aa71f86cf4d2b6f2873.ts} +8 -5
  233. package/test/party/components/temp/{UserProfileContext-client-c97c077254210061b3c9ba561f681c0cf4f6167f.ts → UserProfileContext-client-7ef27199bd35b55b3dadd876174a2ef4b602b63f.ts} +5 -5
  234. package/test/party/components/temp/{UserProfileContext-server-2d32476b00448bdec6c1c45aac5087a5152c2471.ts → UserProfileContext-server-df958e4fc2de2242c556ffa61ddb58aa395de50c.ts} +4 -3
  235. package/test/party/components/temp/{UserProfileContextApp-client-05ce216919de6ffde56d1c2c39299173d9b611b3.ts → UserProfileContextApp-client-b3ef357f481dfb940e1c726690d57567fde2dc23.ts} +5 -6
  236. package/test/party/components/temp/{UserProfileContextApp-server-c970abaa8326db9a5efc3a5c64741743ae0dd1ca.ts → UserProfileContextApp-server-f8fe2b88db3d0dfa4dafd300006b25123cb8e3fb.ts} +8 -5
  237. package/test/props/components/Reactive.torp +2 -4
  238. package/test/props/components/output/Reactive-client.ts +4 -5
  239. package/test/props/components/output/Reactive-server.ts +12 -8
  240. package/test/props/components/temp/{Reactive-client-cf6e602b2f74fce8e9451b6c41c6f8ff8eab63a3.ts → Reactive-client-21a24e3b0a76140567db8a01975317c9c0e0ad5a.ts} +4 -5
  241. package/test/props/components/temp/{Reactive-server-206bcc8984bad12c5712661b77d000216cdfe66d.ts → Reactive-server-b6e37b5d3488ea74a260ca972906bfab30dde486.ts} +12 -8
  242. package/test/replace/components/Replace.torp +3 -5
  243. package/test/replace/components/output/Replace-client.ts +4 -5
  244. package/test/replace/components/output/Replace-server.ts +6 -5
  245. package/test/replace/components/temp/{Replace-client-2a9ee3430708b469fa31bbc6989eed5b2f22984d.ts → Replace-client-aee34e2e40c6f4380b61e9c7c8df9af1897f06cc.ts} +4 -5
  246. package/test/replace/components/temp/{Replace-server-9519943d193b681e1d7894a0d7952affdfb0660c.ts → Replace-server-3521251fa687ce42af3128d22b129fe1ec6ed411.ts} +6 -5
  247. package/test/slots/components/output/Article-server.ts +10 -9
  248. package/test/slots/components/output/Basic-server.ts +11 -8
  249. package/test/slots/components/output/Header-server.ts +7 -6
  250. package/test/slots/components/output/Let-server.ts +11 -8
  251. package/test/slots/components/output/List-server.ts +8 -7
  252. package/test/slots/components/output/Named-server.ts +14 -11
  253. package/test/slots/components/output/Unused-server.ts +8 -5
  254. package/test/slots/components/temp/{Article-server-b84141b05064f5ea1e4b535faafe459df0d875fb.ts → Article-server-50fa458663f115c0e80a3a2846de4607d8748ecb.ts} +10 -9
  255. package/test/slots/components/temp/{Basic-server-6b37594c9bf74e0c86a05b20213f69651e2cc937.ts → Basic-server-593e0ecbc8abbc90e8b06198698d244d110d97e2.ts} +11 -8
  256. package/test/slots/components/temp/{Header-server-d8e8ccb129d84478f0c4f8dc8ad1d2091188cc7b.ts → Header-server-d0f27afc4db322e605491e8f508e83f625e8dc38.ts} +7 -6
  257. package/test/slots/components/temp/{Let-server-8cad3b1199bec801bc3a1f2f3dbc20f2ef1e9741.ts → Let-server-f3c026e37c11628914c495083752d8cf285b2e85.ts} +11 -8
  258. package/test/slots/components/temp/{List-server-f4f63df4d19e15311da347284935a1bb530a8df4.ts → List-server-8d9c174fc4b3b232f3a9fd2f59843481f023d913.ts} +8 -7
  259. package/test/slots/components/temp/{Named-server-2aac48bb8c7300d1a8858917fe81edc17c6372fa.ts → Named-server-ac8d47db82d9a387c8baeee59b975bb810bad168.ts} +14 -11
  260. package/test/slots/components/temp/{Unused-server-6e832928d7db6c43c556e7bda8af34ac37c0d4c1.ts → Unused-server-1da99efc50ef70be0d9a0e5499353a17dc666936.ts} +8 -5
  261. package/test/special-component/components/output/BigTitle-server.ts +6 -5
  262. package/test/special-component/components/output/Component-server.ts +13 -10
  263. package/test/special-component/components/output/SmallTitle-server.ts +6 -5
  264. package/test/special-component/components/temp/{BigTitle-server-d8919a4c975e022c936584bd668917cb89aa8e20.ts → BigTitle-server-34af54c15cf575163c1ff8e63978cf5257f2347c.ts} +6 -5
  265. package/test/special-component/components/temp/{Component-server-14cd9beb57d6e833f75ab8c6624eb9841444ef63.ts → Component-server-ca4a2192477db4a32ad12f1a6a14d673717b0f7b.ts} +13 -10
  266. package/test/special-component/components/temp/{SmallTitle-server-0a9b5098e4dda96f8c1da30294d71b39997dd118.ts → SmallTitle-server-6c9aabb9139356397e04612b4dd9d849f871a280.ts} +6 -5
  267. package/test/special-element/components/output/Element-server.ts +4 -3
  268. package/test/special-element/components/temp/{Element-server-166d672256ef4635168de0090e490e48b569c7d6.ts → Element-server-011a942cc147900d8e074c084297d8e81f05aa27.ts} +4 -3
  269. package/test/special-head/components/Head.torp +3 -5
  270. package/test/special-head/components/output/Head-client.ts +2 -6
  271. package/test/special-head/components/output/Head-server.ts +4 -3
  272. package/test/special-head/components/temp/{Head-client-18616689a7d6f83ca076c9d825606b049de9d3ef.ts → Head-client-967d6ea24d46308af586c7553f4658412d94716c.ts} +2 -6
  273. package/test/special-head/components/temp/{Head-server-c0956653b544ff632e36da15d5f7623fa285953a.ts → Head-server-7cf8212c95197ed6320b47483524d8b1b3e5ae68.ts} +4 -3
  274. package/test/special-self/components/Self.torp +4 -6
  275. package/test/special-self/components/output/Self-client.ts +5 -6
  276. package/test/special-self/components/output/Self-server.ts +10 -7
  277. package/test/special-self/components/temp/{Self-client-43a0a90fac58867c88bf32221883e8da342a0295.ts → Self-client-883ca81e0e44df56f2290698e8d6b9955434a2ad.ts} +5 -6
  278. package/test/special-self/components/temp/{Self-server-b857c30c279a16dd81ad29567fb8abb9b2a0c239.ts → Self-server-69dac409fc984db7db97df8a30c5de6794f25655.ts} +10 -7
  279. package/test/style/components/output/Style-client.ts +1 -1
  280. package/test/style/components/output/Style-server.ts +5 -4
  281. package/test/style/components/temp/{Style-client-bc13f8dbb5f754e4eebb2473fc63a139ebf1ba92.ts → Style-client-ea018338497095f270308b2e73cfe6344721c6eb.ts} +1 -1
  282. package/test/style/components/temp/{Style-server-85720cb43e20ab000f98bc632c29454a51ae92d9.ts → Style-server-99ff9867ee067760a463a8282773b2eb09aa14f7.ts} +5 -4
  283. package/test/svg/components/output/Shape-server.ts +7 -6
  284. package/test/svg/components/temp/Shape-server-4ef7e80f09d3d4c930055d0a25184c48507e51de.ts +25 -0
  285. package/test/switch/components/Switch.torp +16 -18
  286. package/test/switch/components/output/Switch-client.ts +6 -8
  287. package/test/switch/components/output/Switch-server.ts +8 -7
  288. package/test/switch/components/temp/{Switch-client-30113fadf131c72e7c24160fa62068b651716896.ts → Switch-client-1482e2da8fe144d3e867dfad4618e0f364b91b49.ts} +6 -8
  289. package/test/switch/components/temp/{Switch-server-c1b5e1c657438ee3d8afdbf2166c5295cafc5604.ts → Switch-server-d709eb7a418752dd4203a8f824b78c5f308c8f47.ts} +8 -7
  290. package/test/text/components/Text.torp +5 -7
  291. package/test/text/components/output/Text-client.ts +4 -4
  292. package/test/text/components/output/Text-server.ts +4 -3
  293. package/test/text/components/temp/{Text-client-e335aae6d8aef389dfdbb5bee14e3dd3d41e86bd.ts → Text-client-ca2d5402358fba0df1db2353eed304b0dedb7971.ts} +4 -4
  294. package/test/text/components/temp/{Text-server-e37d33aa182f36461927d8ce36040bfd05e2f227.ts → Text-server-9df4606b85f044ea2b38660e799988461edacb27.ts} +4 -3
  295. package/test/watch-array/components/output/Array-server.ts +6 -5
  296. package/test/watch-array/components/output/ArrayEntries-server.ts +6 -5
  297. package/test/watch-array/components/output/ArrayIndexes-server.ts +6 -5
  298. package/test/watch-array/components/output/ArrayUnkeyed-server.ts +6 -5
  299. package/test/watch-array/components/temp/{Array-server-c907209008ac6177f614b62931a2bb1f1c3a04e1.ts → Array-server-48864ed3b67cae2bcedb216865776e44cc3a1dc2.ts} +6 -5
  300. package/test/watch-array/components/temp/{ArrayEntries-server-57c1ab0045fa4a02de95f69a65de6f54efe9850c.ts → ArrayEntries-server-401a989fd5f3a093d5d1a8ef1d4fd9d5107a6be3.ts} +6 -5
  301. package/test/watch-array/components/temp/{ArrayIndexes-server-f093878b94a37617e2e697a786caa680f75630a7.ts → ArrayIndexes-server-35c31a8a4597da68d39cf20bd6b90137695514de.ts} +6 -5
  302. package/test/watch-array/components/temp/{ArrayUnkeyed-server-c893fa024be07e5e7fce608c3ae456bdf2279dbe.ts → ArrayUnkeyed-server-19f195f0cf00760c520ac4c55aef474c8eae4c41.ts} +6 -5
  303. package/test/watch-object/components/Watched.torp +5 -7
  304. package/test/watch-object/components/output/Watched-client.ts +2 -2
  305. package/test/watch-object/components/output/Watched-server.ts +4 -3
  306. package/test/watch-object/components/temp/{Watched-client-d26e846bbeb8271ec5dc2a1ceb75b362af44d3bd.ts → Watched-client-ddba353c5a94f5a874e19d6d4cc6271a04e915c0.ts} +2 -2
  307. package/test/watch-object/components/temp/{Watched-server-312fca1e769d7594fc5bb6295ccf55b544dd2f4d.ts → Watched-server-e8e8c15b9fb5dda4051a289e9cd75d71078b9e95.ts} +4 -3
  308. package/dist/chunk-T6JGCJ5T.js +0 -45
  309. package/dist/chunk-T6JGCJ5T.js.map +0 -1
  310. package/src/render/getStyles.ts +0 -7
  311. package/src/render/isComment.ts +0 -3
  312. package/src/render/isText.ts +0 -3
  313. package/test/bench/components/temp/Bench-client-fca94b485c6263778751927240ab3ca4048d7a10.ts +0 -208
  314. package/test/class/components/temp/Class-server-c24c01d0d3a98169172aba453c183c4152705be9.ts +0 -40
  315. package/test/svg/components/temp/Shape-server-9951ff1dcc7aa0827f28d3f8d970813767115ae3.ts +0 -24
@@ -15,8 +15,9 @@ export default function IsAvailable(
15
15
  });
16
16
 
17
17
  /* User interface */
18
- let $output = "";
19
- $output += ` <div> <div>${t_fmt($state.isAvailable ? "Available" : "Not available")}</div> <input id="is-available" type="checkbox" checked="${$state.isAvailable || false}"> <label for="is-available">Is available</label> </div> `;
18
+ let t_body = "";
19
+ let t_head = "";
20
+ t_body += ` <div>${t_fmt($state.isAvailable ? "Available" : "Not available")}</div> <input id="is-available" type="checkbox" checked="${$state.isAvailable || false}"> <label for="is-available">Is available</label> `;
20
21
 
21
- return $output;
22
+ return { body: t_body, head: t_head };
22
23
  }
@@ -15,8 +15,9 @@ export default function Name(
15
15
  });
16
16
 
17
17
  /* User interface */
18
- let $output = "";
19
- $output += ` <h1>Hello ${t_fmt($state.name)}</h1> `;
18
+ let t_body = "";
19
+ let t_head = "";
20
+ t_body += ` <h1>Hello ${t_fmt($state.name)}</h1> `;
20
21
 
21
- return $output;
22
+ return { body: t_body, head: t_head };
22
23
  }
@@ -16,8 +16,9 @@ export default function NameUpdate(
16
16
  $state.name = "Jane"
17
17
 
18
18
  /* User interface */
19
- let $output = "";
20
- $output += ` <h1>Hello ${t_fmt($state.name)}</h1> `;
19
+ let t_body = "";
20
+ let t_head = "";
21
+ t_body += ` <h1>Hello ${t_fmt($state.name)}</h1> `;
21
22
 
22
- return $output;
23
+ return { body: t_body, head: t_head };
23
24
  }
@@ -20,8 +20,9 @@ export default function PageTitle(
20
20
  });
21
21
 
22
22
  /* User interface */
23
- let $output = "";
24
- $output += ` <p>Page title: ${t_fmt($state.pageTitle)}</p> `;
23
+ let t_body = "";
24
+ let t_head = "";
25
+ t_body += ` <p>Page title: ${t_fmt($state.pageTitle)}</p> `;
25
26
 
26
- return $output;
27
+ return { body: t_body, head: t_head };
27
28
  }
@@ -27,14 +27,14 @@ export default function PickPill(
27
27
  /* User interface */
28
28
  const t_fragments: DocumentFragment[] = [];
29
29
 
30
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <div>#</div> <input id="blue-pill" type="radio" value="blue"></input> <label for="blue-pill">Blue pill</label> <input id="red-pill" type="radio" value="red"></input> <label for="red-pill">Red pill</label> </div> `);
30
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div>#</div> <input id="blue-pill" type="radio" value="blue"></input> <label for="blue-pill">Blue pill</label> <input id="red-pill" type="radio" value="red"></input> <label for="red-pill">Red pill</label> `);
31
31
  // @ts-ignore
32
32
  const t_root_0 = t_root(t_fragment_0, true);
33
- const t_text_1 = t_child(t_next(t_child(t_next(t_root_0))));
34
- const t_input_1 = t_next(t_next(t_next(t_child(t_next(t_root_0))), true)) as HTMLInputElement;
33
+ const t_text_1 = t_child(t_next(t_root_0));
34
+ const t_input_1 = t_next(t_next(t_next(t_root_0), true)) as HTMLInputElement;
35
35
  const t_input_2 = t_next(t_next(t_next(t_next(t_input_1, true)), true)) as HTMLInputElement;
36
36
  // @ts-ignore
37
- const t_text_2 = t_next(t_next(t_root_0), true);
37
+ const t_text_2 = t_next(t_next(t_next(t_input_2, true)), true);
38
38
  $run(function setTextContent() {
39
39
  t_text_1.textContent = `Picked: ${t_fmt($state.picked)}`;
40
40
  });
@@ -16,8 +16,9 @@ export default function PickPill(
16
16
  });
17
17
 
18
18
  /* User interface */
19
- let $output = "";
20
- $output += ` <div> <div>Picked: ${t_fmt($state.picked)}</div> <input id="blue-pill" group="${t_attr($state.picked) || ""}" type="radio" value="blue"> <label for="blue-pill">Blue pill</label> <input id="red-pill" group="${t_attr($state.picked) || ""}" type="radio" value="red"> <label for="red-pill">Red pill</label> </div> `;
19
+ let t_body = "";
20
+ let t_head = "";
21
+ t_body += ` <div>Picked: ${t_fmt($state.picked)}</div> <input id="blue-pill" group="${t_attr($state.picked) || ""}" type="radio" value="blue"> <label for="blue-pill">Blue pill</label> <input id="red-pill" group="${t_attr($state.picked) || ""}" type="radio" value="red"> <label for="red-pill">Red pill</label> `;
21
22
 
22
- return $output;
23
+ return { body: t_body, head: t_head };
23
24
  }
@@ -24,8 +24,9 @@ export default function Time(
24
24
  });
25
25
 
26
26
  /* User interface */
27
- let $output = "";
28
- $output += ` <p>Current time: ${t_fmt($state.time)}</p> `;
27
+ let t_body = "";
28
+ let t_head = "";
29
+ t_body += ` <p>Current time: ${t_fmt($state.time)}</p> `;
29
30
 
30
- return $output;
31
+ return { body: t_body, head: t_head };
31
32
  }
@@ -39,10 +39,10 @@ export default function TrafficLight(
39
39
  /* User interface */
40
40
  const t_fragments: DocumentFragment[] = [];
41
41
 
42
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <button>Next light</button> <p>#</p> <p> You must <!> </p> </div> `);
42
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <button>Next light</button> <p>#</p> <p> You must <!> </p> `);
43
43
  // @ts-ignore
44
44
  const t_root_0 = t_root(t_fragment_0, true);
45
- const t_button_1 = t_next(t_child(t_next(t_root_0))) as HTMLElement;
45
+ const t_button_1 = t_next(t_root_0) as HTMLElement;
46
46
  const t_text_1 = t_child(t_next(t_next(t_button_1, true)));
47
47
  const t_if_parent_1 = t_next(t_next(t_next(t_next(t_button_1, true)), true)) as HTMLElement;
48
48
  let t_if_anchor_1 = t_anchor(t_next(t_child(t_next(t_next(t_next(t_next(t_button_1, true)), true))))) as HTMLElement;
@@ -90,7 +90,7 @@ export default function TrafficLight(
90
90
  });
91
91
 
92
92
  // @ts-ignore
93
- const t_text_5 = t_next(t_next(t_root_0), true);
93
+ const t_text_5 = t_next(t_next(t_next(t_next(t_next(t_button_1, true)), true)), true);
94
94
  t_event(t_button_1, "click", nextLight);
95
95
  $run(function setTextContent() {
96
96
  t_text_1.textContent = `Light is: ${t_fmt($state.light)}`;
@@ -23,18 +23,19 @@ export default function TrafficLight(
23
23
  }
24
24
 
25
25
  /* User interface */
26
- let $output = "";
27
- $output += ` <div> <button>Next light</button> <p>Light is: ${t_fmt($state.light)}</p> <p> You must <![>`;
26
+ let t_body = "";
27
+ let t_head = "";
28
+ t_body += ` <button>Next light</button> <p>Light is: ${t_fmt($state.light)}</p> <p> You must <![>`;
28
29
  if ($state.light === "red") {
29
- $output += `<!^> <span>STOP</span> `;
30
+ t_body += `<!^> <span>STOP</span> `;
30
31
  }
31
32
  else if ($state.light === "orange") {
32
- $output += `<!^> <span>SLOW DOWN</span> `;
33
+ t_body += `<!^> <span>SLOW DOWN</span> `;
33
34
  }
34
35
  else if ($state.light === "green") {
35
- $output += `<!^> <span>GO</span> `;
36
+ t_body += `<!^> <span>GO</span> `;
36
37
  }
37
- $output += `<!]><!> </p> </div> `;
38
+ t_body += `<!]><!> </p> `;
38
39
 
39
- return $output;
40
+ return { body: t_body, head: t_head };
40
41
  }
@@ -27,15 +27,15 @@ export default function UserProfile(
27
27
  /* User interface */
28
28
  const t_fragments: DocumentFragment[] = [];
29
29
 
30
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <p>#</p> <p>#</p> <p>#</p> <p>#</p> </div> `);
30
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <p>#</p> <p>#</p> <p>#</p> <p>#</p> `);
31
31
  // @ts-ignore
32
32
  const t_root_0 = t_root(t_fragment_0, true);
33
- const t_text_1 = t_child(t_next(t_child(t_next(t_root_0))));
34
- const t_text_2 = t_child(t_next(t_next(t_next(t_child(t_next(t_root_0))), true)));
35
- const t_text_3 = t_child(t_next(t_next(t_next(t_next(t_next(t_child(t_next(t_root_0))), true)), true)));
36
- const t_text_4 = t_child(t_next(t_next(t_next(t_next(t_next(t_next(t_next(t_child(t_next(t_root_0))), true)), true)), true)));
33
+ const t_text_1 = t_child(t_next(t_root_0));
34
+ const t_text_2 = t_child(t_next(t_next(t_next(t_root_0), true)));
35
+ const t_text_3 = t_child(t_next(t_next(t_next(t_next(t_next(t_root_0), true)), true)));
36
+ const t_text_4 = t_child(t_next(t_next(t_next(t_next(t_next(t_next(t_next(t_root_0), true)), true)), true)));
37
37
  // @ts-ignore
38
- const t_text_5 = t_next(t_next(t_root_0), true);
38
+ const t_text_5 = t_next(t_next(t_next(t_next(t_next(t_next(t_next(t_next(t_root_0), true)), true)), true)), true);
39
39
  $run(function setTextContent() {
40
40
  t_text_1.textContent = `My name is ${t_fmt($props.name)}!`;
41
41
  });
@@ -16,8 +16,9 @@ export default function UserProfile(
16
16
  $props ??= {};
17
17
 
18
18
  /* User interface */
19
- let $output = "";
20
- $output += ` <div> <p>My name is ${t_fmt($props.name)}!</p> <p>My age is ${t_fmt($props.age)}!</p> <p>My favourite colors are ${t_fmt($props.favouriteColors.join(", "))}!</p> <p>I am ${t_fmt($props.isAvailable ? "available" : "not available")}</p> </div> `;
19
+ let t_body = "";
20
+ let t_head = "";
21
+ t_body += ` <p>My name is ${t_fmt($props.name)}!</p> <p>My age is ${t_fmt($props.age)}!</p> <p>My favourite colors are ${t_fmt($props.favouriteColors.join(", "))}!</p> <p>I am ${t_fmt($props.isAvailable ? "available" : "not available")}</p> `;
21
22
 
22
- return $output;
23
+ return { body: t_body, head: t_head };
23
24
  }
@@ -12,16 +12,19 @@ export default function UserProfileApp(
12
12
  ) {
13
13
 
14
14
  /* User interface */
15
- let $output = "";
16
- $output += ` <![>`;
15
+ let t_body = "";
16
+ let t_head = "";
17
+ t_body += ` <![>`;
17
18
  const t_props_1: any = {};
18
19
  t_props_1["name"] = "John";
19
20
  t_props_1["age"] = 20;
20
21
  t_props_1["favouriteColors"] = ["green", "blue", "red"];
21
22
  t_props_1["isAvailable"] = true;
22
23
 
23
- $output += UserProfile(t_props_1, $context)
24
- $output += `<!]><!> `;
24
+ const t_comp_1 = UserProfile(t_props_1, $context);
25
+ t_body += t_comp_1.body;
26
+ t_head += t_comp_1.head;
27
+ t_body += `<!]><!> `;
25
28
 
26
- return $output;
29
+ return { body: t_body, head: t_head };
27
30
  }
@@ -25,14 +25,14 @@ export default function UserProfileContext(
25
25
  /* User interface */
26
26
  const t_fragments: DocumentFragment[] = [];
27
27
 
28
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <h2>My Profile</h2> <p>#</p> <p>#</p> <button> Update username to Jane </button> </div> `);
28
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <h2>My Profile</h2> <p>#</p> <p>#</p> <button> Update username to Jane </button> `);
29
29
  // @ts-ignore
30
30
  const t_root_0 = t_root(t_fragment_0, true);
31
- const t_text_1 = t_child(t_next(t_next(t_next(t_child(t_next(t_root_0))), true)));
32
- const t_text_2 = t_child(t_next(t_next(t_next(t_next(t_next(t_child(t_next(t_root_0))), true)), true)));
33
- const t_button_1 = t_next(t_next(t_next(t_next(t_next(t_next(t_next(t_child(t_next(t_root_0))), true)), true)), true)) as HTMLElement;
31
+ const t_text_1 = t_child(t_next(t_next(t_next(t_root_0), true)));
32
+ const t_text_2 = t_child(t_next(t_next(t_next(t_next(t_next(t_root_0), true)), true)));
33
+ const t_button_1 = t_next(t_next(t_next(t_next(t_next(t_next(t_next(t_root_0), true)), true)), true)) as HTMLElement;
34
34
  // @ts-ignore
35
- const t_text_3 = t_next(t_next(t_root_0), true);
35
+ const t_text_3 = t_next(t_button_1, true);
36
36
  $run(function setTextContent() {
37
37
  t_text_1.textContent = `Username: ${t_fmt($context.user.username)}`;
38
38
  });
@@ -13,8 +13,9 @@ export default function UserProfileContext(
13
13
  $context.user = $watch($context.user);
14
14
 
15
15
  /* User interface */
16
- let $output = "";
17
- $output += ` <div> <h2>My Profile</h2> <p>Username: ${t_fmt($context.user.username)}</p> <p>Email: ${t_fmt($context.user.email)}</p> <button> Update username to Jane </button> </div> `;
16
+ let t_body = "";
17
+ let t_head = "";
18
+ t_body += ` <h2>My Profile</h2> <p>Username: ${t_fmt($context.user.username)}</p> <p>Email: ${t_fmt($context.user.email)}</p> <button> Update username to Jane </button> `;
18
19
 
19
- return $output;
20
+ return { body: t_body, head: t_head };
20
21
  }
@@ -35,18 +35,17 @@ export default function UserProfileContextApp(
35
35
  /* User interface */
36
36
  const t_fragments: DocumentFragment[] = [];
37
37
 
38
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <h1>#</h1> <!> </div> `);
38
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <h1>#</h1> <!> `);
39
39
  // @ts-ignore
40
40
  const t_root_0 = t_root(t_fragment_0, true);
41
- const t_text_1 = t_child(t_next(t_child(t_next(t_root_0))));
42
- const t_comp_parent_1 = t_next(t_root_0) as HTMLElement;
43
- let t_comp_anchor_1 = t_anchor(t_next(t_next(t_next(t_child(t_comp_parent_1)), true))) as HTMLElement;
41
+ const t_text_1 = t_child(t_next(t_root_0));
42
+ let t_comp_anchor_1 = t_anchor(t_next(t_next(t_next(t_root_0), true))) as HTMLElement;
44
43
 
45
44
  /* @component */
46
- UserProfileContext(t_comp_parent_1, t_comp_anchor_1, undefined, $context);
45
+ UserProfileContext(t_fragment_0, t_comp_anchor_1, undefined, $context);
47
46
 
48
47
  // @ts-ignore
49
- const t_text_2 = t_next(t_comp_parent_1, true);
48
+ const t_text_2 = t_next(t_comp_anchor_1, true);
50
49
  $run(function setTextContent() {
51
50
  t_text_1.textContent = `Welcome back, ${t_fmt($user.username)}`;
52
51
  });
@@ -23,11 +23,14 @@ export default function UserProfileContextApp(
23
23
  $context.user = $user;
24
24
 
25
25
  /* User interface */
26
- let $output = "";
27
- $output += ` <div> <h1>Welcome back, ${t_fmt($user.username)}</h1> <![>`;
26
+ let t_body = "";
27
+ let t_head = "";
28
+ t_body += ` <h1>Welcome back, ${t_fmt($user.username)}</h1> <![>`;
28
29
 
29
- $output += UserProfileContext(undefined, $context)
30
- $output += `<!]><!> </div> `;
30
+ const t_comp_1 = UserProfileContext(undefined, $context);
31
+ t_body += t_comp_1.body;
32
+ t_head += t_comp_1.head;
33
+ t_body += `<!]><!> `;
31
34
 
32
- return $output;
35
+ return { body: t_body, head: t_head };
33
36
  }
@@ -2,10 +2,8 @@ export default function Reactive($props: any) {
2
2
  let $state = $watch({ text: "before" })
3
3
 
4
4
  @render {
5
- <div>
6
- <button onclick={() => $state.text = "after"}>Update text</button>
7
- <Child text={$state.text} />
8
- </div>
5
+ <button onclick={() => $state.text = "after"}>Update text</button>
6
+ <Child text={$state.text} />
9
7
  }
10
8
  }
11
9
 
@@ -25,11 +25,10 @@ export default function Reactive(
25
25
  /* User interface */
26
26
  const t_fragments: DocumentFragment[] = [];
27
27
 
28
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <button>Update text</button> <!> </div> `);
28
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <button>Update text</button> <!> `);
29
29
  // @ts-ignore
30
30
  const t_root_0 = t_root(t_fragment_0, true);
31
- const t_button_1 = t_next(t_child(t_next(t_root_0))) as HTMLElement;
32
- const t_comp_parent_1 = t_next(t_root_0) as HTMLElement;
31
+ const t_button_1 = t_next(t_root_0) as HTMLElement;
33
32
  let t_comp_anchor_1 = t_anchor(t_next(t_next(t_button_1, true))) as HTMLElement;
34
33
 
35
34
  /* @component */
@@ -37,10 +36,10 @@ export default function Reactive(
37
36
  $run(function setProp() {
38
37
  t_props_1["text"] = $state.text;
39
38
  });
40
- Child(t_comp_parent_1, t_comp_anchor_1, t_props_1, $context);
39
+ Child(t_fragment_0, t_comp_anchor_1, t_props_1, $context);
41
40
 
42
41
  // @ts-ignore
43
- const t_text_1 = t_next(t_comp_parent_1, true);
42
+ const t_text_1 = t_next(t_comp_anchor_1, true);
44
43
  t_event(t_button_1, "click", () => $state.text = "after");
45
44
  t_add_fragment(t_fragment_0, $parent, $anchor, t_text_1);
46
45
  t_next(t_text_1);
@@ -12,15 +12,18 @@ export default function Reactive(
12
12
  let $state = $watch({ text: "before" })
13
13
 
14
14
  /* User interface */
15
- let $output = "";
16
- $output += ` <div> <button>Update text</button> <![>`;
15
+ let t_body = "";
16
+ let t_head = "";
17
+ t_body += ` <button>Update text</button> <![>`;
17
18
  const t_props_1: any = {};
18
19
  t_props_1["text"] = $state.text;
19
20
 
20
- $output += Child(t_props_1, $context)
21
- $output += `<!]><!> </div> `;
21
+ const t_comp_1 = Child(t_props_1, $context);
22
+ t_body += t_comp_1.body;
23
+ t_head += t_comp_1.head;
24
+ t_body += `<!]><!> `;
22
25
 
23
- return $output;
26
+ return { body: t_body, head: t_head };
24
27
  }
25
28
 
26
29
  function Child(
@@ -33,8 +36,9 @@ function Child(
33
36
  $props ??= {};
34
37
 
35
38
  /* User interface */
36
- let $output = "";
37
- $output += ` <p> ${t_fmt($props.text)} </p> `;
39
+ let t_body = "";
40
+ let t_head = "";
41
+ t_body += ` <p> ${t_fmt($props.text)} </p> `;
38
42
 
39
- return $output;
43
+ return { body: t_body, head: t_head };
40
44
  }
@@ -25,11 +25,10 @@ export default function Reactive(
25
25
  /* User interface */
26
26
  const t_fragments: DocumentFragment[] = [];
27
27
 
28
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <button>Update text</button> <!> </div> `);
28
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <button>Update text</button> <!> `);
29
29
  // @ts-ignore
30
30
  const t_root_0 = t_root(t_fragment_0, true);
31
- const t_button_1 = t_next(t_child(t_next(t_root_0))) as HTMLElement;
32
- const t_comp_parent_1 = t_next(t_root_0) as HTMLElement;
31
+ const t_button_1 = t_next(t_root_0) as HTMLElement;
33
32
  let t_comp_anchor_1 = t_anchor(t_next(t_next(t_button_1, true))) as HTMLElement;
34
33
 
35
34
  /* @component */
@@ -37,10 +36,10 @@ export default function Reactive(
37
36
  $run(function setProp() {
38
37
  t_props_1["text"] = $state.text;
39
38
  });
40
- Child(t_comp_parent_1, t_comp_anchor_1, t_props_1, $context);
39
+ Child(t_fragment_0, t_comp_anchor_1, t_props_1, $context);
41
40
 
42
41
  // @ts-ignore
43
- const t_text_1 = t_next(t_comp_parent_1, true);
42
+ const t_text_1 = t_next(t_comp_anchor_1, true);
44
43
  t_event(t_button_1, "click", () => $state.text = "after");
45
44
  t_add_fragment(t_fragment_0, $parent, $anchor, t_text_1);
46
45
  t_next(t_text_1);
@@ -12,15 +12,18 @@ export default function Reactive(
12
12
  let $state = $watch({ text: "before" })
13
13
 
14
14
  /* User interface */
15
- let $output = "";
16
- $output += ` <div> <button>Update text</button> <![>`;
15
+ let t_body = "";
16
+ let t_head = "";
17
+ t_body += ` <button>Update text</button> <![>`;
17
18
  const t_props_1: any = {};
18
19
  t_props_1["text"] = $state.text;
19
20
 
20
- $output += Child(t_props_1, $context)
21
- $output += `<!]><!> </div> `;
21
+ const t_comp_1 = Child(t_props_1, $context);
22
+ t_body += t_comp_1.body;
23
+ t_head += t_comp_1.head;
24
+ t_body += `<!]><!> `;
22
25
 
23
- return $output;
26
+ return { body: t_body, head: t_head };
24
27
  }
25
28
 
26
29
  function Child(
@@ -33,8 +36,9 @@ function Child(
33
36
  $props ??= {};
34
37
 
35
38
  /* User interface */
36
- let $output = "";
37
- $output += ` <p> ${t_fmt($props.text)} </p> `;
39
+ let t_body = "";
40
+ let t_head = "";
41
+ t_body += ` <p> ${t_fmt($props.text)} </p> `;
38
42
 
39
- return $output;
43
+ return { body: t_body, head: t_head };
40
44
  }
@@ -2,10 +2,8 @@ export default function Replace($props: { name: string}) {
2
2
  let counter = 0;
3
3
 
4
4
  @render {
5
- <div>
6
- @replace ($props.name) {
7
- <p>The replace count is {counter++}.</p>
8
- }
9
- </div>
5
+ @replace ($props.name) {
6
+ <p>The replace count is {counter++}.</p>
7
+ }
10
8
  }
11
9
  }
@@ -28,11 +28,10 @@ export default function Replace(
28
28
  /* User interface */
29
29
  const t_fragments: DocumentFragment[] = [];
30
30
 
31
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <!> </div> `);
31
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <!> `);
32
32
  // @ts-ignore
33
33
  const t_root_0 = t_root(t_fragment_0, true);
34
- const t_replace_parent_1 = t_next(t_root_0) as HTMLElement;
35
- let t_replace_anchor_1 = t_anchor(t_next(t_child(t_replace_parent_1))) as HTMLElement;
34
+ let t_replace_anchor_1 = t_anchor(t_next(t_root_0)) as HTMLElement;
36
35
 
37
36
  /* @replace */
38
37
  const t_replace_range_1 = t_range();
@@ -48,13 +47,13 @@ export default function Replace(
48
47
  $run(function setTextContent() {
49
48
  t_text_1.textContent = `The replace count is ${t_fmt(counter++)}.`;
50
49
  });
51
- t_add_fragment(t_fragment_1, t_replace_parent_1, t_before, t_text_2);
50
+ t_add_fragment(t_fragment_1, t_fragment_0, t_before, t_text_2);
52
51
  t_next(t_text_2);
53
52
  });
54
53
  });
55
54
 
56
55
  // @ts-ignore
57
- const t_text_3 = t_next(t_replace_parent_1, true);
56
+ const t_text_3 = t_next(t_replace_anchor_1, true);
58
57
  t_add_fragment(t_fragment_0, $parent, $anchor, t_text_3);
59
58
  t_next(t_text_3);
60
59
 
@@ -12,11 +12,12 @@ export default function Replace(
12
12
  let counter = 0;
13
13
 
14
14
  /* User interface */
15
- let $output = "";
16
- $output += ` <div> <![>`;
15
+ let t_body = "";
16
+ let t_head = "";
17
+ t_body += ` <![>`;
17
18
  $props.name;
18
- $output += ` <p>The replace count is ${t_fmt(counter++)}.</p> `;
19
- $output += `<!]><!> </div> `;
19
+ t_body += ` <p>The replace count is ${t_fmt(counter++)}.</p> `;
20
+ t_body += `<!]><!> `;
20
21
 
21
- return $output;
22
+ return { body: t_body, head: t_head };
22
23
  }
@@ -28,11 +28,10 @@ export default function Replace(
28
28
  /* User interface */
29
29
  const t_fragments: DocumentFragment[] = [];
30
30
 
31
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <!> </div> `);
31
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <!> `);
32
32
  // @ts-ignore
33
33
  const t_root_0 = t_root(t_fragment_0, true);
34
- const t_replace_parent_1 = t_next(t_root_0) as HTMLElement;
35
- let t_replace_anchor_1 = t_anchor(t_next(t_child(t_replace_parent_1))) as HTMLElement;
34
+ let t_replace_anchor_1 = t_anchor(t_next(t_root_0)) as HTMLElement;
36
35
 
37
36
  /* @replace */
38
37
  const t_replace_range_1 = t_range();
@@ -48,13 +47,13 @@ export default function Replace(
48
47
  $run(function setTextContent() {
49
48
  t_text_1.textContent = `The replace count is ${t_fmt(counter++)}.`;
50
49
  });
51
- t_add_fragment(t_fragment_1, t_replace_parent_1, t_before, t_text_2);
50
+ t_add_fragment(t_fragment_1, t_fragment_0, t_before, t_text_2);
52
51
  t_next(t_text_2);
53
52
  });
54
53
  });
55
54
 
56
55
  // @ts-ignore
57
- const t_text_3 = t_next(t_replace_parent_1, true);
56
+ const t_text_3 = t_next(t_replace_anchor_1, true);
58
57
  t_add_fragment(t_fragment_0, $parent, $anchor, t_text_3);
59
58
  t_next(t_text_3);
60
59
 
@@ -12,11 +12,12 @@ export default function Replace(
12
12
  let counter = 0;
13
13
 
14
14
  /* User interface */
15
- let $output = "";
16
- $output += ` <div> <![>`;
15
+ let t_body = "";
16
+ let t_head = "";
17
+ t_body += ` <![>`;
17
18
  $props.name;
18
- $output += ` <p>The replace count is ${t_fmt(counter++)}.</p> `;
19
- $output += `<!]><!> </div> `;
19
+ t_body += ` <p>The replace count is ${t_fmt(counter++)}.</p> `;
20
+ t_body += `<!]><!> `;
20
21
 
21
- return $output;
22
+ return { body: t_body, head: t_head };
22
23
  }
@@ -9,20 +9,21 @@ export default function Article(
9
9
  ) {
10
10
 
11
11
  /* User interface */
12
- let $output = "";
13
- $output += ` <section> <h2> <![>`;
12
+ let t_body = "";
13
+ let t_head = "";
14
+ t_body += ` <section> <h2> <![>`;
14
15
  if ($slots && $slots["header"]) {
15
- $output += $slots["header"](undefined, $context);
16
+ t_body += $slots["header"](undefined, $context);
16
17
  }
17
- $output += `<!]><!> </h2> <![>`;
18
+ t_body += `<!]><!> </h2> <![>`;
18
19
  if ($slots && $slots["_"]) {
19
- $output += $slots["_"](undefined, $context);
20
+ t_body += $slots["_"](undefined, $context);
20
21
  }
21
- $output += `<!]><!> <![>`;
22
+ t_body += `<!]><!> <![>`;
22
23
  if ($slots && $slots["footer"]) {
23
- $output += $slots["footer"](undefined, $context);
24
+ t_body += $slots["footer"](undefined, $context);
24
25
  }
25
- $output += `<!]><!> </section> `;
26
+ t_body += `<!]><!> </section> `;
26
27
 
27
- return $output;
28
+ return { body: t_body, head: t_head };
28
29
  }
@@ -12,8 +12,9 @@ export default function Basic(
12
12
  ) {
13
13
 
14
14
  /* User interface */
15
- let $output = "";
16
- $output += ` <![>`;
15
+ let t_body = "";
16
+ let t_head = "";
17
+ t_body += ` <![>`;
17
18
  const t_slots_1: Record<string, ServerSlotRender> = {};
18
19
  t_slots_1["_"] = (
19
20
  // @ts-ignore
@@ -21,13 +22,15 @@ export default function Basic(
21
22
  // @ts-ignore
22
23
  $context?: Record<PropertyKey, any>
23
24
  ) => {
24
- let $output = "";
25
- $output += ` Basic stuff `;
26
- return $output;
25
+ let t_body = "";
26
+ t_body += ` Basic stuff `;
27
+ return t_body;
27
28
  }
28
29
 
29
- $output += Header(undefined, $context, t_slots_1)
30
- $output += `<!]><!> `;
30
+ const t_comp_1 = Header(undefined, $context, t_slots_1);
31
+ t_body += t_comp_1.body;
32
+ t_head += t_comp_1.head;
33
+ t_body += `<!]><!> `;
31
34
 
32
- return $output;
35
+ return { body: t_body, head: t_head };
33
36
  }