Releases: webjsdev/webjs
Release list
@webjsdev/core 0.7.42
@webjsdev/cli 0.10.45
Features
-
add streaming-action, view-transition, and webjs-suspense gallery demos (#1039)
7e523375- feat: add streaming-action gallery demo (for await over an async generator)
A use-server action returning an async generator, consumed at the call
site with for await so tokens render as they arrive. Fills a gallery gap: -
fold auth into the default template as a gallery card, drop saas (#1040)
94b3b82a-
chore: start auth gallery card work
-
feat(scaffold): add auth gallery card (login, session, protected route)
-
@webjsdev/server 0.8.55
Features
- Elision tokens track the native light-DOM slot surface (#1022)
842f9f84. Component elision drops the removedsetSlotContent/hasSlotclient-method signals and narrows the dynamic-slot detector to the native read surface (slotchange,assignedNodes/assignedElements/assignedSlot), so a display-only slotted wrapper stays elidable while a component that genuinely reads its slots still ships.
@webjsdev/core 0.7.41
Breaking
- The WebJs-specific light-DOM slot API is removed in favour of the native DOM slot API (#1022).
setSlotContent(),hasSlot(), and thethis.slotsrecord no longer exist. Light DOM and shadow DOM now share one native surface: read slotted content withassignedNodes()/assignedElements()/assignedSlot/slotchange, and write it withappendChild/insertBefore/removeChild/el.slot =/innerHTML. Conditioning arender()on the slot record is gone. Use CSS:has()/slot:emptyor aslotchangelistener instead.
Features
- Full light-DOM slot parity with shadow DOM (native API, one writer) (#1022)
842f9f84. Light-DOM<slot>now behaves identically to shadow DOM: post-mount native writes are live, the full read surface matches, and flippingstatic shadowchanges nothing else. Built on a single-writer record model that ends the pre-#1016 three-observer bug lineage.
Fixes
- Project forwarded-slot content and named-slot slices on the client (#1026)
4367b318. A template that forwards its slot into a nested component (html\`) now projects on client mount, not only during SSR (#1023), and a layout's${children}` partitioned across multiple named slots now re-projects every named slice across a soft-nav swap, not just the default slice (#1024).
@webjsdev/server 0.8.54
@webjsdev/core 0.7.40
Features
-
rebuild the client-router swap on route-keyed comment boundaries (#1016)
01b21276- fix: full-load a soft nav fired while the document is still parsing
Phase 0 of the router/slot structural rebuild (#1013): the quick win.
Fixes
-
preserve comment markers when parsing a client-router navigation (#1010)
6cb3e8dc- fix: preserve comment markers when parsing a client-router navigation
Document.parseHTMLUnsafe strips every HTML comment in Chromium 150, and
parseHTML routed every doctype'd response through it. The whole partial-swap
@webjsdev/core 0.7.39
Fixes
- recover a dropped wj:children close marker on soft nav (#994)
779dbb1d
Recover an orphaned wj:children open marker whose close comment was dropped by the browser parser (a cross-engine parse race seen on Android Chrome and desktop Chromium), so a soft nav takes the correct scoped swap and the outer-layout navbar keeps its DOM identity instead of being wiped by the destructive full-body fallback. Bound the recovered range against the well-formed side's trailing-sibling count so a footer in the marker's own parent is preserved, and keep buildHaveHeader strict so an orphaned page fetches the full page where the bounding aligns.
@webjsdev/cli 0.10.44
@webjsdev/ui 0.3.9
Features
- local-first registry resolution + on-demand example delivery (#984)
5e9be0b1init/add/list/viewresolve components from the packaged registry with no network round-trip; a custom--registry(orREGISTRY_URL) still fetches, anddiffkeeps comparing against the live upstream.addcopies a Tier-1 helper as a lean file (the class helpers plus a pointer) and strips the worked@example; the full structural example is served on demand bywebjsui viewand the new read-only MCPuitool (one shared@webjsdev/ui/registry/extractprojector).diffnow compares each local file against whataddwould write (import-rewrite plus example-strip), so a pristine install diffs clean.initexits non-zero when the theme tokens cannot be written (previously a silent, unstyled install), andaddself-heals missing tokens.