@oddo/ui 0.0.3 → 0.0.4
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/dist/chunk-7AQ257KF.js +297 -0
- package/dist/chunk-7AQ257KF.js.map +1 -0
- package/dist/chunk-UD3G5YTZ.mjs +297 -0
- package/dist/chunk-UD3G5YTZ.mjs.map +1 -0
- package/dist/index-ssr.js +72 -0
- package/dist/index-ssr.js.map +1 -0
- package/dist/index-ssr.mjs +72 -0
- package/dist/index-ssr.mjs.map +1 -0
- package/dist/index.js +51 -196
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +46 -191
- package/dist/index.mjs.map +1 -1
- package/package.json +15 -3
package/dist/index.mjs
CHANGED
|
@@ -1,182 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
for (const observer of current) {
|
|
16
|
-
observer();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
var state = (state2) => {
|
|
21
|
-
const { subscribe, notify } = observable();
|
|
22
|
-
return [
|
|
23
|
-
new ReactiveContainer((caller) => (caller && subscribe(caller), state2)),
|
|
24
|
-
(value) => value !== state2 && (state2 = value, notify())
|
|
25
|
-
];
|
|
26
|
-
};
|
|
27
|
-
var bindDependencies = (deps, cleanup) => deps.map((dep) => dep[reactiveSymbol] ? dep.get.bind(null, cleanup) : () => dep);
|
|
28
|
-
var computed = (fn, deps) => {
|
|
29
|
-
const { subscribe, notify } = observable();
|
|
30
|
-
let cache, cached = false;
|
|
31
|
-
deps = bindDependencies(deps, () => (cached = false, notify()));
|
|
32
|
-
return new ReactiveContainer(function computed2(caller) {
|
|
33
|
-
if (!cached) {
|
|
34
|
-
caller && subscribe(caller);
|
|
35
|
-
cache = fn(...deps);
|
|
36
|
-
cached = true;
|
|
37
|
-
}
|
|
38
|
-
return cache;
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
var effect = (fn, deps) => {
|
|
42
|
-
const effect3 = schedule.bind(null, () => fn(...deps));
|
|
43
|
-
deps = bindDependencies(deps, effect3);
|
|
44
|
-
effect3();
|
|
45
|
-
};
|
|
46
|
-
var effect2 = (fn, deps) => {
|
|
47
|
-
const effect3 = () => fn(...deps);
|
|
48
|
-
deps = bindDependencies(deps, schedule.bind(null, effect3));
|
|
49
|
-
effect3();
|
|
50
|
-
};
|
|
51
|
-
var queue = [];
|
|
52
|
-
var schedule = (effect3) => {
|
|
53
|
-
queue.length || queueMicrotask(executeQueue);
|
|
54
|
-
queue.push(effect3);
|
|
55
|
-
};
|
|
56
|
-
var executeQueue = () => {
|
|
57
|
-
for (const effect3 of queue) {
|
|
58
|
-
effect3();
|
|
59
|
-
}
|
|
60
|
-
queue.length = 0;
|
|
61
|
-
};
|
|
62
|
-
var copyOnWrite = (target) => {
|
|
63
|
-
let dirty = false;
|
|
64
|
-
return (update = true) => {
|
|
65
|
-
if (dirty) {
|
|
66
|
-
return target;
|
|
67
|
-
}
|
|
68
|
-
dirty = update;
|
|
69
|
-
return target = Object.assign(target.constructor(), target);
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
var noop = () => {
|
|
73
|
-
};
|
|
74
|
-
var stateProxy = (target, mutable, notifyParent) => {
|
|
75
|
-
if (target && typeof target === "object") {
|
|
76
|
-
const mutate = copyOnWrite(target);
|
|
77
|
-
const children = /* @__PURE__ */ new Map();
|
|
78
|
-
return new Proxy(noop, {
|
|
79
|
-
apply() {
|
|
80
|
-
return target = mutate(mutable);
|
|
81
|
-
},
|
|
82
|
-
set(_, key, value) {
|
|
83
|
-
if (record.hasOwnProperty(prop) && target[key] === value) return false;
|
|
84
|
-
if (children.has(key) && !(value && typeof value === "object")) {
|
|
85
|
-
children.delete(key);
|
|
86
|
-
}
|
|
87
|
-
target = mutate();
|
|
88
|
-
target[key] = value;
|
|
89
|
-
mutable || (notifyParent == null ? void 0 : notifyParent(target));
|
|
90
|
-
return true;
|
|
91
|
-
},
|
|
92
|
-
get(_, key) {
|
|
93
|
-
const value = Reflect.get(target, key, target);
|
|
94
|
-
if (!children.has(key)) {
|
|
95
|
-
children.set(stateProxy(value, mutable, (value2) => {
|
|
96
|
-
target = mutate();
|
|
97
|
-
target[key] = value2;
|
|
98
|
-
}));
|
|
99
|
-
}
|
|
100
|
-
return children.get(key);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return () => target;
|
|
105
|
-
};
|
|
106
|
-
var liftValue = (arg) => (arg == null ? void 0 : arg[reactiveSymbol]) ? arg.get() : arg;
|
|
107
|
-
var empty = Object.freeze([]);
|
|
108
|
-
var transact = (mutator, finalizer, targets, otherValues = empty) => {
|
|
109
|
-
otherValues = bindDependencies(otherValues);
|
|
110
|
-
return (...args) => {
|
|
111
|
-
const stateProxies = targets.map((state2) => stateProxy(state2.get()));
|
|
112
|
-
mutator(finalizer, ...stateProxies, ...otherValues, ...args.map(liftValue));
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
var lift = (fn, deps) => fn(...bindDependencies(deps));
|
|
116
|
-
var liftFn = (callbackFn, deps = empty) => (...args) => callbackFn(...deps.map(liftValue), ...args.map(liftValue));
|
|
117
|
-
|
|
118
|
-
// src/attrs.mjs
|
|
119
|
-
var patchAttributes = (el, newAttrs, oldAttrs = {}) => {
|
|
120
|
-
for (const key in oldAttrs) {
|
|
121
|
-
if (!(key in newAttrs)) {
|
|
122
|
-
removeAttribute(el, key);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
for (const key in newAttrs) {
|
|
126
|
-
const oldValue = oldAttrs[key];
|
|
127
|
-
const newValue = newAttrs[key];
|
|
128
|
-
if (oldValue !== newValue) {
|
|
129
|
-
(newValue == null ? void 0 : newValue[reactiveSymbol]) ? effect2((newValue2) => setAttribute(el, key, newValue2(), oldValue), [newValue]) : setAttribute(el, key, newValue, oldValue);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
var setAttribute = (element, key, value, oldValue) => {
|
|
134
|
-
switch (key) {
|
|
135
|
-
case "style":
|
|
136
|
-
return typeof value === "string" ? element.style = value : patchStyle(element, oldValue, value);
|
|
137
|
-
case "value":
|
|
138
|
-
return element.value = value ?? "";
|
|
139
|
-
case "checked":
|
|
140
|
-
return element.checked = !!value;
|
|
141
|
-
case "selected":
|
|
142
|
-
return element.selected = !!value;
|
|
143
|
-
case "innerHTML":
|
|
144
|
-
return element.innerHTML = value ?? "";
|
|
145
|
-
default:
|
|
146
|
-
if (value == null || value === false) {
|
|
147
|
-
element.removeAttribute(key);
|
|
148
|
-
} else if (key.startsWith("on")) {
|
|
149
|
-
element[key] = value;
|
|
150
|
-
} else if (value == true) {
|
|
151
|
-
element.setAttribute(key, "");
|
|
152
|
-
} else {
|
|
153
|
-
element.setAttribute(key, value);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
var removeAttribute = (element, key) => {
|
|
158
|
-
switch (key) {
|
|
159
|
-
case "value":
|
|
160
|
-
return element.value = null;
|
|
161
|
-
case "checked":
|
|
162
|
-
case "selected":
|
|
163
|
-
return element[key] = false;
|
|
164
|
-
default:
|
|
165
|
-
return key.startsWith("on") ? element[key] = null : element.removeAttribute(key);
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
var patchStyle = (element, oldStyle = {}, newStyle = {}) => {
|
|
169
|
-
for (const prop2 in oldStyle) {
|
|
170
|
-
if (!(prop2 in newStyle)) {
|
|
171
|
-
element.style[prop2] = null;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
for (const prop2 in newStyle) {
|
|
175
|
-
if (oldStyle[prop2] !== newStyle[prop2]) {
|
|
176
|
-
element.style[prop2] = newStyle[prop2];
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
computed,
|
|
3
|
+
effect,
|
|
4
|
+
effect2,
|
|
5
|
+
lift,
|
|
6
|
+
liftFn,
|
|
7
|
+
observable,
|
|
8
|
+
patchAttributes,
|
|
9
|
+
reactiveSymbol,
|
|
10
|
+
ref,
|
|
11
|
+
state,
|
|
12
|
+
stateProxy,
|
|
13
|
+
transact
|
|
14
|
+
} from "./chunk-UD3G5YTZ.mjs";
|
|
180
15
|
|
|
181
16
|
// src/dom.mjs
|
|
182
17
|
var emptyObject = {};
|
|
@@ -207,14 +42,14 @@ var createJsxExpression = (fn, deps) => (parent) => {
|
|
|
207
42
|
};
|
|
208
43
|
var createFragment = (...children) => (parent, oldNodeCleanup) => {
|
|
209
44
|
const node = new DocumentFragment();
|
|
210
|
-
const startNode = document.createComment("<");
|
|
211
|
-
|
|
212
|
-
node.appendChild(startNode);
|
|
45
|
+
const startNode = hydrating ? walk() : document.createComment("<");
|
|
46
|
+
hydrating || node.appendChild(startNode);
|
|
213
47
|
for (const child of children) {
|
|
214
48
|
render(child)(node);
|
|
215
49
|
}
|
|
216
|
-
|
|
217
|
-
|
|
50
|
+
const endNode = hydrating ? walk() : document.createComment(">");
|
|
51
|
+
hydrating || node.appendChild(endNode);
|
|
52
|
+
oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node);
|
|
218
53
|
return (parent2, newElement) => {
|
|
219
54
|
const range = document.createRange();
|
|
220
55
|
range.setStart(startNode, 1);
|
|
@@ -224,12 +59,16 @@ var createFragment = (...children) => (parent, oldNodeCleanup) => {
|
|
|
224
59
|
};
|
|
225
60
|
};
|
|
226
61
|
var createElement = (tag, attrs, ...children) => (parent, oldNodeCleanup) => {
|
|
227
|
-
const node = document.createElement(tag);
|
|
228
|
-
|
|
62
|
+
const node = hydrating ? walk() : document.createElement(tag);
|
|
63
|
+
const patch = patchAttributes(node);
|
|
64
|
+
(attrs == null ? void 0 : attrs[reactiveSymbol]) ? effect2((attrs2) => patch(attrs2(), hydrating), [attrs]) : patch(attrs, hydrating);
|
|
65
|
+
const temp = walk;
|
|
66
|
+
hydrating && (walk = domWalker(node.childNodes));
|
|
229
67
|
for (const child of children) {
|
|
230
68
|
render(child)(node);
|
|
231
69
|
}
|
|
232
|
-
|
|
70
|
+
hydrating && (walk = temp);
|
|
71
|
+
oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node);
|
|
233
72
|
return (parent2, newElement) => {
|
|
234
73
|
parent2.replaceChild(newElement, node);
|
|
235
74
|
};
|
|
@@ -268,15 +107,15 @@ var render = (vdom) => {
|
|
|
268
107
|
}
|
|
269
108
|
};
|
|
270
109
|
var createNullElement = () => (parent, oldNodeCleanup) => {
|
|
271
|
-
const node = document.createComment("|");
|
|
272
|
-
oldNodeCleanup ? oldNodeCleanup(parent, node) : parent.appendChild(node);
|
|
110
|
+
const node = hydrating ? walk() : document.createComment("|");
|
|
111
|
+
oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node);
|
|
273
112
|
return (parent2, newElement) => {
|
|
274
113
|
parent2.replaceChild(newElement, node);
|
|
275
114
|
};
|
|
276
115
|
};
|
|
277
116
|
var createTextElement = (text) => (parent, oldNodeCleanup) => {
|
|
278
|
-
const node = document.createTextNode(text);
|
|
279
|
-
oldNodeCleanup ? oldNodeCleanup(parent, node) : parent.appendChild(node);
|
|
117
|
+
const node = hydrating ? (walk(), walk()) : document.createTextNode(text);
|
|
118
|
+
oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node);
|
|
280
119
|
return (parent2, newElement) => {
|
|
281
120
|
parent2.replaceChild(newElement, node);
|
|
282
121
|
};
|
|
@@ -284,6 +123,20 @@ var createTextElement = (text) => (parent, oldNodeCleanup) => {
|
|
|
284
123
|
var mount = (root, jsx) => {
|
|
285
124
|
render(jsx)(root);
|
|
286
125
|
};
|
|
126
|
+
var hydrating = false;
|
|
127
|
+
var hydrate = (root, jsx) => {
|
|
128
|
+
hydrating = true;
|
|
129
|
+
walk = domWalker(root.childNodes);
|
|
130
|
+
render(jsx)(root);
|
|
131
|
+
hydrating = false;
|
|
132
|
+
};
|
|
133
|
+
var walk;
|
|
134
|
+
var domWalker = (children) => {
|
|
135
|
+
let cursor = 0;
|
|
136
|
+
console.log("NEW WALKER", { cursor, children });
|
|
137
|
+
return () => log(children[cursor++], { cursor, children });
|
|
138
|
+
};
|
|
139
|
+
var log = (item, ...args) => (console.log({ item }, ...args), item);
|
|
287
140
|
export {
|
|
288
141
|
createComponent as c,
|
|
289
142
|
computed,
|
|
@@ -294,10 +147,12 @@ export {
|
|
|
294
147
|
createElement as e,
|
|
295
148
|
effect,
|
|
296
149
|
createFragment as f,
|
|
150
|
+
hydrate,
|
|
297
151
|
lift,
|
|
298
152
|
liftFn,
|
|
299
153
|
mount,
|
|
300
154
|
transact as mutate,
|
|
155
|
+
ref,
|
|
301
156
|
state,
|
|
302
157
|
stateProxy,
|
|
303
158
|
transact,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/reactive.mjs","../src/attrs.mjs","../src/dom.mjs"],"sourcesContent":["export const reactiveSymbol = Symbol.for(\"oddo::is-reactive-handler-property-symbol\")\r\n\r\nclass ReactiveContainer {\r\n [reactiveSymbol] = true\r\n\r\n constructor (getter) {\r\n this.get = getter\r\n Object.freeze(this)\r\n }\r\n}\r\n\r\nexport const observable = (observers = new Set) => ({\r\n subscribe: (fn) => observers.add(fn),\r\n notify: () => {\r\n const current = Array.from(observers)\r\n observers.clear()\r\n for (const observer of current) { observer() }\r\n }\r\n})\r\n\r\nexport const state = (state) => {\r\n const { subscribe, notify } = observable()\r\n return [\r\n new ReactiveContainer(caller => (caller && subscribe(caller), state)),\r\n value => value !== state && (state = value, notify())\r\n ]\r\n}\r\n\r\nexport const bindDependencies = (deps, cleanup) =>\r\n deps.map(dep => dep[reactiveSymbol] ? dep.get.bind(null, cleanup) : () => dep)\r\n\r\nexport const computed = (fn, deps) => {\r\n const { subscribe, notify } = observable()\r\n let cache, cached = false\r\n deps = bindDependencies(deps, () => (cached = false, notify()))\r\n\r\n return new ReactiveContainer(function computed (caller) {\r\n if (!cached) {\r\n caller && subscribe(caller)\r\n cache = fn(...deps)\r\n cached = true\r\n }\r\n return cache\r\n })\r\n}\r\n\r\nexport const effect = (fn, deps) => {\r\n const effect = schedule.bind(null, () => fn(...deps))\r\n deps = bindDependencies(deps, effect)\r\n effect()\r\n}\r\n\r\nexport const effect2 = (fn, deps) => {\r\n const effect = () => fn(...deps)\r\n deps = bindDependencies(deps, schedule.bind(null, effect))\r\n effect()\r\n}\r\n\r\nconst queue = []\r\nexport const schedule = (effect) => {\r\n queue.length || queueMicrotask(executeQueue)\r\n queue.push(effect)\r\n}\r\n\r\nexport const executeQueue = () => {\r\n for (const effect of queue) { effect() }\r\n queue.length = 0\r\n}\r\n\r\nconst copyOnWrite = (target) => {\r\n\tlet dirty = false\r\n\treturn (update = true) => {\r\n\t\tif (dirty) {\r\n\t\t\treturn target\r\n\t\t}\r\n\t\tdirty = update\r\n\t\treturn target = Object.assign(target.constructor(), target)\r\n\t}\r\n};\r\n\r\nconst noop = () => {}\r\nexport const stateProxy = (target, mutable, notifyParent) => {\r\n if (target && typeof target === \"object\") {\r\n const mutate = copyOnWrite(target)\r\n const children = new Map()\r\n return new Proxy(noop, {\r\n apply () {\r\n return target = mutate(mutable)\r\n },\r\n set (_, key, value) {\r\n if (record.hasOwnProperty(prop) && target[key] === value) return false\r\n if (children.has(key) && !(value && typeof value === \"object\")) {\r\n children.delete(key)\r\n }\r\n target = mutate()\r\n target[key] = value\r\n mutable || notifyParent?.(target)\r\n return true\r\n },\r\n get (_, key) {\r\n const value = Reflect.get(target, key, target)\r\n if (!children.has(key)) {\r\n children.set(stateProxy(value, mutable, (value) => {\r\n target = mutate()\r\n target[key] = value\r\n }))\r\n }\r\n return children.get(key)\r\n }\r\n })\r\n }\r\n return () => target\r\n}\r\n\r\nconst liftValue = arg => arg?.[reactiveSymbol] ? arg.get() : arg\r\nconst empty = Object.freeze([])\r\n\r\nexport const mutate = (mutator, targets, otherValues = empty) => {\r\n otherValues = bindDependencies(otherValues)\r\n return (...args) => {\r\n const stateProxies = targets.map(state => stateProxy(state.get()))\r\n mutator(...stateProxies, ...otherValues, ...args.map(liftValue))\r\n }\r\n}\r\n\r\nexport const transact = (mutator, finalizer, targets, otherValues = empty) => {\r\n otherValues = bindDependencies(otherValues)\r\n return (...args) => {\r\n const stateProxies = targets.map(state => stateProxy(state.get())) // we also need to include mutable (LET) variables here\r\n mutator(finalizer, ...stateProxies, ...otherValues, ...args.map(liftValue))\r\n }\r\n}\r\n\r\nexport const lift = (fn, deps) => fn(...bindDependencies(deps))\r\nexport const liftFn = (callbackFn, deps = empty) => (...args) =>\r\n callbackFn(...deps.map(liftValue), ...args.map(liftValue))\r\n","import { reactiveSymbol, effect2 } from \"./reactive.mjs\"\r\nexport const patchAttributes = (el, newAttrs, oldAttrs = {}) => {\r\n for (const key in oldAttrs) {\r\n if (!(key in newAttrs)) {\r\n removeAttribute(el, key)\r\n }\r\n }\r\n\r\n for (const key in newAttrs) {\r\n const oldValue = oldAttrs[key]\r\n const newValue = newAttrs[key]\r\n\r\n if (oldValue !== newValue) {\r\n newValue?.[reactiveSymbol]\r\n ? effect2((newValue) => setAttribute(el, key, newValue(), oldValue), [newValue])\r\n : setAttribute(el, key, newValue, oldValue)\r\n }\r\n }\r\n}\r\n\r\nconst setAttribute = (element, key, value, oldValue) => {\r\n switch (key) {\r\n case \"style\":\r\n return typeof value === \"string\"\r\n ? element.style = value\r\n : patchStyle(element, oldValue, value)\r\n case \"value\":\r\n return element.value = value ?? \"\"\r\n case \"checked\":\r\n return element.checked = !!value\r\n case \"selected\":\r\n return element.selected = !!value\r\n case \"innerHTML\":\r\n return element.innerHTML = value ?? \"\"\r\n default:\r\n if (value == null || value === false) {\r\n element.removeAttribute(key)\r\n } else if (key.startsWith(\"on\")) {\r\n element[key] = value\r\n } else if (value == true) {\r\n element.setAttribute(key, \"\")\r\n } else {\r\n element.setAttribute(key, value)\r\n }\r\n }\r\n}\r\n\r\nconst removeAttribute = (element, key) => {\r\n switch (key) {\r\n case 'value':\r\n return element.value = null\r\n case 'checked':\r\n case 'selected':\r\n return element[key] = false\r\n default:\r\n return key.startsWith('on')\r\n ? element[key] = null\r\n : element.removeAttribute(key)\r\n }\r\n}\r\n\r\nconst patchStyle = (element, oldStyle = {}, newStyle = {}) => {\r\n for (const prop in oldStyle) {\r\n if (!(prop in newStyle)) {\r\n element.style[prop] = null;\r\n }\r\n }\r\n for (const prop in newStyle) {\r\n if (oldStyle[prop] !== newStyle[prop]) {\r\n element.style[prop] = newStyle[prop];\r\n }\r\n }\r\n}\r\n","import { patchAttributes } from \"./attrs.mjs\"\nimport { observable, reactiveSymbol, effect2, computed } from \"./reactive.mjs\"\n\nconst emptyObject = {}\n\nlet currentContext = null\nconst cleanupContext = (parent) => {\n const { subscribe, notify: disposeChildren} = observable()\n const { subscribe: onCleanup, notify: runCleanup} = observable()\n const dispose = () => (runCleanup(), disposeChildren())\n parent?.(dispose)\n\n return { onCleanup, dispose, subscribe }\n}\n\nexport const createJsxExpression = (fn, deps) => (parent) => {\n let patch\n let dispose\n let subscribe\n\n effect2(\n (vdom) => {\n dispose?.()\n const content = vdom();\n ({ dispose, subscribe } = typeof vdom === \"function\" ? cleanupContext(currentContext) : emptyObject)\n const prevContext = currentContext\n currentContext = subscribe\n patch = render(content)(parent, patch)\n currentContext = prevContext\n },\n [computed(fn, deps)]\n )\n}\n\nexport const createFragment = (...children) => (parent, oldNodeCleanup) => {\n const node = new DocumentFragment\n const startNode = document.createComment(\"<\")\n const endNode = document.createComment(\">\")\n node.appendChild(startNode)\n for (const child of children) {\n render(child)(node)\n }\n node.appendChild(endNode)\n oldNodeCleanup ? oldNodeCleanup(parent, node) : parent.appendChild(node)\n\n return (parent, newElement) => {\n const range = document.createRange()\n range.setStart(startNode, 1)\n range.setEnd(endNode, 0)\n range.deleteContents()\n parent.replaceChild(newElement, startNode)\n }\n}\n\nexport const createElement = (tag, attrs, ...children) => (parent, oldNodeCleanup) => {\n const node = document.createElement(tag)\n attrs?.[reactiveSymbol]\n ? effect2((attrs) => attrs = patchAttributes(node, attrs()), [attrs])\n : patchAttributes(node, attrs)\n\n for (const child of children) {\n render(child)(node)\n }\n oldNodeCleanup ? oldNodeCleanup(parent, node) : parent.appendChild(node)\n\n return (parent, newElement) => {\n parent.replaceChild(newElement, node)\n }\n}\n\nexport const createComponent = (component, props, ...children) => (parent, oldNodeCleanup) => {\n const initializers = []\n const { dispose, subscribe, onCleanup } = cleanupContext(currentContext)\n const prevContext = currentContext\n currentContext = subscribe\n const expressionOrVdom = component.call({ onCleanup, onMount: fn => initializers.push(fn) }, { props, children })\n const nodeCleanup = render(expressionOrVdom)(parent, oldNodeCleanup)\n currentContext = prevContext\n\n for (const initializer of initializers) { initializer() }\n\n return (parent, newElement) => {\n dispose()\n nodeCleanup(parent, newElement)\n }\n}\n\nexport const render = vdom => {\n if (Array.isArray(vdom)) return createFragment(...vdom)\n switch (vdom) {\n case true:\n case false:\n case null:\n case undefined:\n return createNullElement()\n }\n\n switch (typeof vdom) {\n case \"string\":\n case \"number\":\n return createTextElement(vdom)\n case \"function\":\n return vdom\n }\n}\n\nexport const createNullElement = () => (parent, oldNodeCleanup) => {\n const node = document.createComment(\"|\")\n oldNodeCleanup ? oldNodeCleanup(parent, node) : parent.appendChild(node)\n\n return (parent, newElement) => {\n parent.replaceChild(newElement, node)\n }\n}\n\nexport const createTextElement = (text) => (parent, oldNodeCleanup) => {\n const node = document.createTextNode(text)\n oldNodeCleanup ? oldNodeCleanup(parent, node) : parent.appendChild(node)\n\n return (parent, newElement) => {\n parent.replaceChild(newElement, node)\n }\n}\n\nexport const mount = (root, jsx) => {\n render(jsx)(root)\n}\n"],"mappings":"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","names":["state","computed","effect","value","state","newValue","prop","parent","attrs"]}
|
|
1
|
+
{"version":3,"sources":["../src/dom.mjs"],"sourcesContent":["import { patchAttributes } from \"./attrs.mjs\"\nimport { observable, reactiveSymbol, effect2, computed } from \"./reactive.mjs\"\n\nconst emptyObject = {}\n\nlet currentContext = null\nconst cleanupContext = (parent) => {\n const { subscribe, notify: disposeChildren} = observable()\n const { subscribe: onCleanup, notify: runCleanup} = observable()\n const dispose = () => (runCleanup(), disposeChildren())\n parent?.(dispose)\n\n return { onCleanup, dispose, subscribe }\n}\n\nexport const createJsxExpression = (fn, deps) => (parent) => {\n let patch\n let dispose\n let subscribe\n\n effect2(\n (vdom) => {\n dispose?.()\n const content = vdom();\n ({ dispose, subscribe } = typeof vdom === \"function\" ? cleanupContext(currentContext) : emptyObject)\n const prevContext = currentContext\n currentContext = subscribe\n patch = render(content)(parent, patch)\n currentContext = prevContext\n },\n [computed(fn, deps)]\n )\n}\n\nexport const createFragment = (...children) => (parent, oldNodeCleanup) => {\n const node = new DocumentFragment\n const startNode = hydrating ? walk() : document.createComment(\"<\")\n hydrating || node.appendChild(startNode)\n for (const child of children) {\n render(child)(node)\n }\n const endNode = hydrating ? walk() : document.createComment(\">\")\n hydrating || node.appendChild(endNode)\n oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node)\n\n return (parent, newElement) => {\n const range = document.createRange()\n range.setStart(startNode, 1)\n range.setEnd(endNode, 0)\n range.deleteContents()\n parent.replaceChild(newElement, startNode)\n }\n}\n\nexport const createElement = (tag, attrs, ...children) => (parent, oldNodeCleanup) => {\n const node = hydrating ? walk() : document.createElement(tag)\n const patch = patchAttributes(node)\n attrs?.[reactiveSymbol]\n ? effect2((attrs) => patch(attrs(), hydrating), [attrs])\n : patch(attrs, hydrating)\n\n const temp = walk\n hydrating && (walk = domWalker(node.childNodes))\n for (const child of children) { render(child)(node) }\n hydrating && (walk = temp)\n oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node)\n\n return (parent, newElement) => {\n parent.replaceChild(newElement, node)\n }\n}\n\nexport const createComponent = (component, props, ...children) => (parent, oldNodeCleanup) => {\n const initializers = []\n const { dispose, subscribe, onCleanup } = cleanupContext(currentContext)\n const prevContext = currentContext\n currentContext = subscribe\n const expressionOrVdom = component.call({ onCleanup, onMount: fn => initializers.push(fn) }, { props, children })\n const nodeCleanup = render(expressionOrVdom)(parent, oldNodeCleanup)\n currentContext = prevContext\n\n for (const initializer of initializers) { initializer() }\n\n return (parent, newElement) => {\n dispose()\n nodeCleanup(parent, newElement)\n }\n}\n\nexport const render = vdom => {\n if (Array.isArray(vdom)) return createFragment(...vdom)\n switch (vdom) {\n case true:\n case false:\n case null:\n case undefined:\n return createNullElement()\n }\n\n switch (typeof vdom) {\n case \"string\":\n case \"number\":\n return createTextElement(vdom)\n case \"function\":\n return vdom\n }\n}\n\nexport const createNullElement = () => (parent, oldNodeCleanup) => {\n const node = hydrating ? walk() : document.createComment(\"|\")\n oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node)\n\n return (parent, newElement) => {\n parent.replaceChild(newElement, node)\n }\n}\n\nexport const createTextElement = (text) => (parent, oldNodeCleanup) => {\n const node = hydrating ? (walk(), walk()) : document.createTextNode(text)\n oldNodeCleanup ? oldNodeCleanup(parent, node) : hydrating || parent.appendChild(node)\n\n return (parent, newElement) => {\n parent.replaceChild(newElement, node)\n }\n}\n\nexport const mount = (root, jsx) => {\n render(jsx)(root)\n}\n\nlet hydrating = false\nexport const hydrate = (root, jsx) => {\n hydrating = true\n walk = domWalker(root.childNodes)\n render(jsx)(root)\n hydrating = false\n}\n\nlet walk\nconst domWalker = children => {\n let cursor = 0\n console.log(\"NEW WALKER\", { cursor, children })\n return () => log(children[cursor++], {cursor, children})\n}\n\nconst log = (item, ...args) => (console.log({ item }, ...args), item)\n"],"mappings":";;;;;;;;;;;;;;;;AAGA,IAAM,cAAc,CAAC;AAErB,IAAI,iBAAiB;AACrB,IAAM,iBAAiB,CAAC,WAAW;AACjC,QAAM,EAAE,WAAW,QAAQ,gBAAe,IAAI,WAAW;AACzD,QAAM,EAAE,WAAW,WAAW,QAAQ,WAAU,IAAI,WAAW;AAC/D,QAAM,UAAU,OAAO,WAAW,GAAG,gBAAgB;AACrD,mCAAS;AAET,SAAO,EAAE,WAAW,SAAS,UAAU;AACzC;AAEO,IAAM,sBAAsB,CAAC,IAAI,SAAS,CAAC,WAAW;AAC3D,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ;AAAA,IACE,CAAC,SAAS;AACR;AACA,YAAM,UAAU,KAAK;AACrB,OAAC,EAAE,SAAS,UAAU,IAAI,OAAO,SAAS,aAAa,eAAe,cAAc,IAAI;AACxF,YAAM,cAAc;AACpB,uBAAiB;AACjB,cAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK;AACrC,uBAAiB;AAAA,IACnB;AAAA,IACA,CAAC,SAAS,IAAI,IAAI,CAAC;AAAA,EACrB;AACF;AAEO,IAAM,iBAAiB,IAAI,aAAa,CAAC,QAAQ,mBAAmB;AACzE,QAAM,OAAO,IAAI;AACjB,QAAM,YAAY,YAAY,KAAK,IAAI,SAAS,cAAc,GAAG;AACjE,eAAa,KAAK,YAAY,SAAS;AACvC,aAAW,SAAS,UAAU;AAC5B,WAAO,KAAK,EAAE,IAAI;AAAA,EACpB;AACA,QAAM,UAAU,YAAY,KAAK,IAAI,SAAS,cAAc,GAAG;AAC/D,eAAa,KAAK,YAAY,OAAO;AACrC,mBAAiB,eAAe,QAAQ,IAAI,IAAI,aAAa,OAAO,YAAY,IAAI;AAEpF,SAAO,CAACA,SAAQ,eAAe;AAC7B,UAAM,QAAQ,SAAS,YAAY;AACnC,UAAM,SAAS,WAAW,CAAC;AAC3B,UAAM,OAAO,SAAS,CAAC;AACvB,UAAM,eAAe;AACrB,IAAAA,QAAO,aAAa,YAAY,SAAS;AAAA,EAC3C;AACF;AAEO,IAAM,gBAAgB,CAAC,KAAK,UAAU,aAAa,CAAC,QAAQ,mBAAmB;AACpF,QAAM,OAAO,YAAY,KAAK,IAAI,SAAS,cAAc,GAAG;AAC5D,QAAM,QAAQ,gBAAgB,IAAI;AAClC,kCAAQ,mBACJ,QAAQ,CAACC,WAAU,MAAMA,OAAM,GAAG,SAAS,GAAG,CAAC,KAAK,CAAC,IACrD,MAAM,OAAO,SAAS;AAE1B,QAAM,OAAO;AACb,gBAAc,OAAO,UAAU,KAAK,UAAU;AAC9C,aAAW,SAAS,UAAU;AAAE,WAAO,KAAK,EAAE,IAAI;AAAA,EAAE;AACpD,gBAAc,OAAO;AACrB,mBAAiB,eAAe,QAAQ,IAAI,IAAI,aAAa,OAAO,YAAY,IAAI;AAEpF,SAAO,CAACD,SAAQ,eAAe;AAC7B,IAAAA,QAAO,aAAa,YAAY,IAAI;AAAA,EACtC;AACF;AAEO,IAAM,kBAAkB,CAAC,WAAW,UAAU,aAAa,CAAC,QAAQ,mBAAmB;AAC5F,QAAM,eAAe,CAAC;AACtB,QAAM,EAAE,SAAS,WAAW,UAAU,IAAI,eAAe,cAAc;AACvE,QAAM,cAAc;AACpB,mBAAiB;AACjB,QAAM,mBAAmB,UAAU,KAAK,EAAE,WAAW,SAAS,QAAM,aAAa,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,SAAS,CAAC;AAChH,QAAM,cAAc,OAAO,gBAAgB,EAAE,QAAQ,cAAc;AACnE,mBAAiB;AAEjB,aAAW,eAAe,cAAc;AAAE,gBAAY;AAAA,EAAE;AAExD,SAAO,CAACA,SAAQ,eAAe;AAC7B,YAAQ;AACR,gBAAYA,SAAQ,UAAU;AAAA,EAChC;AACF;AAEO,IAAM,SAAS,UAAQ;AAC5B,MAAI,MAAM,QAAQ,IAAI,EAAG,QAAO,eAAe,GAAG,IAAI;AACtD,UAAQ,MAAM;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,kBAAkB;AAAA,EAC7B;AAEA,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AAAA,IACL,KAAK;AACH,aAAO,kBAAkB,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO;AAAA,EACX;AACF;AAEO,IAAM,oBAAoB,MAAM,CAAC,QAAQ,mBAAmB;AACjE,QAAM,OAAO,YAAY,KAAK,IAAI,SAAS,cAAc,GAAG;AAC5D,mBAAiB,eAAe,QAAQ,IAAI,IAAI,aAAa,OAAO,YAAY,IAAI;AAEpF,SAAO,CAACA,SAAQ,eAAe;AAC7B,IAAAA,QAAO,aAAa,YAAY,IAAI;AAAA,EACtC;AACF;AAEO,IAAM,oBAAoB,CAAC,SAAS,CAAC,QAAQ,mBAAmB;AACrE,QAAM,OAAO,aAAa,KAAK,GAAG,KAAK,KAAK,SAAS,eAAe,IAAI;AACxE,mBAAiB,eAAe,QAAQ,IAAI,IAAI,aAAa,OAAO,YAAY,IAAI;AAEpF,SAAO,CAACA,SAAQ,eAAe;AAC7B,IAAAA,QAAO,aAAa,YAAY,IAAI;AAAA,EACtC;AACF;AAEO,IAAM,QAAQ,CAAC,MAAM,QAAQ;AAClC,SAAO,GAAG,EAAE,IAAI;AAClB;AAEA,IAAI,YAAY;AACT,IAAM,UAAU,CAAC,MAAM,QAAQ;AACpC,cAAY;AACZ,SAAO,UAAU,KAAK,UAAU;AAChC,SAAO,GAAG,EAAE,IAAI;AAChB,cAAY;AACd;AAEA,IAAI;AACJ,IAAM,YAAY,cAAY;AAC5B,MAAI,SAAS;AACb,UAAQ,IAAI,cAAc,EAAE,QAAQ,SAAS,CAAC;AAC9C,SAAO,MAAM,IAAI,SAAS,QAAQ,GAAG,EAAC,QAAQ,SAAQ,CAAC;AACzD;AAEA,IAAM,MAAM,CAAC,SAAS,UAAU,QAAQ,IAAI,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG;","names":["parent","attrs"]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oddo/ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Oddo UI Framework",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.mjs",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
+
"browser": {
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"node": {
|
|
15
|
+
"import": "./dist/index-ssr.mjs",
|
|
16
|
+
"require": "./dist/index-ssr.js"
|
|
17
|
+
},
|
|
10
18
|
"import": "./dist/index.mjs",
|
|
11
|
-
"require": "./dist/index.js"
|
|
19
|
+
"require": "./dist/index.js",
|
|
20
|
+
"default": "./dist/index.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./ssr": {
|
|
23
|
+
"import": "./dist/index-ssr.mjs",
|
|
24
|
+
"require": "./dist/index-ssr.js"
|
|
12
25
|
}
|
|
13
26
|
},
|
|
14
27
|
"files": [
|
|
@@ -36,4 +49,3 @@
|
|
|
36
49
|
"url": "https://github.com/dbrdarski/oddo/issues"
|
|
37
50
|
}
|
|
38
51
|
}
|
|
39
|
-
|