User Interface medium complexity mobile
1
Dependencies
0
Dependents
1
Entities
0
Integrations

Description

A slot-based container widget that areas register their home widgets against at startup. Queries the module registry at mount time, filters to enabled areas for the current role, and renders the registered widget factories in declaration order. Ensures all slot containers enforce WCAG 2.2 AA minimum touch target sizing.

Feature: Role-Specific Home Dashboard

home-widget-slot-host

Sources & reasoning

The slot host decouples area modules from the home screen layout, allowing any area to register its widget without modifying home screen code. This is the mechanism that prevents hardcoded org branches - new modules register slots at startup and are mounted or skipped based purely on the enabled set.

No source references — this artifact was included based on reasoning alone (see above).

Responsibilities

  • Provide the registration surface for area home widget factories
  • Filter registered widgets to the current tenant enabled module set
  • Render widget slots for the active role in correct order
  • Enforce minimum 24x24px touch targets on all slot containers

Interfaces

registerSlot(areaId: String, role: Role, factory: WidgetFactory) → void
getSlotsForRole(role: Role, enabledModules: Set<String>) → List<Widget>
build(BuildContext) → Widget

Relationships

Dependencies (1)

Components this component depends on

Related Data Entities (1)

Data entities managed by this component