Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(plasma-new-hope): Popup added #819

Merged
merged 4 commits into from Oct 30, 2023

Conversation

kayman233
Copy link
Contributor

@kayman233 kayman233 commented Oct 25, 2023

Добавлен компонент Popup в plasma-new-hope, аналогичный PopupBase в других пакетах.

Появилась возможность выбирать frame через string - id элемента.

Изменен API для создания анимаций в этом компоненте. Теперь нужно использовать свойство withAnimation?: boolean(false по умолчанию), а для управления использовать классы через переменные endAnimationClass/endTransitionClass. Пример:

const StyledPopupAnimation = styled(PopupBase)`
    && > .${popupBaseRootClass} {
        animation: fadeIn 1s forwards;
    }

    &&.${endAnimationClass} > .${popupBaseRootClass} {
        animation: fadeOut 1s forwards;
    }

    @keyframes fadeIn {
        from {
            opacity: 0;
        }

        to {
            opacity: 1;
        }
    }

    @keyframes fadeOut {
        from {
            opacity: 1;
        }

        to {
            opacity: 0;
        }
    }
`;

fixes #589

⚡ Component performance testing

Result: 🟢 OK

⚡ Component performance testing

Result: 🟢 OK

🐤 Download canary assets:
borderRadius
borderRadius_default_react-native--canary.819.6696937935.ts
borderRadius_plasma_b2c_react-native--canary.819.6696937935.ts
borderRadius_plasma_web_react-native--canary.819.6696937935.ts
borderRadius_sberHealth_react-native--canary.819.6696937935.ts
borderRadius_sbermarket_business_react-native--canary.819.6696937935.ts
borderRadius_sbermarket_metro_react-native--canary.819.6696937935.ts
borderRadius_sbermarket_react-native--canary.819.6696937935.ts
borderRadius_sbermarket_selgros_react-native--canary.819.6696937935.ts
borderRadius_sbermarket_wlbusiness_react-native--canary.819.6696937935.ts
borderRadius_sberonline_react-native--canary.819.6696937935.ts
borderRadius_sberprime_react-native--canary.819.6696937935.ts
borderRadius_stylesSalute_react-native--canary.819.6696937935.ts
color
color_default_ios-swift--canary.819.6696937935.swift
color_default_kotlin--canary.819.6696937935.kt
color_default_react-native--canary.819.6696937935.ts
color_default_xml--canary.819.6696937935.xml
color_plasma_b2c_ios-swift--canary.819.6696937935.swift
color_plasma_b2c_kotlin--canary.819.6696937935.kt
color_plasma_b2c_react-native--canary.819.6696937935.ts
color_plasma_b2c_xml--canary.819.6696937935.xml
color_plasma_web_ios-swift--canary.819.6696937935.swift
color_plasma_web_kotlin--canary.819.6696937935.kt
color_plasma_web_react-native--canary.819.6696937935.ts
color_plasma_web_xml--canary.819.6696937935.xml
color_sberHealth_ios-swift--canary.819.6696937935.swift
color_sberHealth_kotlin--canary.819.6696937935.kt
color_sberHealth_react-native--canary.819.6696937935.ts
color_sberHealth_xml--canary.819.6696937935.xml
color_sbermarket_business_ios-swift--canary.819.6696937935.swift
color_sbermarket_business_kotlin--canary.819.6696937935.kt
color_sbermarket_business_react-native--canary.819.6696937935.ts
color_sbermarket_business_xml--canary.819.6696937935.xml
color_sbermarket_ios-swift--canary.819.6696937935.swift
color_sbermarket_kotlin--canary.819.6696937935.kt
color_sbermarket_metro_ios-swift--canary.819.6696937935.swift
color_sbermarket_metro_kotlin--canary.819.6696937935.kt
color_sbermarket_metro_react-native--canary.819.6696937935.ts
color_sbermarket_metro_xml--canary.819.6696937935.xml
color_sbermarket_react-native--canary.819.6696937935.ts
color_sbermarket_selgros_ios-swift--canary.819.6696937935.swift
color_sbermarket_selgros_kotlin--canary.819.6696937935.kt
color_sbermarket_selgros_react-native--canary.819.6696937935.ts
color_sbermarket_selgros_xml--canary.819.6696937935.xml
color_sbermarket_wlbusiness_ios-swift--canary.819.6696937935.swift
color_sbermarket_wlbusiness_kotlin--canary.819.6696937935.kt
color_sbermarket_wlbusiness_react-native--canary.819.6696937935.ts
color_sbermarket_wlbusiness_xml--canary.819.6696937935.xml
color_sbermarket_xml--canary.819.6696937935.xml
color_sberonline_ios-swift--canary.819.6696937935.swift
color_sberonline_kotlin--canary.819.6696937935.kt
color_sberonline_react-native--canary.819.6696937935.ts
color_sberonline_xml--canary.819.6696937935.xml
color_sberprime_ios-swift--canary.819.6696937935.swift
color_sberprime_kotlin--canary.819.6696937935.kt
color_sberprime_react-native--canary.819.6696937935.ts
color_sberprime_xml--canary.819.6696937935.xml
color_stylesSalute_ios-swift--canary.819.6696937935.swift
color_stylesSalute_kotlin--canary.819.6696937935.kt
color_stylesSalute_react-native--canary.819.6696937935.ts
color_stylesSalute_xml--canary.819.6696937935.xml
shadow
shadow_default_react-native--canary.819.6696937935.ts
shadow_plasma_b2c_react-native--canary.819.6696937935.ts
shadow_plasma_web_react-native--canary.819.6696937935.ts
shadow_sberHealth_react-native--canary.819.6696937935.ts
shadow_sbermarket_business_react-native--canary.819.6696937935.ts
shadow_sbermarket_metro_react-native--canary.819.6696937935.ts
shadow_sbermarket_react-native--canary.819.6696937935.ts
shadow_sbermarket_selgros_react-native--canary.819.6696937935.ts
shadow_sbermarket_wlbusiness_react-native--canary.819.6696937935.ts
shadow_sberonline_react-native--canary.819.6696937935.ts
shadow_sberprime_react-native--canary.819.6696937935.ts
shadow_stylesSalute_react-native--canary.819.6696937935.ts
spacing
spacing_default_react-native--canary.819.6696937935.ts
spacing_plasma_b2c_react-native--canary.819.6696937935.ts
spacing_plasma_web_react-native--canary.819.6696937935.ts
spacing_sberHealth_react-native--canary.819.6696937935.ts
spacing_sbermarket_business_react-native--canary.819.6696937935.ts
spacing_sbermarket_metro_react-native--canary.819.6696937935.ts
spacing_sbermarket_react-native--canary.819.6696937935.ts
spacing_sbermarket_selgros_react-native--canary.819.6696937935.ts
spacing_sbermarket_wlbusiness_react-native--canary.819.6696937935.ts
spacing_sberonline_react-native--canary.819.6696937935.ts
spacing_sberprime_react-native--canary.819.6696937935.ts
spacing_stylesSalute_react-native--canary.819.6696937935.ts
typo
typo_mage_ios-swift--canary.819.6696937935.swift
typo_mage_kotlin--canary.819.6696937935.kt
typo_mage_react-native--canary.819.6696937935.ts
typo_plasma_ios-swift--canary.819.6696937935.swift
typo_plasma_kotlin--canary.819.6696937935.kt
typo_plasma_react-native--canary.819.6696937935.ts
typo_ruler_ios-swift--canary.819.6696937935.swift
typo_ruler_kotlin--canary.819.6696937935.kt
typo_ruler_react-native--canary.819.6696937935.ts
typo_sage_ios-swift--canary.819.6696937935.swift
typo_sage_kotlin--canary.819.6696937935.kt
typo_sage_react-native--canary.819.6696937935.ts
typo_sbermarket_ios-swift--canary.819.6696937935.swift
typo_sbermarket_kotlin--canary.819.6696937935.kt
typo_sbermarket_react-native--canary.819.6696937935.ts
typo_soulmate_ios-swift--canary.819.6696937935.swift
typo_soulmate_kotlin--canary.819.6696937935.kt
typo_soulmate_react-native--canary.819.6696937935.ts
📦 Published PR as canary version: Canary Versions

