fix(ui): restore TopBar search + add notifications bell + theme to sidebar

Follow-up к MR !90 per user feedback iterations:

1) "в поиске по справочникам два крестика" — fixed в SearchInput:
   `type="search"` (native browser X) → `type="text"`. Custom onClear X
   остаётся единственным. Catalog input тоже type="text".

2) "блин два крестика было на топбар поиске а тут норм все. верни" —
   restore TopBar search input. Context-aware behavior сохранён:
   - На /dictionaries → live filter каталога через URL ?q=
   - На остальных routes → submit (Enter) → /search records search
   Single X confirmed by visual test.

3) "свитч темы можно тоже в профиль перенести" — ThemeSwitch переехал в
   Sidebar footer (рядом с RU/EN button). Right row в footer: lang button
   слева, theme switch (3 icons sun/moon/monitor) справа через ml-auto.

4) "руководство и версию оставить в топбар чтобы подсвечивать новинки" —
   Docs + VersionBadge stays in TopBar. Туда же добавлена
   NotificationsBell (placeholder Bell icon) — broadcast slot для
   webhook errors / draft reviews / system notices когда backend
   notifications stream появится.
This commit is contained in:
Zimin A.N.
2026-05-11 22:03:12 +03:00
parent d9df2fc359
commit 7e44df3493
4 changed files with 51 additions and 27 deletions
@@ -23,7 +23,10 @@ export const SearchInput = React.forwardRef<HTMLInputElement, SearchInputProps>(
/>
<Input
ref={ref}
type="search"
// type="text" вместо "search" — native browser X (Chrome/Safari)
// дублировал custom onClear X справа ("два крестика"). Custom X
// имеет правильный onClick handler и tracks state, native — нет.
type="text"
value={value}
className={cn('pl-8', hasValue && onClear && 'pr-8', className)}
{...props}