@zenpatient-org/healthspan-marketing-ui 0.2.7 → 0.2.9

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 (21) hide show
  1. package/dist/components/PlainFeaturesGroup/PlainFeaturesGroup.cjs.js +1 -0
  2. package/dist/components/PlainFeaturesGroup/PlainFeaturesGroup.d.ts +9 -0
  3. package/dist/components/PlainFeaturesGroup/PlainFeaturesGroup.es.js +15 -0
  4. package/dist/components/PlainFeaturesGroup/assets/VectorLogo.svg +1 -0
  5. package/dist/components/PlainFeaturesGroup/assets/VectorLogo.svg.cjs.js +1 -0
  6. package/dist/components/PlainFeaturesGroup/assets/VectorLogo.svg.es.js +5 -0
  7. package/dist/components/PlainFeaturesGroup/index.d.ts +1 -0
  8. package/dist/components/PlainFeaturesGroup/plainFeaturesGroup.module.css +50 -0
  9. package/dist/components/RatingPreview/RatingPreview.cjs.js +1 -0
  10. package/dist/components/RatingPreview/RatingPreview.d.ts +8 -0
  11. package/dist/components/RatingPreview/RatingPreview.es.js +25 -0
  12. package/dist/components/RatingPreview/index.d.ts +1 -0
  13. package/dist/components/RatingPreview/ratingPreview.module.css +11 -0
  14. package/dist/modules/IndividualProductCard/components/Features/Features.cjs.js +1 -1
  15. package/dist/modules/IndividualProductCard/components/Features/Features.es.js +45 -30
  16. package/dist/modules/IndividualProductCard/components/Features/features.module.css +9 -2
  17. package/dist/modules/IndividualProductCard/types.d.ts +1 -0
  18. package/dist/pageComponents/ScrollingFeatures/ScrollingFeatures.cjs.js +1 -1
  19. package/dist/pageComponents/ScrollingFeatures/ScrollingFeatures.es.js +12 -8
  20. package/dist/pageComponents/ScrollingFeatures/scrollingFeatures.module.css +8 -1
  21. package/package.json +11 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("./assets/VectorLogo.svg.cjs.js"),s=require("../../src/components/PlainFeaturesGroup/plainFeaturesGroup.module.css"),t=require("../Icon/Icon.cjs.js"),c=require("../Typography/Typography.cjs.js"),i=({items:a})=>e.jsxs("div",{className:s.container,children:[e.jsx("div",{className:s.plainFeaturesGroup,children:a.map((r,o)=>e.jsxs("div",{className:s.feature,children:[e.jsx(t.Icon,{className:s.featureIcon,name:r.icon}),e.jsx(c.Typography,{className:s.featureText,defaultVariant:"bodyXs",children:r.text})]},o))}),e.jsx(n.default,{className:s.logo})]});exports.PlainFeaturesGroup=i;
