@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
@@ -12,19 +12,17 @@ export default function TrafficLight() {
12
12
  }
13
13
 
14
14
  @render {
15
- <div>
16
- <button onclick={nextLight}>Next light</button>
17
- <p>Light is: {$state.light}</p>
18
- <p>
19
- You must
20
- @if ($state.light === "red") {
21
- <span>STOP</span>
22
- } else if ($state.light === "orange") {
23
- <span>SLOW DOWN</span>
24
- } else if ($state.light === "green") {
25
- <span>GO</span>
26
- }
27
- </p>
28
- </div>
15
+ <button onclick={nextLight}>Next light</button>
16
+ <p>Light is: {$state.light}</p>
17
+ <p>
18
+ You must
19
+ @if ($state.light === "red") {
20
+ <span>STOP</span>
21
+ } else if ($state.light === "orange") {
22
+ <span>SLOW DOWN</span>
23
+ } else if ($state.light === "green") {
24
+ <span>GO</span>
25
+ }
26
+ </p>
29
27
  }
30
28
  }
@@ -5,11 +5,9 @@ export default function UserProfile($props: {
5
5
  isAvailable: boolean
6
6
  }) {
7
7
  @render {
8
- <div>
9
- <p>My name is {$props.name}!</p>
10
- <p>My age is {$props.age}!</p>
11
- <p>My favourite colors are {$props.favouriteColors.join(", ")}!</p>
12
- <p>I am {$props.isAvailable ? "available" : "not available"}</p>
13
- </div>
8
+ <p>My name is {$props.name}!</p>
9
+ <p>My age is {$props.age}!</p>
10
+ <p>My favourite colors are {$props.favouriteColors.join(", ")}!</p>
11
+ <p>I am {$props.isAvailable ? "available" : "not available"}</p>
14
12
  }
15
13
  }
@@ -2,13 +2,11 @@ export default function UserProfileContext() {
2
2
  $context.user = $watch($context.user);
3
3
 
4
4
  @render {
5
- <div>
6
- <h2>My Profile</h2>
7
- <p>Username: {$context.user.username}</p>
8
- <p>Email: {$context.user.email}</p>
9
- <button onclick={() => ($context.user.username = "Jane")}>
10
- Update username to Jane
11
- </button>
12
- </div>
5
+ <h2>My Profile</h2>
6
+ <p>Username: {$context.user.username}</p>
7
+ <p>Email: {$context.user.email}</p>
8
+ <button onclick={() => ($context.user.username = "Jane")}>
9
+ Update username to Jane
10
+ </button>
13
11
  }
14
12
  }
@@ -12,9 +12,7 @@ export default function UserProfileContextApp() {
12
12
  $context.user = $user;
13
13
 
14
14
  @render {
15
- <div>
16
- <h1>Welcome back, {$user.username}</h1>
17
- <UserProfileContext />
18
- </div>
15
+ <h1>Welcome back, {$user.username}</h1>
16
+ <UserProfileContext />
19
17
  }
20
18
  }
@@ -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
  });
@@ -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
  }