# @maks-it.com/webui-components
Shared React UI components for MaksIT WebUI apps: forms, DataTable, layout, editors, and list views.
Depends on `@maks-it.com/webui-core` and `@maks-it.com/webui-contracts`. Peer dependencies must be installed in the host app.
## Install
```bash
npm install @maks-it.com/webui-components @maks-it.com/webui-core @maks-it.com/webui-contracts
npm install react react-dom react-router-dom lucide-react @tanstack/react-table react-virtualized zod
```
## Components
| Export | Purpose |
|--------|---------|
| `DataTable`, `DataTableFilter`, `DataTableLabel` | Virtualized server-paged tables |
| `RemoteSelectBoxComponent` | Async search select (pass `searchRoute` API path) |
| `SecretComponent` | Secret field with optional generate action |
| `FormContainer`, `FormHeader`, `FormContent`, `FormFooter` | Form layout shell |
| `Layout` | App chrome / navigation wrapper |
| `Offcanvas` | Slide-over panel |
| `LazyLoadTable` | Incrementally loaded table |
| `VaultStyleDataTable`, `VaultStyleListSection` | Vault-style list layouts |
| `EntityScopesSummary` | Entity scope permissions summary |
| `Toast`, `addToast` | Toast notifications |
| `FieldContainer` | Label + validation wrapper for fields |
## Example — DataTable
```tsx
import { DataTable, createColumns } from '@maks-it.com/webui-components'
const columns = createColumns([
{ key: 'name', header: 'Name' },
{ key: 'createdAt', header: 'Created', label: 'date' },
])
```
## Example — remote select
```tsx
import { RemoteSelectBoxComponent } from '@maks-it.com/webui-components'
```
## Repository
[github.com/MAKS-IT-COM/maksit-webui](https://github.com/MAKS-IT-COM/maksit-webui) — `src/packages/components`
## License
MIT