✨ Test out this PR locally via:

npm install @salutejs/plasma-b2c@1.238.0-canary.819.6696937935.0
npm install @salutejs/plasma-core@1.136.0-canary.819.6696937935.0
npm install @salutejs/plasma-hope@1.237.0-canary.819.6696937935.0
npm install @salutejs/plasma-icons@1.167.0-canary.819.6696937935.0
npm install @salutejs/plasma-new-hope@0.7.0-canary.819.6696937935.0
npm install @salutejs/plasma-temple@1.185.0-canary.819.6696937935.0
npm install @salutejs/plasma-ui@1.217.0-canary.819.6696937935.0
npm install @salutejs/plasma-web@1.238.0-canary.819.6696937935.0
npm install @salutejs/plasma-sb-utils@0.134.0-canary.819.6696937935.0
# or 
yarn add @salutejs/plasma-b2c@1.238.0-canary.819.6696937935.0
yarn add @salutejs/plasma-core@1.136.0-canary.819.6696937935.0
yarn add @salutejs/plasma-hope@1.237.0-canary.819.6696937935.0
yarn add @salutejs/plasma-icons@1.167.0-canary.819.6696937935.0
yarn add @salutejs/plasma-new-hope@0.7.0-canary.819.6696937935.0
yarn add @salutejs/plasma-temple@1.185.0-canary.819.6696937935.0
yarn add @salutejs/plasma-ui@1.217.0-canary.819.6696937935.0
yarn add @salutejs/plasma-web@1.238.0-canary.819.6696937935.0
yarn add @salutejs/plasma-sb-utils@0.134.0-canary.819.6696937935.0

