- Убрано локальное состояние customerValue, теперь значение берётся напрямую из parsed.value
- Убран лишний useEffect, который мог сбрасывать ввод при глобальном редактировании
- Состояние mode продолжает синхронизироваться с value prop
- ContractNumberField: mode и customerValue теперь синхронизируются с value prop через useEffect
- TaskDetail: date/datetime input используют w-auto, чтобы чекбокс автопролонгации шёл в одну строку
- ContractNumberField compact: переключатель, select юрлица и input/preview в одну строку
- TaskDetail: date/datetime с автопролонгацией — input и чекбокс в одну строку
- Увеличена max-width обёртки contract-number до 640px
- FieldOverlay: border-input, shadow-sm, убран overflow-hidden по умолчанию
- TaskDetail: input-редакторы h-7 leading-6, для contract-number fitOverlay=false
- ContractNumberField: добавлен compact-режим, подполя не обрезаются
- Создание задачи оставлено с вертикальным layout
- number-поля теперь рендерятся как text + inputMode=numeric,
чтобы браузер не округлял значения через input type=number
- пробелы при вставке в number-поля удаляются
- бэкенд нормализует значения number-полей в строку перед сохранением
- добавлен хелпер normalizeFieldValueForStorage
Closes: искажение расчётного счёта и других длинных числовых полей