@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
@@ -0,0 +1,414 @@
1
+ import $run from "../../../../src/render/$run";
2
+ import $watch from "../../../../src/render/$watch";
3
+ import t_event from "../../../../src/render/addEvent";
4
+ import t_add_fragment from "../../../../src/render/addFragment";
5
+ import t_class from "../../../../src/render/buildClasses";
6
+ import t_fmt from "../../../../src/render/formatText";
7
+ import t_fragment from "../../../../src/render/getFragment";
8
+ import t_list_item from "../../../../src/render/newListItem";
9
+ import t_range from "../../../../src/render/newRange";
10
+ import t_anchor from "../../../../src/render/nodeAnchor";
11
+ import t_child from "../../../../src/render/nodeChild";
12
+ import t_next from "../../../../src/render/nodeNext";
13
+ import t_root from "../../../../src/render/nodeRoot";
14
+ import t_pop_range from "../../../../src/render/popRange";
15
+ import t_push_range from "../../../../src/render/pushRange";
16
+ import t_run_list from "../../../../src/render/runList";
17
+ import { type ListItem } from "../../../../src/types/ListItem";
18
+ import { type SlotRender } from "../../../../src/types/SlotRender";
19
+
20
+ export default function Bench(
21
+ $parent: ParentNode,
22
+ $anchor: Node | null,
23
+ // @ts-ignore
24
+ $props?: Record<PropertyKey, any>,
25
+ // @ts-ignore
26
+ $context?: Record<PropertyKey, any>,
27
+ // @ts-ignore
28
+ $slots?: Record<string, SlotRender>,
29
+ ) {
30
+ let rowId = 1;
31
+ let $state = $watch({
32
+ data: [],
33
+ selected: null,
34
+ });
35
+
36
+ const adjectives = [
37
+ "pretty",
38
+ "large",
39
+ "big",
40
+ "small",
41
+ "tall",
42
+ "short",
43
+ "long",
44
+ "handsome",
45
+ "plain",
46
+ "quaint",
47
+ "clean",
48
+ "elegant",
49
+ "easy",
50
+ "angry",
51
+ "crazy",
52
+ "helpful",
53
+ "mushy",
54
+ "odd",
55
+ "unsightly",
56
+ "adorable",
57
+ "important",
58
+ "inexpensive",
59
+ "cheap",
60
+ "expensive",
61
+ "fancy",
62
+ ];
63
+ const colours = [
64
+ "red",
65
+ "yellow",
66
+ "blue",
67
+ "green",
68
+ "pink",
69
+ "brown",
70
+ "purple",
71
+ "brown",
72
+ "white",
73
+ "black",
74
+ "orange",
75
+ ];
76
+ const nouns = [
77
+ "table",
78
+ "chair",
79
+ "house",
80
+ "bbq",
81
+ "desk",
82
+ "car",
83
+ "pony",
84
+ "cookie",
85
+ "sandwich",
86
+ "burger",
87
+ "pizza",
88
+ "mouse",
89
+ "keyboard",
90
+ ];
91
+
92
+ function append() {
93
+ $state.data = [...$state.data, ...buildData(1000)];
94
+ }
95
+
96
+ function clear() {
97
+ $state.data = [];
98
+ }
99
+
100
+ function partialUpdate() {
101
+ for (let i = 0; i < $state.data.length; i += 10) {
102
+ const row = $state.data[i];
103
+ row.label = row.label + " !!!";
104
+ }
105
+ }
106
+
107
+ function remove(row) {
108
+ const clone = $state.data.slice();
109
+ clone.splice(clone.indexOf(row), 1);
110
+ $state.data = clone;
111
+ }
112
+
113
+ function create() {
114
+ // TODO: Build this up to 1000:
115
+ $state.data = buildData(10);
116
+ }
117
+
118
+ function createLots() {
119
+ $state.data = buildData(10000);
120
+ }
121
+
122
+ function swapRows() {
123
+ if ($state.data.length > 998) {
124
+ const clone = $state.data.slice();
125
+ const tmp = clone[1];
126
+ clone[1] = clone[998];
127
+ clone[998] = tmp;
128
+ $state.data = clone;
129
+ }
130
+ }
131
+
132
+ function _random(max) {
133
+ return Math.round(Math.random() * 1000) % max;
134
+ }
135
+
136
+ class Item {
137
+ id = rowId++;
138
+ label = `${adjectives[_random(adjectives.length)]} ${colours[_random(colours.length)]} ${nouns[_random(nouns.length)]}`;
139
+ }
140
+
141
+ function buildData(count = 1000) {
142
+ const data = new Array(count);
143
+ for (let i = 0; i < count; i++) {
144
+ data[i] = $watch(new Item());
145
+ }
146
+ return data;
147
+ }
148
+
149
+ /* User interface */
150
+ const t_fragments: DocumentFragment[] = [];
151
+
152
+ const t_fragment_0 = t_fragment(
153
+ $parent.ownerDocument!,
154
+ t_fragments,
155
+ 0,
156
+ ` <div id="main" class="container"> <div class="jumbotron"> <div class="row"> <div class="col-md-6"> <h1>Torpor (keyed)</h1> </div> <div class="col-md-6"> <div class="row"> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="create">Create 1,000 rows</button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="createlots"> Create 10,000 rows </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="append"> Append 1,000 rows </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="update"> Update every 10th row </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="clear">Clear</button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="swaprows">Swap Rows</button> </div> </div> </div> </div> </div> <table class="table table-hover table-striped test-data"> <tbody> <!> </tbody> </table> <span class="preloadicon glyphicon glyphicon-remove" aria-hidden="true"></span> </div> `,
157
+ );
158
+ // @ts-ignore
159
+ const t_root_0 = t_root(t_fragment_0, true);
160
+ const t_button_1 = t_next(
161
+ t_child(
162
+ t_next(
163
+ t_child(
164
+ t_next(
165
+ t_child(
166
+ t_next(
167
+ t_next(t_next(t_child(t_next(t_child(t_next(t_child(t_next(t_root_0))))))), true),
168
+ ),
169
+ ),
170
+ ),
171
+ ),
172
+ ),
173
+ ),
174
+ ) as HTMLElement;
175
+ const t_button_2 = t_next(
176
+ t_child(
177
+ t_next(
178
+ t_next(
179
+ t_next(
180
+ t_child(
181
+ t_next(
182
+ t_child(
183
+ t_next(
184
+ t_next(
185
+ t_next(t_child(t_next(t_child(t_next(t_child(t_next(t_root_0))))))),
186
+ true,
187
+ ),
188
+ ),
189
+ ),
190
+ ),
191
+ ),
192
+ ),
193
+ true,
194
+ ),
195
+ ),
196
+ ),
197
+ ) as HTMLElement;
198
+ const t_button_3 = t_next(
199
+ t_child(
200
+ t_next(
201
+ t_next(
202
+ t_next(
203
+ t_next(
204
+ t_next(
205
+ t_child(
206
+ t_next(
207
+ t_child(
208
+ t_next(
209
+ t_next(
210
+ t_next(t_child(t_next(t_child(t_next(t_child(t_next(t_root_0))))))),
211
+ true,
212
+ ),
213
+ ),
214
+ ),
215
+ ),
216
+ ),
217
+ ),
218
+ true,
219
+ ),
220
+ ),
221
+ true,
222
+ ),
223
+ ),
224
+ ),
225
+ ) as HTMLElement;
226
+ const t_button_4 = t_next(
227
+ t_child(
228
+ t_next(
229
+ t_next(
230
+ t_next(
231
+ t_next(
232
+ t_next(
233
+ t_next(
234
+ t_next(
235
+ t_child(
236
+ t_next(
237
+ t_child(
238
+ t_next(
239
+ t_next(
240
+ t_next(t_child(t_next(t_child(t_next(t_child(t_next(t_root_0))))))),
241
+ true,
242
+ ),
243
+ ),
244
+ ),
245
+ ),
246
+ ),
247
+ ),
248
+ true,
249
+ ),
250
+ ),
251
+ true,
252
+ ),
253
+ ),
254
+ true,
255
+ ),
256
+ ),
257
+ ),
258
+ ) as HTMLElement;
259
+ const t_button_5 = t_next(
260
+ t_child(
261
+ t_next(
262
+ t_next(
263
+ t_next(
264
+ t_next(
265
+ t_next(
266
+ t_next(
267
+ t_next(
268
+ t_next(
269
+ t_next(
270
+ t_child(
271
+ t_next(
272
+ t_child(
273
+ t_next(
274
+ t_next(
275
+ t_next(
276
+ t_child(t_next(t_child(t_next(t_child(t_next(t_root_0)))))),
277
+ ),
278
+ true,
279
+ ),
280
+ ),
281
+ ),
282
+ ),
283
+ ),
284
+ ),
285
+ true,
286
+ ),
287
+ ),
288
+ true,
289
+ ),
290
+ ),
291
+ true,
292
+ ),
293
+ ),
294
+ true,
295
+ ),
296
+ ),
297
+ ),
298
+ ) as HTMLElement;
299
+ const t_button_6 = t_next(
300
+ t_child(
301
+ t_next(
302
+ t_next(
303
+ t_next(
304
+ t_next(
305
+ t_next(
306
+ t_next(
307
+ t_next(
308
+ t_next(
309
+ t_next(
310
+ t_next(
311
+ t_next(
312
+ t_child(
313
+ t_next(
314
+ t_child(
315
+ t_next(
316
+ t_next(
317
+ t_next(
318
+ t_child(t_next(t_child(t_next(t_child(t_next(t_root_0)))))),
319
+ ),
320
+ true,
321
+ ),
322
+ ),
323
+ ),
324
+ ),
325
+ ),
326
+ ),
327
+ true,
328
+ ),
329
+ ),
330
+ true,
331
+ ),
332
+ ),
333
+ true,
334
+ ),
335
+ ),
336
+ true,
337
+ ),
338
+ ),
339
+ true,
340
+ ),
341
+ ),
342
+ ),
343
+ ) as HTMLElement;
344
+ const t_for_parent_1 = t_next(
345
+ t_child(t_next(t_next(t_next(t_child(t_next(t_root_0))), true))),
346
+ ) as HTMLElement;
347
+ let t_for_anchor_1 = t_anchor(
348
+ t_next(t_child(t_next(t_child(t_next(t_next(t_next(t_child(t_next(t_root_0))), true)))))),
349
+ ) as HTMLElement;
350
+
351
+ /* @for */
352
+ let t_for_range_1 = t_range();
353
+ t_run_list(
354
+ t_for_range_1,
355
+ t_for_parent_1,
356
+ t_for_anchor_1,
357
+ function createNewItems() {
358
+ let t_new_items: ListItem[] = [];
359
+ for (let row of $state.data) {
360
+ t_new_items.push(t_list_item({ row }, row.id));
361
+ /*t_new_items.push({
362
+ key: row.id,
363
+ data: { row }
364
+ });*/
365
+ }
366
+ return t_new_items;
367
+ },
368
+ function createListItem(t_item, t_before) {
369
+ let t_old_range_1 = t_push_range(t_item, true);
370
+ const t_fragment_1 = t_fragment(
371
+ $parent.ownerDocument!,
372
+ t_fragments,
373
+ 1,
374
+ ` <tr> <td class="col-md-1">#</td> <td class="col-md-4"> <a>#</a> </td> <td class="col-md-1"> <a> <span class="glyphicon glyphicon-remove" aria-hidden="true"></span> </a> </td> <td class="col-md-6"></td> </tr> `,
375
+ );
376
+ // @ts-ignore
377
+ const t_root_1 = t_root(t_fragment_1, true);
378
+ const t_tr_1 = t_next(t_root_1) as HTMLElement;
379
+ const t_text_1 = t_child(t_next(t_child(t_tr_1)));
380
+ const t_a_1 = t_next(t_child(t_next(t_next(t_next(t_child(t_tr_1)), true)))) as HTMLElement;
381
+ const t_text_2 = t_child(t_a_1);
382
+ const t_a_2 = t_next(
383
+ t_child(t_next(t_next(t_next(t_next(t_next(t_child(t_tr_1)), true)), true))),
384
+ ) as HTMLElement;
385
+ // @ts-ignore
386
+ const t_text_3 = t_next(t_tr_1, true);
387
+ $run(function setClasses() {
388
+ t_tr_1.className = t_class({ danger: $state.selected === t_item.data.row.id });
389
+ });
390
+ $run(function setTextContent() {
391
+ t_text_1.textContent = t_fmt(t_item.data.row.id);
392
+ });
393
+ t_event(t_a_1, "click", () => ($state.selected = t_item.data.row.id));
394
+ $run(function setTextContent() {
395
+ t_text_2.textContent = ` ${t_fmt(t_item.data.row.label)} `;
396
+ });
397
+ t_event(t_a_2, "click", () => remove(t_item.data.row));
398
+ t_add_fragment(t_fragment_1, t_for_parent_1, t_before, t_text_3);
399
+ t_next(t_text_3);
400
+ t_pop_range(t_old_range_1);
401
+ },
402
+ );
403
+
404
+ // @ts-ignore
405
+ const t_text_4 = t_next(t_next(t_root_0), true);
406
+ t_event(t_button_1, "click", create);
407
+ t_event(t_button_2, "click", createLots);
408
+ t_event(t_button_3, "click", append);
409
+ t_event(t_button_4, "click", partialUpdate);
410
+ t_event(t_button_5, "click", clear);
411
+ t_event(t_button_6, "click", swapRows);
412
+ t_add_fragment(t_fragment_0, $parent, $anchor, t_text_4);
413
+ t_next(t_text_4);
414
+ }
@@ -1,7 +1,7 @@
1
1
  import $watch from "../../../../src/render/$serverWatch";
