@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
@@ -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
  }
@@ -1,7 +1,6 @@
1
1
  import $watch from "../../../../src/render/$watch";
2
2
  import { type SlotRender } from "../../../../src/types/SlotRender";
3
3
  import t_add_fragment from "../../../../src/render/addFragment";
4
- import t_child from "../../../../src/render/nodeChild";
5
4
  import t_event from "../../../../src/render/addEvent";
6
5
  import t_fragment from "../../../../src/render/getFragment";
7
6
  import t_next from "../../../../src/render/nodeNext";
@@ -21,13 +20,13 @@ export default function AnswerButton(
21
20
  /* User interface */
22
21
  const t_fragments: DocumentFragment[] = [];
23
22
 
24
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <button>YES</button> <button>NO</button> </div> `);
23
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <button>YES</button> <button>NO</button> `);
25
24
  // @ts-ignore
26
25
  const t_root_0 = t_root(t_fragment_0, true);
27
- const t_button_1 = t_next(t_child(t_next(t_root_0))) as HTMLElement;
26
+ const t_button_1 = t_next(t_root_0) as HTMLElement;
28
27
  const t_button_2 = t_next(t_next(t_button_1, true)) as HTMLElement;
29
28
  // @ts-ignore
30
- const t_text_1 = t_next(t_next(t_root_0), true);
29
+ const t_text_1 = t_next(t_button_2, true);
31
30
  t_event(t_button_1, "click", $props.onYes);
32
31
  t_event(t_button_2, "click", $props.onNo);
33
32
  t_add_fragment(t_fragment_0, $parent, $anchor, t_text_1);
@@ -10,8 +10,9 @@ export default function AnswerButton(
10
10
  $props ??= {};
11
11
 
12
12
  /* User interface */
13
- let $output = "";
14
- $output += ` <div> <button>YES</button> <button>NO</button> </div> `;
13
+ let t_body = "";
14
+ let t_head = "";
15
+ t_body += ` <button>YES</button> <button>NO</button> `;
15
16
 
16
- return $output;
17
+ return { body: t_body, head: t_head };
17
18
  }
