@zenpatient-org/healthspan-marketing-ui 0.1.169 → 0.1.171

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 (49) 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 +2 -0
  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/Compare/types.d.ts +2 -2
  26. package/dist/modules/FeaturedIn/FeaturedIn.cjs.js +1 -1
  27. package/dist/modules/FeaturedIn/FeaturedIn.es.js +23 -32
  28. package/dist/modules/FeaturedIn/components/CtaFeaturedIn.cjs.js +1 -0
  29. package/dist/modules/FeaturedIn/components/CtaFeaturedIn.d.ts +5 -0
  30. package/dist/modules/FeaturedIn/components/CtaFeaturedIn.es.js +22 -0
  31. package/dist/modules/HowItWorks/HowItWorks.cjs.js +1 -1
  32. package/dist/modules/HowItWorks/HowItWorks.es.js +61 -30
  33. package/dist/modules/IndividualProductCard/IndividualProductCard.cjs.js +1 -1
  34. package/dist/modules/IndividualProductCard/IndividualProductCard.d.ts +2 -1
  35. package/dist/modules/IndividualProductCard/IndividualProductCard.es.js +84 -64
  36. package/dist/modules/ProgramsDetailsHero/ProgramsDetailsHero.cjs.js +1 -1
  37. package/dist/modules/ProgramsDetailsHero/ProgramsDetailsHero.es.js +38 -26
  38. package/dist/modules/YourProtocol/YourProtocol.cjs.js +1 -1
  39. package/dist/modules/YourProtocol/YourProtocol.es.js +48 -35
  40. package/dist/pageComponents/HomepageHero/HomepageHero.cjs.js +1 -1
  41. package/dist/pageComponents/HomepageHero/HomepageHero.es.js +19 -28
  42. package/dist/pageComponents/LabsHero/LabsHero.cjs.js +1 -1
  43. package/dist/pageComponents/LabsHero/LabsHero.es.js +54 -43
  44. package/dist/pageComponents/PersonalizedProtocolHero/PersonalizedProtocolHero.cjs.js +1 -1
  45. package/dist/pageComponents/PersonalizedProtocolHero/PersonalizedProtocolHero.es.js +73 -60
  46. package/dist/types/analytics/analytics.cjs.js +1 -1
  47. package/dist/types/analytics/analytics.es.js +3 -3
  48. package/dist/types/analytics.d.ts +26 -3
  49. package/package.json +1 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("../../utils/cn/cn.cjs.js"),r=require("../../components/Typography/Typography.cjs.js"),i=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),l=require("../../components/Button/Button.cjs.js"),n=require("./assets/icon1.png.cjs.js"),c=require("./assets/icon2.png.cjs.js"),o=require("./assets/icon3.png.cjs.js"),d=require("./assets/img1.png.cjs.js"),u=require("./assets/img2.png.cjs.js"),m=require("./assets/img3.png.cjs.js"),g=require("./assets/svg1.svg.cjs.js"),f=require("./assets/svg2.svg.cjs.js"),h=require("./assets/svg3.svg.cjs.js"),a=require("./labsHero.module.css.cjs.js"),p=({link:s})=>e.jsx("section",{className:a.default.root,"data-type":"hero",children:e.jsxs("div",{className:a.default.container,children:[e.jsxs("div",{className:a.default.headlineContainer,children:[e.jsx("div",{className:a.default.title,children:e.jsx(i.HighlightedTitle,{as:"p",colorScheme:"dark",defaultVariant:"displayMd",mobileVariant:"displayXs",title:e.jsxs(e.Fragment,{children:["To see results, you need to ",e.jsx("b",{children:"see your results"})]})})}),e.jsx(r.Typography,{as:"p",defaultVariant:"bodyMd",mobileVariant:"bodySm",className:a.default.description,children:"Healthspan's advanced lab panels provide precise data on 100+ biomarkers. Your dedicated clinical care team analyzes and explains the results in plain terms, helping you personalize and optimize your longevity protocol."}),e.jsx("div",{className:t.cn(a.default.buttonWrap,a.default.mobile),children:e.jsx(l.Button,{as:"a",href:s,variant:"secondary",size:"md",children:"Get Started"})}),e.jsx("div",{className:t.cn(a.default.buttonWrap,a.default.desktop),children:e.jsx(l.Button,{as:"a",href:s,variant:"secondary",size:"lg",children:"Get Started"})})]}),e.jsxs("div",{className:a.default.animationContainer,children:[e.jsx("img",{src:n.default,className:a.default.set1Icon,alt:"Image Icon"}),e.jsx("img",{src:d.default,className:a.default.set1Image,alt:"Product Image"}),e.jsx(g.default,{className:a.default.set1Svg}),e.jsx("img",{src:c.default,className:a.default.set2Icon,alt:"Image Icon"}),e.jsx("img",{src:u.default,className:a.default.set2Image,alt:"Product Image"}),e.jsx(f.default,{className:a.default.set2Svg}),e.jsx("img",{src:o.default,className:a.default.set3Icon,alt:"Image Icon"}),e.jsx("img",{src:m.default,className:a.default.set3Image,alt:"Product Image"}),e.jsx(h.default,{className:a.default.set3Svg})]})]})});exports.LabsHero=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("../../utils/cn/cn.cjs.js"),n=require("../../components/Typography/Typography.cjs.js"),c=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),r=require("../../components/Button/Button.cjs.js"),o=require("./assets/icon1.png.cjs.js"),d=require("./assets/icon2.png.cjs.js"),u=require("./assets/icon3.png.cjs.js"),m=require("./assets/img1.png.cjs.js"),g=require("./assets/img2.png.cjs.js"),p=require("./assets/img3.png.cjs.js"),f=require("./assets/svg1.svg.cjs.js"),y=require("./assets/svg2.svg.cjs.js"),h=require("./assets/svg3.svg.cjs.js"),a=require("./labsHero.module.css.cjs.js"),i=require("../../types/analytics/analytics.cjs.js"),j=({link:t})=>{const s={event:i.EAnalyticsEvent.ctaClicked,type:i.EAnalyticsEventType.interaction,component:"LabsHero",payload:{ctaLink:t}};return e.jsx("section",{className:a.default.root,"data-type":"hero",children:e.jsxs("div",{className:a.default.container,children:[e.jsxs("div",{className:a.default.headlineContainer,children:[e.jsx("div",{className:a.default.title,children:e.jsx(c.HighlightedTitle,{as:"p",colorScheme:"dark",defaultVariant:"displayMd",mobileVariant:"displayXs",title:e.jsxs(e.Fragment,{children:["To see results, you need to ",e.jsx("b",{children:"see your results"})]})})}),e.jsx(n.Typography,{as:"p",defaultVariant:"bodyMd",mobileVariant:"bodySm",className:a.default.description,children:"Healthspan's advanced lab panels provide precise data on 100+ biomarkers. Your dedicated clinical care team analyzes and explains the results in plain terms, helping you personalize and optimize your longevity protocol."}),e.jsx("div",{className:l.cn(a.default.buttonWrap,a.default.mobile),children:e.jsx(r.Button,{as:"a",href:t,variant:"secondary",size:"md",analyticsProps:s,children:"Get Started"})}),e.jsx("div",{className:l.cn(a.default.buttonWrap,a.default.desktop),children:e.jsx(r.Button,{as:"a",href:t,variant:"secondary",size:"lg",analyticsProps:s,children:"Get Started"})})]}),e.jsxs("div",{className:a.default.animationContainer,children:[e.jsx("img",{src:o.default,className:a.default.set1Icon,alt:"Image Icon"}),e.jsx("img",{src:m.default,className:a.default.set1Image,alt:"Product Image"}),e.jsx(f.default,{className:a.default.set1Svg}),e.jsx("img",{src:d.default,className:a.default.set2Icon,alt:"Image Icon"}),e.jsx("img",{src:g.default,className:a.default.set2Image,alt:"Product Image"}),e.jsx(y.default,{className:a.default.set2Svg}),e.jsx("img",{src:u.default,className:a.default.set3Icon,alt:"Image Icon"}),e.jsx("img",{src:p.default,className:a.default.set3Image,alt:"Product Image"}),e.jsx(h.default,{className:a.default.set3Svg})]})]})})};exports.LabsHero=j;
