KQ-967 · RELEASE/NOTES
Release Notes
The note a release writes about itself while it is still being cut: commits arrive as props and the card groups them into added, changed, fixed and removed, each group with a count that cross-fades in one cell. A landing line arrives from 4px away on glide, staggered inside its group by cascade, while the lines already there travel under layout on the same spring, so a new entry pushing the rest down reads as a shift rather than a bounce. Pressing a line swaps it for an input in the same cell, focused as it arrives; Enter or blur commits, Escape reverts, and an edited line keeps a quiet edited mark.
Added1
Changed1
Fixed1
2.14.0 · 3 of 10 commits · 3 groups
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/release-notes
Props
- ref
- React.Ref<HTMLDivElement>
- default —
- Reaches the root group element.
- commits
- ReleaseCommit[]
- default —
- The landed commits, in the order they landed: id, kind, the line as written, and an optional scope.
- version
- string
- default —
- The release being written.
- service
- string
- default —
- What the release is of; printed before the version.
- dateLabel
- string
- default —
- The release date as a string — the card never reads a clock.
- edits / defaultEdits
- Record<string, string>
- default {}
- Controlled or initial per-commit text overrides, keyed by commit id.
- onEditsChange
- (edits: Record<string, string>) => void
- default —
- Fires from the setter that committed an edit.
- onEntryCommit
- (id: string, text: string) => void
- default —
- Fires once per committed line, with the text it now reads.
- onEditingChange
- (id: string | null) => void
- default —
- Which line is open for editing — a state, so it also fires on mount.
- label
- string
- default "Release notes"
- Names the card for assistive technology.
- className
- string
- default —
- Merged onto the root element's classes.
| Prop | Type | Default | Description |
|---|---|---|---|
| ref | React.Ref<HTMLDivElement> | — | Reaches the root group element. |
| commits | ReleaseCommit[] | — | The landed commits, in the order they landed: id, kind, the line as written, and an optional scope. |
| version | string | — | The release being written. |
| service | string | — | What the release is of; printed before the version. |
| dateLabel | string | — | The release date as a string — the card never reads a clock. |
| edits / defaultEdits | Record<string, string> | {} | Controlled or initial per-commit text overrides, keyed by commit id. |
| onEditsChange | (edits: Record<string, string>) => void | — | Fires from the setter that committed an edit. |
| onEntryCommit | (id: string, text: string) => void | — | Fires once per committed line, with the text it now reads. |
| onEditingChange | (id: string | null) => void | — | Which line is open for editing — a state, so it also fires on mount. |
| label | string | "Release notes" | Names the card for assistive technology. |
| className | string | — | Merged onto the root element's classes. |