From 82ee5c98d0ecd246e062f9f7fc50451ad1f00021 Mon Sep 17 00:00:00 2001 From: th Date: Tue, 21 Apr 2026 22:00:35 +0200 Subject: [PATCH] 0.8.1: dirty-state + Cmd/Ctrl+S, fullscreen plays to OUT, UX fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Unsaved-changes indicator: a small accent dot appears on the save button whenever the scene has changed since the last save/load. Save/load/new all mark the project clean on next tick. - Cmd/Ctrl+S saves the project (reuses the same flow as the button; prompts for a name on first save). Tooltip now mentions the shortcut. - Fullscreen preview plays to the OUT marker (or scene.duration when no OUT is set) instead of looping at the last keyframe. Dropped the runtime's effectiveEnd helper; RUNTIME_VERSION 13 → 14. - "Still frame" keyframes no longer disable easing. A held kf's easing still drives the segment INTO it from the previous kf, so you can ease into a pause. Only the first kf disables easing (nothing precedes it). Dropped `timeline.holdDisabledHint`. - Settings dialog: hint text 11px → 13px (and dropped italic) so the inline help is readable; section headings 10px → 13px. - Canvas stage shadow: `shadowCfg` always emits explicit values plus a `shadowEnabled` flag instead of returning `{}`. Konva's default shadowOpacity is 1, so bailing with `{}` could leave stale shadow attrs on the shape. Preview and editor now gate on the same condition deterministically. - Sidebar empty-state copy: "No clips" → "No clips yet" to match "No buttons yet". Regression tests: runtime rangeOut fallback is scene.duration (not last kf); sidebar empty-states both contain "yet"; the holdDisabledHint key is gone; saveProject tooltips mention the shortcut. Co-Authored-By: Claude Opus 4.7 (1M context) --- package.json | 2 +- src/App.vue | 63 +++++++++++++++++++++++++++-- src/components/CanvasStage.vue | 8 +++- src/components/DocumentSettings.vue | 12 +++--- src/components/Timeline.vue | 7 ++-- src/devtools/tests.ts | 43 ++++++++++++++++++++ src/i18n/messages.ts | 6 +-- src/lib/exportPlayer.ts | 33 ++++----------- src/version.ts | 2 +- todo | 5 ++- 10 files changed, 133 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 528cdf5..138e131 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "animatr", "private": true, - "version": "0.8.0", + "version": "0.8.1", "type": "module", "scripts": { "dev": "vite", diff --git a/src/App.vue b/src/App.vue index 76d954e..0309a69 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,5 @@