# Cloud Storage Connect block

> File sources empty state with cloud storage connector grid (Dropbox, R2, Drive, OneDrive)

Empty state for linking cloud storage: header, IconStack illustration, and a responsive grid of brand-logo connect buttons (Dropbox, Cloudflare R2, Google Drive, OneDrive). ReUI Frame, IconStack, shadcn Empty, Separator. For integrations 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-13
- 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-13")`
- Built with: Empty, Frame, Icon Stack, Separator
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

A file queue waiting on a storage link, with 4 brand logo connector tiles in a Frame and a connector guide link

## Agent notes

- Replace `STORAGE_CONNECTORS` in data.tsx; each entry sets a hash `href`, a brand `Logo` and a per logo `logoClassName` size
- Connector tiles are plain anchors with no handler; start your storage connect flow from each tile in place of `connector.href`
- The tile grid steps to 2 and then 4 columns on its `@container` width, not the viewport, so a narrow column keeps 1

## When not to use

- Linked storage with documents to browse in a folder tree and list or grid views: use [Drive Explorer](https://web.dev.reui.io/blocks/solutions/files/solution-files-1.md) (`get_block("solution-files-1")`)
- An integrations page to configure third party apps that are already connected: use the [Settings blocks](https://web.dev.reui.io/blocks/application/settings.md)

## Install

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

## 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.
