@opensite/ui 1.3.2 → 1.3.4
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/footer-accordion-social.cjs +1344 -0
- package/dist/footer-accordion-social.d.cts +154 -0
- package/dist/footer-accordion-social.d.ts +154 -0
- package/dist/footer-accordion-social.js +1322 -0
- package/dist/footer-info-cards-accordion.cjs +1427 -0
- package/dist/footer-info-cards-accordion.d.cts +278 -0
- package/dist/footer-info-cards-accordion.d.ts +278 -0
- package/dist/footer-info-cards-accordion.js +1404 -0
- package/dist/footer-newsletter-contact.cjs +1281 -0
- package/dist/footer-newsletter-contact.d.cts +163 -0
- package/dist/footer-newsletter-contact.d.ts +163 -0
- package/dist/footer-newsletter-contact.js +1259 -0
- package/dist/footer-split-image-accordion.cjs +1395 -0
- package/dist/footer-split-image-accordion.d.cts +236 -0
- package/dist/footer-split-image-accordion.d.ts +236 -0
- package/dist/footer-split-image-accordion.js +1372 -0
- package/dist/list-achievements-showcase.cjs +1141 -0
- package/dist/list-achievements-showcase.d.cts +131 -0
- package/dist/list-achievements-showcase.d.ts +131 -0
- package/dist/list-achievements-showcase.js +1119 -0
- package/dist/list-career-timeline.cjs +531 -0
- package/dist/list-career-timeline.d.cts +153 -0
- package/dist/list-career-timeline.d.ts +153 -0
- package/dist/list-career-timeline.js +509 -0
- package/dist/list-feature-comparison.cjs +1211 -0
- package/dist/list-feature-comparison.d.cts +189 -0
- package/dist/list-feature-comparison.d.ts +189 -0
- package/dist/list-feature-comparison.js +1190 -0
- package/dist/list-metrics-dashboard.cjs +1402 -0
- package/dist/list-metrics-dashboard.d.cts +191 -0
- package/dist/list-metrics-dashboard.d.ts +191 -0
- package/dist/list-metrics-dashboard.js +1379 -0
- package/dist/list-service-category-table.cjs +762 -0
- package/dist/list-service-category-table.d.cts +135 -0
- package/dist/list-service-category-table.d.ts +135 -0
- package/dist/list-service-category-table.js +741 -0
- package/dist/offer-modal-membership-image.cjs +1361 -0
- package/dist/offer-modal-membership-image.d.cts +194 -0
- package/dist/offer-modal-membership-image.d.ts +194 -0
- package/dist/offer-modal-membership-image.js +1339 -0
- package/dist/offer-modal-newsletter-discount.cjs +1296 -0
- package/dist/offer-modal-newsletter-discount.d.cts +164 -0
- package/dist/offer-modal-newsletter-discount.d.ts +164 -0
- package/dist/offer-modal-newsletter-discount.js +1274 -0
- package/dist/offer-modal-sheet-newsletter.cjs +1360 -0
- package/dist/offer-modal-sheet-newsletter.d.cts +221 -0
- package/dist/offer-modal-sheet-newsletter.d.ts +221 -0
- package/dist/offer-modal-sheet-newsletter.js +1337 -0
- package/dist/pricing-addons-cards.cjs +1143 -0
- package/dist/pricing-addons-cards.d.cts +203 -0
- package/dist/pricing-addons-cards.d.ts +203 -0
- package/dist/pricing-addons-cards.js +1122 -0
- package/dist/pricing-addons-featured.cjs +1224 -0
- package/dist/pricing-addons-featured.d.cts +271 -0
- package/dist/pricing-addons-featured.d.ts +271 -0
- package/dist/pricing-addons-featured.js +1203 -0
- package/dist/pricing-collapsible-plans.cjs +1315 -0
- package/dist/pricing-collapsible-plans.d.cts +258 -0
- package/dist/pricing-collapsible-plans.d.ts +258 -0
- package/dist/pricing-collapsible-plans.js +1294 -0
- package/dist/pricing-columns-toggle.cjs +1234 -0
- package/dist/pricing-columns-toggle.d.cts +251 -0
- package/dist/pricing-columns-toggle.d.ts +251 -0
- package/dist/pricing-columns-toggle.js +1212 -0
- package/dist/pricing-comparison-headers.cjs +1235 -0
- package/dist/pricing-comparison-headers.d.cts +245 -0
- package/dist/pricing-comparison-headers.d.ts +245 -0
- package/dist/pricing-comparison-headers.js +1213 -0
- package/dist/pricing-comparison-table.cjs +1374 -0
- package/dist/pricing-comparison-table.d.cts +280 -0
- package/dist/pricing-comparison-table.d.ts +280 -0
- package/dist/pricing-comparison-table.js +1352 -0
- package/dist/pricing-discount-card.cjs +1217 -0
- package/dist/pricing-discount-card.d.cts +195 -0
- package/dist/pricing-discount-card.d.ts +195 -0
- package/dist/pricing-discount-card.js +1195 -0
- package/dist/pricing-enterprise-contact.cjs +1094 -0
- package/dist/pricing-enterprise-contact.d.cts +170 -0
- package/dist/pricing-enterprise-contact.d.ts +170 -0
- package/dist/pricing-enterprise-contact.js +1073 -0
- package/dist/pricing-feature-matrix.cjs +1197 -0
- package/dist/pricing-feature-matrix.d.cts +56 -0
- package/dist/pricing-feature-matrix.d.ts +56 -0
- package/dist/pricing-feature-matrix.js +1174 -0
- package/dist/pricing-four-tier-toggle.cjs +1320 -0
- package/dist/pricing-four-tier-toggle.d.cts +266 -0
- package/dist/pricing-four-tier-toggle.d.ts +266 -0
- package/dist/pricing-four-tier-toggle.js +1297 -0
- package/dist/pricing-full-comparison.cjs +1301 -0
- package/dist/pricing-full-comparison.d.cts +265 -0
- package/dist/pricing-full-comparison.d.ts +265 -0
- package/dist/pricing-full-comparison.js +1279 -0
- package/dist/pricing-gradient-cards.cjs +1248 -0
- package/dist/pricing-gradient-cards.d.cts +258 -0
- package/dist/pricing-gradient-cards.d.ts +258 -0
- package/dist/pricing-gradient-cards.js +1226 -0
- package/dist/pricing-icon-headers.cjs +1163 -0
- package/dist/pricing-icon-headers.d.cts +218 -0
- package/dist/pricing-icon-headers.d.ts +218 -0
- package/dist/pricing-icon-headers.js +1142 -0
- package/dist/pricing-minimal-cards.cjs +1146 -0
- package/dist/pricing-minimal-cards.d.cts +210 -0
- package/dist/pricing-minimal-cards.d.ts +210 -0
- package/dist/pricing-minimal-cards.js +1125 -0
- package/dist/pricing-packages-radio.cjs +1203 -0
- package/dist/pricing-packages-radio.d.cts +243 -0
- package/dist/pricing-packages-radio.d.ts +243 -0
- package/dist/pricing-packages-radio.js +1182 -0
- package/dist/pricing-popular-highlight.cjs +1293 -0
- package/dist/pricing-popular-highlight.d.cts +255 -0
- package/dist/pricing-popular-highlight.d.ts +255 -0
- package/dist/pricing-popular-highlight.js +1271 -0
- package/dist/pricing-radio-toggle.cjs +1277 -0
- package/dist/pricing-radio-toggle.d.cts +251 -0
- package/dist/pricing-radio-toggle.d.ts +251 -0
- package/dist/pricing-radio-toggle.js +1255 -0
- package/dist/pricing-responsive-table.cjs +1229 -0
- package/dist/pricing-responsive-table.d.cts +55 -0
- package/dist/pricing-responsive-table.d.ts +55 -0
- package/dist/pricing-responsive-table.js +1206 -0
- package/dist/pricing-services-cards.cjs +1209 -0
- package/dist/pricing-services-cards.d.cts +230 -0
- package/dist/pricing-services-cards.d.ts +230 -0
- package/dist/pricing-services-cards.js +1188 -0
- package/dist/pricing-simple-card.cjs +1102 -0
- package/dist/pricing-simple-card.d.cts +174 -0
- package/dist/pricing-simple-card.d.ts +174 -0
- package/dist/pricing-simple-card.js +1081 -0
- package/dist/pricing-single-card.cjs +1174 -0
- package/dist/pricing-single-card.d.cts +201 -0
- package/dist/pricing-single-card.d.ts +201 -0
- package/dist/pricing-single-card.js +1152 -0
- package/dist/pricing-split-layout.cjs +1001 -0
- package/dist/pricing-split-layout.d.cts +44 -0
- package/dist/pricing-split-layout.d.ts +44 -0
- package/dist/pricing-split-layout.js +980 -0
- package/dist/pricing-spotlight-card.cjs +1157 -0
- package/dist/pricing-spotlight-card.d.cts +201 -0
- package/dist/pricing-spotlight-card.d.ts +201 -0
- package/dist/pricing-spotlight-card.js +1136 -0
- package/dist/pricing-switch-cards.cjs +1274 -0
- package/dist/pricing-switch-cards.d.cts +254 -0
- package/dist/pricing-switch-cards.d.ts +254 -0
- package/dist/pricing-switch-cards.js +1252 -0
- package/dist/pricing-tabs-toggle.cjs +1314 -0
- package/dist/pricing-tabs-toggle.d.cts +274 -0
- package/dist/pricing-tabs-toggle.d.ts +274 -0
- package/dist/pricing-tabs-toggle.js +1291 -0
- package/dist/pricing-tier-grid.cjs +1190 -0
- package/dist/pricing-tier-grid.d.cts +224 -0
- package/dist/pricing-tier-grid.d.ts +224 -0
- package/dist/pricing-tier-grid.js +1169 -0
- package/dist/pricing-toggle-cards.cjs +1330 -0
- package/dist/pricing-toggle-cards.d.cts +267 -0
- package/dist/pricing-toggle-cards.d.ts +267 -0
- package/dist/pricing-toggle-cards.js +1307 -0
- package/dist/pricing-toggle-period.cjs +1251 -0
- package/dist/pricing-toggle-period.d.cts +265 -0
- package/dist/pricing-toggle-period.d.ts +265 -0
- package/dist/pricing-toggle-period.js +1230 -0
- package/dist/pricing-two-column-basic.cjs +1243 -0
- package/dist/pricing-two-column-basic.d.cts +244 -0
- package/dist/pricing-two-column-basic.d.ts +244 -0
- package/dist/pricing-two-column-basic.js +1222 -0
- package/dist/registry.cjs +109 -85
- package/dist/registry.js +931 -907
- package/package.json +1 -1
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-Bz_A5vLU.cjs';
|
|
3
|
+
import { A as ActionConfig } from './blocks-Cohq4eio.cjs';
|
|
4
|
+
import 'react/jsx-runtime';
|
|
5
|
+
import 'class-variance-authority';
|
|
6
|
+
import './button-variants-lRElsmTc.cjs';
|
|
7
|
+
import 'class-variance-authority/types';
|
|
8
|
+
|
|
9
|
+
interface PricingTabsToggleFeature {
|
|
10
|
+
/**
|
|
11
|
+
* Feature text
|
|
12
|
+
*/
|
|
13
|
+
text?: React.ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Optional icon element
|
|
16
|
+
*/
|
|
17
|
+
icon?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Optional icon name for DynamicIcon
|
|
20
|
+
*/
|
|
21
|
+
iconName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS classes for feature item
|
|
24
|
+
*/
|
|
25
|
+
className?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Additional CSS classes for feature icon
|
|
28
|
+
*/
|
|
29
|
+
iconClassName?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Additional CSS classes for feature text
|
|
32
|
+
*/
|
|
33
|
+
textClassName?: string;
|
|
34
|
+
}
|
|
35
|
+
interface PricingTabsTogglePlan {
|
|
36
|
+
/**
|
|
37
|
+
* Plan name
|
|
38
|
+
*/
|
|
39
|
+
name?: React.ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Monthly price display
|
|
42
|
+
*/
|
|
43
|
+
monthlyPrice?: React.ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Yearly price display
|
|
46
|
+
*/
|
|
47
|
+
yearlyPrice?: React.ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Plan description
|
|
50
|
+
*/
|
|
51
|
+
description?: React.ReactNode;
|
|
52
|
+
/**
|
|
53
|
+
* Plan features
|
|
54
|
+
*/
|
|
55
|
+
features?: PricingTabsToggleFeature[];
|
|
56
|
+
/**
|
|
57
|
+
* Custom slot for rendering features (overrides features array)
|
|
58
|
+
*/
|
|
59
|
+
featuresSlot?: React.ReactNode;
|
|
60
|
+
/**
|
|
61
|
+
* Action configuration
|
|
62
|
+
*/
|
|
63
|
+
action?: ActionConfig;
|
|
64
|
+
/**
|
|
65
|
+
* Custom slot for rendering action (overrides action)
|
|
66
|
+
*/
|
|
67
|
+
actionSlot?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* Highlight this plan
|
|
70
|
+
*/
|
|
71
|
+
isPopular?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Badge content for popular plan
|
|
74
|
+
*/
|
|
75
|
+
badge?: React.ReactNode;
|
|
76
|
+
/**
|
|
77
|
+
* Icon element
|
|
78
|
+
*/
|
|
79
|
+
icon?: React.ReactNode;
|
|
80
|
+
/**
|
|
81
|
+
* Icon name for DynamicIcon
|
|
82
|
+
*/
|
|
83
|
+
iconName?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Additional CSS classes for the plan card
|
|
86
|
+
*/
|
|
87
|
+
className?: string;
|
|
88
|
+
}
|
|
89
|
+
interface PricingTabsToggleProps {
|
|
90
|
+
/**
|
|
91
|
+
* Section title
|
|
92
|
+
*/
|
|
93
|
+
title?: React.ReactNode;
|
|
94
|
+
/**
|
|
95
|
+
* Section subtitle
|
|
96
|
+
*/
|
|
97
|
+
subtitle?: React.ReactNode;
|
|
98
|
+
/**
|
|
99
|
+
* Tabs label for monthly billing
|
|
100
|
+
*/
|
|
101
|
+
monthlyLabel?: React.ReactNode;
|
|
102
|
+
/**
|
|
103
|
+
* Tabs label for yearly billing
|
|
104
|
+
*/
|
|
105
|
+
yearlyLabel?: React.ReactNode;
|
|
106
|
+
/**
|
|
107
|
+
* Badge displayed on yearly tab
|
|
108
|
+
*/
|
|
109
|
+
yearlyBadge?: React.ReactNode;
|
|
110
|
+
/**
|
|
111
|
+
* Monthly price suffix
|
|
112
|
+
*/
|
|
113
|
+
monthlyInterval?: React.ReactNode;
|
|
114
|
+
/**
|
|
115
|
+
* Yearly price suffix
|
|
116
|
+
*/
|
|
117
|
+
yearlyInterval?: React.ReactNode;
|
|
118
|
+
/**
|
|
119
|
+
* Pricing plans
|
|
120
|
+
*/
|
|
121
|
+
plans?: PricingTabsTogglePlan[];
|
|
122
|
+
/**
|
|
123
|
+
* Custom slot for rendering plans (overrides plans array)
|
|
124
|
+
*/
|
|
125
|
+
plansSlot?: React.ReactNode;
|
|
126
|
+
/**
|
|
127
|
+
* Default icon used for features
|
|
128
|
+
*/
|
|
129
|
+
featureIcon?: React.ReactNode;
|
|
130
|
+
/**
|
|
131
|
+
* Default icon name for features
|
|
132
|
+
*/
|
|
133
|
+
featureIconName?: string;
|
|
134
|
+
/**
|
|
135
|
+
* Badge content for popular plans
|
|
136
|
+
*/
|
|
137
|
+
popularBadge?: React.ReactNode;
|
|
138
|
+
/**
|
|
139
|
+
* Background style for the section
|
|
140
|
+
*/
|
|
141
|
+
background?: SectionBackground;
|
|
142
|
+
/**
|
|
143
|
+
* Vertical spacing for the section
|
|
144
|
+
*/
|
|
145
|
+
spacing?: SectionSpacing;
|
|
146
|
+
/**
|
|
147
|
+
* Optional background pattern name or URL
|
|
148
|
+
*/
|
|
149
|
+
pattern?: PatternName | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Pattern overlay opacity (0-1)
|
|
152
|
+
*/
|
|
153
|
+
patternOpacity?: number;
|
|
154
|
+
/**
|
|
155
|
+
* Additional CSS classes for the pattern overlay
|
|
156
|
+
*/
|
|
157
|
+
patternClassName?: string;
|
|
158
|
+
/**
|
|
159
|
+
* Additional CSS classes for the section
|
|
160
|
+
*/
|
|
161
|
+
className?: string;
|
|
162
|
+
/**
|
|
163
|
+
* Additional CSS classes for the container
|
|
164
|
+
*/
|
|
165
|
+
containerClassName?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Additional CSS classes for the header
|
|
168
|
+
*/
|
|
169
|
+
headerClassName?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Additional CSS classes for the title
|
|
172
|
+
*/
|
|
173
|
+
titleClassName?: string;
|
|
174
|
+
/**
|
|
175
|
+
* Additional CSS classes for the subtitle
|
|
176
|
+
*/
|
|
177
|
+
subtitleClassName?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Additional CSS classes for the tabs
|
|
180
|
+
*/
|
|
181
|
+
tabsClassName?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Additional CSS classes for the tabs list
|
|
184
|
+
*/
|
|
185
|
+
tabsListClassName?: string;
|
|
186
|
+
/**
|
|
187
|
+
* Additional CSS classes for the tabs triggers
|
|
188
|
+
*/
|
|
189
|
+
tabsTriggerClassName?: string;
|
|
190
|
+
/**
|
|
191
|
+
* Additional CSS classes for the yearly badge
|
|
192
|
+
*/
|
|
193
|
+
yearlyBadgeClassName?: string;
|
|
194
|
+
/**
|
|
195
|
+
* Additional CSS classes for the grid
|
|
196
|
+
*/
|
|
197
|
+
gridClassName?: string;
|
|
198
|
+
/**
|
|
199
|
+
* Additional CSS classes for plan cards
|
|
200
|
+
*/
|
|
201
|
+
cardClassName?: string;
|
|
202
|
+
/**
|
|
203
|
+
* Additional CSS classes for popular cards
|
|
204
|
+
*/
|
|
205
|
+
popularCardClassName?: string;
|
|
206
|
+
/**
|
|
207
|
+
* Additional CSS classes for badge
|
|
208
|
+
*/
|
|
209
|
+
badgeClassName?: string;
|
|
210
|
+
/**
|
|
211
|
+
* Additional CSS classes for icon wrapper
|
|
212
|
+
*/
|
|
213
|
+
iconWrapperClassName?: string;
|
|
214
|
+
/**
|
|
215
|
+
* Additional CSS classes for plan title
|
|
216
|
+
*/
|
|
217
|
+
planTitleClassName?: string;
|
|
218
|
+
/**
|
|
219
|
+
* Additional CSS classes for plan description
|
|
220
|
+
*/
|
|
221
|
+
planDescriptionClassName?: string;
|
|
222
|
+
/**
|
|
223
|
+
* Additional CSS classes for price
|
|
224
|
+
*/
|
|
225
|
+
priceClassName?: string;
|
|
226
|
+
/**
|
|
227
|
+
* Additional CSS classes for price interval
|
|
228
|
+
*/
|
|
229
|
+
priceIntervalClassName?: string;
|
|
230
|
+
/**
|
|
231
|
+
* Additional CSS classes for separator
|
|
232
|
+
*/
|
|
233
|
+
separatorClassName?: string;
|
|
234
|
+
/**
|
|
235
|
+
* Additional CSS classes for features list
|
|
236
|
+
*/
|
|
237
|
+
featuresClassName?: string;
|
|
238
|
+
/**
|
|
239
|
+
* Additional CSS classes for feature item
|
|
240
|
+
*/
|
|
241
|
+
featureItemClassName?: string;
|
|
242
|
+
/**
|
|
243
|
+
* Additional CSS classes for feature icons
|
|
244
|
+
*/
|
|
245
|
+
featureIconClassName?: string;
|
|
246
|
+
/**
|
|
247
|
+
* Additional CSS classes for feature text
|
|
248
|
+
*/
|
|
249
|
+
featureTextClassName?: string;
|
|
250
|
+
/**
|
|
251
|
+
* Additional CSS classes for action
|
|
252
|
+
*/
|
|
253
|
+
actionClassName?: string;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* PricingTabsToggle displays a 3-column pricing grid with a tabs-based monthly/yearly toggle.
|
|
257
|
+
* Features plan icons, popular plan highlighting, and clean card design with feature lists.
|
|
258
|
+
* The tabs toggle provides a clear visual indication of the selected billing period.
|
|
259
|
+
*
|
|
260
|
+
* Ideal for SaaS products with a free tier and paid options.
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* ```tsx
|
|
264
|
+
* <PricingTabsToggle
|
|
265
|
+
* title="Choose Your Plan"
|
|
266
|
+
* plans={[
|
|
267
|
+
* { name: "Free", monthlyPrice: "$0", yearlyPrice: "$0", features: [{ text: "Feature 1" }], iconName: "lucide/user" }
|
|
268
|
+
* ]}
|
|
269
|
+
* />
|
|
270
|
+
* ```
|
|
271
|
+
*/
|
|
272
|
+
declare function PricingTabsToggle({ title, subtitle, monthlyLabel, yearlyLabel, yearlyBadge, monthlyInterval, yearlyInterval, plans, plansSlot, featureIcon, featureIconName, popularBadge, background, spacing, pattern, patternOpacity, patternClassName, className, containerClassName, headerClassName, titleClassName, subtitleClassName, tabsClassName, tabsListClassName, tabsTriggerClassName, yearlyBadgeClassName, gridClassName, cardClassName, popularCardClassName, badgeClassName, iconWrapperClassName, planTitleClassName, planDescriptionClassName, priceClassName, priceIntervalClassName, separatorClassName, featuresClassName, featureItemClassName, featureIconClassName, featureTextClassName, actionClassName, }: PricingTabsToggleProps): React.JSX.Element;
|
|
273
|
+
|
|
274
|
+
export { PricingTabsToggle, type PricingTabsToggleProps };
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-Bi_ClKrO.js';
|
|
3
|
+
import { A as ActionConfig } from './blocks-k17uluAz.js';
|
|
4
|
+
import 'react/jsx-runtime';
|
|
5
|
+
import 'class-variance-authority';
|
|
6
|
+
import './button-variants-lRElsmTc.js';
|
|
7
|
+
import 'class-variance-authority/types';
|
|
8
|
+
|
|
9
|
+
interface PricingTabsToggleFeature {
|
|
10
|
+
/**
|
|
11
|
+
* Feature text
|
|
12
|
+
*/
|
|
13
|
+
text?: React.ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Optional icon element
|
|
16
|
+
*/
|
|
17
|
+
icon?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Optional icon name for DynamicIcon
|
|
20
|
+
*/
|
|
21
|
+
iconName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS classes for feature item
|
|
24
|
+
*/
|
|
25
|
+
className?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Additional CSS classes for feature icon
|
|
28
|
+
*/
|
|
29
|
+
iconClassName?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Additional CSS classes for feature text
|
|
32
|
+
*/
|
|
33
|
+
textClassName?: string;
|
|
34
|
+
}
|
|
35
|
+
interface PricingTabsTogglePlan {
|
|
36
|
+
/**
|
|
37
|
+
* Plan name
|
|
38
|
+
*/
|
|
39
|
+
name?: React.ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Monthly price display
|
|
42
|
+
*/
|
|
43
|
+
monthlyPrice?: React.ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Yearly price display
|
|
46
|
+
*/
|
|
47
|
+
yearlyPrice?: React.ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Plan description
|
|
50
|
+
*/
|
|
51
|
+
description?: React.ReactNode;
|
|
52
|
+
/**
|
|
53
|
+
* Plan features
|
|
54
|
+
*/
|
|
55
|
+
features?: PricingTabsToggleFeature[];
|
|
56
|
+
/**
|
|
57
|
+
* Custom slot for rendering features (overrides features array)
|
|
58
|
+
*/
|
|
59
|
+
featuresSlot?: React.ReactNode;
|
|
60
|
+
/**
|
|
61
|
+
* Action configuration
|
|
62
|
+
*/
|
|
63
|
+
action?: ActionConfig;
|
|
64
|
+
/**
|
|
65
|
+
* Custom slot for rendering action (overrides action)
|
|
66
|
+
*/
|
|
67
|
+
actionSlot?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* Highlight this plan
|
|
70
|
+
*/
|
|
71
|
+
isPopular?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Badge content for popular plan
|
|
74
|
+
*/
|
|
75
|
+
badge?: React.ReactNode;
|
|
76
|
+
/**
|
|
77
|
+
* Icon element
|
|
78
|
+
*/
|
|
79
|
+
icon?: React.ReactNode;
|
|
80
|
+
/**
|
|
81
|
+
* Icon name for DynamicIcon
|
|
82
|
+
*/
|
|
83
|
+
iconName?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Additional CSS classes for the plan card
|
|
86
|
+
*/
|
|
87
|
+
className?: string;
|
|
88
|
+
}
|
|
89
|
+
interface PricingTabsToggleProps {
|
|
90
|
+
/**
|
|
91
|
+
* Section title
|
|
92
|
+
*/
|
|
93
|
+
title?: React.ReactNode;
|
|
94
|
+
/**
|
|
95
|
+
* Section subtitle
|
|
96
|
+
*/
|
|
97
|
+
subtitle?: React.ReactNode;
|
|
98
|
+
/**
|
|
99
|
+
* Tabs label for monthly billing
|
|
100
|
+
*/
|
|
101
|
+
monthlyLabel?: React.ReactNode;
|
|
102
|
+
/**
|
|
103
|
+
* Tabs label for yearly billing
|
|
104
|
+
*/
|
|
105
|
+
yearlyLabel?: React.ReactNode;
|
|
106
|
+
/**
|
|
107
|
+
* Badge displayed on yearly tab
|
|
108
|
+
*/
|
|
109
|
+
yearlyBadge?: React.ReactNode;
|
|
110
|
+
/**
|
|
111
|
+
* Monthly price suffix
|
|
112
|
+
*/
|
|
113
|
+
monthlyInterval?: React.ReactNode;
|
|
114
|
+
/**
|
|
115
|
+
* Yearly price suffix
|
|
116
|
+
*/
|
|
117
|
+
yearlyInterval?: React.ReactNode;
|
|
118
|
+
/**
|
|
119
|
+
* Pricing plans
|
|
120
|
+
*/
|
|
121
|
+
plans?: PricingTabsTogglePlan[];
|
|
122
|
+
/**
|
|
123
|
+
* Custom slot for rendering plans (overrides plans array)
|
|
124
|
+
*/
|
|
125
|
+
plansSlot?: React.ReactNode;
|
|
126
|
+
/**
|
|
127
|
+
* Default icon used for features
|
|
128
|
+
*/
|
|
129
|
+
featureIcon?: React.ReactNode;
|
|
130
|
+
/**
|
|
131
|
+
* Default icon name for features
|
|
132
|
+
*/
|
|
133
|
+
featureIconName?: string;
|
|
134
|
+
/**
|
|
135
|
+
* Badge content for popular plans
|
|
136
|
+
*/
|
|
137
|
+
popularBadge?: React.ReactNode;
|
|
138
|
+
/**
|
|
139
|
+
* Background style for the section
|
|
140
|
+
*/
|
|
141
|
+
background?: SectionBackground;
|
|
142
|
+
/**
|
|
143
|
+
* Vertical spacing for the section
|
|
144
|
+
*/
|
|
145
|
+
spacing?: SectionSpacing;
|
|
146
|
+
/**
|
|
147
|
+
* Optional background pattern name or URL
|
|
148
|
+
*/
|
|
149
|
+
pattern?: PatternName | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Pattern overlay opacity (0-1)
|
|
152
|
+
*/
|
|
153
|
+
patternOpacity?: number;
|
|
154
|
+
/**
|
|
155
|
+
* Additional CSS classes for the pattern overlay
|
|
156
|
+
*/
|
|
157
|
+
patternClassName?: string;
|
|
158
|
+
/**
|
|
159
|
+
* Additional CSS classes for the section
|
|
160
|
+
*/
|
|
161
|
+
className?: string;
|
|
162
|
+
/**
|
|
163
|
+
* Additional CSS classes for the container
|
|
164
|
+
*/
|
|
165
|
+
containerClassName?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Additional CSS classes for the header
|
|
168
|
+
*/
|
|
169
|
+
headerClassName?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Additional CSS classes for the title
|
|
172
|
+
*/
|
|
173
|
+
titleClassName?: string;
|
|
174
|
+
/**
|
|
175
|
+
* Additional CSS classes for the subtitle
|
|
176
|
+
*/
|
|
177
|
+
subtitleClassName?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Additional CSS classes for the tabs
|
|
180
|
+
*/
|
|
181
|
+
tabsClassName?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Additional CSS classes for the tabs list
|
|
184
|
+
*/
|
|
185
|
+
tabsListClassName?: string;
|
|
186
|
+
/**
|
|
187
|
+
* Additional CSS classes for the tabs triggers
|
|
188
|
+
*/
|
|
189
|
+
tabsTriggerClassName?: string;
|
|
190
|
+
/**
|
|
191
|
+
* Additional CSS classes for the yearly badge
|
|
192
|
+
*/
|
|
193
|
+
yearlyBadgeClassName?: string;
|
|
194
|
+
/**
|
|
195
|
+
* Additional CSS classes for the grid
|
|
196
|
+
*/
|
|
197
|
+
gridClassName?: string;
|
|
198
|
+
/**
|
|
199
|
+
* Additional CSS classes for plan cards
|
|
200
|
+
*/
|
|
201
|
+
cardClassName?: string;
|
|
202
|
+
/**
|
|
203
|
+
* Additional CSS classes for popular cards
|
|
204
|
+
*/
|
|
205
|
+
popularCardClassName?: string;
|
|
206
|
+
/**
|
|
207
|
+
* Additional CSS classes for badge
|
|
208
|
+
*/
|
|
209
|
+
badgeClassName?: string;
|
|
210
|
+
/**
|
|
211
|
+
* Additional CSS classes for icon wrapper
|
|
212
|
+
*/
|
|
213
|
+
iconWrapperClassName?: string;
|
|
214
|
+
/**
|
|
215
|
+
* Additional CSS classes for plan title
|
|
216
|
+
*/
|
|
217
|
+
planTitleClassName?: string;
|
|
218
|
+
/**
|
|
219
|
+
* Additional CSS classes for plan description
|
|
220
|
+
*/
|
|
221
|
+
planDescriptionClassName?: string;
|
|
222
|
+
/**
|
|
223
|
+
* Additional CSS classes for price
|
|
224
|
+
*/
|
|
225
|
+
priceClassName?: string;
|
|
226
|
+
/**
|
|
227
|
+
* Additional CSS classes for price interval
|
|
228
|
+
*/
|
|
229
|
+
priceIntervalClassName?: string;
|
|
230
|
+
/**
|
|
231
|
+
* Additional CSS classes for separator
|
|
232
|
+
*/
|
|
233
|
+
separatorClassName?: string;
|
|
234
|
+
/**
|
|
235
|
+
* Additional CSS classes for features list
|
|
236
|
+
*/
|
|
237
|
+
featuresClassName?: string;
|
|
238
|
+
/**
|
|
239
|
+
* Additional CSS classes for feature item
|
|
240
|
+
*/
|
|
241
|
+
featureItemClassName?: string;
|
|
242
|
+
/**
|
|
243
|
+
* Additional CSS classes for feature icons
|
|
244
|
+
*/
|
|
245
|
+
featureIconClassName?: string;
|
|
246
|
+
/**
|
|
247
|
+
* Additional CSS classes for feature text
|
|
248
|
+
*/
|
|
249
|
+
featureTextClassName?: string;
|
|
250
|
+
/**
|
|
251
|
+
* Additional CSS classes for action
|
|
252
|
+
*/
|
|
253
|
+
actionClassName?: string;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* PricingTabsToggle displays a 3-column pricing grid with a tabs-based monthly/yearly toggle.
|
|
257
|
+
* Features plan icons, popular plan highlighting, and clean card design with feature lists.
|
|
258
|
+
* The tabs toggle provides a clear visual indication of the selected billing period.
|
|
259
|
+
*
|
|
260
|
+
* Ideal for SaaS products with a free tier and paid options.
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* ```tsx
|
|
264
|
+
* <PricingTabsToggle
|
|
265
|
+
* title="Choose Your Plan"
|
|
266
|
+
* plans={[
|
|
267
|
+
* { name: "Free", monthlyPrice: "$0", yearlyPrice: "$0", features: [{ text: "Feature 1" }], iconName: "lucide/user" }
|
|
268
|
+
* ]}
|
|
269
|
+
* />
|
|
270
|
+
* ```
|
|
271
|
+
*/
|
|
272
|
+
declare function PricingTabsToggle({ title, subtitle, monthlyLabel, yearlyLabel, yearlyBadge, monthlyInterval, yearlyInterval, plans, plansSlot, featureIcon, featureIconName, popularBadge, background, spacing, pattern, patternOpacity, patternClassName, className, containerClassName, headerClassName, titleClassName, subtitleClassName, tabsClassName, tabsListClassName, tabsTriggerClassName, yearlyBadgeClassName, gridClassName, cardClassName, popularCardClassName, badgeClassName, iconWrapperClassName, planTitleClassName, planDescriptionClassName, priceClassName, priceIntervalClassName, separatorClassName, featuresClassName, featureItemClassName, featureIconClassName, featureTextClassName, actionClassName, }: PricingTabsToggleProps): React.JSX.Element;
|
|
273
|
+
|
|
274
|
+
export { PricingTabsToggle, type PricingTabsToggleProps };
|