dune-react 0.0.23 → 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/puck-base/image.js +1 -1
- package/dist/components/puck-block/banner-sections/dual-row-marquee/dual-row-marquee.js +77 -53
- package/dist/components/puck-block/contact-sections/tab-locations/tab-locations.js +71 -55
- package/dist/components/puck-block/feature-sections/tab-feature/component.js +1 -1
- package/dist/components/puck-block/gallery-sections/image-carousel/index.d.ts +14 -1
- package/dist/components/puck-block/gallery-sections/interactive-portfolio/interactive-portfolio.js +165 -104
- package/dist/components/puck-block/gallery-sections/masonry-grid/index.d.ts +17 -1
- package/dist/components/puck-block/gallery-sections/masonry-grid/masonry-grid.js +56 -31
- package/dist/components/puck-block/gallery-sections/portfolio-cards/index.d.ts +17 -1
- package/dist/components/puck-block/gallery-sections/portfolio-cards/portfolio-cards.js +40 -12
- package/dist/components/puck-block/gallery-sections/props.d.ts +31 -2
- package/dist/components/puck-block/gallery-sections/props.js +17 -4
- package/dist/components/puck-block/gallery-sections/scroll-parallax/scroll-parallax.js +68 -37
- package/dist/components/puck-block/gallery-sections/scroll-parallax-portfolio/scroll-parallax-portfolio.js +308 -151
- package/dist/components/puck-block/gallery-sections/static-grid/index.d.ts +17 -1
- package/dist/components/puck-block/header-sections/centered-navbar/centered-navbar.js +94 -14
- package/dist/components/puck-block/hero-sections/grid-expand-hero/index.d.ts +17 -1
- package/dist/components/puck-block/hero-sections/inline-image-hero/inline-image-hero.js +59 -28
- package/dist/components/puck-block/hero-sections/multi-image-grid-hero/index.d.ts +17 -1
- package/dist/components/puck-block/hero-sections/props.d.ts +34 -2
- package/dist/components/puck-block/hero-sections/props.js +18 -4
- package/dist/components/puck-block/hero-sections/tab-hero/component.js +1 -1
- package/dist/components/puck-block/index.d.ts +1 -0
- package/dist/components/puck-block/location-sections/index.d.ts +3 -0
- package/dist/components/puck-block/location-sections/location-1/index.js +102 -0
- package/dist/components/puck-block/location-sections/location-1/location.d.ts +0 -3
- package/dist/components/puck-block/location-sections/location-1/location.js +139 -0
- package/dist/components/puck-block/location-sections/location-2/index.js +126 -0
- package/dist/components/puck-block/location-sections/location-2/location.d.ts +0 -3
- package/dist/components/puck-block/location-sections/location-2/location.js +133 -0
- package/dist/components/puck-block/location-sections/location-3/index.js +109 -0
- package/dist/components/puck-block/location-sections/location-3/location.d.ts +0 -3
- package/dist/components/puck-block/location-sections/location-3/location.js +140 -0
- package/dist/components/puck-block/location-sections/props.d.ts +0 -3
- package/dist/components/puck-block/metrics-sections/tab-stats/tab-stats.js +1 -1
- package/dist/components/puck-block/pricing-sections/pricing-comparison-table/component.js +134 -33
- package/dist/components/puck-block/pricing-sections/tab-pricing-grid/component.js +86 -40
- package/dist/components/puck-block/pricing-sections/tab-single-pricing/component.js +1 -1
- package/dist/components/puck-block/registry.generated.d.ts +228 -6
- package/dist/components/puck-block/registry.generated.js +157 -138
- package/dist/components/puck-block/showcase-sections/tab-timeline/component.js +1 -1
- package/dist/components/puck-block/testimonial-sections/bento-testimonial/component.js +157 -83
- package/dist/components/puck-block/testimonial-sections/centered-testimonial/component.js +71 -28
- package/dist/components/puck-block/testimonial-sections/image-testimonial/component.js +66 -29
- package/dist/components/puck-block/testimonial-sections/image-testimonial-carousel/component.js +1 -1
- package/dist/components/puck-block/testimonial-sections/tab-testimonial/component.js +4 -4
- package/dist/components/puck-block/testimonial-sections/testimonial-card-grid/component.js +2 -2
- package/dist/components/puck-block/testimonial-sections/testimonial-carousel/component.js +1 -1
- package/dist/components/puck-core/core/props/form.js +25 -1
- package/dist/components/puck-core/fields/location-field.js +4 -1
- package/dist/index.js +6 -0
- package/package.json +4 -1
|
@@ -5,7 +5,16 @@ import { Tabs, TabsList, TabsTrigger, TabsContent } from "../../../shadcn/tabs.j
|
|
|
5
5
|
import { cn } from "../../../../utils/css-utils.js";
|
|
6
6
|
import { SectionWrapper } from "../../../puck-core/section-wrapper.js";
|
|
7
7
|
const PricingComparisonTable = (props) => {
|
|
8
|
-
const {
|
|
8
|
+
const {
|
|
9
|
+
tagline,
|
|
10
|
+
heading,
|
|
11
|
+
description,
|
|
12
|
+
pricingPlans,
|
|
13
|
+
featureCategories,
|
|
14
|
+
tabs,
|
|
15
|
+
defaultTabValue,
|
|
16
|
+
styles
|
|
17
|
+
} = {
|
|
9
18
|
...PricingComparisonTableDefaults,
|
|
10
19
|
...props
|
|
11
20
|
};
|
|
@@ -17,7 +26,7 @@ const PricingComparisonTable = (props) => {
|
|
|
17
26
|
tableStyle = "border-separated",
|
|
18
27
|
bottomButtons = false
|
|
19
28
|
} = styles ?? {};
|
|
20
|
-
const renderHeader = (plans) => /* @__PURE__ */ jsxs("div", { className: "sticky top-0 grid grid-cols-3 border-b border-border-primary bg-
|
|
29
|
+
const renderHeader = (plans) => /* @__PURE__ */ jsxs("div", { className: "sticky top-0 grid grid-cols-3 border-b border-border-primary bg-background-primary md:grid-cols-[1.5fr_1fr_1fr_1fr]", children: [
|
|
21
30
|
/* @__PURE__ */ jsx("div", { className: "hidden md:block" }),
|
|
22
31
|
plans.map((plan, index) => /* @__PURE__ */ jsxs(
|
|
23
32
|
"div",
|
|
@@ -38,20 +47,36 @@ const PricingComparisonTable = (props) => {
|
|
|
38
47
|
] }),
|
|
39
48
|
/* @__PURE__ */ jsx("p", { children: plan.description })
|
|
40
49
|
] }),
|
|
41
|
-
/* @__PURE__ */ jsx("div", { className: "mt-6 md:mt-8", children: /* @__PURE__ */ jsx(
|
|
50
|
+
/* @__PURE__ */ jsx("div", { className: "mt-6 md:mt-8", children: /* @__PURE__ */ jsx(
|
|
51
|
+
Button,
|
|
52
|
+
{
|
|
53
|
+
variant: plan.button.variant,
|
|
54
|
+
size: plan.button.size,
|
|
55
|
+
className: "w-full whitespace-normal px-3 py-1 sm:px-4 sm:py-3",
|
|
56
|
+
children: plan.button.label
|
|
57
|
+
}
|
|
58
|
+
) })
|
|
42
59
|
]
|
|
43
60
|
},
|
|
44
61
|
index
|
|
45
62
|
))
|
|
46
63
|
] });
|
|
47
64
|
const renderFeatures = () => /* @__PURE__ */ jsx("div", { children: featureCategories.map((featureCategory, catIndex) => /* @__PURE__ */ jsxs("div", { children: [
|
|
48
|
-
featureCategory.title && /* @__PURE__ */ jsx(
|
|
65
|
+
featureCategory.title && /* @__PURE__ */ jsx(
|
|
66
|
+
"div",
|
|
67
|
+
{
|
|
68
|
+
className: `border-b border-border-primary py-5 ${tableStyle === "zebra-striped" ? "bg-background-secondary" : ""}`,
|
|
69
|
+
children: /* @__PURE__ */ jsx("h3", { className: "text-md font-bold leading-[1.4] md:text-xl", children: featureCategory.title })
|
|
70
|
+
}
|
|
71
|
+
),
|
|
49
72
|
featureCategory.features.map((feature, featureIndex) => /* @__PURE__ */ jsxs(
|
|
50
73
|
"div",
|
|
51
74
|
{
|
|
52
75
|
className: cn(
|
|
53
76
|
"grid grid-cols-3 border-b border-border-primary md:grid-cols-[1.5fr_1fr_1fr_1fr]",
|
|
54
|
-
{
|
|
77
|
+
{
|
|
78
|
+
"bg-background-secondary": tableStyle === "zebra-striped" && featureIndex % 2 === 0
|
|
79
|
+
}
|
|
55
80
|
),
|
|
56
81
|
children: [
|
|
57
82
|
/* @__PURE__ */ jsx("p", { className: "col-span-3 row-span-1 border-b border-border-primary py-4 pr-4 md:col-span-1 md:border-0 md:pr-6", children: feature.text }),
|
|
@@ -76,41 +101,113 @@ const PricingComparisonTable = (props) => {
|
|
|
76
101
|
] }, catIndex)) });
|
|
77
102
|
const renderBottomButtons = (plans) => /* @__PURE__ */ jsxs("div", { className: "mt-8 grid grid-cols-3 md:grid-cols-[1.5fr_1fr_1fr_1fr]", children: [
|
|
78
103
|
/* @__PURE__ */ jsx("div", { className: "hidden md:block" }),
|
|
79
|
-
plans.map((plan, index) => /* @__PURE__ */ jsx(
|
|
104
|
+
plans.map((plan, index) => /* @__PURE__ */ jsx(
|
|
105
|
+
"div",
|
|
106
|
+
{
|
|
107
|
+
className: cn("px-2 sm:px-4 lg:px-6", {
|
|
108
|
+
"border-l border-border-primary": index > 0
|
|
109
|
+
}),
|
|
110
|
+
children: /* @__PURE__ */ jsx(
|
|
111
|
+
Button,
|
|
112
|
+
{
|
|
113
|
+
variant: plan.button.variant,
|
|
114
|
+
size: plan.button.size,
|
|
115
|
+
className: "w-full whitespace-normal px-3 py-1 sm:px-4 sm:py-3",
|
|
116
|
+
children: plan.button.label
|
|
117
|
+
}
|
|
118
|
+
)
|
|
119
|
+
},
|
|
120
|
+
index
|
|
121
|
+
))
|
|
80
122
|
] });
|
|
81
|
-
return /* @__PURE__ */ jsx(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
123
|
+
return /* @__PURE__ */ jsx(
|
|
124
|
+
SectionWrapper,
|
|
125
|
+
{
|
|
126
|
+
className: cn("px-[5%] py-8 md:py-12 lg:py-14", sectionClassName),
|
|
127
|
+
style: sectionStyle,
|
|
128
|
+
css,
|
|
129
|
+
children: /* @__PURE__ */ jsxs("div", { className: "container", children: [
|
|
130
|
+
/* @__PURE__ */ jsxs("div", { className: "mx-auto mb-12 max-w-lg text-center md:mb-18 lg:mb-20", children: [
|
|
131
|
+
/* @__PURE__ */ jsx("p", { className: "mb-3 font-semibold md:mb-4", children: tagline }),
|
|
132
|
+
/* @__PURE__ */ jsx("h1", { className: "mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
|
|
133
|
+
/* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
|
|
134
|
+
] }),
|
|
135
|
+
tabSwitching && tabs ? /* @__PURE__ */ jsxs(Tabs, { defaultValue: defaultTabValue || "monthly", children: [
|
|
136
|
+
/* @__PURE__ */ jsx(TabsList, { className: "mx-auto mb-12 w-fit", children: tabs.map((tab, index) => /* @__PURE__ */ jsx(TabsTrigger, { value: tab.value, children: tab.tabName }, index)) }),
|
|
137
|
+
tabs.map((tab, index) => /* @__PURE__ */ jsxs(
|
|
138
|
+
TabsContent,
|
|
139
|
+
{
|
|
140
|
+
value: tab.value,
|
|
141
|
+
className: "w-full animate-tabs",
|
|
142
|
+
children: [
|
|
143
|
+
renderHeader(tab.pricingPlans),
|
|
144
|
+
renderFeatures(),
|
|
145
|
+
bottomButtons && renderBottomButtons(tab.pricingPlans)
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
index
|
|
149
|
+
))
|
|
150
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
|
|
151
|
+
renderHeader(pricingPlans),
|
|
152
|
+
renderFeatures(),
|
|
153
|
+
bottomButtons && renderBottomButtons(pricingPlans)
|
|
154
|
+
] })
|
|
155
|
+
] })
|
|
156
|
+
}
|
|
157
|
+
);
|
|
100
158
|
};
|
|
101
159
|
const defaultPlans = [
|
|
102
|
-
{
|
|
103
|
-
|
|
104
|
-
|
|
160
|
+
{
|
|
161
|
+
planName: "Basic",
|
|
162
|
+
monthlyPrice: "$19",
|
|
163
|
+
description: "Lorem ipsum dolor sit amet",
|
|
164
|
+
button: { label: "Get started" }
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
planName: "Business",
|
|
168
|
+
monthlyPrice: "$29",
|
|
169
|
+
description: "Lorem ipsum dolor sit amet",
|
|
170
|
+
button: { label: "Get started" }
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
planName: "Enterprise",
|
|
174
|
+
monthlyPrice: "$49",
|
|
175
|
+
description: "Lorem ipsum dolor sit amet",
|
|
176
|
+
button: { label: "Get started" }
|
|
177
|
+
}
|
|
105
178
|
];
|
|
106
179
|
const defaultFeatureCategory = {
|
|
107
180
|
title: "Feature Category",
|
|
108
181
|
features: [
|
|
109
182
|
{ text: "Feature text goes here", items: ["10", "25", "Unlimited"] },
|
|
110
|
-
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
183
|
+
{
|
|
184
|
+
text: "Feature text goes here",
|
|
185
|
+
items: [
|
|
186
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
|
|
187
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
|
|
188
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" })
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
text: "Feature text goes here",
|
|
193
|
+
items: [
|
|
194
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
|
|
195
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
|
|
196
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" })
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
text: "Feature text goes here",
|
|
201
|
+
items: [
|
|
202
|
+
"",
|
|
203
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
|
|
204
|
+
/* @__PURE__ */ jsx(BiCheck, { className: "size-6" })
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
text: "Feature text goes here",
|
|
209
|
+
items: ["", "", /* @__PURE__ */ jsx(BiCheck, { className: "size-6" })]
|
|
210
|
+
}
|
|
114
211
|
]
|
|
115
212
|
};
|
|
116
213
|
const PricingComparisonTableDefaults = {
|
|
@@ -118,7 +215,11 @@ const PricingComparisonTableDefaults = {
|
|
|
118
215
|
heading: "Pricing plan",
|
|
119
216
|
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
120
217
|
pricingPlans: defaultPlans,
|
|
121
|
-
featureCategories: [
|
|
218
|
+
featureCategories: [
|
|
219
|
+
defaultFeatureCategory,
|
|
220
|
+
defaultFeatureCategory,
|
|
221
|
+
defaultFeatureCategory
|
|
222
|
+
],
|
|
122
223
|
styles: {
|
|
123
224
|
tabSwitching: false,
|
|
124
225
|
tableStyle: "border-separated",
|
|
@@ -9,55 +9,93 @@ const TabPricingGrid = (props) => {
|
|
|
9
9
|
...TabPricingGridDefaults,
|
|
10
10
|
...props
|
|
11
11
|
};
|
|
12
|
-
const {
|
|
12
|
+
const {
|
|
13
|
+
className: sectionClassName,
|
|
14
|
+
style: sectionStyle,
|
|
15
|
+
css,
|
|
16
|
+
columns = 2
|
|
17
|
+
} = styles ?? {};
|
|
13
18
|
const gridColsClass = columns === 3 ? "md:grid-cols-2 lg:grid-cols-3" : "md:grid-cols-2";
|
|
14
19
|
const containerMaxW = columns === 3 ? "" : "max-w-xl";
|
|
15
|
-
return /* @__PURE__ */ jsx(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
children:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
20
|
+
return /* @__PURE__ */ jsx(
|
|
21
|
+
SectionWrapper,
|
|
22
|
+
{
|
|
23
|
+
className: cn("px-[5%] py-8 md:py-12 lg:py-14", sectionClassName),
|
|
24
|
+
style: sectionStyle,
|
|
25
|
+
css,
|
|
26
|
+
children: /* @__PURE__ */ jsxs("div", { className: `container ${containerMaxW}`, children: [
|
|
27
|
+
/* @__PURE__ */ jsxs("div", { className: "mx-auto mb-8 max-w-lg text-center md:mb-10 lg:mb-12", children: [
|
|
28
|
+
/* @__PURE__ */ jsx("p", { className: "mb-3 font-semibold md:mb-4", children: tagline }),
|
|
29
|
+
/* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
|
|
30
|
+
/* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
|
|
31
|
+
] }),
|
|
32
|
+
/* @__PURE__ */ jsxs(Tabs, { defaultValue: defaultTabValue, children: [
|
|
33
|
+
/* @__PURE__ */ jsx(TabsList, { className: "mx-auto mb-12 w-fit", children: tabs.map((tab, index) => /* @__PURE__ */ jsx(TabsTrigger, { value: tab.value, children: tab.tabName }, index)) }),
|
|
34
|
+
tabs.map((tab, index) => /* @__PURE__ */ jsx(
|
|
35
|
+
TabsContent,
|
|
36
|
+
{
|
|
37
|
+
value: tab.value,
|
|
38
|
+
className: `grid grid-cols-1 gap-8 animate-tabs ${gridColsClass}`,
|
|
39
|
+
children: tab.plans.map((plan, planIndex) => /* @__PURE__ */ jsxs(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
className: "flex h-full flex-col justify-between border border-border-primary px-6 py-8 md:p-8",
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
45
|
+
/* @__PURE__ */ jsxs("div", { className: "rb-6 mb-6 text-center md:mb-8", children: [
|
|
46
|
+
/* @__PURE__ */ jsx("h6", { className: "text-md font-bold leading-[1.4] md:text-xl", children: plan.planName }),
|
|
47
|
+
/* @__PURE__ */ jsxs("h1", { className: "my-2 text-6xl font-bold md:text-9xl lg:text-10xl", children: [
|
|
48
|
+
plan.price,
|
|
49
|
+
/* @__PURE__ */ jsx("span", { className: "text-2xl font-bold md:text-3xl lg:text-4xl", children: tab.value === "monthly" ? "/mo" : "/yr" })
|
|
50
|
+
] }),
|
|
51
|
+
tab.value === "yearly" && plan.discount && /* @__PURE__ */ jsx("p", { className: "mt-2 font-medium", children: plan.discount })
|
|
52
|
+
] }),
|
|
53
|
+
/* @__PURE__ */ jsx("div", { className: "mb-8 grid grid-cols-1 gap-4 py-2", children: plan.features.map((feature, featureIndex) => /* @__PURE__ */ jsxs("div", { className: "flex self-start", children: [
|
|
54
|
+
/* @__PURE__ */ jsx("div", { className: "mr-4 flex-none self-start", children: /* @__PURE__ */ jsx(BiCheck, { className: "size-6" }) }),
|
|
55
|
+
/* @__PURE__ */ jsx("p", { children: feature })
|
|
56
|
+
] }, featureIndex)) })
|
|
57
|
+
] }),
|
|
58
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
59
|
+
Button,
|
|
60
|
+
{
|
|
61
|
+
variant: plan.button.variant,
|
|
62
|
+
size: plan.button.size,
|
|
63
|
+
className: "w-full",
|
|
64
|
+
children: plan.button.label
|
|
65
|
+
}
|
|
66
|
+
) })
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
planIndex
|
|
70
|
+
))
|
|
71
|
+
},
|
|
72
|
+
index
|
|
73
|
+
))
|
|
74
|
+
] })
|
|
75
|
+
] })
|
|
76
|
+
}
|
|
77
|
+
);
|
|
50
78
|
};
|
|
51
79
|
const basePlan = {
|
|
52
80
|
planName: "Basic plan",
|
|
53
81
|
price: "$19",
|
|
54
|
-
features: [
|
|
82
|
+
features: [
|
|
83
|
+
"Feature text goes here",
|
|
84
|
+
"Feature text goes here",
|
|
85
|
+
"Feature text goes here"
|
|
86
|
+
],
|
|
55
87
|
button: { label: "Get started" }
|
|
56
88
|
};
|
|
57
89
|
const businessPlan = {
|
|
58
90
|
planName: "Business plan",
|
|
59
91
|
price: "$29",
|
|
60
|
-
features: [
|
|
92
|
+
features: [
|
|
93
|
+
"Feature text goes here",
|
|
94
|
+
"Feature text goes here",
|
|
95
|
+
"Feature text goes here",
|
|
96
|
+
"Feature text goes here",
|
|
97
|
+
"Feature text goes here"
|
|
98
|
+
],
|
|
61
99
|
button: { label: "Get started" }
|
|
62
100
|
};
|
|
63
101
|
const TabPricingGridDefaults = {
|
|
@@ -75,8 +113,16 @@ const TabPricingGridDefaults = {
|
|
|
75
113
|
value: "yearly",
|
|
76
114
|
tabName: "Yearly",
|
|
77
115
|
plans: [
|
|
78
|
-
{
|
|
79
|
-
|
|
116
|
+
{
|
|
117
|
+
...basePlan,
|
|
118
|
+
price: "$180",
|
|
119
|
+
discount: "Save 20% with the annual plan"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
...businessPlan,
|
|
123
|
+
price: "$280",
|
|
124
|
+
discount: "Save 20% with the annual plan"
|
|
125
|
+
}
|
|
80
126
|
]
|
|
81
127
|
}
|
|
82
128
|
],
|
|
@@ -22,7 +22,7 @@ const TabSinglePricing = (props) => {
|
|
|
22
22
|
TabsContent,
|
|
23
23
|
{
|
|
24
24
|
value: tab.value,
|
|
25
|
-
className: "container max-w-md
|
|
25
|
+
className: "container max-w-md animate-tabs",
|
|
26
26
|
children: tab.plans.map((plan, planIndex) => /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col justify-between border border-border-primary px-6 py-8 md:p-8", children: [
|
|
27
27
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
28
28
|
/* @__PURE__ */ jsxs("div", { className: "rb-6 mb-6 text-center md:mb-8", children: [
|