hydraline_flutter 0.0.8
hydraline_flutter: ^0.0.8 copied to clipboard
Flutter widgets + web runtime for Hydraline. Seo.* self-registering widgets, Island zones, IslandHost multi-view engine, SSG runner, L2 dispatcher + Service Worker. Re-exports hydraline core. Use with [...]
0.0.8 #
- Cross-link banner at top of README: shows all three packages.
0.0.7 #
- Better package description with cross-links; CHANGELOG references current version.
0.0.6 #
- Publisher verification: homepage switched to verified domain.
0.0.5 #
- Polished README: Seo.section/list semantics, real-engine e2e, CLS=0, zero-overhead guarantee, proven section with 26 e2e+5 engine tests.
0.0.4 #
- Dispatcher parks the
window._hydralineAppbootstrap promise on evaluation, so an engine-load failure never surfaces as an unhandled rejection even when no island has hydrated yet (each hydrating island still receives the failure and emitshydraline:island-error). Dispatcher budget raised to 13 KB;window.hydraline.versionis now0.0.4. - New Playwright e2e harness (
e2e/,melos run e2e): the shipped runtime JS is exercised in real Chrome - hydration directives, failure paths, dehydrate, DSD adoption, anti-CLS sizing, virtual views. Seo.sectionandSeo.listnow register realSectionNode/ListNodestructure (honouringroleandordered), so extracted HTML carries<section>/<main>/<nav>/<ol>/<ul>/<li>semantics instead of a flat paragraph stream.RouteAdapter.navigateToForExtractionis now functional:GoRouterAdapterdrivesgo()on the wrapped router andNavigator2Adapterrecords the current route.IslandHostrenders a fallback (instead of crashing) when an island factory throws synchronously or its future rejects.- Service worker uses stale-while-revalidate and purges caches from previous
versions on
activate, so redeployed engine assets are picked up. bin/build.dartimports the publicpackage:hydraline_flutter/build.dartsurface instead of reaching intosrc/.
0.0.3 #
Seo.imagerenders a lightweightSizedBoxplaceholder during SSG extraction (SSG mode) and the realImage.networkonly at runtime, avoiding needless network image resolution while extracting.SsgRunnerandrunSsgClino longer require aRouteAdapter; it is now an optional parameter (build-time iteration is manifest-driven)._hasFlutterIslandsis type-aware: the island runtime JS is written only when aIslandType.flutterfactory is present, not for vanilla/htmx-only factory maps.- Simplified the dispatcher
dehydratepath: it always removes the captured (old) view id; the always-true guard and its misleading comment are gone.web/and the inline Dart constants stay byte-identical. SsgDevToolsno longer has an unreachable island-type branch.- Added
issue_trackerto the package metadata.
0.0.2 #
- Breaking:
Islandgainedkind(vanilla) andendpoint(htmx) parameters, asserted non-null for their island types - vanilla/htmx islands built through the widget surface actually work now. - Breaking:
SsgRunnerfactory takes a typedRouteManifestinstead ofObject. Seo.linkis functional at runtime: optionalonTap, defaultNavigator.pushNamedfor internal hrefs, link semantics and a click cursor.Seo.imagerenders anImage.network(with graceful fallback) instead of an emptySizedBox.- Fixed: the SSG sitemap uses the manifest
base_urlfor every entry (previously hardcodedhttps://localhost). - Fixed:
DynamicSegments.expandhandles multiple named segments as a correlated cartesian product; missing segment values throw. - Fixed: the SSG runner writes only the first-party runtime JS (from the
inline constants) and never copies the application's
web/host files over generated pages. - New pure-Dart library
package:hydraline_flutter/build.dartforbin/build.dartexecutables (exportsrunSsgCli, adapters,SsgRunner);runSsgCliis also exported from the umbrella library. - Runtime JS: DSD fallback adopts the server-rendered template (fallback
content survives on browsers without Declarative Shadow DOM),
data-sizesizing targets:host,dehydratecannot tear down a re-hydrated view, re-evaluating the dispatcher never wires duplicate listeners, media-query listeners detach when the island leaves the DOM.
0.0.1 #
Initial release.
Seo.*widgets - dual-nature widgets (text,heading,image,link,section,list,head) that render visually and self-register semantic content into theSsgCollector.Island- declarative island zones with hydration directives, render/style modes, anti-CLS sizing, JSON-safe props andmediaQuerysupport.HydraApp/HydraScope- integration wrapper + InheritedWidget carrying the collector; does not replaceMaterialApp.SsgSandbox- stubMediaQuery/Directionalityancestors for headless extraction.IslandMultiViewApp+IslandHost+IslandViewRegistry- multi-view island runtime: one engine instance, one FlutterView per island, bindings populated automatically fromaddView()initialData on the web, per-island async factories with deferred imports.SsgRunner- build-time HTML generation from the route manifest with pure-Dart page builders, dynamic segment expansion, sitemap.xml, robots.txt and island asset copying.dart run hydraline_flutter:build- SSG CLI (<manifest.yaml> <outputDir>or--config/--output).RouteAdapter-GoRouterAdapterandNavigator2Adapter.SsgDevTools- island diagnostics (props budget, anti-CLS warnings).SsgDomDiff- SSG-HTML vs hydrated-DOM text divergence comparator.- Level-2 web runtime assets - pretty, branded, first-party JS:
<hydraline-island>Custom Element with Declarative Shadow DOM, island dispatcher (directive wiring, engine loading,app.addView()per island with{ islandId, state }initialData,window.hydralineAPI,window.HYDRALINE_CONFIG), Service Worker, virtual views. - Hosting recipes for Firebase, Netlify, Cloudflare Pages and GitHub Pages.
Minimum Flutter 3.35.