Activity feed
A day-grouped timeline of events with type badges, entity chips, comment and diff previews, relative times from a fixed now, a new-activity pill with staggered inserts and load more.
Preview
Project activity
Pebble · Q4 launchToday
Comment: Priya Raman commented on LNT-219
Seat toggle reads well. Can we keep annual as the default for teams over ten?
Status change: Malik Haddad moved LNT-226 from In progress to Review
Commit: Ines Okafor pushed 2 commits to feat/keyboard-map
editor/shortcuts.ts+2 −1 export const shortcuts = {Removed:palette: "mod+p",Added:palette: "mod+k",Added:sheet: "shift+?",};
Yesterday
Deploy: Tomás Ferreira deployed dpl-4f17 to Production
Merged: Noor Lindqvist merged #482 Paginate audit log export
Assignment: Priya Raman assigned LNT-240 to Malik Haddad
Install
Pro source requires Pebble Pro. Try the full preview above.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| events | ActivityEvent[] | — | Newest first: { id, type, actor, message: (string | { entity, tone? })[], at, detail? }. |
| now | Date | — | Reference time for relative stamps and day groups; pass a fixed value for stable SSR. |
| locale | string | "en-US" | Intl locale for relative times and day labels. |
| pendingCount | number | 0 | Events waiting above the list; shows the “N new updates” pill. |
| onShowPending | () => void | — | Pill click: prepend the pending events; they slide in with a stagger. |
| hasMore | boolean | false | Shows a “Load older activity” button. |
| loadingMore | boolean | false | Spinner and aria-busy on the load button. |
| onLoadMore | () => void | — | Load button click. |
| emptyState | ReactNode | — | Shown when there are no events. |
| label | string | "Activity" | Prefix for each day list’s accessible name. |
Pro component
Try the full preview above. Editable source and build guides require Pebble Pro.
