3 hours ago
react-zmage

1.8.4

修复

  • 修复进入浏览态末尾的图片闪烁: 首次 browse-in 期间不再立即挂载和加载相邻 side images,而是等浏览层进入稳态后再开始预加载。这个问题不是单张图片资源本身导致的;在大图、多图页面里,中心图还在执行 cover 几何动画(object-fit、clip、radius、transform)时,相邻图的解码、布局和合成也同时加入,容易在进入动画最后几帧或窗口 resize 时放大为 Chromium repaint/composite 抖动,表现为短促闪烁。现在 flip 按钮会在相邻图加载完成前保持禁用态,图片 ready 后再恢复可用,保留翻页功能的同时降低首次打开的渲染压力。
  • edge 几何计算和实际展示保持一致: 打开、旋转、缩放边界和 canZoom 现在共用同一套 viewport-fit 计算,避免特定图片尺寸或屏幕分辨率下配置的 edge 与实际留白不一致。
  • desktop 默认 edge 调整为 16px: desktop preset 的 edge 默认值从 30 调整为 16,调试台默认值、README、AGENTS、llms.txt 和官网构建产物已同步。
  • 图片 abort 处理不再触发 JSX lint 规则: viewer 内部仍保留图片加载中断后的终止处理,但改为通过 ref 注册原生事件,避免在 <img> 上透传 onAbort

Fix

  • Fix late browsing-in image flicker: Adjacent side images are no longer mounted and loaded immediately during the first browse-in transition. They now start preloading only after the browsing layer has settled. The issue was not caused by one image asset alone: on pages with large images or multiple gallery images, side-image decoding, layout, and compositor work could overlap with the center image's cover-geometry animation (object-fit, clip, radius, and transform). That extra work was most visible in the last frames of browsing-in or during viewport resize, where Chromium could repaint or composite briefly and appear to flicker. Flip controls now stay disabled until the required adjacent image has loaded, preserving flip behavior while reducing first-open rendering pressure.
  • Keep edge geometry aligned with what is rendered: Opening, rotation, zoom bounds, and canZoom now share the same viewport-fit calculation, avoiding mismatches between configured edge and the visible margin on certain image sizes or screen resolutions.
  • Change the desktop edge default to 16px: The desktop preset now defaults edge to 16 instead of 30, with the playground defaults, README, AGENTS, llms.txt, and rebuilt website bundle kept in sync.
  • Avoid JSX lint failures for image abort handling: The viewer still handles aborted image loads, but attaches native abort listeners through refs instead of passing onAbort to <img>.
3 hours ago
calendar

v3.6.0

[3.6.0] - 2026-05-03

New Features & Enhancements

image

image

  • Agenda List View: Added a new createAgendaView factory for a scrollable agenda-style list layout. Events are grouped by day with configurable options including daysToShow, showEmptyDays, and timeFormat (12h/24h). Supports both timed and all-day events, multi-day event continuation indicators, and full Content Slot integration.
  • Grid Date Click Callbacks: Added gridDateClick and gridDateDoubleClick callbacks to Month and Week views, enabling click and double-click handlers on empty date/time grid cells.
  • Mobile Event Detail as Content Slot: Migrated the internal MobileEventDetailComponent to the Content Slot system, making the mobile event detail panel fully customizable via framework render props.
  • Keyboard Shortcuts Callbacks: Added lifecycle callbacks to the keyboard-shortcuts plugin (onKeyDown, onKeyUp, and per-action hooks) for programmatic integration and custom shortcut handling.
  • Sidebar onReorder Callback: Added an onReorder callback to the sidebar plugin, fired whenever the user drags calendars to reorder them in the list.

Fixed

  • Range Picker startOfWeek Prop: Added startOfWeek configuration to the range picker component so the calendar grid respects the locale or app-level week start setting.
  • useEventDetailPanel API: Moved useEventDetailPanel into useCalendarApp, making the event detail panel controls accessible from the same unified app hook across React, Vue, Angular, and Svelte.
  • Framework Adapter Rendering: Updated core rendering and framework-specific adapters (Vue, Angular, Svelte) to align with the Content Slot architecture introduced in v3.5.0.

Performance

  • View Rendering for Large Datasets: Significantly optimized event layout calculations across Month, Week, Day, and Year views for calendars with large numbers of events.
  • Plugin Bundle Size: Reduced bundle size for the drag, keyboard-shortcuts, localization, sidebar, and UI packages by streamlining rollup configurations.
  • Bundle Shrink & CSS Isolation: Reduced the core bundle footprint and eliminated residual CSS conflicts by refining the build pipeline and library import boundaries.

