@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.
Files changed (48) hide show
  1. package/dist/components/Button/Button.cjs.js +1 -1
  2. package/dist/components/Button/Button.d.ts +3 -0
  3. package/dist/components/Button/Button.es.js +34 -28
  4. package/dist/components/Callback/Callback.d.ts +1 -0
  5. package/dist/components/Pricing/Pricing.cjs.js +1 -1
  6. package/dist/components/Pricing/Pricing.d.ts +1 -1
  7. package/dist/components/Pricing/Pricing.es.js +51 -37
  8. package/dist/components/Pricing/types.d.ts +5 -1
  9. package/dist/components/ProductGallery/ProductGallery.cjs.js +1 -1
  10. package/dist/components/ProductGallery/ProductGallery.es.js +4 -3
  11. package/dist/components/ProductGalleryCard/ProductGalleryCard.cjs.js +1 -1
  12. package/dist/components/ProductGalleryCard/ProductGalleryCard.d.ts +1 -1
  13. package/dist/components/ProductGalleryCard/ProductGalleryCard.es.js +51 -22
  14. package/dist/components/ProductGalleryCard/types.d.ts +1 -0
  15. package/dist/components/ProductListing/ProductListing.cjs.js +1 -1
  16. package/dist/components/ProductListing/ProductListing.d.ts +3 -1
  17. package/dist/components/ProductListing/ProductListing.es.js +48 -25
  18. package/dist/modules/CallToAction/CallToAction.cjs.js +1 -1
  19. package/dist/modules/CallToAction/CallToAction.es.js +86 -73
  20. package/dist/modules/Callback/Callback.cjs.js +1 -1
  21. package/dist/modules/Callback/Callback.d.ts +3 -1
  22. package/dist/modules/Callback/Callback.es.js +46 -24
  23. package/dist/modules/Compare/Compare.cjs.js +1 -1
  24. package/dist/modules/Compare/Compare.es.js +12 -12
  25. package/dist/modules/FeaturedIn/FeaturedIn.cjs.js +1 -1
  26. package/dist/modules/FeaturedIn/FeaturedIn.es.js +23 -32
  27. package/dist/modules/FeaturedIn/components/CtaFeaturedIn.cjs.js +1 -0
  28. package/dist/modules/FeaturedIn/components/CtaFeaturedIn.d.ts +5 -0
  29. package/dist/modules/FeaturedIn/components/CtaFeaturedIn.es.js +22 -0
  30. package/dist/modules/HowItWorks/HowItWorks.cjs.js +1 -1
  31. package/dist/modules/HowItWorks/HowItWorks.es.js +61 -30
  32. package/dist/modules/IndividualProductCard/IndividualProductCard.cjs.js +1 -1
  33. package/dist/modules/IndividualProductCard/IndividualProductCard.d.ts +8 -3
  34. package/dist/modules/IndividualProductCard/IndividualProductCard.es.js +98 -67
  35. package/dist/modules/ProgramsDetailsHero/ProgramsDetailsHero.cjs.js +1 -1
  36. package/dist/modules/ProgramsDetailsHero/ProgramsDetailsHero.es.js +38 -26
  37. package/dist/modules/YourProtocol/YourProtocol.cjs.js +1 -1
  38. package/dist/modules/YourProtocol/YourProtocol.es.js +48 -35
  39. package/dist/pageComponents/HomepageHero/HomepageHero.cjs.js +1 -1
  40. package/dist/pageComponents/HomepageHero/HomepageHero.es.js +19 -28
  41. package/dist/pageComponents/LabsHero/LabsHero.cjs.js +1 -1
  42. package/dist/pageComponents/LabsHero/LabsHero.es.js +54 -43
  43. package/dist/pageComponents/PersonalizedProtocolHero/PersonalizedProtocolHero.cjs.js +1 -1
  44. package/dist/pageComponents/PersonalizedProtocolHero/PersonalizedProtocolHero.es.js +73 -60
  45. package/dist/types/analytics/analytics.cjs.js +1 -1
  46. package/dist/types/analytics/analytics.es.js +3 -3
  47. package/dist/types/analytics.d.ts +26 -3
  48. package/package.json +1 -1
