diff --git a/packages/cfd/src/Components/cfd-account-card.tsx b/packages/cfd/src/Components/cfd-account-card.tsx index 477e4a303c66..dbd392075556 100644 --- a/packages/cfd/src/Components/cfd-account-card.tsx +++ b/packages/cfd/src/Components/cfd-account-card.tsx @@ -175,17 +175,18 @@ const CFDAccountCardComponent = ({ is_eu, isEligibleForMoreDemoMt5Svg, isEligibleForMoreRealMt5, - platform, - title, - type, - specs, - onSelectAccount, onClickFund, onPasswordManager, + onSelectAccount, + platform, + setIsAcuityModalOpen, + setMT5TradeAccount, + specs, + title, toggleAccountsDialog, toggleMT5TradeModal, toggleShouldShowRealAccountsList, - setMT5TradeAccount, + type, }: TCFDAccountCard) => { const existing_data = existing_accounts_data?.length ? existing_accounts_data?.[0] : existing_accounts_data; const all_svg_acc: DetailsOfEachMT5Loginid[] = []; @@ -329,6 +330,22 @@ const CFDAccountCardComponent = ({ )} + {platform === CFD_PLATFORMS.MT5 && type.type === 'financial' && !isMobile() && is_logged_in && ( + + )} {existing_data &&
}
@@ -676,10 +693,11 @@ const CFDAccountCardComponent = ({ ); }; -const CFDAccountCard = connect(({ modules: { cfd }, client }: RootStore) => ({ +const CFDAccountCard = connect(({ modules: { cfd }, client, ui }: RootStore) => ({ dxtrade_tokens: cfd.dxtrade_tokens, isEligibleForMoreDemoMt5Svg: client.isEligibleForMoreDemoMt5Svg, isEligibleForMoreRealMt5: client.isEligibleForMoreRealMt5, + setIsAcuityModalOpen: ui.setIsAcuityModalOpen, setMT5TradeAccount: cfd.setMT5TradeAccount, }))(CFDAccountCardComponent); diff --git a/packages/cfd/src/Components/cfd-mt5-demo-account-display.tsx b/packages/cfd/src/Components/cfd-mt5-demo-account-display.tsx index 8f9bc6c06437..061c7cb8f0ea 100644 --- a/packages/cfd/src/Components/cfd-mt5-demo-account-display.tsx +++ b/packages/cfd/src/Components/cfd-mt5-demo-account-display.tsx @@ -107,7 +107,7 @@ const CFDMT5DemoAccountDisplay = ({ }, [is_logged_in, is_eu, is_eu_country, residence, platform]); return ( -
+ {is_loading ? ( ) : ( @@ -176,7 +176,7 @@ const CFDMT5DemoAccountDisplay = ({ )}
)} -
+ ); }; diff --git a/packages/cfd/src/Components/cfd-real-account-display.tsx b/packages/cfd/src/Components/cfd-real-account-display.tsx index 527fa67192f3..958595b13ad9 100644 --- a/packages/cfd/src/Components/cfd-real-account-display.tsx +++ b/packages/cfd/src/Components/cfd-real-account-display.tsx @@ -61,6 +61,7 @@ type TCFDRealAccountDisplayProps = { account_status?: object; openDerivRealAccountNeededModal: () => void; should_enable_add_button?: boolean; + setIsAcuityModalOpen: (value: boolean) => void; }; const CFDRealAccountDisplay = ({ @@ -88,6 +89,7 @@ const CFDRealAccountDisplay = ({ residence, openDerivRealAccountNeededModal, should_enable_add_button, + setIsAcuityModalOpen, }: TCFDRealAccountDisplayProps) => { const is_eu_user = (is_logged_in && is_eu) || (!is_logged_in && is_eu_country); @@ -231,6 +233,7 @@ const CFDRealAccountDisplay = ({ toggleShouldShowRealAccountsList={toggleShouldShowRealAccountsList} toggleAccountsDialog={toggleAccountsDialog} toggleMT5TradeModal={toggleMT5TradeModal} + setIsAcuityModalOpen={setIsAcuityModalOpen} /> ); diff --git a/packages/cfd/src/Components/props.types.ts b/packages/cfd/src/Components/props.types.ts index d2f0d6d443cb..ec638a4951f2 100644 --- a/packages/cfd/src/Components/props.types.ts +++ b/packages/cfd/src/Components/props.types.ts @@ -108,6 +108,7 @@ export type TCFDAccountCard = { toggleMT5TradeModal: (arg?: boolean) => void; toggleShouldShowRealAccountsList?: (arg?: boolean) => void; setMT5TradeAccount: (arg: any) => void; + setIsAcuityModalOpen: (value: boolean) => void; }; export type TTradingPlatformAccounts = { diff --git a/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx b/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx index 377092a28232..88e110edcb48 100644 --- a/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx +++ b/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx @@ -142,6 +142,7 @@ describe('', () => { onUnmount: jest.fn(), openAccountNeededModal: jest.fn(), openDerivRealAccountNeededModal: jest.fn(), + refreshNotifications: jest.fn(), openPasswordModal: jest.fn(), openTopUpModal: jest.fn(), platform: CFD_PLATFORMS.MT5, @@ -179,6 +180,7 @@ describe('', () => { ], setAccountType: jest.fn(), setCFDPasswordResetModal: jest.fn(), + setIsAcuityModalOpen: jest.fn(), setCurrentAccount: jest.fn(), standpoint: { financial_company: 'svg', diff --git a/packages/cfd/src/Containers/cfd-dashboard.tsx b/packages/cfd/src/Containers/cfd-dashboard.tsx index 29bded5b40d6..e3e4287d3161 100644 --- a/packages/cfd/src/Containers/cfd-dashboard.tsx +++ b/packages/cfd/src/Containers/cfd-dashboard.tsx @@ -173,6 +173,8 @@ export type TCFDDashboardProps = RouteComponentProps & { getRealSyntheticAccountsExistingData: DetailsOfEachMT5Loginid[] | undefined ) => void; openDerivRealAccountNeededModal: () => void; + setIsAcuityModalOpen: (value: boolean) => void; + refreshNotifications: () => void; }; const CFDDashboard = (props: TCFDDashboardProps) => { @@ -200,6 +202,7 @@ const CFDDashboard = (props: TCFDDashboardProps) => { React.useEffect(() => { updateActiveIndex(getIndexToSet()); openResetPassword(); + props.refreshNotifications(); props.onMount(); return () => { props.onUnmount(); @@ -393,6 +396,7 @@ const CFDDashboard = (props: TCFDDashboardProps) => { getRealSyntheticAccountsExistingData, getRealFinancialAccountsExistingData, openDerivRealAccountNeededModal, + setIsAcuityModalOpen, } = props; const should_show_missing_real_account = @@ -524,6 +528,7 @@ const CFDDashboard = (props: TCFDDashboardProps) => { residence={residence} openDerivRealAccountNeededModal={openDerivRealAccountNeededModal} should_enable_add_button={should_enable_add_button} + setIsAcuityModalOpen={setIsAcuityModalOpen} />
@@ -668,7 +673,7 @@ const CFDDashboard = (props: TCFDDashboardProps) => { }; export default withRouter( - connect(({ client, modules, ui }: RootStore) => ({ + connect(({ client, modules, notifications, ui }: RootStore) => ({ beginRealSignupForMt5: modules.cfd.beginRealSignupForMt5, checkShouldOpenAccount: modules.cfd.checkShouldOpenAccount, country: client.account_settings.residence, @@ -716,6 +721,7 @@ export default withRouter( NotificationMessages: ui.notification_messages_ui, onMount: modules.cfd.onMount, onUnmount: modules.cfd.onUnmount, + refreshNotifications: notifications.refreshNotifications, toggleAccountsDialog: ui.toggleAccountsDialog, toggleShouldShowRealAccountsList: ui.toggleShouldShowRealAccountsList, upgradeable_landing_companies: client.upgradeable_landing_companies, @@ -728,5 +734,6 @@ export default withRouter( dxtrade_verification_code: client.verification_code.trading_platform_dxtrade_password_reset, mt5_status_server: client.website_status.mt5_status, openDerivRealAccountNeededModal: ui.openDerivRealAccountNeededModal, + setIsAcuityModalOpen: ui.setIsAcuityModalOpen, }))(CFDDashboard) ); diff --git a/packages/cfd/src/sass/cfd-dashboard.scss b/packages/cfd/src/sass/cfd-dashboard.scss index a384c2973a68..81fa7740f26f 100644 --- a/packages/cfd/src/sass/cfd-dashboard.scss +++ b/packages/cfd/src/sass/cfd-dashboard.scss @@ -120,6 +120,41 @@ } } + &__social-banner { + width: 100%; + background-color: var(--general-section-1); + opacity: 95%; + top: 0; + position: absolute; + z-index: 1; + + &--close-icon { + position: absolute; + top: 1.6rem; + right: 1.6rem; + } + + &--wrapper { + display: flex; + flex-direction: row; + gap: 2.4rem; + align-items: center; + justify-content: center; + padding: 0.8rem 0; + margin-inline: 2.4rem; + + &__image { + width: 16rem; + height: 12rem; + } + + &__button { + float: right; + padding: 0.8rem; + } + } + } + &__download-container { border-top: 2px solid var(--general-section-1); padding-top: 2rem; @@ -440,7 +475,7 @@ grid-gap: 2.4rem; justify-content: center; padding-top: 2.4em; - height: 100%; + height: fit-content; @include mobile { display: flex; @@ -451,12 +486,6 @@ } } -.cfd-demo-accounts-display .cfd-account-card__wrapper { - @include desktop { - height: auto; - } -} - .cfd-jurisdiction-card--synthetic, .cfd-jurisdiction-card--financial { border: solid 1px var(--border-normal); @@ -698,11 +727,10 @@ display: grid; grid-template-rows: 1fr; justify-content: center; - height: 100%; + height: fit-content; @include mobile { grid-template-rows: 1fr; - height: fit-content; &:not(:last-child) { margin-bottom: 2.4rem; @@ -1057,6 +1085,22 @@ } } } + + &__acuity-banner { + background: var(--general-section-1); + height: 3.4rem; + border-radius: 0.8rem; + margin: 1.6rem; + + &--wrapper { + display: flex; + flex-direction: row; + align-items: center; + gap: 1.6rem; + padding: 0.8rem 2.65rem; + } + } + &__divider { width: calc(100% - 3.2rem); margin-left: 1.6rem; diff --git a/packages/components/src/components/icon/common/ic-close-dark.svg b/packages/components/src/components/icon/common/ic-close-dark.svg new file mode 100644 index 000000000000..a16cf2171fba --- /dev/null +++ b/packages/components/src/components/icon/common/ic-close-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/icons.js b/packages/components/src/components/icon/icons.js index de1b602f4513..b5771da99a30 100644 --- a/packages/components/src/components/icon/icons.js +++ b/packages/components/src/components/icon/icons.js @@ -273,6 +273,7 @@ import './common/ic-clock-outline.svg'; import './common/ic-clock.svg'; import './common/ic-close-circle-red.svg'; import './common/ic-close-circle.svg'; +import './common/ic-close-dark.svg'; import './common/ic-close-light.svg'; import './common/ic-cloud-upload.svg'; import './common/ic-confirm-details.svg'; @@ -537,6 +538,7 @@ import './flag/ic-flag-uk.svg'; import './flag/ic-flag-vi.svg'; import './flag/ic-flag-zh-cn.svg'; import './flag/ic-flag-zh-tw.svg'; +import './mt5/ic-mt5-acuity.svg'; import './mt5/ic-mt5-cfd-platform.svg'; import './mt5/ic-mt5-cfds.svg'; import './mt5/ic-mt5-derived.svg'; diff --git a/packages/components/src/components/icon/mt5/ic-mt5-acuity.svg b/packages/components/src/components/icon/mt5/ic-mt5-acuity.svg new file mode 100644 index 000000000000..d0ee8977d8a0 --- /dev/null +++ b/packages/components/src/components/icon/mt5/ic-mt5-acuity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/stories/icon/icons.js b/packages/components/stories/icon/icons.js index 909eeb8ed34e..197b03b8388e 100644 --- a/packages/components/stories/icon/icons.js +++ b/packages/components/stories/icon/icons.js @@ -281,6 +281,7 @@ export const icons = 'IcClock', 'IcCloseCircleRed', 'IcCloseCircle', + 'IcCloseDark', 'IcCloseLight', 'IcCloudUpload', 'IcConfirmDetails', @@ -555,6 +556,7 @@ export const icons = 'IcFlagZhTw', ], 'mt5': [ + 'IcMt5Acuity', 'IcMt5CfdPlatform', 'IcMt5Cfds', 'IcMt5Derived', diff --git a/packages/core/src/App/Components/Elements/NotificationMessage/notification-banner.jsx b/packages/core/src/App/Components/Elements/NotificationMessage/notification-banner.jsx index a3a97ebbddc0..99249727d8ac 100644 --- a/packages/core/src/App/Components/Elements/NotificationMessage/notification-banner.jsx +++ b/packages/core/src/App/Components/Elements/NotificationMessage/notification-banner.jsx @@ -4,7 +4,17 @@ import classNames from 'classnames'; import { isMobile } from '@deriv/shared'; import { Button, Icon, Text } from '@deriv/components'; -const NotificationBanner = ({ className, header, message, primary_btn, secondary_btn, img_src, img_alt, onClose }) => ( +const NotificationBanner = ({ + className, + header, + message, + primary_btn, + secondary_btn, + img_src, + img_alt, + onClose, + icon, +}) => (
{img_alt} - +
); @@ -52,6 +62,7 @@ NotificationBanner.propTypes = { text: PropTypes.string, onClick: PropTypes.func, }), + icon: PropTypes.string, }; export default NotificationBanner; diff --git a/packages/core/src/App/Components/Elements/NotificationMessage/notification.jsx b/packages/core/src/App/Components/Elements/NotificationMessage/notification.jsx index ad71aebc7520..8d126d74281e 100644 --- a/packages/core/src/App/Components/Elements/NotificationMessage/notification.jsx +++ b/packages/core/src/App/Components/Elements/NotificationMessage/notification.jsx @@ -42,6 +42,7 @@ const Notification = ({ data, removeNotificationMessage }) => { img_src={data.img_src} img_alt={data.img_alt} onClose={destroy} + icon={data.icon} /> ); case 'trustpilot': @@ -176,6 +177,7 @@ Notification.propTypes = { img_src: PropTypes.string, is_auto_close: PropTypes.bool, key: PropTypes.string, + icon: PropTypes.string, message: PropTypes.oneOfType([PropTypes.node, PropTypes.string]), message_popup: PropTypes.string, primary_btn: PropTypes.object, diff --git a/packages/core/src/App/Containers/AcuityDownloadModal/acuity-download-modal.tsx b/packages/core/src/App/Containers/AcuityDownloadModal/acuity-download-modal.tsx new file mode 100644 index 000000000000..8386f9613d7f --- /dev/null +++ b/packages/core/src/App/Containers/AcuityDownloadModal/acuity-download-modal.tsx @@ -0,0 +1,71 @@ +import React from 'react'; +import RootStore from 'Stores/index'; +import { Button, Modal, Text, Icon } from '@deriv/components'; +import { Localize, localize } from '@deriv/translations'; +import { getUrlBase } from '@deriv/shared'; +import { connect } from 'Stores/connect'; +import 'Sass/app/modules/acuity-download.scss'; + +type TAcuityDownloadModal = { + is_acuity_modal_open: boolean; + is_eu: boolean; + setIsAcuityModalOpen: (value: boolean) => void; +}; + +const AcuityDownloadModal = ({ is_acuity_modal_open, is_eu, setIsAcuityModalOpen }: TAcuityDownloadModal) => { + const closeModal = () => setIsAcuityModalOpen(false); + + const openDownloadLink = () => { + window.open( + is_eu ? 'https://deriv.link/3hgxv2m' : 'https://deriv.link/3WhYxq1', + '_blank', + 'noopener,noreferrer' + ); + closeModal(); + }; + + return ( + +
+
+ +
+ + + +
+ + , ]} + /> + +
+
+ + + + +
+
+
+
+
+ ); +}; + +export default connect(({ client, ui }: RootStore) => ({ + is_acuity_modal_open: ui.is_acuity_modal_open, + is_eu: client.is_eu, + setIsAcuityModalOpen: ui.setIsAcuityModalOpen, +}))(AcuityDownloadModal); diff --git a/packages/core/src/App/Containers/AcuityDownloadModal/index.js b/packages/core/src/App/Containers/AcuityDownloadModal/index.js new file mode 100644 index 000000000000..0f46c6f0f364 --- /dev/null +++ b/packages/core/src/App/Containers/AcuityDownloadModal/index.js @@ -0,0 +1,3 @@ +import ActuityDownloadModal from './acuity-download-modal'; + +export default ActuityDownloadModal; diff --git a/packages/core/src/App/Containers/Modals/app-modals.jsx b/packages/core/src/App/Containers/Modals/app-modals.jsx index 621164058631..393e9f162208 100644 --- a/packages/core/src/App/Containers/Modals/app-modals.jsx +++ b/packages/core/src/App/Containers/Modals/app-modals.jsx @@ -9,6 +9,9 @@ import { moduleLoader } from '@deriv/shared'; const AccountSignupModal = React.lazy(() => moduleLoader(() => import(/* webpackChunkName: "account-signup-modal" */ '../AccountSignupModal')) ); +const AcuityDownloadModal = React.lazy(() => + import(/* webpackChunkName: "acuity-download-modal" */ '../AcuityDownloadModal') +); const CloseMxMltAccountModal = React.lazy(() => moduleLoader(() => import(/* webpackChunkName: "close-mx-mlt-account-modal" */ '../CloseMxMltAccountModal')) ); @@ -46,6 +49,7 @@ const WarningScamMessageModal = React.lazy(() => const AppModals = ({ is_account_needed_modal_on, + is_acuity_modal_open, is_welcome_modal_visible, is_reality_check_visible, is_set_residence_modal_visible, @@ -85,6 +89,11 @@ const AppModals = ({ } break; } + + if (is_acuity_modal_open) { + ComponentToLoad = ; + } + if (is_close_mx_mlt_account_modal_visible) { ComponentToLoad = ; } @@ -123,6 +132,7 @@ const AppModals = ({ export default connect(({ client, ui }) => ({ is_welcome_modal_visible: ui.is_welcome_modal_visible, is_account_needed_modal_on: ui.is_account_needed_modal_on, + is_acuity_modal_open: ui.is_acuity_modal_open, is_close_mx_mlt_account_modal_visible: ui.is_close_mx_mlt_account_modal_visible, is_close_uk_account_modal_visible: ui.is_close_uk_account_modal_visible, is_set_residence_modal_visible: ui.is_set_residence_modal_visible, diff --git a/packages/core/src/Stores/notification-store.js b/packages/core/src/Stores/notification-store.js index c93f1de486cb..fa1a42f49991 100644 --- a/packages/core/src/Stores/notification-store.js +++ b/packages/core/src/Stores/notification-store.js @@ -258,9 +258,13 @@ export default class NotificationStore extends BaseStore { const has_trustpilot = LocalStore.getObject('notification_messages')[loginid]?.includes( this.client_notifications.trustpilot.key ); + const has_acuity_mt5_download = LocalStore.getObject('notification_messages')[loginid]?.includes( + this.client_notifications.acuity_mt5_download.key + ); let has_missing_required_field; if (is_logged_in) { + if (isEmptyObject(account_status)) return; const { authentication: { document, identity, needs_verification }, status, @@ -304,6 +308,13 @@ export default class NotificationStore extends BaseStore { ) { this.addNotificationMessage(this.client_notifications.close_mx_mlt_account); } + + // Acuity notification is available for both Demo and Real desktop clients + this.addNotificationMessage(this.client_notifications.acuity); + if (!has_acuity_mt5_download && getPathname() === platform_name.DMT5) { + this.addNotificationMessage(this.client_notifications.acuity_mt5_download); + } + const client = accounts[loginid]; if (client && !client.is_virtual) { if (isEmptyObject(account_status)) return; @@ -603,6 +614,52 @@ export default class NotificationStore extends BaseStore { const platform_name_go = getPlatformSettings('go').name; const notifications = { + acuity: { + key: 'acuity', + header: localize('New trading tools for MT5'), + message: localize('Power up your Financial trades with intuitive tools from Acuity.'), + secondary_btn: { + text: localize('Learn More'), + onClick: () => { + ui.setIsAcuityModalOpen(true); + this.removeNotificationByKey({ key: this.client_notifications.acuity.key }); + this.removeNotificationMessage({ + key: this.client_notifications.acuity.key, + should_show_again: false, + }); + }, + }, + platform: [platform_name.DTrader], + is_disposable: true, + img_src: getUrlBase('/public/images/common/acuity_banner.png'), + img_alt: 'Acuity', + className: 'acuity', + type: 'news', + }, + acuity_mt5_download: { + key: 'acuity_mt5_download', + header: localize('Power up your trades with Acuity'), + message: localize( + 'Download intuitive trading tools to keep track of market events. The Acuity suite is only available for Windows, and is most recommended for financial assets.' + ), + secondary_btn: { + text: localize('Learn More'), + onClick: () => { + ui.setIsAcuityModalOpen(true); + this.removeNotificationByKey({ key: this.client_notifications.acuity_mt5_download.key }); + this.removeNotificationMessage({ + key: this.client_notifications.acuity_mt5_download.key, + should_show_again: false, + }); + }, + }, + platform: [platform_name.DMT5], + img_src: getUrlBase('/public/images/common/acuity_software.png'), + img_alt: 'Acuity Download', + className: 'acuity-mt5', + icon: 'IcCloseDark', + type: 'news', + }, ask_financial_risk_approval: { key: 'ask_financial_risk_approval', header: localize('Complete your Appropriateness Test'), diff --git a/packages/core/src/Stores/ui-store.js b/packages/core/src/Stores/ui-store.js index d4052c16dae2..d3d242383c7d 100644 --- a/packages/core/src/Stores/ui-store.js +++ b/packages/core/src/Stores/ui-store.js @@ -104,6 +104,9 @@ export default class UIStore extends BaseStore { // MT5 create real STP from demo, show only real accounts from switcher should_show_real_accounts_list = false; + // MT5 acuity download + is_acuity_modal_open = false; + // Real account signup real_account_signup = { active_modal_index: -1, @@ -226,6 +229,7 @@ export default class UIStore extends BaseStore { real_account_signup_target: observable, deposit_real_account_signup_target: observable, has_real_account_signup_ended: observable, + is_acuity_modal_open: observable, is_welcome_modal_visible: observable, is_close_mx_mlt_account_modal_visible: observable, is_close_uk_account_modal_visible: observable, @@ -320,6 +324,7 @@ export default class UIStore extends BaseStore { setCurrentFocus: action.bound, addToast: action.bound, removeToast: action.bound, + setIsAcuityModalOpen: action.bound, setIsNativepickerVisible: action.bound, setReportsTabIndex: action.bound, toggleWelcomeModal: action.bound, @@ -762,6 +767,10 @@ export default class UIStore extends BaseStore { this.should_show_real_accounts_list = value; } + setIsAcuityModalOpen(value) { + this.is_acuity_modal_open = value; + } + toggleShouldShowMultipliersOnboarding(value) { this.should_show_multipliers_onboarding = value; } diff --git a/packages/core/src/public/images/common/static_images/acuity_banner.png b/packages/core/src/public/images/common/static_images/acuity_banner.png new file mode 100644 index 000000000000..16149d5509b8 Binary files /dev/null and b/packages/core/src/public/images/common/static_images/acuity_banner.png differ diff --git a/packages/core/src/public/images/common/static_images/acuity_modal.png b/packages/core/src/public/images/common/static_images/acuity_modal.png new file mode 100644 index 000000000000..b17a5b9bbe66 Binary files /dev/null and b/packages/core/src/public/images/common/static_images/acuity_modal.png differ diff --git a/packages/core/src/public/images/common/static_images/acuity_software.png b/packages/core/src/public/images/common/static_images/acuity_software.png new file mode 100644 index 000000000000..415bdfc9b7cb Binary files /dev/null and b/packages/core/src/public/images/common/static_images/acuity_software.png differ diff --git a/packages/core/src/sass/app/_common/components/notification-banner.scss b/packages/core/src/sass/app/_common/components/notification-banner.scss index bb73c0342991..585f58b379d6 100644 --- a/packages/core/src/sass/app/_common/components/notification-banner.scss +++ b/packages/core/src/sass/app/_common/components/notification-banner.scss @@ -94,6 +94,46 @@ top: 1.6rem; cursor: pointer; } + &__acuity { + .notification-banner { + &__bg { + width: 12.8rem; + clip-path: polygon(0 0, 100% 0, 100% 100%, 63% 100%); + } + &__btn-wrapper { + margin-top: 1.6rem; + } + &__img { + width: 12.7rem; + height: auto; + right: 0.3rem; + bottom: 1.4rem; + } + &--left { + width: unset; + } + } + } + + &__acuity-mt5 { + min-width: 55rem; + .notification-banner { + &--left { + min-width: 42.2rem; + } + &__bg { + background-color: var(--icon-grey-background); + width: 12.8rem; + clip-path: polygon(0 0, 100% 0, 100% 100%, 60% 100%); + } + &__img { + width: 15rem; + height: 11.5rem; + right: -1rem; + bottom: 3rem; + } + } + } @include mobile { height: 100%; diff --git a/packages/core/src/sass/app/modules/acuity-download.scss b/packages/core/src/sass/app/modules/acuity-download.scss new file mode 100644 index 000000000000..f6bfa6707a1d --- /dev/null +++ b/packages/core/src/sass/app/modules/acuity-download.scss @@ -0,0 +1,30 @@ +.acuity-download-modal { + &__body { + padding: 0rem 2.4rem 2.4rem; + + &--image { + padding-bottom: 1.6rem; + text-align: center; + } + + &--description { + padding: 0.8rem 0rem 1.6rem; + } + + &--info { + display: flex; + flex-direction: row; + padding: 0.8rem; + gap: 0.8rem; + background-color: var(--transparent-info); + + p { + width: 35.2rem; + } + } + &--button { + text-align: center; + padding-top: 1.6rem; + } + } +}