v0.32.0
tagged this
24 Aug 12:32
Все модальные слои сидели на одном `--gr-z-modal`, поэтому «кто выше» решал порядок узлов в портале. А его задаёт создание компонента, не открытие: `<teleport>` резервирует место сразу. Стек при этом считал верхним последний открытый и по нему ставил `inert` — сверху оказывалось окно, которое не отвечает, а отвечающий диалог лежал под ним. Теперь стек выдаёт слою его глубину, слой рисуется на `calc(var(--gr-z-modal) + depth)`. Пересчёт идёт той же функцией, что ставит `inert`, так что расходиться двум порядкам нечем. Закрытое окно держит глубину, пока живёт в DOM: иначе оно ныряет под соседнее во время leave-анимации. Формула floating-панелей переехала из `useFloating` к стеку — это знание про весь стек, а не про якорные панели. Витрина получила демо с лесенкой окон и диалогом поверх них; оно же фикстура для e2e. Ядро — 0.32.0, диапазоны потребителей подняты тем же коммитом.