- Убрали 100vw (потому что не на xs он ведет себя неправильно):
- Вынесли базовую реализацию DropBase и отдельные специфичные Menu, Info, Down в jsx
- Удалили lastMetrics
- Menu, Info и Down внутри себя работают через общий Base компонент, отличия в поведении описаны или в существующих параметрах, либо в behavior. behavior — это набор пресетов, таких как "размер стрелочки", "выравнивание", "оффсет для компонента" — т.е. мелкие стилевые и поведенческие отличия компонентов друг от друга
- Позиционирование между Menu, Down, Info стало более похожим, отличается только по behavior
- Избавились от customDistance — теперь за него также отвечает behavior
- Сделали правильное выравнивание для Menu и Down
- Починили анимашку у варинильных выпадающих элементов
- Ресетим позицию при ресайзе на ванильных реализациях
- Вынесли базовую реализацию и отдельные специфичные в классическом варианте
- Клик на кнопку слушается в нативных компонентах всегда — снимает \ ставит closeByClick метку
- Пример в доке с отложенным show компонента
- Класс, по которому при клике делаем hide для ванильных компонентов
- Menu разделен на два компонента Menu и Down
- Over переименован в Info
- Уницифированы API компонентов: Tip, Menu, Info, Down. Сейчас таблица выглядит вот так: Native:
| Функция | Down | Info | Menu | Tip |
|---|---|---|---|---|
| host | body | body | body | parent |
| layer | aboveContent | aboveContent | aboveContent | aboveContent |
| placement | bottomStart | bottomStart | bottomStart | top |
| html | + | + | + | + |
| closeByClickOutside | - | true | - | - |
| dataQa | bloko-drop-down | bloko-drop-info | bloko-drop-menu | bloko-drop-tip |
| onShow | () => {} | () => {} | () => {} | - |
| onClose | () => {} | () => {} | () => {} | - |
| flexible | false | false | false | - |
| onlySetPlacement | false | - | false | - |
| theme | - | dark | - | dark |
| showCloseButton | - | true | - | - |
| onExternalClose | - | - | - | () => {} |
React:
| Функция | Down | Info | Menu | Tip |
|---|---|---|---|---|
| host | body | body | body | parent |
| show | false | false | false | false (отличается поведение) |
| children | + | + | + | + |
| layer | aboveContent | aboveContent | aboveContent | aboveContent |
| placement | bottomStart | bottomStart | bottomStart | top |
| render | + | + | + | + |
| closeByClickOutside | - | true | - | - |
| dataQa | bloko-drop-down | bloko-drop-info | bloko-drop-menu | bloko-drop-tip |
| onClose | () => {} | () => {} | () => {} | - |
| flexible | false | false | false | - |
| onlySetPlacement | false | - | false | - |
| theme | - | dark | - | dark |
| showCloseButton | - | true | - | - |
| onExternalClose | - | - | - | () => {} |
- onExternalClose добавлен для классической реализации Tip
- Параметр content удален из Tip
- closeByClickOutside удален у Menu и Down (всегда true)
- Добавлен dataQa для Info
- Поправлены data-qa у компонентов
- closeButtonDataQa удален
- closeByClickOutside параметр удален у Tip (всегда false)
- Ко всем миксинам, переменным, так или иначе в стилях завязанные на дроп элементы добавлен префикс bloko-drop
- Добавили крестик для Down компонента
- Заменили tooltip на tip в jsx tags
- Создали setupTests для lux тестов. jest тесты при появлении warnings будут падать.