bloom_js_native 0.3.6
bloom_js_native: ^0.3.6 copied to clipboard
Reactive Dart web framework for real DOM apps — SSR, SSG, ISR-friendly rendering, signals, SEO, and browser APIs. Not Flutter web.
Changelog #
0.3.6 - 2026-08-31 #
Added #
- Browser-only
BrowserRealtimeClientWebSocket transport with channel multiplexing, presence, heartbeat, reconnect, and resubscription. - Expanded cookbook guidance for font manifests, visual parity, responsive CSS, hydration, and raw HTML/SVG behavior.
0.3.5 - 2026-08-26 #
Added #
signal<T>(initialValue, {key})— an opt-inkeyparameter that, when hot-reload tracking is active (used bybloom js dev's DDC fast dev-loop), preserves a top-level signal's mutated value across an in-page hot remount by carrying it over via awindow-global registry. Zero overhead when no key is given or tracking is inactive (the default, including all production builds). Falls back to a clean reset on any type mismatch between edits rather than risking silent corruption.isHotReloadTrackingActive()exposed publicly (was previously a privatemount.darthelper) for use by the newsignal()wrapper.
0.3.4 - 2026-08-26 #
Added #
mount()/mountToElement()now support an opt-in hot-reload tracking mode (used bybloom js dev --experimental-ddc's in-page fast remount): when active, the currently-mountedBloomMountHandleis tracked and disposable via a dev-onlybloomDisposeActiveMount()hook, with zero overhead when inactive (the default, including all production builds).
0.3.3 - 2026-08-24 #
Added #
- COOKBOOK.md: documented the real
bloom add npm:<package>workflow (vendoring, generated@JS()bindings, importmap/bootstrap wiring) and how to use@tailwindcss/browserwith no CDN and no build step; documented thelib/design/tokens.dart+Style()pattern for design tokens andbloom fonts optimize+fontStylesheetLink()for fonts, replacing hand-writtenweb/index.htmlstyling/font tags in all guidance.
0.3.2 - 2026-08-24 #
Added #
- COOKBOOK.md: new "Best Practices & Common Pitfalls Checklist" section (reactivity, nullable event fields, the two-entry-point rule, SSR/hydration gotchas, disposal, styling, testing) consolidated as a pre-flight reference.
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.