MODIFY_CODE app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListScreen.kt Реализовать UI для экрана "Метки" (LabelsListScreen), заменив заглушку. Экран должен получать данные от LabelsListViewModel, отображать список меток в LazyColumn, а также содержать TopAppBar с кнопкой "назад" и FloatingActionButton для добавления новой метки, в полном соответствии со спецификацией screen_labels_list. tech_spec.txt project_structure.txt app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListViewModel.kt Полностью заменить содержимое файла `LabelsListScreen.kt`. Главная функция `LabelsListScreen` должна получать `LabelsListViewModel` через `hiltViewModel()`. Состояние UI должно собираться из `viewModel.uiState` с использованием `collectAsStateWithLifecycle`. Для отображения списка должен использоваться `LazyColumn`. Каждый элемент списка должен быть реализован в отдельном Composable `LabelListItem`. `TopAppBar` должен содержать `IconButton` для навигации назад. `Scaffold` должен содержать `FloatingActionButton`. Unit, onLabelClick: (String) -> Unit, onAddLabelClick: () -> Unit ) { // [ACTION] Сбор состояния из ViewModel val uiState by viewModel.uiState.collectAsStateWithLifecycle() LabelsListContent( labels = uiState.labels, onNavigateBack = onNavigateBack, onLabelClick = onLabelClick, onAddLabelClick = onAddLabelClick ) // [COHERENCE_CHECK_PASSED] Состояние передается в stateless composable. } // [END_FUNCTION] // [COMPOSABLE_FUNCTION] LabelsListContent (Stateless) /** * [CONTRACT] * Отображает UI для экрана "Метки". Этот Composable не имеет своего состояния (stateless). * * @param labels Список объектов `Label` для отображения. * @param onNavigateBack Лямбда для обработки действия "назад". * @param onLabelClick Лямбда для обработки нажатия на метку. * @param onAddLabelClick Лямбда для обработки нажатия на FAB. */ @OptIn(ExperimentalMaterial3Api::class) @Composable private fun LabelsListContent( labels: List Это задание заменяет весь контент файла `app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListScreen.kt`. Основная логика разделена на два Composable: `LabelsListScreen` (stateful) и `LabelsListContent` (stateless), что является хорошей практикой. Функция `LabelsListScreen` отвечает за взаимодействие с ViewModel. Функция `LabelsListContent` отвечает исключительно за отображение UI на основе переданных данных. Убедись, что все импорты, указанные в секции [IMPORTS], добавлены корректно. Особенно важны `hiltViewModel` и `collectAsStateWithLifecycle`.