@zenpatient-org/healthspan-marketing-ui 0.2.16 → 0.2.17

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