@Salute-Eva
Copy link
Contributor

Theme Builder app deployed!

http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-819/

@Salute-Eva
Copy link
Contributor

@kayman233 kayman233 force-pushed the kayman233/popup-new-hope.PLASMA-2068 branch from 069ec79 to 110d90e Compare October 25, 2023 20:10
@Salute-Eva
Copy link
Contributor

Theme Builder app deployed!

http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-819/

@kayman233 kayman233 marked this pull request as ready for review October 25, 2023 20:15
@Yeti-or
Copy link
Contributor

Yeti-or commented Oct 27, 2023

const StyledPopupAnimation = styled(PopupBase)`
    && > .${popupBaseRootClass} {
        animation: fadeIn 1s forwards;
    }

    &&.${endAnimationClass} > .${popupBaseRootClass} {
        animation: fadeOut 1s forwards;
    }

Почему тут PopupBase если компонент Popup
и почему нужно && два раза стили писать?

@@ -533,6 +534,10 @@ export { ElasticGrid }

export { ElasticGridProps }

export { endAnimationClass }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

мы не хотим это за назвать

  1. class => className
  2. добавить Popup в начале, или это будут стандартные классы для всех комопнент и анимаций?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

по первому не уверен, что надо добавлять Name
по второму, сложно сказать. В каких у нас еще компонентах есть похожий механизм анимации - при появлении/исчезновении. Вообще наверное ничего не мешает их сделать едиными
я бы еще других ребят послушал насчет этих идей

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

хм, ну по первому я сам везде писал просто class без Name, т.к. по сути это и так читается.
По второму пункту я согласен с Васей, и нужно указать принадлежность к компоненту, потому что мы пока действительно не знаем, общий ли это будет механизм

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А мы можем это вообще не делать API сейчас публичным?

animation: fadeOut 1s forwards;
}

@keyframes fadeIn {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

эти названия же глобальные?
мы беспокоимся по этому поводу?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а они внутри сторибука
тогда не паримся

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да, они по сути просто пользовательские

padding: 1rem;
`;

