@uistate/core 5.2.0 → 5.3.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/package.json +5 -5
- package/queryClient.js +55 -0
- package/examples/001-counter/README.md +0 -44
- package/examples/001-counter/index.html +0 -33
- package/examples/002-counter-improved/README.md +0 -44
- package/examples/002-counter-improved/index.html +0 -47
- package/examples/003-input-reactive/README.md +0 -44
- package/examples/003-input-reactive/index.html +0 -33
- package/examples/004-computed-state/README.md +0 -45
- package/examples/004-computed-state/index.html +0 -65
- package/examples/005-conditional-rendering/README.md +0 -42
- package/examples/005-conditional-rendering/index.html +0 -39
- package/examples/006-list-rendering/README.md +0 -49
- package/examples/006-list-rendering/index.html +0 -63
- package/examples/007-form-validation/README.md +0 -52
- package/examples/007-form-validation/index.html +0 -102
- package/examples/008-undo-redo/README.md +0 -70
- package/examples/008-undo-redo/index.html +0 -108
- package/examples/009-localStorage-side-effects/README.md +0 -72
- package/examples/009-localStorage-side-effects/index.html +0 -57
- package/examples/010-decoupled-components/README.md +0 -74
- package/examples/010-decoupled-components/index.html +0 -93
- package/examples/011-async-patterns/README.md +0 -98
- package/examples/011-async-patterns/index.html +0 -132
- package/examples/028-counter-improved-eventTest/LICENSE +0 -55
- package/examples/028-counter-improved-eventTest/README.md +0 -131
- package/examples/028-counter-improved-eventTest/app/store.js +0 -9
- package/examples/028-counter-improved-eventTest/index.html +0 -49
- package/examples/028-counter-improved-eventTest/runtime/core/behaviors.runtime.js +0 -282
- package/examples/028-counter-improved-eventTest/runtime/core/eventState.js +0 -100
- package/examples/028-counter-improved-eventTest/runtime/core/eventStateNew.js +0 -149
- package/examples/028-counter-improved-eventTest/runtime/core/helpers.js +0 -212
- package/examples/028-counter-improved-eventTest/runtime/core/router.js +0 -271
- package/examples/028-counter-improved-eventTest/store.d.ts +0 -8
- package/examples/028-counter-improved-eventTest/style.css +0 -170
- package/examples/028-counter-improved-eventTest/tests/README.md +0 -208
- package/examples/028-counter-improved-eventTest/tests/counter.test.js +0 -116
- package/examples/028-counter-improved-eventTest/tests/eventTest.js +0 -176
- package/examples/028-counter-improved-eventTest/tests/generateTypes.js +0 -168
- package/examples/028-counter-improved-eventTest/tests/run.js +0 -20
- package/examples/030-todo-app-with-eventTest/LICENSE +0 -55
- package/examples/030-todo-app-with-eventTest/README.md +0 -121
- package/examples/030-todo-app-with-eventTest/app/router.js +0 -25
- package/examples/030-todo-app-with-eventTest/app/store.js +0 -16
- package/examples/030-todo-app-with-eventTest/app/views/home.js +0 -11
- package/examples/030-todo-app-with-eventTest/app/views/todoDemo.js +0 -88
- package/examples/030-todo-app-with-eventTest/index.html +0 -65
- package/examples/030-todo-app-with-eventTest/runtime/core/behaviors.runtime.js +0 -282
- package/examples/030-todo-app-with-eventTest/runtime/core/eventState.js +0 -100
- package/examples/030-todo-app-with-eventTest/runtime/core/eventStateNew.js +0 -149
- package/examples/030-todo-app-with-eventTest/runtime/core/helpers.js +0 -212
- package/examples/030-todo-app-with-eventTest/runtime/core/router.js +0 -271
- package/examples/030-todo-app-with-eventTest/store.d.ts +0 -18
- package/examples/030-todo-app-with-eventTest/style.css +0 -170
- package/examples/030-todo-app-with-eventTest/tests/README.md +0 -208
- package/examples/030-todo-app-with-eventTest/tests/eventTest.js +0 -176
- package/examples/030-todo-app-with-eventTest/tests/generateTypes.js +0 -189
- package/examples/030-todo-app-with-eventTest/tests/run.js +0 -20
- package/examples/030-todo-app-with-eventTest/tests/todos.test.js +0 -167
- package/examples/031-todo-app-with-eventTest/LICENSE +0 -55
- package/examples/031-todo-app-with-eventTest/README.md +0 -54
- package/examples/031-todo-app-with-eventTest/TUTORIAL.md +0 -390
- package/examples/031-todo-app-with-eventTest/WHY_EVENTSTATE.md +0 -777
- package/examples/031-todo-app-with-eventTest/app/bridges.js +0 -113
- package/examples/031-todo-app-with-eventTest/app/router.js +0 -26
- package/examples/031-todo-app-with-eventTest/app/store.js +0 -15
- package/examples/031-todo-app-with-eventTest/app/views/home.js +0 -46
- package/examples/031-todo-app-with-eventTest/app/views/todoDemo.js +0 -69
- package/examples/031-todo-app-with-eventTest/devtools/dock.js +0 -41
- package/examples/031-todo-app-with-eventTest/devtools/stateTracker.dock.js +0 -10
- package/examples/031-todo-app-with-eventTest/devtools/stateTracker.js +0 -246
- package/examples/031-todo-app-with-eventTest/devtools/telemetry.js +0 -104
- package/examples/031-todo-app-with-eventTest/devtools/typeGenerator.js +0 -339
- package/examples/031-todo-app-with-eventTest/index.html +0 -103
- package/examples/031-todo-app-with-eventTest/package-lock.json +0 -2184
- package/examples/031-todo-app-with-eventTest/package.json +0 -24
- package/examples/031-todo-app-with-eventTest/runtime/core/behaviors.runtime.js +0 -282
- package/examples/031-todo-app-with-eventTest/runtime/core/eventState.js +0 -100
- package/examples/031-todo-app-with-eventTest/runtime/core/eventStateNew.js +0 -149
- package/examples/031-todo-app-with-eventTest/runtime/core/helpers.js +0 -212
- package/examples/031-todo-app-with-eventTest/runtime/core/router.js +0 -271
- package/examples/031-todo-app-with-eventTest/runtime/extensions/boundary.js +0 -36
- package/examples/031-todo-app-with-eventTest/runtime/extensions/converge.js +0 -63
- package/examples/031-todo-app-with-eventTest/runtime/extensions/eventState.plus.js +0 -210
- package/examples/031-todo-app-with-eventTest/runtime/extensions/hydrate.js +0 -157
- package/examples/031-todo-app-with-eventTest/runtime/extensions/queryBinding.js +0 -69
- package/examples/031-todo-app-with-eventTest/runtime/forms/computed.js +0 -78
- package/examples/031-todo-app-with-eventTest/runtime/forms/meta.js +0 -51
- package/examples/031-todo-app-with-eventTest/runtime/forms/submitWithBoundary.js +0 -28
- package/examples/031-todo-app-with-eventTest/runtime/forms/validators.js +0 -55
- package/examples/031-todo-app-with-eventTest/store.d.ts +0 -23
- package/examples/031-todo-app-with-eventTest/style.css +0 -170
- package/examples/031-todo-app-with-eventTest/tests/README.md +0 -208
- package/examples/031-todo-app-with-eventTest/tests/eventTest.js +0 -176
- package/examples/031-todo-app-with-eventTest/tests/generateTypes.js +0 -191
- package/examples/031-todo-app-with-eventTest/tests/run.js +0 -20
- package/examples/031-todo-app-with-eventTest/tests/todos.test.js +0 -192
- package/examples/032-todo-app-with-eventTest/LICENSE +0 -55
- package/examples/032-todo-app-with-eventTest/README.md +0 -54
- package/examples/032-todo-app-with-eventTest/TUTORIAL.md +0 -390
- package/examples/032-todo-app-with-eventTest/WHY_EVENTSTATE.md +0 -777
- package/examples/032-todo-app-with-eventTest/app/actions/index.js +0 -153
- package/examples/032-todo-app-with-eventTest/app/bridges.js +0 -113
- package/examples/032-todo-app-with-eventTest/app/router.js +0 -26
- package/examples/032-todo-app-with-eventTest/app/store.js +0 -15
- package/examples/032-todo-app-with-eventTest/app/views/home.js +0 -46
- package/examples/032-todo-app-with-eventTest/app/views/todoDemo.js +0 -69
- package/examples/032-todo-app-with-eventTest/devtools/dock.js +0 -41
- package/examples/032-todo-app-with-eventTest/devtools/stateTracker.dock.js +0 -10
- package/examples/032-todo-app-with-eventTest/devtools/stateTracker.js +0 -246
- package/examples/032-todo-app-with-eventTest/devtools/telemetry.js +0 -104
- package/examples/032-todo-app-with-eventTest/devtools/typeGenerator.js +0 -339
- package/examples/032-todo-app-with-eventTest/index.html +0 -87
- package/examples/032-todo-app-with-eventTest/package-lock.json +0 -2184
- package/examples/032-todo-app-with-eventTest/package.json +0 -24
- package/examples/032-todo-app-with-eventTest/runtime/core/behaviors.runtime.js +0 -282
- package/examples/032-todo-app-with-eventTest/runtime/core/eventState.js +0 -100
- package/examples/032-todo-app-with-eventTest/runtime/core/eventStateNew.js +0 -149
- package/examples/032-todo-app-with-eventTest/runtime/core/helpers.js +0 -212
- package/examples/032-todo-app-with-eventTest/runtime/core/router.js +0 -271
- package/examples/032-todo-app-with-eventTest/runtime/extensions/boundary.js +0 -36
- package/examples/032-todo-app-with-eventTest/runtime/extensions/converge.js +0 -63
- package/examples/032-todo-app-with-eventTest/runtime/extensions/eventState.plus.js +0 -210
- package/examples/032-todo-app-with-eventTest/runtime/extensions/hydrate.js +0 -157
- package/examples/032-todo-app-with-eventTest/runtime/extensions/queryBinding.js +0 -69
- package/examples/032-todo-app-with-eventTest/runtime/forms/computed.js +0 -78
- package/examples/032-todo-app-with-eventTest/runtime/forms/meta.js +0 -51
- package/examples/032-todo-app-with-eventTest/runtime/forms/submitWithBoundary.js +0 -28
- package/examples/032-todo-app-with-eventTest/runtime/forms/validators.js +0 -55
- package/examples/032-todo-app-with-eventTest/store.d.ts +0 -23
- package/examples/032-todo-app-with-eventTest/style.css +0 -170
- package/examples/032-todo-app-with-eventTest/tests/README.md +0 -208
- package/examples/032-todo-app-with-eventTest/tests/eventTest.js +0 -176
- package/examples/032-todo-app-with-eventTest/tests/generateTypes.js +0 -191
- package/examples/032-todo-app-with-eventTest/tests/run.js +0 -20
- package/examples/032-todo-app-with-eventTest/tests/todos.test.js +0 -192
- package/playground/exercise001.html +0 -38
- package/playground/exercise002.html +0 -49
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<title>009 Todo App with eventTest</title>
|
|
7
|
-
<link rel="stylesheet" href="style.css">
|
|
8
|
-
</head>
|
|
9
|
-
<body data-theme="dark" data-bind="data-theme: ui.theme">
|
|
10
|
-
<nav style="display:flex; gap:10px; align-items:center; padding:10px 12px;">
|
|
11
|
-
<a href="/" data-link>Home</a>
|
|
12
|
-
<a href="/todo-demo" data-link>Todo app demo</a>
|
|
13
|
-
<span class="loading-badge" aria-live="polite">Loading…</span>
|
|
14
|
-
<span style="flex:1"></span>
|
|
15
|
-
<button class="btn" title="Toggle theme" data-on="click: toggleTheme() | log('toggle theme') | logPath('ui.theme')">Theme</button>
|
|
16
|
-
</nav>
|
|
17
|
-
<div data-route-root></div>
|
|
18
|
-
|
|
19
|
-
<script type="module" src="./app/router.js"></script>
|
|
20
|
-
<!-- Expose the store globally so stateTracker (optional) can bind without tight coupling -->
|
|
21
|
-
<script type="module">
|
|
22
|
-
import store from './app/store.js';
|
|
23
|
-
window.stateTrackerStore = store;
|
|
24
|
-
|
|
25
|
-
// Bind loading badge to route transitioning state (after DOM ready)
|
|
26
|
-
requestAnimationFrame(() => {
|
|
27
|
-
const badge = document.querySelector('.loading-badge');
|
|
28
|
-
if (badge) {
|
|
29
|
-
store.subscribe('ui.route.transitioning', (isTransitioning) => {
|
|
30
|
-
badge.style.display = isTransitioning ? 'inline' : 'none';
|
|
31
|
-
});
|
|
32
|
-
// Set initial state (default hidden in CSS)
|
|
33
|
-
badge.style.display = store.get('ui.route.transitioning') ? 'inline' : 'none';
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
</script>
|
|
37
|
-
<!-- Install behaviors runtime with a minimal action registry + recorder hook -->
|
|
38
|
-
<script type="module">
|
|
39
|
-
import store from './app/store.js';
|
|
40
|
-
import { installBehaviors } from './runtime/core/behaviors.runtime.js';
|
|
41
|
-
import { registry } from './app/actions/index.js';
|
|
42
|
-
window.behaviorsWhitelistDefault = ['ui.counter', 'ui.name', 'ui.items', 'ui.newItem', 'ui.itemsCount', 'ui.guard.whitelist', 'ui.theme', 'intent.**'];
|
|
43
|
-
window.behaviorsWhitelist = [...window.behaviorsWhitelistDefault];
|
|
44
|
-
const recUn = window.__recorder?.install?.(store);
|
|
45
|
-
window.behaviorsUninstall = installBehaviors(store, {
|
|
46
|
-
registry,
|
|
47
|
-
root: document,
|
|
48
|
-
writablePrefixes: ['ui.','intent.'],
|
|
49
|
-
writableWhitelist: window.behaviorsWhitelist,
|
|
50
|
-
debug: true,
|
|
51
|
-
onStep: (e) => {
|
|
52
|
-
try { window.__recorder?.onStep?.(e); } catch{}
|
|
53
|
-
// Log all behavior steps to telemetry
|
|
54
|
-
try {
|
|
55
|
-
if (e.phase === 'started') {
|
|
56
|
-
console.log(`[action] ${e.name}(${e.args?.join(', ') || ''})`, { event: e.event?.type, element: e.el?.tagName });
|
|
57
|
-
}
|
|
58
|
-
if (e.phase === 'applied' && e.write) {
|
|
59
|
-
console.log(`[write] ${e.write}`, store.get(e.write));
|
|
60
|
-
}
|
|
61
|
-
if (e.phase === 'blocked') {
|
|
62
|
-
console.warn(`[blocked] ${e.name} tried to write ${e.write}`, e.reason);
|
|
63
|
-
}
|
|
64
|
-
} catch{}
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
try { store.set('ui.guard.whitelist', [...window.behaviorsWhitelist]); } catch {}
|
|
68
|
-
try {
|
|
69
|
-
const cur = store.get('ui.theme');
|
|
70
|
-
if (!cur) {
|
|
71
|
-
const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
72
|
-
store.set('ui.theme', prefersDark ? 'dark' : 'light');
|
|
73
|
-
}
|
|
74
|
-
try { store.subscribe && store.subscribe('ui.theme', () => { try { localStorage.setItem('ui.theme', store.get('ui.theme')); } catch {} }); } catch {}
|
|
75
|
-
} catch {}
|
|
76
|
-
</script>
|
|
77
|
-
<script type="module" src="./devtools/stateTracker.js"></script>
|
|
78
|
-
<!-- Dev dock MUST load first so __devdock is available -->
|
|
79
|
-
<script type="module" src="./devtools/dock.js"></script>
|
|
80
|
-
<!-- Now load tools that register with the dock -->
|
|
81
|
-
<script type="module" src="./devtools/telemetry.js"></script>
|
|
82
|
-
<script type="module" src="./devtools/typeGenerator.js"></script>
|
|
83
|
-
<script type="module" src="./devtools/stateTracker.dock.js"></script>
|
|
84
|
-
<!-- App bridges: intent→domain and derived wildcards -->
|
|
85
|
-
<script type="module" src="./app/bridges.js"></script>
|
|
86
|
-
</body>
|
|
87
|
-
</html>
|