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