- New utility module `germanDecimal.js` with parseGermanDecimal(),
sanitizeDecimalInput(), and formatGermanDecimal()
- New DecimalInput component replacing type="number" inputs
- Enables users to enter comma as decimal separator (12,50)
- Applied to: hourlyWage, weeklyHours (ContractForm)
and billingRate, travelCostRate, travelCostPerKm,
mealAllowanceRate, minimumHours, and percent surcharges (FacilityForm)
- Display formatting updated in FacilityDetailPanel to show comma decimals
Both comma and dot are accepted as decimal separators. Backend
decimal types remain unchanged (already decimal?).
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>