1 hours ago
konva

10.7.0

Features

  • add Group.isolated() and shape-sized perfect-draw buffers (Anton Lavrevov)
  • add Shape.selfRectFunc() for custom shape bounds (Anton Lavrevov)

Bug Fixes

Styles

Builds

Commits

  • 3617366: update CHANGELOG with new version (Anton Lavrevov)
  • ca62a92: build for 10.7.0 (Anton Lavrevov)
2 hours ago
astryx

v0.6.3

Astryx 0.6.3 — all @astryxdesign/* packages ship at this version.

npx astryx upgrade --apply

@astryxdesign/core

New Features

  • Show each shared InputClearButton's contextual action label in a tooltip, giving sighted users the same specific action name already available to assistive technology. (#6354)

  • Add a collapsedSummary composition slot to ChatComposerDrawer that replaces the complete collapsed-summary anatomy when provided; omitting it preserves the existing Badge and label. (#5399)

  • Add endContentEdgeCompensation to DialogHeader so callers can select which axes receive fixed compensation while preserving automatic close-action compensation by default. (#6465)

  • Add a Canvas Editor page template with a layered artboard, resizable layer and property panels, live text/image controls, zoom, document tabs, and a themed fixed-size canvas. (#6237)

  • Markdown: add native typed frontmatter metadata (#6381) Use createMarkdownFrontmatter() from @astryxdesign/core/Markdown/plugins to decode a document-start key/value block into typed metadata, keep unfinished streaming metadata hidden, and remove completed metadata syntax from rendered Markdown.

  • Markdown: add the core plugin protocol (#6340) Use createMarkdownPlugin() and Markdown's plugins prop to compose bounded source syntax, immutable typed AST transforms, and extension renderers. Import parseMarkdownAst() or parseInlineAst() from @astryxdesign/core/Markdown/parser when server code needs the canonical tree. The same ordered plugins work with parser entry points and Markdown-derived Outline items, while omitted or empty plugin lists preserve existing behavior.

  • Markdown: add a limited Remark compatibility adapter (#6345) Import createMarkdownRemarkTransform() from @astryxdesign/core/Markdown/remark to run one synchronous transform-only Remark plugin over the documented MDAST subset. Every invocation gets a fresh mutable tree and an isolated file, and each plugin's compatibility is proven by fixtures rather than assumed: async work, parser or compiler plugins, processor state, raw HTML, unsupported nodes, forged positions, and metadata Astryx cannot represent keep the last valid readable document and report one diagnostic. The adapter is a separate entry point, so it stays out of every bundle that does not import it.

  • Markdown: add a semantic code-fence transform helper (#6343) Use createMarkdownFenceTransform() to annotate declared fenced-code languages with typed extension data while standard plugin renderers own presentation and text projection. components.code retains precedence, and declined, missing, or failed proposals preserve Markdown's accessible, copyable CodeBlock fallback.

  • Markdown: add an immutable source-decoration helper (#6344) Use createMarkdownSourceDecoration() to attach non-visual metadata to every block a validated UTF-16 source range touches, and getMarkdownSourceDecorations() to read it back in a later plugin. It works through <Markdown> and Outline with no extra parser options, resolves independently of the order earlier transforms left blocks in, and appears on the settled document rather than on partial streaming chunks, so a decoration never appears and then vanishes. Metadata lives in one versioned Astryx-owned envelope that never merges foreign node data. Rendered output, copyable text, accessible names, heading ids, focus order, navigation, and source provenance are unchanged.

    Markdown transforms also got faster, and a plugin now always observes a fully immutable tree — including blocks a Core helper carried over untouched. Core-authored helpers now validate the nodes a caller's callback produced and run on a trusted path that skips the whole-tree validation and freezing applied to plugin-authored output, freezing walks only what a transform changed, a plugin list that contributes no inline syntax no longer costs anything per source character, and the helpers' per-match allocations and rebuilds are gone. The representative three-helper set now adds about 20 percent over an empty pipeline, inside its 25 percent budget, down from roughly 3.3x.

  • Markdown: add an immutable text-transform helper (#6342) Use createMarkdownTextTransform() to replace matching prose with typed Markdown nodes while preserving links, images, code, math, citations, and existing extension syntax as protected contexts.

  • Add pressed feedback to CheckboxInput, Collapsible, Link, Slider, Switch, TabList, RadioList, and unselected SegmentedControl items. Enabled controls paint --color-overlay-pressed on their interaction surface during pointer hold or drag; disabled controls and selected SegmentedControl items keep their existing surfaces. (#6380)

  • Let a TreeList item carry row styles (#6238) TreeListItemData gains xstyle, className, and style, applied to the item's row element, so row-scoped primitives such as useContainerReveal can isolate each row's hover and focus state.

Fixes

  • Make overflowing BottomSheet text keyboard reachable with a named scroll-body tab stop. Add shared focus-time keyboard delegation to useScrollableArea: forward Tab may enter the first native link/button directly, while inputs, composite widgets, and nested scroll owners retain the viewport stop. Reverse traversal skips the delegated viewport; pointer/programmatic focus and content changes never trigger delegation. Sheet scroll containment now applies only while content overflows and uses the shared contain policy, which permits native edge feedback. (#6301)

  • Keep ChatComposer's public composition contracts aligned: custom inputs now submit the value they supply, disabled default editors expose their state to assistive technology, and an explicitly shown Stop action remains pointer-operable while editing is disabled. (#6398)

  • Keep collapsed ChatComposerDrawer content out of keyboard and assistive-technology navigation, and show the shared focus indicator on its disclosure control. (#6416)

  • Keep programmatic ChatComposerInput edits observable, deliver dropped files through onFiles, and let onPaste intercept text before default token conversion. (#6419)

  • Export ChatComposerTokenElementProps and forward supported span props and refs from ChatComposerTokenElement (#6443).

  • Keep the chat dictation control disabled when speech recognition is unavailable, and preserve theme control over its clipping feedback (#6444).

  • Clip the resizable SideNav handle within the sidebar bounds (#6196)

  • scope the 16px text-control font-size floor to iOS with @supports (-webkit-touch-callout: none) inside the coarse-pointer query, so Android and touch-screen laptops keep the theme's type scale instead of an inflated 16px (#6085; fixes #6015)

  • Kbd: render the esc and return aliases with the same glyphs and accessible names as escape and enter (#5657) This partial fix for #5403 normalizes the two unambiguous aliases already accepted by useHotkeys. Kbd now renders esc as Esc with the accessible name Escape, and return as with the accessible name Enter. Its lookup tables now also avoid prototype-chain collisions when rendering arbitrary key names. The platform-specific rendering contract for meta and display choice for space remain unresolved in #5403 pending separate API and design decisions.

  • LayoutFooter: add playground wrapper and default children for docsite preview (#6341) Prevents the properties-tab preview on the docsite from rendering an empty stage by wrapping LayoutFooter inside a Layout scaffold with representative footer content in the footer slot.

  • PowerSearch: switching the field or operator while the value menu is open now shows the new field's options instead of the old ones. (#6357)

  • Move focusable ProgressBar target marks outside the progressbar subtree (#6248)

  • Selector: collapse an option's mark column when its resolved selection indicator renders nothing. Unselected rows using the default check indicator no longer lose label width to an empty wrapper. (#5619)

  • Paint Slider marks inside the filled region with the accent fill color while leaving unfilled-side marks unchanged. (#6455)

  • Use the Slider track token for unfilled tick marks so marks and rails stay aligned across themes. (#6461)

  • Apply the theme body font to the theme scope root so components using inherited typography no longer fall back to browser serif. (#6450)

  • Keep ToggleButton callbacks synchronous while routing pressed Actions through Button's clickAction pathway, preserving cancellation and optimistic pending feedback. (#6463)

  • Spinner: animate the arc's dash offset instead of rotating the ring, fixing residual wobble on iOS Safari (#6311; fixes #6253) The earlier fix for #3617 added willChange: 'transform' to the rotating <svg>, which smooths the rotation's motion but does nothing about how WebKit rasterizes a rotating stroked shape's rounded cap on each frame. Rotating the whole ring still visibly wobbled on iOS Safari.

    Animates stroke-dashoffset on the stationary arc <circle> instead of rotating the <svg>, so the shape never rotates and WebKit never re-rasterizes the cap at an intermediate angle. Confirmed against a real iOS Safari device by the issue reporter.

  • Table: contain overscroll only while its inner viewport can scroll, so a fitting table no longer creates a dead scroll zone in its parent. (#6410)

  • Keep a ToggleButton's own isDisabled when its ToggleButtonGroup does not disable anything. The group always supplies an isDisabled boolean, so the previous ?? fallback never ran and an enabled group re-enabled a member that had disabled itself — the member selected on click, and a member carrying a tooltip stayed operable while looking unavailable. A disabled group still disables every member; it just cannot re-enable one. (#6356)

Contributors

Thanks to everyone who contributed to this release:

@aldentan @athz @cixzhang @ernestt @harjothkhara @HelloOjasMutreja @jiunshinn @kentonquatman @korkt-kim @ManoharPaturi @nynexman4464 @rupesh-kumar-sah @vjeux

Full Changelog: https://github.com/facebook/astryx/compare/v0.6.2...v0.6.3

2 hours ago
quasar

quasar-v2.33.2

Changes

  • fix(QField): custom standout text color -> a text-* class in a string standout (e.g. standout="bg-teal text-yellow") now colors the input, prefix, suffix, prepend and append too, not just the label. Before, the focused standout painted those in hard white (black in dark mode). A string without a text color keeps the theme default for the content, and its label now uses that default too instead of the primary color (#16019)
  • fix(QEditor): link URL field -> it opens empty, with https:// shown as a placeholder instead of pre-filled as a value. Pasting a copied URL no longer produces a broken https://https://... link (#11450)
  • fix(QEditor): editing a link a second time -> confirming the URL no longer nests a new anchor (with the URL as its text) inside the existing link in Chromium. Escape no longer commits what was typed, and Remove strips the right link
  • perf(ui): QTabPanels, QCarousel, QStepper -> each render now collects the panels in one pass over the slot content instead of three

Donations

Quasar Framework is an open-source MIT-licensed project made possible due to the generous contributions by sponsors and backers. If Quasar is useful in your workflow and you want to support ongoing maintenance, please consider the following:

2 hours ago
next.js

v16.4.0-canary.40

Misc Changes

  • Keep cached root parameters out of generic fallback shells: #98950
  • Fix missing content in Cached Navigations: #98767
  • [turbopack] Track members across namespace re-exports: #96396
  • [PPF] Implement unstable_ensureStatic = "shell" | "prefetch": #98191
  • [PPF] Validate unstable_ensureStatic nesting: #98357
  • Replace lerna task-runner usage with pnpm: #99040
  • [cd] Fix release branch gate and drop dead lerna publish config: #99039
  • Turbopack: fix "ModuleId not found for ident" regression: #99090
  • Fix private-cache segment reuse across root params: #98810
  • Turbopack: fix Unknown module type error for imports in webpack loaders: #99088
  • Nudge future defaults upgrades for manual next dev|build: #98874
  • Nudge latest version upgrades for manual next dev|build: #98873
  • Nudge security upgrades for manual next dev|build: #98872
  • Upgrade React from 59aff3e1-20260918 to 8b0da1c6-20260922: #99059
  • refactor(turbo-rcstr): drop unsupported 16-byte pointer width: #98355
  • test(turbo-tasks-backend): run the db_versioning tests on wasm: #97901
  • fix(turbo-tasks): let parking_lot block on wasm instead of panicking: #97860
  • test(turbo-tasks): run the wasm tests with a Node wasi host: #97789
  • [cd] Skip the release job when no new commits warrant a release: #98664
  • [test] Add fallback param deployment regression coverage: #98883
  • Turbopack: mangle exports behind an escaping namespace via the facade: #97770
  • test(dev): add dedicated compiler polling coverage: #97673
  • build(turbopack): upgrade notify to 9.0.0-rc.5: #98737
  • test(turbopack): add polling to filesystem watcher fuzzer: #98863
  • test(turbopack): fix filesystem watcher symlink expectations: #98983
  • test(turbopack): fix filesystem watcher read-write tracking: #98982
  • Don't re-request the App Shell to upgrade an ISR fallback: #94808
  • Fix unstable ensure static task annotation: #99075
  • test: update React 18 hydration error snapshots: #99073
  • Remove redundant unsafe_ignore annotations: #98961
  • Remove TraceRawVcs: #98953
  • test(turbopack): remove remaining test unmarks: #98376

Credits

Huge thanks to @gnoff, @unstubbable, @sampoder, @lubieowoce, @eps1lon, @mischnic, @devjiwonchoi, @sokra, @acdlite, and @lukesandberg for helping!

3 hours ago
rari

rari@0.16.0

Highlights

  • Layout-owned documents: root layouts own <html> / <body>. The client hydrates on document (no #root shell). Production emits rari-client-head.html and pulls layout CSS into the Vite client entry.
  • Vite environments for RSC/SSR: prod, HMR, and metadata emit through Vite createBuilder / environment builds with sharedPlugins: true. User Vite plugins run on server modules.
  • React 19.3 View Transitions: soft navigations and loading → content reveals use React’s ViewTransition / transition types.
  • rari/font: rari/font/local and rari/font/google self-host fonts at build time (Capsize fallbacks, subsets/preload, generated Google typings).
  • Static image imports: import img from './photo.png' yields hashed /assets URLs and StaticImageData for rari/image.
  • App icons: file-convention icons (favicon, icon, apple-icon) resolve into metadata and production assets.
  • Proxy middleware: proxy.ts still authors the middleware; static redirects/rewrites emit proxy.json and run in Rust. Path matchers (including optional segments) are supported; JS bundles only when analysis finds runtime logic.
  • Dev DX: vendored React Refresh runtime, stronger layout CSS / head injection, and HMR fixes for app-router reloads.

Breaking Changes

  • Node.js: engines.node is now >=24.21.0 (was >=22.18.0). Update local toolchains, Docker images, and host engines fields.
  • React: peers target React 19.3 (react / react-dom / react-server-dom-webpack). Upgrade before relying on View Transitions navigations.
  • Remove index.html: delete project index.html and any #root mount. The root layout must return <html> and <body> (include <head /> when you need a head slot). Client entry is virtual (virtual:rari-entry-client); hydration targets document.
  • Soft navigation + root layout: soft navigations expand the root layout like full HTML renders. Keep persistent chrome in a client component under the root layout so it does not remount on every soft nav.

Full Changelog: https://github.com/rari-build/rari/compare/rari@0.15.17...rari@0.16.0

3 hours ago
rari

@rari/use-cache@0.16.0

Highlights

  • Layout-owned documents: root layouts own <html> / <body>. The client hydrates on document (no #root shell). Production emits rari-client-head.html and pulls layout CSS into the Vite client entry.
  • Vite environments for RSC/SSR: prod, HMR, and metadata emit through Vite createBuilder / environment builds with sharedPlugins: true. User Vite plugins run on server modules.
  • React 19.3 View Transitions: soft navigations and loading → content reveals use React’s ViewTransition / transition types.
  • rari/font: rari/font/local and rari/font/google self-host fonts at build time (Capsize fallbacks, subsets/preload, generated Google typings).
  • Static image imports: import img from './photo.png' yields hashed /assets URLs and StaticImageData for rari/image.
  • App icons: file-convention icons (favicon, icon, apple-icon) resolve into metadata and production assets.
  • Proxy middleware: proxy.ts still authors the middleware; static redirects/rewrites emit proxy.json and run in Rust. Path matchers (including optional segments) are supported; JS bundles only when analysis finds runtime logic.
  • Dev DX: vendored React Refresh runtime, stronger layout CSS / head injection, and HMR fixes for app-router reloads.

Breaking Changes

  • Node.js: engines.node is now >=24.21.0 (was >=22.18.0). Update local toolchains, Docker images, and host engines fields.
  • React: peers target React 19.3 (react / react-dom / react-server-dom-webpack). Upgrade before relying on View Transitions navigations.
  • Remove index.html: delete project index.html and any #root mount. The root layout must return <html> and <body> (include <head /> when you need a head slot). Client entry is virtual (virtual:rari-entry-client); hydration targets document.
  • Soft navigation + root layout: soft navigations expand the root layout like full HTML renders. Keep persistent chrome in a client component under the root layout so it does not remount on every soft nav.

Full Changelog: https://github.com/rari-build/rari/compare/@rari/use-cache@0.15.17...@rari/use-cache@0.16.0

4 hours ago
router

Release 2026-09-23 13:32

Release 2026-09-23 13:32

Changes

Performance

  • react-router: avoid redundant link hydration updates (#8435) (73bfc153ee) by @Sheraff

Packages

  • @tanstack/react-router@1.170.39
  • @tanstack/react-start@1.168.58
  • @tanstack/react-start-client@1.168.37
  • @tanstack/react-start-rsc@0.1.57
  • @tanstack/react-start-server@1.167.44
4 hours ago
router

@tanstack/react-start-server@1.167.44

Patch Changes

  • Updated dependencies [73bfc15]:
    • @tanstack/react-router@1.170.39
4 hours ago
router

@tanstack/react-start@1.168.58

Patch Changes

  • Updated dependencies [73bfc15]:
    • @tanstack/react-router@1.170.39
    • @tanstack/react-start-client@1.168.37
    • @tanstack/react-start-rsc@0.1.57
    • @tanstack/react-start-server@1.167.44
4 hours ago
router

@tanstack/react-router@1.170.39

Patch Changes

  • #8435 73bfc15 - Avoid hydration-triggered rerenders for links that do not compare URL hashes while preserving hash-sensitive active state and ClientOnly behavior.