1 hours ago
next.js

v16.4.0-canary.53

Misc Changes

  • [create-next-app] Enable Cache Components by default in create-next-app: #99436
  • Include async module evaluation in client loading metrics: #99427
  • turbo-tasks-backend: fix leaf distance tracing compilation: #99443
  • Enable proxy export tests in deploy mode: #99400
  • docs: record API stabilization across Next.js 16 releases: #99420
  • test: migrate and explain custom server deploy exclusions: #98994
  • test: migrate and explain root-inference deploy exclusions: #99012
  • Enable build diagnostic suites in deploy mode: #99402
  • test(turbopack): remove filesystem fuzzer unit tests: #99089
  • [turbopack] Support webpack loader build dependency requests: #99071
  • [turbopack] Track webpack loader build dependency directories: #98838
  • [ci] Wire preview builds variables consistently: #99323
  • [ci] Enable PR comment in any repo: #99315
  • Fix bundle analyzer route selector: #98702
  • bundle-analyzer: use Rust React compiler: #98695
  • Link bundle analyzer empty states to source mode: #98542
  • Consolidate HTML render completion cleanup: #99426
  • Scope client component loading metrics to HTML renders: #99322
  • fix: preserve HTTP status codes during prerendering: #99078
  • test: enable deploy coverage for five verified suites: #99193
  • Document agent feedback field limits: #99415
  • test: migrate tooling deploy exclusions to force gates: #98156
  • Turbopack: Don't force non-recursive watcher for additional roots: #99396

Credits

Huge thanks to @kassens, @gnoff, @jimmyhmiller, @jamiboym, @aurorascharff, @sokra, @eps1lon, @wbinnssmith, and @bgw for helping!

9 hours ago
electron

electron v42.11.9

Release Notes for v42.11.9

Fixes

  • Fixed clipboard.read(), readText() and has() resolving seconds late on Linux while the app was idle. #54310 (Also in 43, 44, 45)
  • Fixed fs.rmSync failing to remove read-only files on Windows. #54257 (Also in 43, 44, 45)
  • Fixed pointerLock permission requests from some iframes reporting the parent frame. #54466 (Also in 43, 44, 45)
  • Fixed utilityProcess dropping stdout/stderr output that the child wrote immediately before exiting. #54332 (Also in 43, 44, 45)
  • Fixed WebAssembly exception handlers failing to catch, or crashing during tier-up, in modules using wasm exceptions. #54236
  • Fixed WebAssembly modules loaded from the code cache crashing or throwing RuntimeError: unreachable after updating between certain patch releases. #54239 (Also in 43, 44, 45)
9 hours ago
electron

electron v43.7.6

Release Notes for v43.7.6

Fixes

  • Fixed --xdg-portal-required-version having no effect and a spurious portal warning being logged for file dialogs on Linux. #54304 (Also in 44, 45)
  • Fixed a child WebContentsView losing focus when its window is reactivated. #54456 (Also in 44, 45)
  • Fixed a crash when a WebAuthn request used a security key that required its PIN. #54404 (Also in 45)
  • Fixed a crash when sending a DevTools protocol command with a non-string value for an optional string parameter via webContents.debugger. #54443 (Also in 44, 45)
  • Fixed a grey border around frameless windows on Linux WMs without compositing. #54390 (Also in 44, 45)
  • Fixed a main process crash when a native API method was called with a this value of a different native type; it now throws a TypeError. #54316 (Also in 44)
  • Fixed a possible crash during process exit when vm.Script or vm contexts created in the main process had been garbage collected shortly before quitting. #54268 (Also in 44, 45)
  • Fixed a possible renderer crash in 32-bit Windows and Linux ARM builds caused by under-aligned Blink heap vector allocations. #54259
  • Fixed a renderer crash calling image.toPNG() from a sandboxed preload script. #54503 (Also in 44, 45)
  • Fixed clipboard.read(), readText() and has() resolving seconds late on Linux while the app was idle. #54309 (Also in 42, 44, 45)
  • Fixed desktopCapturer.getSources() leaving non-resizable windows resizable on macOS. #54396 (Also in 44, 45)
  • Fixed fs.rmSync failing to remove read-only files on Windows. #54256 (Also in 42, 44, 45)
  • Fixed GDK_BACKEND leaking into processes spawned by Electron apps on Linux. #54426 (Also in 44, 45)
  • Fixed pointerLock permission requests from some iframes reporting the parent frame. #54465 (Also in 42, 44, 45)
  • Fixed setIgnoreMouseEvents() taking effect late on X11. #54498 (Also in 44, 45)
  • Fixed setIgnoreMouseEvents(true) being undone by the next resize on X11. #54423 (Also in 44, 45)
    • Added setIgnoreMouseEvents support on Wayland.
  • Fixed the default action label on Linux notifications not being localized. #54400 (Also in 44, 45)
  • Fixed the GPU process crash-looping on Windows when the sandbox cannot read the install folder; the folder is now reported instead. #54485 (Also in 44, 45)
  • Fixed the zoom level resetting on file: and other host-less pages after a location.hash change. #54440 (Also in 44, 45)
  • Fixed typing not working after closing an alert() or confirm() on Windows. #54462 (Also in 44, 45)
  • Fixed utilityProcess dropping stdout/stderr output that the child wrote immediately before exiting. #54279 (Also in 42, 44, 45)
  • Fixed visual zoom limits resetting on navigation and not applying to webviews. #54450 (Also in 44, 45)
  • Fixed WebAssembly exception handlers failing to catch, or crashing during tier-up, in modules using wasm exceptions. #54235
  • Fixed WebAssembly modules loaded from the code cache crashing or throwing RuntimeError: unreachable after updating between certain patch releases. #54238 (Also in 42, 44, 45)
  • Fixed win.setEnabled(false) and modal child windows not blocking input on Wayland. #54446 (Also in 44, 45)
  • Fixed zoom in/out getting stuck after zooming past the 25%-500% range. #54422 (Also in 44, 45)
    • Fixed setVisualZoomLevelLimits() shrinking pages when the minimum is under 1.
