@torpor/view 0.1.5 → 0.1.7

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 (361) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/compile.cjs +311 -260
  3. package/dist/compile.cjs.map +1 -1
  4. package/dist/compile.js +311 -260
  5. package/dist/compile.js.map +1 -1
  6. package/dist/index.cjs +148 -96
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.cts +86 -29
  9. package/dist/index.d.ts +86 -29
  10. package/dist/index.js +144 -96
  11. package/dist/index.js.map +1 -1
  12. package/dist/metafile-cjs.json +1 -1
  13. package/dist/metafile-esm.json +1 -1
  14. package/package.json +3 -3
  15. package/src/compile/build/client/buildAddFragment.ts +5 -1
  16. package/src/compile/build/client/buildCode.ts +3 -0
  17. package/src/compile/build/client/buildComponentNode.ts +1 -0
  18. package/src/compile/build/client/buildControlNode.ts +2 -1
  19. package/src/compile/build/client/buildFragment.ts +54 -21
  20. package/src/compile/build/client/buildRootNode.ts +5 -1
  21. package/src/compile/build/server/buildServerComponentNode.ts +2 -4
  22. package/src/compile/build/server/buildServerControlNode.ts +2 -1
  23. package/src/compile/build/server/buildServerForNode.ts +2 -2
  24. package/src/compile/build/server/buildServerIfNode.ts +4 -0
  25. package/src/compile/build/server/buildServerRootNode.ts +3 -1
  26. package/src/compile/build/server/buildServerSwitchNode.ts +4 -0
  27. package/src/compile/parse/ParseStatus.ts +2 -1
  28. package/src/compile/parse/parseCode.ts +5 -8
  29. package/src/compile/parse/parseControl.ts +19 -6
  30. package/src/compile/parse/parseMarkup.ts +15 -8
  31. package/src/compile/types/comments.ts +2 -2
  32. package/src/compile/types/nodes/OperationType.ts +2 -1
  33. package/src/debug/printNode.ts +54 -36
  34. package/src/index.ts +7 -1
  35. package/src/render/addFragment.ts +5 -4
  36. package/src/render/clearLayoutSlot.ts +6 -0
  37. package/src/render/clearRange.ts +1 -1
  38. package/src/render/hydrationMarkers.ts +2 -2
  39. package/src/render/isComment.ts +2 -2
  40. package/src/render/isText.ts +3 -0
  41. package/src/render/nodeAnchor.ts +52 -27
  42. package/src/render/nodeCheckHydrationBreak.ts +25 -0
  43. package/src/render/nodeChild.ts +12 -7
  44. package/src/render/nodeNext.ts +16 -25
  45. package/src/render/nodeReanchor.ts +18 -0
  46. package/src/render/nodeRoot.ts +26 -9
  47. package/src/render/nodeSkip.ts +20 -0
  48. package/src/render/runLayoutSlot.ts +26 -0
  49. package/test/attributes/components/output/Attributes-client.ts +7 -4
  50. package/test/attributes/components/output/Attributes-server.ts +1 -1
  51. package/test/attributes/components/temp/{Attributes-client-7b8f7b9996208e8d2d0a12d4f4a40a73df63d9d8.ts → Attributes-client-4620a40099e57a7fdaab895b204d85881f6dbfb7.ts} +7 -4
  52. package/test/attributes/components/temp/{Attributes-server-a1289434a5a801be1d63bfc85b621579e06452f0.ts → Attributes-server-80f9f58fd6cb30df11867386d4f0b15b44401ebe.ts} +1 -1
  53. package/test/await/components/output/Await-client.ts +21 -15
  54. package/test/await/components/output/Await-server.ts +2 -2
  55. package/test/await/components/temp/{Await-client-a7bf000bf2b59a3d5251a0fa18ec79890a52a547.ts → Await-client-e2fc91352ed24b160650d7851d82375910bd28d6.ts} +21 -15
  56. package/test/await/components/temp/{Await-server-06cd2a3d8c7eb5bef026ffe2fb11793becf547c2.ts → Await-server-f02f39af3bb3344ca6b18a1d64d60b21913fba31.ts} +2 -2
  57. package/test/bind/components/output/BindComponent-client.ts +21 -12
  58. package/test/bind/components/output/BindComponent-server.ts +3 -3
  59. package/test/bind/components/output/BindText-client.ts +10 -8
  60. package/test/bind/components/output/BindText-server.ts +1 -1
  61. package/test/bind/components/temp/{BindComponent-client-a645474748485a878871c062ad69e6bcf35e6550.ts → BindComponent-client-c4dbd934eda6b8f9a7afc697b9d6dd3edc3a4a48.ts} +21 -12
  62. package/test/bind/components/temp/{BindComponent-server-c557e7aa944517ab87415b8bb35b41b0034254e7.ts → BindComponent-server-c630dee0bee6cea49d5eb8bea04979a737bb8f5e.ts} +3 -3
  63. package/test/bind/components/temp/{BindText-client-d5f7d721df55020ef337f660e5d278eb80fcc330.ts → BindText-client-134676d616abbad6b8a7ec48df0a2e38cbfe3b87.ts} +10 -8
  64. package/test/bind/components/temp/{BindText-server-4b94cdf60d9c9a2088306c4407e2ae30785169b0.ts → BindText-server-807a1ddcb68410b30429cb088d2e204ed6f585b2.ts} +1 -1
  65. package/test/buildHtml.ts +1 -1
  66. package/test/buildOutputFiles.ts +10 -1
  67. package/test/child-component/components/output/ParentChild-client.ts +20 -11
  68. package/test/child-component/components/output/ParentChild-server.ts +3 -3
  69. package/test/child-component/components/temp/{ParentChild-client-eaefb0cbfd251badab3c57ae2037d973f785a1b8.ts → ParentChild-client-16042a29846dbbeec5905f163bf29b6bb48dfd42.ts} +20 -11
  70. package/test/child-component/components/temp/{ParentChild-server-8f2fc556f87867e6e3393e2e9e6d696cda107b69.ts → ParentChild-server-a34a8b5acf1c00d1990f8ab7433599506265a45a.ts} +3 -3
  71. package/test/class/class.test.ts +1 -1
  72. package/test/class/components/output/Class-client.ts +30 -20
  73. package/test/class/components/output/Class-server.ts +4 -4
  74. package/test/class/components/temp/{Class-client-12f09850a5f8c27de6cf94c23a2b17aadbf66f01.ts → Class-client-71b655ee0cbda59527269a2fbf0b6d2a1176bbaa.ts} +30 -20
  75. package/test/class/components/temp/Class-server-daf30ffb1bacf9877e3385dc9a3eede61c972329.ts +40 -0
  76. package/test/component/components/output/Component-client.ts +12 -4
  77. package/test/component/components/output/Component-server.ts +2 -0
  78. package/test/component/components/output/Header-client.ts +7 -5
  79. package/test/component/components/output/Header-server.ts +1 -1
  80. package/test/component/components/temp/{Component-client-a2fb6f30fc340bac909b64cb4f5ac68cde376de3.ts → Component-client-2f4734d1288dc88d1d5aa532791199969351ec1d.ts} +12 -4
  81. package/test/component/components/temp/{Component-server-40be12cd528ccf768f1ad40ef2a435ad2b2a2d71.ts → Component-server-81012827b18e82d787d194a0a1a9d4e07311a336.ts} +2 -0
  82. package/test/component/components/temp/{Header-client-75cb4aa868295ac168c16ba7b275fbb5ab9256f9.ts → Header-client-903877003b220272b0cb5bfd62d7d748ad46c477.ts} +7 -5
  83. package/test/component/components/temp/{Header-server-f73307874bec34a95dcd152d7f83a3ad13a0f4ac.ts → Header-server-6969d20782edd8f99d4b5c5b7b5563ce26e6dc2d.ts} +1 -1
  84. package/test/console/components/output/Console-client.ts +6 -4
  85. package/test/console/components/output/Console-server.ts +1 -1
  86. package/test/console/components/temp/{Console-client-2f206752ce59e59fba9bb91263b4102fd515951e.ts → Console-client-4fa3b3679cee88bf6151185438e36d14010944b7.ts} +6 -4
  87. package/test/console/components/temp/{Console-server-b4b15f7a0d1d2b50d87bad4870e1b8d368707c04.ts → Console-server-cfb2208b130d5f15403df19ae8341aaa1c9ad33a.ts} +1 -1
  88. package/test/const/components/output/Const-client.ts +7 -5
  89. package/test/const/components/output/Const-server.ts +2 -2
  90. package/test/const/components/temp/{Const-client-536e8fdf18d6f4f7f23b2789de2330ecf62d7865.ts → Const-client-7dff2758c14bfbd208e301a702ae1781e6daba1b.ts} +7 -5
  91. package/test/const/components/temp/{Const-server-8f84096c03a19296425aee5d243af0734b70ca61.ts → Const-server-1cf6ed84f72d3b15b318b80937b8de1f2c0f188c.ts} +2 -2
  92. package/test/effects/components/output/For-client.ts +15 -9
  93. package/test/effects/components/output/For-server.ts +2 -2
  94. package/test/effects/components/output/If-client.ts +17 -11
  95. package/test/effects/components/output/If-server.ts +4 -4
  96. package/test/effects/components/output/NestedIf-client.ts +23 -15
  97. package/test/effects/components/output/NestedIf-server.ts +5 -5
  98. package/test/effects/components/temp/{For-client-d8d4e4424ec3238fe9f79cc907d673612b63bcdf.ts → For-client-56df708520a56e3461dd041d5fcf3a6d16d6c653.ts} +15 -9
  99. package/test/effects/components/temp/{For-server-1f853c161bea31a1a5b11b00d7a021b70c778066.ts → For-server-efe60939d185315f4c9b567b6867c6d5af14d9aa.ts} +2 -2
  100. package/test/effects/components/temp/{If-client-bb06988422395321bf298a75bf5563c6f750f776.ts → If-client-341b189ef35481d477325e09e9b2d3479b7a6dfc.ts} +17 -11
  101. package/test/effects/components/temp/{If-server-97e3cbe059306fc607985dcd1b187df3a278d979.ts → If-server-2424b7b812d350d7eb8ff9afb1146807217320cd.ts} +4 -4
  102. package/test/effects/components/temp/{NestedIf-client-dc880c1ec92e716ec730dfa0bac0e3d9265bdf27.ts → NestedIf-client-4c74efc133b9817ff106e6ffcf4065603030a596.ts} +23 -15
  103. package/test/effects/components/temp/{NestedIf-server-9f199a33bae5d5fe34920d6a419937537a2b18dc.ts → NestedIf-server-ab260586490cb5afed31377d2226bb5a1fc30e2d.ts} +5 -5
  104. package/test/events/components/output/Increment-client.ts +9 -7
  105. package/test/events/components/output/Increment-server.ts +1 -1
  106. package/test/events/components/temp/{Increment-client-41bd7bc91aac8c7a9bf73527c8f7ba1794b09ab3.ts → Increment-client-1b5f9e231c5c4fc059d77ca0da632719283e5ac4.ts} +9 -7
  107. package/test/events/components/temp/{Increment-server-bbf5ac93c4f73382c4262ae42f4cc836bcb8ac1b.ts → Increment-server-b084f43082e2ec31dbe5f9edc1cb6e37e4c8df9d.ts} +1 -1
  108. package/test/for/components/output/For-client.ts +15 -9
  109. package/test/for/components/output/For-server.ts +2 -2
  110. package/test/for/components/output/ForEscape-client.ts +19 -13
  111. package/test/for/components/output/ForEscape-server.ts +2 -2
  112. package/test/for/components/output/ForIn-client.ts +15 -9
  113. package/test/for/components/output/ForIn-server.ts +2 -2
  114. package/test/for/components/output/ForOf-client.ts +15 -9
  115. package/test/for/components/output/ForOf-server.ts +2 -2
  116. package/test/for/components/temp/{For-client-0be5994e98c07a3455cd8a18a2b1b8ef3605aba6.ts → For-client-1d8c7995d69e881e0c6e23e17feb4ee73e34f7c3.ts} +15 -9
  117. package/test/for/components/temp/{For-server-8490f15d02ae76b218feb7fa266415f44b2a4ab9.ts → For-server-3b6ead39728c79206203c519a215390d07d80f7e.ts} +2 -2
  118. package/test/for/components/temp/{ForEscape-client-a973a145e28b32ca55fe3dca53d885fcf5e11c37.ts → ForEscape-client-c4b46ddf79bcceb3d677baeb57ac85ec6bc5f565.ts} +19 -13
  119. package/test/for/components/temp/{ForEscape-server-375744ca1e10e5c8ed7dd6420beef72107e55568.ts → ForEscape-server-ed906c8cd593a0b467073ada415734de31dc38d9.ts} +2 -2
  120. package/test/for/components/temp/{ForIn-client-5cc25a98e10826e8477fe6f931d5d2bbd0b13c9f.ts → ForIn-client-b64e5ecc592f137f08fc6ab9da800732df94976e.ts} +15 -9
  121. package/test/for/components/temp/{ForIn-server-d68e82c048f7e0f1525f74724b91e5cd01cdc6a6.ts → ForIn-server-c8f13304a2ba235e091685256909fbfa50bdd5fd.ts} +2 -2
  122. package/test/for/components/temp/{ForOf-client-70b0d59ff72f1cffe2e0ac8523dd7ccdca4ffe39.ts → ForOf-client-4ef8193b2f0603a8edfcbe6c2d321a240211bdcd.ts} +15 -9
  123. package/test/for/components/temp/{ForOf-server-ac08d98dd249a3e64a366b8488450e6ce0d18def.ts → ForOf-server-8c2c33ca6595bf0a5e952ca9971e595e18446623.ts} +2 -2
  124. package/test/function/components/output/Function-client.ts +8 -6
  125. package/test/function/components/output/Function-server.ts +2 -2
  126. package/test/function/components/temp/{Function-client-b3ff029a821d47e1a2249a52dfb681f4b2e96232.ts → Function-client-4e2168306756eb927d5ed4b673334b357eecaa74.ts} +8 -6
  127. package/test/function/components/temp/{Function-server-2d32fbe35260c0948a135f287f131c5520e8bce7.ts → Function-server-2b19d0cd881c31dc67132107c6e322a18701c318.ts} +2 -2
  128. package/test/html/components/output/Html-client.ts +12 -6
  129. package/test/html/components/output/Html-server.ts +1 -1
  130. package/test/html/components/temp/{Html-client-766ba4a63f28f929ca16cd7d1640fe92f9b30792.ts → Html-client-2c3bae5ddb348adb88e332df9bad69714a88ddd1.ts} +12 -6
  131. package/test/html/components/temp/{Html-server-0a41da8b81bf833f331f3becdbac14be7ddc6c8c.ts → Html-server-d159b0ef04b1f65ae4f9e05a7b44b21e7aa14cf9.ts} +1 -1
  132. package/test/hydrateComponent.ts +1 -0
  133. package/test/if/components/IfAfterIf.torp +10 -12
  134. package/test/if/components/IfElse.torp +12 -11
  135. package/test/if/components/IfElseIf.torp +13 -15
  136. package/test/if/components/IfFalse.torp +10 -0
  137. package/test/if/components/IfNested.torp +11 -13
  138. package/test/if/components/output/IfAfterIf-client.ts +19 -13
  139. package/test/if/components/output/IfAfterIf-server.ts +4 -4
  140. package/test/if/components/output/IfElse-client.ts +17 -13
  141. package/test/if/components/output/IfElse-server.ts +4 -4
  142. package/test/if/components/output/IfElseIf-client.ts +19 -15
  143. package/test/if/components/output/IfElseIf-server.ts +5 -5
  144. package/test/if/components/output/IfFalse-client.ts +59 -0
  145. package/test/if/components/output/IfFalse-server.ts +21 -0
  146. package/test/if/components/output/IfNested-client.ts +25 -19
  147. package/test/if/components/output/IfNested-server.ts +6 -6
  148. package/test/if/components/temp/{IfAfterIf-client-49b6b8c42b0a351561f9f5f22c2ae2e844bf3b58.ts → IfAfterIf-client-e092f37a07f06c67501693a2028c3f7a809267a9.ts} +19 -13
  149. package/test/if/components/temp/{IfAfterIf-server-eb67cf1fcf6711882266219940a47bd4a66497f3.ts → IfAfterIf-server-a5005147e7902d1a5a048c9fe07feb9804eb6560.ts} +4 -4
  150. package/test/if/components/temp/{IfElse-client-e236d4a2e99262ff09675bc519c07e2826c0d70b.ts → IfElse-client-9b9b5cd2d58364c2792c6233dcf1a028c343741b.ts} +17 -13
  151. package/test/if/components/temp/{IfElse-server-c077e0e30f4d2adec41ab779198362d21542d055.ts → IfElse-server-80d93e5fc4ceba7a645f7081fa11b177dbe730d0.ts} +4 -4
  152. package/test/if/components/temp/{IfElseIf-client-b92106861f0c7ec3d09e3a42bb93d8f5bd4e3bdf.ts → IfElseIf-client-c6e0f7e55b7d2471527f7fbc673cdb1be41a548c.ts} +19 -15
  153. package/test/if/components/temp/{IfElseIf-server-67991eee3f56dc687cda600511c31396438e0a77.ts → IfElseIf-server-ddc7348705d51b02538301e0aa704130748992cf.ts} +5 -5
  154. package/test/if/components/temp/IfFalse-client-84249379a2b7b30baea5eeed2a64d4502763d002.ts +59 -0
  155. package/test/if/components/temp/IfFalse-server-e8385013cfdde584b43cc0d71311cbb417859116.ts +21 -0
  156. package/test/if/components/temp/{IfNested-client-f563ac1b16a2280e457557281c4925ed447a9cd7.ts → IfNested-client-6a536c2000ef72e8c289ad789b135d4b1e170b6e.ts} +25 -19
  157. package/test/if/components/temp/{IfNested-server-0a2a9643324ab73b02b310cad61ba87dab146ab2.ts → IfNested-server-285a5d8e0e0fcc8ccf421df152fdc00811782835.ts} +6 -6
  158. package/test/if/if-else-false.test.ts +54 -0
  159. package/test/if/{if-true.test.ts → if-else-true.test.ts} +5 -2
  160. package/test/if/if-false.test.ts +1 -4
  161. package/test/importComponent.ts +4 -0
  162. package/test/mount/components/output/Mount-client.ts +7 -4
  163. package/test/mount/components/output/Mount-server.ts +1 -1
  164. package/test/mount/components/temp/{Mount-client-36dbc95a61345a1b7dcf07e6b0c998af2afca691.ts → Mount-client-efa5c34fbfc7646e114a1a58f0814b6dff33e566.ts} +7 -4
  165. package/test/mount/components/temp/{Mount-server-8bef1924a731f3db63cb827be3938fec685e53af.ts → Mount-server-62f94f276c2d6c9048765a77b575cb21146917f1.ts} +1 -1
  166. package/test/on-mount/components/output/OnMount-client.ts +7 -4
  167. package/test/on-mount/components/output/OnMount-server.ts +1 -1
  168. package/test/on-mount/components/temp/{OnMount-client-21708a638d2939ee8b017f5dc819cee4748bde87.ts → OnMount-client-4bb62e8bf1fcd67798598fe03bf5455a57f0a6be.ts} +7 -4
  169. package/test/on-mount/components/temp/{OnMount-server-1758fe2b16972fca7d4b9bb49d9256fce99780eb.ts → OnMount-server-c531f718eb68754ea6c3001d5db9c07c511e434c.ts} +1 -1
  170. package/test/party/components/output/AnswerButton-client.ts +8 -6
  171. package/test/party/components/output/AnswerButton-server.ts +1 -1
  172. package/test/party/components/output/AnswerButtonApp-client.ts +14 -7
  173. package/test/party/components/output/AnswerButtonApp-server.ts +2 -2
  174. package/test/party/components/output/ColorSelect-client.ts +15 -10
  175. package/test/party/components/output/ColorSelect-server.ts +2 -2
  176. package/test/party/components/output/Colors-client.ts +15 -9
  177. package/test/party/components/output/Colors-server.ts +2 -2
  178. package/test/party/components/output/Counter-client.ts +8 -6
  179. package/test/party/components/output/Counter-server.ts +1 -1
  180. package/test/party/components/output/CssStyle-client.ts +6 -4
  181. package/test/party/components/output/CssStyle-server.ts +1 -1
  182. package/test/party/components/output/DoubleCount-client.ts +7 -5
  183. package/test/party/components/output/DoubleCount-server.ts +1 -1
  184. package/test/party/components/output/FunnyButton-client.ts +15 -9
  185. package/test/party/components/output/FunnyButton-server.ts +2 -2
  186. package/test/party/components/output/FunnyButtonApp-client.ts +20 -9
  187. package/test/party/components/output/FunnyButtonApp-server.ts +3 -3
  188. package/test/party/components/output/HelloWorld-client.ts +6 -4
  189. package/test/party/components/output/HelloWorld-server.ts +1 -1
  190. package/test/party/components/output/InputFocused-client.ts +7 -4
  191. package/test/party/components/output/InputFocused-server.ts +1 -1
  192. package/test/party/components/output/InputHello-client.ts +8 -6
  193. package/test/party/components/output/InputHello-server.ts +1 -1
  194. package/test/party/components/output/IsAvailable-client.ts +8 -6
  195. package/test/party/components/output/IsAvailable-server.ts +1 -1
  196. package/test/party/components/output/Name-client.ts +7 -5
  197. package/test/party/components/output/Name-server.ts +1 -1
  198. package/test/party/components/output/NameUpdate-client.ts +7 -5
  199. package/test/party/components/output/NameUpdate-server.ts +1 -1
  200. package/test/party/components/output/PageTitle-client.ts +7 -5
  201. package/test/party/components/output/PageTitle-server.ts +1 -1
  202. package/test/party/components/output/PickPill-client.ts +9 -7
  203. package/test/party/components/output/PickPill-server.ts +1 -1
  204. package/test/party/components/output/Time-client.ts +7 -5
  205. package/test/party/components/output/Time-server.ts +1 -1
  206. package/test/party/components/output/TrafficLight-client.ts +22 -17
  207. package/test/party/components/output/TrafficLight-server.ts +5 -5
  208. package/test/party/components/output/UserProfile-client.ts +10 -8
  209. package/test/party/components/output/UserProfile-server.ts +1 -1
  210. package/test/party/components/output/UserProfileApp-client.ts +12 -4
  211. package/test/party/components/output/UserProfileApp-server.ts +2 -0
  212. package/test/party/components/output/UserProfileContext-client.ts +9 -7
  213. package/test/party/components/output/UserProfileContext-server.ts +1 -1
  214. package/test/party/components/output/UserProfileContextApp-client.ts +14 -7
  215. package/test/party/components/output/UserProfileContextApp-server.ts +2 -2
  216. package/test/party/components/temp/{AnswerButton-client-c3dc7edbfff2db1ea111086002147d771ee12193.ts → AnswerButton-client-ad8f8db36b7aaa68d8de5898a324bacfbe9f20df.ts} +8 -6
  217. package/test/party/components/temp/{AnswerButton-server-427442fa8cfc0a18817c2d37f9cb5cbcb3a88a05.ts → AnswerButton-server-928b5d447afa865fa09e0142c79bb1f2c1b86875.ts} +1 -1
  218. package/test/party/components/temp/{AnswerButtonApp-client-3e0b63a6bbc1dee3e6cb715c0297cc2ce58d3e4e.ts → AnswerButtonApp-client-959a3756a3549b01c5d4c6e7b1dade9dc14ce671.ts} +14 -7
  219. package/test/party/components/temp/{AnswerButtonApp-server-bbc8bb739d2060ccda77ce406aa6b15d8f90b91c.ts → AnswerButtonApp-server-16161f2c9062dd11b8b6b8c898f9f1249ae2400d.ts} +2 -2
  220. package/test/party/components/temp/{ColorSelect-client-5ffa6f9d77de967993088c9a01b9f976f3333176.ts → ColorSelect-client-06e6ef9f285d81975b97d89c8a68a494a32a8e3b.ts} +15 -10
  221. package/test/party/components/temp/{ColorSelect-server-3ed19eff17bf10b31d03ec507974ff913932c97a.ts → ColorSelect-server-90f83722bd85155ebb2b8ccdaf053cd28d3152be.ts} +2 -2
  222. package/test/party/components/temp/{Colors-client-3dafffc5c2a72037f4419fc45d08963872a29958.ts → Colors-client-2f3ab581879042904699c9d47ae5001b82edd910.ts} +15 -9
  223. package/test/party/components/temp/{Colors-server-f9b3037a5f25979f71b5f8f3e658140be7c27920.ts → Colors-server-e13d49ba57f7b0dc6fb10a333ec872f5207e1ff0.ts} +2 -2
  224. package/test/party/components/temp/{Counter-client-4d553521fcfc6c9a4e05dce89e70b2ecf8785c4e.ts → Counter-client-3b876c148f2b14da1766eff77eb6c494f7be6414.ts} +8 -6
  225. package/test/party/components/temp/{Counter-server-36d1137c519691f5b86a18a5c27b7cf615b7e37c.ts → Counter-server-7adf9376b38d97f1fd4b9c14108e6814e81f14ea.ts} +1 -1
  226. package/test/party/components/temp/{CssStyle-client-59c0f261f67bc04f2829a0371f655d146101cec6.ts → CssStyle-client-37465dd48d1479db1bae513eb0b92c4e9a15e9ea.ts} +6 -4
  227. package/test/party/components/temp/{CssStyle-server-3e58d7e2f5c381a251f593245d3d8bf4b50925ae.ts → CssStyle-server-90a950501a20bfa5feac84ca6d97898c25bce2ed.ts} +1 -1
  228. package/test/party/components/temp/{DoubleCount-client-0426f128507a8d4516ef7501cd180662112b6d1d.ts → DoubleCount-client-6d4cf1e54368e3c6082e37c1e04f9ecde90624f2.ts} +7 -5
  229. package/test/party/components/temp/{DoubleCount-server-40fc88156e52281b80fd6b12dd73d2469201fa29.ts → DoubleCount-server-62c94483ebe9661e5ecc4f489787e32448ddcafa.ts} +1 -1
  230. package/test/party/components/temp/FunnyButton-client-400cff6abc7bdd6dbcd23786070eb0e198800337.ts +46 -0
  231. package/test/party/components/temp/{FunnyButton-server-e8ab55e47c735f7e42c55d2b7504dfa4190a1b40.ts → FunnyButton-server-e0adab2be2d283acb8a8b580479ade999dc918e9.ts} +2 -2
  232. package/test/party/components/temp/{FunnyButtonApp-client-ac7101af922dc6ba472b75a428f340caca6be74a.ts → FunnyButtonApp-client-42c39a8ffb7563c474e6b3ccfc9d4ee064c8fbee.ts} +20 -9
  233. package/test/party/components/temp/{FunnyButtonApp-server-f1a98a946e0bb9d1bb76b01e26d6ead8f55d32bb.ts → FunnyButtonApp-server-48d37de0c755843a2be34d7c7cb5c730689dcc2f.ts} +3 -3
  234. package/test/party/components/temp/{HelloWorld-client-791e8b9a0bd4b01e87fbe70f2b28d4ac356e3624.ts → HelloWorld-client-7344e400b4adb975fa8263d3081a06de0a793e57.ts} +6 -4
  235. package/test/party/components/temp/{HelloWorld-server-3c4b9a995a78d652d9220a20124c9e0d18fc7101.ts → HelloWorld-server-e0ed80e7531f303952a4af30d646263ff2e4ead6.ts} +1 -1
  236. package/test/party/components/temp/{InputFocused-client-11a9cb08909b26945bbc2451ab4c1dac09e6d113.ts → InputFocused-client-20d755aea7dfaf1fd5e42dcade8fb7867f59ef28.ts} +7 -4
  237. package/test/party/components/temp/{InputFocused-server-82be1a63c80d1dd3f06efaf0bef349d58cf1d9af.ts → InputFocused-server-ee70758a515227c04788be0e298a79c277994ccd.ts} +1 -1
  238. package/test/party/components/temp/{InputHello-client-b0453caeae0d43dc1878039c6b49318d12624d48.ts → InputHello-client-2a4cbd980534fde14b9d3e8a2f8e4f59a4f15d64.ts} +8 -6
  239. package/test/party/components/temp/{InputHello-server-6c982438e58d3649ee3890efec636ca4590a5cdb.ts → InputHello-server-1b9dd5442ded022abe92a9075ca5a4bb90486cbe.ts} +1 -1
  240. package/test/party/components/temp/{IsAvailable-client-d789346a68b26fd3f5d9f7aebc4c7bd181c47cad.ts → IsAvailable-client-3949f85aea0e935c3b59ab1389baee836eff1866.ts} +8 -6
  241. package/test/party/components/temp/{IsAvailable-server-a35b7ec5f111472c76aa1b67c857b169fe363594.ts → IsAvailable-server-123daa1ae56b77defe6666faddb44ba4252dd0fb.ts} +1 -1
  242. package/test/party/components/temp/{Name-client-cb8bef7cfca1306386b65410a0bd7a8acfaed359.ts → Name-client-62f0dab96aff130e81882099d7c0a111ba99cebd.ts} +7 -5
  243. package/test/party/components/temp/{Name-server-9da0823f748e9751e017078f39717298be232636.ts → Name-server-a402418f1ca2d8a0e6403596ec03ec47b5ff40ec.ts} +1 -1
  244. package/test/party/components/temp/{NameUpdate-client-ebef69b0da12d640994099592ce06c7e4b5089d4.ts → NameUpdate-client-6ceb440637c99142bafcf8512eabf831c113b8c7.ts} +7 -5
  245. package/test/party/components/temp/{NameUpdate-server-1856bdb5e010f7d7e5e67f2a0d87ac3f92f4e0ee.ts → NameUpdate-server-b7dcc875e894a5606544fcd78bda575ea07632ca.ts} +1 -1
  246. package/test/party/components/temp/{PageTitle-client-403645e918294e5cdeea8cb3f602e0a2642b2650.ts → PageTitle-client-75fea3a37fb1213bc13f56160bb6779486b2e6e9.ts} +7 -5
  247. package/test/party/components/temp/{PageTitle-server-4d959183b7029b6817372abd1d60a7e996baeb15.ts → PageTitle-server-12dcb4e437aaef227c704a2ee8bbdee55ca323dc.ts} +1 -1
  248. package/test/party/components/temp/{PickPill-client-b47d371ae5f41d87c96b3cdeed0a8bc06fbfa9c7.ts → PickPill-client-0f13aa652cb1bd45f57d5a249f8364e80204441a.ts} +9 -7
  249. package/test/party/components/temp/{PickPill-server-49e033c5f97dd2f98e1498327e16eb9c8c9d2f66.ts → PickPill-server-f10dae4708e36775a5e1a5ad10c6c0c309335009.ts} +1 -1
  250. package/test/party/components/temp/{Time-client-7ba4ca9322af2cb88a873c812fc776760c337c64.ts → Time-client-2013f274e90b45be3138727f2298305e1951131f.ts} +7 -5
  251. package/test/party/components/temp/{Time-server-08f66c7f3f32b13de06d75fe679cf58b5727c473.ts → Time-server-8e0278a4b16925903f3c4ceedbf1332cde4921fa.ts} +1 -1
  252. package/test/party/components/temp/{TrafficLight-client-549f9fe3418c113fb240cfa17e09c42e1e7f346a.ts → TrafficLight-client-b536f07f37c21cd9340db9cef7b95d30c53f9349.ts} +22 -17
  253. package/test/party/components/temp/{TrafficLight-server-ed2a8640fd82cf381eee8f4fb83bb09d174a4557.ts → TrafficLight-server-04bb3b2f11322ccc97a9a8a8fbb26c3c99843042.ts} +5 -5
  254. package/test/party/components/temp/{UserProfile-client-2c13aac1ad915e51dc557f9af765669e636c0fea.ts → UserProfile-client-11c2a928de5a5ed4cab45186f08ca09f6161afb5.ts} +10 -8
  255. package/test/party/components/temp/{UserProfile-server-cc1162a4297f6163bfb86e7a8aeea08e8c0625c6.ts → UserProfile-server-a0576b8d9dd15b3fab6c11758984c686ddfe2f66.ts} +1 -1
  256. package/test/party/components/temp/{UserProfileApp-client-2be7a11319cca4d7bfa0f3d2205c441d7e203780.ts → UserProfileApp-client-deefee703fc851401cd3a4eec7606d0a228a631d.ts} +12 -4
  257. package/test/party/components/temp/{UserProfileApp-server-ab9ff66f787f775aa8571314fee8bcbef85489ef.ts → UserProfileApp-server-97397c42aaac0ee3902218d02c0ce6884434cc5b.ts} +2 -0
  258. package/test/party/components/temp/{UserProfileContext-client-2aa36f436a5f20614d77f48963ec5ca442eebd90.ts → UserProfileContext-client-c97c077254210061b3c9ba561f681c0cf4f6167f.ts} +9 -7
  259. package/test/party/components/temp/{UserProfileContext-server-cf58767df1e2d1dde919f59de73cdd9764bbc006.ts → UserProfileContext-server-2d32476b00448bdec6c1c45aac5087a5152c2471.ts} +1 -1
  260. package/test/party/components/temp/{UserProfileContextApp-client-5099052fdcd8fb4c368c45090390947424a4e9b0.ts → UserProfileContextApp-client-0f5f11a3fd62f7e0e428fec2a260b93fcff61578.ts} +14 -7
  261. package/test/party/components/temp/{UserProfileContextApp-server-6be8dab2ed4f8911f26bef137e7dea164f2b894d.ts → UserProfileContextApp-server-95a4b12d30cef621db55d5de102a906ac7286fb2.ts} +2 -2
  262. package/test/props/components/output/Reactive-client.ts +21 -12
  263. package/test/props/components/output/Reactive-server.ts +3 -3
  264. package/test/props/components/temp/{Reactive-client-e3e5f6ee2f22c46337c6ab1df2f241133c7e2646.ts → Reactive-client-524add56a858b575fda1001bfe4891e6a1d6d751.ts} +21 -12
  265. package/test/props/components/temp/{Reactive-server-0914d91287a1bc6d32d7cc56d086624762dbfc04.ts → Reactive-server-770cd3df7c877c0c99e156b2ba6d1f8b35914027.ts} +3 -3
  266. package/test/replace/components/output/Replace-client.ts +14 -8
  267. package/test/replace/components/output/Replace-server.ts +2 -2
  268. package/test/replace/components/temp/{Replace-client-3fdab63871fa4bb792317caefd3539b1888325b1.ts → Replace-client-7f6ae4e645d18c4768ef9a212b2e9626c9abdeb0.ts} +14 -8
  269. package/test/replace/components/temp/{Replace-server-857aca7a58deffc3a1c95ab9d31628b4051ca203.ts → Replace-server-9519943d193b681e1d7894a0d7952affdfb0660c.ts} +2 -2
  270. package/test/slots/components/output/Article-client.ts +21 -10
  271. package/test/slots/components/output/Article-server.ts +2 -2
  272. package/test/slots/components/output/Basic-client.ts +12 -5
  273. package/test/slots/components/output/Basic-server.ts +2 -0
  274. package/test/slots/components/output/Header-client.ts +13 -7
  275. package/test/slots/components/output/Header-server.ts +2 -2
  276. package/test/slots/components/output/Let-client.ts +12 -5
  277. package/test/slots/components/output/Let-server.ts +2 -0
  278. package/test/slots/components/output/List-client.ts +18 -10
  279. package/test/slots/components/output/List-server.ts +2 -2
  280. package/test/slots/components/output/Named-client.ts +15 -8
  281. package/test/slots/components/output/Named-server.ts +2 -0
  282. package/test/slots/components/output/Unused-client.ts +12 -4
  283. package/test/slots/components/output/Unused-server.ts +2 -0
  284. package/test/slots/components/temp/Article-client-5f243a2540a073d4018bdc93c6a8e285ba965f5c.ts +52 -0
  285. package/test/slots/components/temp/{Article-server-a6bd47a621cc213db4313eb775a52246541dd203.ts → Article-server-b84141b05064f5ea1e4b535faafe459df0d875fb.ts} +2 -2
  286. package/test/slots/components/temp/{Basic-client-97b18686412869e8c814fd4542dfe826b1f7669f.ts → Basic-client-85377d56d5d37f56ebb10a709e9ffa1a91a2dd91.ts} +12 -5
  287. package/test/slots/components/temp/{Basic-server-248392e2cd147b537cd44e9a5a71885ef20102e4.ts → Basic-server-aed46a5b459cce50e7ddb311c42a76b9e91c2dae.ts} +2 -0
  288. package/test/slots/components/temp/{Header-client-e2e1e7d60b48b0841cd0c20224f520330ca96458.ts → Header-client-247a12314f4fc2695e63b576731b9d0c2a73dcac.ts} +13 -7
  289. package/test/slots/components/temp/{Header-server-1c195508a91c32822da22a08576c8a30c9070636.ts → Header-server-d8e8ccb129d84478f0c4f8dc8ad1d2091188cc7b.ts} +2 -2
  290. package/test/slots/components/temp/{Let-client-be69c1f5aa32faf16239050d7836db46cfdcba2f.ts → Let-client-2625080a2799f5124b1b7083b780958f95539f15.ts} +12 -5
  291. package/test/slots/components/temp/{Let-server-c3293219ed27aec61a6af36d451ddf6609c40027.ts → Let-server-62727e5e2db3df405cdbe7a2d339a99113fc7f4a.ts} +2 -0
  292. package/test/slots/components/temp/{List-client-a829b33214de829de689a72d2e8703b2266ad7a4.ts → List-client-2b316860db37180e9bdfabb32f18b391c3994ac4.ts} +18 -10
  293. package/test/slots/components/temp/{List-server-06503834c9bfae9b8c2b61742568b020a3de961c.ts → List-server-f4f63df4d19e15311da347284935a1bb530a8df4.ts} +2 -2
  294. package/test/slots/components/temp/{Named-client-2d9d88f5fdf74d81c3ed1d769a476f4ac36c8b99.ts → Named-client-64e56746d78b308fd788c9b0409d79e4c91756ff.ts} +15 -8
  295. package/test/slots/components/temp/{Named-server-65a7bbf038111475c8f07dccb34040ab8c1392c4.ts → Named-server-829daa82c94fd7142a721cabac1b3402cca8fce6.ts} +2 -0
  296. package/test/slots/components/temp/{Unused-client-1b16491cb800bbbbd871d9fbf5966c7275244019.ts → Unused-client-3436f47c322f34378aa240b8ad789048d35b4829.ts} +12 -4
  297. package/test/slots/components/temp/{Unused-server-e5d1e85116bebc7e1a2882cb8f2c9ae7975a1de7.ts → Unused-server-379b45ff313e82f8b2949385f50d8ea482094520.ts} +2 -0
  298. package/test/special-component/components/output/BigTitle-client.ts +12 -6
  299. package/test/special-component/components/output/BigTitle-server.ts +2 -2
  300. package/test/special-component/components/output/Component-client.ts +16 -5
  301. package/test/special-component/components/output/Component-server.ts +2 -2
  302. package/test/special-component/components/output/SmallTitle-client.ts +12 -6
  303. package/test/special-component/components/output/SmallTitle-server.ts +2 -2
  304. package/test/special-component/components/temp/{BigTitle-client-881a9f84876fb3f6d994736edb253b96e71de926.ts → BigTitle-client-aa7930485dfd471094922b7725ab6fd7718817e6.ts} +12 -6
  305. package/test/special-component/components/temp/{BigTitle-server-9efc738f5eb131a4b859c4a99a8e255d93834e9a.ts → BigTitle-server-d8919a4c975e022c936584bd668917cb89aa8e20.ts} +2 -2
  306. package/test/special-component/components/temp/{Component-client-22f7e1d0955fb3d90939e956a1f0f77118c259b6.ts → Component-client-3353f5d7d697fd754f92ea30f751f62efb0635c9.ts} +16 -5
  307. package/test/special-component/components/temp/{Component-server-ce596cd84dc11f67c9f0588060a5b672eddf9715.ts → Component-server-3564dfcef8d015cab4944a3c75cc6cf329f3fad6.ts} +2 -2
  308. package/test/special-component/components/temp/{SmallTitle-client-25b3097b7ae47848dd82967403faf7745fc43388.ts → SmallTitle-client-419568c1936f1bb8346db193f0a17848aac61e8e.ts} +12 -6
  309. package/test/special-component/components/temp/{SmallTitle-server-fc105db9a91b83644d67e049ce583a3d1a61f50c.ts → SmallTitle-server-0a9b5098e4dda96f8c1da30294d71b39997dd118.ts} +2 -2
  310. package/test/special-element/components/output/Element-client.ts +8 -6
  311. package/test/special-element/components/output/Element-server.ts +1 -1
  312. package/test/special-element/components/temp/{Element-client-21c92c04579b1d29e8813265a10897d069aad5c5.ts → Element-client-c5701ed44faa4ec8ae558505063684a84cada3f2.ts} +8 -6
  313. package/test/special-element/components/temp/{Element-server-4bed9653529f39e72754126147fe8618f328853a.ts → Element-server-166d672256ef4635168de0090e490e48b569c7d6.ts} +1 -1
  314. package/test/special-head/components/output/Head-client.ts +6 -4
  315. package/test/special-head/components/output/Head-server.ts +1 -1
  316. package/test/special-head/components/temp/{Head-client-07e8af6386d767a52667a4fdc978a335ec388302.ts → Head-client-18616689a7d6f83ca076c9d825606b049de9d3ef.ts} +6 -4
  317. package/test/special-head/components/temp/{Head-server-d80a0f1ee10e9942d9a631df35a24cb1cfb15555.ts → Head-server-c0956653b544ff632e36da15d5f7623fa285953a.ts} +1 -1
  318. package/test/special-self/components/output/Self-client.ts +19 -10
  319. package/test/special-self/components/output/Self-server.ts +4 -4
  320. package/test/special-self/components/temp/{Self-client-911c67194be1fdd997537310bcafe712161e8251.ts → Self-client-bc1db32c01ceebd8aac04288c4d73431cffb200f.ts} +19 -10
  321. package/test/special-self/components/temp/{Self-server-49ba9be1f6255dd4daf490c640f5222a85960218.ts → Self-server-ee440757ca9772d7b4111451a9ee05a157302e7c.ts} +4 -4
  322. package/test/style/components/output/Style-client.ts +7 -4
  323. package/test/style/components/output/Style-server.ts +1 -1
  324. package/test/style/components/temp/{Style-client-cbfac1e255c33a867ccbd5f9d1484a855d91a2d7.ts → Style-client-bc13f8dbb5f754e4eebb2473fc63a139ebf1ba92.ts} +7 -4
  325. package/test/style/components/temp/{Style-server-763d82ee2296be3f7620814aed950b505329c04c.ts → Style-server-85720cb43e20ab000f98bc632c29454a51ae92d9.ts} +1 -1
  326. package/test/svg/components/output/Shape-client.ts +17 -11
  327. package/test/svg/components/output/Shape-server.ts +4 -4
  328. package/test/svg/components/temp/{Shape-client-cb98b36ab2a0d9f06b484a3c988fb43c3a71a4a0.ts → Shape-client-8e9515d4a360b9f4a945263a485486a557da1075.ts} +17 -11
  329. package/test/svg/components/temp/{Shape-server-500d7fe4556026234ce5379b8e90595ddd094edc.ts → Shape-server-9951ff1dcc7aa0827f28d3f8d970813767115ae3.ts} +4 -4
  330. package/test/switch/components/output/Switch-client.ts +20 -14
  331. package/test/switch/components/output/Switch-server.ts +5 -5
  332. package/test/switch/components/temp/{Switch-client-9980de45e3346b79525c445edec7cbc3b375e8a4.ts → Switch-client-485db0bdd94941ecad84528054f40ec6330c5e48.ts} +20 -14
  333. package/test/switch/components/temp/{Switch-server-1c5690726f28008bb565966af69b6e4e019dea82.ts → Switch-server-c1b5e1c657438ee3d8afdbf2166c5295cafc5604.ts} +5 -5
  334. package/test/template/errors.test.ts +8 -6
  335. package/test/text/components/output/Text-client.ts +8 -6
  336. package/test/text/components/output/Text-server.ts +1 -1
  337. package/test/text/components/temp/{Text-client-63f1d3bf9b3bd145c7ce7058716640e27144055e.ts → Text-client-e335aae6d8aef389dfdbb5bee14e3dd3d41e86bd.ts} +8 -6
  338. package/test/text/components/temp/{Text-server-9d3dd6f51e893e63c1999ceafce19ca1697d76ea.ts → Text-server-e37d33aa182f36461927d8ce36040bfd05e2f227.ts} +1 -1
  339. package/test/watch-array/components/output/Array-client.ts +15 -9
  340. package/test/watch-array/components/output/Array-server.ts +2 -2
  341. package/test/watch-array/components/output/ArrayEntries-client.ts +15 -9
  342. package/test/watch-array/components/output/ArrayEntries-server.ts +2 -2
  343. package/test/watch-array/components/output/ArrayIndexes-client.ts +15 -9
  344. package/test/watch-array/components/output/ArrayIndexes-server.ts +2 -2
  345. package/test/watch-array/components/output/ArrayUnkeyed-client.ts +15 -9
  346. package/test/watch-array/components/output/ArrayUnkeyed-server.ts +2 -2
  347. package/test/watch-array/components/temp/{Array-client-ffd82188a45877d74053c82fb3616e4aed0fc2ad.ts → Array-client-8b76b82f631c149d12466795ef6b016ebeda5568.ts} +15 -9
  348. package/test/watch-array/components/temp/{Array-server-3715e815af887e8487b214e7de324850fe99e312.ts → Array-server-c907209008ac6177f614b62931a2bb1f1c3a04e1.ts} +2 -2
  349. package/test/watch-array/components/temp/{ArrayEntries-client-b6e982660628576061dbb44539e970b9549bdcfa.ts → ArrayEntries-client-c7b6352485a0d8ebcdb150d3e7f49d60493fde92.ts} +15 -9
  350. package/test/watch-array/components/temp/{ArrayEntries-server-85cbe80fbb7f6885287825e2cc0dfc1cb9835d79.ts → ArrayEntries-server-57c1ab0045fa4a02de95f69a65de6f54efe9850c.ts} +2 -2
  351. package/test/watch-array/components/temp/{ArrayIndexes-client-39337aa43bd8c10a53db836c3be233d48dd39b91.ts → ArrayIndexes-client-d8321be46a9572147e7b4bc71d7496985217b4f8.ts} +15 -9
  352. package/test/watch-array/components/temp/{ArrayIndexes-server-ec623c724af0c7212675d61ea68e9dee87f96caa.ts → ArrayIndexes-server-f093878b94a37617e2e697a786caa680f75630a7.ts} +2 -2
  353. package/test/watch-array/components/temp/{ArrayUnkeyed-client-7606f9a6a221c8cf6a8b51e4895d10a3d7bccc11.ts → ArrayUnkeyed-client-e37813da82c6d06de32d77348f23ed29c9c08187.ts} +15 -9
  354. package/test/watch-array/components/temp/{ArrayUnkeyed-server-db21cd576a4c70973abe10f6c8ef5cecb3ead86c.ts → ArrayUnkeyed-server-c893fa024be07e5e7fce608c3ae456bdf2279dbe.ts} +2 -2
  355. package/test/watch-object/components/output/Watched-client.ts +7 -5
  356. package/test/watch-object/components/output/Watched-server.ts +1 -1
  357. package/test/watch-object/components/temp/{Watched-client-bbffbf2cede1a5c071b770670eb39c0f0be725af.ts → Watched-client-d26e846bbeb8271ec5dc2a1ceb75b362af44d3bd.ts} +7 -5
  358. package/test/watch-object/components/temp/{Watched-server-0252addaf92fb0f0c1e2937f42918a1c9f31d196.ts → Watched-server-312fca1e769d7594fc5bb6295ccf55b544dd2f4d.ts} +1 -1
  359. package/test/class/components/temp/Class-server-853a463d2ad1a1e3da4da5ad59ad1c75461d2431.ts +0 -40
  360. package/test/party/components/temp/FunnyButton-client-45f2c5dd56f2cdb80102193a978df6b0cec822ab.ts +0 -40
  361. package/test/slots/components/temp/Article-client-80848d6cadd8abac61865d14ddd35685844797e0.ts +0 -41
