| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-08-13 | 2.6 kB | |
| v1.7.0 source code.tar.gz | 2026-08-13 | 444.0 kB | |
| v1.7.0 source code.zip | 2026-08-13 | 523.6 kB | |
| Totals: 3 Items | 970.3 kB | 0 | |
Added
morphicons/element— the<morph-icon>custom element, fifth binding. The binding for hosts without a component runtime: plain HTML, HTMX, Rails, anything server-rendered. Same three modes and the same lifecycle contract as the framework bindings, pinned by the same mirrored mount suite:icon(uncontrolled),from/to/progress(controlled),morphTo/setmethods (imperative — the element IS the handle). Attributes carry strings (dpaths, spring preset names) for HTML authoring; properties accept the full surface (IconNodes, custom springs) for scripts. A server-rendered<svg><path>inside the element is adopted verbatim — same node, zerodwrites during upgrade (the first mount swallows the driver's initialization re-derivations through a write-gatedPathEl), pinned by instrumented tests — and itsdbecomes the at-rest icon, so a script can morph away from SSR markup directly. Imperative calls before the element connects honor the lifecycle contract too: they exit controlled mode, so a pendingfrom/topair never silently wins the mount over aset/morphTo.defineMorphIcon()registers the tag (idempotent, custom tags supported); the module is safe to import during SSR — only defining/upgrading needs a browser. Zero dependencies, no peer. 8.77 KB gzip all-in.morphicons/astro— Astro binding as an SSR shell over the element. A logic-free.astrocomponent (ships as source, the consumer's Astro compiles it — no peer, no runtime): the server emits the exact static SVG with the pure core, and hydration is just custom-element upgrade — the only client bytes aremorphicons/element, no framework runtime. A controlled pair ofdstrings survives upgrade as attributes (both endpoints or none — half a mixed pair would mount from the lone endpoint), so assigningprogressfrom a script scrubs the server-frozen pair;IconNodepairs stay server-only. Rest attrs (id,class,data-*) land on<morph-icon>because grabbing the element from a client script is the interaction model. Islands with the React/Vue/Svelte bindings remain the right call for icons inside one; this entry is for pages that don't need an island at all. Decision record in docs/adr/0003.- Internal: the Svelte binding's controller (the lifecycle contract as code) moved from
src/svelte/shared.tsto the framework-neutralsrc/dom/controller.tsand is now shared verbatim by Svelte and the element. Existing entries are byte-identical;src/svelte/shared.tsre-exports it, so nothing changes for Svelte consumers.