sygnal 5.3.7 → 6.0.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 (438) hide show
  1. package/CHANGELOG.md +646 -0
  2. package/README.md +77 -47
  3. package/dist/astro/client.cjs.js +33 -8114
  4. package/dist/astro/client.cjs.js.map +1 -0
  5. package/dist/astro/client.mjs +33 -8114
  6. package/dist/astro/client.mjs.map +1 -0
  7. package/dist/astro/index.cjs.js +1039 -9
  8. package/dist/astro/index.cjs.js.map +1 -0
  9. package/dist/astro/index.mjs +1038 -9
  10. package/dist/astro/index.mjs.map +1 -0
  11. package/dist/astro/server.cjs.js +3400 -166
  12. package/dist/astro/server.cjs.js.map +1 -0
  13. package/dist/astro/server.mjs +3400 -166
  14. package/dist/astro/server.mjs.map +1 -0
  15. package/dist/devtools.cjs.js +1431 -0
  16. package/dist/devtools.cjs.js.map +1 -0
  17. package/dist/devtools.esm.js +1419 -0
  18. package/dist/devtools.esm.js.map +1 -0
  19. package/dist/diagnostics.cjs.js +4033 -0
  20. package/dist/diagnostics.cjs.js.map +1 -0
  21. package/dist/diagnostics.esm.js +4003 -0
  22. package/dist/diagnostics.esm.js.map +1 -0
  23. package/dist/element.cjs.js +230 -0
  24. package/dist/element.cjs.js.map +1 -0
  25. package/dist/element.esm.js +228 -0
  26. package/dist/element.esm.js.map +1 -0
  27. package/dist/guide/accessibility.md +257 -0
  28. package/dist/guide/adapters.md +221 -0
  29. package/dist/guide/behaviors.md +312 -0
  30. package/dist/guide/browser-sources.md +203 -0
  31. package/dist/guide/drag-and-drop.md +342 -0
  32. package/dist/guide/element-commands.md +306 -0
  33. package/dist/guide/error-boundaries.md +169 -0
  34. package/dist/guide/forms-reference.md +381 -0
  35. package/dist/guide/forms.md +250 -0
  36. package/dist/guide/http.md +299 -0
  37. package/dist/guide/inputs.md +173 -0
  38. package/dist/guide/persistence.md +245 -0
  39. package/dist/guide/recipes/carousel.md +155 -0
  40. package/dist/guide/recipes/charts.md +177 -0
  41. package/dist/guide/recipes/code-editor.md +135 -0
  42. package/dist/guide/recipes/data-grid.md +155 -0
  43. package/dist/guide/recipes/data-table.md +196 -0
  44. package/dist/guide/recipes/i18n.md +222 -0
  45. package/dist/guide/recipes/icons.md +115 -0
  46. package/dist/guide/recipes/overview.md +33 -0
  47. package/dist/guide/recipes/rich-text.md +154 -0
  48. package/dist/guide/resources.md +471 -0
  49. package/dist/guide/ssr.md +255 -0
  50. package/dist/guide/timers.md +178 -0
  51. package/dist/guide/ui/accordion.md +93 -0
  52. package/dist/guide/ui/combobox.md +144 -0
  53. package/dist/guide/ui/dialog.md +124 -0
  54. package/dist/guide/ui/disclosure.md +60 -0
  55. package/dist/guide/ui/menu.md +125 -0
  56. package/dist/guide/ui/overview.md +166 -0
  57. package/dist/guide/ui/popover.md +101 -0
  58. package/dist/guide/ui/select.md +114 -0
  59. package/dist/guide/ui/tabs.md +161 -0
  60. package/dist/guide/ui/toaster.md +152 -0
  61. package/dist/guide/ui/tooltip.md +103 -0
  62. package/dist/guide/undo.md +178 -0
  63. package/dist/guide/virtual-collections.md +183 -0
  64. package/dist/guide/web-components.md +179 -0
  65. package/dist/guide/widgets.md +217 -0
  66. package/dist/index.cjs.js +15283 -6279
  67. package/dist/index.cjs.js.map +1 -0
  68. package/dist/index.d.ts +3739 -370
  69. package/dist/index.esm.js +15230 -6274
  70. package/dist/index.esm.js.map +1 -0
  71. package/dist/jsx-dev-runtime.cjs.js +27 -329
  72. package/dist/jsx-dev-runtime.cjs.js.map +1 -0
  73. package/dist/jsx-dev-runtime.esm.js +20 -322
  74. package/dist/jsx-dev-runtime.esm.js.map +1 -0
  75. package/dist/jsx-runtime.cjs.js +27 -329
  76. package/dist/jsx-runtime.cjs.js.map +1 -0
  77. package/dist/jsx-runtime.esm.js +20 -322
  78. package/dist/jsx-runtime.esm.js.map +1 -0
  79. package/dist/jsx.cjs.js +11 -309
  80. package/dist/jsx.cjs.js.map +1 -0
  81. package/dist/jsx.esm.js +9 -310
  82. package/dist/jsx.esm.js.map +1 -0
  83. package/dist/react.cjs.js +117 -0
  84. package/dist/react.cjs.js.map +1 -0
  85. package/dist/react.esm.js +115 -0
  86. package/dist/react.esm.js.map +1 -0
  87. package/dist/shims/globalthis.cjs +20 -0
  88. package/dist/sygnal.min.js +2 -1
  89. package/dist/sygnal.min.js.map +1 -0
  90. package/dist/ui-combobox.cjs.js +169 -0
  91. package/dist/ui-combobox.cjs.js.map +1 -0
  92. package/dist/ui-combobox.esm.js +148 -0
  93. package/dist/ui-combobox.esm.js.map +1 -0
  94. package/dist/ui-menu.cjs.js +87 -0
  95. package/dist/ui-menu.cjs.js.map +1 -0
  96. package/dist/ui-menu.esm.js +66 -0
  97. package/dist/ui-menu.esm.js.map +1 -0
  98. package/dist/ui-select.cjs.js +104 -0
  99. package/dist/ui-select.cjs.js.map +1 -0
  100. package/dist/ui-select.esm.js +83 -0
  101. package/dist/ui-select.esm.js.map +1 -0
  102. package/dist/ui.cjs.js +738 -0
  103. package/dist/ui.cjs.js.map +1 -0
  104. package/dist/ui.esm.js +727 -0
  105. package/dist/ui.esm.js.map +1 -0
  106. package/dist/vike/ClientOnly.cjs.js +5 -14
  107. package/dist/vike/ClientOnly.cjs.js.map +1 -0
  108. package/dist/vike/ClientOnly.mjs +5 -14
  109. package/dist/vike/ClientOnly.mjs.map +1 -0
  110. package/dist/vike/{+config.js → config/+config.js} +10 -1
  111. package/dist/vike/config/+config.js.map +1 -0
  112. package/dist/vike/config/package.json +6 -0
  113. package/dist/vike/onRenderClient.cjs.js +166 -95
  114. package/dist/vike/onRenderClient.cjs.js.map +1 -0
  115. package/dist/vike/onRenderClient.mjs +166 -95
  116. package/dist/vike/onRenderClient.mjs.map +1 -0
  117. package/dist/vike/onRenderHtml.cjs.js +60 -24
  118. package/dist/vike/onRenderHtml.cjs.js.map +1 -0
  119. package/dist/vike/onRenderHtml.mjs +61 -25
  120. package/dist/vike/onRenderHtml.mjs.map +1 -0
  121. package/dist/vite/plugin.cjs.js +926 -65
  122. package/dist/vite/plugin.cjs.js.map +1 -0
  123. package/dist/vite/plugin.mjs +925 -65
  124. package/dist/vite/plugin.mjs.map +1 -0
  125. package/dist/zag.cjs.js +408 -0
  126. package/dist/zag.cjs.js.map +1 -0
  127. package/dist/zag.esm.js +405 -0
  128. package/dist/zag.esm.js.map +1 -0
  129. package/llms.txt +313 -0
  130. package/package.json +109 -16
  131. package/src/astro/client.ts +40 -18
  132. package/src/astro/index.d.ts +48 -1
  133. package/src/astro/index.ts +106 -9
  134. package/src/astro/server.ts +11 -3
  135. package/src/collection.ts +6 -90
  136. package/src/core/actions.ts +134 -0
  137. package/src/core/cell.ts +202 -0
  138. package/src/core/debug.ts +23 -0
  139. package/src/core/define.ts +242 -0
  140. package/src/core/hooks.ts +314 -0
  141. package/src/core/hosts/collection.ts +325 -0
  142. package/src/core/hosts/switchable.ts +146 -0
  143. package/src/core/instance.ts +592 -0
  144. package/src/core/markers/clientonly.ts +13 -0
  145. package/src/core/markers/lazy.ts +40 -0
  146. package/src/core/markers/portal.ts +96 -0
  147. package/src/core/markers/suspense.ts +41 -0
  148. package/src/core/markers/transition.ts +70 -0
  149. package/src/core/registry.ts +25 -0
  150. package/src/core/runtime.ts +573 -0
  151. package/src/core/statics.ts +104 -0
  152. package/src/core/teardown.ts +60 -0
  153. package/src/core/view.ts +37 -0
  154. package/src/cycle/dom/DocumentDOMSource.ts +13 -8
  155. package/src/cycle/dom/ElementFinder.ts +7 -9
  156. package/src/cycle/dom/EventDelegator.ts +174 -223
  157. package/src/cycle/dom/IsolateModule.ts +65 -35
  158. package/src/cycle/dom/MainDOMSource.ts +13 -2
  159. package/src/cycle/dom/PriorityQueue.ts +4 -2
  160. package/src/cycle/dom/SymbolTree.ts +18 -47
  161. package/src/cycle/dom/classNameModule.ts +76 -0
  162. package/src/cycle/dom/controlledInputModule.ts +50 -0
  163. package/src/cycle/dom/enrichEventStream.ts +29 -45
  164. package/src/cycle/dom/fragment.ts +7 -0
  165. package/src/cycle/dom/isolate.ts +30 -27
  166. package/src/cycle/dom/makeDOMDriver.ts +115 -57
  167. package/src/cycle/dom/mockDOMSource.ts +83 -9
  168. package/src/cycle/dom/modules.ts +21 -4
  169. package/src/cycle/dom/propsModule.ts +65 -0
  170. package/src/cycle/dom/selectModule.ts +22 -17
  171. package/src/cycle/dom/snabbdom.ts +1 -6
  172. package/src/cycle/dom/thunk.ts +3 -0
  173. package/src/cycle/dom/utils.ts +98 -0
  174. package/src/cycle/dom/viewTransition.ts +43 -0
  175. package/src/cycle/state/StateSource.ts +20 -4
  176. package/src/cycle/state/objIsEqual.ts +50 -0
  177. package/src/cycle/state/types.ts +0 -10
  178. package/src/defineComponent.ts +34 -0
  179. package/src/devtools.d.ts +151 -0
  180. package/src/devtools.ts +34 -0
  181. package/src/element.d.ts +59 -0
  182. package/src/element.ts +235 -0
  183. package/src/extra/backoff.ts +9 -0
  184. package/src/extra/behaviors.ts +169 -0
  185. package/src/extra/browserSignals.ts +23 -0
  186. package/src/extra/browserSources.ts +326 -0
  187. package/src/extra/command.ts +3 -3
  188. package/src/extra/controls.ts +47 -0
  189. package/src/extra/copyAsTest.ts +286 -0
  190. package/src/extra/devtools.ts +109 -31
  191. package/src/extra/devtoolsActions.ts +379 -0
  192. package/src/extra/devtoolsHook.ts +9 -0
  193. package/src/extra/devtoolsNext.ts +83 -0
  194. package/src/extra/diagnostics/checks/actionLog.ts +108 -0
  195. package/src/extra/diagnostics/checks/behaviors.ts +49 -0
  196. package/src/extra/diagnostics/checks/browserSources.ts +96 -0
  197. package/src/extra/diagnostics/checks/collections.ts +67 -0
  198. package/src/extra/diagnostics/checks/controls.ts +148 -0
  199. package/src/extra/diagnostics/checks/dataset.ts +57 -0
  200. package/src/extra/diagnostics/checks/dom.ts +250 -0
  201. package/src/extra/diagnostics/checks/elementCommands.ts +175 -0
  202. package/src/extra/diagnostics/checks/events.ts +83 -0
  203. package/src/extra/diagnostics/checks/fetch.ts +135 -0
  204. package/src/extra/diagnostics/checks/forms.ts +163 -0
  205. package/src/extra/diagnostics/checks/index.ts +202 -0
  206. package/src/extra/diagnostics/checks/inspect.ts +427 -0
  207. package/src/extra/diagnostics/checks/next.ts +417 -0
  208. package/src/extra/diagnostics/checks/persist.ts +54 -0
  209. package/src/extra/diagnostics/checks/props.ts +56 -0
  210. package/src/extra/diagnostics/checks/public.d.ts +302 -0
  211. package/src/extra/diagnostics/checks/replies.ts +128 -0
  212. package/src/extra/diagnostics/checks/router.ts +100 -0
  213. package/src/extra/diagnostics/checks/rxjsHints.ts +88 -0
  214. package/src/extra/diagnostics/checks/shared.ts +203 -0
  215. package/src/extra/diagnostics/checks/shorthand.ts +115 -0
  216. package/src/extra/diagnostics/checks/sortable.ts +129 -0
  217. package/src/extra/diagnostics/checks/state.ts +148 -0
  218. package/src/extra/diagnostics/checks/statics.ts +48 -0
  219. package/src/extra/diagnostics/checks/strict.ts +55 -0
  220. package/src/extra/diagnostics/checks/timers.ts +80 -0
  221. package/src/extra/diagnostics/checks/viewTransitions.ts +47 -0
  222. package/src/extra/diagnostics/checks/virtual.ts +73 -0
  223. package/src/extra/diagnostics/checks/widgets.ts +109 -0
  224. package/src/extra/diagnostics/checks/wiring.ts +121 -0
  225. package/src/extra/diagnostics/codes.ts +477 -0
  226. package/src/extra/diagnostics/index.ts +353 -0
  227. package/src/extra/diagnostics/legacy.ts +76 -0
  228. package/src/extra/driverFactories.ts +172 -60
  229. package/src/extra/elementCommands.ts +53 -0
  230. package/src/extra/eventDriver.ts +4 -0
  231. package/src/extra/fetchDriver.ts +519 -0
  232. package/src/extra/flatten.ts +75 -0
  233. package/src/extra/focusWithin.ts +27 -0
  234. package/src/extra/form.ts +268 -0
  235. package/src/extra/formHelpers.ts +139 -0
  236. package/src/extra/head.ts +106 -0
  237. package/src/extra/hmr.ts +2 -3
  238. package/src/extra/owned.ts +24 -0
  239. package/src/extra/pager.ts +50 -0
  240. package/src/extra/persist.ts +133 -0
  241. package/src/extra/pwa.ts +1 -1
  242. package/src/extra/queryCache.ts +107 -0
  243. package/src/extra/reducers.ts +13 -6
  244. package/src/extra/reduxDevtools.ts +92 -0
  245. package/src/extra/replies.ts +54 -0
  246. package/src/extra/router.ts +323 -0
  247. package/src/extra/run.ts +94 -210
  248. package/src/extra/selection.ts +76 -0
  249. package/src/extra/socketDriver.ts +265 -0
  250. package/src/extra/sortable.ts +377 -0
  251. package/src/extra/ssr.ts +427 -160
  252. package/src/extra/standardSchema.ts +27 -0
  253. package/src/extra/testing.ts +3158 -190
  254. package/src/extra/timers.ts +95 -0
  255. package/src/extra/undo.ts +261 -0
  256. package/src/extra/viewTransitions.ts +38 -0
  257. package/src/extra/virtual.ts +513 -0
  258. package/src/extra/widget.ts +201 -0
  259. package/src/extra/xstreamExtras.ts +269 -0
  260. package/src/index.d.ts +3012 -87
  261. package/src/index.ts +32 -10
  262. package/src/jsx-runtime.ts +15 -1
  263. package/src/jsx.ts +2 -1
  264. package/src/lazy.ts +50 -7
  265. package/src/portal.ts +3 -1
  266. package/src/pragma/index.ts +262 -134
  267. package/src/react-peers.d.ts +5 -0
  268. package/src/react.d.ts +43 -0
  269. package/src/react.ts +110 -0
  270. package/src/shared.ts +48 -0
  271. package/src/slot.ts +1 -1
  272. package/src/suspense.ts +3 -1
  273. package/src/switchable.ts +6 -119
  274. package/src/transition.ts +3 -1
  275. package/src/ui/accordion.ts +64 -0
  276. package/src/ui/dialog.ts +129 -0
  277. package/src/ui/disclosure.ts +35 -0
  278. package/src/ui/popover.ts +45 -0
  279. package/src/ui/shared.ts +94 -0
  280. package/src/ui/tabs.ts +82 -0
  281. package/src/ui/toaster.ts +198 -0
  282. package/src/ui/tooltip.ts +70 -0
  283. package/src/ui/zag/combobox.ts +115 -0
  284. package/src/ui/zag/menu.ts +40 -0
  285. package/src/ui/zag/select.ts +54 -0
  286. package/src/ui/zag/shared.ts +43 -0
  287. package/src/ui-combobox.d.ts +20 -0
  288. package/src/ui-combobox.ts +6 -0
  289. package/src/ui-menu.d.ts +30 -0
  290. package/src/ui-menu.ts +6 -0
  291. package/src/ui-select.d.ts +17 -0
  292. package/src/ui-select.ts +6 -0
  293. package/src/ui-zag-types.d.ts +42 -0
  294. package/src/ui.d.ts +208 -0
  295. package/src/ui.ts +15 -0
  296. package/src/vike/+config.ts +9 -1
  297. package/src/vike/ClientOnly.ts +1 -1
  298. package/src/vike/onRenderClient.ts +144 -96
  299. package/src/vike/onRenderHtml.ts +69 -26
  300. package/src/vike/types.ts +27 -4
  301. package/src/vite/globalthis-shim.ts +18 -0
  302. package/src/vite/globalthis.ts +56 -0
  303. package/src/vite/plugin.d.ts +114 -2
  304. package/src/vite/plugin.ts +920 -56
  305. package/src/zag.d.ts +64 -0
  306. package/src/zag.ts +238 -0
  307. package/dist/astro/astro/client.d.ts +0 -5
  308. package/dist/astro/astro/index.d.ts +0 -16
  309. package/dist/astro/astro/server.d.ts +0 -12
  310. package/dist/astro/client.d.ts +0 -5
  311. package/dist/astro/client.esm.js +0 -4665
  312. package/dist/astro/collection.d.ts +0 -12
  313. package/dist/astro/component.d.ts +0 -22
  314. package/dist/astro/cycle/dom/BodyDOMSource.d.ts +0 -10
  315. package/dist/astro/cycle/dom/DOMSource.d.ts +0 -11
  316. package/dist/astro/cycle/dom/DocumentDOMSource.d.ts +0 -12
  317. package/dist/astro/cycle/dom/ElementFinder.d.ts +0 -8
  318. package/dist/astro/cycle/dom/EventDelegator.d.ts +0 -34
  319. package/dist/astro/cycle/dom/IsolateModule.d.ts +0 -23
  320. package/dist/astro/cycle/dom/MainDOMSource.d.ts +0 -32
  321. package/dist/astro/cycle/dom/PriorityQueue.d.ts +0 -7
  322. package/dist/astro/cycle/dom/ScopeChecker.d.ts +0 -9
  323. package/dist/astro/cycle/dom/SymbolTree.d.ts +0 -9
  324. package/dist/astro/cycle/dom/VNodeWrapper.d.ts +0 -8
  325. package/dist/astro/cycle/dom/enrichEventStream.d.ts +0 -24
  326. package/dist/astro/cycle/dom/fromEvent.d.ts +0 -6
  327. package/dist/astro/cycle/dom/index.d.ts +0 -8
  328. package/dist/astro/cycle/dom/isolate.d.ts +0 -9
  329. package/dist/astro/cycle/dom/makeDOMDriver.d.ts +0 -11
  330. package/dist/astro/cycle/dom/mockDOMSource.d.ts +0 -17
  331. package/dist/astro/cycle/dom/modules.d.ts +0 -5
  332. package/dist/astro/cycle/dom/snabbdom.d.ts +0 -22
  333. package/dist/astro/cycle/dom/styleModule.d.ts +0 -13
  334. package/dist/astro/cycle/dom/thunk.d.ts +0 -11
  335. package/dist/astro/cycle/dom/utils.d.ts +0 -8
  336. package/dist/astro/cycle/isolate/index.d.ts +0 -42
  337. package/dist/astro/cycle/run/adapt.d.ts +0 -6
  338. package/dist/astro/cycle/run/index.d.ts +0 -36
  339. package/dist/astro/cycle/run/internals.d.ts +0 -8
  340. package/dist/astro/cycle/run/types.d.ts +0 -49
  341. package/dist/astro/cycle/state/Collection.d.ts +0 -29
  342. package/dist/astro/cycle/state/StateSource.d.ts +0 -20
  343. package/dist/astro/cycle/state/index.d.ts +0 -5
  344. package/dist/astro/cycle/state/pickCombine.d.ts +0 -3
  345. package/dist/astro/cycle/state/pickMerge.d.ts +0 -3
  346. package/dist/astro/cycle/state/types.d.ts +0 -18
  347. package/dist/astro/cycle/state/withState.d.ts +0 -17
  348. package/dist/astro/extra/classes.d.ts +0 -7
  349. package/dist/astro/extra/devtools.d.ts +0 -78
  350. package/dist/astro/extra/dragDriver.d.ts +0 -20
  351. package/dist/astro/extra/driverFactories.d.ts +0 -12
  352. package/dist/astro/extra/eventDriver.d.ts +0 -9
  353. package/dist/astro/extra/exactState.d.ts +0 -1
  354. package/dist/astro/extra/hmr.d.ts +0 -17
  355. package/dist/astro/extra/logDriver.d.ts +0 -2
  356. package/dist/astro/extra/processDrag.d.ts +0 -19
  357. package/dist/astro/extra/processForm.d.ts +0 -15
  358. package/dist/astro/extra/run.d.ts +0 -13
  359. package/dist/astro/extra/xstreamCompat.d.ts +0 -5
  360. package/dist/astro/index.d.ts +0 -19
  361. package/dist/astro/index.esm.js +0 -27
  362. package/dist/astro/jsx-dev-runtime.d.ts +0 -1
  363. package/dist/astro/jsx-runtime.d.ts +0 -4
  364. package/dist/astro/jsx.d.ts +0 -2
  365. package/dist/astro/pragma/fn.d.ts +0 -7
  366. package/dist/astro/pragma/index.d.ts +0 -7
  367. package/dist/astro/pragma/is.d.ts +0 -10
  368. package/dist/astro/server.d.ts +0 -12
  369. package/dist/astro/server.esm.js +0 -25
  370. package/dist/astro/switchable.d.ts +0 -7
  371. package/dist/collection.d.ts +0 -12
  372. package/dist/component.d.ts +0 -22
  373. package/dist/cycle/dom/BodyDOMSource.d.ts +0 -10
  374. package/dist/cycle/dom/DOMSource.d.ts +0 -11
  375. package/dist/cycle/dom/DocumentDOMSource.d.ts +0 -12
  376. package/dist/cycle/dom/ElementFinder.d.ts +0 -8
  377. package/dist/cycle/dom/EventDelegator.d.ts +0 -34
  378. package/dist/cycle/dom/IsolateModule.d.ts +0 -23
  379. package/dist/cycle/dom/MainDOMSource.d.ts +0 -32
  380. package/dist/cycle/dom/PriorityQueue.d.ts +0 -7
  381. package/dist/cycle/dom/ScopeChecker.d.ts +0 -9
  382. package/dist/cycle/dom/SymbolTree.d.ts +0 -9
  383. package/dist/cycle/dom/VNodeWrapper.d.ts +0 -8
  384. package/dist/cycle/dom/enrichEventStream.d.ts +0 -24
  385. package/dist/cycle/dom/fromEvent.d.ts +0 -6
  386. package/dist/cycle/dom/index.d.ts +0 -8
  387. package/dist/cycle/dom/isolate.d.ts +0 -9
  388. package/dist/cycle/dom/makeDOMDriver.d.ts +0 -11
  389. package/dist/cycle/dom/mockDOMSource.d.ts +0 -17
  390. package/dist/cycle/dom/modules.d.ts +0 -5
  391. package/dist/cycle/dom/snabbdom.d.ts +0 -22
  392. package/dist/cycle/dom/styleModule.d.ts +0 -13
  393. package/dist/cycle/dom/thunk.d.ts +0 -11
  394. package/dist/cycle/dom/utils.d.ts +0 -8
  395. package/dist/cycle/isolate/index.d.ts +0 -42
  396. package/dist/cycle/run/adapt.d.ts +0 -6
  397. package/dist/cycle/run/index.d.ts +0 -36
  398. package/dist/cycle/run/internals.d.ts +0 -8
  399. package/dist/cycle/run/types.d.ts +0 -49
  400. package/dist/cycle/state/Collection.d.ts +0 -29
  401. package/dist/cycle/state/StateSource.d.ts +0 -20
  402. package/dist/cycle/state/index.d.ts +0 -5
  403. package/dist/cycle/state/pickCombine.d.ts +0 -3
  404. package/dist/cycle/state/pickMerge.d.ts +0 -3
  405. package/dist/cycle/state/types.d.ts +0 -18
  406. package/dist/cycle/state/withState.d.ts +0 -17
  407. package/dist/extra/classes.d.ts +0 -7
  408. package/dist/extra/devtools.d.ts +0 -78
  409. package/dist/extra/dragDriver.d.ts +0 -20
  410. package/dist/extra/driverFactories.d.ts +0 -12
  411. package/dist/extra/eventDriver.d.ts +0 -9
  412. package/dist/extra/exactState.d.ts +0 -1
  413. package/dist/extra/hmr.d.ts +0 -17
  414. package/dist/extra/logDriver.d.ts +0 -2
  415. package/dist/extra/processDrag.d.ts +0 -19
  416. package/dist/extra/processForm.d.ts +0 -15
  417. package/dist/extra/run.d.ts +0 -13
  418. package/dist/extra/xstreamCompat.d.ts +0 -5
  419. package/dist/jsx-dev-runtime.d.ts +0 -1
  420. package/dist/jsx-dev-runtime.js +0 -224
  421. package/dist/jsx-runtime.d.ts +0 -4
  422. package/dist/jsx-runtime.js +0 -224
  423. package/dist/jsx.d.ts +0 -2
  424. package/dist/pragma/fn.d.ts +0 -7
  425. package/dist/pragma/index.d.ts +0 -7
  426. package/dist/pragma/is.d.ts +0 -10
  427. package/dist/switchable.d.ts +0 -7
  428. package/dist/vike/+config.cjs.js +0 -65
  429. package/src/component.ts +0 -2256
  430. package/src/cycle/isolate/index.ts +0 -196
  431. package/src/cycle/run/index.ts +0 -151
  432. package/src/cycle/run/internals.ts +0 -143
  433. package/src/cycle/state/Collection.ts +0 -174
  434. package/src/cycle/state/index.ts +0 -5
  435. package/src/cycle/state/pickCombine.ts +0 -167
  436. package/src/cycle/state/pickMerge.ts +0 -122
  437. package/src/cycle/state/withState.ts +0 -47
  438. package/src/pragma/fn.ts +0 -55
