Something went wrong. Try again.
Monorepo for Tangled forked from tangled.org/core
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051<script lang="ts" generics="E extends { uri: string }"> import type { Snippet } from "svelte"; import type { Attachment } from "svelte/attachments"; import TimeAgo from "#lib/components/ui/TimeAgo.svelte"; import TimelineCard from "#lib/components/timeline/TimelineCard.svelte"; import type { TimelineEvent } from "#lib/components/timeline/group.ts";
let { title, items, row, trailing }: { title: Snippet; items: TimelineEvent<E>[]; row: Snippet<[E]>; trailing?: Snippet; } = $props();
const hideWhenWrapping: Attachment<HTMLElement> = (node) => { const header = node.parentElement!; const fit = () => { node.style.display = "none"; const bare = header.offsetHeight; node.style.display = ""; if (header.offsetHeight > bare) node.style.display = "none"; }; const observer = new ResizeObserver(fit); observer.observe(header); return () => observer.disconnect(); };</script>
<TimelineCard padded={false}> {#snippet header()} {@render title()} {#if trailing} <span class="contents" {@attach hideWhenWrapping}>{@render trailing()}</span> {/if} <TimeAgo value={items[0].eventAt} class="text-foreground-subtle" /> {/snippet}
<div class="divide-y divide-border-default"> {#each items as item (item.event.uri)} <div class="p-sm"> {@render row(item.event)} </div> {/each} </div></TimelineCard>