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 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
canZoomnow share the same viewport-fit calculation, avoiding mismatches between configurededgeand the visible margin on certain image sizes or screen resolutions. - Change the desktop edge default to 16px: The desktop preset now defaults
edgeto16instead of30, 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
onAbortto<img>.
v3.6.0
- Agenda List View: Added a new
createAgendaViewfactory for a scrollable agenda-style list layout. Events are grouped by day with configurable options includingdaysToShow,showEmptyDays, andtimeFormat(12h/24h). Supports both timed and all-day events, multi-day event continuation indicators, and full Content Slot integration. - Grid Date Click Callbacks: Added
gridDateClickandgridDateDoubleClickcallbacks 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
MobileEventDetailComponentto 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
onReorderCallback: Added anonReordercallback to the sidebar plugin, fired whenever the user drags calendars to reorder them in the list.
- Range Picker
startOfWeekProp: AddedstartOfWeekconfiguration to the range picker component so the calendar grid respects the locale or app-level week start setting. useEventDetailPanelAPI: MoveduseEventDetailPanelintouseCalendarApp, 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.
- 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.
- fix(style): DayFlow internals remove Atomic CSS class names by @JayceV552 in https://github.com/dayflow-js/calendar/pull/106
- feat: add keyboard-shortcuts callbacks by @JayceV552 in https://github.com/dayflow-js/calendar/pull/108
- perf(core): shrink bundle and eliminate CSS conflicts by @JayceV552 in https://github.com/dayflow-js/calendar/pull/107
- fix: update core rendering and framework-specific adapters by @JayceV552 in https://github.com/dayflow-js/calendar/pull/111
- chore: code clean by @JayceV552 in https://github.com/dayflow-js/calendar/pull/113
- feat: range picker add startOfWeek props by @JayceV552 in https://github.com/dayflow-js/calendar/pull/114
- perf: reduce packages bundle size by @JayceV552 in https://github.com/dayflow-js/calendar/pull/115
- feat: add gridDateClick and gridDateDoubleClick to Month and Week views by @JayceV552 in https://github.com/dayflow-js/calendar/pull/117
- perf: improve view rendering for large data sets by @JayceV552 in https://github.com/dayflow-js/calendar/pull/118
- feat: add agenda list view support by @JayceV552 in https://github.com/dayflow-js/calendar/pull/119
- feat: sidebar plugin add componentsOrder by @JayceV552 in https://github.com/dayflow-js/calendar/pull/120
Full Changelog: https://github.com/dayflow-js/calendar/compare/v3.5.0...v3.6.0
Release 2026-05-02 23:50
Release 2026-05-02 23:50
- Link header (#7327) (709627f3db) by @schiller-manuel
- @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
Release 2026-05-02 21:39
Release 2026-05-02 21:39
- early hints (#7324) (238ea4a499) by @schiller-manuel
- fix duplicate "the" typo across router packages (#7323) (f08ef9db97) by @dfedoryshchev
- @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
v6.0.0
- feat: migrate spaced themes to CSS variables and add interactive theme builder by @mathuo in https://github.com/mathuo/dockview/pull/1145
- feat: add tab context menu with getContextMenuItems callback by @mathuo in https://github.com/mathuo/dockview/pull/1147
- fix: apply focused-tab border to drag ghost tab by @mathuo in https://github.com/mathuo/dockview/pull/1148
- feat(docs): add newsletter page and sticky signup widget by @mathuo in https://github.com/mathuo/dockview/pull/1150
- fix: tab drop overlay and insertion index by @mathuo in https://github.com/mathuo/dockview/pull/1152
- Integrate edge panels into DockviewComponent by @mathuo in https://github.com/mathuo/dockview/pull/1122
- default animation docs by @mathuo in https://github.com/mathuo/dockview/pull/1155
- fix: (Angular) exports paths by @puschie286 in https://github.com/mathuo/dockview/pull/1156
- feat: add onShow/onHide lifecycle hooks to IContentRenderer by @mathuo in https://github.com/mathuo/dockview/pull/1158
- test: for testing (Tab groups) by @mathuo in https://github.com/mathuo/dockview/pull/1154
- feat(dockview-core): add tab groups with colored chips, collapse/expand, and drag-and-drop by @KyDenZ in https://github.com/mathuo/dockview/pull/1136
- fix: enable tab group chip dragging in all animation modes and preser… by @mathuo in https://github.com/mathuo/dockview/pull/1160
- fix: improve tab group chip UX and support custom chip renderers by @mathuo in https://github.com/mathuo/dockview/pull/1162
- Gen/export snapshots by @mathuo in https://github.com/mathuo/dockview/pull/1163
- refactor: rename TabGroupColor to DockviewTabGroupColor and convert T… by @mathuo in https://github.com/mathuo/dockview/pull/1165
- feat: improve tab group context menu with inline rename, horizontal c… by @mathuo in https://github.com/mathuo/dockview/pull/1168
- fix: keep drag ghost horizontal when dragging from vertical tab groups by @mathuo in https://github.com/mathuo/dockview/pull/1169
- docs: complete tab groups and edge groups documentation by @mathuo in https://github.com/mathuo/dockview/pull/1171
- feat: (Angular) template ref support by @puschie286 in https://github.com/mathuo/dockview/pull/1157
- fix: add consistent 'dockview:' prefix to all console logs by @mathuo in https://github.com/mathuo/dockview/pull/1173
- format by @mathuo in https://github.com/mathuo/dockview/pull/1174
- fix: update angular test expectations for consistent console log prefix by @mathuo in https://github.com/mathuo/dockview/pull/1176
- feat: add tabGroupIndicator theme property and extract wrap underline… by @mathuo in https://github.com/mathuo/dockview/pull/1172
- chore(ci): upgrade workflows to Node 24.x LTS by @mathuo in https://github.com/mathuo/dockview/pull/1175
- chore: add PR template and update issue templates by @mathuo in https://github.com/mathuo/dockview/pull/1177
- feat: add styled examples page to docs by @mathuo in https://github.com/mathuo/dockview/pull/1178
- chore: update docs React examples to import from dockview-react by @mathuo in https://github.com/mathuo/dockview/pull/1180
- fix: prevent edge groups from being floated or popped out by @mathuo in https://github.com/mathuo/dockview/pull/1182
- feat: move tabAnimation to theme object and combine sidebar by @mathuo in https://github.com/mathuo/dockview/pull/1181
- Fix/tab group indicator none border bleed by @mathuo in https://github.com/mathuo/dockview/pull/1184
- Fix/tab group indicator none border bleed by @mathuo in https://github.com/mathuo/dockview/pull/1187
- test: add coverage for none indicator, collapsed group fallback, and … by @mathuo in https://github.com/mathuo/dockview/pull/1189
- fix: Vue defaultTabComponent and framework prop runtime updates by @mathuo in https://github.com/mathuo/dockview/pull/1188
- fix: add missing edgeGroupCollapsedSize to spaced themes and remove u… by @mathuo in https://github.com/mathuo/dockview/pull/1190
- feat: show tab groups in the tab overflow context menu by @mathuo in https://github.com/mathuo/dockview/pull/1191
- docs: add Edge Groups and Tab Groups to feature lists by @mathuo in https://github.com/mathuo/dockview/pull/1192
- fix: anchor overlay render container to shell element for edge group … by @mathuo in https://github.com/mathuo/dockview/pull/1194
- fix: prevent tab group chip flicker on cross-group drop by @mathuo in https://github.com/mathuo/dockview/pull/1200
- docs: replace demo sidebar icon with Controls & Theme toggle by @mathuo in https://github.com/mathuo/dockview/pull/1202
- fix: hoist floating overlays into shell so they share a stacking cont… by @mathuo in https://github.com/mathuo/dockview/pull/1203
- fix: restore pointer events on floating overlays by @mathuo in https://github.com/mathuo/dockview/pull/1204
- Fix/floating group tab context menu by @mathuo in https://github.com/mathuo/dockview/pull/1205
- fix: stop auto-injecting dockview.css from package cjs/esm bundles by @mathuo in https://github.com/mathuo/dockview/pull/1206
- feat: customizable tab group color palette and accent opt-out by @mathuo in https://github.com/mathuo/dockview/pull/1208
- chore: v6.0.0 release prep — docs, templates, Vue test fix by @mathuo in https://github.com/mathuo/dockview/pull/1209
- fix(release): allow nx to rewrite internal dep ranges on experimental… by @mathuo in https://github.com/mathuo/dockview/pull/1210
- fix(core): fire onDidLayoutChange for edge group and tab group changes by @mathuo in https://github.com/mathuo/dockview/pull/1212
- fix(docs): demo edge group reset + sync, swizzled DocItem Layout shadow by @mathuo in https://github.com/mathuo/dockview/pull/1211
- fix(core): drop
contain: layoutso inner sashes/separators win z-index by @mathuo in https://github.com/mathuo/dockview/pull/1213 - fix(core): apply theme class only to the shell element by @mathuo in https://github.com/mathuo/dockview/pull/1214
- chore(docs): replace splashscreen.gif with splashscreen.png by @mathuo in https://github.com/mathuo/dockview/pull/1215
- chore(docs): keep splashscreen.gif, use splashscreenv2.png instead by @mathuo in https://github.com/mathuo/dockview/pull/1216
- fix(docs): import useDoc from plugin-content-docs/client by @mathuo in https://github.com/mathuo/dockview/pull/1218
- [ImgBot] Optimize images by @imgbot[bot] in https://github.com/mathuo/dockview/pull/1217
- chore: bump to Angular 21, Jest 30, TypeScript 5.9 by @mathuo in https://github.com/mathuo/dockview/pull/1221
- docs: add "What's new in v6" overview page by @mathuo in https://github.com/mathuo/dockview/pull/1222
- fix(docs): resolve dockview-react in template SystemJS imports by @mathuo in https://github.com/mathuo/dockview/pull/1223
Full Changelog: https://github.com/mathuo/dockview/compare/v5.2.0...v6.0.0
1.8.3
- AI 集成指引更清楚: README、
llms.txt和官网 AI 文档补充最小接入、样式导入、SSR 子路径与 Wrapper 模式约束,减少生成集成代码时漏掉关键步骤的概率。
- 侧边翻页按钮脱离边缘后的形态更正确: 当
controller.layout给 flip 控件设置 inset 时,左右翻页按钮现在会变成完整圆角与对称 padding,不再保留贴边半圆样式。 - 脱离边缘的翻页按钮保持居中: 修正 detached flip 按钮在 show / hover / active 状态下的 transform,使按钮向内偏移后仍保持垂直居中。
- 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.
- Correct detached side-flip button shape: When
controller.layoutadds 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.
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 blur flip effect:
animate.flipnow 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' }} />
- Safer desktop viewer spacing by default: The default
radiusis now8, desktopedgeis now30, and pagination / caption are inset by default to reduce crowding around edge-aligned images and overlay text. - More consistent controller contrast:
controller.color/controller.backdropnow propagate from the toolbar to side flip buttons and pagination, making custom dark or tinted controls easier to read.
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 的安全区。
-
More complete
controller.layoutinsets: Numericcontroller.layoutinsetvalues now follow each overlay target's natural edge instead of always mapping to the bottom edge. The toolbar followscontroller.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.
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 转场使用同一个视觉写入源,修复封面首帧偏移、圆角不一致和转场末段闪动。
-
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.layoutand 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 } }, }, }} />
- 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.
- npm package size: The published package now ships only dist assets and the SSR stub path while preserving public subpath compatibility.
- 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.