2025-11-09 11:34:11 +01:00

59 lines
1.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="module" src="datastar.js"></script>
<title>Document</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
<div data-signals:count="-1" data-text="$count" data-signals:baz="'hi, there'"></div>
<pre data-json-signals></pre>
<div data-signals:foo="$baz">
<input data-bind:foo value="bar" />
</div>
<div data-signals:foot="0">
<select data-bind:foot>
<option value="5">10</option>
</select>
</div>
<input type="file" data-bind:files multiple />
<div data-init__delay.5000ms="$someValue = 1"></div>
<button data-on:dblclick__once="$count = 0">Reset</button>
<div data-on-intersect="$intersected = true"></div>
<div data-on-interval__duration.4s="$counter++"></div>
<div data-on-signal-patch="console.log('A signal changed!', patch)"></div>
<article data-ref:foo></article>
<div>$foo is a reference to a <span data-text="$foo.tagName"></span> element</div>
<script>
let counter = 0;
// helper function that activates the PatchSignals
// watcher plugin to simulate a completed fetch request
const patchSignals = (count) => {
// a simulated `datastar-patch-signals` event
const detail = {
type: "datastar-patch-signals",
argsRaw: {
signals: JSON.stringify({ count })
}
};
// trigger the SSEEventWatcher by simulating a `datastar-fetch` event
document.dispatchEvent(new CustomEvent("datastar-fetch", { detail }));
};
setInterval(() => {
patchSignals(counter);
counter++;
}, 2000);
</script>
</body>
</html>