v0.176.0
Minor Changes
- #1393
ff42ae4eThanks @tenphi! - ExportBoardDragActiveProvider, so aBoardimplementation living outside this package can tellTabsthat a widget drag is in flight.Tabsreads that signal to spring-load a tab when a dragged widget hovers its header, and to keep panels mounted for the drag's duration so the tab a widget is being pulled out of cannot unmount mid-gesture; both came from a context private to this package, so an external board silently lost them.Boardstill provides it automatically — you only need the provider if your board is not this one.
Patch Changes
-
#1391
4ed4bae4Thanks @tenphi! - Update Tasty to 3.7.0 (from 3.5.0). No changes were needed in the kit, and nothing it re-exports changed — Tasty's main entry has the same API surface it had in 3.5.0, so component behavior, styles output and typings are untouched. Both releases are SSR-facing, so what matters here is what they make available to apps built on the kit.Next.js can move stable global CSS out of the streaming path (3.7.0). A new
@tenphi/tasty/ssr/next-configsubpath exportswithTastyNext(), which wraps a Next config and emits the eager configuration artifacts — built-in and custom@propertyrules, tokens and presets,@font-face,@counter-style, native CSS@functiondefinitions, andglobalStyles— into a single content-hashed stylesheet shared by every route, instead of repeating them in each route's streamed<style>tag. Route-dependent component rules and theuseGlobalStyles/useRawCSS/useKeyframes/useProperty/useFontFace/useCounterStyle/useFunctionhooks keep streaming per route, and configured keyframes stay lazy. The runtime has to be given the same config object, so keep it in a side-effect-free module and pass it to bothwithTastyNext()andconfigure(). Output defaults topublic/_tasty, respectsbasePath, and is served immutable for a year on Next server deployments. Old hashes are deliberately not pruned, so a rolling deploy cannot break pages from the previous build. Page-relative resource URLs such asurl(../fonts/brand.woff2)are rejected, since moving the CSS would change what they point at — use root-relative, absolute, or data URLs.tastyDebugno longer throws without a DOM (3.7.0). It reads the document, so on a server render, in a Node REPL, or under a test runner in thenodeenvironment there was nothing to read. Every method now returns its empty result ('', an emptyInspectResult, a summary of zeroes,metrics: null) and explains itself once with a console warning, which{ raw: true }suppresses along with the rest of the logging. To inspect what a server render actually produced, read theServerStyleCollector—collector.getCSS()andcollector.getRenderedClassNames().Astro build-wide CSS extraction was reworked (3.6.0).
css: { mode: 'extract' }previously lifted only the largest common block whose position could be preserved on every page, leaving the rest inline. It now writes every artifact emitted by any styled page to one shared stylesheet and each page's strict set difference to a page stylesheet, linking shared first and page second. That link order is the new cascade contract, and it does not preserve an inline order in which a page-only rule came before a shared rule — author shared styles as defaults and page-only styles as overrides. Extraction also stopped being silently lossy about resource URLs: a page-relative or fragment-only URL now fails the build with a clear error, including insideimage-set(),image(),src()and@import, andbuild.assetsPrefixis honoured with the same cross-origin reasoning Astro applies to its own stylesheets. Under a CSP nonce, only the external stylesheet links carry it now, because extraction mode no longer emits page-local inline style tags.Bundle: +0.11 kB on the full import and +0.16 kB on a
{ Button }-only import, leaving 1.31 kB and 1.78 kB of headroom against their budgets.