@burdenoff/website-sdk 0.0.0-dev

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 (119) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +357 -0
  3. package/dist/analytics/index.d.mts +27 -0
  4. package/dist/analytics/index.d.ts +27 -0
  5. package/dist/analytics/index.js +36 -0
  6. package/dist/analytics/index.js.map +1 -0
  7. package/dist/analytics/index.mjs +34 -0
  8. package/dist/analytics/index.mjs.map +1 -0
  9. package/dist/client/index.d.mts +29 -0
  10. package/dist/client/index.d.ts +29 -0
  11. package/dist/client/index.js +261 -0
  12. package/dist/client/index.js.map +1 -0
  13. package/dist/client/index.mjs +255 -0
  14. package/dist/client/index.mjs.map +1 -0
  15. package/dist/components/contact.d.mts +144 -0
  16. package/dist/components/contact.d.ts +144 -0
  17. package/dist/components/contact.js +806 -0
  18. package/dist/components/contact.js.map +1 -0
  19. package/dist/components/contact.mjs +780 -0
  20. package/dist/components/contact.mjs.map +1 -0
  21. package/dist/components/electron-download.d.mts +32 -0
  22. package/dist/components/electron-download.d.ts +32 -0
  23. package/dist/components/electron-download.js +131 -0
  24. package/dist/components/electron-download.js.map +1 -0
  25. package/dist/components/electron-download.mjs +108 -0
  26. package/dist/components/electron-download.mjs.map +1 -0
  27. package/dist/components/launch-countdown.d.mts +15 -0
  28. package/dist/components/launch-countdown.d.ts +15 -0
  29. package/dist/components/launch-countdown.js +89 -0
  30. package/dist/components/launch-countdown.js.map +1 -0
  31. package/dist/components/launch-countdown.mjs +87 -0
  32. package/dist/components/launch-countdown.mjs.map +1 -0
  33. package/dist/components/newsletter.d.mts +155 -0
  34. package/dist/components/newsletter.d.ts +155 -0
  35. package/dist/components/newsletter.js +880 -0
  36. package/dist/components/newsletter.js.map +1 -0
  37. package/dist/components/newsletter.mjs +854 -0
  38. package/dist/components/newsletter.mjs.map +1 -0
  39. package/dist/components/partners.d.mts +88 -0
  40. package/dist/components/partners.d.ts +88 -0
  41. package/dist/components/partners.js +1169 -0
  42. package/dist/components/partners.js.map +1 -0
  43. package/dist/components/partners.mjs +1143 -0
  44. package/dist/components/partners.mjs.map +1 -0
  45. package/dist/components/pricing.d.mts +194 -0
  46. package/dist/components/pricing.d.ts +194 -0
  47. package/dist/components/pricing.js +813 -0
  48. package/dist/components/pricing.js.map +1 -0
  49. package/dist/components/pricing.mjs +791 -0
  50. package/dist/components/pricing.mjs.map +1 -0
  51. package/dist/components/problems-solved.d.mts +37 -0
  52. package/dist/components/problems-solved.d.ts +37 -0
  53. package/dist/components/problems-solved.js +157 -0
  54. package/dist/components/problems-solved.js.map +1 -0
  55. package/dist/components/problems-solved.mjs +135 -0
  56. package/dist/components/problems-solved.mjs.map +1 -0
  57. package/dist/components/resource-links.d.mts +28 -0
  58. package/dist/components/resource-links.d.ts +28 -0
  59. package/dist/components/resource-links.js +229 -0
  60. package/dist/components/resource-links.js.map +1 -0
  61. package/dist/components/resource-links.mjs +227 -0
  62. package/dist/components/resource-links.mjs.map +1 -0
  63. package/dist/components/social-links.d.mts +37 -0
  64. package/dist/components/social-links.d.ts +37 -0
  65. package/dist/components/social-links.js +268 -0
  66. package/dist/components/social-links.js.map +1 -0
  67. package/dist/components/social-links.mjs +266 -0
  68. package/dist/components/social-links.mjs.map +1 -0
  69. package/dist/components/unsubscribe.d.mts +14 -0
  70. package/dist/components/unsubscribe.d.ts +14 -0
  71. package/dist/components/unsubscribe.js +538 -0
  72. package/dist/components/unsubscribe.js.map +1 -0
  73. package/dist/components/unsubscribe.mjs +517 -0
  74. package/dist/components/unsubscribe.mjs.map +1 -0
  75. package/dist/components/waitlist.d.mts +70 -0
  76. package/dist/components/waitlist.d.ts +70 -0
  77. package/dist/components/waitlist.js +864 -0
  78. package/dist/components/waitlist.js.map +1 -0
  79. package/dist/components/waitlist.mjs +841 -0
  80. package/dist/components/waitlist.mjs.map +1 -0
  81. package/dist/components/website-switcher.d.mts +27 -0
  82. package/dist/components/website-switcher.d.ts +27 -0
  83. package/dist/components/website-switcher.js +168 -0
  84. package/dist/components/website-switcher.js.map +1 -0
  85. package/dist/components/website-switcher.mjs +146 -0
  86. package/dist/components/website-switcher.mjs.map +1 -0
  87. package/dist/content/index.d.mts +247 -0
  88. package/dist/content/index.d.ts +247 -0
  89. package/dist/content/index.js +2458 -0
  90. package/dist/content/index.js.map +1 -0
  91. package/dist/content/index.mjs +2428 -0
  92. package/dist/content/index.mjs.map +1 -0
  93. package/dist/index.d.mts +72 -0
  94. package/dist/index.d.ts +72 -0
  95. package/dist/index.js +6273 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/index.mjs +6204 -0
  98. package/dist/index.mjs.map +1 -0
  99. package/dist/product/index.d.mts +94 -0
  100. package/dist/product/index.d.ts +94 -0
  101. package/dist/product/index.js +282 -0
  102. package/dist/product/index.js.map +1 -0
  103. package/dist/product/index.mjs +278 -0
  104. package/dist/product/index.mjs.map +1 -0
  105. package/dist/provider-D7Rij9UM.d.mts +86 -0
  106. package/dist/provider-D7Rij9UM.d.ts +86 -0
  107. package/dist/seo/index.d.mts +64 -0
  108. package/dist/seo/index.d.ts +64 -0
  109. package/dist/seo/index.js +61 -0
  110. package/dist/seo/index.js.map +1 -0
  111. package/dist/seo/index.mjs +59 -0
  112. package/dist/seo/index.mjs.map +1 -0
  113. package/dist/utils/index.d.mts +21 -0
  114. package/dist/utils/index.d.ts +21 -0
  115. package/dist/utils/index.js +12 -0
  116. package/dist/utils/index.js.map +1 -0
  117. package/dist/utils/index.mjs +10 -0
  118. package/dist/utils/index.mjs.map +1 -0
  119. package/package.json +168 -0
