Release List

A changelog as a document — each version an article with a real heading, so it can be linked to and navigated by heading. Never sorts, since "newest first" cannot be derived from semver once pre-releases exist.

src/components/ui/release-list.tsx

About

From the component's own source, where it was written.

A changelog: versions newest first, each with its notes.

The version is an <h3> inside an article rather than a styled div, because a changelog is a document — someone lands on it from a link and navigates it by heading. Order is the caller's; this never sorts, since "newest first" cannot be derived from a semver string alone once pre-releases are involved.

Install

npx astralyx-ui add release-list

Usage

import { ReleaseList } from '@/components/ui/release-list'

<ReleaseList releases={releases} />

Composer

Change the props and the source below follows.

v1.4.2

Latest
Field metrics now derive from control height throughout.

Added

  • Sidebar, Timeline, Stat and Sparkline
  • CodeBlock footer slot

Fixed

  • Pagination numbers no longer inherit the ambient font size
  • ButtonGroup responsive seams

v1.4.1

Fixed

  • Switch thumb contrast in dark theme
Props
tsx
<ReleaseList releases={releases} />

Examples

Changelog

API

Generated from the source, so it cannot fall behind the code. One table per exported component, then hooks, functions and types.

ReleaseList

A changelog: versions newest first, each with its notes.

Extends ComponentProps<'div'>.

PropTypeDefaultDescription
releasesRelease[]required{ version, date?, current?, tag?, notes?, sections? }.
localestring'en-GB'Date formatting through Intl.
latestLabelReactNode'Latest'Badge on the newest release.

Types

Release

FieldTypeDescription
versionstring—
date?Date—
current?booleanHighlighted as the current or newest release.
tag?ReactNode—
notes?ReactNode—
sections?{ label: string; items: ReactNode[] }[]Grouped bullets — Added, Fixed, Changed.