@@ -1,49 +1,60 @@
1
- import { jsx as a, jsxs as r, Fragment as o } from "react/jsx-runtime";
2
- import { cn as t } from "../../utils/cn/cn.es.js";
3
- import { Typography as m } from "../../components/Typography/Typography.es.js";
4
- import { HighlightedTitle as l } from "../../components/HighlightedTitle/HighlightedTitle.es.js";
1
+ import { jsx as a, jsxs as t, Fragment as m } from "react/jsx-runtime";
2
+ import { cn as o } from "../../utils/cn/cn.es.js";
3
+ import { Typography as c } from "../../components/Typography/Typography.es.js";
4
+ import { HighlightedTitle as n } from "../../components/HighlightedTitle/HighlightedTitle.es.js";
5
5
  import { Button as i } from "../../components/Button/Button.es.js";
6
- import c from "./assets/icon1.png.es.js";
7
- import n from "./assets/icon2.png.es.js";
8
- import d from "./assets/icon3.png.es.js";
9
- import p from "./assets/img1.png.es.js";
10
- import g from "./assets/img2.png.es.js";
6
+ import l from "./assets/icon1.png.es.js";
7
+ import d from "./assets/icon2.png.es.js";
8
+ import p from "./assets/icon3.png.es.js";
9
+ import g from "./assets/img1.png.es.js";
10
+ import v from "./assets/img2.png.es.js";
11
11
  import h from "./assets/img3.png.es.js";
12
- import v from "./assets/svg1.svg.es.js";
12
+ import y from "./assets/svg1.svg.es.js";
13
13
  import f from "./assets/svg2.svg.es.js";
14
- import N from "./assets/svg3.svg.es.js";
14
+ import u from "./assets/svg3.svg.es.js";
15
15
  import e from "./labsHero.module.css.es.js";
