<script lang="ts">
    export interface ChangelogEntry {
        date: string;
        time: string;

        content: string;
        link?: string;
    }
    
    let {
        entry,
    }: {
        entry: ChangelogEntry;
    } = $props();
</script>

<div class="changelog-entry">
    <div class="changelog-entry-timestamp-container">
        <span>{entry.date}</span>
        <span class="changelog-entry-timestamp-comma">,&nbsp;</span>
        <span>{entry.time}</span>
    </div>
    <span class="changelog-entry-timestamp-divider">::</span>
    <p>
        {entry.content}
        {#if entry.link}
            <a class="changelog-entry-link" href="{entry.link}">»</a>
        {/if}
    </p>
</div>

<style>
    .changelog-entry * {
        margin: 0;
    }

    .changelog-entry {
        display: flex;
        flex-direction: row;
        gap: 8px;
        margin: 4px 0;
    }

    .changelog-entry p {
        font-size: 1.0rem;
        line-height: 1.3rem;
    }

    .changelog-entry-timestamp-container {
        display: flex;
        flex-direction: row;
    }

    .changelog-entry-timestamp-container *, .changelog-entry-timestamp-divider {
        font-family: var(--font-mono);
        font-size: 0.8rem;
        line-height: 1.3rem;
        font-weight: 500;
        color: var(--color-highlight);
        min-width: fit-content;
    }

    .changelog-entry-link {
        font-family: var(--font-mono);
        font-size: 1.2rem;
        color: var(--color-highlight);
        text-decoration: none;
        line-height: 1.3rem;
    }

    .changelog-entry-link:hover {
        font-weight: 700;
    }

    @media screen and (max-width: 550px) {
        /* Align timestamp texts vertically */
        .changelog-entry-timestamp-container {
            flex-direction: column;
            align-items: end;
        }

        /* Hide separating comma */
        .changelog-entry-timestamp-comma {
            display: none;
        }
    }
</style>