Chirp 0.1.7
App shell guide, islands examples, explicit boost migration, Alpine Focus plugin
Key additions: App shell guide, islands examples, explicit boost migration, breadcrumbs/sidebar OOB, Alpine Focus plugin, and Kida integration docs.
Highlights
App Shell Guide
Full documentation for persistent layouts: navigation model (explicit boost on sidebar links), rendering rule (Page with page_block_name), shell actions, nav_link for content links, and interactive shell gotchas (OOB with hx-swap="none", SSE event naming, ContextVar loss, dual template blocks).
Islands Examples
- islands/ — No-build client-managed surfaces
- islands_shell/ — Islands + app shell with htmx-boosted navigation
- islands_swap/ — Islands in dynamically swapped content
- oob_layout_chain/ — OOB layout chains with depth/nesting
Alpine Improvements
- Focus plugin — Injected when
alpine=Truefor tray/modal overlay focus management. Modals/trays store auto-injected. - Dropdown and tabs macros —
x-ref,x-id, focus return,$dispatch tab-changedfor better accessibility.
Other Additions
- Breadcrumbs and sidebar OOB — Boosted layout navigation updates breadcrumbs and sidebar state via OOB swaps.
- Kida integration docs — Template integration guide and fragments reference.
wizard_formcontract extraction — Contract checker extracts IDs fromwizard_form()macro (fixes false-positive "unknown target").
Changed
- Explicit boost migration — Shell layout no longer uses
hx-booston<main>. Sidebar links carry explicithx-boostviasidebar_link(boost=true). Removed#page-contentwrapper. - HX-Reselect removal — Fragment responses no longer send
HX-Reselect: *; no longer needed with explicit boost on links. - Context provider module names —
_context.pyfiles load with path-based names instead of depth-based ones. - htmx debug targetError — "Target Not Found" toast now includes remediation hint.
Fixed
- Kanban board OOB/SSE — Move/add/delete routes use empty main fragment; SSE adds OOB-aware template blocks with correct event naming.
- Wizard form contract — Templates targeting
wizard_formIDs no longer get false-positive "unknown target" warnings.
Breaking Changes
None. Fully backward-compatible release.
Upgrading
With chirp-ui:
pip install bengal-chirp[ui]