# XWUIFileManager

File/folder browsing widget: a breadcrumb path, optional storage-usage stat cards, a toolbar (search + list/grid toggle + upload), and a list or grid of entries with type icons, sizes, modified dates, an avatar-group "shared with" cell, a favorite-star toggle, and a per-row menu.

The component is headless with respect to navigation: `data.entries` is always just the *current* folder's contents and `data.breadcrumbs` is the path above it. Breadcrumb clicks and row/tile activation are emitted (`onNavigate`, `onOpenEntry`) - the host resolves the next folder and pushes it back in via `update()`. Storage stat cards compose `XWUIDisplayStatistic`; the "shared with" cell composes `XWUIAvatarGroup`; the row menu composes `XWUIMenuDropdown`.

## Basic Usage

Breadcrumb path, storage stat cards, and a mixed list of folders and files (doc, pdf, image, video).

```example
file: examples/BasicUsage.ts
html: examples/BasicUsage.html
title: Basic Usage
description: Breadcrumb path, storage stat cards, and a mixed list of folders and files.
```

## Grid View

The same kind of drive rendered as tiles (`viewMode: "grid"`) - better for media-heavy folders.

```example
file: examples/GridView.ts
html: examples/GridView.html
title: Grid View
description: Tile layout for media-heavy folders, with favorites and shared-with avatars.
```

## Event Wiring

The component emits `onOpenEntry`, `onNavigate`, `onUpload`, `onToggleFavorite`, `onRowAction`, `onSearch`, and `onViewModeChange` - it never mutates its own navigation state, so any host (router, API, file backend) can own what happens next.

```example
file: examples/EventWiring.ts
html: examples/EventWiring.html
title: Event Wiring
description: Wiring every callback the component emits to console.log.
```

```api
```