@@ -1,12 +0,0 @@
1
- import type { Lens } from './cycle/state/types';
2
- interface CollectionOptions {
3
- combineList?: string[];
4
- globalList?: string[];
5
- stateSourceName?: string;
6
- domSourceName?: string;
7
- container?: string;
8
- containerClass?: string;
9
- }
10
- export default function collection(component: (...args: any[]) => any, stateLense: string | Lens<any, any>, opts?: CollectionOptions): (sources: any) => any;
11
- declare const Collection: (props: any) => import("snabbdom/build/vnode").VNode;
12
- export { Collection };
@@ -1,22 +0,0 @@
1
- export declare const ABORT: unique symbol;
2
- export interface ComponentOptions {
3
- name?: string;
4
- sources?: Record<string, any>;
5
- intent?: ((sources: Record<string, any>) => any) | Record<string, any>;
6
- model?: Record<string, any>;
7
- hmrActions?: string | string[];
8
- context?: Record<string, boolean | ((state: any) => any)>;
9
- response?: Record<string, any>;
10
- view?: (...args: any[]) => any;
11
- peers?: Record<string, (...args: any[]) => any>;
12
- components?: Record<string, any>;
13
- initialState?: Record<string, any>;
14
- calculated?: Record<string, ((state: any) => any) | [string[], (...args: any[]) => any]>;
15
- storeCalculatedInState?: boolean;
16
- DOMSourceName?: string;
17
- stateSourceName?: string;
18
- requestSourceName?: string;
19
- isolateOpts?: string | boolean | Record<string, any>;
20
- debug?: boolean;
21
- }
22
- export default function component(opts: ComponentOptions): any;
@@ -1,10 +0,0 @@
1
- import { Stream, MemoryStream } from 'xstream';
2
- import { EventsFnOptions } from './DOMSource';
3
- export declare class BodyDOMSource {
4
- private _name;
5
- constructor(_name: string);
6
- select(selector: string): BodyDOMSource;
7
- elements(): MemoryStream<Array<HTMLBodyElement>>;
8
- element(): MemoryStream<HTMLBodyElement>;
9
- events<K extends keyof HTMLBodyElementEventMap>(eventType: K, options?: EventsFnOptions, bubbles?: boolean): Stream<HTMLBodyElementEventMap[K]>;
10
- }
@@ -1,11 +0,0 @@
1
- import { PreventDefaultOpt } from './fromEvent';
2
- import { MainDOMSource } from './MainDOMSource';
3
- import { DocumentDOMSource } from './DocumentDOMSource';
4
- import { BodyDOMSource } from './BodyDOMSource';
5
- export interface EventsFnOptions {
6
- useCapture?: boolean;
7
- passive?: boolean;
8
- bubbles?: boolean;
9
- preventDefault?: PreventDefaultOpt;
10
- }
11
- export type DOMSource = MainDOMSource | DocumentDOMSource | BodyDOMSource;
@@ -1,12 +0,0 @@
1
- import { MemoryStream } from 'xstream';
2
- import { EventsFnOptions } from './DOMSource';
3
- import { EnrichedEventStream } from './enrichEventStream';
4
- export declare class DocumentDOMSource {
5
- private _name;
6
- private _selector;
7
- constructor(_name: string, selector?: string);
8
- select(selector: string): DocumentDOMSource;
9
- elements(): MemoryStream<Array<Document | Element>>;
10
- element(): MemoryStream<Document | Element | null>;
11
- events<K extends keyof DocumentEventMap>(eventType: K, options?: EventsFnOptions, bubbles?: boolean): EnrichedEventStream<DocumentEventMap[K]>;
12
- }
@@ -1,8 +0,0 @@
1
- import { Scope } from './isolate';
2
- import { IsolateModule } from './IsolateModule';
3
- export declare class ElementFinder {
4
- namespace: Array<Scope>;
5
- isolateModule: IsolateModule;
6
- constructor(namespace: Array<Scope>, isolateModule: IsolateModule);
7
- call(): Array<Element>;
8
- }
@@ -1,34 +0,0 @@
1
- import { Stream } from 'xstream';
2
- import { IsolateModule } from './IsolateModule';
3
- import { EventsFnOptions } from './DOMSource';
4
- import { Scope } from './isolate';
5
- export interface CycleDOMEvent extends Event {
6
- propagationHasBeenStopped: boolean;
7
- ownerTarget: Element;
8
- }
9
- export declare const eventTypesThatDontBubble: string[];
10
- export declare class EventDelegator {
11
- private rootElement$;
12
- isolateModule: IsolateModule;
13
- private virtualListeners;
14
- private origin;
15
- private domListeners;
16
- private nonBubblingListeners;
17
- private domListenersToAdd;
18
- private nonBubblingListenersToAdd;
19
- private virtualNonBubblingListener;
20
- constructor(rootElement$: Stream<Element>, isolateModule: IsolateModule);
21
- addEventListener(eventType: string, namespace: Array<Scope>, options: EventsFnOptions, bubbles?: boolean): Stream<Event>;
22
- removeElement(element: Element, namespace?: Array<Scope>): void;
23
- private insertListener;
24
- private getVirtualListeners;
25
- private setupDOMListener;
26
- private setupNonBubblingListener;
27
- private resetEventListeners;
28
- private putNonBubblingListener;
29
- private onEvent;
30
- private bubble;
31
- private doBubbleStep;
32
- private patchEvent;
33
- private mutateEventCurrentTarget;
34
- }
@@ -1,23 +0,0 @@
1
- import { VNode } from './snabbdom';
2
- import { EventDelegator } from './EventDelegator';
3
- import { Scope } from './isolate';
4
- export declare class IsolateModule {
5
- private namespaceTree;
6
- private namespaceByElement;
7
- private eventDelegator;
8
- private vnodesBeingRemoved;
9
- constructor();
10
- setEventDelegator(del: EventDelegator): void;
11
- private insertElement;
12
- private removeElement;
13
- getElement(namespace: Array<Scope>, max?: number): Element | undefined;
14
- getRootElement(elm: Element): Element | undefined;
15
- getNamespace(elm: Element): Array<Scope> | undefined;
16
- createModule(): {
17
- create(emptyVNode: VNode, vNode: VNode): void;
18
- update(oldVNode: VNode, vNode: VNode): void;
19
- destroy(vNode: VNode): void;
20
- remove(vNode: VNode, cb: Function): void;
21
- post(): void;
22
- };
23
- }
@@ -1,32 +0,0 @@
1
- import { Stream, MemoryStream } from 'xstream';
2
- import { EventsFnOptions } from './DOMSource';
3
- import { DocumentDOMSource } from './DocumentDOMSource';
4
- import { BodyDOMSource } from './BodyDOMSource';
5
- import { VNode } from './snabbdom';
6
- import { EnrichedEventStream } from './enrichEventStream';
7
- import { Scope, IsolateSink } from './isolate';
8
- import { IsolateModule } from './IsolateModule';
9
- import { EventDelegator } from './EventDelegator';
10
- export interface SpecialSelector {
11
- body: BodyDOMSource;
12
- document: DocumentDOMSource;
13
- }
14
- export declare class MainDOMSource {
15
- private _rootElement$;
16
- private _sanitation$;
17
- private _namespace;
18
- _isolateModule: IsolateModule;
19
- private _eventDelegator;
20
- private _name;
21
- constructor(_rootElement$: Stream<Element>, _sanitation$: Stream<null>, _namespace: Array<Scope>, _isolateModule: IsolateModule, _eventDelegator: EventDelegator, _name: string);
22
- private _elements;
23
- elements(): MemoryStream<Array<Element>>;
24
- element(): MemoryStream<Element>;
25
- get namespace(): Array<Scope>;
26
- select<T extends keyof SpecialSelector>(selector: T): SpecialSelector[T];
27
- select(selector: string): MainDOMSource;
28
- events<K extends keyof HTMLElementEventMap>(eventType: K, options?: EventsFnOptions, bubbles?: boolean): EnrichedEventStream<HTMLElementEventMap[K]>;
29
- dispose(): void;
30
- isolateSource: (source: MainDOMSource, scope: string) => MainDOMSource;
31
- isolateSink: IsolateSink<VNode>;
32
- }
@@ -1,7 +0,0 @@
1
- export default class PriorityQueue<T> {
2
- private arr;
3
- private prios;
4
- add(t: T, prio: number): void;
5
- forEach(f: (t: T, i: number, arr: Array<T>) => void): void;
6
- delete(t: T): void;
7
- }
@@ -1,9 +0,0 @@
1
- import { IsolateModule } from './IsolateModule';
2
- import { Scope } from './isolate';
3
- export declare class ScopeChecker {
4
- readonly namespace: Array<Scope>;
5
- private isolateModule;
6
- readonly _namespace: Array<Scope>;
7
- constructor(namespace: Array<Scope>, isolateModule: IsolateModule);
8
- isDirectlyInScope(leaf: Element): boolean;
9
- }
@@ -1,9 +0,0 @@
1
- export default class SymbolTree<Payload, T> {
2
- private mapper;
3
- private tree;
4
- constructor(mapper: (t: T) => string);
5
- set(path: Array<T>, element: Payload | undefined, max?: number): void;
6
- getDefault(path: Array<T>, mkDefaultElement: () => Payload, max?: number): Payload;
7
- get(path: Array<T>, mkDefaultElement?: () => Payload, max?: number): Payload | undefined;
8
- delete(path: Array<T>): void;
9
- }
@@ -1,8 +0,0 @@
1
- import { VNode } from './snabbdom';
2
- export declare class VNodeWrapper {
3
- rootElement: Element | DocumentFragment;
4
- constructor(rootElement: Element | DocumentFragment);
5
- call(vnode: VNode | null): VNode;
6
- private wrapDocFrag;
7
- private wrap;
8
- }
@@ -1,24 +0,0 @@
1
- import { Stream } from 'xstream';
2
- export interface EnrichedEventStream<T = Event> extends Stream<T> {
3
- value(): EnrichedEventStream<string>;
4
- value<R>(fn: (val: string) => R): EnrichedEventStream<R>;
5
- checked(): EnrichedEventStream<boolean>;
6
- checked<R>(fn: (val: boolean) => R): EnrichedEventStream<R>;
7
- data(name: string): EnrichedEventStream<string | undefined>;
8
- data<R>(name: string, fn: (val: string | undefined) => R): EnrichedEventStream<R>;
9
- target(): EnrichedEventStream<EventTarget | null>;
10
- target<R>(fn: (el: EventTarget | null) => R): EnrichedEventStream<R>;
11
- key(): EnrichedEventStream<string>;
12
- key<R>(fn: (key: string) => R): EnrichedEventStream<R>;
13
- }
14
- /**
15
- * Adds chainable convenience methods to a DOM event stream.
16
- *
17
- * DOM.select('.input').events('input').value()
18
- * DOM.input('.input').value()
19
- * DOM.select('.item').events('click').data('id')
20
- * DOM.click('.item').data('id', Number)
21
- * DOM.change('.checkbox').checked()
22
- * DOM.keydown('.field').key()
23
- */
24
- export declare function enrichEventStream(stream$: any): any;
@@ -1,6 +0,0 @@
1
- import { Stream } from 'xstream';
2
- export type Predicate = (ev: Event) => boolean;
3
- export type Comparator = Record<string, unknown>;
4
- export type PreventDefaultOpt = boolean | Predicate | Comparator;
5
- export declare function fromEvent(element: Element | Document, eventName: string, useCapture?: boolean, preventDefault?: PreventDefaultOpt, passive?: boolean): Stream<Event>;
6
- export declare function preventDefaultConditional(event: Event, preventDefault: PreventDefaultOpt): void;
@@ -1,8 +0,0 @@
1
- export { thunk, Thunk, ThunkData } from './thunk';
2
- export { VNode, VNodeData } from './snabbdom';
3
- export { DOMSource, EventsFnOptions } from './DOMSource';
4
- export { MainDOMSource } from './MainDOMSource';
5
- export { makeDOMDriver, DOMDriverOptions } from './makeDOMDriver';
6
- export { mockDOMSource, MockConfig, MockedDOMSource } from './mockDOMSource';
7
- export { CycleDOMEvent } from './EventDelegator';
8
- export { h } from './snabbdom';
@@ -1,9 +0,0 @@
1
- import { Stream } from 'xstream';
2
- import { VNode } from './snabbdom';
3
- export interface Scope {
4
- type: 'sibling' | 'total' | 'selector';
5
- scope: string;
6
- }
7
- export type IsolateSink<T extends VNode> = (s: Stream<T>, scope: string) => Stream<T>;
8
- export declare function makeIsolateSink<T extends VNode>(namespace: Array<Scope>): IsolateSink<T>;
9
- export declare function getScopeObj(scope: string): Scope;
@@ -1,11 +0,0 @@
1
- import { Driver } from '../run/types';
2
- import { Module, Options as SnabbdomOptions, VNode } from './snabbdom';
3
- import { Stream } from 'xstream';
4
- import { MainDOMSource } from './MainDOMSource';
5
- export interface DOMDriverOptions {
6
- modules?: Array<Partial<Module>>;
7
- reportSnabbdomError?(err: unknown): void;
8
- snabbdomOptions?: SnabbdomOptions;
9
- }
10
- declare function makeDOMDriver(container: string | Element | DocumentFragment, options?: DOMDriverOptions): Driver<Stream<VNode>, MainDOMSource>;
11
- export { makeDOMDriver };
@@ -1,17 +0,0 @@
1
- import { FantasyObservable } from '../run/types';
2
- import { EventsFnOptions } from './DOMSource';
3
- export type MockConfig = {
4
- [name: string]: FantasyObservable<any> | MockConfig;
5
- };
6
- export declare class MockedDOMSource {
7
- private _mockConfig;
8
- private _elements;
9
- constructor(_mockConfig: MockConfig);
10
- elements(): any;
11
- element(): any;
12
- events(eventType: string, options?: EventsFnOptions, bubbles?: boolean): any;
13
- select(selector: string): MockedDOMSource;
14
- isolateSource(source: MockedDOMSource, scope: string): MockedDOMSource;
15
- isolateSink(sink: any, scope: string): any;
16
- }
17
- export declare function mockDOMSource(mockConfig: MockConfig): MockedDOMSource;
@@ -1,5 +0,0 @@
1
- import { Module, classModule, propsModule, attributesModule, datasetModule } from './snabbdom';
2
- import { styleModule } from './styleModule';
3
- declare const modules: Array<Module>;
4
- export { styleModule, classModule, propsModule, attributesModule, datasetModule };
5
- export default modules;
@@ -1,22 +0,0 @@
1
- /**
2
- * Local snabbdom re-export barrel.
3
- *
4
- * Imports from specific snabbdom subpaths instead of the main barrel to avoid
5
- * triggering the broken `styleModule` top-level `window` reference in
6
- * snabbdom 3.6.3 (which causes ReferenceError in Node.js environments).
7
- *
8
- * The styleModule is provided separately by ./styleModule.ts with a fixed
9
- * window guard.
10
- */
11
- export { h, fragment as HFragment } from 'snabbdom/build/h';
12
- export { init } from 'snabbdom/build/init';
13
- export type { Options } from 'snabbdom/build/init';
14
- export { toVNode } from 'snabbdom/build/tovnode';
15
- export { vnode } from 'snabbdom/build/vnode';
16
- export type { VNode, VNodeData } from 'snabbdom/build/vnode';
17
- export { Fragment } from 'snabbdom/build/jsx';
18
- export type { Module } from 'snabbdom/build/modules/module';
19
- export { classModule } from 'snabbdom/build/modules/class';
20
- export { propsModule } from 'snabbdom/build/modules/props';
21
- export { attributesModule } from 'snabbdom/build/modules/attributes';
22
- export { datasetModule } from 'snabbdom/build/modules/dataset';
@@ -1,13 +0,0 @@
1
- /**
2
- * Local copy of snabbdom's styleModule with a fixed `window` guard.
3
- *
4
- * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment
5
- * evaluates `window` directly (via `window === null || window === void 0`)
6
- * before the `typeof` check, causing a ReferenceError in Node.js environments.
7
- *
8
- * This copy restores the safe `typeof window !== "undefined"` guard while
9
- * keeping all other 3.6.x improvements (arrow functions, `in` operator for
10
- * style removal checks, etc.).
11
- */
12
- import { Module } from './snabbdom';
13
- export declare const styleModule: Module;
@@ -1,11 +0,0 @@
1
- import { VNode, VNodeData } from './snabbdom';
2
- export interface ThunkData extends VNodeData {
3
- fn(): VNode;
4
- args: Array<any>;
5
- }
6
- export interface Thunk extends VNode {
7
- data: ThunkData;
8
- }
9
- export declare function thunk(sel: string, fn: Function, args: Array<any>): Thunk;
10
- export declare function thunk(sel: string, key: any, fn: Function, args: Array<any>): Thunk;
11
- export default thunk;
@@ -1,8 +0,0 @@
1
- import { Scope } from './isolate';
2
- export declare function isClassOrId(str: string): boolean;
3
- export declare function isDocFrag(el: Element | DocumentFragment): el is DocumentFragment;
4
- export declare function checkValidContainer(container: Element | DocumentFragment | string): void;
5
- export declare function getValidNode(selectors: Element | DocumentFragment | string): Element | DocumentFragment | null;
6
- export declare function getSelectors(namespace: Array<Scope>): string;
7
- export declare function isEqualNamespace(a: Array<Scope> | undefined, b: Array<Scope> | undefined): boolean;
8
- export declare function makeInsert(map: Map<string, Map<Element, any>>): (type: string, elm: Element, value: any) => void;
@@ -1,42 +0,0 @@
1
- import { Stream } from 'xstream';
2
- export type Component<So, Si> = (sources: So, ...rest: Array<any>) => Si;
3
- export type FirstArg<T extends (r: any, ...args: Array<any>) => any> = T extends (r: infer R, ...args: Array<any>) => any ? R : any;
4
- export type IsolateableSource<A = any, B = any> = {
5
- isolateSource(source: IsolateableSource<A, B>, scope: any): IsolateableSource<A, B>;
6
- isolateSink(sink: A, scope: any): B;
7
- };
8
- export type Sources = {
9
- [name: string]: IsolateableSource;
10
- };
11
- export type WildcardScope = {
12
- ['*']?: string;
13
- };
14
- export type ScopesPerChannel<So> = {
15
- [K in keyof So]: any;
16
- };
17
- export type Scopes<So> = (Partial<ScopesPerChannel<So>> & WildcardScope) | string;
18
- export type OuterSo<ISo> = {
19
- [K in keyof ISo]: ISo[K] extends IsolateableSource ? FirstArg<IsolateableSource['isolateSource']> : ISo[K];
20
- };
21
- export type OuterSi<ISo, ISi> = {
22
- [K in keyof ISo & keyof ISi]: ISo[K] extends IsolateableSource ? (ReturnType<ISo[K]['isolateSink']> extends Stream<infer T> ? Stream<T> : (ReturnType<ISo[K]['isolateSink']> extends Stream<any> ? Stream<unknown> : unknown)) : ISi[K];
23
- } & {
24
- [K in Exclude<keyof ISi, keyof ISo>]: ISi[K];
25
- };
26
- /**
27
- * Takes a `component` function and a `scope`, and returns an isolated version
28
- * of the `component` function.
29
- *
30
- * When the isolated component is invoked, each source provided to it is
31
- * isolated to the given `scope` using `source.isolateSource(source, scope)`,
32
- * if possible. Likewise, the sinks returned from the isolated component are
33
- * isolated to the given `scope` using `source.isolateSink(sink, scope)`.
34
- *
35
- * @param {Function} component a function that takes `sources` as input and outputs a collection of `sinks`.
36
- * @param {String} scope an optional string that is used to isolate each `sources` and `sinks`.
37
- * @return {Function} the scoped component function.
38
- * @function isolate
39
- */
40
- declare function isolate<InnerSo, InnerSi>(component: Component<InnerSo, InnerSi>, scope?: any): Component<OuterSo<InnerSo>, OuterSi<InnerSo, InnerSi>>;
41
- export default isolate;
42
- export declare function toIsolated<InnerSo, InnerSi>(scope?: any): (c: Component<InnerSo, InnerSi>) => Component<OuterSo<InnerSo>, OuterSi<InnerSo, InnerSi>>;
@@ -1,6 +0,0 @@
1
- import { Stream } from 'xstream';
2
- export interface AdaptStream {
3
- (s: Stream<any>): any;
4
- }
5
- export declare function setAdapt(f: AdaptStream): void;
6
- export declare function adapt(stream: Stream<any>): any;
@@ -1,36 +0,0 @@
1
- import { CycleProgram, DisposeFunction, Drivers, MatchingDrivers, MatchingMain, Engine } from './types';
2
- export { FantasyObserver, FantasySubscription, FantasyObservable, DevToolEnabledSource, Sources, Sinks, SinkProxies, Driver, Drivers, DisposeFunction, MatchingDrivers, MatchingMain, Main, CycleProgram, Engine, WidenStream, GetValidInputs, } from './types';
3
- /**
4
- * A function that prepares the Cycle application to be executed. Takes a `main`
5
- * function and prepares to circularly connects it to the given collection of
6
- * driver functions. As an output, `setup()` returns an object with three
7
- * properties: `sources`, `sinks` and `run`. Only when `run()` is called will
8
- * the application actually execute. Refer to the documentation of `run()` for
9
- * more details.
10
- *
11
- * @param {Function} main a function that takes `sources` as input and outputs `sinks`.
12
- * @param {Object} drivers an object where keys are driver names and values are driver functions.
13
- * @return {Object} an object with three properties: `sources`, `sinks` and `run`.
14
- * @function setup
15
- */
16
- export declare function setup<D extends MatchingDrivers<D, M>, M extends MatchingMain<D, M>>(main: M, drivers: D): CycleProgram<D, M>;
17
- /**
18
- * A partially-applied variant of setup() which accepts only the drivers, and
19
- * allows many `main` functions to execute and reuse this same set of drivers.
20
- *
21
- * @param {Object} drivers an object where keys are driver names and values are driver functions.
22
- * @return {Object} an object with three properties: `sources`, `run` and `dispose`.
23
- * @function setupReusable
24
- */
25
- export declare function setupReusable<D extends Drivers>(drivers: D): Engine<D>;
26
- /**
27
- * Takes a `main` function and circularly connects it to the given collection
28
- * of driver functions.
29
- *
30
- * @param {Function} main a function that takes `sources` as input and outputs `sinks`.
31
- * @param {Object} drivers an object where keys are driver names and values are driver functions.
32
- * @return {Function} a dispose function, used to terminate the execution of the Cycle.js program.
33
- * @function run
34
- */
35
- export declare function run<D extends MatchingDrivers<D, M>, M extends MatchingMain<D, M>>(main: M, drivers: D): DisposeFunction;
36
- export default run;
@@ -1,8 +0,0 @@
1
- import { DisposeFunction, Drivers, SinkProxies, Sources } from './types';
2
- export declare function makeSinkProxies<D extends Drivers>(drivers: D): SinkProxies<D>;
3
- export declare function callDrivers<D extends Drivers>(drivers: D, sinkProxies: SinkProxies<D>): Sources<D>;
4
- export declare function adaptSources<So>(sources: So): So;
5
- export declare function replicateMany<Si extends any>(sinks: Si, sinkProxies: SinkProxies<Si>): DisposeFunction;
6
- export declare function disposeSinkProxies<Si>(sinkProxies: SinkProxies<Si>): void;
7
- export declare function disposeSources<So>(sources: So): void;
8
- export declare function isObjectEmpty(obj: any): boolean;
@@ -1,49 +0,0 @@
1
- import { Stream } from 'xstream';
2
- export type FantasyObserver<T> = {
3
- next(x: T): void;
4
- error(err: any): void;
5
- complete(c?: any): void;
6
- };
7
- export type FantasySubscription = {
8
- unsubscribe(): void;
9
- };
10
- export type FantasyObservable<T> = {
11
- subscribe(observer: FantasyObserver<T>): FantasySubscription;
12
- };
13
- export type DevToolEnabledSource = {
14
- _isCycleSource: string;
15
- };
16
- export type SinkProxies<Si> = {
17
- [P in keyof Si]: Si[P] extends Stream<infer T> ? Stream<T> : Stream<any>;
18
- };
19
- export type Driver<Si, So> = Si extends void ? (() => So) : ((stream: Si) => So);
20
- export type DisposeFunction = () => void;
21
- export type Drivers = {
22
- [name: string]: Driver<Stream<any>, any | void>;
23
- };
24
- export type Main = (...args: Array<any>) => any;
25
- export type Sources<D extends Drivers> = {
26
- [k in keyof D]: ReturnType<D[k]>;
27
- };
28
- export type Sinks<M extends Main> = ReturnType<M>;
29
- export type MatchingMain<D extends Drivers, M extends Main> = (Main & {
30
- (so: Sources<D>): Sinks<M>;
31
- }) | (Main & {
32
- (): Sinks<M>;
33
- });
34
- export type ToStream<S> = S extends FantasyObservable<infer T> ? Stream<T> : S;
35
- export type WidenStream<S, U> = S extends Stream<infer T> ? (T extends U ? U : never) : any;
36
- export type GetValidInputs<D extends Driver<any, any>> = D extends Driver<infer S, any> ? (S extends Stream<infer T> ? T : never) : never;
37
- export type MatchingDrivers<D extends Drivers, M extends Main> = Drivers & {
38
- [k in string & keyof Sinks<M>]: (() => Sources<D>[k]) | ((si: Stream<WidenStream<ToStream<Sinks<M>[k]>, GetValidInputs<D[k]>>>) => Sources<D>[k]);
39
- };
40
- export interface CycleProgram<D extends MatchingDrivers<D, M>, M extends MatchingMain<D, M>> {
41
- sources: Sources<D>;
42
- sinks: Sinks<M>;
43
- run(): DisposeFunction;
44
- }
45
- export interface Engine<D extends Drivers> {
46
- sources: Sources<D>;
47
- run<M extends MatchingMain<D, M>>(sinks: Sinks<M>): DisposeFunction;
48
- dispose(): void;
49
- }
@@ -1,29 +0,0 @@
1
- import { Stream } from 'xstream';
2
- import { InternalInstances, ItemKeyFn, ItemScopeFn, ItemFactoryFn } from './types';
3
- /**
4
- * An object representing all instances in a collection of components. Has the
5
- * methods pickCombine and pickMerge to get the combined sinks of all instances.
6
- */
7
- export declare class Instances<Si> {
8
- private _instances$;
9
- constructor(instances$: Stream<InternalInstances<Si>>);
10
- pickMerge(selector: string): Stream<any>;
11
- pickCombine(selector: string): Stream<Array<any>>;
12
- }
13
- interface BaseOptions<S, So, Si> {
14
- collectSinks(instances: Instances<Si>): any;
15
- itemKey?: ItemKeyFn<S>;
16
- itemScope?: ItemScopeFn;
17
- channel?: string;
18
- }
19
- interface HomogenousOptions<S, So, Si> extends BaseOptions<S, So, Si> {
20
- item(so: So): Si;
21
- itemFactory?: never;
22
- }
23
- interface HeterogenousOptions<S, So, Si> extends BaseOptions<S, So, Si> {
24
- item?: never;
25
- itemFactory: ItemFactoryFn<S, So, Si>;
26
- }
27
- export type CollectionOptions<S, So, Si> = HomogenousOptions<S, So, Si> | HeterogenousOptions<S, So, Si>;
28
- export declare function makeCollection<S, So = any, Si = any>(opts: CollectionOptions<S, So, Si>): (sources: any) => any;
29
- export {};
@@ -1,20 +0,0 @@
1
- import { Stream, MemoryStream } from 'xstream';
2
- import { Scope, Reducer } from './types';
3
- export declare function isolateSource<T, R>(source: StateSource<T>, scope: Scope<T, R>): StateSource<R>;
4
- export declare function isolateSink<T, R>(innerReducer$: Stream<Reducer<R>>, scope: Scope<T, R>): Stream<Reducer<T>>;
5
- /**
6
- * Represents a piece of application state dynamically changing over time.
7
- */
8
- export declare class StateSource<S> {
9
- stream: MemoryStream<S>;
10
- private _stream;
11
- private _name;
12
- constructor(stream: Stream<S>, name: string);
13
- /**
14
- * Selects a part (or scope) of the state object and returns a new StateSource
15
- * dynamically representing that selected part of the state.
16
- */
17
- select<R>(scope: Scope<S, R>): StateSource<R>;
18
- isolateSource: typeof isolateSource;
19
- isolateSink: typeof isolateSink;
20
- }
@@ -1,5 +0,0 @@
1
- export { Getter, Setter, Lens, Scope, Reducer, MainFn } from './types';
2
- export { StateSource, isolateSource, isolateSink } from './StateSource';
3
- export { Instances, CollectionOptions } from './Collection';
4
- export { withState } from './withState';
5
- export { makeCollection } from './Collection';
@@ -1,3 +0,0 @@
1
- import { Stream } from 'xstream';
2
- import { InternalInstances } from './types';
3
- export declare function pickCombine(selector: string): (inst$: Stream<InternalInstances<any>>) => Stream<Array<any>>;
@@ -1,3 +0,0 @@
1
- import { Stream } from 'xstream';
2
- import { InternalInstances } from './types';
3
- export declare function pickMerge(selector: string): (inst$: Stream<InternalInstances<any>>) => Stream<any>;
@@ -1,18 +0,0 @@
1
- export type MainFn<So, Si> = (sources: So) => Si;
2
- export type Reducer<T> = (state: T | undefined) => T | undefined;
3
- export type Getter<T, R> = (state: T | undefined) => R | undefined;
4
- export type Setter<T, R> = (state: T | undefined, childState: R | undefined) => T | undefined;
5
- export type Lens<T, R> = {
6
- get: Getter<T, R>;
7
- set: Setter<T, R>;
8
- };
9
- export type ItemScopeFn = (key: string) => string | object;
10
- export type ItemKeyFn<S> = (state: S, index?: number) => string;
11
- export type ItemFactoryFn<S, So, Si> = (state: S, index?: number) => MainFn<So, Si>;
12
- export type Scope<T, R> = string | number | Lens<T, R>;
13
- export type InternalInstances<Si> = {
14
- dict: Map<string, Si>;
15
- arr: Array<Si & {
16
- _key: string;
17
- }>;
18
- };
@@ -1,17 +0,0 @@
1
- import { Stream } from 'xstream';
2
- import { MainFn, Reducer } from './types';
3
- import { StateSource } from './StateSource';
4
- export type Omit<T, K extends keyof T> = {
5
- [P in Exclude<keyof T, K>]: T[P];
6
- };
7
- export type Forbid<T, K extends keyof T> = Omit<T, K> & {
8
- [P in K]?: never;
9
- };
10
- export type OSo<T, N extends string> = {
11
- [P in N]: StateSource<T>;
12
- };
13
- export type OSi<T, N extends string> = {
14
- [P in N]: Stream<Reducer<T>>;
15
- };
16
- export type MainWithState<So extends OSo<T, N>, Si extends OSi<T, N>, T, N extends string> = MainFn<Forbid<So, N>, Omit<Si, N>>;
17
- export declare function withState<So extends OSo<T, N>, Si extends OSi<T, N>, T = any, N extends string = 'state'>(main: MainFn<So, Si>, name?: N): MainWithState<So, Si, T, N>;
@@ -1,7 +0,0 @@
1
- type ClassArg = string | string[] | Record<string, boolean | (() => boolean)>;
2
- /**
3
- * Return a validated and properly separated string of CSS class names from
4
- * any number of strings, arrays, and objects.
5
- */
6
- export default function classes(...args: ClassArg[]): string;
7
- export {};