16
- const M = ({ link: s }) => /* @__PURE__ */ a("section", { className: e.root, "data-type": "hero", children: /* @__PURE__ */ r("div", { className: e.container, children: [
17
- /* @__PURE__ */ r("div", { className: e.headlineContainer, children: [
18
- /* @__PURE__ */ a("div", { className: e.title, children: /* @__PURE__ */ a(
19
- l,
20
- {
21
- as: "p",
22
- colorScheme: "dark",
23
- defaultVariant: "displayMd",
24
- mobileVariant: "displayXs",
25
- title: /* @__PURE__ */ r(o, { children: [
26
- "To see results, you need to ",
27
- /* @__PURE__ */ a("b", { children: "see your results" })
28
- ] })
29
- }
30
- ) }),
31
- /* @__PURE__ */ a(m, { as: "p", defaultVariant: "bodyMd", mobileVariant: "bodySm", className: e.description, children: "Healthspan's advanced lab panels provide precise data on 100+ biomarkers. Your dedicated clinical care team analyzes and explains the results in plain terms, helping you personalize and optimize your longevity protocol." }),
32
- /* @__PURE__ */ a("div", { className: t(e.buttonWrap, e.mobile), children: /* @__PURE__ */ a(i, { as: "a", href: s, variant: "secondary", size: "md", children: "Get Started" }) }),
33
- /* @__PURE__ */ a("div", { className: t(e.buttonWrap, e.desktop), children: /* @__PURE__ */ a(i, { as: "a", href: s, variant: "secondary", size: "lg", children: "Get Started" }) })
34
- ] }),
35
- /* @__PURE__ */ r("div", { className: e.animationContainer, children: [
36
- /* @__PURE__ */ a("img", { src: c, className: e.set1Icon, alt: "Image Icon" }),
37
- /* @__PURE__ */ a("img", { src: p, className: e.set1Image, alt: "Product Image" }),
38
- /* @__PURE__ */ a(v, { className: e.set1Svg }),
39
- /* @__PURE__ */ a("img", { src: n, className: e.set2Icon, alt: "Image Icon" }),
40
- /* @__PURE__ */ a("img", { src: g, className: e.set2Image, alt: "Product Image" }),
41
- /* @__PURE__ */ a(f, { className: e.set2Svg }),
42
- /* @__PURE__ */ a("img", { src: d, className: e.set3Icon, alt: "Image Icon" }),
43
- /* @__PURE__ */ a("img", { src: h, className: e.set3Image, alt: "Product Image" }),
44
- /* @__PURE__ */ a(N, { className: e.set3Svg })
45
- ] })
46
- ] }) });
16
+ import { EAnalyticsEventType as N, EAnalyticsEvent as I } from "../../types/analytics/analytics.es.js";
17
+ const W = ({ link: r }) => {
18
+ const s = {
19
+ event: I.ctaClicked,
20
+ type: N.interaction,
21
+ component: "LabsHero",
22
+ payload: {
23
+ ctaLink: r
24
+ }
25
+ };
26
+ return /* @__PURE__ */ a("section", { className: e.root, "data-type": "hero", children: /* @__PURE__ */ t("div", { className: e.container, children: [
27
+ /* @__PURE__ */ t("div", { className: e.headlineContainer, children: [
28
+ /* @__PURE__ */ a("div", { className: e.title, children: /* @__PURE__ */ a(
29
+ n,
30
+ {
31
+ as: "p",
32
+ colorScheme: "dark",
33
+ defaultVariant: "displayMd",
34
+ mobileVariant: "displayXs",
35
+ title: /* @__PURE__ */ t(m, { children: [
36
+ "To see results, you need to ",
37
+ /* @__PURE__ */ a("b", { children: "see your results" })
38
+ ] })
39
+ }
40
+ ) }),
41
+ /* @__PURE__ */ a(c, { as: "p", defaultVariant: "bodyMd", mobileVariant: "bodySm", className: e.description, children: "Healthspan's advanced lab panels provide precise data on 100+ biomarkers. Your dedicated clinical care team analyzes and explains the results in plain terms, helping you personalize and optimize your longevity protocol." }),
42
+ /* @__PURE__ */ a("div", { className: o(e.buttonWrap, e.mobile), children: /* @__PURE__ */ a(i, { as: "a", href: r, variant: "secondary", size: "md", analyticsProps: s, children: "Get Started" }) }),
43
+ /* @__PURE__ */ a("div", { className: o(e.buttonWrap, e.desktop), children: /* @__PURE__ */ a(i, { as: "a", href: r, variant: "secondary", size: "lg", analyticsProps: s, children: "Get Started" }) })
44
+ ] }),
45
+ /* @__PURE__ */ t("div", { className: e.animationContainer, children: [
46
+ /* @__PURE__ */ a("img", { src: l, className: e.set1Icon, alt: "Image Icon" }),
47
+ /* @__PURE__ */ a("img", { src: g, className: e.set1Image, alt: "Product Image" }),
48
+ /* @__PURE__ */ a(y, { className: e.set1Svg }),
49
+ /* @__PURE__ */ a("img", { src: d, className: e.set2Icon, alt: "Image Icon" }),
50
+ /* @__PURE__ */ a("img", { src: v, className: e.set2Image, alt: "Product Image" }),
51
+ /* @__PURE__ */ a(f, { className: e.set2Svg }),
52
+ /* @__PURE__ */ a("img", { src: p, className: e.set3Icon, alt: "Image Icon" }),
53
+ /* @__PURE__ */ a("img", { src: h, className: e.set3Image, alt: "Product Image" }),
54
+ /* @__PURE__ */ a(u, { className: e.set3Svg })
55
+ ] })
56
+ ] }) });
57
+ };
47
58
  export {
48
- M as LabsHero
59
+ W as LabsHero
49
60
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),r=require("react"),m=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),l=require("../../components/Typography/Typography.cjs.js"),p=require("../../components/Button/Button.cjs.js"),t=require("../../utils/cn/cn.cjs.js"),x=require("./assets/prod1.png.cjs.js"),v=require("./assets/prod2.png.cjs.js"),y=require("./assets/prod3.png.cjs.js"),N=require("./assets/pill1.jpg.cjs.js"),j=require("./assets/pill2.jpg.cjs.js"),b=require("./assets/pill3.jpg.cjs.js"),T=require("./assets/graph1.svg.cjs.js"),V=require("./assets/graph2.svg.cjs.js"),I=require("./assets/graph3.svg.cjs.js"),e=require("./personalizedProtocolHero.module.css.cjs.js"),n=[{pill:N.default,product:x.default,protocol:"ENERGY",dosage:{text:"Oxytocin Nasal Spray",value:"3MG"},goal:"REDUCE STRESS",svg:T.default},{pill:j.default,product:v.default,protocol:"METABOLISM",dosage:{text:"Metformin",value:"3MG"},goal:"AUTOPHAGY INDUCTION",svg:V.default},{pill:b.default,product:y.default,protocol:"SENESCENCE",dosage:{text:"Rapamycin",value:"3MG"},goal:"LONGEVITY",svg:I.default}],q=()=>{const[i,f]=r.useState(0),[h,g]=r.useState(0),[s,u]=r.useState(!1);r.useEffect(()=>{const c=setInterval(()=>{const o=(i+1)%n.length;f(o),setTimeout(()=>{u(!0),setTimeout(()=>{g(o),u(!1)},200)},200)},2500);return()=>clearInterval(c)},[i]);const d=n[h];return a.jsx("section",{className:e.default.root,"data-type":"hero",children:a.jsxs("div",{className:e.default.container,children:[a.jsxs("div",{className:e.default.leftContent,children:[a.jsx("div",{className:e.default.title,children:a.jsx(m.HighlightedTitle,{as:"p",colorScheme:"dark",defaultVariant:"displayMd",mobileVariant:"displayXs",title:a.jsxs(a.Fragment,{children:["A longevity protocol that's ",a.jsx("b",{children:"all you"})]})})}),a.jsx(l.Typography,{className:e.default.description,as:"p",defaultVariant:"bodyMd",mobileVariant:"bodySm",children:"There's nothing more personal than your health, which is why your Healthspan care team works closely with you — using lab testing, data, and coaching — to design and optimize a protocol to fit your unique goals."}),a.jsx("div",{className:t.cn(e.default.buttonWrap,e.default.mobile),children:a.jsx(p.Button,{as:"a",href:"https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",variant:"secondary",size:"md",children:"Join Healthspan"})}),a.jsx("div",{className:t.cn(e.default.buttonWrap,e.default.desktop),children:a.jsx(p.Button,{as:"a",href:"https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",variant:"secondary",size:"lg",children:"Join Healthspan"})})]}),a.jsx("div",{className:e.default.pillContainer,children:n.map((c,o)=>a.jsx("img",{src:c.pill,className:t.cn(e.default.pillImage,o===i&&e.default.active,o===(i-1+n.length)%n.length&&e.default.exiting),alt:"Pill"},o))}),a.jsxs("div",{className:e.default.textContainer,children:[a.jsxs("div",{className:e.default.protocolContainer,children:[a.jsx(l.Typography,{className:e.default.protocolText,as:"p",defaultVariant:"labelMd",mobileVariant:"labelXs",children:"Protocol"}),a.jsx("div",{className:t.cn(e.default.protocolFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.protocolValue,as:"p",defaultVariant:"labelSm",mobileVariant:"labelXs",emphasis:!0,children:d.protocol})})]}),a.jsxs("div",{className:e.default.dosageContainer,children:[a.jsx("div",{className:t.cn(e.default.dosageImageFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx("img",{src:d.product,className:e.default.dosageItem,alt:"Product"})}),a.jsxs("div",{className:e.default.dosageTextBlock,children:[a.jsx("div",{className:t.cn(e.default.dosageTextFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.dosageText,as:"p",defaultVariant:"labelMd",mobileVariant:"labelXs",children:d.dosage.text})}),a.jsx("div",{className:t.cn(e.default.dosageValueFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.dosageValue,as:"p",defaultVariant:"labelSm",mobileVariant:"labelXs",emphasis:!0,children:d.dosage.value})})]})]}),a.jsxs("div",{className:e.default.goalContainer,children:[a.jsx(l.Typography,{className:e.default.goalText,as:"p",defaultVariant:"labelMd",mobileVariant:"labelXs",children:"Goal"}),a.jsx("div",{className:t.cn(e.default.goalFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.goalValue,as:"p",defaultVariant:"labelSm",mobileVariant:"labelXs",emphasis:!0,children:d.goal})})]}),a.jsx("div",{className:e.default.svgContainer,children:a.jsx("div",{className:t.cn(e.default.svgFade,s?e.default.fadeOut:e.default.fadeIn),children:r.createElement(d.svg,{className:e.default.svg})})})]})]})})};exports.PersonalizedProtocolHero=q;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),r=require("react"),y=require("../../components/HighlightedTitle/HighlightedTitle.cjs.js"),l=require("../../components/Typography/Typography.cjs.js"),f=require("../../components/Button/Button.cjs.js"),t=require("../../utils/cn/cn.cjs.js"),v=require("./assets/prod1.png.cjs.js"),N=require("./assets/prod2.png.cjs.js"),j=require("./assets/prod3.png.cjs.js"),b=require("./assets/pill1.jpg.cjs.js"),T=require("./assets/pill2.jpg.cjs.js"),V=require("./assets/pill3.jpg.cjs.js"),I=require("./assets/graph1.svg.cjs.js"),q=require("./assets/graph2.svg.cjs.js"),C=require("./assets/graph3.svg.cjs.js"),e=require("./personalizedProtocolHero.module.css.cjs.js"),h=require("../../types/analytics/analytics.cjs.js"),i=[{pill:b.default,product:v.default,protocol:"ENERGY",dosage:{text:"Oxytocin Nasal Spray",value:"3MG"},goal:"REDUCE STRESS",svg:I.default},{pill:T.default,product:N.default,protocol:"METABOLISM",dosage:{text:"Metformin",value:"3MG"},goal:"AUTOPHAGY INDUCTION",svg:q.default},{pill:V.default,product:j.default,protocol:"SENESCENCE",dosage:{text:"Rapamycin",value:"3MG"},goal:"LONGEVITY",svg:C.default}],E=()=>{const[c,m]=r.useState(0),[g,x]=r.useState(0),[s,u]=r.useState(!1);r.useEffect(()=>{const d=setInterval(()=>{const n=(c+1)%i.length;m(n),setTimeout(()=>{u(!0),setTimeout(()=>{x(n),u(!1)},200)},200)},2500);return()=>clearInterval(d)},[c]);const o=i[g],p=()=>{var d;(d=window.eventBus)==null||d.emit("analytics",{event:h.EAnalyticsEvent.ctaClicked,type:h.EAnalyticsEventType.interaction,component:"PersonalizedProtocolHero",payload:{link:"https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948"}})};return a.jsx("section",{className:e.default.root,"data-type":"hero",children:a.jsxs("div",{className:e.default.container,children:[a.jsxs("div",{className:e.default.leftContent,children:[a.jsx("div",{className:e.default.title,children:a.jsx(y.HighlightedTitle,{as:"p",colorScheme:"dark",defaultVariant:"displayMd",mobileVariant:"displayXs",title:a.jsxs(a.Fragment,{children:["A longevity protocol that's ",a.jsx("b",{children:"all you"})]})})}),a.jsx(l.Typography,{className:e.default.description,as:"p",defaultVariant:"bodyMd",mobileVariant:"bodySm",children:"There's nothing more personal than your health, which is why your Healthspan care team works closely with you — using lab testing, data, and coaching — to design and optimize a protocol to fit your unique goals."}),a.jsx("div",{className:t.cn(e.default.buttonWrap,e.default.mobile),children:a.jsx(f.Button,{as:"a",href:"https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",variant:"secondary",size:"md",onClick:p,children:"Join Healthspan"})}),a.jsx("div",{className:t.cn(e.default.buttonWrap,e.default.desktop),children:a.jsx(f.Button,{as:"a",href:"https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",variant:"secondary",size:"lg",onClick:p,children:"Join Healthspan"})})]}),a.jsx("div",{className:e.default.pillContainer,children:i.map((d,n)=>a.jsx("img",{src:d.pill,className:t.cn(e.default.pillImage,n===c&&e.default.active,n===(c-1+i.length)%i.length&&e.default.exiting),alt:"Pill"},n))}),a.jsxs("div",{className:e.default.textContainer,children:[a.jsxs("div",{className:e.default.protocolContainer,children:[a.jsx(l.Typography,{className:e.default.protocolText,as:"p",defaultVariant:"labelMd",mobileVariant:"labelXs",children:"Protocol"}),a.jsx("div",{className:t.cn(e.default.protocolFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.protocolValue,as:"p",defaultVariant:"labelSm",mobileVariant:"labelXs",emphasis:!0,children:o.protocol})})]}),a.jsxs("div",{className:e.default.dosageContainer,children:[a.jsx("div",{className:t.cn(e.default.dosageImageFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx("img",{src:o.product,className:e.default.dosageItem,alt:"Product"})}),a.jsxs("div",{className:e.default.dosageTextBlock,children:[a.jsx("div",{className:t.cn(e.default.dosageTextFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.dosageText,as:"p",defaultVariant:"labelMd",mobileVariant:"labelXs",children:o.dosage.text})}),a.jsx("div",{className:t.cn(e.default.dosageValueFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.dosageValue,as:"p",defaultVariant:"labelSm",mobileVariant:"labelXs",emphasis:!0,children:o.dosage.value})})]})]}),a.jsxs("div",{className:e.default.goalContainer,children:[a.jsx(l.Typography,{className:e.default.goalText,as:"p",defaultVariant:"labelMd",mobileVariant:"labelXs",children:"Goal"}),a.jsx("div",{className:t.cn(e.default.goalFade,s?e.default.fadeOut:e.default.fadeIn),children:a.jsx(l.Typography,{className:e.default.goalValue,as:"p",defaultVariant:"labelSm",mobileVariant:"labelXs",emphasis:!0,children:o.goal})})]}),a.jsx("div",{className:e.default.svgContainer,children:a.jsx("div",{className:t.cn(e.default.svgFade,s?e.default.fadeOut:e.default.fadeIn),children:r.createElement(o.svg,{className:e.default.svg})})})]})]})})};exports.PersonalizedProtocolHero=E;
@@ -1,61 +1,72 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as t, Fragment as v } from "react/jsx-runtime";
3
- import N, { useState as m, useEffect as b } from "react";
2
+ import { jsx as e, jsxs as l, Fragment as N } from "react/jsx-runtime";
3
+ import b, { useState as m, useEffect as y } from "react";
4
4
  import { HighlightedTitle as x } from "../../components/HighlightedTitle/HighlightedTitle.es.js";
