diff --git a/src/App.vue b/src/App.vue
index af07034..5a91c74 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -4,6 +4,7 @@ import {
PhArrowClockwise,
PhArrowCounterClockwise,
PhArrowLeft,
+ PhCursorClick,
PhExport,
PhFilmStrip,
PhFolderOpen,
@@ -439,6 +440,16 @@ onBeforeUnmount(() => {
{{ store.activeClip?.name ?? '' }}
+
diff --git a/src/components/AssetSidebar.vue b/src/components/AssetSidebar.vue
index 3749bf7..65f74f0 100644
--- a/src/components/AssetSidebar.vue
+++ b/src/components/AssetSidebar.vue
@@ -1,7 +1,8 @@
-
+
Assets
+
{{ t('sidebar.noClips') }}
+
+
+
@@ -347,6 +503,12 @@ function onAssetDragStart(e: DragEvent, asset: Extract
gap: 10px;
}
+.panel.hit-disabled {
+ opacity: 0.4;
+ pointer-events: none;
+ filter: saturate(0.5);
+}
+
h3 {
margin: 0 0 2px;
font-size: 13px;
@@ -574,6 +736,17 @@ h4 {
border-color: var(--border-strong);
}
+/* In compact (no-thumbnail) mode, buttons match library entry height
+ exactly by dropping the 1px border (same as .assets li). */
+.clips.compact .clip {
+ border: 0;
+ gap: 10px;
+}
+
+.clips.compact .clip.editing {
+ background: var(--accent-soft);
+}
+
.clip:active {
cursor: grabbing;
}
diff --git a/src/components/CanvasStage.vue b/src/components/CanvasStage.vue
index 2a86853..b396b6a 100644
--- a/src/components/CanvasStage.vue
+++ b/src/components/CanvasStage.vue
@@ -1,19 +1,36 @@