+{/if}
+```
+
+7. Add TagInput in expanded view (after type selector, before delete button):
+```svelte
+
+
+
+
+```
+
+**Update +page.svelte:**
+
+Pass allTags to EntryList, then from EntryList to EntryCard. Or simpler - pass directly:
+
+1. Update EntryList.svelte to accept and pass availableTags:
+```typescript
+interface Props {
+ entries: EntryWithImages[];
+ availableTags: Tag[];
+}
+let { entries, availableTags }: Props = $props();
+```
+
+And pass to each EntryCard:
+```svelte
+
+```
+
+2. Update +page.svelte to pass allTags:
+```svelte
+
+```
+
+Import Tag type if needed for type checking.
+
+ Run `npm run dev`, test:
+1. Expand an entry - TagInput appears
+2. Type a tag name - autocomplete shows matching existing tags
+3. Select existing tag - appears as chip
+4. Type new tag and press Enter - tag created
+5. Click X on tag chip - tag removed
+6. Collapse and expand - tags persist
+ TagInput component with Svelecte works, shows autocomplete, allows creation, displays tags on collapsed entries
+
+
+
+
+
+1. `npm run check` passes
+2. Svelecte package installed and loads correctly
+3. Tag autocomplete shows all existing tags
+4. User can add tags (existing or new) to entries
+5. User can remove tags by clicking X
+6. Tags display on collapsed entry cards
+7. Case-insensitive: typing "Work" matches existing "work" tag
+
+
+
+- User can add multiple tags to entry via Svelecte input (TAG-01)
+- User can remove tags by clicking X on chips (TAG-02)
+- Autocomplete shows matching existing tags as user types (TAG-03)
+- Existing tags matched case-insensitively (TAG-04)
+- Tags visible on collapsed entry cards (max 3 with +N indicator)
+
+
+