2
- import { type ServerSlotRender } from "../../../../src/types/ServerSlotRender";
3
- import t_class from "../../../../src/render/getClasses";
2
+ import t_class from "../../../../src/render/buildClasses";
4
3
  import t_fmt from "../../../../src/render/formatText";
4
+ import { type ServerSlotRender } from "../../../../src/types/ServerSlotRender";
5
5
 
6
6
  export default function Bench(
7
7
  // @ts-ignore
@@ -9,7 +9,7 @@ export default function Bench(
9
9
  // @ts-ignore
10
10
  $context?: Record<PropertyKey, any>,
11
11
  // @ts-ignore
12
- $slots?: Record<string, ServerSlotRender>
12
+ $slots?: Record<string, ServerSlotRender>,
13
13
  ) {
14
14
  let rowId = 1;
15
15
  let $state = $watch({
@@ -44,7 +44,19 @@ export default function Bench(
44
44
  "expensive",
45
45
  "fancy",
46
46
  ];
47
- const colours = ["red", "yellow", "blue", "green", "pink", "brown", "purple", "brown", "white", "black", "orange"];
47
+ const colours = [
48
+ "red",
49
+ "yellow",
50
+ "blue",
51
+ "green",
52
+ "pink",
53
+ "brown",
54
+ "purple",
55
+ "brown",
56
+ "white",
57
+ "black",
58
+ "orange",
59
+ ];
48
60
  const nouns = [
49
61
  "table",
50
62
  "chair",
@@ -120,11 +132,11 @@ export default function Bench(
120
132
 
121
133
  /* User interface */
122
134
  let $output = "";
123
- $output += `<div id="main" class="container"> <div class="jumbotron"> <div class="row"> <div class="col-md-6"> <h1>Torpor (keyed)</h1> </div> <div class="col-md-6"> <div class="row"> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="create">Create 1,000 rows</button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="createlots"> Create 10,000 rows </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="append"> Append 1,000 rows </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="update"> Update every 10th row </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="clear">Clear</button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="swaprows">Swap Rows</button> </div> </div> </div> </div> </div> <table class="table table-hover table-striped test-data"> <tbody> <![>`;
135
+ $output += ` <div id="main" class="container"> <div class="jumbotron"> <div class="row"> <div class="col-md-6"> <h1>Torpor (keyed)</h1> </div> <div class="col-md-6"> <div class="row"> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="create">Create 1,000 rows</button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="createlots"> Create 10,000 rows </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="append"> Append 1,000 rows </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="update"> Update every 10th row </button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="clear">Clear</button> </div> <div class="col-sm-6 smallpad"> <button type="button" class="btn btn-primary btn-block" id="swaprows">Swap Rows</button> </div> </div> </div> </div> </div> <table class="table table-hover table-striped test-data"> <tbody> <![>`;
124
136
  for (let row of $state.data) {
125
137
  $output += `<!^> <tr class="${t_class({ danger: $state.selected === row.id })}"> <td class="col-md-1">${t_fmt(row.id)}</td> <td class="col-md-4"> <a> ${t_fmt(row.label)} </a> </td> <td class="col-md-1"> <a> <span class="glyphicon glyphicon-remove" aria-hidden="true"></span> </a> </td> <td class="col-md-6"></td> </tr> `;
126
138
  }
127
- $output += `<!]><!> </tbody> </table> <span class="preloadicon glyphicon glyphicon-remove" aria-hidden="true"></span> </div>`;
139
+ $output += `<!]><!> </tbody> </table> <span class="preloadicon glyphicon glyphicon-remove" aria-hidden="true"></span> </div> `;
128
140
 
129
141
  return $output;
130
142
  }
@@ -2,28 +2,13 @@ export default function BindComponent() {
2
2
  let $state = $watch({ name: "Alice", selected: 1 });
3
3
 
4
4
  @render {
5
- <div>
6
- @// t_name_changed = (value) => $state.name = value;
7
- <BindText &name={$state.name} />
8
- <p>Hello, {$state.name}</p>
9
- </div>
5
+ <BindText &name={$state.name} />
6
+ <p>Hello, {$state.name}</p>
10
7
  }
11
8
  }
12
9
 
13
10
  function BindText($props: any) {
14
- //let $state = $watch({
15
- // text: $props.name
16
- //})
17
-
18
- // $run(() => t_name_changed($props.name))
19
-
20
- //$run(() => {
21
- // $props.name = $state.text
22
- //});
23
-
24
11
  @render {
25
- <div>
26
- <input &value={$props.name} />
27
- </div>
12
+ <input &value={$props.name} />
28
13
  }
29
14
  }
@@ -2,15 +2,13 @@ export default function BindText() {
2
2
  let $state = $watch({ name: "Alice", selected: 1 });
3
3
 
4
4
  @render {
5
- <div>
6
- <input &value={$state.name} />
7
- <select &value={$state.selected}>
8
- <option value=0>First</option>
9
- <option value=1>Second</option>
10
- <option value=2>Third</option>
11
- </select>
12
- <p>Hello, {$state.name}</p>
13
- <p>You have selected, {$state.selected}</p>
14
- </div>
5
+ <input &value={$state.name} />
6
+ <select &value={$state.selected}>
7
+ <option value=0>First</option>
8
+ <option value=1>Second</option>
9
+ <option value=2>Third</option>
10
+ </select>
11
+ <p>Hello, {$state.name}</p>
12
+ <p>You have selected, {$state.selected}</p>
15
13
  }
16
14
  }
@@ -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
  });