@@ -0,0 +1,194 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ /**
4
+ * Pricing Component
5
+ * GraphQL-powered pricing component with quota-based features and monthly/yearly toggle
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { PricingPage, PricingSection } from '@burdenoff/website-sdk/components/pricing'
10
+ *
11
+ * // Full page with hero
12
+ * <PricingPage
13
+ * productName="BigConsole"
14
+ * productId="bigconsole-123"
15
+ * appLoginUrl="https://app.bigconsole.com/login"
16
+ * contactUrl="/contact"
17
+ * fallbackFeatures={{
18
+ * basic: ['Up to 5 dashboards', '10 data sources'],
19
+ * professional: ['Unlimited dashboards', 'API access'],
20
+ * enterprise: ['Everything in Professional', 'Dedicated support']
21
+ * }}
22
+ * />
23
+ *
24
+ * // Embeddable section
25
+ * <PricingSection {...props} id="pricing" className="bg-muted/30" />
26
+ * ```
27
+ */
28
+ interface PlanCard {
29
+ id: string;
30
+ name: string;
31
+ price: number;
32
+ currency: string;
33
+ currencyPrices?: Record<string, number> | null;
34
+ duration: string;
35
+ features: Array<{
36
+ id: string;
37
+ quotaId?: string | null;
38
+ quota?: {
39
+ id: string;
40
+ name: string;
41
+ limits?: unknown;
42
+ } | null;
43
+ }>;
44
+ isActive: boolean;
45
+ productID?: string | null;
46
+ }
47
+ interface CurrencyConfig {
48
+ code: string;
49
+ symbol: string;
50
+ position: "prefix" | "suffix";
51
+ }
52
+ interface PlanMetadata {
53
+ tier: "basic" | "professional" | "enterprise";
54
+ displayName: string;
55
+ defaultDescription: string;
56
+ popular: boolean;
57
+ ctaText: string;
58
+ ctaType: "signup" | "contact";
59
+ /**
60
+ * Curated feature bullets for this specific plan. When provided, these win
61
+ * over the tier-based `fallbackFeatures` and the raw quota list — letting a
62
+ * consumer differentiate plans that share a tier keyword (e.g. Free vs Hobby,
63
+ * Pro vs Team) with concise, accurate copy.
64
+ */
65
+ features?: string[];
66
+ }
67
+ interface PricingProps {
68
+ /**
69
+ * Product name (used in branding and SEO)
70
+ */
71
+ productName?: string;
72
+ /**
73
+ * Product ID for GraphQL query (falls back to WebSDKConfig.productId)
74
+ */
75
+ productId?: string;
76
+ /**
77
+ * App login URL for signup CTA
78
+ */
79
+ appLoginUrl: string;
80
+ /**
81
+ * Contact page URL for enterprise CTA
82
+ * @default '/contact'
83
+ */
84
+ contactUrl?: string;
85
+ /**
86
+ * Supported currencies
87
+ */
88
+ currencies?: Record<string, CurrencyConfig>;
89
+ /**
90
+ * Billing interval display text
91
+ */
92
+ billingIntervals?: Record<string, string>;
93
+ /**
94
+ * Plan metadata (tier info, CTA text, etc.)
95
+ */
96
+ planMetadata?: Record<string, Partial<PlanMetadata>>;
97
+ /**
98
+ * Fallback features when API doesn't provide them or is unavailable
99
+ */
100
+ fallbackFeatures?: {
101
+ basic?: string[];
102
+ professional?: string[];
103
+ enterprise?: string[];
104
+ };
105
+ /**
106
+ * Enable audience tabs (Individual / Enterprise).
107
+ * When enabled, shows a two-level tab system.
108
+ * @default false
109
+ */
110
+ showAudienceTabs?: boolean;
111
+ /**
112
+ * Enterprise plans to show when Enterprise tab is selected.
113
+ * Each entry defines a static plan card (not fetched from API).
114
+ */
115
+ enterprisePlans?: Array<{
116
+ name: string;
117
+ subtitle: string;
118
+ price: string;
119
+ period: string;
120
+ note?: string;
121
+ button: string;
122
+ buttonLink: string;
123
+ popular: boolean;
124
+ badge?: string;
125
+ features: string[];
126
+ }>;
127
+ /**
128
+ * Enterprise section heading
129
+ * @default 'Enterprise Solutions'
130
+ */
131
+ enterpriseHeading?: string;
132
+ /**
133
+ * Enterprise section subtitle
134
+ */
135
+ enterpriseSubtitle?: string;
136
+ /**
137
+ * Hero section heading (for PricingPage)
138
+ * @default 'Simple, Transparent Pricing'
139
+ */
140
+ heroHeading?: string;
141
+ /**
142
+ * Hero section subtitle (for PricingPage)
143
+ * @default "Choose the plan that's right for you. No hidden fees, no surprises."
144
+ */
145
+ heroSubtitle?: string;
146
+ /**
147
+ * Section heading (for PricingSection)
148
+ * @default 'Pricing Plans'
149
+ */
150
+ sectionHeading?: string;
151
+ /**
152
+ * Section subtitle (for PricingSection)
153
+ * @default 'Choose the perfect plan for your needs'
154
+ */
155
+ sectionSubtitle?: string;
156
+ /**
157
+ * Custom CSS class
158
+ */
159
+ className?: string;
160
+ /**
161
+ * Section ID for anchor links
162
+ */
163
+ id?: string;
164
+ /**
165
+ * SEO: Page title (optional, for PricingPage)
166
+ */
167
+ seoTitle?: string;
168
+ /**
169
+ * SEO: Page description (optional, for PricingPage)
170
+ */
171
+ seoDescription?: string;
172
+ /**
173
+ * SEO: Keywords (optional, for PricingPage)
174
+ */
175
+ seoKeywords?: string;
176
+ /**
177
+ * SEO: OG Image URL (optional, for PricingPage)
178
+ */
179
+ seoImage?: string;
180
+ /**
181
+ * SEO: Canonical URL (optional, for PricingPage)
182
+ */
183
+ seoUrl?: string;
184
+ }
185
+ /**
186
+ * Pricing Section Component - Embeddable
187
+ */
188
+ declare function PricingSection(props: PricingProps): react_jsx_runtime.JSX.Element;
189
+ /**
190
+ * Pricing Page Component - Full Page with Hero
191
+ */
192
+ declare function PricingPage(props: PricingProps): react_jsx_runtime.JSX.Element;
193
+
194
+ export { type PlanCard, PricingPage, type PricingProps, PricingSection };