@zenpatient-org/healthspan-marketing-ui 0.1.169 → 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/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/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/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 +1 -1
|
@@ -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
|
};
|
|
@@ -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
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("../../components/Typography/Typography.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("../../components/Typography/Typography.cjs.js"),c=require("../../components/Button/Button.cjs.js"),a=require("./programsDetailsHero.module.css.cjs.js"),r=require("../../types/analytics/analytics.cjs.js"),d=({title:i,description:n,button:t,backgroundImage:l})=>{const o={event:r.EAnalyticsEvent.ctaClicked,type:r.EAnalyticsEventType.interaction,component:"ProgramsDetailsHero",payload:{ctaLink:t.link,ctaLabel:t.text}};return e.jsx("section",{className:a.default.root,"data-type":"hero",style:{backgroundImage:`url(${l})`},children:e.jsx("div",{className:a.default.container,children:e.jsxs("div",{className:a.default.headline,children:[e.jsx("div",{className:a.default.titleContainer,children:e.jsx(s.Typography,{className:a.default.title,as:"h2",defaultVariant:"displayMd",mobileVariant:"headingXl",children:i})}),e.jsx("div",{className:a.default.midBorder}),e.jsx("div",{className:a.default.infoContainer,children:e.jsxs("div",{className:a.default.infoBox,children:[e.jsx(s.Typography,{className:a.default.description,as:"p",defaultVariant:"bodyMd",mobileVariant:"bodySm",children:n}),e.jsx(c.Button,{as:"a",href:t.link,variant:"secondary",size:"md",analyticsProps:o,children:t.text})]})})]})})})};exports.ProgramsDetailsHero=d;
|
|
@@ -1,33 +1,45 @@
|
|
|
1
1
|
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
-
import { Typography as
|
|
3
|
-
import { Button as
|
|
2
|
+
import { Typography as t } from "../../components/Typography/Typography.es.js";
|
|
3
|
+
import { Button as c } from "../../components/Button/Button.es.js";
|
|
4
4
|
import a from "./programsDetailsHero.module.css.es.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
import { EAnalyticsEventType as d, EAnalyticsEvent as m } from "../../types/analytics/analytics.es.js";
|
|
6
|
+
const N = ({ title: n, description: s, button: i, backgroundImage: l }) => {
|
|
7
|
+
const o = {
|
|
8
|
+
event: m.ctaClicked,
|
|
9
|
+
type: d.interaction,
|
|
10
|
+
component: "ProgramsDetailsHero",
|
|
11
|
+
payload: {
|
|
12
|
+
ctaLink: i.link,
|
|
13
|
+
ctaLabel: i.text
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
/* @__PURE__ */ e("
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
s,
|
|
15
|
+
};
|
|
16
|
+
return /* @__PURE__ */ e("section", { className: a.root, "data-type": "hero", style: { backgroundImage: `url(${l})` }, children: /* @__PURE__ */ e("div", { className: a.container, children: /* @__PURE__ */ r("div", { className: a.headline, children: [
|
|
17
|
+
/* @__PURE__ */ e("div", { className: a.titleContainer, children: /* @__PURE__ */ e(
|
|
18
|
+
t,
|
|
20
19
|
{
|
|
21
|
-
className: a.
|
|
22
|
-
as: "
|
|
23
|
-
defaultVariant: "
|
|
24
|
-
mobileVariant: "
|
|
25
|
-
children:
|
|
20
|
+
className: a.title,
|
|
21
|
+
as: "h2",
|
|
22
|
+
defaultVariant: "displayMd",
|
|
23
|
+
mobileVariant: "headingXl",
|
|
24
|
+
children: n
|
|
26
25
|
}
|
|
27
|
-
),
|
|
28
|
-
/* @__PURE__ */ e(
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
) }),
|
|
27
|
+
/* @__PURE__ */ e("div", { className: a.midBorder }),
|
|
28
|
+
/* @__PURE__ */ e("div", { className: a.infoContainer, children: /* @__PURE__ */ r("div", { className: a.infoBox, children: [
|
|
29
|
+
/* @__PURE__ */ e(
|
|
30
|
+
t,
|
|
31
|
+
{
|
|
32
|
+
className: a.description,
|
|
33
|
+
as: "p",
|
|
34
|
+
defaultVariant: "bodyMd",
|
|
35
|
+
mobileVariant: "bodySm",
|
|
36
|
+
children: s
|
|
37
|
+
}
|
|
38
|
+
),
|
|
39
|
+
/* @__PURE__ */ e(c, { as: "a", href: i.link, variant: "secondary", size: "md", analyticsProps: o, children: i.text })
|
|
40
|
+
] }) })
|
|
41
|
+
] }) }) });
|
|
42
|
+
};
|
|
31
43
|
export {
|
|
32
|
-
|
|
44
|
+
N as ProgramsDetailsHero
|
|
33
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("../../components/Callback/Callback.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("../../components/Callback/Callback.cjs.js"),c=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),u=require("../../utils/cn/cn.cjs.js"),d=require("./components/ProtocolTags/ProtocolTags.cjs.js"),o=require("./yourProtocol.module.css.cjs.js"),s=require("../../types/analytics/analytics.cjs.js"),m=({title:r,image:n,tags:i,callbackView:t})=>{const a={event:s.EAnalyticsEvent.ctaClicked,type:s.EAnalyticsEventType.interaction,component:"YourProtocol",element:"Callback",payload:{ctaLink:(t==null?void 0:t.signupUrl)??""}};return e.jsx("section",{className:o.default.root,children:e.jsxs("div",{className:o.default.container,children:[e.jsxs("div",{className:o.default.content,children:[e.jsx(c.HighlightedTitle,{title:r,className:o.default.title,defaultVariant:"displaySm",mobileVariant:"headingXl"}),e.jsx(d.ProtocolTags,{tags:i}),t&&e.jsx("div",{className:o.default.callback,children:e.jsx(l.Callback,{title:t.title,description:t.description??"",price:t.price??"",image:t.image,button:{href:t.signupUrl??"",as:"a",analyticsProps:a},size:"sm",shape:t.shape})})]}),e.jsx("img",{src:n,alt:"Your Protocol",className:u.cn(o.default.image,o.default.desktop),width:481})]})})};exports.YourProtocol=m;
|
|
@@ -1,39 +1,52 @@
|
|
|
1
|
-
import { jsx as r, jsxs as
|
|
1
|
+
import { jsx as r, jsxs as e } from "react/jsx-runtime";
|
|
2
2
|
import { Callback as a } from "../../components/Callback/Callback.es.js";
|
|
3
|
-
import { HighlightedTitle as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { ProtocolTags as
|
|
3
|
+
import { HighlightedTitle as p } from "../../components/HighlightedTitle/HighlightedTitle.es.js";
|
|
4
|
+
import { cn as d } from "../../utils/cn/cn.es.js";
|
|
5
|
+
import { ProtocolTags as l } from "./components/ProtocolTags/ProtocolTags.es.js";
|
|
6
6
|
import o from "./yourProtocol.module.css.es.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
7
|
+
import { EAnalyticsEventType as c, EAnalyticsEvent as h } from "../../types/analytics/analytics.es.js";
|
|
8
|
+
const P = ({ title: i, image: s, tags: n, callbackView: t }) => {
|
|
9
|
+
const m = {
|
|
10
|
+
event: h.ctaClicked,
|
|
11
|
+
type: c.interaction,
|
|
12
|
+
component: "YourProtocol",
|
|
13
|
+
element: "Callback",
|
|
14
|
+
payload: {
|
|
15
|
+
ctaLink: (t == null ? void 0 : t.signupUrl) ?? ""
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
return /* @__PURE__ */ r("section", { className: o.root, children: /* @__PURE__ */ e("div", { className: o.container, children: [
|
|
19
|
+
/* @__PURE__ */ e("div", { className: o.content, children: [
|
|
20
|
+
/* @__PURE__ */ r(
|
|
21
|
+
p,
|
|
22
|
+
{
|
|
23
|
+
title: i,
|
|
24
|
+
className: o.title,
|
|
25
|
+
defaultVariant: "displaySm",
|
|
26
|
+
mobileVariant: "headingXl"
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
/* @__PURE__ */ r(l, { tags: n }),
|
|
30
|
+
t && /* @__PURE__ */ r("div", { className: o.callback, children: /* @__PURE__ */ r(
|
|
31
|
+
a,
|
|
32
|
+
{
|
|
33
|
+
title: t.title,
|
|
34
|
+
description: t.description ?? "",
|
|
35
|
+
price: t.price ?? "",
|
|
36
|
+
image: t.image,
|
|
37
|
+
button: {
|
|
38
|
+
href: t.signupUrl ?? "",
|
|
39
|
+
as: "a",
|
|
40
|
+
analyticsProps: m
|
|
41
|
+
},
|
|
42
|
+
size: "sm",
|
|
43
|
+
shape: t.shape
|
|
44
|
+
}
|
|
45
|
+
) })
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ r("img", { src: s, alt: "Your Protocol", className: d(o.image, o.desktop), width: 481 })
|
|
48
|
+
] }) });
|
|
49
|
+
};
|
|
37
50
|
export {
|
|
38
|
-
|
|
51
|
+
P as YourProtocol
|
|
39
52
|
};
|
|
@@ -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"),l=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),i=require("../../components/Typography/Typography.cjs.js"),o=require("../../components/Button/Button.cjs.js"),c=require("./components/MiddleCarousel/MiddleCarousel.cjs.js"),s=require("../../utils/cn/cn.cjs.js"),a=require("./homepageHero.module.css.cjs.js"),r=require("../../types/analytics/analytics.cjs.js");function d(){const t="https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",n={event:r.EAnalyticsEvent.ctaClicked,type:r.EAnalyticsEventType.interaction,component:"HomepageHero",payload:{ctaLink:t}};return e.jsxs("section",{className:a.default.root,"data-type":"hero",children:[e.jsx("div",{className:a.default.carouselArea,children:e.jsx(c.MiddleCarousel,{})}),e.jsxs("div",{className:a.default.contentContainer,children:[e.jsx("div",{className:a.default.headline,children:e.jsx(l.HighlightedTitle,{colorScheme:"dark",title:e.jsx(i.Typography,{as:"div",defaultVariant:"displayXs",mobileVariant:"headingLg",children:e.jsxs("p",{children:[e.jsx("b",{children:"Transform your quality of living"})," through the science of aging."]})})})}),e.jsxs("div",{className:a.default.callAction,children:[e.jsx(i.Typography,{as:"p",defaultVariant:"bodyLg",mobileVariant:"bodySm",className:a.default.text,children:"Defy your age with advanced longevity protocols tailored to you by clinical experts and optimized over time through ongoing labs, performance coaching, and results tracking."}),e.jsx("div",{className:s.cn(a.default.buttonWrapper,a.default.desktop),children:e.jsx(o.Button,{as:"a",href:t,variant:"secondary",size:"lg",analyticsProps:n,children:"Join Healthspan"})}),e.jsx("div",{className:s.cn(a.default.buttonWrapper,a.default.mobile),children:e.jsx(o.Button,{as:"a",href:t,variant:"secondary",size:"md",analyticsProps:n,children:"Join Healthspan"})})]})]})]})}exports.HomepageHero=d;
|