5
5
  import { Typography as o } from "../../components/Typography/Typography.es.js";
6
- import { Button as h } from "../../components/Button/Button.es.js";
7
- import { cn as l } from "../../utils/cn/cn.es.js";
6
+ import { Button as u } from "../../components/Button/Button.es.js";
7
+ import { cn as t } from "../../utils/cn/cn.es.js";
8
8
  import V from "./assets/prod1.png.es.js";
9
- import y from "./assets/prod2.png.es.js";
10
- import I from "./assets/prod3.png.es.js";
11
- import T from "./assets/pill1.jpg.es.js";
12
- import S from "./assets/pill2.jpg.es.js";
13
- import C from "./assets/pill3.jpg.es.js";
14
- import E from "./assets/graph1.svg.es.js";
15
- import M from "./assets/graph2.svg.es.js";
16
- import O from "./assets/graph3.svg.es.js";
9
+ import I from "./assets/prod2.png.es.js";
10
+ import T from "./assets/prod3.png.es.js";
11
+ import C from "./assets/pill1.jpg.es.js";
12
+ import E from "./assets/pill2.jpg.es.js";
13
+ import S from "./assets/pill3.jpg.es.js";
14
+ import M from "./assets/graph1.svg.es.js";
15
+ import O from "./assets/graph2.svg.es.js";
16
+ import G from "./assets/graph3.svg.es.js";
17
17
  import a from "./personalizedProtocolHero.module.css.es.js";