@@ -37,11 +37,10 @@ export default function AnswerButtonApp(
37
37
  /* User interface */
38
38
  const t_fragments: DocumentFragment[] = [];
39
39
 
40
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <p>Are you happy?</p> <!> <p style="font-size: 50px;">#</p> </div> `);
40
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <p>Are you happy?</p> <!> <p style="font-size: 50px;">#</p> `);
41
41
  // @ts-ignore
42
42
  const t_root_0 = t_root(t_fragment_0, true);
43
- const t_comp_parent_1 = t_next(t_root_0) as HTMLElement;
44
- let t_comp_anchor_1 = t_anchor(t_next(t_next(t_next(t_child(t_comp_parent_1)), true))) as HTMLElement;
43
+ let t_comp_anchor_1 = t_anchor(t_next(t_next(t_next(t_root_0), true))) as HTMLElement;
45
44
 
46
45
  /* @component */
47
46
  const t_props_1: any = $watch({});
@@ -51,11 +50,11 @@ export default function AnswerButtonApp(
51
50
  $run(function setProp() {
52
51
  t_props_1["onNo"] = onAnswerNo;
53
52
  });
54
- AnswerButton(t_comp_parent_1, t_comp_anchor_1, t_props_1, $context);
53
+ AnswerButton(t_fragment_0, t_comp_anchor_1, t_props_1, $context);
55
54
 
56
55
  const t_text_1 = t_child(t_next(t_next(t_comp_anchor_1, true)));
57
56
  // @ts-ignore
58
- const t_text_2 = t_next(t_comp_parent_1, true);
57
+ const t_text_2 = t_next(t_next(t_next(t_comp_anchor_1, true)), true);
59
58
  $run(function setTextContent() {
60
59
  t_text_1.textContent = t_fmt($state.isHappy ? "😀" : "😥");
61
60
  });
@@ -25,14 +25,17 @@ export default function AnswerButtonApp(
25
25
  }
26
26
 
27
27
  /* User interface */
28
- let $output = "";
29
- $output += ` <div> <p>Are you happy?</p> <![>`;
28
+ let t_body = "";
29
+ let t_head = "";
30
+ t_body += ` <p>Are you happy?</p> <![>`;
30
31
  const t_props_1: any = {};
31
32
  t_props_1["onYes"] = onAnswerYes;
32
33
  t_props_1["onNo"] = onAnswerNo;
33
34
 
34
- $output += AnswerButton(t_props_1, $context)
35
- $output += `<!]><!> <p style="font-size: 50px;">${t_fmt($state.isHappy ? "😀" : "😥")}</p> </div> `;
35
+ const t_comp_1 = AnswerButton(t_props_1, $context);
36
+ t_body += t_comp_1.body;
37
+ t_head += t_comp_1.head;
38
+ t_body += `<!]><!> <p style="font-size: 50px;">${t_fmt($state.isHappy ? "😀" : "😥")}</p> `;
36
39
 
37
- return $output;
40
+ return { body: t_body, head: t_head };
38
41
  }
@@ -42,11 +42,11 @@ export default function ColorSelect(
42
42
  /* User interface */
43
43
  const t_fragments: DocumentFragment[] = [];
44
44
 
45
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <div>#</div> <select> <!> </select> </div> `);
45
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div>#</div> <select> <!> </select> `);
46
46
  // @ts-ignore
47
47
  const t_root_0 = t_root(t_fragment_0, true);
48
- const t_text_1 = t_child(t_next(t_child(t_next(t_root_0))));
49
- const t_select_1 = t_next(t_next(t_next(t_child(t_next(t_root_0))), true)) as HTMLElement;
48
+ const t_text_1 = t_child(t_next(t_root_0));
49
+ const t_select_1 = t_next(t_next(t_next(t_root_0), true)) as HTMLElement;
50
50
  let t_for_anchor_1 = t_anchor(t_next(t_child(t_select_1))) as HTMLElement;
51
51
 
52
52
  /* @for */
@@ -90,7 +90,7 @@ export default function ColorSelect(
90
90
  );
91
91
 
92
92
  // @ts-ignore
93
- const t_text_4 = t_next(t_next(t_root_0), true);
93
+ const t_text_4 = t_next(t_select_1, true);
94
94
  $run(function setTextContent() {
95
95
  t_text_1.textContent = `Selected: ${t_fmt(colors[$state.selectedColorId - 1].text)}`;
96
96
  });
@@ -23,12 +23,13 @@ export default function ColorSelect(
23
23
  ];
24
24
 
25
25
  /* User interface */
26
- let $output = "";
27
- $output += ` <div> <div>Selected: ${t_fmt(colors[$state.selectedColorId - 1].text)}</div> <select value="${t_attr($state.selectedColorId) || ""}"> <![>`;
26
+ let t_body = "";
27
+ let t_head = "";
28
+ t_body += ` <div>Selected: ${t_fmt(colors[$state.selectedColorId - 1].text)}</div> <select value="${t_attr($state.selectedColorId) || ""}"> <![>`;
28
29
  for (let color of colors) {
29
- $output += `<!^> <option ${color.id ? `value="${t_attr(color.id)}"` : ''} ${color.isDisabled ? `disabled="${t_attr(color.isDisabled)}"` : ''}> ${t_fmt(color.text)} </option> `;
30
+ t_body += `<!^> <option ${color.id ? `value="${t_attr(color.id)}"` : ''} ${color.isDisabled ? `disabled="${t_attr(color.isDisabled)}"` : ''}> ${t_fmt(color.text)} </option> `;
30
31
  }
31
- $output += `<!]><!> </select> </div> `;
32
+ t_body += `<!]><!> </select> `;
32
33
 
33
- return $output;
34
+ return { body: t_body, head: t_head };
34
35
  }
@@ -12,12 +12,13 @@ export default function Colors(
12
12
  const colors = ["red", "green", "blue"];
13
13
 
14
14
  /* User interface */
15
- let $output = "";
16
- $output += ` <ul> <![>`;
15
+ let t_body = "";
16
+ let t_head = "";
17
+ t_body += ` <ul> <![>`;
17
18
  for (let color of colors) {
18
- $output += `<!^> <li>${t_fmt(color)}</li> `;
19
+ t_body += `<!^> <li>${t_fmt(color)}</li> `;
19
20
  }
20
- $output += `<!]><!> </ul> `;
21
+ t_body += `<!]><!> </ul> `;
21
22
 
22
- return $output;
23
+ return { body: t_body, head: t_head };
23
24
  }
@@ -31,13 +31,13 @@ export default function Counter(
31
31
  /* User interface */
32
32
  const t_fragments: DocumentFragment[] = [];
33
33
 
34
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <p>#</p> <button>+1</button> </div> `);
34
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <p>#</p> <button>+1</button> `);
35
35
  // @ts-ignore
36
36
  const t_root_0 = t_root(t_fragment_0, true);
37
- const t_text_1 = t_child(t_next(t_child(t_next(t_root_0))));
38
- const t_button_1 = t_next(t_next(t_next(t_child(t_next(t_root_0))), true)) as HTMLElement;
37
+ const t_text_1 = t_child(t_next(t_root_0));
38
+ const t_button_1 = t_next(t_next(t_next(t_root_0), true)) as HTMLElement;
39
39
  // @ts-ignore
40
- const t_text_2 = t_next(t_next(t_root_0), true);
40
+ const t_text_2 = t_next(t_button_1, true);
41
41
  $run(function setTextContent() {
42
42
  t_text_1.textContent = `Counter: ${t_fmt($state.count)}`;
43
43
  });
@@ -19,8 +19,9 @@ export default function Counter(
19
19
  }
20
20
 
21
21
  /* User interface */
22
- let $output = "";
23
- $output += ` <div> <p>Counter: ${t_fmt($state.count)}</p> <button>+1</button> </div> `;
22
+ let t_body = "";
23
+ let t_head = "";
24
+ t_body += ` <p>Counter: ${t_fmt($state.count)}</p> <button>+1</button> `;
24
25
 
25
- return $output;
26
+ return { body: t_body, head: t_head };
26
27
  }
@@ -18,11 +18,11 @@ export default function CssStyle(
18
18
  /* User interface */
19
19
  const t_fragments: DocumentFragment[] = [];
20
20
 
21
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <h1 class="title torp-1ew8jkr">I am red</h1> <button style="font-size: 10rem;">I am a button</button> </div> `);
21
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <h1 class="title torp-1ew8jkr">I am red</h1> <button style="font-size: 10rem;">I am a button</button> `);
22
22
  // @ts-ignore
23
23
  const t_root_0 = t_root(t_fragment_0, true);
24
24
  // @ts-ignore
25
- const t_text_1 = t_next(t_next(t_root_0), true);
25
+ const t_text_1 = t_next(t_next(t_next(t_next(t_root_0), true)), true);
26
26
  t_add_fragment(t_fragment_0, $parent, $anchor, t_text_1);
27
27
  t_next(t_text_1);
28
28
 
@@ -10,8 +10,9 @@ export default function CssStyle(
10
10
  ) {
11
11
 
12
12
  /* User interface */
13
- let $output = "";
14
- $output += ` <div> <h1 class="title torp-1ew8jkr">I am red</h1> <button style="font-size: 10rem;">I am a button</button> </div> `;
13
+ let t_body = "";
14
+ let t_head = "<style id='1ew8jkr'>.title.torp-1ew8jkr { color: red; } </style>";
15
+ t_body += ` <h1 class="title torp-1ew8jkr">I am red</h1> <button style="font-size: 10rem;">I am a button</button> `;
15
16
 
16
- return $output;
17
+ return { body: t_body, head: t_head };
17
18
  }
@@ -18,8 +18,9 @@ export default function DoubleCount(
18
18
  });
