synstate-dom 0.0.0-stage → 0.1.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.
- package/LICENSE +201 -0
- package/README.md +218 -2
- package/dist/bind/bind-props.d.mts +9 -0
- package/dist/bind/bind-props.d.mts.map +1 -0
- package/dist/bind/bind-props.mjs +117 -0
- package/dist/bind/bind-props.mjs.map +1 -0
- package/dist/bind/index.d.mts +2 -0
- package/dist/bind/index.d.mts.map +1 -0
- package/dist/bind/index.mjs +2 -0
- package/dist/bind/index.mjs.map +1 -0
- package/dist/constant/bindable.d.mts +11 -0
- package/dist/constant/bindable.d.mts.map +1 -0
- package/dist/constant/bindable.mjs +2 -0
- package/dist/constant/bindable.mjs.map +1 -0
- package/dist/constant/constant.d.mts +20 -0
- package/dist/constant/constant.d.mts.map +1 -0
- package/dist/constant/constant.mjs +10 -0
- package/dist/constant/constant.mjs.map +1 -0
- package/dist/constant/derive.d.mts +16 -0
- package/dist/constant/derive.d.mts.map +1 -0
- package/dist/constant/derive.mjs +28 -0
- package/dist/constant/derive.mjs.map +1 -0
- package/dist/constant/index.d.mts +7 -0
- package/dist/constant/index.d.mts.map +1 -0
- package/dist/constant/index.mjs +7 -0
- package/dist/constant/index.mjs.map +1 -0
- package/dist/constant/map-bindable.d.mts +10 -0
- package/dist/constant/map-bindable.d.mts.map +1 -0
- package/dist/constant/map-bindable.mjs +16 -0
- package/dist/constant/map-bindable.mjs.map +1 -0
- package/dist/constant/to-observable.d.mts +12 -0
- package/dist/constant/to-observable.d.mts.map +1 -0
- package/dist/constant/to-observable.mjs +16 -0
- package/dist/constant/to-observable.mjs.map +1 -0
- package/dist/constant/view.d.mts +25 -0
- package/dist/constant/view.d.mts.map +1 -0
- package/dist/constant/view.mjs +15 -0
- package/dist/constant/view.mjs.map +1 -0
- package/dist/control/for.d.mts +24 -0
- package/dist/control/for.d.mts.map +1 -0
- package/dist/control/for.mjs +164 -0
- package/dist/control/for.mjs.map +1 -0
- package/dist/control/if.d.mts +16 -0
- package/dist/control/if.d.mts.map +1 -0
- package/dist/control/if.mjs +12 -0
- package/dist/control/if.mjs.map +1 -0
- package/dist/control/index.d.mts +6 -0
- package/dist/control/index.d.mts.map +1 -0
- package/dist/control/index.mjs +6 -0
- package/dist/control/index.mjs.map +1 -0
- package/dist/control/longest-increasing-subsequence.d.mts +7 -0
- package/dist/control/longest-increasing-subsequence.d.mts.map +1 -0
- package/dist/control/longest-increasing-subsequence.mjs +37 -0
- package/dist/control/longest-increasing-subsequence.mjs.map +1 -0
- package/dist/control/match-optional.d.mts +19 -0
- package/dist/control/match-optional.d.mts.map +1 -0
- package/dist/control/match-optional.mjs +21 -0
- package/dist/control/match-optional.mjs.map +1 -0
- package/dist/control/match-result.d.mts +19 -0
- package/dist/control/match-result.d.mts.map +1 -0
- package/dist/control/match-result.mjs +27 -0
- package/dist/control/match-result.mjs.map +1 -0
- package/dist/control/mount-switch.d.mts +18 -0
- package/dist/control/mount-switch.d.mts.map +1 -0
- package/dist/control/mount-switch.mjs +51 -0
- package/dist/control/mount-switch.mjs.map +1 -0
- package/dist/control/portal.d.mts +15 -0
- package/dist/control/portal.d.mts.map +1 -0
- package/dist/control/portal.mjs +22 -0
- package/dist/control/portal.mjs.map +1 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internal/as-constant.d.mts +9 -0
- package/dist/internal/as-constant.d.mts.map +1 -0
- package/dist/internal/as-constant.mjs +10 -0
- package/dist/internal/as-constant.mjs.map +1 -0
- package/dist/internal/bind-value.d.mts +14 -0
- package/dist/internal/bind-value.d.mts.map +1 -0
- package/dist/internal/bind-value.mjs +39 -0
- package/dist/internal/bind-value.mjs.map +1 -0
- package/dist/internal/dom-tables.d.mts +30 -0
- package/dist/internal/dom-tables.d.mts.map +1 -0
- package/dist/internal/dom-tables.mjs +167 -0
- package/dist/internal/dom-tables.mjs.map +1 -0
- package/dist/internal/index.d.mts +7 -0
- package/dist/internal/index.d.mts.map +1 -0
- package/dist/internal/index.mjs +7 -0
- package/dist/internal/index.mjs.map +1 -0
- package/dist/internal/is-view.d.mts +3 -0
- package/dist/internal/is-view.d.mts.map +1 -0
- package/dist/internal/is-view.mjs +4 -0
- package/dist/internal/is-view.mjs.map +1 -0
- package/dist/internal/mountable-tag.d.mts +6 -0
- package/dist/internal/mountable-tag.d.mts.map +1 -0
- package/dist/internal/mountable-tag.mjs +6 -0
- package/dist/internal/mountable-tag.mjs.map +1 -0
- package/dist/internal/view-tag.d.mts +7 -0
- package/dist/internal/view-tag.d.mts.map +1 -0
- package/dist/internal/view-tag.mjs +7 -0
- package/dist/internal/view-tag.mjs.map +1 -0
- package/dist/jsx/child.d.mts +20 -0
- package/dist/jsx/child.d.mts.map +1 -0
- package/dist/jsx/child.mjs +33 -0
- package/dist/jsx/child.mjs.map +1 -0
- package/dist/jsx/element-props.d.mts +78 -0
- package/dist/jsx/element-props.d.mts.map +1 -0
- package/dist/jsx/element-props.mjs +2 -0
- package/dist/jsx/element-props.mjs.map +1 -0
- package/dist/jsx/event-prop-names.d.mts +120 -0
- package/dist/jsx/event-prop-names.d.mts.map +1 -0
- package/dist/jsx/event-prop-names.mjs +2 -0
- package/dist/jsx/event-prop-names.mjs.map +1 -0
- package/dist/jsx/index.d.mts +7 -0
- package/dist/jsx/index.d.mts.map +1 -0
- package/dist/jsx/index.mjs +7 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/jsx-namespace.d.mts +11 -0
- package/dist/jsx/jsx-namespace.d.mts.map +1 -0
- package/dist/jsx/jsx-namespace.mjs +2 -0
- package/dist/jsx/jsx-namespace.mjs.map +1 -0
- package/dist/jsx/jsx.d.mts +18 -0
- package/dist/jsx/jsx.d.mts.map +1 -0
- package/dist/jsx/jsx.mjs +46 -0
- package/dist/jsx/jsx.mjs.map +1 -0
- package/dist/jsx/mountable.d.mts +25 -0
- package/dist/jsx/mountable.d.mts.map +1 -0
- package/dist/jsx/mountable.mjs +7 -0
- package/dist/jsx/mountable.mjs.map +1 -0
- package/dist/jsx-dev-runtime.d.mts +7 -0
- package/dist/jsx-dev-runtime.d.mts.map +1 -0
- package/dist/jsx-dev-runtime.mjs +7 -0
- package/dist/jsx-dev-runtime.mjs.map +1 -0
- package/dist/jsx-runtime.d.mts +7 -0
- package/dist/jsx-runtime.d.mts.map +1 -0
- package/dist/jsx-runtime.mjs +7 -0
- package/dist/jsx-runtime.mjs.map +1 -0
- package/dist/render.d.mts +14 -0
- package/dist/render.d.mts.map +1 -0
- package/dist/render.mjs +25 -0
- package/dist/render.mjs.map +1 -0
- package/package.json +97 -3
- package/src/bind/bind-props.mts +174 -0
- package/src/bind/index.mts +1 -0
- package/src/constant/bindable.mts +19 -0
- package/src/constant/constant.mts +24 -0
- package/src/constant/constant.test.mts +70 -0
- package/src/constant/derive.mts +51 -0
- package/src/constant/derive.test.mts +64 -0
- package/src/constant/index.mts +6 -0
- package/src/constant/map-bindable.mts +23 -0
- package/src/constant/map-bindable.test.mts +63 -0
- package/src/constant/to-observable.mts +20 -0
- package/src/constant/to-observable.test.mts +37 -0
- package/src/constant/view.mts +35 -0
- package/src/constant/view.test.mts +40 -0
- package/src/control/for.mts +298 -0
- package/src/control/if.mts +28 -0
- package/src/control/index.mts +5 -0
- package/src/control/longest-increasing-subsequence.mts +59 -0
- package/src/control/longest-increasing-subsequence.test.mts +26 -0
- package/src/control/match-optional.mts +41 -0
- package/src/control/match-result.mts +48 -0
- package/src/control/mount-switch.mts +75 -0
- package/src/control/portal.mts +32 -0
- package/src/index.mts +4 -0
- package/src/internal/as-constant.mts +11 -0
- package/src/internal/bind-value.mts +58 -0
- package/src/internal/dom-tables.mts +176 -0
- package/src/internal/index.mts +6 -0
- package/src/internal/is-view.mts +6 -0
- package/src/internal/mountable-tag.mts +5 -0
- package/src/internal/view-tag.mts +6 -0
- package/src/jsx/child.mts +51 -0
- package/src/jsx/element-props.mts +132 -0
- package/src/jsx/element-props.test.mts +28 -0
- package/src/jsx/event-prop-names.mts +119 -0
- package/src/jsx/index.mts +6 -0
- package/src/jsx/jsx-namespace.mts +11 -0
- package/src/jsx/jsx.mts +63 -0
- package/src/jsx/mountable.mts +31 -0
- package/src/jsx-dev-runtime.mts +6 -0
- package/src/jsx-runtime.mts +11 -0
- package/src/render.mts +32 -0
package/src/render.mts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createScope } from 'synstate';
|
|
2
|
+
import { type JSX, toNodes } from './jsx/index.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Mounts `app` into `container` and returns the function that unmounts it
|
|
6
|
+
* (SPEC.md 6.5).
|
|
7
|
+
*
|
|
8
|
+
* `app` is called once, inside a new root scope; everything created while it
|
|
9
|
+
* and the description it returns are mounted belongs to that scope, and
|
|
10
|
+
* unmounting disposes it and removes the nodes.
|
|
11
|
+
*
|
|
12
|
+
* `render(App, el)` rather than `render(<App />, el)`: taking the component
|
|
13
|
+
* makes it plain that it is evaluated here.
|
|
14
|
+
*/
|
|
15
|
+
export const render = (
|
|
16
|
+
app: () => JSX.Element,
|
|
17
|
+
container: Element,
|
|
18
|
+
): (() => void) => {
|
|
19
|
+
const root = createScope(undefined);
|
|
20
|
+
|
|
21
|
+
const nodes = root.run(() => toNodes(app().mount()));
|
|
22
|
+
|
|
23
|
+
container.append(...nodes);
|
|
24
|
+
|
|
25
|
+
return () => {
|
|
26
|
+
root.dispose();
|
|
27
|
+
|
|
28
|
+
for (const node of nodes) {
|
|
29
|
+
node.remove();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|