feat: Themen-Inhaltsverzeichnis — Dashboard-Widget + dedizierte Seite /themen #664

Merged
marcel merged 13 commits from worktree-feat+issue-662-themen-inhaltsverzeichnis into main 2026-05-27 09:41:40 +02:00
Showing only changes of commit e6a0c2f6d6 - Show all commits

View File

@@ -59,10 +59,13 @@ const greetingText = $derived.by(() => {
<h1 class="font-serif text-[2rem] text-ink">{greetingText}</h1> <h1 class="font-serif text-[2rem] text-ink">{greetingText}</h1>
</div> </div>
{/if} {/if}
<div class="grid grid-cols-1 gap-5 lg:grid-cols-[1fr_320px] lg:items-start">
<div class="flex flex-col gap-5"> <div class="flex flex-col gap-5">
<DashboardResumeStrip resumeDoc={data.resumeDoc ?? null} /> <DashboardResumeStrip resumeDoc={data.resumeDoc ?? null} />
<ThemenWidget tags={data.tagTree ?? []} />
<div class="grid grid-cols-1 gap-5 lg:grid-cols-[1fr_320px] lg:items-start">
<div class="flex flex-col gap-5">
<EnrichmentBlock <EnrichmentBlock
topDocs={data.incompleteDocs ?? []} topDocs={data.incompleteDocs ?? []}
totalCount={data.incompleteTotal ?? 0} totalCount={data.incompleteTotal ?? 0}
@@ -85,12 +88,12 @@ const greetingText = $derived.by(() => {
<div class="flex flex-col gap-5 lg:sticky lg:top-[80px]"> <div class="flex flex-col gap-5 lg:sticky lg:top-[80px]">
<DashboardFamilyPulse pulse={data.pulse ?? null} /> <DashboardFamilyPulse pulse={data.pulse ?? null} />
<ThemenWidget tags={data.tagTree ?? []} compact={true} />
<DashboardActivityFeed feed={data.activityFeed ?? []} /> <DashboardActivityFeed feed={data.activityFeed ?? []} />
{#if data.canWrite} {#if data.canWrite}
<DropZone onUploadComplete={(count) => (bannerCount = count)} /> <DropZone onUploadComplete={(count) => (bannerCount = count)} />
{/if} {/if}
</div> </div>
</div> </div>
</div>
{/if} {/if}
</main> </main>