Skip to main content

Activity feed

Home's activity, grouped by day.

<mm-activity-feed pending="3" has-more>
<mm-activity-item interactive actor="support-triage-agent" actor-kind="agent" verb="queried"
target="orders_daily" target-href="/assets/orders_daily" time="2026-10-27T09:42:00Z" status="denied"
detail="SELECT c.email, c.phone, o.total_gbp FROM orders_daily o JOIN customers_dim c USING (customer_id)"></mm-activity-item>
<mm-activity-item interactive actor="Jane Doe" verb="certified" target="customers_dim"
target-href="/assets/customers_dim" time="2026-10-27T09:05:00Z"></mm-activity-item>
</mm-activity-feed>

Guidance​

The activity feed is Home's record of what happened in the catalog: who queried what, which schemas changed, what was certified and which plugin runs updated assets. Items are grouped by day under sentence-case label headings ("Today", "Yesterday", "Monday 26 October"), never uppercase text, and separated by hairlines, never boxed as cards. Put it in an mm-panel.

When pending is above zero a "3 new events" button appears at the top inside a polite live region, so screen readers hear about new activity without losing their place; it fires mm-show-new. has-more adds a "Load more" button that fires mm-load-more; set loading while more are on their way. With no items it shows loading placeholders, an error with a retry, or the empty state.

Keyboard: interactive items form one tab stop. Up and Down move between them, Home and End jump to the first and last, and Enter or Space opens the item (mm-activate on the item, usually to open a blade). Links inside an item stay in the tab order. This follows the list navigation of mm-list (https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/).

Properties​

PropertyAttributeTypeDefaultDescription
pendingpendingnumber0Count of new events not yet shown. Above zero, a "new events" button appears at the top.
hasMorehas-morebooleanfalseShows a "Load more" button at the end.
loadingloadingbooleanfalsePlaceholders when empty; a busy "Load more" button otherwise.
errorerrorstring''An error message, shown with a retry button when there are no items.
nownownumber | undefinedThe time relative times are measured from, as a timestamp. Defaults to now.
headingLevelheading-levelnumber3Heading level of the day headings. Defaults to 3, under a panel title.
emptyHeadingempty-headingstring''Empty-state title.
emptyDescriptionempty-descriptionstring''Empty-state sentence.

Events​

EventDetailDescription
mm-show-newCustomEvent<{ count: number }>The "new events" button was activated.
mm-load-moreCustomEvent<Record<string, never>>The "Load more" button was activated.
mm-retryCustomEvent<Record<string, never>>The retry button on the error was activated.

Slots​

SlotDescription
Defaultmm-activity-item elements, newest first.

CSS parts​

PartDescription
dayEach day heading.
newThe "new events" button.
moreThe "Load more" button.

Examples​

Every state of mm-activity-feed in Storybook, with keyboard and screen reader tests.