@zenpatient-org/healthspan-marketing-ui 0.2.15 → 0.2.17
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/components/Quote/Quote.cjs.js +1 -1
- package/dist/components/Quote/Quote.es.js +9 -9
- package/dist/components/Quote/Quote.module.css +1 -0
- package/dist/modules/IndividualProductCard/IndividualProductCard.cjs.js +1 -1
- package/dist/modules/IndividualProductCard/IndividualProductCard.d.ts +7 -1
- package/dist/modules/IndividualProductCard/IndividualProductCard.es.js +80 -78
- package/dist/modules/IndividualProductCard/individualProductCard.module.css +38 -22
- package/dist/modules/IndividualProductCardV2/IndividualProductCardV2.cjs.js +1 -1
- package/dist/modules/IndividualProductCardV2/IndividualProductCardV2.es.js +10 -10
- package/dist/modules/ProgramsDetailsHero/programsDetailsHero.module.css +28 -21
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("../Typography/Typography.cjs.js"),t=require("../../src/components/Quote/Quote.module.css"),l=require("./const.cjs.js"),u=({prefix:a,color:s,quote:c,source:o,sourcePrefix:n})=>{var r;return e.jsxs("div",{className:t.quoteContainer,children:[e.jsxs("div",{className:t.quoteContent,children:[a&&s&&e.jsx("img",{src:(r=l.prefixSelection[a])==null?void 0:r[s],alt:`${a} icon`,className:t.quoteIcon}),e.jsx(i.Typography,{as:"p",defaultVariant:"preambleSm",mobileVariant:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("../Typography/Typography.cjs.js"),t=require("../../src/components/Quote/Quote.module.css"),l=require("./const.cjs.js"),u=({prefix:a,color:s,quote:c,source:o,sourcePrefix:n})=>{var r;return e.jsxs("div",{className:t.quoteContainer,children:[e.jsxs("div",{className:t.quoteContent,children:[a&&s&&e.jsx("img",{src:(r=l.prefixSelection[a])==null?void 0:r[s],alt:`${a} icon`,className:t.quoteIcon}),e.jsx(i.Typography,{as:"p",defaultVariant:"preambleSm",mobileVariant:"bodySm",className:t.quoteText,children:c})]}),o&&n&&e.jsxs(i.Typography,{as:"figcaption",defaultVariant:"labelSm",mobileVariant:"labelXs",emphasis:!0,className:t.quoteAuthor,children:[l.sourcePrefixSelection[n]," ",o]})]})};exports.Quote=u;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { jsxs as t, jsx as
|
|
2
|
-
import { Typography as
|
|
1
|
+
import { jsxs as t, jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { Typography as s } from "../Typography/Typography.es.js";
|
|
3
3
|
import e from "../../components/Quote/Quote.module.css";
|
|
4
4
|
import { prefixSelection as c, sourcePrefixSelection as p } from "./const.es.js";
|
|
5
|
-
const f = ({ prefix: a, color: o, quote: n, source: i, sourcePrefix:
|
|
6
|
-
var
|
|
5
|
+
const f = ({ prefix: a, color: o, quote: n, source: i, sourcePrefix: r }) => {
|
|
6
|
+
var l;
|
|
7
7
|
return /* @__PURE__ */ t("div", { className: e.quoteContainer, children: [
|
|
8
8
|
/* @__PURE__ */ t("div", { className: e.quoteContent, children: [
|
|
9
|
-
a && o && /* @__PURE__ */
|
|
10
|
-
/* @__PURE__ */ s
|
|
9
|
+
a && o && /* @__PURE__ */ m("img", { src: (l = c[a]) == null ? void 0 : l[o], alt: `${a} icon`, className: e.quoteIcon }),
|
|
10
|
+
/* @__PURE__ */ m(s, { as: "p", defaultVariant: "preambleSm", mobileVariant: "bodySm", className: e.quoteText, children: n })
|
|
11
11
|
] }),
|
|
12
|
-
i &&
|
|
13
|
-
|
|
12
|
+
i && r && /* @__PURE__ */ t(
|
|
13
|
+
s,
|
|
14
14
|
{
|
|
15
15
|
as: "figcaption",
|
|
16
16
|
defaultVariant: "labelSm",
|
|
@@ -18,7 +18,7 @@ const f = ({ prefix: a, color: o, quote: n, source: i, sourcePrefix: l }) => {
|
|
|
18
18
|
emphasis: !0,
|
|
19
19
|
className: e.quoteAuthor,
|
|
20
20
|
children: [
|
|
21
|
-
p[
|
|
21
|
+
p[r],
|
|
22
22
|
" ",
|
|
23
23
|
i
|
|
24
24
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("../../utils/cn/cn.cjs.js"),c=require("../../types/analytics/analytics.cjs.js"),a=require("../../src/modules/IndividualProductCard/individualProductCard.module.css"),k=require("../../components/PlainFeaturesGroup/PlainFeaturesGroup.cjs.js"),I=require("../../components/ImageGallery/ImageGallery.cjs.js"),_=require("../../components/RatingPreview/RatingPreview.cjs.js"),F=require("../../components/Quote/Quote.cjs.js"),y=require("../../components/Typography/Typography.cjs.js"),C=require("../../components/Button/Button.cjs.js"),G=require("../../components/TextButton/TextButton.cjs.js"),R=require("./components/Features/Features.cjs.js"),B=require("./components/PlanCard/PlanCard.cjs.js"),V=require("../../components/SmartCallout/SmartCallout.cjs.js"),O=({zenpatientId:N,name:o,description:m,features:b,featuresGroup:p,images:q,quote:h,label:w,rating:v,ratingText:j,plans:s,button:t,textButton:r,selectedPlanId:g,onSelectPlan:l,trackingEvent:E,trackingLocation:x,signupUrl:T})=>{const d=s&&s.length>0&&l,f=i=>{if(l==null||l(i),E){const n=s==null?void 0:s.find(A=>A.id===i);c.EAnalyticsEventType.interaction,n==null||n.price,n==null||n.duration}},P=()=>{var n;const i={event:c.EAnalyticsEvent.ctaClicked,location:x||"not_set",type:c.EAnalyticsEventType.interaction,component:"IndividualProductCard",element:"primary_button",payload:{productId:N,ctaLabel:t.label,productName:o,selectedPlanId:g||"none"}};(n=window.eventBus)==null||n.emit("analytics",i)},S=()=>{var i;(i=window.eventBus)==null||i.emit("analytics",{event:c.EAnalyticsEvent.ctaClicked,location:x||"not_set",type:c.EAnalyticsEventType.interaction,component:"IndividualProductCard",element:"secondary_button",payload:{ctaLabel:r==null?void 0:r.label,productName:o}})};return e.jsx("section",{className:a.root,children:e.jsxs("div",{className:u.cn(a.container,!d&&a.noPlans),children:[e.jsxs("div",{className:a.gallery,children:[e.jsx(I.ImageGallery,{images:q,label:w}),e.jsx("div",{className:u.cn(a.ratingContainer,a.mobileOnly),children:e.jsx(_.RatingPreview,{rating:v,text:j||"No reviews yet"})}),h&&e.jsx("div",{className:a.quoteWrapper,children:e.jsx(F.Quote,{...h})})]}),e.jsxs("div",{className:a.info,children:[e.jsxs("div",{className:a.infoHeader,children:[e.jsx(y.Typography,{as:"h3",defaultVariant:"displayXs",mobileVariant:"headingLg",weight:"regular",children:o}),!!m&&e.jsx(y.Typography,{as:"p",defaultVariant:"bodySm",className:a.infoDescription,weight:"regular",children:m})]}),!d&&e.jsxs("div",{className:a.actions,children:[e.jsx(C.Button,{variant:"primary",size:"lg",...t,onClick:P,children:t.label}),r&&e.jsx(G.TextButton,{...r,onClick:S,children:r.label})]}),e.jsx(R.Features,{features:b}),p&&e.jsx(k.PlainFeaturesGroup,{...p})]}),d&&e.jsxs("div",{className:a.plansSection,children:[e.jsxs("div",{className:a.plans,children:[e.jsx(y.Typography,{as:"h4",defaultVariant:"labelSm",emphasis:!0,weight:"regular",children:"Subscribe & Save"}),s.map(i=>e.jsx(B.PlanCard,{plan:i,onSelect:f,isActive:g===i.id},i.id))]}),e.jsx("div",{className:u.cn(a.ratingContainer,a.desktopOnly),children:e.jsx(_.RatingPreview,{rating:v,text:j||"No reviews yet"})}),e.jsxs("div",{className:a.actions,children:[e.jsx(C.Button,{variant:"primary",size:"lg",as:"a",href:T||"#0",...t,children:t.label}),e.jsx(V.SmartCallout,{label:"HSA/FSA Eligible"})]})]})]})})};exports.IndividualProductCard=O;
|
|
@@ -2,18 +2,23 @@ import { ButtonProps } from '../../components/Button';
|
|
|
2
2
|
import { TextButtonProps } from '../../components/TextButton';
|
|
3
3
|
import { TProductFeature, TProductPlan } from './types';
|
|
4
4
|
import { EAnalyticsEvent } from '../../types/analytics';
|
|
5
|
+
import { QuoteProps } from '../../components/Quote';
|
|
6
|
+
import { TPlainFeaturesGroupProps } from '../../components/PlainFeaturesGroup/PlainFeaturesGroup';
|
|
5
7
|
|
|
6
8
|
type IndividualProductCardProps = {
|
|
7
9
|
zenpatientId: string;
|
|
8
10
|
name: string;
|
|
9
11
|
images: Array<string>;
|
|
12
|
+
quote?: QuoteProps;
|
|
10
13
|
features: Array<TProductFeature>;
|
|
14
|
+
featuresGroup?: TPlainFeaturesGroupProps;
|
|
11
15
|
description?: string;
|
|
12
16
|
label?: string;
|
|
13
17
|
rating?: {
|
|
14
18
|
stars?: number;
|
|
15
19
|
totalReviews?: number;
|
|
16
20
|
};
|
|
21
|
+
ratingText?: string;
|
|
17
22
|
button: {
|
|
18
23
|
label: string;
|
|
19
24
|
} & ButtonProps;
|
|
@@ -25,6 +30,7 @@ type IndividualProductCardProps = {
|
|
|
25
30
|
onSelectPlan?: (planId: TProductPlan['id']) => void;
|
|
26
31
|
trackingEvent?: EAnalyticsEvent.userSelectedPlan;
|
|
27
32
|
trackingLocation?: string;
|
|
33
|
+
signupUrl?: string;
|
|
28
34
|
};
|
|
29
|
-
export declare const IndividualProductCard: ({ zenpatientId, name, description, features, images, label, rating, plans, button, textButton, selectedPlanId, onSelectPlan, trackingEvent, trackingLocation, }: IndividualProductCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare const IndividualProductCard: ({ zenpatientId, name, description, features, featuresGroup, images, quote, label, rating, ratingText, plans, button, textButton, selectedPlanId, onSelectPlan, trackingEvent, trackingLocation, signupUrl, }: IndividualProductCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
36
|
export {};
|
|
@@ -1,118 +1,120 @@
|
|
|
1
|
-
import { jsx as i, jsxs as
|
|
2
|
-
import { cn as
|
|
1
|
+
import { jsx as i, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { cn as m } from "../../utils/cn/cn.es.js";
|
|
3
3
|
import { EAnalyticsEventType as p, EAnalyticsEvent as b } from "../../types/analytics/analytics.es.js";
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
import e from "../../modules/IndividualProductCard/individualProductCard.module.css";
|
|
5
|
+
import { PlainFeaturesGroup as D } from "../../components/PlainFeaturesGroup/PlainFeaturesGroup.es.js";
|
|
6
|
+
import { ImageGallery as G } from "../../components/ImageGallery/ImageGallery.es.js";
|
|
7
|
+
import { RatingPreview as w } from "../../components/RatingPreview/RatingPreview.es.js";
|
|
8
|
+
import { Quote as H } from "../../components/Quote/Quote.es.js";
|
|
9
|
+
import { Typography as h } from "../../components/Typography/Typography.es.js";
|
|
10
|
+
import { Button as k } from "../../components/Button/Button.es.js";
|
|
11
|
+
import { TextButton as L } from "../../components/TextButton/TextButton.es.js";
|
|
12
|
+
import { Features as O } from "./components/Features/Features.es.js";
|
|
13
|
+
import { PlanCard as P } from "./components/PlanCard/PlanCard.es.js";
|
|
14
|
+
import { SmartCallout as Q } from "../../components/SmartCallout/SmartCallout.es.js";
|
|
15
|
+
const ei = ({
|
|
16
|
+
zenpatientId: E,
|
|
17
|
+
name: d,
|
|
16
18
|
description: v,
|
|
17
|
-
features:
|
|
19
|
+
features: A,
|
|
20
|
+
featuresGroup: y,
|
|
18
21
|
images: S,
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
quote: f,
|
|
23
|
+
label: I,
|
|
24
|
+
rating: u,
|
|
25
|
+
ratingText: N,
|
|
21
26
|
plans: o,
|
|
22
|
-
button:
|
|
23
|
-
textButton:
|
|
24
|
-
selectedPlanId:
|
|
25
|
-
onSelectPlan:
|
|
26
|
-
trackingEvent:
|
|
27
|
-
trackingLocation:
|
|
27
|
+
button: n,
|
|
28
|
+
textButton: t,
|
|
29
|
+
selectedPlanId: g,
|
|
30
|
+
onSelectPlan: c,
|
|
31
|
+
trackingEvent: V,
|
|
32
|
+
trackingLocation: C,
|
|
33
|
+
signupUrl: _
|
|
28
34
|
}) => {
|
|
29
|
-
const
|
|
30
|
-
if (
|
|
31
|
-
const
|
|
32
|
-
p.interaction,
|
|
35
|
+
const s = o && o.length > 0 && c, F = (a) => {
|
|
36
|
+
if (c == null || c(a), V) {
|
|
37
|
+
const r = o == null ? void 0 : o.find((z) => z.id === a);
|
|
38
|
+
p.interaction, r == null || r.price, r == null || r.duration;
|
|
33
39
|
}
|
|
34
|
-
},
|
|
35
|
-
var
|
|
36
|
-
const
|
|
40
|
+
}, T = () => {
|
|
41
|
+
var r;
|
|
42
|
+
const a = {
|
|
37
43
|
event: b.ctaClicked,
|
|
38
|
-
location:
|
|
44
|
+
location: C || "not_set",
|
|
39
45
|
type: p.interaction,
|
|
40
46
|
component: "IndividualProductCard",
|
|
41
47
|
element: "primary_button",
|
|
42
48
|
payload: {
|
|
43
|
-
productId:
|
|
44
|
-
ctaLabel:
|
|
45
|
-
productName:
|
|
46
|
-
selectedPlanId:
|
|
49
|
+
productId: E,
|
|
50
|
+
ctaLabel: n.label,
|
|
51
|
+
productName: d,
|
|
52
|
+
selectedPlanId: g || "none"
|
|
47
53
|
}
|
|
48
54
|
};
|
|
49
|
-
(
|
|
50
|
-
},
|
|
51
|
-
var
|
|
52
|
-
(
|
|
55
|
+
(r = window.eventBus) == null || r.emit("analytics", a);
|
|
56
|
+
}, j = () => {
|
|
57
|
+
var a;
|
|
58
|
+
(a = window.eventBus) == null || a.emit("analytics", {
|
|
53
59
|
event: b.ctaClicked,
|
|
54
|
-
location:
|
|
60
|
+
location: C || "not_set",
|
|
55
61
|
type: p.interaction,
|
|
56
62
|
component: "IndividualProductCard",
|
|
57
63
|
element: "secondary_button",
|
|
58
64
|
payload: {
|
|
59
|
-
ctaLabel:
|
|
60
|
-
productName:
|
|
65
|
+
ctaLabel: t == null ? void 0 : t.label,
|
|
66
|
+
productName: d
|
|
61
67
|
}
|
|
62
68
|
});
|
|
63
69
|
};
|
|
64
|
-
return /* @__PURE__ */ i("section", { className:
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
|
|
70
|
+
return /* @__PURE__ */ i("section", { className: e.root, children: /* @__PURE__ */ l("div", { className: m(e.container, !s && e.noPlans), children: [
|
|
71
|
+
/* @__PURE__ */ l("div", { className: e.gallery, children: [
|
|
72
|
+
/* @__PURE__ */ i(G, { images: S, label: I }),
|
|
73
|
+
/* @__PURE__ */ i("div", { className: m(e.ratingContainer, e.mobileOnly), children: /* @__PURE__ */ i(w, { rating: u, text: N || "No reviews yet" }) }),
|
|
74
|
+
f && /* @__PURE__ */ i("div", { className: e.quoteWrapper, children: /* @__PURE__ */ i(H, { ...f }) })
|
|
75
|
+
] }),
|
|
76
|
+
/* @__PURE__ */ l("div", { className: e.info, children: [
|
|
77
|
+
/* @__PURE__ */ l("div", { className: e.infoHeader, children: [
|
|
78
|
+
/* @__PURE__ */ i(h, { as: "h3", defaultVariant: "displayXs", mobileVariant: "headingLg", weight: "regular", children: d }),
|
|
68
79
|
!!v && /* @__PURE__ */ i(
|
|
69
|
-
|
|
80
|
+
h,
|
|
70
81
|
{
|
|
71
82
|
as: "p",
|
|
72
83
|
defaultVariant: "bodySm",
|
|
73
|
-
className:
|
|
84
|
+
className: e.infoDescription,
|
|
74
85
|
weight: "regular",
|
|
75
86
|
children: v
|
|
76
87
|
}
|
|
77
|
-
)
|
|
78
|
-
n && /* @__PURE__ */ r("div", { className: a.ratingContainer, children: [
|
|
79
|
-
!!n.stars && /* @__PURE__ */ i(z, { rating: n.stars, size: "sm" }),
|
|
80
|
-
!!n.totalReviews && /* @__PURE__ */ r(t, { as: "p", defaultVariant: "labelSm", emphasis: !0, children: [
|
|
81
|
-
n.totalReviews,
|
|
82
|
-
" reviews"
|
|
83
|
-
] })
|
|
84
|
-
] })
|
|
88
|
+
)
|
|
85
89
|
] }),
|
|
86
|
-
/* @__PURE__ */
|
|
87
|
-
|
|
88
|
-
/* @__PURE__ */ i(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
] })
|
|
93
|
-
] })
|
|
90
|
+
!s && /* @__PURE__ */ l("div", { className: e.actions, children: [
|
|
91
|
+
/* @__PURE__ */ i(k, { variant: "primary", size: "lg", ...n, onClick: T, children: n.label }),
|
|
92
|
+
t && /* @__PURE__ */ i(L, { ...t, onClick: j, children: t.label })
|
|
93
|
+
] }),
|
|
94
|
+
/* @__PURE__ */ i(O, { features: A }),
|
|
95
|
+
y && /* @__PURE__ */ i(D, { ...y })
|
|
94
96
|
] }),
|
|
95
|
-
/* @__PURE__ */
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
/* @__PURE__ */ i(
|
|
99
|
-
|
|
100
|
-
D,
|
|
97
|
+
s && /* @__PURE__ */ l("div", { className: e.plansSection, children: [
|
|
98
|
+
/* @__PURE__ */ l("div", { className: e.plans, children: [
|
|
99
|
+
/* @__PURE__ */ i(h, { as: "h4", defaultVariant: "labelSm", emphasis: !0, weight: "regular", children: "Subscribe & Save" }),
|
|
100
|
+
o.map((a) => /* @__PURE__ */ i(
|
|
101
|
+
P,
|
|
101
102
|
{
|
|
102
|
-
plan:
|
|
103
|
-
onSelect:
|
|
104
|
-
isActive:
|
|
103
|
+
plan: a,
|
|
104
|
+
onSelect: F,
|
|
105
|
+
isActive: g === a.id
|
|
105
106
|
},
|
|
106
|
-
|
|
107
|
+
a.id
|
|
107
108
|
))
|
|
108
109
|
] }),
|
|
109
|
-
/* @__PURE__ */
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
/* @__PURE__ */ i("div", { className: m(e.ratingContainer, e.desktopOnly), children: /* @__PURE__ */ i(w, { rating: u, text: N || "No reviews yet" }) }),
|
|
111
|
+
/* @__PURE__ */ l("div", { className: e.actions, children: [
|
|
112
|
+
/* @__PURE__ */ i(k, { variant: "primary", size: "lg", as: "a", href: _ || "#0", ...n, children: n.label }),
|
|
113
|
+
/* @__PURE__ */ i(Q, { label: "HSA/FSA Eligible" })
|
|
112
114
|
] })
|
|
113
115
|
] })
|
|
114
116
|
] }) });
|
|
115
117
|
};
|
|
116
118
|
export {
|
|
117
|
-
|
|
119
|
+
ei as IndividualProductCard
|
|
118
120
|
};
|
|
@@ -10,15 +10,18 @@
|
|
|
10
10
|
max-width: var(--content-max-width);
|
|
11
11
|
padding: 64px 120px;
|
|
12
12
|
display: grid;
|
|
13
|
-
grid-template-columns:
|
|
14
|
-
grid-template-areas:
|
|
15
|
-
|
|
13
|
+
grid-template-columns: 1fr 1fr;
|
|
14
|
+
grid-template-areas:
|
|
15
|
+
"gallery info"
|
|
16
|
+
"gallery plans";
|
|
17
|
+
column-gap: 64px;
|
|
18
|
+
row-gap: 32px;
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
.container.noPlans {
|
|
19
22
|
grid-template-columns: 300px 1fr;
|
|
20
|
-
grid-template-areas: "info
|
|
21
|
-
gap: 120px;
|
|
23
|
+
grid-template-areas: "gallery info";
|
|
24
|
+
column-gap: 120px;
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
.info {
|
|
@@ -42,6 +45,16 @@
|
|
|
42
45
|
|
|
43
46
|
.gallery {
|
|
44
47
|
grid-area: gallery;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
gap: 32px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.quoteWrapper {
|
|
55
|
+
width: 100%;
|
|
56
|
+
max-width: 50ch;
|
|
57
|
+
margin: 0 auto;
|
|
45
58
|
}
|
|
46
59
|
|
|
47
60
|
.plansSection {
|
|
@@ -64,11 +77,7 @@
|
|
|
64
77
|
}
|
|
65
78
|
|
|
66
79
|
.ratingContainer {
|
|
67
|
-
|
|
68
|
-
width: 100%;
|
|
69
|
-
align-items: center;
|
|
70
|
-
justify-content: flex-start;
|
|
71
|
-
gap: var(--spacing-12);
|
|
80
|
+
margin: 0 auto;
|
|
72
81
|
}
|
|
73
82
|
|
|
74
83
|
.actions {
|
|
@@ -80,11 +89,18 @@
|
|
|
80
89
|
gap: 16px;
|
|
81
90
|
}
|
|
82
91
|
|
|
92
|
+
.mobileOnly {
|
|
93
|
+
display: none;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.desktopOnly {
|
|
97
|
+
display: block;
|
|
98
|
+
}
|
|
99
|
+
|
|
83
100
|
@media (width <= 1260px) {
|
|
84
101
|
.container {
|
|
85
102
|
padding: 64px 64px;
|
|
86
|
-
|
|
87
|
-
gap: 40px;
|
|
103
|
+
column-gap: 40px;
|
|
88
104
|
}
|
|
89
105
|
}
|
|
90
106
|
|
|
@@ -92,15 +108,7 @@
|
|
|
92
108
|
.container,
|
|
93
109
|
.container.noPlans {
|
|
94
110
|
padding: 24px 20px 64px;
|
|
95
|
-
|
|
96
|
-
gap: 24px;
|
|
97
|
-
grid-template-areas:
|
|
98
|
-
"info gallery"
|
|
99
|
-
"plans plans";
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.gallery {
|
|
103
|
-
max-width: 472px;
|
|
111
|
+
column-gap: 24px;
|
|
104
112
|
}
|
|
105
113
|
}
|
|
106
114
|
|
|
@@ -109,10 +117,18 @@
|
|
|
109
117
|
.container.noPlans {
|
|
110
118
|
padding: 24px 20px 64px;
|
|
111
119
|
grid-template-columns: 1fr;
|
|
112
|
-
gap: 24px;
|
|
120
|
+
column-gap: 24px;
|
|
113
121
|
grid-template-areas:
|
|
114
122
|
"gallery"
|
|
115
123
|
"info"
|
|
116
124
|
"plans";
|
|
117
125
|
}
|
|
126
|
+
|
|
127
|
+
.desktopOnly {
|
|
128
|
+
display: none;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.mobileOnly {
|
|
132
|
+
display: block;
|
|
133
|
+
}
|
|
118
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("../../types/analytics/analytics.cjs.js"),l=require("../../utils/cn/cn.cjs.js"),a=require("../../src/modules/IndividualProductCardV2/individualProductCardV2.module.css"),g=require("../../components/ImageGallery/ImageGallery.cjs.js"),d=require("../../components/RatingPreview/RatingPreview.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("../../types/analytics/analytics.cjs.js"),l=require("../../utils/cn/cn.cjs.js"),a=require("../../src/modules/IndividualProductCardV2/individualProductCardV2.module.css"),g=require("../../components/ImageGallery/ImageGallery.cjs.js"),d=require("../../components/RatingPreview/RatingPreview.cjs.js"),s=require("../../components/Typography/Typography.cjs.js"),v=require("../IndividualProductCard/components/Features/Features.cjs.js"),_=require("../../components/PlainFeaturesGroup/PlainFeaturesGroup.cjs.js"),P=require("../../components/PriceDisplay/PriceDisplay.cjs.js"),q=require("../../components/Button/Button.cjs.js"),b=require("../../components/Quote/Quote.cjs.js"),N=({zenpatientId:u,signupUrl:n,name:p,description:y,label:m,images:h,features:j,quote:t,priceDisplay:i,featuresGroup:r,ratingPreview:c})=>{const x={event:o.EAnalyticsEvent.ctaClicked,type:o.EAnalyticsEventType.interaction,component:"Pricing",payload:{ctaLabel:"GET STARTED",ctaLink:n,productId:u}};return e.jsx("section",{className:a.root,children:e.jsxs("div",{className:a.mainContainer,children:[e.jsxs("div",{className:a.leftColumn,children:[e.jsx(g.ImageGallery,{images:h,label:m}),e.jsx("div",{className:l.cn(a.ratingContainer,a.mobileOnly),children:e.jsx(d.RatingPreview,{...c})}),t&&e.jsx("div",{className:a.quoteWrapper,children:e.jsx(b.Quote,{...t})})]}),e.jsxs("div",{className:a.rightColumn,children:[e.jsxs("div",{className:a.header,children:[e.jsx(s.Typography,{as:"h1",defaultVariant:"displayXs",mobileVariant:"headingLg",children:p}),e.jsx(s.Typography,{as:"p",defaultVariant:"bodyMd",mobileVariant:"bodySm",className:a.description,children:y})]}),e.jsx(v.Features,{features:j}),r&&e.jsx(_.PlainFeaturesGroup,{...r}),i&&e.jsx(P.PriceDisplay,{items:i}),e.jsx("div",{className:l.cn(a.ratingContainer,a.desktopOnly),children:e.jsx(d.RatingPreview,{...c})}),e.jsxs("div",{className:a.actions,children:[e.jsx(q.Button,{as:"a",variant:"primary",size:"lg",href:n,analyticsProps:x,children:"Get started"}),e.jsx(s.Typography,{as:"p",defaultVariant:"labelMd",className:a.hsaFsaText,children:"HSA/FSA Eligible"})]})]})]})})};exports.IndividualProductCardV2=N;
|
|
@@ -4,12 +4,12 @@ import { cn as m } from "../../utils/cn/cn.es.js";
|
|
|
4
4
|
import i from "../../modules/IndividualProductCardV2/individualProductCardV2.module.css";
|
|
5
5
|
import { ImageGallery as g } from "../../components/ImageGallery/ImageGallery.es.js";
|
|
6
6
|
import { RatingPreview as c } from "../../components/RatingPreview/RatingPreview.es.js";
|
|
7
|
-
import { Quote as E } from "../../components/Quote/Quote.es.js";
|
|
8
7
|
import { Typography as r } from "../../components/Typography/Typography.es.js";
|
|
9
|
-
import { Features as
|
|
10
|
-
import { PlainFeaturesGroup as
|
|
11
|
-
import { PriceDisplay as
|
|
12
|
-
import { Button as
|
|
8
|
+
import { Features as E } from "../IndividualProductCard/components/Features/Features.es.js";
|
|
9
|
+
import { PlainFeaturesGroup as C } from "../../components/PlainFeaturesGroup/PlainFeaturesGroup.es.js";
|
|
10
|
+
import { PriceDisplay as A } from "../../components/PriceDisplay/PriceDisplay.es.js";
|
|
11
|
+
import { Button as T } from "../../components/Button/Button.es.js";
|
|
12
|
+
import { Quote as V } from "../../components/Quote/Quote.es.js";
|
|
13
13
|
const z = ({
|
|
14
14
|
zenpatientId: d,
|
|
15
15
|
signupUrl: t,
|
|
@@ -37,7 +37,7 @@ const z = ({
|
|
|
37
37
|
/* @__PURE__ */ e("div", { className: i.leftColumn, children: [
|
|
38
38
|
/* @__PURE__ */ a(g, { images: f, label: y }),
|
|
39
39
|
/* @__PURE__ */ a("div", { className: m(i.ratingContainer, i.mobileOnly), children: /* @__PURE__ */ a(c, { ...s }) }),
|
|
40
|
-
n && /* @__PURE__ */ a("div", { className: i.quoteWrapper, children: /* @__PURE__ */ a(
|
|
40
|
+
n && /* @__PURE__ */ a("div", { className: i.quoteWrapper, children: /* @__PURE__ */ a(V, { ...n }) })
|
|
41
41
|
] }),
|
|
42
42
|
/* @__PURE__ */ e("div", { className: i.rightColumn, children: [
|
|
43
43
|
/* @__PURE__ */ e("div", { className: i.header, children: [
|
|
@@ -53,13 +53,13 @@ const z = ({
|
|
|
53
53
|
}
|
|
54
54
|
)
|
|
55
55
|
] }),
|
|
56
|
-
/* @__PURE__ */ a(
|
|
57
|
-
l && /* @__PURE__ */ a(
|
|
58
|
-
o && /* @__PURE__ */ a(
|
|
56
|
+
/* @__PURE__ */ a(E, { features: v }),
|
|
57
|
+
l && /* @__PURE__ */ a(C, { ...l }),
|
|
58
|
+
o && /* @__PURE__ */ a(A, { items: o }),
|
|
59
59
|
/* @__PURE__ */ a("div", { className: m(i.ratingContainer, i.desktopOnly), children: /* @__PURE__ */ a(c, { ...s }) }),
|
|
60
60
|
/* @__PURE__ */ e("div", { className: i.actions, children: [
|
|
61
61
|
/* @__PURE__ */ a(
|
|
62
|
-
|
|
62
|
+
T,
|
|
63
63
|
{
|
|
64
64
|
as: "a",
|
|
65
65
|
variant: "primary",
|
|
@@ -6,45 +6,43 @@
|
|
|
6
6
|
background-size: cover;
|
|
7
7
|
background-repeat: no-repeat;
|
|
8
8
|
background-position: center;
|
|
9
|
+
background-color: var(--color-black);
|
|
10
|
+
-webkit-font-smoothing: antialiased;
|
|
11
|
+
-moz-osx-font-smoothing: grayscale;
|
|
9
12
|
}
|
|
10
13
|
|
|
11
14
|
.container {
|
|
12
15
|
position: relative;
|
|
13
16
|
display: flex;
|
|
14
|
-
|
|
17
|
+
align-items: flex-end;
|
|
15
18
|
width: 100%;
|
|
16
|
-
|
|
17
|
-
height:
|
|
19
|
+
height: 100vh;
|
|
20
|
+
min-height: 50vh;
|
|
18
21
|
}
|
|
19
22
|
|
|
20
23
|
.headline {
|
|
21
24
|
position: relative;
|
|
22
|
-
display:
|
|
25
|
+
display: grid;
|
|
23
26
|
width: 100%;
|
|
24
|
-
|
|
27
|
+
grid-template-columns: 1fr var(--border-width-sm) 1fr;
|
|
25
28
|
justify-content: center;
|
|
26
|
-
align-items: flex-start;
|
|
27
|
-
margin-top: 564px;
|
|
28
29
|
margin-bottom: 30px;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
.infoContainer,
|
|
32
33
|
.titleContainer {
|
|
33
34
|
display: flex;
|
|
34
|
-
|
|
35
|
+
align-items: center;
|
|
36
|
+
padding: 46px;
|
|
35
37
|
position: relative;
|
|
36
|
-
width: 50%;
|
|
37
38
|
height: 100%;
|
|
38
39
|
overflow: hidden;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
.infoContainer {
|
|
42
|
-
padding-left: 46px;
|
|
43
|
-
padding-bottom: 46px;
|
|
44
|
-
}
|
|
45
42
|
|
|
46
43
|
.titleContainer {
|
|
47
44
|
justify-content: flex-end;
|
|
45
|
+
align-items: flex-end;
|
|
48
46
|
padding-right: 46px;
|
|
49
47
|
}
|
|
50
48
|
|
|
@@ -81,16 +79,14 @@
|
|
|
81
79
|
|
|
82
80
|
.title {
|
|
83
81
|
color: var(--color-white);
|
|
84
|
-
|
|
82
|
+
max-width: 14ch;
|
|
85
83
|
}
|
|
86
84
|
|
|
87
85
|
.midBorder {
|
|
88
86
|
position: relative;
|
|
89
|
-
|
|
90
|
-
margin-top: 38px;
|
|
87
|
+
margin-block: 38px;
|
|
91
88
|
width: var(--border-width-sm);
|
|
92
89
|
background: var(--border-color-alpha-white-20);
|
|
93
|
-
min-height: 1px;
|
|
94
90
|
}
|
|
95
91
|
|
|
96
92
|
.infoBox {
|
|
@@ -113,17 +109,21 @@
|
|
|
113
109
|
|
|
114
110
|
@media screen and (width <= 768px) {
|
|
115
111
|
.headline {
|
|
116
|
-
flex-direction: column;
|
|
117
|
-
margin-top: 372px;
|
|
118
|
-
margin-bottom: 16px;
|
|
119
112
|
height: 100%;
|
|
120
|
-
|
|
113
|
+
grid-template-columns: 1fr;
|
|
114
|
+
grid-template-rows: 1fr var(--border-width-sm) 1fr;
|
|
115
|
+
align-items: end;
|
|
116
|
+
height: fit-content;
|
|
121
117
|
}
|
|
122
118
|
|
|
123
119
|
.infoContainer,
|
|
124
120
|
.titleContainer {
|
|
121
|
+
max-height: fit-content;
|
|
125
122
|
padding: 24px;
|
|
126
123
|
width: 100%;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.titleContainer {
|
|
127
127
|
justify-content: flex-start;
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -151,3 +151,10 @@
|
|
|
151
151
|
width: 100%;
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
@media screen and ( height > 1080px) {
|
|
157
|
+
.container {
|
|
158
|
+
height: 50vh;
|
|
159
|
+
}
|
|
160
|
+
}
|