1 import { c } from 'ttag';
3 import { Icon } from '@proton/components';
4 import { BRAND_NAME } from '@proton/shared/lib/constants';
5 import { Audience } from '@proton/shared/lib/interfaces';
7 import type { BenefitItem } from '../Benefits';
8 import swissFlag from '../flag.svg';
10 export const getBenefits = (appName: string) => {
11 return c('pass_signup_2023: Info').t`${appName} benefits`;
14 export const getJoinB2BString = () => {
15 return c('drive_signup_2024: Info')
16 .t`Join the 50,000+ organizations already benefiting from ${BRAND_NAME}'s security`;
18 export const getJoinString = (audience?: Audience) => {
19 if (audience === Audience.B2B) {
20 return getJoinB2BString();
22 return c('pass_signup_2023: Info')
23 .t`Join over 100 million people who have chosen ${BRAND_NAME} to stay safe online`;
26 export const getBasedString = () => {
27 return c('pass_signup_2023: Info').t`Based in Switzerland, GDPR compliant`;
30 export const getGenericBenefits = (): BenefitItem[] => {
34 text: c('pass_signup_2023: Info').t`Protected by Swiss privacy laws`,
41 text: c('pass_signup_2023: Info').t`Open-source and audited`,
49 export const getBuiltInEncryptionBenefit = (): BenefitItem => {
51 key: `built-in-encryption`,
52 text: c('Signup: Info').t`Built-in encryption`,
59 export const getEndToEndEncryptionBenefit = (): BenefitItem => {
61 key: `end-to-end-encryption`,
62 text: c('Signup: Info').t`End-to-end encryption`,
69 export const getSwissPrivacyLawsBenefit = (): BenefitItem => {
71 key: `swiss-privacy-laws`,
72 text: c('Signup: Info').t`Protected by Swiss privacy laws`,
79 export const getWorksOnAllDevicesBenefit = (): BenefitItem => {
81 key: `works-on-all-devices`,
82 text: c('Signup: Info').t`Works on all devices`,
89 export const getISO27001CertifiedBenefit = (): BenefitItem => {
91 key: `iso27001-certified`,
92 text: c('Signup: Info').t`ISO 27001 certified`,
99 export const getBasedInSwitzerlandGDPRBenefit = (): BenefitItem => {
101 key: `based-in-switzerland-gdpr`,
102 text: c('Signup: Info').t`Based in Switzerland, GDPR compliant`,
109 export const getTeamKnowsEncryptionBenefit = (): BenefitItem => {
111 key: `team-knows-encryption`,
112 text: c('Signup: Info').t`From the team that knows encryption`,
119 export const getOpenSourceAndAuditedBenefit = (): BenefitItem => {
121 key: `open-source-and-audited`,
122 text: c('Signup: Info').t`Open source and audited`,
129 export const getAppsMailIncludedBenefit = (): BenefitItem => {
131 key: `apps-mail-included`,
132 text: c('Signup: Info').t`Calendar, password manager, file storage, and VPN included`,
139 export const getAppsIncludedBenefit = (): BenefitItem => {
141 key: `apps-included`,
142 text: c('Signup: Info').t`Integrated email, calendar, file storage, password manager, and VPN`,
149 export const getEmailAliasesBenefit = (): BenefitItem => {
151 key: `email-aliases`,
152 text: c('Signup: Info').t`Email aliases`,
159 export const getUnlimitedPasswordsBenefit = (): BenefitItem => {
161 key: `unlimited-passwords`,
162 text: c('Signup: Info').t`Unlimited passwords`,
169 export const getDeviceSyncBenefit = (): BenefitItem => {
172 text: c('Signup: Info').t`Device sync`,
179 export const getAliasesEmailProtectionBenefit = (): BenefitItem => {
181 key: `aliases-email-protection`,
182 text: c('Signup: Info').t`10 aliases for email protection from breaches`,
189 export const getAdvancedSecurityBenefit = (): BenefitItem => {
191 key: `advanced-security`,
192 text: c('Signup: Info').t`Advanced security features`,
199 export const getScribeBenefit = (): BenefitItem => {
201 key: `scribe-benefit`,
202 text: c('mail_signup_2024: Info').t`${BRAND_NAME} Scribe writing assistant`,
209 export const getBundleVisionaryBenefits = (): BenefitItem[] => {
211 getEndToEndEncryptionBenefit(),
212 getSwissPrivacyLawsBenefit(),
213 getOpenSourceAndAuditedBenefit(),
214 getWorksOnAllDevicesBenefit(),
215 getAppsIncludedBenefit(),
219 export const getFamilyDuoBenefits = (): BenefitItem[] => {
221 getEndToEndEncryptionBenefit(),
222 getSwissPrivacyLawsBenefit(),
223 getOpenSourceAndAuditedBenefit(),
225 getAppsIncludedBenefit(),
229 export const getGenericFeatures = (isLargeViewport: boolean, audience?: Audience) => {
232 left: <Icon size={6} className="color-primary" name="lock" />,
233 text: c('pass_signup_2023: Feature').t`End-to-end encrypted`,
238 left: <img width="24" alt="" src={swissFlag} className="rounded-sm" />,
239 text: isLargeViewport
240 ? c('pass_signup_2023: Feature').t`Protected by Swiss privacy laws`
241 : c('pass_signup_2023: Feature').t`Swiss based`,
246 left: <Icon size={6} className="color-primary" name="globe" />,
247 text: c('pass_signup_2023: Feature').t`Open source`,
252 left: <Icon size={6} className="color-primary" name="shield" />,
253 text: c('signup_2024: Feature').t`GDPR and HIPAA compliant`,
256 const audienceSpecificFeatures = audience === Audience.B2B ? [e2e, swiss, gdpr] : [e2e, openSource, swiss];
258 return audienceSpecificFeatures;