const StyledPopupAnimation = styled(Popup)`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сейчас это выглядит конечно как бойлерплейт который пользователям придется писать у себя =/

Завел issue на подумать про анимацию:
#822

сейчас предлагаю пока пожить с таким решением

@@ -76,40 +76,42 @@ export function App() {

## Подключение анимации

Подключение анимации аналогично тому, как это происходит в `PopupBase`(используя `usePopupAnimation`).
Подключение анимации аналогично тому, как это происходит в `PopupBase` - через свойство `withAnimation`(управление через `endAnimationClass`/`endTransitionClass`).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А у нас давно Modal в документации plasma-ui ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

когда Confirm добавили, я предлагал убрать, если не хочется, но кажется ответа так и не получил тогда :(

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

давай уберем таки, ну еще давай в понедельник поднимем вопрос еще раз про plasma-ui и модалки

export { PopupBase } from '@salutejs/plasma-hope';
export { usePopup } from '@salutejs/plasma-hope';
export { PopupBaseRoot } from '@salutejs/plasma-hope';
export { popupBaseRootClass, endAnimationClass, endTransitionClass } from '@salutejs/plasma-hope';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kayman233 А мы можем в один export все сделать? или в твоем подходе есть какая то логика?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да можно, просто мне казалось, что у нас во многих других компонентах подход по типу того, что в core из разных файлов эскпортит, а в условном hope аналогично, но только из одного пакета core(собственно как тут)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а можешь подсказать, где у нас так сделано? Просто мне тоже кажется, что смысла в подобном разделении особо нет

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

например в plasma-web: Card, Carousel, Notification, PaginationDots

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

спасиб. Есть ощущение, что это просто ошибка, которая возникла из-за реплейса, когда зависимости с plasma-core и внутренних компонент меняли тупо не глядя на "plasma-hope". Скорее всего там везде нужно это править

Screenshot 2023-10-27 at 18 21 42

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я что-то перестал понимаю где и что надо поправить, но вы это
issue заведите плиз )

и в целом у нас практики написания кода как будто так быстро меняются что мы не успеваем их нигде зафиксировать, ну либо просто нам по кайфу решать как писать код по ходу написания %)

@@ -2,4 +2,4 @@ export { ModalBase } from '@salutejs/plasma-hope';
export { useModal } from '@salutejs/plasma-hope';
export { ModalOverlay, modalBaseOverlayClass } from '@salutejs/plasma-hope';

export type { ModalBaseProps, ModalAnimationInfo, ModalBaseRootProps, ModalOverlayProps } from '@salutejs/plasma-hope';
export type { ModalBaseProps, ModalBaseRootProps, ModalOverlayProps } from '@salutejs/plasma-hope';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Для инфы]

@kayman233 @Yeti-or

Это конечно мало вероятно, но удалив ModalAnimationInfo мы "сломаем" обратную совместимость тем кто уже опирается на этот API. В общем это скорее для обратить наше внимание )

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да, сломаем. Но пока я сомневаюсь, что кто-то вообще уже использовал Modal/Popup у себя

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я согласен что ломать не хорошо, но это совсем свежее API, давайте поймем как нам избежать таких ситуаций в дальнейшем


export interface PopupInfo {
id: string;
info?: Object;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kayman233

Object лучше заменить на Record<string, never> || Record<string, any>

У нас даже есть правило Eslint и note - "// NOTE: If you want a type meaning "empty object", you probably want Record<string, never> instead"

     '@typescript-eslint/ban-types': [
            'warn',
            {
                extendDefaults: true,
                types: {
                    '{}': false,
                    object: false,
                },
            },
        ],

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

вот такой тип имеешь в виду? Record<string, never> | Record<string, any>

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не-не или то, или другое )

Мы когда с @neretin-trike обсуждали это сошлись что Record<string, any> будет норм.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

кажется лучше Record<string, any> использовать

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

поправил

* Класс корневого компонента PopupRoot: `popup-base-root`
*/
export const popupRootClass = 'popup-base-root';
export const endAnimationClass = 'popup-end-animation';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[На обсуждение]

Больно будет переименовать на animationEndClass?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

просто и так переменные на end начинались, поэтому оставил так. По-моему и так, и так нормально


export interface PopupHookArgs extends Pick<PopupProps, 'isOpen' | 'popupInfo' | 'withAnimation'> {
id: string;
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

кажется, что было проще не использовать здесь extends и Pick, т.к. по сути ты можешь указать эти поля, и кажется, что выглядело чуть более аккуратно. Но с другой стороны тогда потеряются комментарии и гибкость 🤔 Наверное хочется это обсудить в рамках формирования нашего style-guide

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я тоже за то что бы обсудить и понять когда/где лучше использовать ts utils, а когда старое доброе дублирование )

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ну вот да, я в целом такой подход использовал для комментов. Но в этом конкретном случае мб и не так нужно, так как наружу этот тип не выносим по идее

export const endAnimationClass = 'popup-end-animation';
export const endTransitionClass = 'popup-end-transition';

export const DEFAULT_Z_INDEX = 9000;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ещё хотелось бы по аналогии с hooks перенести это в utils/index.ts

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а где у нас итоговый пример по структуре папок/файлов?

@kayman233 kayman233 force-pushed the kayman233/popup-new-hope.PLASMA-2068 branch from 644f194 to 862f06d Compare October 30, 2023 07:24
@Salute-Eva
Copy link
Contributor

Theme Builder app deployed!

http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-819/

@kayman233 kayman233 force-pushed the kayman233/popup-new-hope.PLASMA-2068 branch from 862f06d to e6002e8 Compare October 30, 2023 07:27
@Salute-Eva
Copy link
Contributor

Theme Builder app deployed!

http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-819/

@Yeti-or
Copy link
Contributor

Yeti-or commented Oct 30, 2023

// Poppup.tokens.ts
export const classes = {
  startAnimation: 'foo',
  endAnimation: 'bar',
};

// Popup.index.ts
export { classes as popupClaseses };
// Modal.tsx
import { popupClasses } from '@salutejs/plasma-new-hope';

popupClasses.endAnimation

@Salute-Eva
Copy link
Contributor

Theme Builder app deployed!

http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-819/

@kayman233 kayman233 force-pushed the kayman233/popup-new-hope.PLASMA-2068 branch from c25ee87 to b634226 Compare October 30, 2023 18:07
@Salute-Eva
Copy link
Contributor

Theme Builder app deployed!

http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-819/

@kayman233 kayman233 added this pull request to the merge queue Oct 30, 2023
Merged via the queue into dev with commit 3cb3b0b Oct 30, 2023
24 checks passed
@kayman233 kayman233 deleted the kayman233/popup-new-hope.PLASMA-2068 branch October 30, 2023 19:11
@Salute-Eva
Copy link
Contributor

🚀 This PR is included in version: @salutejs/plasma-b2c@1.240.0-dev.0, @salutejs/plasma-core@1.137.0-dev.0, @salutejs/plasma-hope@1.238.0-dev.0, @salutejs/plasma-icons@1.168.0-dev.0, @salutejs/plasma-new-hope@0.9.0-dev.0, @salutejs/plasma-sb-utils@0.135.0-dev.0, @salutejs/plasma-temple-docs@0.177.0-dev.0, @salutejs/plasma-temple@1.186.0-dev.0, @salutejs/plasma-ui-docs@0.226.0-dev.0, @salutejs/plasma-ui@1.218.0-dev.0, @salutejs/plasma-web-docs@0.194.0-dev.0, @salutejs/plasma-web@1.240.0-dev.0, @salutejs/plasma-website@0.202.0-dev.0 🚀

@Salute-Eva
Copy link
Contributor

🚀 This PR is included in version: @salutejs/plasma-b2c@1.240.0-dev.0, @salutejs/plasma-core@1.137.0-dev.0, @salutejs/plasma-hope@1.238.0-dev.0, @salutejs/plasma-icons@1.168.0-dev.0, @salutejs/plasma-new-hope@0.9.0-dev.0, @salutejs/plasma-sb-utils@0.135.0-dev.0, @salutejs/plasma-temple-docs@0.177.0-dev.0, @salutejs/plasma-temple@1.186.0-dev.0, @salutejs/plasma-ui-docs@0.226.0-dev.0, @salutejs/plasma-ui@1.218.0-dev.0, @salutejs/plasma-web-docs@0.194.0-dev.0, @salutejs/plasma-web@1.240.0-dev.0, @salutejs/plasma-website@0.202.0-dev.0 🚀

1 similar comment
@Salute-Eva
Copy link
Contributor

🚀 This PR is included in version: @salutejs/plasma-b2c@1.240.0-dev.0, @salutejs/plasma-core@1.137.0-dev.0, @salutejs/plasma-hope@1.238.0-dev.0, @salutejs/plasma-icons@1.168.0-dev.0, @salutejs/plasma-new-hope@0.9.0-dev.0, @salutejs/plasma-sb-utils@0.135.0-dev.0, @salutejs/plasma-temple-docs@0.177.0-dev.0, @salutejs/plasma-temple@1.186.0-dev.0, @salutejs/plasma-ui-docs@0.226.0-dev.0, @salutejs/plasma-ui@1.218.0-dev.0, @salutejs/plasma-web-docs@0.194.0-dev.0, @salutejs/plasma-web@1.240.0-dev.0, @salutejs/plasma-website@0.202.0-dev.0 🚀

@Salute-Eva
Copy link
Contributor

🚀 This PR is included in version: @salutejs/plasma-b2c@1.240.0, @salutejs/plasma-core@1.137.0, @salutejs/plasma-hope@1.238.0, @salutejs/plasma-icons@1.168.0, @salutejs/plasma-new-hope@0.9.0, @salutejs/plasma-sb-utils@0.135.0, @salutejs/plasma-temple-docs@0.177.0, @salutejs/plasma-temple@1.186.0, @salutejs/plasma-tokens-native@1.14.0, @salutejs/plasma-ui-docs@0.226.0, @salutejs/plasma-ui@1.218.0, @salutejs/plasma-web-docs@0.194.0, @salutejs/plasma-web@1.240.0, @salutejs/plasma-website@0.202.0 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

plasma-web: Popup: redesign & refactoring ( PLASMA-2068 )
5 participants