Веб-разработка. Разработка с нуля. Пожелания и особенности: 1. Цель Создать самодостаточный React-компонент, представляющий собой дропдаун-слайсер (фильтр по значениям, например по году), который в дальнейшем будет использоваться как часть кастомного плагина визуализации. Компонент должен быть интерактивным, универсальным и легко интегрируемым в проект. 2. Требования к функционалу 2.1 Основное назначение Компонент должен позволять пользователю выбирать одно или несколько значений (например, год или диапазон лет) из выпадающего списка. Выбранные значения должны вызываться через callback(onChange) и возвращать данные в формате, пригодном для фильтрации набора данных. 2.2 Пример поведения По умолчанию выбраны все возможные варианты При клике открывается выпадающий список с возможными значениями (В зависимости от полученных данных или жесткая конфигурация при добавлении компонента в дэшборд) Возможность выбрать одно или несколько значний Поддержка клавиатуры и простая навигация 3. Технические требования React 18+ TypeScript Ant Design (желательно) или Headless UI / Material UI Компонент должен быть написан в виде отдельного модуля (npm-пакета / каталога), без привязки к конкретному проекту. Без использования Redux, MobX и др. — только props и локальное состояние. 4. UI / UX Использовать Ant Design или кастомный dropdown. Добавить лёгкий стиль border-radius, padding, hover, focus и, опционально, возможность настройки при добавлении в дэшборд. Компонент должен быть визуально готов к использованию на светлой и тёмной теме. Поддержка адаптивности (на мобильных устройствах — dropdown должен быть кликабелен и не обрезаться). 5. Результат работы Необходимо предоставить: 1. Исходный код компонента(можно в виде GitHub репозитория). 2. Пример использования. 3. Документацию в README.md: 3.1. описание props 3.2. пример интеграции 3.3. пример передачи данных и получения фильтра 6. Не входит в задачу Сборка плагина и добавление в проект Работа с backend API или SQL-запросами 7. Ссылки и материалы для ориентира Компоненты: Ant Design Select - https://ant.design/components/select/ Ant Design Dropdown - https://ant.design/components/dropdown/ Headless UI Combobox - https://headlessui.com/react/combobox 8. Требования к качеству Код чистый, читаемый, с типизацией Легко интегрируется в проект Поддерживает React Strict Mode Отсутствие внешних зависимостей, кроме(опционально) antd.