@codecademy/brand 3.6.0-alpha.351a8c5fe3.0 → 3.6.0-alpha.63c16a9e8d.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +103 -31
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +0 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +1 -1
- package/dist/GlobalHeader/GlobalHeaderVariants.js +1 -1
- package/dist/PricingSection/PricingCard/PricingAmount.d.ts +3 -7
- package/dist/PricingSection/PricingCard/PricingAmount.js +61 -92
- package/dist/PricingSection/PricingCard/consts.js +0 -14
- package/dist/PricingSection/PricingCard/index.d.ts +6 -6
- package/dist/PricingSection/PricingCard/index.js +153 -112
- package/dist/PricingSection/ProductCTA.d.ts +5 -7
- package/dist/PricingSection/ProductCTA.js +31 -96
- package/dist/PricingSection/Products.d.ts +4 -4
- package/dist/PricingSection/Products.js +13 -28
- package/dist/PricingSection/config.d.ts +1 -1
- package/dist/PricingSection/config.js +2 -4
- package/dist/PricingSection/index.d.ts +5 -4
- package/dist/PricingSection/index.js +46 -27
- package/dist/PricingSection/types.d.ts +2 -3
- package/dist/PricingSection/types.js +0 -1
- package/package.json +1 -1
- package/dist/PricingSection/ConditionalColorMode.d.ts +0 -4
- package/dist/PricingSection/ConditionalColorMode.js +0 -13
- package/dist/PricingSection/PricingCard/types.d.ts +0 -40
- package/dist/PricingSection/PricingCard/types.js +0 -63
|
@@ -119,64 +119,136 @@ export const SkillPathsPanel = ({
|
|
|
119
119
|
})
|
|
120
120
|
});
|
|
121
121
|
};
|
|
122
|
-
const
|
|
122
|
+
const getCertificationProviderLogoUrl = fileName => `https://static-assets.codecademy.com/assets/certification-provider-logos/catalog-dropdown/${fileName}`;
|
|
123
|
+
const providers = [{
|
|
124
|
+
name: 'Microsoft',
|
|
125
|
+
logoUrl: getCertificationProviderLogoUrl('microsoft-2.svg'),
|
|
126
|
+
hubType: 'subhub'
|
|
127
|
+
}, {
|
|
128
|
+
name: 'CompTIA',
|
|
129
|
+
logoUrl: getCertificationProviderLogoUrl('comptia-1.svg'),
|
|
130
|
+
hubType: 'subhub'
|
|
131
|
+
}, {
|
|
132
|
+
name: 'ISC2',
|
|
133
|
+
logoUrl: getCertificationProviderLogoUrl('isc2-1.svg'),
|
|
134
|
+
hubType: 'subhub'
|
|
135
|
+
}, {
|
|
136
|
+
name: 'AWS',
|
|
137
|
+
logoUrl: getCertificationProviderLogoUrl('aws-2.svg'),
|
|
138
|
+
hubType: 'subhub'
|
|
139
|
+
}, {
|
|
140
|
+
name: 'Google',
|
|
141
|
+
logoUrl: getCertificationProviderLogoUrl('google-1.svg'),
|
|
142
|
+
hubType: 'certification-prep'
|
|
143
|
+
}, {
|
|
144
|
+
name: 'Cisco',
|
|
145
|
+
logoUrl: getCertificationProviderLogoUrl('cisco-2.svg'),
|
|
146
|
+
hubType: 'certification-prep'
|
|
147
|
+
}, {
|
|
148
|
+
name: 'IIBA',
|
|
149
|
+
logoUrl: getCertificationProviderLogoUrl('iiba-2.svg'),
|
|
150
|
+
hubType: 'certification-prep'
|
|
151
|
+
}, {
|
|
152
|
+
name: 'ISTQB',
|
|
153
|
+
logoUrl: getCertificationProviderLogoUrl('istqb-1.svg'),
|
|
154
|
+
hubType: 'certification-prep'
|
|
155
|
+
}, {
|
|
156
|
+
name: 'ISACA',
|
|
157
|
+
logoUrl: getCertificationProviderLogoUrl('isaca-1.svg'),
|
|
158
|
+
hubType: 'certification-prep'
|
|
159
|
+
}, {
|
|
160
|
+
name: 'Kubernetes',
|
|
161
|
+
logoUrl: getCertificationProviderLogoUrl('kubernetes-1.svg'),
|
|
162
|
+
hubType: 'certification-prep'
|
|
163
|
+
}, {
|
|
164
|
+
name: 'Oracle',
|
|
165
|
+
logoUrl: getCertificationProviderLogoUrl('oracle-1.svg'),
|
|
166
|
+
hubType: 'certification-prep'
|
|
167
|
+
}, {
|
|
168
|
+
name: 'Project Management Institute',
|
|
169
|
+
logoUrl: getCertificationProviderLogoUrl('pmi-1.svg'),
|
|
170
|
+
hubType: 'certification-prep'
|
|
171
|
+
}];
|
|
172
|
+
const Image = Box.withComponent('img', {
|
|
173
|
+
target: "eqfnvo0",
|
|
174
|
+
label: "Image"
|
|
175
|
+
});
|
|
123
176
|
const ProviderChip = ({
|
|
124
|
-
|
|
177
|
+
name,
|
|
125
178
|
href,
|
|
179
|
+
imgSrc,
|
|
126
180
|
tabIndex
|
|
127
181
|
}) => {
|
|
128
182
|
return /*#__PURE__*/_jsx(Anchor, {
|
|
129
183
|
href: href,
|
|
130
184
|
variant: "interface",
|
|
131
185
|
tabIndex: tabIndex,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
186
|
+
width: "100%",
|
|
187
|
+
height: "100%",
|
|
188
|
+
display: "block",
|
|
189
|
+
children: /*#__PURE__*/_jsx(Card, {
|
|
190
|
+
borderColor: "border-tertiary",
|
|
191
|
+
borderRadius: "lg",
|
|
192
|
+
isInteractive: true,
|
|
193
|
+
width: "100%",
|
|
194
|
+
height: "100%",
|
|
195
|
+
p: 8,
|
|
196
|
+
children: /*#__PURE__*/_jsx(Image, {
|
|
197
|
+
src: imgSrc,
|
|
198
|
+
alt: name,
|
|
199
|
+
display: "block",
|
|
200
|
+
m: "auto",
|
|
201
|
+
height: 52
|
|
140
202
|
})
|
|
141
203
|
})
|
|
142
|
-
},
|
|
204
|
+
}, name);
|
|
143
205
|
};
|
|
144
206
|
export const CertificationPathsPanel = ({
|
|
145
207
|
tabIndex = 0
|
|
146
208
|
}) => {
|
|
147
209
|
return /*#__PURE__*/_jsxs(PanelLayout, {
|
|
148
210
|
heading: "Certification paths",
|
|
149
|
-
description: "
|
|
211
|
+
description: "Prepare for top industry certifications with a guided path. Each one includes expert-reviewed lessons, hands-on projects, and practice tests to help you pass the exam.",
|
|
150
212
|
linkItem: {
|
|
151
213
|
type: 'link',
|
|
152
214
|
href: '/catalog?type=certification-path',
|
|
153
|
-
text: '
|
|
215
|
+
text: 'Explore all certification paths',
|
|
154
216
|
trackingTarget: 'catalog-header-view-all-certification-paths',
|
|
155
217
|
id: 'view-all-certification-paths'
|
|
156
218
|
},
|
|
157
219
|
tabIndex: tabIndex,
|
|
158
|
-
children: [/*#__PURE__*/
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
tabIndex: tabIndex
|
|
164
|
-
}, provider)), /*#__PURE__*/_jsx(ProviderChip, {
|
|
165
|
-
text: "+ More providers",
|
|
166
|
-
href: "/catalog/certification-prep",
|
|
167
|
-
tabIndex: tabIndex
|
|
168
|
-
}, "more-providers")]
|
|
220
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
221
|
+
as: "h3",
|
|
222
|
+
fontSize: 18,
|
|
223
|
+
fontWeight: "bold",
|
|
224
|
+
children: "Providers"
|
|
169
225
|
}), /*#__PURE__*/_jsx(GridBox, {
|
|
170
226
|
gridTemplateColumns: {
|
|
171
227
|
_: '1fr',
|
|
172
|
-
|
|
228
|
+
xs: 'repeat(2, 1fr)',
|
|
229
|
+
sm: 'repeat(3, 1fr)',
|
|
230
|
+
md: 'repeat(4, 1fr)'
|
|
173
231
|
},
|
|
174
|
-
gap:
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
232
|
+
gap: 24,
|
|
233
|
+
width: "100%",
|
|
234
|
+
as: "ul",
|
|
235
|
+
listStyle: "none",
|
|
236
|
+
p: 0,
|
|
237
|
+
m: 0,
|
|
238
|
+
children: providers.map(({
|
|
239
|
+
name,
|
|
240
|
+
logoUrl,
|
|
241
|
+
hubType
|
|
242
|
+
}) => /*#__PURE__*/_jsx(Box, {
|
|
243
|
+
as: "li",
|
|
244
|
+
width: "100%",
|
|
245
|
+
children: /*#__PURE__*/_jsx(ProviderChip, {
|
|
246
|
+
name: name,
|
|
247
|
+
href: hubType === 'subhub' ? `/search?query=${name} certifications` : `/catalog/certification-prep?provider=${name.toLowerCase()}`,
|
|
248
|
+
imgSrc: logoUrl,
|
|
249
|
+
tabIndex: tabIndex
|
|
250
|
+
})
|
|
251
|
+
}, name))
|
|
180
252
|
})]
|
|
181
253
|
});
|
|
182
254
|
};
|
|
File without changes
|
|
@@ -11,7 +11,7 @@ import { AppHeaderSubMenuRow } from '../AppHeaderSubMenuTarget';
|
|
|
11
11
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
const isBusinessPageExperiment = isBlpHeroExperimentVariant => {
|
|
13
13
|
if (typeof window === 'undefined') return false;
|
|
14
|
-
return
|
|
14
|
+
return window.location.pathname === '/business' && isBlpHeroExperimentVariant;
|
|
15
15
|
};
|
|
16
16
|
export const AppHeaderMainMenuMobile = ({
|
|
17
17
|
action,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { addPayment, bootcampCta, businessSolutions, catalogDropdown, communityDropdown, enterpriseLogo, freeProfile, liveLearningHub, loading, login, logo, myHome, myPercipioHome, pricingDropdown, proProfile, requestTeamsDemo, resourcesDropdown, signUp, signUpTextButton, simpleResourcesDropdown, tryProForFree, unpausePro, upgradePlan, upgradeToPro } from './GlobalHeaderItems';
|
|
2
2
|
const isBusinessPage = isBlpHeroExperimentVariant => {
|
|
3
3
|
if (typeof window === 'undefined') return false;
|
|
4
|
-
return
|
|
4
|
+
return window.location.pathname === '/business' && Boolean(isBlpHeroExperimentVariant);
|
|
5
5
|
};
|
|
6
6
|
const transformSimpleResourcesDropdownlabels = resourcesLabel => ({
|
|
7
7
|
...simpleResourcesDropdown,
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { Product } from '../types';
|
|
3
|
-
|
|
4
|
-
type PricingAmountProps = {
|
|
2
|
+
interface PricingAmountProps {
|
|
5
3
|
product: Product;
|
|
6
4
|
price: string;
|
|
5
|
+
isUserInIndia: boolean;
|
|
7
6
|
monthlyPrice?: string;
|
|
8
|
-
currency: AllCurrency;
|
|
9
7
|
termMonths?: number;
|
|
10
|
-
|
|
11
|
-
isUserInIndia: boolean;
|
|
12
|
-
};
|
|
8
|
+
}
|
|
13
9
|
export declare const PricingAmount: React.FC<PricingAmountProps>;
|
|
14
10
|
export {};
|
|
@@ -1,115 +1,84 @@
|
|
|
1
1
|
import _styled from "@emotion/styled/base";
|
|
2
2
|
import { FlexBox, HiddenText, Text } from '@codecademy/gamut';
|
|
3
3
|
import { theme } from '@codecademy/gamut-styles';
|
|
4
|
-
import React from 'react';
|
|
5
4
|
import { Product } from '../types';
|
|
6
|
-
import {
|
|
7
|
-
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
const getCurrencySymbol = ({
|
|
7
|
+
isUserInIndia
|
|
8
|
+
}) => isUserInIndia ? '₹' : '$';
|
|
8
9
|
const Amount = /*#__PURE__*/_styled(Text, {
|
|
9
10
|
target: "e19mon8j0",
|
|
10
11
|
label: "Amount"
|
|
11
|
-
})("font-weight:bold;color:black;font-size:
|
|
12
|
+
})("font-weight:bold;color:black;font-size:64px;line-height:64px;", theme.breakpoints.xl, "{font-size:64px;line-height:80px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9QcmljaW5nU2VjdGlvbi9QcmljaW5nQ2FyZC9QcmljaW5nQW1vdW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTMkIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL1ByaWNpbmdTZWN0aW9uL1ByaWNpbmdDYXJkL1ByaWNpbmdBbW91bnQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleEJveCwgSGlkZGVuVGV4dCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgZ2V0Q3VycmVuY3lTeW1ib2wgPSAoeyBpc1VzZXJJbkluZGlhIH06IHsgaXNVc2VySW5JbmRpYTogYm9vbGVhbiB9KSA9PlxuICBpc1VzZXJJbkluZGlhID8gJ+KCuScgOiAnJCc7XG5cbmNvbnN0IEFtb3VudCA9IHN0eWxlZChUZXh0KWBcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC1zaXplOiA2NHB4O1xuICBsaW5lLWhlaWdodDogNjRweDtcbiAgJHt0aGVtZS5icmVha3BvaW50cy54bH0ge1xuICAgIGZvbnQtc2l6ZTogNjRweDtcbiAgICBsaW5lLWhlaWdodDogODBweDtcbiAgfVxuYDtcblxuaW50ZXJmYWNlIFByaWNpbmdBbW91bnRQcm9wcyB7XG4gIHByb2R1Y3Q6IFByb2R1Y3Q7XG4gIHByaWNlOiBzdHJpbmc7XG4gIGlzVXNlckluSW5kaWE6IGJvb2xlYW47XG4gIG1vbnRobHlQcmljZT86IHN0cmluZztcbiAgdGVybU1vbnRocz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFByaWNpbmdBbW91bnQ6IFJlYWN0LkZDPFByaWNpbmdBbW91bnRQcm9wcz4gPSAoe1xuICBtb250aGx5UHJpY2UsXG4gIHByb2R1Y3QsXG4gIHByaWNlLFxuICBpc1VzZXJJbkluZGlhLFxuICB0ZXJtTW9udGhzLFxufSkgPT4ge1xuICBjb25zdCBjeWNsZSA9IHRlcm1Nb250aHMgPT09IDEgPyAnbW9udGhseScgOiAnYW5udWFsbHknO1xuICBjb25zdCBbZG9sbGFycywgY2VudHNdID0gcHJpY2Uuc3BsaXQoJy4nKTtcbiAgY29uc3QgY3VycmVuY3lTeW1ib2wgPSBnZXRDdXJyZW5jeVN5bWJvbCh7IGlzVXNlckluSW5kaWEgfSk7XG5cbiAgbGV0IGFyaWFMYWJlbCA9IGAke2N1cnJlbmN5U3ltYm9sfSR7ZG9sbGFyc30ke2NlbnRzID8gYC4ke2NlbnRzfWAgOiAnJ31gO1xuXG4gIGlmIChwcm9kdWN0ICE9PSBQcm9kdWN0LkJhc2ljKSB7XG4gICAgYXJpYUxhYmVsICs9IGAgcGVyIG1vbnRoYDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3hcbiAgICAgIGRhdGEtdGVzdGlkPVwicHJpY2luZy1hbW91bnRcIlxuICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgIG1iPXs4fVxuICAgICAgY29sdW1uXG4gICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICA+XG4gICAgICA8RmxleEJveCBtcj17NH0gYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8SGlkZGVuVGV4dD57YXJpYUxhYmVsfTwvSGlkZGVuVGV4dD5cbiAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIiBmb250U2l6ZT17MzR9IGFyaWEtaGlkZGVuPlxuICAgICAgICAgIHtjdXJyZW5jeVN5bWJvbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8QW1vdW50IGFyaWEtaGlkZGVuPntgJHtkb2xsYXJzfWB9PC9BbW91bnQ+XG4gICAgICAgIHtwcm9kdWN0ID09PSBQcm9kdWN0LkJhc2ljID8gbnVsbCA6IChcbiAgICAgICAgICA8RmxleEJveCBjb2x1bW4gbWw9ezR9IGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIiBmb250U2l6ZT17MjJ9PlxuICAgICAgICAgICAgICB7Y2VudHMgPyBgLiR7Y2VudHN9YCA6IDxzcGFuPiZuYnNwOzwvc3Bhbj59XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dCBjb2xvcj1cInRleHQtc2Vjb25kYXJ5XCI+L21vPC9UZXh0PlxuICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgKX1cbiAgICAgIDwvRmxleEJveD5cbiAgICAgIDxUZXh0IGNvbG9yPVwidGV4dC1zZWNvbmRhcnlcIiBjZW50ZXIgbXQ9e3sgXzogOCwgeGw6IDAgfX0+XG4gICAgICAgIHtwcm9kdWN0ID09PSBQcm9kdWN0LkJhc2ljID8gKFxuICAgICAgICAgIDxUZXh0IG1iPXsyNH0+QWx3YXlzIGZyZWU8L1RleHQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPEZsZXhCb3ggY29sdW1uPlxuICAgICAgICAgICAgPFRleHQgbWI9ezh9PntgQmlsbGVkICR7Y3ljbGV9IG9yYH08L1RleHQ+XG4gICAgICAgICAgICB7bW9udGhseVByaWNlICYmIChcbiAgICAgICAgICAgICAgPFRleHQ+e2Ake2N1cnJlbmN5U3ltYm9sfSR7bW9udGhseVByaWNlfSBiaWxsZWQgbW9udGhseWB9PC9UZXh0PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICl9XG4gICAgICA8L1RleHQ+XG4gICAgPC9GbGV4Qm94PlxuICApO1xufTtcbiJdfQ== */"));
|
|
12
13
|
export const PricingAmount = ({
|
|
13
|
-
currency,
|
|
14
14
|
monthlyPrice,
|
|
15
15
|
product,
|
|
16
16
|
price,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
isUserInIndia
|
|
17
|
+
isUserInIndia,
|
|
18
|
+
termMonths
|
|
20
19
|
}) => {
|
|
21
|
-
const isTeams = product === Product.Teams;
|
|
22
20
|
const cycle = termMonths === 1 ? 'monthly' : 'annually';
|
|
23
21
|
const [dollars, cents] = price.split('.');
|
|
24
|
-
|
|
22
|
+
const currencySymbol = getCurrencySymbol({
|
|
23
|
+
isUserInIndia
|
|
24
|
+
});
|
|
25
|
+
let ariaLabel = `${currencySymbol}${dollars}${cents ? `.${cents}` : ''}`;
|
|
25
26
|
if (product !== Product.Basic) {
|
|
26
|
-
ariaLabel += `
|
|
27
|
-
if (monthlyPrice) {
|
|
28
|
-
ariaLabel += ` or ${getCurrencySymbol(currency)}${monthlyPrice} billed monthly`;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (isTeams) {
|
|
32
|
-
ariaLabel += ', per user. Discounts available for eligible teams';
|
|
27
|
+
ariaLabel += ` per month`;
|
|
33
28
|
}
|
|
34
|
-
return /*#__PURE__*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
return /*#__PURE__*/_jsxs(FlexBox, {
|
|
30
|
+
"data-testid": "pricing-amount",
|
|
31
|
+
lineHeight: "title",
|
|
32
|
+
mb: 8,
|
|
33
|
+
column: true,
|
|
34
|
+
alignItems: "center",
|
|
35
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
36
|
+
mr: 4,
|
|
40
37
|
alignItems: "center",
|
|
41
38
|
children: [/*#__PURE__*/_jsx(HiddenText, {
|
|
42
|
-
"data-testid": "pricing-amount-label",
|
|
43
39
|
children: ariaLabel
|
|
44
|
-
}), /*#__PURE__*/_jsx(FlexBox, {
|
|
45
|
-
"aria-hidden": true,
|
|
46
|
-
row: true,
|
|
47
|
-
alignItems: "center",
|
|
48
|
-
height: {
|
|
49
|
-
_: 50,
|
|
50
|
-
xl: 'unset'
|
|
51
|
-
},
|
|
52
|
-
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
53
|
-
mr: 4,
|
|
54
|
-
alignItems: "start",
|
|
55
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
56
|
-
mt: {
|
|
57
|
-
_: 12,
|
|
58
|
-
xl: 16
|
|
59
|
-
},
|
|
60
|
-
fontWeight: "bold",
|
|
61
|
-
fontSize: 34,
|
|
62
|
-
children: `${getCurrencySymbol(currency)}`
|
|
63
|
-
}), /*#__PURE__*/_jsx(Amount, {
|
|
64
|
-
children: `${dollars}`
|
|
65
|
-
}), product === Product.Basic ? null : /*#__PURE__*/_jsxs(FlexBox, {
|
|
66
|
-
column: true,
|
|
67
|
-
alignItems: "flex-end",
|
|
68
|
-
ml: 4,
|
|
69
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
70
|
-
fontWeight: "bold",
|
|
71
|
-
fontSize: 22,
|
|
72
|
-
mt: {
|
|
73
|
-
_: 12,
|
|
74
|
-
xl: 16
|
|
75
|
-
},
|
|
76
|
-
children: cents ? `.${cents}` : /*#__PURE__*/_jsx("span", {
|
|
77
|
-
children: "\xA0"
|
|
78
|
-
})
|
|
79
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
80
|
-
mt: {
|
|
81
|
-
_: 0,
|
|
82
|
-
xl: 4
|
|
83
|
-
},
|
|
84
|
-
color: "navy-500",
|
|
85
|
-
children: "/mo"
|
|
86
|
-
})]
|
|
87
|
-
})]
|
|
88
|
-
})
|
|
89
40
|
}), /*#__PURE__*/_jsx(Text, {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
children:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
})
|
|
41
|
+
fontWeight: "bold",
|
|
42
|
+
fontSize: 34,
|
|
43
|
+
"aria-hidden": true,
|
|
44
|
+
children: currencySymbol
|
|
45
|
+
}), /*#__PURE__*/_jsx(Amount, {
|
|
46
|
+
"aria-hidden": true,
|
|
47
|
+
children: `${dollars}`
|
|
48
|
+
}), product === Product.Basic ? null : /*#__PURE__*/_jsxs(FlexBox, {
|
|
49
|
+
column: true,
|
|
50
|
+
ml: 4,
|
|
51
|
+
"aria-hidden": true,
|
|
52
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
53
|
+
fontWeight: "bold",
|
|
54
|
+
fontSize: 22,
|
|
55
|
+
children: cents ? `.${cents}` : /*#__PURE__*/_jsx("span", {
|
|
56
|
+
children: "\xA0"
|
|
57
|
+
})
|
|
58
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
59
|
+
color: "text-secondary",
|
|
60
|
+
children: "/mo"
|
|
61
|
+
})]
|
|
112
62
|
})]
|
|
113
|
-
})
|
|
63
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
64
|
+
color: "text-secondary",
|
|
65
|
+
center: true,
|
|
66
|
+
mt: {
|
|
67
|
+
_: 8,
|
|
68
|
+
xl: 0
|
|
69
|
+
},
|
|
70
|
+
children: product === Product.Basic ? /*#__PURE__*/_jsx(Text, {
|
|
71
|
+
mb: 24,
|
|
72
|
+
children: "Always free"
|
|
73
|
+
}) : /*#__PURE__*/_jsxs(FlexBox, {
|
|
74
|
+
column: true,
|
|
75
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
76
|
+
mb: 8,
|
|
77
|
+
children: `Billed ${cycle} or`
|
|
78
|
+
}), monthlyPrice && /*#__PURE__*/_jsx(Text, {
|
|
79
|
+
children: `${currencySymbol}${monthlyPrice} billed monthly`
|
|
80
|
+
})]
|
|
81
|
+
})
|
|
82
|
+
})]
|
|
114
83
|
});
|
|
115
84
|
};
|
|
@@ -75,20 +75,6 @@ export const planDetails = {
|
|
|
75
75
|
isLite: true,
|
|
76
76
|
features: getFeatures(['Basic access to free courses', 'Community support', 'Learning resources', 'Real-world projects', 'All courses', 'Skill paths', 'Certificates of completion'])
|
|
77
77
|
},
|
|
78
|
-
teams: {
|
|
79
|
-
id: 'teams',
|
|
80
|
-
title: 'Teams',
|
|
81
|
-
tag: 'Recommended for 2+',
|
|
82
|
-
isLite: false,
|
|
83
|
-
features: getFeatures()
|
|
84
|
-
},
|
|
85
|
-
enterprise: {
|
|
86
|
-
id: 'enterprise',
|
|
87
|
-
title: 'Enterprise',
|
|
88
|
-
tag: 'Recommended for 25+',
|
|
89
|
-
isLite: false,
|
|
90
|
-
features: getFeatures()
|
|
91
|
-
},
|
|
92
78
|
free: {
|
|
93
79
|
id: 'free',
|
|
94
80
|
title: 'Pro',
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { PlansByType } from '../config';
|
|
2
|
-
import { Product, ProductDetails
|
|
3
|
-
import { AllCurrency } from './types';
|
|
2
|
+
import { CopyConfig, CtaConfig, Product, ProductDetails } from '../types';
|
|
4
3
|
export declare const smSize = 728;
|
|
5
|
-
export declare const PricingCard:
|
|
4
|
+
export declare const PricingCard: React.FC<{
|
|
6
5
|
product: Product;
|
|
7
6
|
productDetails: ProductDetails;
|
|
8
|
-
currency: AllCurrency;
|
|
9
7
|
plansByType: PlansByType;
|
|
10
8
|
isUserInIndia: boolean;
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
isCurrentPlan?: boolean;
|
|
10
|
+
ctaConfig?: CtaConfig[keyof CtaConfig];
|
|
11
|
+
copyConfig?: CopyConfig[keyof CopyConfig];
|
|
12
|
+
}>;
|