package/dist/index.d.ts CHANGED
@@ -43,29 +43,10 @@ declare function addAnimation(el: HTMLElement, entry?: Animation$1, exit?: Anima
43
43
 
44
44
  declare function addEvent(el: Element, type: string, listener: (this: Element, ev: any) => any): void;
45
45
 
46
- declare function addFragment(fragment: DocumentFragment, parent: ParentNode, before: Node | null): void;
46
+ declare function addFragment(fragment: DocumentFragment, parent: ParentNode, before: Node | null, endNode?: ChildNode): void;
47
47
 
48
48
  declare function applyProps(el: Element, props: Record<string, any> | undefined, propNamesUsed: string[]): void;
49
49
 
50
- declare function getFragment(document: Document, array: DocumentFragment[], index: number, html: string, ns?: boolean): DocumentFragment;
51
-
52
- /**
53
- * Hydrates a component into an existing DOM tree
54
- * @param parent The parent node
55
- * @param component The component to mount
56
- * @param props An object containing component props
57
- */
58
- declare function hydrate(parent: ParentNode, component: Component, props?: Record<string, any>, slots?: Record<string, SlotRender>): void;
59
-
60
- /**
61
- * Mounts a component into a DOM node
62
- *
63
- * @param parent The node to mount the component into
64
- * @param component The component to mount
65
- * @param props An object containing component props
66
- */
67
- declare function mount(parent: ParentNode, component: Component, props?: Record<string, any>, slots?: Record<string, SlotRender>): void;
68
-
69
50
  /**
70
51
  * State data for a property in a proxy.
71
52
  */
@@ -110,6 +91,27 @@ type Range = {
110
91
  animations: Set<Animation> | null;
111
92
  };
112
93
 
94
+ declare function clearLayoutSlot(range: Range): void;
95
+
96
+ declare function getFragment(document: Document, array: DocumentFragment[], index: number, html: string, ns?: boolean): DocumentFragment;
97
+
98
+ /**
99
+ * Hydrates a component into an existing DOM tree
100
+ * @param parent The parent node
101
+ * @param component The component to mount
102
+ * @param props An object containing component props
103
+ */
104
+ declare function hydrate(parent: ParentNode, component: Component, props?: Record<string, any>, slots?: Record<string, SlotRender>): void;
105
+
106
+ /**
107
+ * Mounts a component into a DOM node
108
+ *
109
+ * @param parent The node to mount the component into
110
+ * @param component The component to mount
111
+ * @param props An object containing component props
112
+ */
113
+ declare function mount(parent: ParentNode, component: Component, props?: Record<string, any>, slots?: Record<string, SlotRender>): void;
114
+
113
115
  type ListItem = Range & {
114
116
  data: Record<string, any>;
115
117
  key: any;
@@ -119,22 +121,75 @@ declare function newListItem(data: Record<PropertyKey, any>, key?: any): ListIte
119
121
 
120
122
  declare function newRange(): Range;
121
123
 
122
- declare function nodeAnchor(node: Node): Node;
124
+ /**
125
+ * Gets the anchor node for a control statement or component.
126
+ *
127
+ * When mounting, this just returns the anchor node parameter (because it was
128
+ * created).
129
+ *
130
+ * When hydrating, there should be matched <![> and <!]> comments in the HTML,
131
+ * and the anchor node should be after the end comment. The matched comment
132
+ * nodes will be deleted, and the hydration node set to the first node inside
133
+ * the matched comments.
134
+ *
135
+ * @param node The potential anchor node.
136
+ * @returns The anchor node.
137
+ */
138
+ declare function nodeAnchor(node: ChildNode): ChildNode;
123
139
 
124
140
  /**
125
- * Gets the first child of a node
141
+ * Gets the first child of a node.
142
+ *
143
+ * Sets the hydration node.
144
+ *
145
+ * @param parent The parent node.
126
146
  */
127
- declare function nodeChild(parent: Node): Node;
147
+ declare function nodeChild(parent: Node): ChildNode;
128
148
 
129
149
  /**
130
- * Gets the next sibling of a node
150
+ * Gets the next sibling of a node.
151
+ *
152
+ * When hydrating, sets the hydration node.
153
+ *
154
+ * @param node The node.
155
+ * @param text Whether we require a text node.
131
156
  */
132
- declare function nodeNext(node: Node, count?: number): Node;
157
+ declare function nodeNext(node: ChildNode, text?: boolean): ChildNode;
133
158
 
134
159
  /**
135
- * Gets the first child in a fragment
136
- * */
137
- declare function nodeRoot(parent: Node): Node;
160
+ * Gets the anchor node after adding a fragment.
161
+ *
162
+ * When hydrating, the anchor node initially gets set to the first node in the
163
+ * statement, and then we work through the nodes until we get to the anchor node
164
+ * itself. So, after hydrating, we need to set the anchor node to the actual
165
+ * anchor node, from the current hydration node.
166
+ *
167
+ * I'm not sure this is going to always be the case...
168
+ *
169
+ * @param node The anchor node.
170
+ * @returns The (maybe new) anchor node.
171
+ */
172
+ declare function nodeReanchor(node: ChildNode): ChildNode;
173
+
174
+ /**
175
+ * Gets the first child in a fragment.
176
+ *
177
+ * When hydrating, also sets the active range's start node, while we have it.
178
+ *
179
+ * @param parent The parent of the fragment.
180
+ * @param text Whether we require a text node.
181
+ */
182
+ declare function nodeRoot(parent: Node, text?: boolean): ChildNode;
183
+
184
+ /**
185
+ * Gets the sibling of a node, x nodes after it.
186
+ *
187
+ * When hydrating, sets the hydration node.
188
+ *
189
+ * @param node The node.
190
+ * @param count The number of nodes to skip.
191
+ */
192
+ declare function nodeSkip(node: ChildNode, count: number): ChildNode;
138
193
 
139
194
  declare function popRange(oldRange: Range | null): void;
140
195
 
@@ -148,6 +203,8 @@ declare function runControl(range: Range, anchor: Node | null, create: (anchor:
148
203
 
149
204
  declare function runControlBranch(range: Range, index: number, create: () => void): void;
150
205
 
206
+ declare function runLayoutSlot(component: Component, slot: SlotRender, parent: ParentNode, anchor: Node | null, $props: Record<string, string>, $context?: Record<PropertyKey, any>): Range;
207
+
151
208
  /**
152
209
  * Runs a `for` control statement
153
210
  * @param create A function that creates the control statement's branches
@@ -163,4 +220,4 @@ declare function setDynamicElement(el: HTMLElement, tag: string): HTMLElement;
163
220
  */
164
221
  type ServerComponent = ($props?: Record<string, any>, $context?: Record<string, any>, $slots?: Record<string, ServerSlotRender>) => string;
165
222
 
166
- export { $mount, $run, $unwrap, $watch, Component, type ListItem, type ServerComponent, ServerSlotRender, SlotRender, hydrate, mount, addFragment as t_add_fragment, nodeAnchor as t_anchor, addAnimation as t_animate, applyProps as t_apply_props, setAttribute as t_attribute, nodeChild as t_child, setDynamicElement as t_dynamic, addEvent as t_event, getFragment as t_fragment, newListItem as t_list_item, nodeNext as t_next, popRange as t_pop_range, pushRange as t_push_range, newRange as t_range, nodeRoot as t_root, runControlBranch as t_run_branch, runControl as t_run_control, runList as t_run_list };
223
+ export { $mount, $run, $unwrap, $watch, Component, type ListItem, type ServerComponent, ServerSlotRender, SlotRender, clearLayoutSlot, hydrate, mount, runLayoutSlot, addFragment as t_add_fragment, nodeAnchor as t_anchor, addAnimation as t_animate, applyProps as t_apply_props, setAttribute as t_attribute, nodeChild as t_child, setDynamicElement as t_dynamic, addEvent as t_event, getFragment as t_fragment, newListItem as t_list_item, nodeNext as t_next, popRange as t_pop_range, pushRange as t_push_range, newRange as t_range, nodeReanchor as t_reanchor, nodeRoot as t_root, runControlBranch as t_run_branch, runControl as t_run_control, runList as t_run_list, nodeSkip as t_skip };
package/dist/index.js CHANGED
@@ -262,12 +262,12 @@ async function animate(el, enter, keyframes, options) {
262
262
  }
263
263
 
264
264
  // src/render/addFragment.ts
265
- function addFragment(fragment, parent, before) {
265
+ function addFragment(fragment, parent, before, endNode) {
266
266
  const range = context_default.activeRange;
267
267
  const hydrationNode = context_default.hydrationNode;
268
268
  if (range) {
269
269
  if (hydrationNode) {
270
- range.endNode = hydrationNode;
270
+ range.endNode = endNode ?? hydrationNode;
271
271
  } else {
272
272
  range.startNode = fragment.firstChild;
273
273
  range.endNode = fragment.lastChild;
@@ -281,7 +281,7 @@ function addFragment(fragment, parent, before) {
281
281
  parent.insertBefore(fragment, before);
282
282
  }
283
283
  if (!parentIsFragment) {
284
- if (!context_default.hydrationNode) {
284
+ if (!hydrationNode) {
285
285
  for (let effect of context_default.mountEffects) {
286
286
  $run(effect);
287
287
  }
@@ -333,6 +333,59 @@ function applyProps(el, props, propNamesUsed) {
333
333
  }
334
334
  }
335
335
 
336
+ // src/render/clearRange.ts
337
+ function clearRange(range) {
338
+ let animations = [];
339
+ clearEffects(range, animations);
340
+ if (animations.length) {
341
+ Promise.all(animations.map((a) => a.finished)).then(() => clearNodes(range));
342
+ } else {
343
+ clearNodes(range);
344
+ }
345
+ }
346
+ function clearEffects(range, animations) {
347
+ if (range.effects) {
348
+ const oldRange = context_default.activeRange;
349
+ context_default.activeRange = range;
350
+ for (let effect of range.effects) {
351
+ removeEffect(effect);
352
+ }
353
+ context_default.activeRange = oldRange;
354
+ }
355
+ if (range.animations) {
356
+ for (let animation of range.animations) {
357
+ animations.push(animation);
358
+ }
359
+ }
360
+ if (range.children) {
361
+ for (let child of range.children) {
362
+ clearEffects(child, animations);
363
+ }
364
+ range.children.length = 0;
365
+ }
366
+ }
367
+ function clearNodes(range) {
368
+ if (range.startNode) {
369
+ let currentNode = range.endNode || range.startNode;
370
+ if (range.startNode.parentNode !== currentNode.parentNode) {
371
+ throw new Error("range nodes have different parents");
372
+ }
373
+ while (currentNode !== range.startNode) {
374
+ let nextNode = currentNode.previousSibling;
375
+ currentNode.remove();
376
+ currentNode = nextNode;
377
+ }
378
+ currentNode.remove();
379
+ range.startNode = null;
380
+ range.endNode = null;
381
+ }
382
+ }
383
+
384
+ // src/render/clearLayoutSlot.ts
385
+ function clearLayoutSlot(range) {
386
+ clearRange(range);
387
+ }
388
+
336
389
  // src/render/getFragment.ts
337
390
  function getFragment(document, array, index, html, ns) {
338
391
  if (array[index] === void 0) {
@@ -403,58 +456,68 @@ function newRange() {
403
456
  // src/render/hydrationMarkers.ts
404
457
  var HYDRATION_START = "[";
405
458
  var HYDRATION_END = "]";
406
- var HYDRATION_BRANCH = "^";
459
+ var HYDRATION_BREAK = "^";
407
460
 
408
461
  // src/render/isComment.ts
409
462
  function isComment(node) {
410
- return node.nodeType === 8;
463
+ return node?.nodeType === 8;
411
464
  }
412
465
 
413
- // src/render/nodeNext.ts
414
- function nodeNext(node, count) {
415
- let nextNode = checkHydrationNode(node.nextSibling);
416
- if (count) {
417
- for (let i = 1; i < count; i++) {
418
- nextNode = checkHydrationNode(nextNode.nextSibling);
419
- }
420
- }
421
- return nextNode;
466
+ // src/render/isText.ts
467
+ function isText(node) {
468
+ return node?.nodeType === 3;
422
469
  }
423
- function checkHydrationNode(nextNode) {
470
+
471
+ // src/render/nodeCheckHydrationBreak.ts
472
+ function nodeCheckHydrationBreak(node) {
424
473
  if (context_default.hydrationNode) {
425
- if (nextNode && isComment(nextNode) && nextNode.data === HYDRATION_BRANCH) {
426
- let comment = nextNode;
427
- nextNode = nextNode.nextSibling;
474
+ if (node && isComment(node) && node.data === HYDRATION_BREAK) {
475
+ let comment = node;
476
+ node = node.nextSibling;
428
477
  comment.remove();
429
478
  }
430
- context_default.hydrationNode = nextNode;
479
+ context_default.hydrationNode = node;
480
+ }
481
+ return node;
482
+ }
483
+
484
+ // src/render/nodeNext.ts
485
+ function nodeNext(node, text = false) {
486
+ if (context_default.hydrationNode && text && isText(node)) {
487
+ return node;
431
488
  }
489
+ let nextNode = nodeCheckHydrationBreak(node.nextSibling);
432
490
  return nextNode;
433
491
  }
434
492
 
435
493
  // src/render/nodeAnchor.ts
436
494
  function nodeAnchor(node) {
437
- if (context_default.hydrationNode && isComment(node) && node.data === HYDRATION_START) {
438
- let currentNode = nodeNext(node);
439
- node.remove();
440
- let level = 1;
441
- while (currentNode) {
442
- if (isComment(currentNode)) {
443
- if (currentNode.data === HYDRATION_START) {
444
- level += 1;
445
- } else if (currentNode.data === HYDRATION_END) {
446
- level -= 1;
447
- }
448
- if (level === 0) {
449
- const endNode = currentNode.nextSibling;
450
- currentNode.remove();
451
- return endNode;
495
+ if (context_default.hydrationNode) {
496
+ if (isComment(node) && node.data === HYDRATION_START) {
497
+ let currentNode = nodeNext(node);
498
+ node.remove();
499
+ let level = 1;
500
+ while (currentNode) {
501
+ if (isComment(currentNode)) {
502
+ if (currentNode.data === HYDRATION_START) {
503
+ level += 1;
504
+ } else if (currentNode.data === HYDRATION_END) {
505
+ level -= 1;
506
+ if (level === 0) {
507
+ const endNode = currentNode.nextSibling;
508
+ currentNode.remove();
509
+ if (context_default.hydrationNode === currentNode) {
510
+ context_default.hydrationNode = endNode;
511
+ }
512
+ return endNode;
513
+ }
514
+ }
452
515
  }
516
+ currentNode = currentNode.nextSibling;
517
+ }
518
+ if (!currentNode) {
519
+ throw new Error("End hydration comment not found");
453
520
  }
454
- currentNode = currentNode.nextSibling;
455
- }
456
- if (!currentNode) {
457
- throw new Error("End hydration comment not found");
458
521
  }
459
522
  }
460
523
  return node;
@@ -462,30 +525,48 @@ function nodeAnchor(node) {
462
525
 
463
526
  // src/render/nodeChild.ts
464
527
  function nodeChild(parent) {
465
- let child = parent.firstChild;
528
+ let childNode = parent.firstChild;
466
529
  if (context_default.hydrationNode) {
467
- if (!child) {
468
- child = parent.appendChild(parent.ownerDocument.createTextNode(""));
530
+ if (!childNode) {
531
+ childNode = parent.appendChild(parent.ownerDocument.createTextNode(""));
469
532
  }
470
- context_default.hydrationNode = child;
533
+ context_default.hydrationNode = childNode;
471
534
  }
472
- return child;
535
+ return childNode;
536
+ }
537
+
538
+ // src/render/nodeReanchor.ts
539
+ function nodeReanchor(node) {
540
+ return context_default.hydrationNode ?? node;
473
541
  }
474
542
 
475
543
  // src/render/nodeRoot.ts
476
- function nodeRoot(parent) {
477
- const hydrationNode = context_default.hydrationNode;
478
- if (hydrationNode) {
544
+ function nodeRoot(parent, text = false) {
545
+ if (context_default.hydrationNode) {
546
+ let rootNode = context_default.hydrationNode;
547
+ if (text && !isText(rootNode) && isText(rootNode.previousSibling)) {
548
+ rootNode = rootNode.previousSibling;
549
+ context_default.hydrationNode = rootNode;
550
+ }
479
551
  const range = context_default.activeRange;
480
552
  if (range && !range.startNode) {
481
- range.startNode = hydrationNode;
553
+ range.startNode = rootNode;
482
554
  }
483
- return hydrationNode;
555
+ return rootNode;
484
556
  } else {
485
557
  return parent.firstChild;
486
558
  }
487
559
  }
488
560
 
561
+ // src/render/nodeSkip.ts
562
+ function nodeSkip(node, count) {
563
+ let nextNode = node;
564
+ for (let i = 0; i < count; i++) {
565
+ nextNode = nodeCheckHydrationBreak(nextNode.nextSibling);
566
+ }
567
+ return nextNode;
568
+ }
569
+
489
570
  // src/render/popRange.ts
490
571
  function popRange(oldRange) {
491
572
  context_default.activeRange = oldRange;
@@ -516,54 +597,6 @@ function runControl(range, anchor, create) {
516
597
  popRange(oldRange);
517
598
  }
518
599
 
519
- // src/render/clearRange.ts
520
- function clearRange(range) {
521
- let animations = [];
522
- clearEffects(range, animations);
523
- if (animations.length) {
524
- Promise.all(animations.map((a) => a.finished)).then(() => clearNodes(range));
525
- } else {
526
- clearNodes(range);
527
- }
528
- }
529
- function clearEffects(range, animations) {
530
- if (range.effects) {
531
- const oldRange = context_default.activeRange;
532
- context_default.activeRange = range;
533
- for (let effect of range.effects) {
534
- removeEffect(effect);
535
- }
536
- context_default.activeRange = oldRange;
537
- }
538
- if (range.animations) {
539
- for (let animation of range.animations) {
540
- animations.push(animation);
541
- }
542
- }
543
- if (range.children) {
544
- for (let child of range.children) {
545
- clearEffects(child, animations);
546
- }
547
- range.children.length = 0;
548
- }
549
- }
550
- function clearNodes(range) {
551
- if (range.startNode) {
552
- let currentNode = range.endNode || range.startNode;
553
- if (range.startNode.parentNode !== currentNode.parentNode) {
554
- throw new Error("range nodes have different parents");
555
- }
556
- while (currentNode !== range.startNode) {
557
- let nextNode = currentNode.previousSibling;
558
- currentNode.remove();
559
- currentNode = nextNode;
560
- }
561
- currentNode.remove();
562
- range.startNode = null;
563
- range.endNode = null;
564
- }
565
- }
566
-
567
600
  // src/render/runControlBranch.ts
568
601
  function runControlBranch(range, index, create) {
569
602
  if (index >= 0 && range.index === index) {
@@ -582,6 +615,17 @@ function runControlBranch(range, index, create) {
582
615
  range.index = index;
583
616
  }
584
617
 
618
+ // src/render/runLayoutSlot.ts
619
+ function runLayoutSlot(component, slot, parent, anchor, $props, $context) {
620
+ const range = newRange();
621
+ const oldRange = pushRange(range, true);
622
+ component(parent, anchor, $props, $context, {
623
+ _: slot
624
+ });
625
+ popRange(oldRange);
626
+ return range;
627
+ }
628
+
585
629
  // src/render/moveRange.ts
586
630
  function moveRange(parent, range, before) {
587
631
  const endNode = range.endNode || range.startNode;
@@ -738,8 +782,10 @@ export {
738
782
  $run,
739
783
  $unwrap,
740
784
  $watch,
785
+ clearLayoutSlot,
741
786
  hydrate,
742
787
  mount,
788
+ runLayoutSlot,
743
789
  addFragment as t_add_fragment,
744
790
  nodeAnchor as t_anchor,
745
791
  addAnimation as t_animate,
@@ -756,10 +802,12 @@ export {
756
802
  popRange as t_pop_range,
757
803
  pushRange as t_push_range,
758
804
  newRange as t_range,
805
+ nodeReanchor as t_reanchor,
759
806
  nodeRoot as t_root,
760
807
  runControlBranch as t_run_branch,
761
808
  runControl as t_run_control,
762
809
  runList as t_run_list,
810
+ nodeSkip as t_skip,
763
811
  getStyles as t_style
764
812
  };
765
813
  //# sourceMappingURL=index.js.map