19
19
 
20
20
  /* User interface */
21
- let $output = "";
22
- $output += ` <div>${t_fmt($state.doubleCount)}</div> `;
21
+ let t_body = "";
22
+ let t_head = "";
23
+ t_body += ` <div>${t_fmt($state.doubleCount)}</div> `;
23
24
 
24
- return $output;
25
+ return { body: t_body, head: t_head };
25
26
  }
@@ -9,8 +9,9 @@ export default function FunnyButton(
9
9
  ) {
10
10
 
11
11
  /* User interface */
12
- let $output = "";
13
- $output += ` <button style="
12
+ let t_body = "";
13
+ let t_head = "";
14
+ t_body += ` <button style="
14
15
  background: rgba(0, 0, 0, 0.4);
15
16
  color: #fff;
16
17
  padding: 10px 20px;
@@ -22,11 +23,11 @@ export default function FunnyButton(
22
23
  outline: 0;
23
24
  "> <![>`;
24
25
  if ($slots && $slots["_"]) {
25
- $output += $slots["_"](undefined, $context);
26
+ t_body += $slots["_"](undefined, $context);
26
27
  } else {
27
- $output += ` <span>No content found</span> `;
28
+ t_body += ` <span>No content found</span> `;
28
29
  }
29
- $output += `<!]><!> </button> `;
30
+ t_body += `<!]><!> </button> `;
30
31
 
31
- return $output;
32
+ return { body: t_body, head: t_head };
32
33
  }
@@ -1,7 +1,6 @@
1
1
  import { type SlotRender } from "../../../../src/types/SlotRender";
2
2
  import t_add_fragment from "../../../../src/render/addFragment";
3
3
  import t_anchor from "../../../../src/render/nodeAnchor";
4
- import t_child from "../../../../src/render/nodeChild";
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";
@@ -22,16 +21,14 @@ export default function FunnyButtonApp(
22
21
  /* User interface */
23
22
  const t_fragments: DocumentFragment[] = [];
24
23
 
25
- const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div> <!> <!> </div> `);
24
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <!> <!> `);
26
25
  // @ts-ignore
27
26
  const t_root_0 = t_root(t_fragment_0, true);
28
- const t_comp_parent_1 = t_next(t_root_0) as HTMLElement;
29
- let t_comp_anchor_1 = t_anchor(t_next(t_child(t_comp_parent_1))) as HTMLElement;
27
+ let t_comp_anchor_1 = t_anchor(t_next(t_root_0)) as HTMLElement;
30
28
 
31
29
  /* @component */
32
- FunnyButton(t_comp_parent_1, t_comp_anchor_1, undefined, $context);
30
+ FunnyButton(t_fragment_0, t_comp_anchor_1, undefined, $context);
33
31
 
34
- const t_comp_parent_2 = t_comp_parent_1 as HTMLElement;
35
32
  let t_comp_anchor_2 = t_anchor(t_next(t_next(t_comp_anchor_1, true))) as HTMLElement;
36
33
 
37
34
  /* @component */
@@ -50,10 +47,10 @@ export default function FunnyButtonApp(
50
47
  t_add_fragment(t_fragment_2, $sparent, $sanchor, t_text_1);
51
48
  t_next(t_text_1);
52
49
  }
53
- FunnyButton(t_comp_parent_2, t_comp_anchor_2, undefined, $context, t_slots_1);
50
+ FunnyButton(t_fragment_0, t_comp_anchor_2, undefined, $context, t_slots_1);
54
51
 
55
52
  // @ts-ignore
56
- const t_text_2 = t_next(t_comp_parent_2, true);
53
+ const t_text_2 = t_next(t_comp_anchor_2, true);
57
54
  t_add_fragment(t_fragment_0, $parent, $anchor, t_text_2);
58
55
  t_next(t_text_2);
59
56
 
@@ -12,11 +12,14 @@ export default function FunnyButtonApp(
12
12
  ) {
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
 
18
- $output += FunnyButton(undefined, $context)
19
- $output += `<!]><!> <![>`;
19
+ const t_comp_1 = FunnyButton(undefined, $context);
20
+ t_body += t_comp_1.body;
21
+ t_head += t_comp_1.head;
22
+ t_body += `<!]><!> <![>`;
20
23
  const t_slots_1: Record<string, ServerSlotRender> = {};
21
24
  t_slots_1["_"] = (
22
25
  // @ts-ignore
@@ -24,13 +27,15 @@ export default function FunnyButtonApp(
24
27
  // @ts-ignore
25
28
  $context?: Record<PropertyKey, any>
26
29
  ) => {
27
- let $output = "";
28
- $output += `Click me!`;
29
- return $output;
30
+ let t_body = "";
31
+ t_body += `Click me!`;
32
+ return t_body;
30
33
  }
31
34
 
32
- $output += FunnyButton(undefined, $context, t_slots_1)
33
- $output += `<!]><!> </div> `;
35
+ const t_comp_2 = FunnyButton(undefined, $context, t_slots_1);
36
+ t_body += t_comp_2.body;
37
+ t_head += t_comp_2.head;
38
+ t_body += `<!]><!> `;
34
39
 
35
- return $output;
40
+ return { body: t_body, head: t_head };
36
41
  }
@@ -10,8 +10,9 @@ export default function HelloWorld(
10
10
  ) {
11
11
 
12
12
  /* User interface */
13
- let $output = "";
14
- $output += ` <h1>Hello world</h1> `;
13
+ let t_body = "";
14
+ let t_head = "";
15
+ t_body += ` <h1>Hello world</h1> `;
15
16
 
16
- return $output;
17
+ return { body: t_body, head: t_head };
17
18
  }
@@ -18,8 +18,9 @@ export default function InputFocused(
18
18
  });
19
19
 
20
20
  /* User interface */
21
- let $output = "";
22
- $output += ` <input ref="${t_attr(inputElement) || ""}"> `;
21
+ let t_body = "";
22
+ let t_head = "";
23
+ t_body += ` <input ref="${t_attr(inputElement) || ""}"> `;
23
24
 
24
- return $output;
25
+ return { body: t_body, head: t_head };
25
26
  }