What's Changed

Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.5.0...v3.6.0

12 hours ago
router

Release 2026-05-02 23:50

Release 2026-05-02 23:50

Changes

Features

  • Link header (#7327) (709627f3db) by @schiller-manuel

Packages

  • @tanstack/react-start@1.167.61
  • @tanstack/react-start-rsc@0.0.40
  • @tanstack/react-start-server@1.166.50
  • @tanstack/solid-start@1.167.58
  • @tanstack/solid-start-server@1.166.49
  • @tanstack/start-plugin-core@1.169.16
  • @tanstack/start-server-core@1.167.28
  • @tanstack/vue-start@1.167.54
  • @tanstack/vue-start-server@1.166.45
12 hours ago
next.js

v16.3.0-canary.9

Misc Changes

  • Drop once_cell from all direct crate deps: #93095
  • Replace Lazy static lookups with phf::Map: #93096

Credits

Huge thanks to @mmastrac for helping!

14 hours ago
router

Release 2026-05-02 21:39

Release 2026-05-02 21:39

Changes

Features

  • early hints (#7324) (238ea4a499) by @schiller-manuel

Chore

  • fix duplicate "the" typo across router packages (#7323) (f08ef9db97) by @dfedoryshchev

Packages

  • @tanstack/react-start@1.167.60
  • @tanstack/react-start-rsc@0.0.39
  • @tanstack/react-start-server@1.166.49
  • @tanstack/solid-start@1.167.57
  • @tanstack/solid-start-server@1.166.48
  • @tanstack/start-plugin-core@1.169.15
  • @tanstack/start-server-core@1.167.27
  • @tanstack/vue-start@1.167.53
  • @tanstack/vue-start-server@1.166.44
15 hours ago
dockview

v6.0.0

What's Changed

Full Changelog: https://github.com/mathuo/dockview/compare/v5.2.0...v6.0.0

17 hours ago
react-zmage

1.8.3

优化

  • AI 集成指引更清楚: README、llms.txt 和官网 AI 文档补充最小接入、样式导入、SSR 子路径与 Wrapper 模式约束,减少生成集成代码时漏掉关键步骤的概率。

修复

  • 侧边翻页按钮脱离边缘后的形态更正确: 当 controller.layout 给 flip 控件设置 inset 时,左右翻页按钮现在会变成完整圆角与对称 padding,不再保留贴边半圆样式。
  • 脱离边缘的翻页按钮保持居中: 修正 detached flip 按钮在 show / hover / active 状态下的 transform,使按钮向内偏移后仍保持垂直居中。

Improvements

  • Clearer AI integration guidance: README, llms.txt, and the AI docs now spell out minimal setup, style imports, SSR subpath usage, and Wrapper-mode constraints so generated integrations are less likely to miss required steps.

Fix

  • Correct detached side-flip button shape: When controller.layout adds inset spacing for flip controls, the left and right flip buttons now use full rounding and symmetric padding instead of keeping the edge-attached pill shape.
  • Detached flip buttons stay centered: Fixed the show / hover / active transforms for detached flip controls so inset side buttons remain vertically centered.
18 hours ago
react-zmage

1.8.2

新功能

  • 新增 blur 翻页效果: animate.flip 现在支持 'blur'。多图浏览切换时,当前图会轻微失焦并淡出,下一张图同步淡入;caption 也会跟随同一段切换节奏更新。

    <Zmage
      src="cover.jpg"
      set={gallery}
      animate={{ flip: 'blur' }}
    />

视觉更新

  • 桌面浏览层默认间距更稳: 默认 radius 调整为 8,桌面 edge 调整为 30,pagination 和 caption 默认向内收,减少靠边图片、页码和说明文字互相挤压的问题。
  • 控制器对比度更一致: toolbar 的 controller.color / controller.backdrop 现在会同步影响侧边翻页按钮和 pagination,让深色或自定义背景下的控制区更容易看清。

New Features

  • New blur flip effect: animate.flip now supports 'blur'. During multi-image browsing, the outgoing image softly blurs and fades while the next image fades in; captions switch on the same transition rhythm.

    <Zmage
      src="cover.jpg"
      set={gallery}
      animate={{ flip: 'blur' }}
    />

Visual Update

  • Safer desktop viewer spacing by default: The default radius is now 8, desktop edge is now 30, and pagination / caption are inset by default to reduce crowding around edge-aligned images and overlay text.
  • More consistent controller contrast: controller.color / controller.backdrop now propagate from the toolbar to side flip buttons and pagination, making custom dark or tinted controls easier to read.
20 hours ago
react-zmage

1.8.1

新功能

  • controller.layout inset 更完整: controller.layout 的数字型 inset 现在会按目标组件自己的位置解释,不再一律当作底部偏移。toolbar 会跟随 controller.placement 判断安全边距,pagination 和 caption 继续按底部区域处理,左右 flip 按钮也可以单独向内收。

    <Zmage
      src="hero.jpg"
      controller={{
        layout: {
          toolbar: { inset: 24 },
          flip: { inset: 32 },
          pagination: { inset: 20 },
          caption: { inset: 64 },
        },
      }}
    />
  • 文档与调试台同步: 参数调试台、README、docs/llms.txt 和公开类型说明已经同步到新的 layout 行为,方便直接调试 toolbar、flip、pagination 和 caption 的安全区。


New Features

  • More complete controller.layout insets: Numeric controller.layout inset values now follow each overlay target's natural edge instead of always mapping to the bottom edge. The toolbar follows controller.placement, pagination and caption keep their bottom-area behavior, and left / right flip buttons can now be inset from the side edges.

    <Zmage
      src="hero.jpg"
      controller={{
        layout: {
          toolbar: { inset: 24 },
          flip: { inset: 32 },
          pagination: { inset: 20 },
          caption: { inset: 64 },
        },
      }}
    />
  • Docs and playground sync: The playground controls, README, docs/llms.txt, and public type docs now describe the updated layout behavior for toolbar, flip, pagination, and caption safe-area tuning.

21 hours ago
react-zmage

1.8.0

新功能

  • 慢动作转场: 新增 animate.slowMotion,默认关闭。开启后,按住 Shift 打开或关闭图片会把完整 browsing 转场放慢到 10x,便于演示和检查动画细节。

    <Zmage src="photo.jpg" animate={{ slowMotion: true }} />
  • 覆盖层布局: 新增 controller.layout 和对应导出类型,可单独调整 toolbar、pagination、caption 的安全偏移,不改变图片首帧、缩放或关闭动画的几何计算。

    <Zmage
      src="photo.jpg"
      controller={{
        placement: 'bottom-center',
        layout: {
          pagination: { inset: 32 },
          caption: { inset: { bottom: 72 } },
        },
      }}
    />

视觉更新

  • 首页示例更新: 官网首页示例改成更复杂的图文混排,用 Child's Dream 图片故事展示原位展开、封面裁剪、圆角匹配、caption、分页和慢动作转场。

优化

  • npm 包体积: 发布包只保留 dist 产物和 SSR stub 路径,继续保留公开子路径兼容,同时减少安装包内容。

修复

  • 快速开关浏览层: 隔离 Zmage.browsing() 实例,取消旧 open / close timer,快速连续 in / out / reopen 时不再把封面卡在 visibility:hidden 或留下空 portal。
  • 首帧和末帧稳定性: browsing-in 等待视口几何稳定,并让 RAF 转场使用同一个视觉写入源,修复封面首帧偏移、圆角不一致和转场末段闪动。

New Features

  • Slow-motion transitions: Added animate.slowMotion, off by default. When enabled, holding Shift while opening or closing slows the full browsing transition to 10x for demos and animation inspection.

    <Zmage src="photo.jpg" animate={{ slowMotion: true }} />
  • Overlay layout: Added controller.layout and exported layout types so consumers can inset the toolbar, pagination, and caption overlays without changing first-frame, zoom, or close-animation geometry.

    <Zmage
      src="photo.jpg"
      controller={{
        placement: 'bottom-center',
        layout: {
          pagination: { inset: 32 },
          caption: { inset: { bottom: 72 } },
        },
      }}
    />

Visual Update

  • Homepage examples: Rebuilt the homepage demo into a richer editorial layout using the Child's Dream image story to show origin expansion, cover crop matching, radius matching, captions, pagination, and slow-motion transitions.

Improvements

  • npm package size: The published package now ships only dist assets and the SSR stub path while preserving public subpath compatibility.

Fix

  • Rapid viewer toggles: Isolated Zmage.browsing() instances and canceled stale open / close timers, preventing rapid in / out / reopen sequences from leaving the cover hidden or an empty portal mounted.
  • First-frame and late-transition stability: browsing-in now waits for stable viewport geometry and uses a single visual write source during RAF transitions, fixing first-frame cover offsets, radius mismatch, and late-transition flashing.