bloom_js_native 0.3.0 copy "bloom_js_native: ^0.3.0" to clipboard
bloom_js_native: ^0.3.0 copied to clipboard

React-wrapped JavaScript, Dart-wrapped reactivity. Fine-grained DOM framework — Dart owns signals & tooling, the browser owns rendering.

Changelog #

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 by bloom 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): BloomRpcContract with 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): responsive srcset/sizes, priority for LCP, and decorative-image handling.
  • Scoped CSS (scoped_css.dart): deterministic scoped class generation, including @media and @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 decoded CustomEvent payloads.
  • 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-live region; previously they only wrote to a signal that nothing displayed.
  • Error boundaries now cover reactive rebuild paths.

Known limitations #

  • defineCustomElement uses eval() to construct the custom-element class and therefore does not work under a Content-Security-Policy without unsafe-eval. Consuming custom elements via customElement() 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.
  • Built-in NPM vendor manager & ESM importmaps (NpmRegistry).
  • HTML element subclasses (Div, Span, Button, Input, Form, H1H6, etc.) ensuring 0 analyzer warnings.
0
likes
0
points
657
downloads

Publisher

unverified uploader

Weekly Downloads

React-wrapped JavaScript, Dart-wrapped reactivity. Fine-grained DOM framework — Dart owns signals & tooling, the browser owns rendering.

Repository (GitHub)
View/report issues

Topics

#bloom #web #dom #signals #ssr

License

unknown (license)

Dependencies

http, meta, signals_core, web

More

Packages that depend on bloom_js_native