9 hours ago
electron

electron v44.5.0

Release Notes for v44.5.0

Features

  • Added launch-failure reporting with systemErrorCode to the app child-process-gone event. #54231 (Also in 45)

Fixes

  • Changed the default trash implementation on KDE Plasma 6 to kioclient. #54361 (Also in 45)
  • DevTools zoom in/out now uses the same zoom steps as Chromium. #54387 (Also in 45)
  • Fixed --xdg-portal-required-version having no effect and a spurious portal warning being logged for file dialogs on Linux. #54303 (Also in 43, 45)
  • Fixed a child WebContentsView losing focus when its window is reactivated. #54455 (Also in 43, 45)
  • Fixed a crash when a WebAuthn request used a security key that required its PIN. #54403 (Also in 45)
  • Fixed a crash when creating a framed window on Wayland in environments where GTK could not initialize. #54420 (Also in 45)
  • Fixed a crash when sending a DevTools protocol command with a non-string value for an optional string parameter via webContents.debugger. #54445 (Also in 43, 45)
  • Fixed a GPU process crash on startup when another instance of the app is using the same session data directory. #54469
  • Fixed a grey border around frameless windows on Linux WMs without compositing. #54391 (Also in 43, 45)
  • Fixed a main process crash when a native API method was called with a this value of a different native type; it now throws a TypeError. #54315 (Also in 43)
  • Fixed a possible crash during process exit when vm.Script or vm contexts created in the main process had been garbage collected shortly before quitting. #54266 (Also in 43, 45)
  • Fixed a possible crash on Windows on ARM when powerMonitor is torn down. #54408 (Also in 45)
  • Fixed a renderer crash calling image.toPNG() from a sandboxed preload script. #54502 (Also in 43, 45)
  • Fixed a renderer crash when a ResizeObserver loop-limit error handler modified layout. #54290 (Also in 45)
  • Fixed accent-color-changed on Windows reporting a colour that differed from systemPreferences.getAccentColor(). #54409 (Also in 45)
  • Fixed an issue where crashReporter.setUploadToServer() had no effect after crashReporter.start() was called. #54518 (Also in 45)
  • Fixed app.getRecentDocuments() omitting documents with non-ASCII paths on Windows. #54407 (Also in 45)
  • Fixed clipboard.read(), readText() and has() resolving seconds late on Linux while the app was idle. #54308 (Also in 42, 43, 45)
  • Fixed desktopCapturer.getSources() leaving non-resizable windows resizable on macOS. #54397 (Also in 43, 45)
  • Fixed fs.rmSync failing to remove read-only files on Windows. #54255 (Also in 42, 43, 45)
  • Fixed GDK_BACKEND leaking into processes spawned by Electron apps on Linux. #54425 (Also in 43, 45)
  • Fixed hidden windows continuing to render at full frame rate after setBackgroundThrottling(false) followed by setBackgroundThrottling(true). #54341 (Also in 45)
  • Fixed pointerLock permission requests from some iframes reporting the parent frame. #54464 (Also in 42, 43, 45)
  • Fixed setContentProtection(true) having no effect in Windows remote sessions. #54500 (Also in 45)
  • Fixed setIgnoreMouseEvents() taking effect late on X11. #54497 (Also in 43, 45)
  • Fixed setIgnoreMouseEvents(true) being undone by the next resize on X11. #54393 (Also in 43, 45)
    • Added setIgnoreMouseEvents support on Wayland.
  • Fixed shell.showItemInFolder() on Linux for paths containing #, ? or % when the file manager is reached over D-Bus. #54406 (Also in 45)
  • Fixed the default action label on Linux notifications not being localized. #54401 (Also in 43, 45)
  • Fixed the GPU process crash-looping on Windows when the sandbox cannot read the install folder; the folder is now reported instead. #54484 (Also in 43, 45)
  • Fixed the zoom level resetting on file: and other host-less pages after a location.hash change. #54442 (Also in 43, 45)
  • Fixed typing not working after closing an alert() or confirm() on Windows. #54461 (Also in 43, 45)
  • Fixed utilityProcess dropping stdout/stderr output that the child wrote immediately before exiting. #54278 (Also in 42, 43, 45)
  • Fixed visual zoom limits resetting on navigation and not applying to webviews. #54449 (Also in 43, 45)
  • Fixed WebAssembly modules loaded from the code cache crashing or throwing RuntimeError: unreachable after updating between certain patch releases. #54246 (Also in 42, 43, 45)
  • Fixed win.setEnabled(false) and modal child windows not blocking input on Wayland. #54447 (Also in 43, 45)
  • Fixed zoom in/out getting stuck after zooming past the 25%-500% range. #54421 (Also in 43, 45)
    • Fixed setVisualZoomLevelLimits() shrinking pages when the minimum is under 1.

Performance Improvements

  • Improved the performance of APIs that return rectangles, sizes, points and display objects. #54215 (Also in 45)
  • Improved the performance of session.getUserAgent(). #54244 (Also in 45)

Documentation

  • Documentation changes: #54342