@@ -1,50 +1,81 @@
1
1
  "use client";
2
- import { jsxs as l, jsx as i } from "react/jsx-runtime";
3
- import { Button as t } from "../../components/Button/Button.es.js";
4
- import { ProgressButton as o } from "../../components/ProgressButton/ProgressButton.es.js";
5
- import { Typography as c } from "../../components/Typography/Typography.es.js";
6
- import { Content as h } from "./components/Content/Content.es.js";
7
- import e from "./howItWorks.module.css.es.js";
8
- import { useSwiper as v } from "../../utils/useSwiper/useSwiper.es.js";
9
- const k = ({ title: d, getStartedLink: s, items: m, colorScheme: r = "light" }) => {
10
- const a = v(), n = r === "dark" ? "muted-invert" : "muted";
11
- return /* @__PURE__ */ l("section", { className: e.root, "data-color-scheme": r, children: [
12
- /* @__PURE__ */ l("div", { className: e.headerContainer, children: [
13
- /* @__PURE__ */ i(c, { as: "h2", defaultVariant: "displayMd", mobileVariant: "headingXl", children: d }),
14
- s && /* @__PURE__ */ i("div", { className: e.desktop, children: /* @__PURE__ */ i(t, { as: "a", href: s, variant: n, size: "lg", children: "Get started" }) }),
15
- s && /* @__PURE__ */ i("div", { className: e.mobile, children: /* @__PURE__ */ i(t, { as: "a", href: s, variant: n, size: "sm", children: "Get started" }) }),
16
- !s && /* @__PURE__ */ i("div", { className: e.navigation, children: /* @__PURE__ */ i(
17
- o,
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: r === "dark",
50
+ invert: t === "dark",
20
51
  left: {
21
- disabled: a.isBeginning,
22
- onClick: a.handlePrevClick
52
+ disabled: n.isBeginning,
53
+ onClick: n.handlePrevClick
23
54
  },
24
55
  right: {
25
- disabled: a.isEnd,
26
- onClick: a.handleNextClick
56
+ disabled: n.isEnd,
57
+ onClick: n.handleNextClick
27
58
  }
28
59
  }
29
60
  ) })
30
61
  ] }),
31
- /* @__PURE__ */ i(h, { items: m, colorScheme: r, swiper: a, showBottomNav: !!s }),
32
- !s && /* @__PURE__ */ i("div", { className: e.mobileNavigation, children: /* @__PURE__ */ i(
33
- o,
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: r === "dark",
66
+ invert: t === "dark",
36
67
  left: {
37
- disabled: a.isBeginning,
38
- onClick: a.handlePrevClick
68
+ disabled: n.isBeginning,
69
+ onClick: n.handlePrevClick
39
70
  },
40
71
  right: {
41
- disabled: a.isEnd,
42
- onClick: a.handleNextClick
72
+ disabled: n.isEnd,
73
+ onClick: n.handleNextClick
43
74
  }
44
75
  }
45
76
  ) })
46
77
  ] });
47
78
  };
