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.6
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.6.tar.gz | 29.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hedron_sim-0.2.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 62.7 kB
Release files / hedron_sim-0.2.6.tar.gz
| Download URL | hedron_sim-0.2.6.tar.gz |
|---|---|
| Size | 29.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3d728eebcce8cdeafd91ce9489c766d2dc269603a1ca4ffebb3f494fd44d877
|
|
BLAKE2b-256 checksum How to use checksums |
76fb792711f62a41762368b141bdba0dc7228eb546a9d2f29af1893a26b50f15
|
| 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.6-py3-none-any.whl
| Download URL | hedron_sim-0.2.6-py3-none-any.whl |
|---|---|
| Size | 32.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
213ca91a98bf65c65f92e54acb0bf06d2caccefff4d374dd864fbd8d410e2be6
|
|
BLAKE2b-256 checksum How to use checksums |
028903ab1a982255bd26ccf671ddccdda695965014a4cbd44734d9cc94a71eb0
|
| 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}
|