# Export Filters block

> Activity exports empty state with audience, workspace, and date-range filter toolbar

Export empty state: header, three dropdown filters (audience, workspace, date range), and a split Execute button with CSV, PDF, and scheduled delivery. Uses ReUI IconStack, shadcn Empty, ButtonGroup, DropdownMenu. For export no-results screens.

- Type: Pro block
- Category: [Empty State](https://web.dev.reui.io/blocks/application/empty-state.md)
- Page: https://web.dev.reui.io/blocks/application/empty-state/empty-state-12
- Docs (Base UI): https://ui.shadcn.com/docs/components/base/empty.md
- Docs (Radix UI): https://ui.shadcn.com/docs/components/radix/empty.md
- MCP: `get_block("empty-state-12")`
- Built with: Button, Button Group, Dropdown Menu, Empty, Icon Stack, Separator
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

An export page with 3 radio menu filters held in state and a split Execute button for CSV, PDF or scheduled delivery

## Agent notes

- Replace `EXPORT_AUDIENCE_OPTIONS`, `EXPORT_SCOPE_OPTIONS` and `EXPORT_RANGE_OPTIONS` in data.ts with your audiences, workspaces and date ranges
- `showExportToast` backs Execute and the CSV bundle, PDF brief and Schedule delivery items, and only calls sonner `toast.message`
- The `audience`, `scope` and `range` state drives only the filter labels and the toast text; pass it to your export job and activity query

## When not to use

- A search that returned zero matches, with suggestion chips and a refine action: use [No Search Results](https://web.dev.reui.io/blocks/application/empty-state/empty-state-2.md) (`get_block("empty-state-2")`)
- A chip bar of field, operator and value rules over result rows that already exist: use [Filters](https://web.dev.reui.io/components/filters.md) (`get_component("filters")`)

## Third-party libraries

- Sonner v2: [API reference](https://sonner.emilkowal.ski/toast), [docs](https://sonner.emilkowal.ski/getting-started)

## Install

```bash
npx shadcn@latest add @reui/empty-state-12
```

## About Empty State blocks

### When to use

- A first run screen for records, projects, reports or a library that holds nothing yet
- A search with zero matches or an export page that has nothing to download yet
- A setup prompt to invite the team, enable a feature or connect file storage

### When not to use

- A compact no data message placed inside a table, list or panel you already have: use [Empty](https://web.dev.reui.io/components/empty.md) (`get_component("empty")`)
- Only the layered isometric illustration, with no title, copy or actions: use [Icon Stack](https://web.dev.reui.io/components/icon-stack.md) (`get_component("icon-stack")`)
- A populated tile that shows stats, a profile, links or an integration: use the [Card blocks](https://web.dev.reui.io/blocks/application/card.md)

### Agent notes

- `EmptyState` takes no props in every block, so its copy, media and actions are fixed in the block files; add props to reuse it
- Every page.tsx centers `EmptyState` in a `min-h-svh` wrapper with padding; drop that wrapper inside your own layout
- No action is wired: buttons have no `onClick` or only fire a sonner `toast`, and every `href` is a hash anchor

Every ReUI item has a twin like this one; the index is https://web.dev.reui.io/llms.txt. Agents with the ReUI MCP (https://web.dev.reui.io/docs/mcp) get the same guidance from the getters named above.