48
79
  export {
49
- k as HowItWorks
80
+ P as HowItWorks
50
81
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("../../utils/cn/cn.cjs.js"),y=require("../../components/Button/Button.cjs.js"),g=require("../../components/TextButton/TextButton.cjs.js"),N=require("../../components/ImageGallery/ImageGallery.cjs.js"),o=require("../../components/Typography/Typography.cjs.js"),C=require("../../components/SmartCallout/SmartCallout.cjs.js"),w=require("../../components/RatingStars/RatingStars.cjs.js"),B=require("./components/Features/Features.cjs.js"),R=require("./components/PlanCard/PlanCard.cjs.js"),V=require("../../types/analytics/analytics.cjs.js"),a=require("./individualProductCard.module.css.cjs.js"),A=({name:p,description:u,features:j,images:f,label:v,rating:l,plans:i,button:n,textButton:r,selectedPlanId:x,onSelectPlan:c,trackingEvent:m,trackingLocation:_})=>{const d=i&&i.length>0&&c,q=s=>{var h;if(c==null||c(s),m){const t=i==null?void 0:i.find(T=>T.id===s),S={event:m,location:_||"",type:V.EAnalyticsEventType.interaction,payload:{planId:s,planPrice:t==null?void 0:t.price,planDuration:t==null?void 0:t.duration}};(h=window.eventBus)==null||h.emit("analytics",S)}};return e.jsx("section",{className:a.default.root,children:e.jsxs("div",{className:b.cn(a.default.container,!d&&a.default.noPlans),children:[e.jsxs("div",{className:a.default.info,children:[e.jsxs("div",{className:a.default.infoHeader,children:[e.jsx(o.Typography,{as:"h3",defaultVariant:"displayXs",mobileVariant:"headingLg",weight:"regular",children:p}),!!u&&e.jsx(o.Typography,{as:"p",defaultVariant:"bodySm",className:a.default.infoDescription,weight:"regular",children:u}),l&&e.jsxs("div",{className:a.default.ratingContainer,children:[!!l.stars&&e.jsx(w.RatingStars,{rating:l.stars,size:"sm"}),!!l.totalReviews&&e.jsxs(o.Typography,{as:"p",defaultVariant:"labelSm",emphasis:!0,children:[l.totalReviews," reviews"]})]})]}),e.jsx(B.Features,{features:j}),e.jsxs("div",{className:a.default.actions,children:[e.jsx(C.SmartCallout,{label:"HSA/FSA Eligible"}),!d&&e.jsxs(e.Fragment,{children:[e.jsx(y.Button,{variant:"primary",size:"lg",...n,children:n.label}),r&&e.jsx(g.TextButton,{...r,children:r.label})]})]})]}),e.jsx(N.ImageGallery,{className:a.default.gallery,images:f,label:v}),d&&e.jsxs("div",{className:a.default.plansSection,children:[e.jsxs("div",{className:a.default.plans,children:[e.jsx(o.Typography,{as:"h4",defaultVariant:"labelSm",emphasis:!0,weight:"regular",children:"Subscribe & Save"}),i.map(s=>e.jsx(R.PlanCard,{plan:s,onSelect:q,isActive:x===s.id},s.id))]}),e.jsxs("div",{className:a.default.actions,children:[e.jsx(y.Button,{variant:"primary",size:"lg",...n,children:n.label}),r&&e.jsx(g.TextButton,{...r,children:r.label})]})]})]})})};exports.IndividualProductCard=A;
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 i, jsxs as a, Fragment as z } from "react/jsx-runtime";
2
- import { cn as F } from "../../utils/cn/cn.es.js";
3
- import { Button as v } from "../../components/Button/Button.es.js";
4
- import { TextButton as g } from "../../components/TextButton/TextButton.es.js";
5
- import { ImageGallery as R } from "../../components/ImageGallery/ImageGallery.es.js";
6
- import { Typography as t } from "../../components/Typography/Typography.es.js";
7
- import { SmartCallout as T } from "../../components/SmartCallout/SmartCallout.es.js";
8
- import { RatingStars as j } from "../../components/RatingStars/RatingStars.es.js";
9
- import { Features as D } from "./components/Features/Features.es.js";
10
- import { PlanCard as E } from "./components/PlanCard/PlanCard.es.js";
11
- import { EAnalyticsEventType as H } from "../../types/analytics/analytics.es.js";
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 W = ({
14
- name: y,
15
- description: h,
16
- features: u,
17
- images: N,
18
- label: b,
19
- rating: o,
20
- plans: s,
21
- button: c,
22
- textButton: l,
23
- selectedPlanId: w,
24
- onSelectPlan: d,
25
- trackingEvent: f,
26
- trackingLocation: S
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 n = s && s.length > 0 && d, C = (e) => {
29
- var p;
30
- if (d == null || d(e), f) {
31
- const m = s == null ? void 0 : s.find((A) => A.id === e), V = {
32
- event: f,
33
- location: S || "",
34
- type: H.interaction,
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
- planId: e,
37
- planPrice: m == null ? void 0 : m.price,
38
- planDuration: m == null ? void 0 : m.duration
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
- (p = window.eventBus) == null || p.emit("analytics", V);
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__ */ i("section", { className: r.root, children: /* @__PURE__ */ a("div", { className: F(r.container, !n && r.noPlans), children: [
45
- /* @__PURE__ */ a("div", { className: r.info, children: [
46
- /* @__PURE__ */ a("div", { className: r.infoHeader, children: [
47
- /* @__PURE__ */ i(t, { as: "h3", defaultVariant: "displayXs", mobileVariant: "headingLg", weight: "regular", children: y }),
48
- !!h && /* @__PURE__ */ i(
49
- t,
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: h
86
+ children: N
56
87
  }
57
88
  ),
58
- o && /* @__PURE__ */ a("div", { className: r.ratingContainer, children: [
59
- !!o.stars && /* @__PURE__ */ i(j, { rating: o.stars, size: "sm" }),
60
- !!o.totalReviews && /* @__PURE__ */ a(t, { as: "p", defaultVariant: "labelSm", emphasis: !0, children: [
61
- o.totalReviews,
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__ */ i(D, { features: u }),
67
- /* @__PURE__ */ a("div", { className: r.actions, children: [
68
- /* @__PURE__ */ i(T, { label: "HSA/FSA Eligible" }),
69
- !n && /* @__PURE__ */ a(z, { children: [
70
- /* @__PURE__ */ i(v, { variant: "primary", size: "lg", ...c, children: c.label }),
71
- l && /* @__PURE__ */ i(g, { ...l, children: l.label })
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__ */ i(R, { className: r.gallery, images: N, label: b }),
76
- n && /* @__PURE__ */ a("div", { className: r.plansSection, children: [
77
- /* @__PURE__ */ a("div", { className: r.plans, children: [
78
- /* @__PURE__ */ i(t, { as: "h4", defaultVariant: "labelSm", emphasis: !0, weight: "regular", children: "Subscribe & Save" }),
79
- s.map((e) => /* @__PURE__ */ i(
80
- E,
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: e,
83
- onSelect: C,
84
- isActive: w === e.id
113
+ plan: l,
114
+ onSelect: _,
115
+ isActive: g === l.id
85
116
  },
86
- e.id
117
+ l.id
87
118
  ))
88
119
  ] }),
89
- /* @__PURE__ */ a("div", { className: r.actions, children: [
90
- /* @__PURE__ */ i(v, { variant: "primary", size: "lg", ...c, children: c.label }),
91
- l && /* @__PURE__ */ i(g, { ...l, children: l.label })
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
- W as IndividualProductCard
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"),o=require("../../components/Button/Button.cjs.js"),a=require("./programsDetailsHero.module.css.cjs.js"),d=({title:t,description:i,button:r,backgroundImage:l})=>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:t})}),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:i}),e.jsx(o.Button,{as:"a",href:r.link,variant:"secondary",size:"md",children:r.text})]})})]})})});exports.ProgramsDetailsHero=d;
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 s } from "../../components/Typography/Typography.es.js";
3
- import { Button as o } from "../../components/Button/Button.es.js";
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
- const p = ({ title: l, description: d, button: i, backgroundImage: n }) => /* @__PURE__ */ e("section", { className: a.root, "data-type": "hero", style: { backgroundImage: `url(${n})` }, children: /* @__PURE__ */ e("div", { className: a.container, children: /* @__PURE__ */ r("div", { className: a.headline, children: [
6
- /* @__PURE__ */ e("div", { className: a.titleContainer, children: /* @__PURE__ */ e(
7
- s,
8
- {
9
- className: a.title,
10
- as: "h2",
11
- defaultVariant: "displayMd",
12
- mobileVariant: "headingXl",
13
- children: l
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("div", { className: a.midBorder }),
17
- /* @__PURE__ */ e("div", { className: a.infoContainer, children: /* @__PURE__ */ r("div", { className: a.infoBox, children: [
18
- /* @__PURE__ */ e(
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.description,
22
- as: "p",
23
- defaultVariant: "bodyMd",
24
- mobileVariant: "bodySm",
25
- children: d
20
+ className: a.title,
21
+ as: "h2",
22
+ defaultVariant: "displayMd",
23
+ mobileVariant: "headingXl",
24
+ children: n
26
25
  }
27
- ),
28
- /* @__PURE__ */ e(o, { as: "a", href: i.link, variant: "secondary", size: "md", children: i.text })
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
- p as ProgramsDetailsHero
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"),a=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),n=require("../../utils/cn/cn.cjs.js"),c=require("./components/ProtocolTags/ProtocolTags.cjs.js"),o=require("./yourProtocol.module.css.cjs.js"),d=({title:s,image:r,tags:i,callbackView:t})=>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(a.HighlightedTitle,{title:s,className:o.default.title,defaultVariant:"displaySm",mobileVariant:"headingXl"}),e.jsx(c.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"},size:"sm",shape:t.shape})})]}),e.jsx("img",{src:r,alt:"Your Protocol",className:n.cn(o.default.image,o.default.desktop),width:481})]})});exports.YourProtocol=d;
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 i } from "react/jsx-runtime";
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 n } from "../../components/HighlightedTitle/HighlightedTitle.es.js";
4
- import { cn as l } from "../../utils/cn/cn.es.js";
5
- import { ProtocolTags as p } from "./components/ProtocolTags/ProtocolTags.es.js";
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
- const N = ({ title: s, image: e, tags: m, callbackView: t }) => /* @__PURE__ */ r("section", { className: o.root, children: /* @__PURE__ */ i("div", { className: o.container, children: [
8
- /* @__PURE__ */ i("div", { className: o.content, children: [
9
- /* @__PURE__ */ r(
10
- n,
11
- {
12
- title: s,
13
- className: o.title,
14
- defaultVariant: "displaySm",
15
- mobileVariant: "headingXl"
16
- }
17
- ),
18
- /* @__PURE__ */ r(p, { tags: m }),
19
- t && /* @__PURE__ */ r("div", { className: o.callback, children: /* @__PURE__ */ r(
20
- a,
21
- {
22
- title: t.title,
23
- description: t.description ?? "",
24
- price: t.price ?? "",
25
- image: t.image,
26
- button: {
27
- href: t.signupUrl ?? "",
28
- as: "a"
29
- },
30
- size: "sm",
31
- shape: t.shape
32
- }
33
- ) })
34
- ] }),
35
- /* @__PURE__ */ r("img", { src: e, alt: "Your Protocol", className: l(o.image, o.desktop), width: 481 })
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
- N as YourProtocol
51
+ P as YourProtocol
39
52
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),t=require("../../components/Typography/Typography.cjs.js"),i=require("../../components/Button/Button.cjs.js"),n=require("./components/MiddleCarousel/MiddleCarousel.cjs.js"),o=require("../../utils/cn/cn.cjs.js"),a=require("./homepageHero.module.css.cjs.js");function s(){return e.jsxs("section",{className:a.default.root,"data-type":"hero",children:[e.jsx("div",{className:a.default.carouselArea,children:e.jsx(n.MiddleCarousel,{})}),e.jsxs("div",{className:a.default.contentContainer,children:[e.jsx("div",{className:a.default.headline,children:e.jsx(r.HighlightedTitle,{colorScheme:"dark",title:e.jsx(t.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(t.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:o.cn(a.default.buttonWrapper,a.default.desktop),children:e.jsx(i.Button,{as:"a",href:"https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",variant:"secondary",size:"lg",children:"Join Healthspan"})}),e.jsx("div",{className:o.cn(a.default.buttonWrapper,a.default.mobile),children:e.jsx(i.Button,{as:"a",href:"https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",variant:"secondary",size:"md",children:"Join Healthspan"})})]})]})]})}exports.HomepageHero=s;
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;