@@ -0,0 +1,9 @@
1
+ import { EIconName } from '../Icon';
2
+
3
+ export type TPlainFeaturesGroupProps = {
4
+ items: Array<{
5
+ icon: EIconName;
6
+ text: string;
7
+ }>;
8
+ };
9
+ export declare const PlainFeaturesGroup: ({ items }: TPlainFeaturesGroupProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsxs as o, jsx as r } from "react/jsx-runtime";
2
+ import m from "./assets/VectorLogo.svg.es.js";
3
+ import e from "../../components/PlainFeaturesGroup/plainFeaturesGroup.module.css";
4
+ import { Icon as c } from "../Icon/Icon.es.js";
5
+ import { Typography as i } from "../Typography/Typography.es.js";
6
+ const u = ({ items: s }) => /* @__PURE__ */ o("div", { className: e.container, children: [
7
+ /* @__PURE__ */ r("div", { className: e.plainFeaturesGroup, children: s.map((a, t) => /* @__PURE__ */ o("div", { className: e.feature, children: [
8
+ /* @__PURE__ */ r(c, { className: e.featureIcon, name: a.icon }),
9
+ /* @__PURE__ */ r(i, { className: e.featureText, defaultVariant: "bodyXs", children: a.text })
10
+ ] }, t)) }),
11
+ /* @__PURE__ */ r(m, { className: e.logo })
12
+ ] });
13
+ export {
14
+ u as PlainFeaturesGroup
15
+ };
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="300" height="201" fill="none"><g filter="url(#a)" opacity=".6"><path fill="#000" fill-opacity=".1" d="m121.3 55.7-29.7 26v118.6H50.5v-65.6c0-12.3 1.5-19.1 12.3-28l28.8-25H.5V51h91.1V.7h41.2v27.8c0 12-1.2 18.4-11.5 27.2Zm87.6 94.2H300v-30.5h-91.1l28.8-25c10.8-9 12.3-15.8 12.3-28.2V.6h-41.1v118.8l-29.7 25.9c-10.3 8.8-11.5 15.2-11.5 27.2v27.8h41.2V150Z"/><path fill="url(#b)" fill-opacity=".4" d="m121.3 55.7-29.7 26v118.6H50.5v-65.6c0-12.3 1.5-19.1 12.3-28l28.8-25H.5V51h91.1V.7h41.2v27.8c0 12-1.2 18.4-11.5 27.2Zm87.6 94.2H300v-30.5h-91.1l28.8-25c10.8-9 12.3-15.8 12.3-28.2V.6h-41.1v118.8l-29.7 25.9c-10.3 8.8-11.5 15.2-11.5 27.2v27.8h41.2V150Z"/></g><defs><linearGradient id="b" x1=".5" x2="300" y1=".6" y2="190.3" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff"/><stop offset=".8" stop-color="#fff" stop-opacity=".4"/></linearGradient><filter id="a" width="299.5" height="201.4" x=".5" y=".6" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="1.7"/><feGaussianBlur stdDeviation="1.7"/><feComposite in2="hardAlpha" k2="-1" k3="1" operator="arithmetic"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0"/><feBlend in2="shape" result="effect1_innerShadow_788_5293"/></filter></defs></svg>
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react");function c(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const l in t)if(l!=="default"){const a=Object.getOwnPropertyDescriptor(t,l);Object.defineProperty(r,l,a.get?a:{enumerable:!0,get:()=>t[l]})}}return r.default=t,Object.freeze(r)}const e=c(n),o=t=>e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:300,height:201,fill:"none",...t},e.createElement("g",{filter:"url(#a)",opacity:.6},e.createElement("path",{fill:"#000",fillOpacity:.1,d:"m121.3 55.7-29.7 26v118.6H50.5v-65.6c0-12.3 1.5-19.1 12.3-28l28.8-25H.5V51h91.1V.7h41.2v27.8c0 12-1.2 18.4-11.5 27.2Zm87.6 94.2H300v-30.5h-91.1l28.8-25c10.8-9 12.3-15.8 12.3-28.2V.6h-41.1v118.8l-29.7 25.9c-10.3 8.8-11.5 15.2-11.5 27.2v27.8h41.2V150Z"}),e.createElement("path",{fill:"url(#b)",fillOpacity:.4,d:"m121.3 55.7-29.7 26v118.6H50.5v-65.6c0-12.3 1.5-19.1 12.3-28l28.8-25H.5V51h91.1V.7h41.2v27.8c0 12-1.2 18.4-11.5 27.2Zm87.6 94.2H300v-30.5h-91.1l28.8-25c10.8-9 12.3-15.8 12.3-28.2V.6h-41.1v118.8l-29.7 25.9c-10.3 8.8-11.5 15.2-11.5 27.2v27.8h41.2V150Z"})),e.createElement("defs",null,e.createElement("linearGradient",{id:"b",x1:.5,x2:300,y1:.6,y2:190.3,gradientUnits:"userSpaceOnUse"},e.createElement("stop",{offset:.1,stopColor:"#fff"}),e.createElement("stop",{offset:.8,stopColor:"#fff",stopOpacity:.4})),e.createElement("filter",{id:"a",width:299.5,height:201.4,x:.5,y:.6,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},e.createElement("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),e.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),e.createElement("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),e.createElement("feOffset",{dy:1.7}),e.createElement("feGaussianBlur",{stdDeviation:1.7}),e.createElement("feComposite",{in2:"hardAlpha",k2:-1,k3:1,operator:"arithmetic"}),e.createElement("feColorMatrix",{values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0"}),e.createElement("feBlend",{in2:"shape",result:"effect1_innerShadow_788_5293"}))));exports.default=o;
@@ -0,0 +1,5 @@
1
+ import * as e from "react";
2
+ const l = (t) => /* @__PURE__ */ e.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 300, height: 201, fill: "none", ...t }, /* @__PURE__ */ e.createElement("g", { filter: "url(#a)", opacity: 0.6 }, /* @__PURE__ */ e.createElement("path", { fill: "#000", fillOpacity: 0.1, d: "m121.3 55.7-29.7 26v118.6H50.5v-65.6c0-12.3 1.5-19.1 12.3-28l28.8-25H.5V51h91.1V.7h41.2v27.8c0 12-1.2 18.4-11.5 27.2Zm87.6 94.2H300v-30.5h-91.1l28.8-25c10.8-9 12.3-15.8 12.3-28.2V.6h-41.1v118.8l-29.7 25.9c-10.3 8.8-11.5 15.2-11.5 27.2v27.8h41.2V150Z" }), /* @__PURE__ */ e.createElement("path", { fill: "url(#b)", fillOpacity: 0.4, d: "m121.3 55.7-29.7 26v118.6H50.5v-65.6c0-12.3 1.5-19.1 12.3-28l28.8-25H.5V51h91.1V.7h41.2v27.8c0 12-1.2 18.4-11.5 27.2Zm87.6 94.2H300v-30.5h-91.1l28.8-25c10.8-9 12.3-15.8 12.3-28.2V.6h-41.1v118.8l-29.7 25.9c-10.3 8.8-11.5 15.2-11.5 27.2v27.8h41.2V150Z" })), /* @__PURE__ */ e.createElement("defs", null, /* @__PURE__ */ e.createElement("linearGradient", { id: "b", x1: 0.5, x2: 300, y1: 0.6, y2: 190.3, gradientUnits: "userSpaceOnUse" }, /* @__PURE__ */ e.createElement("stop", { offset: 0.1, stopColor: "#fff" }), /* @__PURE__ */ e.createElement("stop", { offset: 0.8, stopColor: "#fff", stopOpacity: 0.4 })), /* @__PURE__ */ e.createElement("filter", { id: "a", width: 299.5, height: 201.4, x: 0.5, y: 0.6, colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse" }, /* @__PURE__ */ e.createElement("feFlood", { floodOpacity: 0, result: "BackgroundImageFix" }), /* @__PURE__ */ e.createElement("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), /* @__PURE__ */ e.createElement("feColorMatrix", { in: "SourceAlpha", result: "hardAlpha", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" }), /* @__PURE__ */ e.createElement("feOffset", { dy: 1.7 }), /* @__PURE__ */ e.createElement("feGaussianBlur", { stdDeviation: 1.7 }), /* @__PURE__ */ e.createElement("feComposite", { in2: "hardAlpha", k2: -1, k3: 1, operator: "arithmetic" }), /* @__PURE__ */ e.createElement("feColorMatrix", { values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0" }), /* @__PURE__ */ e.createElement("feBlend", { in2: "shape", result: "effect1_innerShadow_788_5293" }))));
3
+ export {
4
+ l as default
5
+ };
@@ -0,0 +1 @@
1
+ export { PlainFeaturesGroup } from './PlainFeaturesGroup';
@@ -0,0 +1,50 @@
1
+ .container {
2
+ width: 100%;
3
+ display: flex;
4
+ border-radius: var(--border-radius-xs);
5
+ background: linear-gradient(95deg, var(--color-neutral-100) 0.09%, #ececec 93.88%);
6
+ overflow: hidden;
7
+ justify-content: space-between;
8
+ }
9
+
10
+ .plainFeaturesGroup {
11
+ flex-shrink: 0;
12
+ position: relative;
13
+ display: flex;
14
+ flex-direction: column;
15
+ gap: 8px;
16
+ padding: 16px 16px 16px 32px;
17
+ }
18
+
19
+ .logo {
20
+ position: relative;
21
+ height: 200px;
22
+ width: 300px;
23
+ margin-bottom: -66px;
24
+ flex-shrink: 0;
25
+ z-index: 0;
26
+ opacity: 0.6;
27
+ }
28
+
29
+ .feature {
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 12px;
33
+ }
34
+
35
+ .featureIcon {
36
+ color: var(--color-text-secondary);
37
+ width: 20px;
38
+ height: 20px;
39
+ }
40
+
41
+ .featureText {
42
+ color: var(--color-text-secondary);
43
+ }
44
+
45
+ @media (width <= 1200px) {
46
+ .logo {
47
+ margin-left: -47px;
48
+ margin-top: -30px;
49
+ }
50
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),o=require("../../src/components/RatingPreview/ratingPreview.module.css"),t=require("../Typography/Typography.cjs.js"),c=require("../Icon/Icon.cjs.js"),l=require("../Icon/constants.cjs.js"),u=a=>{const s=Math.round(a*2)/2,n=[];for(let r=0;r<Math.floor(s);r++)n.push(e.jsx(c.Icon,{name:l.EIconName.STAR_FILL,className:o.starIcon},`full-${r}`));return s%1===.5&&n.push(e.jsx(c.Icon,{name:l.EIconName.STAR_HALF,className:o.starIcon},"half")),n},i=({rating:a,text:s})=>e.jsxs("div",{className:o.ratingPreview,children:[e.jsxs(t.Typography,{as:"p",defaultVariant:"labelMd",children:[a.stars," ",u(a.stars)]}),s&&e.jsxs(e.Fragment,{children:[e.jsx(t.Typography,{as:"p",defaultVariant:"labelSm",children:"|"}),e.jsx(t.Typography,{as:"p",defaultVariant:"labelSm",emphasis:!0,children:s})]})]});exports.RatingPreview=i;exports.default=i;
@@ -0,0 +1,8 @@
1
+ export type TRatingPreviewProps = {
2
+ rating: {
3
+ stars: number;
4
+ };
5
+ text?: string;
6
+ };
7
+ export declare const RatingPreview: ({ rating, text }: TRatingPreviewProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default RatingPreview;
@@ -0,0 +1,25 @@
1
+ import { jsxs as n, Fragment as c, jsx as e } from "react/jsx-runtime";
2
+ import l from "../../components/RatingPreview/ratingPreview.module.css";
3
+ import { Typography as o } from "../Typography/Typography.es.js";
4
+ import { Icon as i } from "../Icon/Icon.es.js";
5
+ import { EIconName as m } from "../Icon/constants.es.js";
6
+ const d = (r) => {
7
+ const a = Math.round(r * 2) / 2, s = [];
8
+ for (let t = 0; t < Math.floor(a); t++)
9
+ s.push(/* @__PURE__ */ e(i, { name: m.STAR_FILL, className: l.starIcon }, `full-${t}`));
10
+ return a % 1 === 0.5 && s.push(/* @__PURE__ */ e(i, { name: m.STAR_HALF, className: l.starIcon }, "half")), s;
11
+ }, I = ({ rating: r, text: a }) => /* @__PURE__ */ n("div", { className: l.ratingPreview, children: [
12
+ /* @__PURE__ */ n(o, { as: "p", defaultVariant: "labelMd", children: [
13
+ r.stars,
14
+ " ",
15
+ d(r.stars)
16
+ ] }),
17
+ a && /* @__PURE__ */ n(c, { children: [
18
+ /* @__PURE__ */ e(o, { as: "p", defaultVariant: "labelSm", children: "|" }),
19
+ /* @__PURE__ */ e(o, { as: "p", defaultVariant: "labelSm", emphasis: !0, children: a })
20
+ ] })
21
+ ] });
22
+ export {
23
+ I as RatingPreview,
24
+ I as default
25
+ };
@@ -0,0 +1 @@
1
+ export { RatingPreview } from './RatingPreview';
@@ -0,0 +1,11 @@
1
+ .ratingPreview {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 8px;
5
+ }
6
+
7
+ .starIcon {
8
+ margin-bottom: -1px;
9
+ width: 14px;
10
+ height: 14px;
11
+ }
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),a=require("react"),u=require("../../../../utils/cn/cn.cjs.js"),r=require("../../../../src/modules/IndividualProductCard/components/Features/features.module.css"),d=require("../../../../components/TypeBadge/TypeBadge.cjs.js"),n=require("../../../../components/Typography/Typography.cjs.js"),y=require("../../../../components/IconBracket/IconBracket.cjs.js"),g=({features:i})=>{const[c,o]=a.useState([]),l=a.useCallback(e=>{o(s=>s.includes(e)?s.filter(p=>p!==e):[...s,e])},[]);return t.jsx("div",{className:r.root,children:i.map((e,s)=>t.jsxs("div",{className:r.feature,children:[t.jsxs("button",{className:r.header,onClick:()=>l(s),children:[t.jsxs("div",{className:r.labelWrapper,children:[t.jsx(d.TypeBadge,{type:e.type},s),t.jsx(n.Typography,{as:"span",defaultVariant:"bodySm",mobileVariant:"labelMd",weight:"regular",children:e.label})]}),e.description&&t.jsx(y.IconBracket,{variant:c.includes(s)?"close":"plus",size:"sm"})]}),e.description&&t.jsx(n.Typography,{as:"p",defaultVariant:"bodyXs",className:u.cn(r.description,c.includes(s)&&r.descriptionActive),weight:"regular",children:e.description})]},`${e.label}-${s}`))})};exports.Features=g;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),l=require("react"),y=require("../../../../utils/cn/cn.cjs.js"),c=require("../../../../src/modules/IndividualProductCard/components/Features/features.module.css"),b=require("../../../../components/TypeBadge/TypeBadge.cjs.js"),i=require("../../../../components/Typography/Typography.cjs.js"),g=require("../../../../components/IconBracket/IconBracket.cjs.js"),m=({features:p})=>{const[n,u]=l.useState([]),d=l.useCallback(e=>{u(s=>s.includes(e)?s.filter(r=>r!==e):[...s,e])},[]);return t.jsx("div",{className:c.root,children:p.map((e,s)=>{const r=e.description&&e.collapsible,a=!!e.description,o=t.jsxs("div",{className:c.labelWrapper,children:[t.jsx(b.TypeBadge,{type:e.type},s),t.jsx(i.Typography,{className:c.label,as:"span",defaultVariant:a?"bodySm":"bodyMd",mobileVariant:a?"labelMd":"bodySm",weight:"regular",children:e.label})]});return t.jsxs("div",{className:c.feature,children:[r?t.jsxs("button",{className:c.header,onClick:()=>d(s),children:[o,t.jsx(g.IconBracket,{variant:n.includes(s)?"close":"plus",size:"sm"})]}):o,a&&t.jsx(i.Typography,{as:"p",defaultVariant:"bodyXs",className:y.cn(c.description,{[c.descriptionActive]:n.includes(s)||!r}),weight:"regular",children:e.description})]},`${e.label}-${s}`)})})};exports.Features=m;
@@ -1,35 +1,50 @@
1
1
  "use client";
