bloom_js_native 0.3.1
bloom_js_native: ^0.3.1 copied to clipboard
React-wrapped JavaScript, Dart-wrapped reactivity. Fine-grained DOM framework — Dart owns signals & tooling, the browser owns rendering.
Changelog #
0.3.1 - 2026-08-24 #
Added #
- COOKBOOK.md: new "Project Structure & Multi-File Apps" section (recommended
lib/routes/,lib/components/,lib/state/layout) and a "UI Component Primitives" section covering all 47+ exports fromlib/src/ui.dart.
0.3.0 - 2026-08-24 #
Added #
- UI primitives library: 45+ reusable, accessible UI components (tier 1 + tier 2 — accordion through toggle group).
fontStylesheetLink(): helper for linking the stylesheet generated bybloom fonts optimize.- Backend-for-Frontend support (dev proxy, RPC mount, env split).
Fixed #
- Soft reset no longer permanently poisons regions.
0.2.0 - 2026-08-23 #
Added #
- Typed RPC (
rpc.dart):BloomRpcContractwith path parameters, typed input/output codecs, and stable cache keys. - i18n (
i18n.dart): ICU message formatting (plural, select, nested sub-patterns), locale resolution, and reactive locale switching. Number/date formatting is hand-rolled and is not full CLDR. - Images (
image.dart): responsivesrcset/sizes,priorityfor LCP, and decorative-image handling. - Scoped CSS (
scoped_css.dart): deterministic scoped class generation, including@mediaand@keyframes. - Islands (
island_node.dart,islands.dart): server-emitted island placeholders plus a browser orchestrator with per-island failure isolation. The SSR half is pure Dart and safe to import from a server. - Web components (
web_components.dart): consume custom elements with rich JS properties and decodedCustomEventpayloads. - Cooperative scheduler (
transition.dart): real priority-based time slicing replacing the previous microtask stub. - Async form validators, typed form fields, and field arrays.
- Router query strings, fragments, and focus/aria-live route announcements.
- SSR cache dehydration/hydration and infinite queries.
Fixed #
- Route announcements now render into a real
aria-liveregion; previously they only wrote to a signal that nothing displayed. - Error boundaries now cover reactive rebuild paths.
Known limitations #
defineCustomElementuseseval()to construct the custom-element class and therefore does not work under a Content-Security-Policy withoutunsafe-eval. Consuming custom elements viacustomElement()is unaffected.
0.1.0 - 2026-08-21 #
- Initial release of
bloom_js_native. - Pure Dart AST descriptor tree (
BloomNode,ElNode,TextNode,LiveNode,ShowNode,ForEachNode,FragmentNode). - Fine-grained signals reactivity binding (
signal,computed,effect,batch). - Dual-backend architecture:
- Browser DOM mounting via
package:bloom_js_native/browser.dart(package:web). - Instant sub-millisecond SSR via
renderToHtml()with automatic XSS escaping.
- Browser DOM mounting via
- Built-in NPM vendor manager & ESM importmaps (
NpmRegistry). - HTML element subclasses (
Div,Span,Button,Input,Form,H1–H6, etc.) ensuring 0 analyzer warnings.