# FruitBankHybrid.Shared

@project {
  type = "product"
  own-dep-projects = [
    "AyCode.Core, AyCode.Entities, AyCode.Interfaces, AyCode.Models, AyCode.Services, AyCode.Services.Server, AyCode.Utils (in AyCode.Core repo)",
    "AyCode.Blazor.Components (in AyCode.Blazor repo)",
    "Mango.Nop.Core (in Mango.Nop Libraries repo)"
  ]
}

Main Blazor UI library shared across all three deployment targets (Server, WASM, MAUI). Contains pages, DevExpress grid components, SignalR client, measurement service, and layout.

## Folder Structure

| Folder | Purpose |
|---|---|
| [`Components/`](Components/README.md) | DevExpress grid wrappers, pallet components, notifications |
| [`Pages/`](Pages/README.md) | Routed pages: Login, ShippingsAdmin, OrdersAdmin, MeasuringIn/Out, StockTaking |
| [`Services/`](Services/README.md) | SignalR client, measurement service, form factor, loggers |
| [`Layout/`](Layout/README.md) | MainLayout with navigation, auto-login, toast notifications |
| [`Models/`](Models/README.md) | Date selector model for measuring pages |
| [`Extensions/`](Extensions/README.md) | DevExpress MessageBox/ConfirmBox helpers |
| [`Databases/`](Databases/README.md) | Client-side ConcurrentDictionary table cache |

## Key Files (Root)

- **`_Imports.razor`** — Global Blazor imports.
- **`Routes.razor`** — Route definitions.
- **`appsettings.json`** — Canonical configuration source for all three hosts (Web, Web.Client, MAUI). Edit ONLY here. Pull mechanism per host: see `docs/ARCHITECTURE.md` (in repo root) → "Shared Configuration".

## Target Framework

.NET 10.0 with AOT compilation and WASM IL stripping enabled.