2
- import { jsx as t, jsxs as i } from "react/jsx-runtime";
3
- import { useState as m, useCallback as d } from "react";
4
- import { cn as u } from "../../../../utils/cn/cn.es.js";
5
- import s from "../../../../modules/IndividualProductCard/components/Features/features.module.css";
6
- import { TypeBadge as h } from "../../../../components/TypeBadge/TypeBadge.es.js";
7
- import { Typography as l } from "../../../../components/Typography/Typography.es.js";
8
- import { IconBracket as b } from "../../../../components/IconBracket/IconBracket.es.js";
9
- const V = ({ features: o }) => {
10
- const [a, c] = m([]), n = d((e) => {
11
- c((r) => r.includes(e) ? r.filter((p) => p !== e) : [...r, e]);
2
+ import { jsx as r, jsxs as a } from "react/jsx-runtime";
3
+ import { useState as b, useCallback as u } from "react";
4
+ import { cn as h } from "../../../../utils/cn/cn.es.js";
5
+ import l from "../../../../modules/IndividualProductCard/components/Features/features.module.css";
6
+ import { TypeBadge as g } from "../../../../components/TypeBadge/TypeBadge.es.js";
7
+ import { Typography as n } from "../../../../components/Typography/Typography.es.js";
8
+ import { IconBracket as y } from "../../../../components/IconBracket/IconBracket.es.js";
9
+ const T = ({ features: p }) => {
10
+ const [i, m] = b([]), d = u((e) => {
11
+ m((s) => s.includes(e) ? s.filter((t) => t !== e) : [...s, e]);
12
12
  }, []);
13
- return /* @__PURE__ */ t("div", { className: s.root, children: o.map((e, r) => /* @__PURE__ */ i("div", { className: s.feature, children: [
14
- /* @__PURE__ */ i("button", { className: s.header, onClick: () => n(r), children: [
15
- /* @__PURE__ */ i("div", { className: s.labelWrapper, children: [
16
- /* @__PURE__ */ t(h, { type: e.type }, r),
17
- /* @__PURE__ */ t(l, { as: "span", defaultVariant: "bodySm", mobileVariant: "labelMd", weight: "regular", children: e.label })
18
- ] }),
19
- e.description && /* @__PURE__ */ t(b, { variant: a.includes(r) ? "close" : "plus", size: "sm" })
20
- ] }),
21
- e.description && /* @__PURE__ */ t(
22
- l,
23
- {
24
- as: "p",
25
- defaultVariant: "bodyXs",
26
- className: u(s.description, a.includes(r) && s.descriptionActive),
27
- weight: "regular",
28
- children: e.description
29
- }
30
- )
31
- ] }, `${e.label}-${r}`)) });
13
+ return /* @__PURE__ */ r("div", { className: l.root, children: p.map((e, s) => {
14
+ const t = e.description && e.collapsible, o = !!e.description, c = /* @__PURE__ */ a("div", { className: l.labelWrapper, children: [
15
+ /* @__PURE__ */ r(g, { type: e.type }, s),
16
+ /* @__PURE__ */ r(
17
+ n,
18
+ {
19
+ className: l.label,
20
+ as: "span",
21
+ defaultVariant: o ? "bodySm" : "bodyMd",
22
+ mobileVariant: o ? "labelMd" : "bodySm",
23
+ weight: "regular",
24
+ children: e.label
25
+ }
26
+ )
27
+ ] });
28
+ return /* @__PURE__ */ a("div", { className: l.feature, children: [
29
+ t ? /* @__PURE__ */ a("button", { className: l.header, onClick: () => d(s), children: [
30
+ c,
31
+ /* @__PURE__ */ r(y, { variant: i.includes(s) ? "close" : "plus", size: "sm" })
32
+ ] }) : c,
33
+ o && /* @__PURE__ */ r(
34
+ n,
35
+ {
36
+ as: "p",
37
+ defaultVariant: "bodyXs",
38
+ className: h(l.description, {
39
+ [l.descriptionActive]: i.includes(s) || !t
40
+ }),
41
+ weight: "regular",
42
+ children: e.description
43
+ }
44
+ )
45
+ ] }, `${e.label}-${s}`);
46
+ }) });
32
47
  };
33
48
  export {
34
- V as Features
49
+ T as Features
35
50
  };
@@ -7,7 +7,7 @@
7
7
  .feature {
8
8
  display: flex;
9
9
  width: 100%;
10
- align-items: center;
10
+ align-items: flex-start;
11
11
  flex-direction: column;
12
12
  padding: 16px 0;
13
13
  border-bottom: var(--border-width-sm) solid var(--border-color-light);
@@ -37,6 +37,10 @@
37
37
  color: var(--color-text-primary);
38
38
  }
39
39
 
40
+ .label {
41
+ margin-bottom: -2px;
42
+ }
43
+
40
44
  .description {
41
45
  overflow: hidden;
42
46
  width: 100%;
@@ -44,7 +48,10 @@
44
48
  padding-left: 32px;
45
49
  line-height: 0;
46
50
  color: transparent;
47
- transition: margin-top 0.3s, line-height 0.3s, color 0.3s;
51
+ transition:
52
+ margin-top 0.3s,
53
+ line-height 0.3s,
54
+ color 0.3s;
48
55
  }
49
56
 
50
57
  .descriptionActive {
@@ -4,6 +4,7 @@ export type TProductFeature = {
4
4
  label: string;
5
5
  type: ETypeBadge;
6
6
  description?: string;
7
+ collapsible?: boolean;
7
8
  };
8
9
  export type TProductPlan = {
9
10
  id: string;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../src/pageComponents/ScrollingFeatures/scrollingFeatures.module.css"),o=require("../../components/InfiniteScroll/InfiniteScroll.cjs.js"),c=require("../../components/Icon/Icon.cjs.js"),a=require("../../components/Typography/Typography.cjs.js"),l=({text:n,icon:t,href:s})=>e.jsxs("a",{href:s,className:r.feature,children:[e.jsx(c.Icon,{className:r.featureIcon,name:t}),e.jsx(a.Typography,{className:r.featureText,defaultVariant:"labelMd",children:n})]}),i=({items:n})=>e.jsx("section",{className:r.root,children:n.length>0&&e.jsx("div",{className:r.featuresContainer,children:e.jsx(o.InfiniteScroll,{items:n,renderItem:l})})});exports.ScrollingFeatures=i;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../src/pageComponents/ScrollingFeatures/scrollingFeatures.module.css"),a=require("../../components/InfiniteScroll/InfiniteScroll.cjs.js"),o=require("../../components/Icon/Icon.cjs.js"),l=require("../../components/Typography/Typography.cjs.js"),i=({text:n,icon:c,href:t})=>{const s=e.jsxs(e.Fragment,{children:[e.jsx(o.Icon,{className:r.featureIcon,name:c}),e.jsx(l.Typography,{className:r.featureText,defaultVariant:"labelMd",children:n})]});return t?e.jsx("a",{href:t,className:r.clickableFeature,children:s}):e.jsx("div",{className:r.feature,children:s})},u=({items:n})=>e.jsx("section",{className:r.root,children:n.length>0&&e.jsx("div",{className:r.featuresContainer,children:e.jsx(a.InfiniteScroll,{items:n,renderItem:i})})});exports.ScrollingFeatures=u;
@@ -1,12 +1,16 @@
1
- import { jsx as e, jsxs as n } from "react/jsx-runtime";
1
+ "use client";
2
+ import { jsx as e, jsxs as c, Fragment as o } from "react/jsx-runtime";
2
3
  import r from "../../pageComponents/ScrollingFeatures/scrollingFeatures.module.css";
3
4
  import { InfiniteScroll as s } from "../../components/InfiniteScroll/InfiniteScroll.es.js";
4
- import { Icon as l } from "../../components/Icon/Icon.es.js";
5
- import { Typography as c } from "../../components/Typography/Typography.es.js";
6
- const m = ({ text: t, icon: a, href: o }) => /* @__PURE__ */ n("a", { href: o, className: r.feature, children: [
7
- /* @__PURE__ */ e(l, { className: r.featureIcon, name: a }),
8
- /* @__PURE__ */ e(c, { className: r.featureText, defaultVariant: "labelMd", children: t })
9
- ] }), h = ({ items: t }) => /* @__PURE__ */ e("section", { className: r.root, children: t.length > 0 && /* @__PURE__ */ e("div", { className: r.featuresContainer, children: /* @__PURE__ */ e(s, { items: t, renderItem: m }) }) });
5
+ import { Icon as i } from "../../components/Icon/Icon.es.js";
6
+ import { Typography as m } from "../../components/Typography/Typography.es.js";
7
+ const d = ({ text: a, icon: l, href: t }) => {
8
+ const n = /* @__PURE__ */ c(o, { children: [
9
+ /* @__PURE__ */ e(i, { className: r.featureIcon, name: l }),
10
+ /* @__PURE__ */ e(m, { className: r.featureText, defaultVariant: "labelMd", children: a })
11
+ ] });
12
+ return t ? /* @__PURE__ */ e("a", { href: t, className: r.clickableFeature, children: n }) : /* @__PURE__ */ e("div", { className: r.feature, children: n });
13
+ }, g = ({ items: a }) => /* @__PURE__ */ e("section", { className: r.root, children: a.length > 0 && /* @__PURE__ */ e("div", { className: r.featuresContainer, children: /* @__PURE__ */ e(s, { items: a, renderItem: d }) }) });
10
14
  export {
11
- h as ScrollingFeatures
15
+ g as ScrollingFeatures
12
16
  };
@@ -7,13 +7,20 @@
7
7
  padding: 16px 0;
8
8
  }
9
9
 
10
- .feature {
10
+ .feature,
11
+ .clickableFeature {
11
12
  display: flex;
12
13
  align-items: center;
13
14
  gap: 12px;
14
15
  padding: 0 40px;
15
16
  }
16
17
 
18
+ .clickableFeature {
19
+ cursor: pointer;
20
+ text-decoration: none;
21
+ color: var(--color-text-primary);
22
+ }
23
+
17
24
  .featureText {
18
25
  line-height: 110%;
19
26
  letter-spacing: -0.42px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenpatient-org/healthspan-marketing-ui",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Design system",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.es.js",
@@ -365,6 +365,11 @@
365
365
  "import": "./dist/components/ClaimBlock/ClaimBlock.es.js",
366
366
  "require": "./dist/components/ClaimBlock/ClaimBlock.cjs.js"
367
367
  },
368
+ "./PlainFeaturesGroup": {
369
+ "types": "./dist/components/PlainFeaturesGroup/PlainFeaturesGroup.d.ts",
370
+ "import": "./dist/components/PlainFeaturesGroup/PlainFeaturesGroup.es.js",
371
+ "require": "./dist/components/PlainFeaturesGroup/PlainFeaturesGroup.cjs.js"
372
+ },
368
373
  "./Claims": {
369
374
  "types": "./dist/modules/Claims/Claims.d.ts",
370
375
  "import": "./dist/modules/Claims/Claims.es.js",
@@ -675,6 +680,11 @@
675
680
  "import": "./dist/pageComponents/ScrollingFeatures/ScrollingFeatures.es.js",
676
681
  "require": "./dist/pageComponents/ScrollingFeatures/ScrollingFeatures.cjs.js"
677
682
  },
683
+ "./RatingPreview": {
684
+ "types": "./dist/components/RatingPreview/RatingPreview.d.ts",
685
+ "import": "./dist/components/RatingPreview/RatingPreview.es.js",
686
+ "require": "./dist/components/RatingPreview/RatingPreview.cjs.js"
687
+ },
678
688
  "./dist/*.css": "./dist/*.css",
679
689
  "./dist/**/*.module.css": "./dist/**/*.module.css",
680
690
  "./styles/core": {