# ActivityFeed

Filter a real event stream by its event type without losing chronological context.

- Family: Data, imported from `mizu-ui` or `mizu-ui/data`
- Docs: https://mizu.user64bit.world/components/activity-feed
- Source: https://github.com/0xuser64bit/mizu/blob/main/packages/mizu/src/data/Inspection.tsx

## Usage

```tsx
import { ActivityFeed } from "mizu-ui";

export function Example() {
  return (
    <ActivityFeed
      label="Illustrative event stream"
      items={[
        {
          id: "a",
          actor: "You",
          action: "created WaveText",
          time: "10:24",
          type: "Created",
        },
        {
          id: "b",
          actor: "Mizu",
          action: "validated the package",
          time: "10:31",
          type: "Validated",
        },
        {
          id: "c",
          actor: "You",
          action: "created Signal",
          time: "11:02",
          type: "Created",
        },
      ]}
    />
  );
}
```

## Copy it with the shadcn CLI

```sh
npx shadcn@latest init 0xuser64bit/mizu/preset # once, where there is no components.json
npx shadcn@latest add 0xuser64bit/mizu/activity-feed
```

## Props

- `items`: `Activity[]`. Stable event id, actor, action, time and optional type/dateTime.
- `label`: `string`. Feed and filter name.

## Accessibility

Events are an ordered list. A labelled native select filters event types. Empty views remain explained.

## Motion

CSS transitions explain state changes. Reduced motion removes travel.