9 hours ago
quasar

@quasar/app-vite-v3.10.1

Changes

  • fix(app-vite): TypeScript -> $q.bex and $q.cordova carry their BexBridge / Cordova types again in projects using moduleResolution: "bundler". They had silently degraded to any, since the augmentation no longer reached the Quasar globals declaration
  • docs(app-vite): ssr.noPreloadTagRoutes / ssg.noPreloadTagRoutes -> the typings now state that only the route-level preload tags are left out; the modulepreload tags Vite writes into the HTML template for the app entry's own static imports stay on every route

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:

9 hours ago
quasar

quasar-v2.34.0

New

  • feat(ui): useElementSize() composable -> reactive elementSize ({ width, height }) of an element or component ref, with an onResize hook, a debounce window and a disabled switch; QResizeObserver is now built on it
  • feat(ui): v-resize directive -> the template-side form of useElementSize(): reports an element's size without adding a node (the initial size, then only on change), debounce as the argument (v-resize:100), once modifier, a handler returning false stops it
  • feat(ui): useScroll() composable -> reactive scroll position, direction, delta and inflection point of the page or of a scrollable container, with an onScroll hook, axis, debounce and disabled; QScrollObserver is now built on it
  • feat(ui): useFilePicker() composable -> opens the native file dialog from setup code without rendering a file input; openFilePicker() resolves with the accepted files (null when dismissed) and the files get validated by the same rules as QFile (accept, maxFileSize, maxTotalSize, maxFiles, filter...)
  • feat(ui): useDropZone() composable and v-drop-zone directive -> turn any element or component into a drop target for files, with the QFile validation rules, a reactive isOverDropZone (the directive sets a q-drop-zone--over class instead) and rejected-file reporting. QFile and QUploader now handle drops through it
  • feat(ui): useObjectUrl() composable -> a reactive object URL for a Blob, File or MediaSource, revoked for you when the source changes and when the component is destroyed
  • feat(ui): useEventListener() composable -> attaches a listener to an element, window, document or component, following reactive targets, event names and options; removed on unmount
  • feat(ui): useMutation() composable -> the setup-code counterpart of v-mutation, with the latest mutationRecords as reactive state
  • feat(ui): useSoftFullscreen() composable -> the in-page fullscreen behind the fullscreen prop of QTable, QCarousel and QEditor (back button, route-change exit, scroll restore, popups kept on top), now usable on any element or component
  • feat(ui): useIdle() composable -> isIdle flips after timeout ms with no user activity, plus lastActive and resetIdle(); hidden-page time counts as inactivity
  • feat(ui): useKeyboardShortcut() composable -> runs a handler for a "Mod+K" style shortcut (Mod is Meta on macOS, Ctrl elsewhere), matching either the layout-aware key or the physical key code; unmodified printable shortcuts stay quiet while typing in a field
  • feat(ui): useWebSocket() composable -> a WebSocket connection kept alive from a component: status, last message, send queue flushed on open, auto reconnect with backoff (paused while offline), optional heartbeat, closed on unmount
  • feat(ui): useEventSource() composable -> Server-Sent Events from a component: named events, last event id, and a reconnect where the browser gives up; closed on unmount
  • feat(ui): useBroadcastChannel() composable -> message the other tabs, windows, iframes and workers of the same origin; closed on unmount
  • feat(ui): useWebWorker() composable -> connects a component to a Web Worker script of your own (a URL, a Worker or a factory such as a Vite ?worker import): status, last message and error, postWorkerMessage(), a terminateWorker() that frees the thread until the next message, and onCreate/onMessage/onError/onTerminate(reason) hooks
  • feat(ui): useWebWorkerFn() composable -> runs a function off the main thread: runWorkerFn(...args) resolves with its result, with timeout, Transferables, script dependencies, one hook per outcome (onSuccess/onError/onTimeout/onTerminate) and an inline run on the SSR server
  • feat(ui): useDebounce() and useThrottle() composables -> the debounce()/throttle() utils applied to a function, with the waiting call cancelled on deactivation and unmount; fn.isPending is reactive on the useDebounce() one
  • feat(ui): debounce() and throttle() utils -> debounce() takes { leading, trailing, maxWait } as its third param (a boolean still means "immediate") and gains flush() plus an isPending property; throttle() gains cancel(), flush() and an opt-in trailing call (throttle(fn, limit, true)) so a burst no longer ends on a stale state
  • feat(ui): useTimeout() and useInterval() -> also return isTimeoutPending / isIntervalActive reactive flags
  • feat(ui): useTimeout(), useInterval(), useAnimationFrame() and useTick() -> work outside of a component (they used to warn and then throw when the timer fired); call the remove method when done
  • feat(ui): useIntersection() -> returns refreshIntersection() and stopIntersection(), named after the composable like the new ones; refresh()/stop() keep working
  • feat(ui): LocalStorage/SessionStorage useStorage() -> binds a stored item to a Vue ref: an assignment persists right away, nested changes of an Object or Array persist too, and the ref follows setItem()/removeItem()/clear(), its other refs and other tabs. Default from a function, disabled, onError, typed keys through the augmentable LocalStorageItems/SessionStorageItems interfaces, SSR-safe
  • feat(ui): Cookies useCookie() -> binds a cookie to a Vue ref with the cookie options of set(); follows set()/remove(), its other refs and (where the browser has the Cookie Store API) cookies set by the server, another tab or natively. Default from a function, typed names through the augmentable CookieValues interface; on the server it reads the request cookie and writes a Set-Cookie header
  • feat(ui): AppNetwork plugin -> reactive $q.network with the online state and, where the browser has the Network Information API, effectiveType/downlink/rtt/saveData
  • feat(ui): AppWakeLock plugin -> $q.wakeLock wraps the Screen Wake Lock API (isCapable, isActive, request/release/toggle) and re-acquires the lock when the page becomes visible again
  • feat(Screen): $q.screen.orientation -> reactive { type, angle, portrait, landscape } of the device screen
  • feat(QBtnGroup/QBtnToggle): vertical prop -> stacks the buttons in a column, with the corners and seams drawn for that direction (#7766)
  • feat(QBtnToggle): align prop -> aligns the content of every option button (overridable per option), so the icons of a vertical toggle line up
  • feat(QInfiniteScroll): horizontal prop -> loads more when the row is scrolled to its inline end (the left one in RTL), reverse included (#6709)
  • feat(QTable): body-expand slot -> an expansion row declared after each body row while QTable keeps rendering the row itself (and its body-cell-[name] slots); no more taking over the whole row through the body slot (#4380)
  • feat(QTr): expandable prop -> an expansion row that can slide open and closed with a QSlideTransition inside its cell (#4380)
  • feat(QTable): a column's field is optional -> a column rendered entirely through its body-cell-[name] slot needs none
  • feat(ui): TypeScript -> Quasar directives are type-checked in templates (value, modifiers and argument) through Vue's GlobalDirectives

Fixes

  • fix(QTooltip): a closing QDialog or QMenu returns focus to its opener -> the opener's tooltip no longer shows as if it had been tabbed onto (#18556)
  • fix(QMenu/QTooltip): a target that resolves after the model turns on (v-model written before :target) -> the popup is anchored to it instead of rendering at its static position in Chromium (#18559)
  • fix(QItem): side, overline, caption and header labels -> they follow a dark mode switch and an active item's color in Chrome instead of keeping the previous color
  • fix(ui): useIntersection(), QIntersection and v-intersection -> a once observation that fired resumes observing when once goes away
  • fix(ui): v-intersection -> a null value disables it instead of throwing; the v-intersection/v-mutation/v-resize/v-drop-zone disable values are typed as false | null instead of Boolean, which invited true
  • fix(QScrollObserver): with axis="both" -> no longer emits an unchanged position (on mount, on an RTL flip); getPosition() returns a snapshot instead of the live internal object
  • fix(Screen): setDebounce() -> the pending update of the previous listener is applied right away instead of running late on a target it was removed from
  • fix(LocalStorage/SessionStorage): setItem(key, null | undefined) removes the item, so a null read always means a missing item (older versions stored the strings the browser made of them); a stored RegExp keeps its flags (what older versions stored still decodes); an item stored natively as an empty String reads as '' instead of null
  • fix(Cookies): getAll() decodes and parses the values as get() does; on the server, set() replaces the request cookie so getAll() no longer returns the previous value; remove() is typed to accept the same attributes as set() (a __Secure-/__Host- cookie needs secure) and set() the Object/Array/Number values it always stored
  • fix(ui): TypeScript -> template refs to Quasar components carry their instance methods (useTemplateRef('btn').value.click(), .validate()...)
  • fix(ui): TypeScript -> MetaOptions and noop are importable from "quasar"

Other

  • refactor(ui): QLayout, QHeader, QFooter, QTabs and QScrollArea observe through useElementSize()/useScroll() instead of mounting hidden QResizeObserver/QScrollObserver children, so layout pages carry fewer component instances and re-render less on scroll

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:

10 hours ago
jotai

v3.0.1

This fixes a regression in useAtomValue introduced in v3.0.0. Please update.

What's Changed

Full Changelog: https://github.com/pmndrs/jotai/compare/v3.0.0...v3.0.1

15 hours ago
scalar

Release 2026-09-29

Releases

@scalar/helpers@0.16.0

Minor Changes

  • #10390: Add unescapeJsonPointerSegment to unescape JSON Pointer segments without decoding literal percent sequences. Preserve the existing URI-decoding behavior of unescapeJsonPointer.

Patch Changes

  • #10385: feat: add UTM parameters identifying the integration to the "Powered by Scalar" link

@scalar/openapi-to-markdown@1.4.0

Minor Changes

  • #10394: Add opt-in linked schema rendering with caller-supplied model URLs for bounded operation, model, and webhook pages. Keep default expansion unchanged, retain reference siblings and inline schemas, and omit generated examples in linked mode.

@scalar/docusaurus@0.8.45

Patch Changes

  • #10375: Raise muted text, code-string blue and the deprecated schema row to the 4.5:1 text contrast minimum across the shipped themes

    An accessibility audit turned up text that is legible in the default theme but not in several of the presets, which pair the default greys and blues with an off-white page background. Nine presets and four integration themes get a hue-preserving nudge:

    • Light --scalar-color-2 now clears 4.5:1 on both the page background and the grey card background in every preset. That covers alternate, bluePlanet, mars and saturn, which paired the default grey with an off-white page, and custom-theme-starter, deepSpace, elysiajs, fastify, kepler and purple, which copied the default grey and were left behind when the default moved.
    • Light --scalar-color-blue, which colours code strings, now clears 4.5:1 on the grey example background in alternate, bluePlanet, deepSpace, elysiajs, fastify, kepler and moon, and in the Docusaurus, NestJS, Next.js and SvelteKit themes.
    • Dark --scalar-color-blue now clears 4.5:1 in purple and saturn, and in the Hono and Docusaurus dark themes.
    • Deprecated schema rows no longer fade their contents to 75% opacity, which had dropped their muted text to 3.0:1. The diagonal stripes, the strikethrough on the property name and the Deprecated badge still mark the row.
    • The AsyncAPI send and receive pills blend their label further toward the body text colour, so they read against the tinted fill in every preset but laserwave.
    • --scalar-focus-color sits further from the accent so a keyboard focus ring clears 3:1 on --scalar-background-3 as well, which some presets use for the selected sidebar item.

    laserwave still misses in light mode, where it reuses its dark accents unchanged; bringing it up is a redesign of the preset rather than a nudge.

  • #10373: fix(api-reference): correct selected state, focus ring, target size and reflow of reference controls

    • Client library tabs no longer announce a featured tab as selected while a client picked from "More" is active
    • The response card "Copy example value" button shows a keyboard focus ring again
    • The schema tree toggle keeps its 24px hit box in narrow layouts
    • The schema property copy-link button gets a 24px hit box without changing its layout
    • Heading copy-link buttons no longer widen the page in narrow layouts

    Rename the always-present layout container class and CSS container name from narrow-references-container to references-container.

@scalar/hono-api-reference@0.12.7

Patch Changes

  • #10375: Raise muted text, code-string blue and the deprecated schema row to the 4.5:1 text contrast minimum across the shipped themes

    An accessibility audit turned up text that is legible in the default theme but not in several of the presets, which pair the default greys and blues with an off-white page background. Nine presets and four integration themes get a hue-preserving nudge:

    • Light --scalar-color-2 now clears 4.5:1 on both the page background and the grey card background in every preset. That covers alternate, bluePlanet, mars and saturn, which paired the default grey with an off-white page, and custom-theme-starter, deepSpace, elysiajs, fastify, kepler and purple, which copied the default grey and were left behind when the default moved.
    • Light --scalar-color-blue, which colours code strings, now clears 4.5:1 on the grey example background in alternate, bluePlanet, deepSpace, elysiajs, fastify, kepler and moon, and in the Docusaurus, NestJS, Next.js and SvelteKit themes.
    • Dark --scalar-color-blue now clears 4.5:1 in purple and saturn, and in the Hono and Docusaurus dark themes.
    • Deprecated schema rows no longer fade their contents to 75% opacity, which had dropped their muted text to 3.0:1. The diagonal stripes, the strikethrough on the property name and the Deprecated badge still mark the row.
    • The AsyncAPI send and receive pills blend their label further toward the body text colour, so they read against the tinted fill in every preset but laserwave.
    • --scalar-focus-color sits further from the accent so a keyboard focus ring clears 3:1 on --scalar-background-3 as well, which some presets use for the selected sidebar item.

    laserwave still misses in light mode, where it reuses its dark accents unchanged; bringing it up is a redesign of the preset rather than a nudge.

@scalar/nestjs-api-reference@1.2.24

Patch Changes

  • #10375: Raise muted text, code-string blue and the deprecated schema row to the 4.5:1 text contrast minimum across the shipped themes

    An accessibility audit turned up text that is legible in the default theme but not in several of the presets, which pair the default greys and blues with an off-white page background. Nine presets and four integration themes get a hue-preserving nudge:

    • Light --scalar-color-2 now clears 4.5:1 on both the page background and the grey card background in every preset. That covers alternate, bluePlanet, mars and saturn, which paired the default grey with an off-white page, and custom-theme-starter, deepSpace, elysiajs, fastify, kepler and purple, which copied the default grey and were left behind when the default moved.
    • Light --scalar-color-blue, which colours code strings, now clears 4.5:1 on the grey example background in alternate, bluePlanet, deepSpace, elysiajs, fastify, kepler and moon, and in the Docusaurus, NestJS, Next.js and SvelteKit themes.
    • Dark --scalar-color-blue now clears 4.5:1 in purple and saturn, and in the Hono and Docusaurus dark themes.
    • Deprecated schema rows no longer fade their contents to 75% opacity, which had dropped their muted text to 3.0:1. The diagonal stripes, the strikethrough on the property name and the Deprecated badge still mark the row.
    • The AsyncAPI send and receive pills blend their label further toward the body text colour, so they read against the tinted fill in every preset but laserwave.
    • --scalar-focus-color sits further from the accent so a keyboard focus ring clears 3:1 on --scalar-background-3 as well, which some presets use for the selected sidebar item.

    laserwave still misses in light mode, where it reuses its dark accents unchanged; bringing it up is a redesign of the preset rather than a nudge.

@scalar/nextjs-api-reference@0.12.5

Patch Changes

  • #10375: Raise muted text, code-string blue and the deprecated schema row to the 4.5:1 text contrast minimum across the shipped themes

    An accessibility audit turned up text that is legible in the default theme but not in several of the presets, which pair the default greys and blues with an off-white page background. Nine presets and four integration themes get a hue-preserving nudge:

    • Light --scalar-color-2 now clears 4.5:1 on both the page background and the grey card background in every preset. That covers alternate, bluePlanet, mars and saturn, which paired the default grey with an off-white page, and custom-theme-starter, deepSpace, elysiajs, fastify, kepler and purple, which copied the default grey and were left behind when the default moved.
    • Light --scalar-color-blue, which colours code strings, now clears 4.5:1 on the grey example background in alternate, bluePlanet, deepSpace, elysiajs, fastify, kepler and moon, and in the Docusaurus, NestJS, Next.js and SvelteKit themes.
    • Dark --scalar-color-blue now clears 4.5:1 in purple and saturn, and in the Hono and Docusaurus dark themes.
    • Deprecated schema rows no longer fade their contents to 75% opacity, which had dropped their muted text to 3.0:1. The diagonal stripes, the strikethrough on the property name and the Deprecated badge still mark the row.
    • The AsyncAPI send and receive pills blend their label further toward the body text colour, so they read against the tinted fill in every preset but laserwave.
    • --scalar-focus-color sits further from the accent so a keyboard focus ring clears 3:1 on --scalar-background-3 as well, which some presets use for the selected sidebar item.

    laserwave still misses in light mode, where it reuses its dark accents unchanged; bringing it up is a redesign of the preset rather than a nudge.

@scalar/sveltekit@0.3.24

Patch Changes

  • #10375: Raise muted text, code-string blue and the deprecated schema row to the 4.5:1 text contrast minimum across the shipped themes

    An accessibility audit turned up text that is legible in the default theme but not in several of the presets, which pair the default greys and blues with an off-white page background. Nine presets and four integration themes get a hue-preserving nudge:

    • Light --scalar-color-2 now clears 4.5:1 on both the page background and the grey card background in every preset. That covers alternate, bluePlanet, mars and saturn, which paired the default grey with an off-white page, and custom-theme-starter, deepSpace, elysiajs, fastify, kepler and purple, which copied the default grey and were left behind when the default moved.
    • Light --scalar-color-blue, which colours code strings, now clears 4.5:1 on the grey example background in alternate, bluePlanet, deepSpace, elysiajs, fastify, kepler and moon, and in the Docusaurus, NestJS, Next.js and SvelteKit themes.
    • Dark --scalar-color-blue now clears 4.5:1 in purple and saturn, and in the Hono and Docusaurus dark themes.
    • Deprecated schema rows no longer fade their contents to 75% opacity, which had dropped their muted text to 3.0:1. The diagonal stripes, the strikethrough on the property name and the Deprecated badge still mark the row.
    • The AsyncAPI send and receive pills blend their label further toward the body text colour, so they read against the tinted fill in every preset but laserwave.
    • --scalar-focus-color sits further from the accent so a keyboard focus ring clears 3:1 on --scalar-background-3 as well, which some presets use for the selected sidebar item.

    laserwave still misses in light mode, where it reuses its dark accents unchanged; bringing it up is a redesign of the preset rather than a nudge.

@scalar/api-client@3.21.2

Patch Changes

  • #10369: fix: correct the semantics of the authentication card and of nested schema lists

    Two findings from an accessibility audit, both programmatic only with no change to how anything renders:

    • The reference's Authentication card announced its title as a level two heading, which put a card of controls in the document outline next to the real tag and operation headings. The title is now plain text and the card is exposed as a named group instead, so it stays findable without claiming to open a passage of the page. Collapsible sections in the API client are unaffected and keep their headings.
    • A schema panel whose root is a composition, a primitive or an array wraps a single nameless row that carries the real property list, so assistive tech announced "list with 1 item" before the list the reader wanted. That wrapper is now presentational and only the real property list is announced.
  • #10371: fix: tidy the client modal header at narrow widths

    The method label and copy button now stay inside the address bar at every width instead of moving to a floating row of their own, and the send button spans the full width once it wraps. Below the lg breakpoint, where the address bar fills the header row and its method chip reaches the panel edge, the sidebar toggle moves onto the backdrop as a circle that mirrors the close button in the opposite corner. At wider widths it keeps its original place inside the panel.

  • #10374: fix: resolve accessibility audit findings in the client modal

    • Auth fields (Bearer Token, Username, API key and OAuth inputs) now expose their visible label as the accessible name in both the masked and unmasked state
    • Request and response filter tabs no longer carry aria-controls, so screen readers announce each tab once when arrowing through them
    • Opening the modal from a "Test Request" button now moves focus to the close button first
  • #10369: fix: address a batch of screen reader and keyboard accessibility findings

    Corrects programmatic semantics only, with no change to how anything renders: the current sidebar item now reports aria-current, the single content type readout leaves the tab order, collapsible sections no longer announce their title twice, the password toggle reports its state through aria-pressed, the two document download buttons get distinct accessible names, response status tabs announce what each code means, and the client picker and its search field get accessible names.

  • #10361: Preserve configured OAuth redirect URLs when changing credentials or clearing tokens, and hide refresh controls when no refresh token is available.

    Previously saved redirect overrides, including empty strings and prefilled page origins, remain unchanged because they cannot be distinguished from intentional user choices. Users affected by the earlier bug must enter the intended redirect URL again.

    The public @scalar/workspace-store OAuth secrets types now expose x-scalar-secret-redirect-uri as optional (string | undefined). Consumers must handle an absent override separately from an explicit empty string.

  • #10363: Avoid duplicate available OAuth2 entries when scopes are selected, and apply configured default scopes when selecting an available scheme.

@scalar/api-reference@1.72.2

Patch Changes

  • #10369: fix: correct the semantics of the authentication card and of nested schema lists

    Two findings from an accessibility audit, both programmatic only with no change to how anything renders:

    • The reference's Authentication card announced its title as a level two heading, which put a card of controls in the document outline next to the real tag and operation headings. The title is now plain text and the card is exposed as a named group instead, so it stays findable without claiming to open a passage of the page. Collapsible sections in the API client are unaffected and keep their headings.
    • A schema panel whose root is a composition, a primitive or an array wraps a single nameless row that carries the real property list, so assistive tech announced "list with 1 item" before the list the reader wanted. That wrapper is now presentational and only the real property list is announced.
  • #10364: Prevent repeated introduction fragments when reopening API descriptions that start with a Markdown heading.

  • #10375: Raise muted text, code-string blue and the deprecated schema row to the 4.5:1 text contrast minimum across the shipped themes

    An accessibility audit turned up text that is legible in the default theme but not in several of the presets, which pair the default greys and blues with an off-white page background. Nine presets and four integration themes get a hue-preserving nudge:

    • Light --scalar-color-2 now clears 4.5:1 on both the page background and the grey card background in every preset. That covers alternate, bluePlanet, mars and saturn, which paired the default grey with an off-white page, and custom-theme-starter, deepSpace, elysiajs, fastify, kepler and purple, which copied the default grey and were left behind when the default moved.
    • Light --scalar-color-blue, which colours code strings, now clears 4.5:1 on the grey example background in alternate, bluePlanet, deepSpace, elysiajs, fastify, kepler and moon, and in the Docusaurus, NestJS, Next.js and SvelteKit themes.
    • Dark --scalar-color-blue now clears 4.5:1 in purple and saturn, and in the Hono and Docusaurus dark themes.
    • Deprecated schema rows no longer fade their contents to 75% opacity, which had dropped their muted text to 3.0:1. The diagonal stripes, the strikethrough on the property name and the Deprecated badge still mark the row.
    • The AsyncAPI send and receive pills blend their label further toward the body text colour, so they read against the tinted fill in every preset but laserwave.
    • --scalar-focus-color sits further from the accent so a keyboard focus ring clears 3:1 on --scalar-background-3 as well, which some presets use for the selected sidebar item.

    laserwave still misses in light mode, where it reuses its dark accents unchanged; bringing it up is a redesign of the preset rather than a nudge.

  • #10385: feat: add UTM parameters identifying the integration to the "Powered by Scalar" link

  • #10375: fix: raise text and focus ring contrast flagged by an accessibility audit

    The default light blue is a touch deeper so code strings and read-only labels meet 4.5:1, the required label darkens in light mode, keyboard focus rings now draw from a new --scalar-focus-color token that meets 3:1 against hovered and selected surfaces, and the schema union pipe, Default, Example and Pattern labels use the regular muted text colour.

  • #10373: fix(api-reference): correct selected state, focus ring, target size and reflow of reference controls

    • Client library tabs no longer announce a featured tab as selected while a client picked from "More" is active
    • The response card "Copy example value" button shows a keyboard focus ring again
    • The schema tree toggle keeps its 24px hit box in narrow layouts
    • The schema property copy-link button gets a 24px hit box without changing its layout
    • Heading copy-link buttons no longer widen the page in narrow layouts

    Rename the always-present layout container class and CSS container name from narrow-references-container to references-container.

  • #10369: fix: address a batch of screen reader and keyboard accessibility findings

    Corrects programmatic semantics only, with no change to how anything renders: the current sidebar item now reports aria-current, the single content type readout leaves the tab order, collapsible sections no longer announce their title twice, the password toggle reports its state through aria-pressed, the two document download buttons get distinct accessible names, response status tabs announce what each code means, and the client picker and its search field get accessible names.

  • #10379: fix: remove the duplicate copy button from the example response header

    The response card carried its own copy button in the tab strip, added in 2023 when the card had no other copy affordance. The code block inside it later gained a built-in copy button of its own, which left every response card showing two buttons that copy the same content. Only the code block's button remains.

  • #10388: Prevent Safari from outlining an entire operation section after sidebar navigation while preserving focus on the navigation target.

@scalar/blocks@0.4.1

Patch Changes

  • #10392: Give code samples, including virtualized large examples, a named keyboard-scrollable region and keep copy buttons descriptively named before hover or focus.

  • #10369: fix: address a batch of screen reader and keyboard accessibility findings

    Corrects programmatic semantics only, with no change to how anything renders: the current sidebar item now reports aria-current, the single content type readout leaves the tab order, collapsible sections no longer announce their title twice, the password toggle reports its state through aria-pressed, the two document download buttons get distinct accessible names, response status tabs announce what each code means, and the client picker and its search field get accessible names.

@scalar/components@0.30.4

Patch Changes

  • #10392: Give code samples, including virtualized large examples, a named keyboard-scrollable region and keep copy buttons descriptively named before hover or focus.

  • #10385: feat: add UTM parameters identifying the integration to the "Powered by Scalar" link

  • #10369: fix: address a batch of screen reader and keyboard accessibility findings

    Corrects programmatic semantics only, with no change to how anything renders: the current sidebar item now reports aria-current, the single content type readout leaves the tab order, collapsible sections no longer announce their title twice, the password toggle reports its state through aria-pressed, the two document download buttons get distinct accessible names, response status tabs announce what each code means, and the client picker and its search field get accessible names.

@scalar/sidebar@0.11.9

Patch Changes

  • #10369: fix: address a batch of screen reader and keyboard accessibility findings

    Corrects programmatic semantics only, with no change to how anything renders: the current sidebar item now reports aria-current, the single content type readout leaves the tab order, collapsible sections no longer announce their title twice, the password toggle reports its state through aria-pressed, the two document download buttons get distinct accessible names, response status tabs announce what each code means, and the client picker and its search field get accessible names.

@scalar/themes@0.18.1

Patch Changes

  • #10375: Raise muted text, code-string blue and the deprecated schema row to the 4.5:1 text contrast minimum across the shipped themes

    An accessibility audit turned up text that is legible in the default theme but not in several of the presets, which pair the default greys and blues with an off-white page background. Nine presets and four integration themes get a hue-preserving nudge:

    • Light --scalar-color-2 now clears 4.5:1 on both the page background and the grey card background in every preset. That covers alternate, bluePlanet, mars and saturn, which paired the default grey with an off-white page, and custom-theme-starter, deepSpace, elysiajs, fastify, kepler and purple, which copied the default grey and were left behind when the default moved.
    • Light --scalar-color-blue, which colours code strings, now clears 4.5:1 on the grey example background in alternate, bluePlanet, deepSpace, elysiajs, fastify, kepler and moon, and in the Docusaurus, NestJS, Next.js and SvelteKit themes.
    • Dark --scalar-color-blue now clears 4.5:1 in purple and saturn, and in the Hono and Docusaurus dark themes.
    • Deprecated schema rows no longer fade their contents to 75% opacity, which had dropped their muted text to 3.0:1. The diagonal stripes, the strikethrough on the property name and the Deprecated badge still mark the row.
    • The AsyncAPI send and receive pills blend their label further toward the body text colour, so they read against the tinted fill in every preset but laserwave.
    • --scalar-focus-color sits further from the accent so a keyboard focus ring clears 3:1 on --scalar-background-3 as well, which some presets use for the selected sidebar item.

    laserwave still misses in light mode, where it reuses its dark accents unchanged; bringing it up is a redesign of the preset rather than a nudge.

  • #10375: fix: raise text and focus ring contrast flagged by an accessibility audit

    The default light blue is a touch deeper so code strings and read-only labels meet 4.5:1, the required label darkens in light mode, keyboard focus rings now draw from a new --scalar-focus-color token that meets 3:1 against hovered and selected surfaces, and the schema union pipe, Default, Example and Pattern labels use the regular muted text colour.

@scalar/types@0.22.2

Patch Changes

  • #10369: fix: address a batch of screen reader and keyboard accessibility findings

    Corrects programmatic semantics only, with no change to how anything renders: the current sidebar item now reports aria-current, the single content type readout leaves the tab order, collapsible sections no longer announce their title twice, the password toggle reports its state through aria-pressed, the two document download buttons get distinct accessible names, response status tabs announce what each code means, and the client picker and its search field get accessible names.

@scalar/workspace-store@0.67.1

Patch Changes

  • #10383: Populate object parameter values from property examples when no parameter or root schema value is provided.

  • #10361: Preserve configured OAuth redirect URLs when changing credentials or clearing tokens, and hide refresh controls when no refresh token is available.

    Previously saved redirect overrides, including empty strings and prefilled page origins, remain unchanged because they cannot be distinguished from intentional user choices. Users affected by the earlier bug must enter the intended redirect URL again.

    The public @scalar/workspace-store OAuth secrets types now expose x-scalar-secret-redirect-uri as optional (string | undefined). Consumers must handle an absent override separately from an explicit empty string.

@scalar/astro@0.4.24

@scalar/express-api-reference@0.10.24

@scalar/fastify-api-reference@1.72.2

@scalar/nuxt@0.6.75

@scalar/starlight@0.2.9

@scalar/agent-chat@0.12.38

@scalar/api-client-react@2.0.52

@scalar/api-reference-react@0.9.75

@scalar/asyncapi-upgrader@0.1.14

@scalar/asyncapi-validator@0.1.7

@scalar/client-side-rendering@0.4.6

@scalar/core@0.5.38

@scalar/import@0.5.28

@scalar/json-magic@0.15.3

@scalar/json-schema-validator@0.1.7

@scalar/localization@0.2.4

@scalar/mock-server@0.17.1

@scalar/nextjs-openapi@0.3.45

@scalar/oas-utils@0.20.7

@scalar/object-utils@1.3.28

@scalar/openapi-parser@0.29.8

@scalar/openapi-upgrader@0.4.1

@scalar/openapi-validator@0.1.7

@scalar/postman-to-openapi@0.7.24

@scalar/pre-post-request-scripts@0.4.50

@scalar/release-notes@0.2.4

@scalar/schemas@0.12.2

@scalar/server-side-rendering@0.1.54

@scalar/snippetz@0.10.3

@scalar/use-hooks@0.4.16

@scalar/void-server@2.5.14

@scalarapi/docker-api-reference@0.6.9

Bundled API Reference

  • @scalar/api-reference@1.72.2

@scalar/aspire@0.11.27

Bundled API Reference

  • @scalar/api-reference@1.72.2

@scalar/aspnetcore@2.17.11

Bundled API Reference

  • @scalar/api-reference@1.72.2

@scalar/aws-lambda@0.2.15

Bundled API Reference

  • @scalar/api-reference@1.72.2

@scalar/azure-functions@0.2.21

Bundled API Reference

  • @scalar/api-reference@1.72.2

@scalar/java-integration@0.6.75

Bundled API Reference

  • @scalar/api-reference@1.72.2

scalar_api_reference@0.2.9

Bundled API Reference

  • @scalar/api-reference@1.72.2

@scalar/mock-server-docker@0.2.65

scalar-app@1.1.35

16 hours ago
next.js

v16.3.7

[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.

Core Changes

  • turbo-tasks-backend: fix strongly consistent read hanging on a canceled task (#98931)

Credits

Huge thanks to @lukesandberg for helping!

16 hours ago
taro

chore(release): publish 4.3.0

📦 特性(feat)

🐛 修复(fix)

Summary by CodeRabbit

  • 版本更新
    • Taro 及其相关工具、插件、组件和平台适配包已从 4.2.2-beta.5 更新至 4.3.0。