@zenpatient-org/healthspan-marketing-ui 0.1.168 → 0.1.170
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/Button/Button.cjs.js +1 -1
- package/dist/components/Button/Button.d.ts +3 -0
- package/dist/components/Button/Button.es.js +34 -28
- package/dist/components/Callback/Callback.d.ts +1 -0
- package/dist/components/Pricing/Pricing.cjs.js +1 -1
- package/dist/components/Pricing/Pricing.d.ts +1 -1
- package/dist/components/Pricing/Pricing.es.js +51 -37
- package/dist/components/Pricing/types.d.ts +5 -1
- package/dist/components/ProductGallery/ProductGallery.cjs.js +1 -1
- package/dist/components/ProductGallery/ProductGallery.es.js +4 -3
- package/dist/components/ProductGalleryCard/ProductGalleryCard.cjs.js +1 -1
- package/dist/components/ProductGalleryCard/ProductGalleryCard.d.ts +1 -1
- package/dist/components/ProductGalleryCard/ProductGalleryCard.es.js +51 -22
- package/dist/components/ProductGalleryCard/types.d.ts +1 -0
- package/dist/components/ProductListing/ProductListing.cjs.js +1 -1
- package/dist/components/ProductListing/ProductListing.d.ts +3 -1
- package/dist/components/ProductListing/ProductListing.es.js +48 -25
- package/dist/healthspan-marketing-ui.css +1 -1
- package/dist/modules/CallToAction/CallToAction.cjs.js +1 -1
- package/dist/modules/CallToAction/CallToAction.es.js +86 -73
- package/dist/modules/Callback/Callback.cjs.js +1 -1
- package/dist/modules/Callback/Callback.d.ts +3 -1
- package/dist/modules/Callback/Callback.es.js +46 -24
- package/dist/modules/Claims/Claims.cjs.js +1 -0
- package/dist/modules/Claims/Claims.es.js +35 -0
- package/dist/modules/Claims/claims.module.css.cjs.js +1 -0
- package/dist/modules/Claims/claims.module.css.es.js +19 -0
- package/dist/modules/Compare/Compare.cjs.js +1 -1
- package/dist/modules/Compare/Compare.es.js +12 -12
- package/dist/modules/FeaturedIn/FeaturedIn.cjs.js +1 -1
- package/dist/modules/FeaturedIn/FeaturedIn.es.js +23 -32
- package/dist/modules/FeaturedIn/components/CtaFeaturedIn.cjs.js +1 -0
- package/dist/modules/FeaturedIn/components/CtaFeaturedIn.d.ts +5 -0
- package/dist/modules/FeaturedIn/components/CtaFeaturedIn.es.js +22 -0
- package/dist/modules/HowItWorks/HowItWorks.cjs.js +1 -1
- package/dist/modules/HowItWorks/HowItWorks.es.js +61 -30
- package/dist/modules/ImageWithBenefits/ImageWithBenefits.cjs.js +1 -0
- package/dist/modules/ImageWithBenefits/ImageWithBenefits.d.ts +25 -0
- package/dist/modules/ImageWithBenefits/ImageWithBenefits.es.js +52 -0
- package/dist/modules/ImageWithBenefits/imageWithBenefits.module.css.cjs.js +1 -0
- package/dist/modules/ImageWithBenefits/imageWithBenefits.module.css.es.js +27 -0
- package/dist/modules/ImageWithBenefits/index.d.ts +1 -0
- package/dist/modules/IndividualProductCard/IndividualProductCard.cjs.js +1 -1
- package/dist/modules/IndividualProductCard/IndividualProductCard.d.ts +8 -3
- package/dist/modules/IndividualProductCard/IndividualProductCard.es.js +98 -67
- package/dist/modules/ProgramsDetailsHero/ProgramsDetailsHero.cjs.js +1 -1
- package/dist/modules/ProgramsDetailsHero/ProgramsDetailsHero.es.js +38 -26
- package/dist/modules/YourProtocol/YourProtocol.cjs.js +1 -1
- package/dist/modules/YourProtocol/YourProtocol.es.js +48 -35
- package/dist/pageComponents/HomepageHero/HomepageHero.cjs.js +1 -1
- package/dist/pageComponents/HomepageHero/HomepageHero.es.js +19 -28
- package/dist/pageComponents/LabsHero/LabsHero.cjs.js +1 -1
- package/dist/pageComponents/LabsHero/LabsHero.es.js +54 -43
- package/dist/pageComponents/PersonalizedProtocolHero/PersonalizedProtocolHero.cjs.js +1 -1
- package/dist/pageComponents/PersonalizedProtocolHero/PersonalizedProtocolHero.es.js +73 -60
- package/dist/types/analytics/analytics.cjs.js +1 -1
- package/dist/types/analytics/analytics.es.js +3 -3
- package/dist/types/analytics.d.ts +26 -3
- package/package.json +11 -1
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import { jsxs as l, jsx as
|
|
1
|
+
import { jsxs as l, jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import { Fragment as d } from "react";
|
|
3
|
-
import { InfiniteScroll as
|
|
3
|
+
import { InfiniteScroll as s } from "../../components/InfiniteScroll/InfiniteScroll.es.js";
|
|
4
4
|
import { Typography as o } from "../../components/Typography/Typography.es.js";
|
|
5
5
|
import { cn as i } from "../../utils/cn/cn.es.js";
|
|
6
6
|
import e from "./featuredIn.module.css.es.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
import { CtaFeaturedIn as c } from "./components/CtaFeaturedIn.es.js";
|
|
8
|
+
function u({ media: r }) {
|
|
9
|
+
return /* @__PURE__ */ t("div", { className: e.mediaFeaturedInBlock, children: r.filter((n) => !!n.logo).map(({ logo: n, url: a }, m) => /* @__PURE__ */ t(
|
|
10
|
+
a ? "a" : "div",
|
|
10
11
|
{
|
|
11
|
-
href:
|
|
12
|
+
href: a,
|
|
12
13
|
target: "_blank",
|
|
13
14
|
rel: "noopener noreferrer",
|
|
14
15
|
className: e.mediaFeaturedInImageContainer,
|
|
15
|
-
children: /* @__PURE__ */
|
|
16
|
+
children: /* @__PURE__ */ t("div", { className: e.mediaFeaturedInImage, style: { backgroundImage: `url(${n})` } })
|
|
16
17
|
},
|
|
17
|
-
`${
|
|
18
|
+
`${a}_${m}`
|
|
18
19
|
)) });
|
|
19
20
|
}
|
|
20
|
-
function
|
|
21
|
-
return /* @__PURE__ */
|
|
21
|
+
function p({ quote: r }) {
|
|
22
|
+
return /* @__PURE__ */ t("div", { className: e.quoteFeaturedInBlock, children: /* @__PURE__ */ l(
|
|
22
23
|
o,
|
|
23
24
|
{
|
|
24
25
|
as: "p",
|
|
@@ -33,37 +34,27 @@ function u({ quote: r }) {
|
|
|
33
34
|
}
|
|
34
35
|
) });
|
|
35
36
|
}
|
|
36
|
-
function
|
|
37
|
-
return /* @__PURE__ */ a(
|
|
38
|
-
"a",
|
|
39
|
-
{
|
|
40
|
-
href: "https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",
|
|
41
|
-
className: e.ctaFeaturedIn,
|
|
42
|
-
children: /* @__PURE__ */ a("span", { className: e.ctaFeaturedInText, children: r })
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
function y({ label: r, content: n }) {
|
|
37
|
+
function q({ label: r, content: n }) {
|
|
47
38
|
return /* @__PURE__ */ l("section", { className: e.container, children: [
|
|
48
|
-
/* @__PURE__ */
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
-
/* @__PURE__ */
|
|
51
|
-
/* @__PURE__ */
|
|
52
|
-
|
|
39
|
+
/* @__PURE__ */ t("p", { className: i(e.title, e.customTitle), children: "(Featured In)" }),
|
|
40
|
+
/* @__PURE__ */ t(o, { as: "p", defaultVariant: "displayMd", className: i(e.title, e.defaultTitle), children: "(Featured In)" }),
|
|
41
|
+
/* @__PURE__ */ t(o, { as: "p", defaultVariant: "labelMd", mobileVariant: "labelSm", emphasis: !0, className: e.label, children: r }),
|
|
42
|
+
/* @__PURE__ */ t(
|
|
43
|
+
s,
|
|
53
44
|
{
|
|
54
45
|
items: n,
|
|
55
46
|
contentClassName: e.content,
|
|
56
47
|
itemClassName: e.item,
|
|
57
48
|
rootClassName: e.scrollRoot,
|
|
58
|
-
renderItem: (
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
] },
|
|
49
|
+
renderItem: (a) => /* @__PURE__ */ l(d, { children: [
|
|
50
|
+
a.type === "media" && /* @__PURE__ */ t(u, { media: a.media }),
|
|
51
|
+
a.type === "quote" && /* @__PURE__ */ t(p, { quote: a.quote }),
|
|
52
|
+
a.type === "cta" && /* @__PURE__ */ t(c, { button_label: a.button_label })
|
|
53
|
+
] }, a.type)
|
|
63
54
|
}
|
|
64
55
|
)
|
|
65
56
|
] });
|
|
66
57
|
}
|
|
67
58
|
export {
|
|
68
|
-
|
|
59
|
+
q as FeaturedIn
|
|
69
60
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),a=require("../../../types/analytics/analytics.cjs.js"),c=require("../featuredIn.module.css.cjs.js");function s({button_label:r}){const e="https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",i=()=>{var t;(t=window.eventBus)==null||t.emit("analytics",{event:a.EAnalyticsEvent.ctaClicked,type:a.EAnalyticsEventType.interaction,component:"FeaturedIn",element:"primary_button",payload:{link:e}})};return n.jsx("a",{href:e,onClick:i,className:c.default.ctaFeaturedIn,children:n.jsx("span",{className:c.default.ctaFeaturedInText,children:r})})}exports.CtaFeaturedIn=s;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { EAnalyticsEventType as i, EAnalyticsEvent as o } from "../../../types/analytics/analytics.es.js";
|
|
4
|
+
import a from "../featuredIn.module.css.es.js";
|
|
5
|
+
function d({ button_label: c }) {
|
|
6
|
+
const t = "https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948";
|
|
7
|
+
return /* @__PURE__ */ n("a", { href: t, onClick: () => {
|
|
8
|
+
var e;
|
|
9
|
+
(e = window.eventBus) == null || e.emit("analytics", {
|
|
10
|
+
event: o.ctaClicked,
|
|
11
|
+
type: i.interaction,
|
|
12
|
+
component: "FeaturedIn",
|
|
13
|
+
element: "primary_button",
|
|
14
|
+
payload: {
|
|
15
|
+
link: t
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}, className: a.ctaFeaturedIn, children: /* @__PURE__ */ n("span", { className: a.ctaFeaturedInText, children: c }) });
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
d as CtaFeaturedIn
|
|
22
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("../../components/Button/Button.cjs.js"),c=require("../../components/ProgressButton/ProgressButton.cjs.js"),p=require("../../components/Typography/Typography.cjs.js"),v=require("./components/Content/Content.cjs.js"),t=require("./howItWorks.module.css.cjs.js"),y=require("../../utils/useSwiper/useSwiper.cjs.js"),d=require("../../types/analytics/analytics.cjs.js"),m=({title:u,getStartedLink:n,items:h,colorScheme:i="light"})=>{const s=y.useSwiper(),a=i==="dark"?"muted-invert":"muted",o=C=>{var r;(r=window.eventBus)==null||r.emit("analytics",{event:d.EAnalyticsEvent.ctaClicked,type:d.EAnalyticsEventType.interaction,component:"HowItWorks",payload:{link:n}})};return e.jsxs("section",{className:t.default.root,"data-color-scheme":i,children:[e.jsxs("div",{className:t.default.headerContainer,children:[e.jsx(p.Typography,{as:"h2",defaultVariant:"displayMd",mobileVariant:"headingXl",children:u}),n&&e.jsx("div",{className:t.default.desktop,children:e.jsx(l.Button,{as:"a",href:n,variant:a,size:"lg",onClick:o,children:"Get started"})}),n&&e.jsx("div",{className:t.default.mobile,children:e.jsx(l.Button,{as:"a",href:n,variant:a,size:"sm",onClick:o,children:"Get started"})}),!n&&e.jsx("div",{className:t.default.navigation,children:e.jsx(c.ProgressButton,{invert:i==="dark",left:{disabled:s.isBeginning,onClick:s.handlePrevClick},right:{disabled:s.isEnd,onClick:s.handleNextClick}})})]}),e.jsx(v.Content,{items:h,colorScheme:i,swiper:s,showBottomNav:!!n}),!n&&e.jsx("div",{className:t.default.mobileNavigation,children:e.jsx(c.ProgressButton,{invert:i==="dark",left:{disabled:s.isBeginning,onClick:s.handlePrevClick},right:{disabled:s.isEnd,onClick:s.handleNextClick}})})]})};exports.HowItWorks=m;
|
|
@@ -1,50 +1,81 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import { Button as
|
|
4
|
-
import { ProgressButton as
|
|
5
|
-
import { Typography as
|
|
6
|
-
import { Content as
|
|
7
|
-
import
|
|
8
|
-
import { useSwiper as
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
import { jsxs as r, jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import { Button as d } from "../../components/Button/Button.es.js";
|
|
4
|
+
import { ProgressButton as c } from "../../components/ProgressButton/ProgressButton.es.js";
|
|
5
|
+
import { Typography as v } from "../../components/Typography/Typography.es.js";
|
|
6
|
+
import { Content as p } from "./components/Content/Content.es.js";
|
|
7
|
+
import a from "./howItWorks.module.css.es.js";
|
|
8
|
+
import { useSwiper as C } from "../../utils/useSwiper/useSwiper.es.js";
|
|
9
|
+
import { EAnalyticsEventType as f, EAnalyticsEvent as k } from "../../types/analytics/analytics.es.js";
|
|
10
|
+
const P = ({ title: m, getStartedLink: e, items: h, colorScheme: t = "light" }) => {
|
|
11
|
+
const n = C(), s = t === "dark" ? "muted-invert" : "muted", l = (u) => {
|
|
12
|
+
var o;
|
|
13
|
+
(o = window.eventBus) == null || o.emit("analytics", {
|
|
14
|
+
event: k.ctaClicked,
|
|
15
|
+
type: f.interaction,
|
|
16
|
+
component: "HowItWorks",
|
|
17
|
+
payload: {
|
|
18
|
+
link: e
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
return /* @__PURE__ */ r("section", { className: a.root, "data-color-scheme": t, children: [
|
|
23
|
+
/* @__PURE__ */ r("div", { className: a.headerContainer, children: [
|
|
24
|
+
/* @__PURE__ */ i(v, { as: "h2", defaultVariant: "displayMd", mobileVariant: "headingXl", children: m }),
|
|
25
|
+
e && /* @__PURE__ */ i("div", { className: a.desktop, children: /* @__PURE__ */ i(
|
|
26
|
+
d,
|
|
27
|
+
{
|
|
28
|
+
as: "a",
|
|
29
|
+
href: e,
|
|
30
|
+
variant: s,
|
|
31
|
+
size: "lg",
|
|
32
|
+
onClick: l,
|
|
33
|
+
children: "Get started"
|
|
34
|
+
}
|
|
35
|
+
) }),
|
|
36
|
+
e && /* @__PURE__ */ i("div", { className: a.mobile, children: /* @__PURE__ */ i(
|
|
37
|
+
d,
|
|
38
|
+
{
|
|
39
|
+
as: "a",
|
|
40
|
+
href: e,
|
|
41
|
+
variant: s,
|
|
42
|
+
size: "sm",
|
|
43
|
+
onClick: l,
|
|
44
|
+
children: "Get started"
|
|
45
|
+
}
|
|
46
|
+
) }),
|
|
47
|
+
!e && /* @__PURE__ */ i("div", { className: a.navigation, children: /* @__PURE__ */ i(
|
|
48
|
+
c,
|
|
18
49
|
{
|
|
19
|
-
invert:
|
|
50
|
+
invert: t === "dark",
|
|
20
51
|
left: {
|
|
21
|
-
disabled:
|
|
22
|
-
onClick:
|
|
52
|
+
disabled: n.isBeginning,
|
|
53
|
+
onClick: n.handlePrevClick
|
|
23
54
|
},
|
|
24
55
|
right: {
|
|
25
|
-
disabled:
|
|
26
|
-
onClick:
|
|
56
|
+
disabled: n.isEnd,
|
|
57
|
+
onClick: n.handleNextClick
|
|
27
58
|
}
|
|
28
59
|
}
|
|
29
60
|
) })
|
|
30
61
|
] }),
|
|
31
|
-
/* @__PURE__ */ i(
|
|
32
|
-
!
|
|
33
|
-
|
|
62
|
+
/* @__PURE__ */ i(p, { items: h, colorScheme: t, swiper: n, showBottomNav: !!e }),
|
|
63
|
+
!e && /* @__PURE__ */ i("div", { className: a.mobileNavigation, children: /* @__PURE__ */ i(
|
|
64
|
+
c,
|
|
34
65
|
{
|
|
35
|
-
invert:
|
|
66
|
+
invert: t === "dark",
|
|
36
67
|
left: {
|
|
37
|
-
disabled:
|
|
38
|
-
onClick:
|
|
68
|
+
disabled: n.isBeginning,
|
|
69
|
+
onClick: n.handlePrevClick
|
|
39
70
|
},
|
|
40
71
|
right: {
|
|
41
|
-
disabled:
|
|
42
|
-
onClick:
|
|
72
|
+
disabled: n.isEnd,
|
|
73
|
+
onClick: n.handleNextClick
|
|
43
74
|
}
|
|
44
75
|
}
|
|
45
76
|
) })
|
|
46
77
|
] });
|
|
47
78
|
};
|
|
48
79
|
export {
|
|
49
|
-
|
|
80
|
+
P as HowItWorks
|
|
50
81
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("../../components/TypeBadge/TypeBadge.cjs.js"),l=require("../../components/Typography/Typography.cjs.js"),a=require("./imageWithBenefits.module.css.cjs.js"),f=({image:s,label:i,title:o,benefits:r,benefitsColor:d,mobileLabelColor:n,mobileTitleColor:c,mobileBenefitsColor:m,mobileImage:u})=>e.jsx("section",{className:a.default.root,children:e.jsxs("div",{className:a.default.container,children:[e.jsxs("div",{className:a.default.imageContainer,children:[e.jsx("img",{src:s,alt:"background image",className:a.default.image}),e.jsx("img",{src:u||s,alt:"mobile background image",className:a.default.mobileImage})]}),e.jsxs("div",{className:a.default.content,"data-label-color":i.color,"data-mobile-label-color":n,"data-title-color":o.color,"data-mobile-title-color":c,"data-benefits-color":d,"data-mobile-benefits-color":m,children:[e.jsx(l.Typography,{as:"p",defaultVariant:"labelXs",emphasis:!0,className:a.default.label,children:i.text}),e.jsx(l.Typography,{as:"h2",defaultVariant:"headingXl",mobileVariant:"headingMd",className:a.default.title,children:o.text}),e.jsx("div",{className:a.default.benefitContainer,children:r.map(t=>e.jsxs("div",{className:a.default.benefitItem,children:[e.jsx(g.TypeBadge,{type:t.badge}),e.jsx(l.Typography,{as:"p",defaultVariant:"bodyLg",mobileVariant:"bodyMd",className:a.default.benefitText,children:t.text})]},t.text))})]})]})});exports.ImageWithBenefits=f;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ETypeBadge } from '../../components/TypeBadge';
|
|
2
|
+
|
|
3
|
+
type TColor = 'black' | 'white' | 'solar' | 'indigo';
|
|
4
|
+
export type ImageWithBenefitsProps = {
|
|
5
|
+
image: string;
|
|
6
|
+
label: {
|
|
7
|
+
text: string;
|
|
8
|
+
color: TColor;
|
|
9
|
+
};
|
|
10
|
+
title: {
|
|
11
|
+
text: string;
|
|
12
|
+
color: TColor;
|
|
13
|
+
};
|
|
14
|
+
benefits: Array<{
|
|
15
|
+
text: string;
|
|
16
|
+
badge: ETypeBadge;
|
|
17
|
+
}>;
|
|
18
|
+
benefitsColor: TColor;
|
|
19
|
+
mobileLabelColor?: TColor;
|
|
20
|
+
mobileTitleColor?: TColor;
|
|
21
|
+
mobileBenefitsColor?: TColor;
|
|
22
|
+
mobileImage?: string;
|
|
23
|
+
};
|
|
24
|
+
export declare const ImageWithBenefits: ({ image, label, title, benefits, benefitsColor, mobileLabelColor, mobileTitleColor, mobileBenefitsColor, mobileImage, }: ImageWithBenefitsProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
import { TypeBadge as h } from "../../components/TypeBadge/TypeBadge.es.js";
|
|
3
|
+
import { Typography as i } from "../../components/Typography/Typography.es.js";
|
|
4
|
+
import a from "./imageWithBenefits.module.css.es.js";
|
|
5
|
+
const u = ({
|
|
6
|
+
image: o,
|
|
7
|
+
label: r,
|
|
8
|
+
title: s,
|
|
9
|
+
benefits: c,
|
|
10
|
+
benefitsColor: m,
|
|
11
|
+
mobileLabelColor: d,
|
|
12
|
+
mobileTitleColor: n,
|
|
13
|
+
mobileBenefitsColor: b,
|
|
14
|
+
mobileImage: g
|
|
15
|
+
}) => /* @__PURE__ */ e("section", { className: a.root, children: /* @__PURE__ */ t("div", { className: a.container, children: [
|
|
16
|
+
/* @__PURE__ */ t("div", { className: a.imageContainer, children: [
|
|
17
|
+
/* @__PURE__ */ e("img", { src: o, alt: "background image", className: a.image }),
|
|
18
|
+
/* @__PURE__ */ e("img", { src: g || o, alt: "mobile background image", className: a.mobileImage })
|
|
19
|
+
] }),
|
|
20
|
+
/* @__PURE__ */ t(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
className: a.content,
|
|
24
|
+
"data-label-color": r.color,
|
|
25
|
+
"data-mobile-label-color": d,
|
|
26
|
+
"data-title-color": s.color,
|
|
27
|
+
"data-mobile-title-color": n,
|
|
28
|
+
"data-benefits-color": m,
|
|
29
|
+
"data-mobile-benefits-color": b,
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ e(i, { as: "p", defaultVariant: "labelXs", emphasis: !0, className: a.label, children: r.text }),
|
|
32
|
+
/* @__PURE__ */ e(i, { as: "h2", defaultVariant: "headingXl", mobileVariant: "headingMd", className: a.title, children: s.text }),
|
|
33
|
+
/* @__PURE__ */ e("div", { className: a.benefitContainer, children: c.map((l) => /* @__PURE__ */ t("div", { className: a.benefitItem, children: [
|
|
34
|
+
/* @__PURE__ */ e(h, { type: l.badge }),
|
|
35
|
+
/* @__PURE__ */ e(
|
|
36
|
+
i,
|
|
37
|
+
{
|
|
38
|
+
as: "p",
|
|
39
|
+
defaultVariant: "bodyLg",
|
|
40
|
+
mobileVariant: "bodyMd",
|
|
41
|
+
className: a.benefitText,
|
|
42
|
+
children: l.text
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
] }, l.text)) })
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
] }) });
|
|
50
|
+
export {
|
|
51
|
+
u as ImageWithBenefits
|
|
52
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="imageWithBenefits-module__root___hD3NN",t="imageWithBenefits-module__container___6SG6T",i="imageWithBenefits-module__imageContainer___idfFN",n="imageWithBenefits-module__image___T-6-A",_="imageWithBenefits-module__mobileImage___DrH63",o="imageWithBenefits-module__content___db-4p",a="imageWithBenefits-module__label___bAwcZ",m="imageWithBenefits-module__title___xEDsA",l="imageWithBenefits-module__benefitContainer___Vr5tS",s="imageWithBenefits-module__benefitItem___u63B4",f="imageWithBenefits-module__benefitText___-PxVT",g={root:e,container:t,imageContainer:i,image:n,mobileImage:_,content:o,label:a,title:m,benefitContainer:l,benefitItem:s,benefitText:f};exports.benefitContainer=l;exports.benefitItem=s;exports.benefitText=f;exports.container=t;exports.content=o;exports.default=g;exports.image=n;exports.imageContainer=i;exports.label=a;exports.mobileImage=_;exports.root=e;exports.title=m;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const e = "imageWithBenefits-module__root___hD3NN", t = "imageWithBenefits-module__container___6SG6T", i = "imageWithBenefits-module__imageContainer___idfFN", n = "imageWithBenefits-module__image___T-6-A", _ = "imageWithBenefits-module__mobileImage___DrH63", o = "imageWithBenefits-module__content___db-4p", m = "imageWithBenefits-module__label___bAwcZ", a = "imageWithBenefits-module__title___xEDsA", s = "imageWithBenefits-module__benefitContainer___Vr5tS", l = "imageWithBenefits-module__benefitItem___u63B4", f = "imageWithBenefits-module__benefitText___-PxVT", g = {
|
|
2
|
+
root: e,
|
|
3
|
+
container: t,
|
|
4
|
+
imageContainer: i,
|
|
5
|
+
image: n,
|
|
6
|
+
mobileImage: _,
|
|
7
|
+
content: o,
|
|
8
|
+
label: m,
|
|
9
|
+
title: a,
|
|
10
|
+
benefitContainer: s,
|
|
11
|
+
benefitItem: l,
|
|
12
|
+
benefitText: f
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
s as benefitContainer,
|
|
16
|
+
l as benefitItem,
|
|
17
|
+
f as benefitText,
|
|
18
|
+
t as container,
|
|
19
|
+
o as content,
|
|
20
|
+
g as default,
|
|
21
|
+
n as image,
|
|
22
|
+
i as imageContainer,
|
|
23
|
+
m as label,
|
|
24
|
+
_ as mobileImage,
|
|
25
|
+
e as root,
|
|
26
|
+
a as title
|
|
27
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ImageWithBenefits } from './ImageWithBenefits';
|
|
@@ -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"),x=require("../../utils/cn/cn.cjs.js"),T=require("../../components/Button/Button.cjs.js"),q=require("../../components/TextButton/TextButton.cjs.js"),k=require("../../components/ImageGallery/ImageGallery.cjs.js"),m=require("../../components/Typography/Typography.cjs.js"),A=require("../../components/SmartCallout/SmartCallout.cjs.js"),I=require("../../components/RatingStars/RatingStars.cjs.js"),R=require("./components/Features/Features.cjs.js"),V=require("./components/PlanCard/PlanCard.cjs.js"),o=require("../../types/analytics/analytics.cjs.js"),s=require("./individualProductCard.module.css.cjs.js"),F=({zenpatientId:v,name:y,description:j,features:N,images:S,label:w,rating:d,plans:n,button:l,textButton:a,selectedPlanId:g,onSelectPlan:t,trackingEvent:f,trackingLocation:h})=>{const p=n&&n.length>0&&t,b=r=>{var c;if(t==null||t(r),f){const i=n==null?void 0:n.find(E=>E.id===r),u={event:f,location:h||"",type:o.EAnalyticsEventType.interaction,payload:{productId:v,planId:r,planPrice:i==null?void 0:i.price,planDuration:i==null?void 0:i.duration}};(c=window.eventBus)==null||c.emit("analytics",u)}},C=r=>{var i,u;const c={event:o.EAnalyticsEvent.ctaClicked,location:h||"not_set",type:o.EAnalyticsEventType.interaction,component:"IndividualProductCard",element:"primary_button",payload:{productId:v,ctaLabel:l.label,productName:y,selectedPlanId:g||"none"}};(i=window.eventBus)==null||i.emit("analytics",c),(u=l.onClick)==null||u.call(l,r)},_=r=>{var c,i;(c=window.eventBus)==null||c.emit("analytics",{event:o.EAnalyticsEvent.ctaClicked,location:h||"not_set",type:o.EAnalyticsEventType.interaction,component:"IndividualProductCard",element:"secondary_button",payload:{ctaLabel:a==null?void 0:a.label,productName:y}}),(i=a==null?void 0:a.onClick)==null||i.call(a,r)};return e.jsx("section",{className:s.default.root,children:e.jsxs("div",{className:x.cn(s.default.container,!p&&s.default.noPlans),children:[e.jsxs("div",{className:s.default.info,children:[e.jsxs("div",{className:s.default.infoHeader,children:[e.jsx(m.Typography,{as:"h3",defaultVariant:"displayXs",mobileVariant:"headingLg",weight:"regular",children:y}),!!j&&e.jsx(m.Typography,{as:"p",defaultVariant:"bodySm",className:s.default.infoDescription,weight:"regular",children:j}),d&&e.jsxs("div",{className:s.default.ratingContainer,children:[!!d.stars&&e.jsx(I.RatingStars,{rating:d.stars,size:"sm"}),!!d.totalReviews&&e.jsxs(m.Typography,{as:"p",defaultVariant:"labelSm",emphasis:!0,children:[d.totalReviews," reviews"]})]})]}),e.jsx(R.Features,{features:N}),e.jsxs("div",{className:s.default.actions,children:[e.jsx(A.SmartCallout,{label:"HSA/FSA Eligible"}),!p&&e.jsxs(e.Fragment,{children:[e.jsx(T.Button,{variant:"primary",size:"lg",...l,onClick:C,children:l.label}),a&&e.jsx(q.TextButton,{...a,onClick:_,children:a.label})]})]})]}),e.jsx(k.ImageGallery,{className:s.default.gallery,images:S,label:w}),p&&e.jsxs("div",{className:s.default.plansSection,children:[e.jsxs("div",{className:s.default.plans,children:[e.jsx(m.Typography,{as:"h4",defaultVariant:"labelSm",emphasis:!0,weight:"regular",children:"Subscribe & Save"}),n.map(r=>e.jsx(V.PlanCard,{plan:r,onSelect:b,isActive:g===r.id},r.id))]}),e.jsxs("div",{className:s.default.actions,children:[e.jsx(T.Button,{variant:"primary",size:"lg",...l,onClick:C,children:l.label}),a&&e.jsx(q.TextButton,{...a,onClick:_,children:a.label})]})]})]})})};exports.IndividualProductCard=F;
|
|
@@ -4,6 +4,7 @@ import { TProductFeature, TProductPlan } from './types';
|
|
|
4
4
|
import { EAnalyticsEvent } from '../../types/analytics';
|
|
5
5
|
|
|
6
6
|
type IndividualProductCardProps = {
|
|
7
|
+
zenpatientId: string;
|
|
7
8
|
name: string;
|
|
8
9
|
images: Array<string>;
|
|
9
10
|
features: Array<TProductFeature>;
|
|
@@ -15,15 +16,19 @@ type IndividualProductCardProps = {
|
|
|
15
16
|
};
|
|
16
17
|
button: {
|
|
17
18
|
label: string;
|
|
18
|
-
} & ButtonProps
|
|
19
|
+
} & ButtonProps & {
|
|
20
|
+
onClick: (event: React.MouseEvent<HTMLButtonElement> | React.MouseEvent<HTMLAnchorElement>) => void;
|
|
21
|
+
};
|
|
19
22
|
textButton?: {
|
|
20
23
|
label: string;
|
|
21
|
-
} & TextButtonProps
|
|
24
|
+
} & TextButtonProps & {
|
|
25
|
+
onClick: (event: React.MouseEvent<HTMLButtonElement> | React.MouseEvent<HTMLAnchorElement>) => void;
|
|
26
|
+
};
|
|
22
27
|
plans?: Array<TProductPlan>;
|
|
23
28
|
selectedPlanId?: TProductPlan['id'];
|
|
24
29
|
onSelectPlan?: (planId: TProductPlan['id']) => void;
|
|
25
30
|
trackingEvent?: EAnalyticsEvent.userSelectedPlan;
|
|
26
31
|
trackingLocation?: string;
|
|
27
32
|
};
|
|
28
|
-
export declare const IndividualProductCard: ({ name, description, features, images, label, rating, plans, button, textButton, selectedPlanId, onSelectPlan, trackingEvent, trackingLocation, }: IndividualProductCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
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;
|
|
29
34
|
export {};
|
|
@@ -1,98 +1,129 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { cn as
|
|
3
|
-
import { Button as
|
|
4
|
-
import { TextButton as
|
|
5
|
-
import { ImageGallery as
|
|
6
|
-
import { Typography as
|
|
7
|
-
import { SmartCallout as
|
|
8
|
-
import { RatingStars as
|
|
9
|
-
import { Features as
|
|
10
|
-
import { PlanCard as
|
|
11
|
-
import { EAnalyticsEventType as
|
|
1
|
+
import { jsx as a, jsxs as c, Fragment as I } from "react/jsx-runtime";
|
|
2
|
+
import { cn as R } from "../../utils/cn/cn.es.js";
|
|
3
|
+
import { Button as S } from "../../components/Button/Button.es.js";
|
|
4
|
+
import { TextButton as u } from "../../components/TextButton/TextButton.es.js";
|
|
5
|
+
import { ImageGallery as j } from "../../components/ImageGallery/ImageGallery.es.js";
|
|
6
|
+
import { Typography as p } from "../../components/Typography/Typography.es.js";
|
|
7
|
+
import { SmartCallout as z } from "../../components/SmartCallout/SmartCallout.es.js";
|
|
8
|
+
import { RatingStars as D } from "../../components/RatingStars/RatingStars.es.js";
|
|
9
|
+
import { Features as G } from "./components/Features/Features.es.js";
|
|
10
|
+
import { PlanCard as H } from "./components/PlanCard/PlanCard.es.js";
|
|
11
|
+
import { EAnalyticsEventType as C, EAnalyticsEvent as A } from "../../types/analytics/analytics.es.js";
|
|
12
12
|
import r from "./individualProductCard.module.css.es.js";
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
const $ = ({
|
|
14
|
+
zenpatientId: t,
|
|
15
|
+
name: v,
|
|
16
|
+
description: N,
|
|
17
|
+
features: E,
|
|
18
|
+
images: V,
|
|
19
|
+
label: T,
|
|
20
|
+
rating: m,
|
|
21
|
+
plans: o,
|
|
22
|
+
button: s,
|
|
23
|
+
textButton: i,
|
|
24
|
+
selectedPlanId: g,
|
|
25
|
+
onSelectPlan: n,
|
|
26
|
+
trackingEvent: w,
|
|
27
|
+
trackingLocation: y
|
|
27
28
|
}) => {
|
|
28
|
-
const
|
|
29
|
-
var
|
|
30
|
-
if (
|
|
31
|
-
const
|
|
32
|
-
event:
|
|
33
|
-
location:
|
|
34
|
-
type:
|
|
29
|
+
const f = o && o.length > 0 && n, _ = (l) => {
|
|
30
|
+
var d;
|
|
31
|
+
if (n == null || n(l), w) {
|
|
32
|
+
const e = o == null ? void 0 : o.find((F) => F.id === l), h = {
|
|
33
|
+
event: w,
|
|
34
|
+
location: y || "",
|
|
35
|
+
type: C.interaction,
|
|
35
36
|
payload: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
productId: t,
|
|
38
|
+
planId: l,
|
|
39
|
+
planPrice: e == null ? void 0 : e.price,
|
|
40
|
+
planDuration: e == null ? void 0 : e.duration
|
|
39
41
|
}
|
|
40
42
|
};
|
|
41
|
-
(
|
|
43
|
+
(d = window.eventBus) == null || d.emit("analytics", h);
|
|
42
44
|
}
|
|
45
|
+
}, b = (l) => {
|
|
46
|
+
var e, h;
|
|
47
|
+
const d = {
|
|
48
|
+
event: A.ctaClicked,
|
|
49
|
+
location: y || "not_set",
|
|
50
|
+
type: C.interaction,
|
|
51
|
+
component: "IndividualProductCard",
|
|
52
|
+
element: "primary_button",
|
|
53
|
+
payload: {
|
|
54
|
+
productId: t,
|
|
55
|
+
ctaLabel: s.label,
|
|
56
|
+
productName: v,
|
|
57
|
+
selectedPlanId: g || "none"
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
(e = window.eventBus) == null || e.emit("analytics", d), (h = s.onClick) == null || h.call(s, l);
|
|
61
|
+
}, k = (l) => {
|
|
62
|
+
var d, e;
|
|
63
|
+
(d = window.eventBus) == null || d.emit("analytics", {
|
|
64
|
+
event: A.ctaClicked,
|
|
65
|
+
location: y || "not_set",
|
|
66
|
+
type: C.interaction,
|
|
67
|
+
component: "IndividualProductCard",
|
|
68
|
+
element: "secondary_button",
|
|
69
|
+
payload: {
|
|
70
|
+
ctaLabel: i == null ? void 0 : i.label,
|
|
71
|
+
productName: v
|
|
72
|
+
}
|
|
73
|
+
}), (e = i == null ? void 0 : i.onClick) == null || e.call(i, l);
|
|
43
74
|
};
|
|
44
|
-
return /* @__PURE__ */
|
|
45
|
-
/* @__PURE__ */
|
|
46
|
-
/* @__PURE__ */
|
|
47
|
-
/* @__PURE__ */
|
|
48
|
-
!!
|
|
49
|
-
|
|
75
|
+
return /* @__PURE__ */ a("section", { className: r.root, children: /* @__PURE__ */ c("div", { className: R(r.container, !f && r.noPlans), children: [
|
|
76
|
+
/* @__PURE__ */ c("div", { className: r.info, children: [
|
|
77
|
+
/* @__PURE__ */ c("div", { className: r.infoHeader, children: [
|
|
78
|
+
/* @__PURE__ */ a(p, { as: "h3", defaultVariant: "displayXs", mobileVariant: "headingLg", weight: "regular", children: v }),
|
|
79
|
+
!!N && /* @__PURE__ */ a(
|
|
80
|
+
p,
|
|
50
81
|
{
|
|
51
82
|
as: "p",
|
|
52
83
|
defaultVariant: "bodySm",
|
|
53
84
|
className: r.infoDescription,
|
|
54
85
|
weight: "regular",
|
|
55
|
-
children:
|
|
86
|
+
children: N
|
|
56
87
|
}
|
|
57
88
|
),
|
|
58
|
-
|
|
59
|
-
!!
|
|
60
|
-
!!
|
|
61
|
-
|
|
89
|
+
m && /* @__PURE__ */ c("div", { className: r.ratingContainer, children: [
|
|
90
|
+
!!m.stars && /* @__PURE__ */ a(D, { rating: m.stars, size: "sm" }),
|
|
91
|
+
!!m.totalReviews && /* @__PURE__ */ c(p, { as: "p", defaultVariant: "labelSm", emphasis: !0, children: [
|
|
92
|
+
m.totalReviews,
|
|
62
93
|
" reviews"
|
|
63
94
|
] })
|
|
64
95
|
] })
|
|
65
96
|
] }),
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
/* @__PURE__ */
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
-
!
|
|
70
|
-
/* @__PURE__ */
|
|
71
|
-
|
|
97
|
+
/* @__PURE__ */ a(G, { features: E }),
|
|
98
|
+
/* @__PURE__ */ c("div", { className: r.actions, children: [
|
|
99
|
+
/* @__PURE__ */ a(z, { label: "HSA/FSA Eligible" }),
|
|
100
|
+
!f && /* @__PURE__ */ c(I, { children: [
|
|
101
|
+
/* @__PURE__ */ a(S, { variant: "primary", size: "lg", ...s, onClick: b, children: s.label }),
|
|
102
|
+
i && /* @__PURE__ */ a(u, { ...i, onClick: k, children: i.label })
|
|
72
103
|
] })
|
|
73
104
|
] })
|
|
74
105
|
] }),
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
-
|
|
77
|
-
/* @__PURE__ */
|
|
78
|
-
/* @__PURE__ */
|
|
79
|
-
|
|
80
|
-
|
|
106
|
+
/* @__PURE__ */ a(j, { className: r.gallery, images: V, label: T }),
|
|
107
|
+
f && /* @__PURE__ */ c("div", { className: r.plansSection, children: [
|
|
108
|
+
/* @__PURE__ */ c("div", { className: r.plans, children: [
|
|
109
|
+
/* @__PURE__ */ a(p, { as: "h4", defaultVariant: "labelSm", emphasis: !0, weight: "regular", children: "Subscribe & Save" }),
|
|
110
|
+
o.map((l) => /* @__PURE__ */ a(
|
|
111
|
+
H,
|
|
81
112
|
{
|
|
82
|
-
plan:
|
|
83
|
-
onSelect:
|
|
84
|
-
isActive:
|
|
113
|
+
plan: l,
|
|
114
|
+
onSelect: _,
|
|
115
|
+
isActive: g === l.id
|
|
85
116
|
},
|
|
86
|
-
|
|
117
|
+
l.id
|
|
87
118
|
))
|
|
88
119
|
] }),
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
/* @__PURE__ */
|
|
91
|
-
|
|
120
|
+
/* @__PURE__ */ c("div", { className: r.actions, children: [
|
|
121
|
+
/* @__PURE__ */ a(S, { variant: "primary", size: "lg", ...s, onClick: b, children: s.label }),
|
|
122
|
+
i && /* @__PURE__ */ a(u, { ...i, onClick: k, children: i.label })
|
|
92
123
|
] })
|
|
93
124
|
] })
|
|
94
125
|
] }) });
|
|
95
126
|
};
|
|
96
127
|
export {
|
|
97
|
-
|
|
128
|
+
$ as IndividualProductCard
|
|
98
129
|
};
|