diff --git a/src/app/components/SnippetLibrary.module.css b/src/app/components/SnippetLibrary.module.css
index d17521f..7cc0274 100644
--- a/src/app/components/SnippetLibrary.module.css
+++ b/src/app/components/SnippetLibrary.module.css
@@ -71,6 +71,13 @@
gap: var(--space-1);
}
+.nameRow {
+ display: flex;
+ align-items: center;
+ gap: var(--space-2);
+ min-width: 0;
+}
+
.name {
font-size: 13px;
font-weight: 500;
@@ -79,6 +86,15 @@
text-overflow: ellipsis;
}
+/* Unpublished-draft indicator (spec §03D / §02 status). */
+.draftDot {
+ flex: 0 0 auto;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background: var(--accent);
+}
+
.date {
font-size: 11px;
color: var(--text-secondary);
diff --git a/src/app/components/SnippetLibrary.tsx b/src/app/components/SnippetLibrary.tsx
index 4548209..a0cba07 100644
--- a/src/app/components/SnippetLibrary.tsx
+++ b/src/app/components/SnippetLibrary.tsx
@@ -7,6 +7,7 @@
*/
import { useShallow } from 'zustand/react/shallow';
+import { hasUnpublishedChanges } from '@core/snippet';
import { confirm } from '../stores/ConfirmStore';
import { useSnippetStore } from '../stores/SnippetStore';
import styles from './SnippetLibrary.module.css';
@@ -66,7 +67,16 @@ export function SnippetLibrary() {
onClick={() => selectSnippet(s.id)}
>
- {s.name}
+
+ {hasUnpublishedChanges(s) && (
+
+ )}
+ {s.name}
+
{relativeDate(s.modified)}