### История изменений

#### 3.10.13 `22.04.2021`
- [ISL-9704](https://st.yandex-team.ru/ISL-9704): @yandex-lego/components: Удалить старую документацию [[#1751023](https://a.yandex-team.ru/review/1751023)]
  - 📚 docs: update readme [[56fc67](https://github.yandex-team.ru/search-interfaces/frontend/commit/56fc67984ff681c3ade222be6c306d95b556dc46)]


#### 3.10.5 `12.04.2021`
- [ISL-9805](https://st.yandex-team.ru/ISL-9805): Раздел с известными проблемами/задачами для каждого компонента [[#1732584](https://a.yandex-team.ru/review/1732584)]
  - 📚 docs(lego-components): update mdx for all components [[66c5fd](https://github.yandex-team.ru/search-interfaces/frontend/commit/66c5fd12bba1e1a3ec46d6f8e6717844ba17b40e)]


#### 3.9.0 `25.03.2021`
- [ISL-9581](https://st.yandex-team.ru/ISL-9581): Popup.ts: Добавить target=position для попапов [собрать примеры] [[#22084](https://github.yandex-team.ru/search-interfaces/frontend/pull/22084)]
  - 📚 docs(lego-components): update Popup docs [[a4d4c2](https://github.yandex-team.ru/search-interfaces/frontend/commit/a4d4c2f884605b27e6922366c58eeb109687f7df)]
  - 🛠 fix(lego-components): support virtual element type in Popup [[646f4d](https://github.yandex-team.ru/search-interfaces/frontend/commit/646f4d9c576431bf9bffcb687e84464afd0871f2)]

<details>
    <summary>Пояснения к релизу</summary>

## Modal

В текущем релизе были исправлены вещи, которые ломали обратную совместимость для компонента `Modal`:

- возвращение `z-index` на `.Modal`
- исправление типа `innerRef` с `RefObject`, обратно на `Ref`

## Popup

Было исправлено поведение закрытия для компонента `Popup` - теперь он закрывается по событию `mousedown` при клике вне его содержимого.

## useVirtualElementRef

Добавлен новый Реакт-хук, который позволяет создавать виртуальный элемент. Как правило используется с попапом и нужен для создания контекстных меню.

**Пример использования**

```tsx
import { useVirtualElementRef } from '@yandex-lego/components/usePopper';

const Example = () => {
    // `right` и `bottom` по-умолчанию будут равны `left` и `top` соответственно
    const anchorRef = useVirtualElementRef({ rect: { left: 50, top: 50 } });

    return <Popup target="anchor" anchor={anchorRef} />
}
```
</details>
<br />

#### 3.8.0 `22.03.2021`
- [ISL-9741](https://st.yandex-team.ru/ISL-9741): useOverlay.ts: Перенести логику из LayerManager в отдельный реакт-хук [[#21450](https://github.yandex-team.ru/search-interfaces/frontend/pull/21450)]
  - 🚀 feat(lego-components): use useOverlay hook instead of LayerManager [[12e596](https://github.yandex-team.ru/search-interfaces/frontend/commit/12e5967f6ebe25d6fecd078d3ef62fadbeb4f553)]

<details>
    <summary>Пояснения к релизу</summary>

### LayerManager

Компонент `LayerManager` помечен как устаревший и будет удален в следующем мажорном релизе. Вместо него теперь следует использовать React-хук `useOverlay`.

### useOverlay

Добавлен новый React-хук `useOverlay`, который содержит в себе логику, которая была в компоненте `LayerManager`. Благодаря этому в дереве компонентов `React` теперь не содержится лишняя информация в виде компонента `LayerManager`, а использование данного функционала стало проще.

**Пример использования**

```tsx
import React, { useRef, useState, useMemo } from 'react';
import { useOverlay, OnClose } from '@yandex-lego/components/useOverlay';

export interface ModalProps {
  visible?: boolean;
  onClose?: OnClose;
}

const Modal: FC<ModalProps> = (props) => {
  const { visible, onClose, children } = props;
  const hostRef = useRef(null);

  useOverlay({ visible, onClose, essentialRefs: [hostRef] });

  return <div ref={hostRef}>{children}</div>;
}
```

Также были добавлены некоторые оптимизации подписок на DOM-события. Раньше каждый экземпляр подписывался на глобальные события документа.
Теперь подписка происходит в момент, когда в стек добавляется первый слой, а отписка - когда удаляется последний слой из стека.

</details>
<br />

#### 3.5.0 `11.03.2021`
- [ISL-9561](https://st.yandex-team.ru/ISL-9561): Portal.ts: Реализовать компонент [[#20772](https://github.yandex-team.ru/search-interfaces/frontend/pull/20772)]
  - 🚀 feat: use Portal for Popup and Modal [[2325c8](https://github.yandex-team.ru/search-interfaces/frontend/commit/2325c81f847c8b65e29ddc1dbe8dd5218e09b548)]


#### 3.3.5 `02.03.2021`
- TRIVIAL: Исправить пример в документации для Popup [[#20902](https://github.yandex-team.ru/search-interfaces/frontend/pull/20902)]
  - 📚 docs(lego-components): fix popup example with boundary [[d87e18](https://github.yandex-team.ru/search-interfaces/frontend/commit/d87e18f9cb84bbd7d781626bb33af7380fa1406c)]


#### 3.3.0 `27.02.2021`
- [ISL-9636](https://st.yandex-team.ru/ISL-9636): Popup.ts: Дать возможность показывать попап в overflow контейнере [[#20607](https://github.yandex-team.ru/search-interfaces/frontend/pull/20607)]
  - 📚 docs(lego-components): update popup docs [[8b6828](https://github.yandex-team.ru/search-interfaces/frontend/commit/8b68281e7b1e3743e7495271d3c92206f4e58fba)]
  - 🚀 feat(lego-components): support boundary option in popup [[830698](https://github.yandex-team.ru/search-interfaces/frontend/commit/830698c106a6198251d5abfdba79285edd8f3a17)]


#### 3.2.3 `20.02.2021`
- [ISL-9668](https://st.yandex-team.ru/ISL-9668): Popup.ts: Исправить проблемы хвостика [[#20304](https://github.yandex-team.ru/search-interfaces/frontend/pull/20304)]
  - 🛠 fix: disable pointer events for popul tail [[ecb47d](https://github.yandex-team.ru/search-interfaces/frontend/commit/ecb47d308b5a2bfe19b28b2bba9ef53a0c1bea99)]


#### 3.2.1 `19.02.2021`
- [ISL-9670](https://st.yandex-team.ru/ISL-9670): Popup.ts: не работает motionless в target=anchor [[#20415](https://github.yandex-team.ru/search-interfaces/frontend/pull/20415)]
  - 🛠 fix(lego-components): fix motionless behavior in popup [[99f082](https://github.yandex-team.ru/search-interfaces/frontend/commit/99f08262ba843a4a532784e434ad70634cb18586)]
