hedron-sim
Offline HTMX simulation for Hedron docs and demos.
Author demos with ordinary Hedron components (Page, RefreshButton, swap,
regions), then embed them in static docs. A small JavaScript runtime intercepts
hx-* attributes and serves pre-rendered fragment HTML — no FastAPI process
required.
Package maturity: Beta tooling-grade (0.2.x) · pin >=0.2.0,<0.3
Install
pip install "hedron-sim>=0.2.0,<0.3"
# or
uv add "hedron-sim>=0.2.0,<0.3"
Requires Python 3.10–3.14 and hedron (for component imports used in demos).
Quick start
from hedron import Page, RefreshButton, Stack, Text, html, swap
from hedron_sim import SimApp, embed_demo, sim_utc
app = SimApp(demo_id="hello-status")
status = app.region("service-status")
def status_panel():
return html.div(
Text(f"All systems operational · refreshed {sim_utc()}"),
id=status.id,
role="status",
aria={"live": "polite"},
)
@app.page("/")
def home() -> Page:
return Page(
Stack(
Text("Hello from hedron-sim"),
status_panel(),
RefreshButton.for_region(status, href="/status", label="Refresh status"),
),
title="Demo",
)
@app.fragment("/status", region=status) # SimApp package-native simulator route
def refresh_status():
return swap(status_panel())
print(embed_demo(app))
Ship static assets
from pathlib import Path
from hedron_sim.assets import copy_assets
copy_assets(Path("docs/javascript"), Path("docs/stylesheets"))
Then load hedron-sim.js (and optionally hedron-sim.css) from MkDocs
extra_javascript / extra_css.
Public API
| Symbol | Role |
|---|---|
SimApp |
Offline app with @page / @fragment and regions |
embed_demo(app) |
HTML snippet for static docs |
sim_utc / sim_local_time |
Deterministic clock helpers for demos |
hedron_sim.assets.copy_assets |
Copy JS/CSS into a docs tree |
Links
License
MIT. See the repository license.
Release files for hedron-sim 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hedron_sim-0.2.3.tar.gz | 28.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hedron_sim-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.6 kB
Release files / hedron_sim-0.2.3.tar.gz
| Download URL | hedron_sim-0.2.3.tar.gz |
|---|---|
| Size | 28.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a79f54b3639eb0116d364ad90812bf15316d258ff8b101c662b71097d56bf724
|
|
BLAKE2b-256 checksum How to use checksums |
045dd84664184958829dac5a3d5dfcb32312ee4a964214507cdfde1101037fa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / hedron_sim-0.2.3-py3-none-any.whl
| Download URL | hedron_sim-0.2.3-py3-none-any.whl |
|---|---|
| Size | 31.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2041a5cee80171d0d222ed179bed56f1eec6c786d639e669873bb0fca32cf04e
|
|
BLAKE2b-256 checksum How to use checksums |
556a92b82bbb770d981ffa813301fa695d0adb92210cc29a07ba61c23c938593
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|