18
- const n = [
18
+ import { EAnalyticsEventType as P, EAnalyticsEvent as k } from "../../types/analytics/analytics.es.js";
19
+ const d = [
19
20
  {
20
- pill: T,
21
+ pill: C,
21
22
  product: V,
22
23
  protocol: "ENERGY",
23
24
  dosage: { text: "Oxytocin Nasal Spray", value: "3MG" },
24
25
  goal: "REDUCE STRESS",
25
- svg: E
26
+ svg: M
26
27
  },
27
28
  {
28
- pill: S,
29
- product: y,
29
+ pill: E,
30
+ product: I,
30
31
  protocol: "METABOLISM",
31
32
  dosage: { text: "Metformin", value: "3MG" },
32
33
  goal: "AUTOPHAGY INDUCTION",
33
- svg: M
34
+ svg: O
34
35
  },
35
36
  {
36
- pill: C,
37
- product: I,
37
+ pill: S,
38
+ product: T,
38
39
  protocol: "SENESCENCE",
39
40
  dosage: { text: "Rapamycin", value: "3MG" },
40
41
  goal: "LONGEVITY",
41
- svg: O
42
+ svg: G
42
43
  }
43
- ], L = () => {
44
- const [d, u] = m(0), [g, f] = m(0), [r, p] = m(!1);
45
- b(() => {
46
- const c = setInterval(() => {
47
- const i = (d + 1) % n.length;
48
- u(i), setTimeout(() => {
44
+ ], K = () => {
45
+ const [c, g] = m(0), [f, v] = m(0), [r, p] = m(!1);
46
+ y(() => {
47
+ const s = setInterval(() => {
48
+ const n = (c + 1) % d.length;
49
+ g(n), setTimeout(() => {
49
50
  p(!0), setTimeout(() => {
50
- f(i), p(!1);
51
+ v(n), p(!1);
51
52
  }, 200);
52
53
  }, 200);
53
54
  }, 2500);
54
- return () => clearInterval(c);
55
- }, [d]);
56
- const s = n[g];
57
- return /* @__PURE__ */ e("section", { className: a.root, "data-type": "hero", children: /* @__PURE__ */ t("div", { className: a.container, children: [
58
- /* @__PURE__ */ t("div", { className: a.leftContent, children: [
55
+ return () => clearInterval(s);
56
+ }, [c]);
57
+ const i = d[f], h = () => {
58
+ var s;
59
+ (s = window.eventBus) == null || s.emit("analytics", {
60
+ event: k.ctaClicked,
61
+ type: P.interaction,
62
+ component: "PersonalizedProtocolHero",
63
+ payload: {
64
+ link: "https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948"
65
+ }
66
+ });
67
+ };
68
+ return /* @__PURE__ */ e("section", { className: a.root, "data-type": "hero", children: /* @__PURE__ */ l("div", { className: a.container, children: [
69
+ /* @__PURE__ */ l("div", { className: a.leftContent, children: [
59
70
  /* @__PURE__ */ e("div", { className: a.title, children: /* @__PURE__ */ e(
60
71
  x,
61
72
  {
@@ -63,49 +74,51 @@ const n = [
63
74
  colorScheme: "dark",
64
75
  defaultVariant: "displayMd",
65
76
  mobileVariant: "displayXs",
66
- title: /* @__PURE__ */ t(v, { children: [
77
+ title: /* @__PURE__ */ l(N, { children: [
67
78
  "A longevity protocol that's ",
68
79
  /* @__PURE__ */ e("b", { children: "all you" })
69
80
  ] })
70
81
  }
71
82
  ) }),
72
83
  /* @__PURE__ */ e(o, { className: a.description, as: "p", defaultVariant: "bodyMd", mobileVariant: "bodySm", children: "There's nothing more personal than your health, which is why your Healthspan care team works closely with you — using lab testing, data, and coaching — to design and optimize a protocol to fit your unique goals." }),
73
- /* @__PURE__ */ e("div", { className: l(a.buttonWrap, a.mobile), children: /* @__PURE__ */ e(
74
- h,
84
+ /* @__PURE__ */ e("div", { className: t(a.buttonWrap, a.mobile), children: /* @__PURE__ */ e(
85
+ u,
75
86
  {
76
87
  as: "a",
77
88
  href: "https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",
78
89
  variant: "secondary",
79
90
  size: "md",
91
+ onClick: h,
80
92
  children: "Join Healthspan"
81
93
  }
82
94
  ) }),
83
- /* @__PURE__ */ e("div", { className: l(a.buttonWrap, a.desktop), children: /* @__PURE__ */ e(
84
- h,
95
+ /* @__PURE__ */ e("div", { className: t(a.buttonWrap, a.desktop), children: /* @__PURE__ */ e(
96
+ u,
85
97
  {
86
98
  as: "a",
87
99
  href: "https://app.gethealthspan.com/#/product/signup/6896e50bc0af7d4d26738948",
88
100
  variant: "secondary",
89
101
  size: "lg",
102
+ onClick: h,
90
103
  children: "Join Healthspan"
91
104
  }
92
105
  ) })
93
106
  ] }),
94
- /* @__PURE__ */ e("div", { className: a.pillContainer, children: n.map((c, i) => /* @__PURE__ */ e(
107
+ /* @__PURE__ */ e("div", { className: a.pillContainer, children: d.map((s, n) => /* @__PURE__ */ e(
95
108
  "img",
96
109
  {
97
- src: c.pill,
98
- className: l(
110
+ src: s.pill,
111
+ className: t(
99
112
  a.pillImage,
100
- i === d && a.active,
101
- i === (d - 1 + n.length) % n.length && a.exiting
113
+ n === c && a.active,
114
+ n === (c - 1 + d.length) % d.length && a.exiting
102
115
  ),
103
116
  alt: "Pill"
104
117
  },
105
- i
118
+ n
106
119
  )) }),
107
- /* @__PURE__ */ t("div", { className: a.textContainer, children: [
108
- /* @__PURE__ */ t("div", { className: a.protocolContainer, children: [
120
+ /* @__PURE__ */ l("div", { className: a.textContainer, children: [
121
+ /* @__PURE__ */ l("div", { className: a.protocolContainer, children: [
109
122
  /* @__PURE__ */ e(
110
123
  o,
111
124
  {
@@ -116,7 +129,7 @@ const n = [
116
129
  children: "Protocol"
117
130
  }
118
131
  ),
119
- /* @__PURE__ */ e("div", { className: l(a.protocolFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
132
+ /* @__PURE__ */ e("div", { className: t(a.protocolFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
120
133
  o,
121
134
  {
122
135
  className: a.protocolValue,
@@ -124,24 +137,24 @@ const n = [
124
137
  defaultVariant: "labelSm",
125
138
  mobileVariant: "labelXs",
126
139
  emphasis: !0,
127
- children: s.protocol
140
+ children: i.protocol
128
141
  }
129
142
  ) })
130
143
  ] }),
131
- /* @__PURE__ */ t("div", { className: a.dosageContainer, children: [
132
- /* @__PURE__ */ e("div", { className: l(a.dosageImageFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e("img", { src: s.product, className: a.dosageItem, alt: "Product" }) }),
133
- /* @__PURE__ */ t("div", { className: a.dosageTextBlock, children: [
134
- /* @__PURE__ */ e("div", { className: l(a.dosageTextFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
144
+ /* @__PURE__ */ l("div", { className: a.dosageContainer, children: [
145
+ /* @__PURE__ */ e("div", { className: t(a.dosageImageFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e("img", { src: i.product, className: a.dosageItem, alt: "Product" }) }),
146
+ /* @__PURE__ */ l("div", { className: a.dosageTextBlock, children: [
147
+ /* @__PURE__ */ e("div", { className: t(a.dosageTextFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
135
148
  o,
136
149
  {
137
150
  className: a.dosageText,
138
151
  as: "p",
139
152
  defaultVariant: "labelMd",
140
153
  mobileVariant: "labelXs",
141
- children: s.dosage.text
154
+ children: i.dosage.text
142
155
  }
143
156
  ) }),
144
- /* @__PURE__ */ e("div", { className: l(a.dosageValueFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
157
+ /* @__PURE__ */ e("div", { className: t(a.dosageValueFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
145
158
  o,
146
159
  {
147
160
  className: a.dosageValue,
@@ -149,14 +162,14 @@ const n = [
149
162
  defaultVariant: "labelSm",
150
163
  mobileVariant: "labelXs",
151
164
  emphasis: !0,
152
- children: s.dosage.value
165
+ children: i.dosage.value
153
166
  }
154
167
  ) })
155
168
  ] })
156
169
  ] }),
157
- /* @__PURE__ */ t("div", { className: a.goalContainer, children: [
170
+ /* @__PURE__ */ l("div", { className: a.goalContainer, children: [
158
171
  /* @__PURE__ */ e(o, { className: a.goalText, as: "p", defaultVariant: "labelMd", mobileVariant: "labelXs", children: "Goal" }),
159
- /* @__PURE__ */ e("div", { className: l(a.goalFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
172
+ /* @__PURE__ */ e("div", { className: t(a.goalFade, r ? a.fadeOut : a.fadeIn), children: /* @__PURE__ */ e(
160
173
  o,
161
174
  {
162
175
  className: a.goalValue,
@@ -164,16 +177,16 @@ const n = [
164
177
  defaultVariant: "labelSm",
165
178
  mobileVariant: "labelXs",
166
179
  emphasis: !0,
167
- children: s.goal
180
+ children: i.goal
168
181
  }
169
182
  ) })
170
183
  ] }),
171
- /* @__PURE__ */ e("div", { className: a.svgContainer, children: /* @__PURE__ */ e("div", { className: l(a.svgFade, r ? a.fadeOut : a.fadeIn), children: N.createElement(s.svg, {
184
+ /* @__PURE__ */ e("div", { className: a.svgContainer, children: /* @__PURE__ */ e("div", { className: t(a.svgFade, r ? a.fadeOut : a.fadeIn), children: b.createElement(i.svg, {
172
185
  className: a.svg
173
186
  }) }) })
174
187
  ] })
175
188
  ] }) });
176
189
  };
177
190
  export {
178
- L as PersonalizedProtocolHero
191
+ K as PersonalizedProtocolHero
179
192
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var c=(e=>(e.pageView="Page view",e.featuredArticleClicked="Featured article clicked",e.scienceCardClicked="Science card clicked",e.articleCategoryClicked="Article category clicked",e.userSelectedPlan="User selected plan",e.mailchimpSubmitClicked="Mailchimp submit clicked",e.articleScrolledBy="Article scrolled by",e))(c||{}),r=(e=>(e.view="view",e.appearance="appearance",e.interaction="interaction",e))(r||{});exports.EAnalyticsEvent=c;exports.EAnalyticsEventType=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var c=(e=>(e.pageView="Page view",e.featuredArticleClicked="Featured article clicked",e.scienceCardClicked="Science card clicked",e.articleCategoryClicked="Article category clicked",e.userSelectedPlan="User selected plan",e.mailchimpSubmitClicked="Mailchimp submit clicked",e.articleScrolledBy="Article scrolled by",e.ctaClicked="CTA clicked",e.productGalleryCardClicked="Product gallery card clicked",e))(c||{}),r=(e=>(e.view="view",e.appearance="appearance",e.interaction="interaction",e))(r||{});exports.EAnalyticsEvent=c;exports.EAnalyticsEventType=r;
@@ -1,5 +1,5 @@
1
- var r = /* @__PURE__ */ ((e) => (e.pageView = "Page view", e.featuredArticleClicked = "Featured article clicked", e.scienceCardClicked = "Science card clicked", e.articleCategoryClicked = "Article category clicked", e.userSelectedPlan = "User selected plan", e.mailchimpSubmitClicked = "Mailchimp submit clicked", e.articleScrolledBy = "Article scrolled by", e))(r || {}), c = /* @__PURE__ */ ((e) => (e.view = "view", e.appearance = "appearance", e.interaction = "interaction", e))(c || {});
1
+ var c = /* @__PURE__ */ ((e) => (e.pageView = "Page view", e.featuredArticleClicked = "Featured article clicked", e.scienceCardClicked = "Science card clicked", e.articleCategoryClicked = "Article category clicked", e.userSelectedPlan = "User selected plan", e.mailchimpSubmitClicked = "Mailchimp submit clicked", e.articleScrolledBy = "Article scrolled by", e.ctaClicked = "CTA clicked", e.productGalleryCardClicked = "Product gallery card clicked", e))(c || {}), r = /* @__PURE__ */ ((e) => (e.view = "view", e.appearance = "appearance", e.interaction = "interaction", e))(r || {});
2
2
  export {
3
- r as EAnalyticsEvent,
4
- c as EAnalyticsEventType
3
+ c as EAnalyticsEvent,
4
+ r as EAnalyticsEventType
5
5
  };
@@ -5,7 +5,9 @@ export declare enum EAnalyticsEvent {
5
5
  articleCategoryClicked = "Article category clicked",
6
6
  userSelectedPlan = "User selected plan",
7
7
  mailchimpSubmitClicked = "Mailchimp submit clicked",
8
- articleScrolledBy = "Article scrolled by"
8
+ articleScrolledBy = "Article scrolled by",
9
+ ctaClicked = "CTA clicked",
10
+ productGalleryCardClicked = "Product gallery card clicked"
9
11
  }
10
12
  export declare enum EAnalyticsEventType {
11
13
  view = "view",
@@ -14,8 +16,10 @@ export declare enum EAnalyticsEventType {
14
16
  }
15
17
  export type TBasicAnalyticsEvent = {
16
18
  event: EAnalyticsEvent;
17
- location: string;
19
+ location?: string;
18
20
  type: EAnalyticsEventType;
21
+ component?: string;
22
+ element?: string;
19
23
  };
20
24
  export type TPageViewEvent = TBasicAnalyticsEvent & {
21
25
  event: EAnalyticsEvent.pageView;
@@ -50,6 +54,7 @@ export type TArticleCategoryClickedEvent = TBasicAnalyticsEvent & {
50
54
  export type TUserSelectedPlanEvent = TBasicAnalyticsEvent & {
51
55
  event: EAnalyticsEvent.userSelectedPlan;
52
56
  payload: {
57
+ productId: string;
53
58
  planId: string;
54
59
  planPrice?: number;
55
60
  planDuration?: string;
@@ -71,6 +76,24 @@ export type TarticleScrolledByEvent = TBasicAnalyticsEvent & {
71
76
  articleTitle: string;
72
77
  };
73
78
  };
79
+ export type TCTAClickedEvent = TBasicAnalyticsEvent & {
80
+ event: EAnalyticsEvent.ctaClicked;
81
+ payload: {
82
+ productId?: string;
83
+ productName?: string;
84
+ ctaLabel?: string;
85
+ ctaLink?: string;
86
+ selectedPlanId?: string;
87
+ };
88
+ };
89
+ export type TProductGalleryCardClickedEvent = TBasicAnalyticsEvent & {
90
+ event: EAnalyticsEvent.productGalleryCardClicked;
91
+ payload: {
92
+ zenpatientId: string;
93
+ link: string;
94
+ productName: string;
95
+ };
96
+ };
74
97
  export interface IEventBus {
75
98
  emitAsync<T>(event: string, ...args: T[]): Promise<void>;
76
99
  emit<T>(event: string, ...args: T[]): boolean;
@@ -78,4 +101,4 @@ export interface IEventBus {
78
101
  off<T>(event: string, listener: (...args: T[]) => void): IEventBus;
79
102
  listeners<T>(event: string): Array<(...args: T[]) => void>;
80
103
  }
81
- export type TAnalyticsEvent = TPageViewEvent | TFeaturedArticleClickedEvent | TScienceCardClickedEvent | TArticleCategoryClickedEvent | TUserSelectedPlanEvent | TMailchimpSubmitClickedEvent | TarticleScrolledByEvent;
104
+ export type TAnalyticsEvent = TPageViewEvent | TFeaturedArticleClickedEvent | TScienceCardClickedEvent | TArticleCategoryClickedEvent | TUserSelectedPlanEvent | TMailchimpSubmitClickedEvent | TarticleScrolledByEvent | TCTAClickedEvent | TProductGalleryCardClickedEvent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenpatient-org/healthspan-marketing-ui",
3
- "version": "0.1.169",
3
+ "version": "0.1.171",
4
4
  "description": "Design system",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.es.js",