@@ -27,13 +27,13 @@ export default function InputHello(
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> <input></input> </div> `);
30
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <p>#</p> <input></input> `);
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
  // @ts-ignore
36
- const t_text_2 = t_next(t_next(t_root_0), true);
36
+ const t_text_2 = t_next(t_input_1, true);
37
37
  $run(function setTextContent() {
38
38
  t_text_1.textContent = t_fmt($state.text);
39
39
  });
@@ -16,8 +16,9 @@ export default function InputHello(
16
16
  });
17
17
 
18
18
  /* User interface */
19
- let $output = "";
20
- $output += ` <div> <p>${t_fmt($state.text)}</p> <input value="${t_attr($state.text) || ""}"> </div> `;
19
+ let t_body = "";
20
+ let t_head = "";
21
+ t_body += ` <p>${t_fmt($state.text)}</p> <input value="${t_attr($state.text) || ""}"> `;
21
22
 
22
- return $output;
23
+ return { body: t_body, head: t_head };
23
24
  }
@@ -27,13 +27,13 @@ export default function IsAvailable(
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="is-available" type="checkbox"></input> <label for="is-available">Is available</label> </div> `);
30
+ const t_fragment_0 = t_fragment($parent.ownerDocument!, t_fragments, 0, ` <div>#</div> <input id="is-available" type="checkbox"></input> <label for="is-available">Is available</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
  // @ts-ignore
36
- const t_text_2 = t_next(t_next(t_root_0), true);
36
+ const t_text_2 = t_next(t_next(t_next(t_input_1, true)), true);
37
37
  $run(function setTextContent() {
38
38
  t_text_1.textContent = t_fmt($state.isAvailable ? "Available" : "Not available");
39
39
  });