@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.
- package/LICENSE +24 -0
- package/README.md +357 -0
- package/dist/analytics/index.d.mts +27 -0
- package/dist/analytics/index.d.ts +27 -0
- package/dist/analytics/index.js +36 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/index.mjs +34 -0
- package/dist/analytics/index.mjs.map +1 -0
- package/dist/client/index.d.mts +29 -0
- package/dist/client/index.d.ts +29 -0
- package/dist/client/index.js +261 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/index.mjs +255 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/components/contact.d.mts +144 -0
- package/dist/components/contact.d.ts +144 -0
- package/dist/components/contact.js +806 -0
- package/dist/components/contact.js.map +1 -0
- package/dist/components/contact.mjs +780 -0
- package/dist/components/contact.mjs.map +1 -0
- package/dist/components/electron-download.d.mts +32 -0
- package/dist/components/electron-download.d.ts +32 -0
- package/dist/components/electron-download.js +131 -0
- package/dist/components/electron-download.js.map +1 -0
- package/dist/components/electron-download.mjs +108 -0
- package/dist/components/electron-download.mjs.map +1 -0
- package/dist/components/launch-countdown.d.mts +15 -0
- package/dist/components/launch-countdown.d.ts +15 -0
- package/dist/components/launch-countdown.js +89 -0
- package/dist/components/launch-countdown.js.map +1 -0
- package/dist/components/launch-countdown.mjs +87 -0
- package/dist/components/launch-countdown.mjs.map +1 -0
- package/dist/components/newsletter.d.mts +155 -0
- package/dist/components/newsletter.d.ts +155 -0
- package/dist/components/newsletter.js +880 -0
- package/dist/components/newsletter.js.map +1 -0
- package/dist/components/newsletter.mjs +854 -0
- package/dist/components/newsletter.mjs.map +1 -0
- package/dist/components/partners.d.mts +88 -0
- package/dist/components/partners.d.ts +88 -0
- package/dist/components/partners.js +1169 -0
- package/dist/components/partners.js.map +1 -0
- package/dist/components/partners.mjs +1143 -0
- package/dist/components/partners.mjs.map +1 -0
- package/dist/components/pricing.d.mts +194 -0
- package/dist/components/pricing.d.ts +194 -0
- package/dist/components/pricing.js +813 -0
- package/dist/components/pricing.js.map +1 -0
- package/dist/components/pricing.mjs +791 -0
- package/dist/components/pricing.mjs.map +1 -0
- package/dist/components/problems-solved.d.mts +37 -0
- package/dist/components/problems-solved.d.ts +37 -0
- package/dist/components/problems-solved.js +157 -0
- package/dist/components/problems-solved.js.map +1 -0
- package/dist/components/problems-solved.mjs +135 -0
- package/dist/components/problems-solved.mjs.map +1 -0
- package/dist/components/resource-links.d.mts +28 -0
- package/dist/components/resource-links.d.ts +28 -0
- package/dist/components/resource-links.js +229 -0
- package/dist/components/resource-links.js.map +1 -0
- package/dist/components/resource-links.mjs +227 -0
- package/dist/components/resource-links.mjs.map +1 -0
- package/dist/components/social-links.d.mts +37 -0
- package/dist/components/social-links.d.ts +37 -0
- package/dist/components/social-links.js +268 -0
- package/dist/components/social-links.js.map +1 -0
- package/dist/components/social-links.mjs +266 -0
- package/dist/components/social-links.mjs.map +1 -0
- package/dist/components/unsubscribe.d.mts +14 -0
- package/dist/components/unsubscribe.d.ts +14 -0
- package/dist/components/unsubscribe.js +538 -0
- package/dist/components/unsubscribe.js.map +1 -0
- package/dist/components/unsubscribe.mjs +517 -0
- package/dist/components/unsubscribe.mjs.map +1 -0
- package/dist/components/waitlist.d.mts +70 -0
- package/dist/components/waitlist.d.ts +70 -0
- package/dist/components/waitlist.js +864 -0
- package/dist/components/waitlist.js.map +1 -0
- package/dist/components/waitlist.mjs +841 -0
- package/dist/components/waitlist.mjs.map +1 -0
- package/dist/components/website-switcher.d.mts +27 -0
- package/dist/components/website-switcher.d.ts +27 -0
- package/dist/components/website-switcher.js +168 -0
- package/dist/components/website-switcher.js.map +1 -0
- package/dist/components/website-switcher.mjs +146 -0
- package/dist/components/website-switcher.mjs.map +1 -0
- package/dist/content/index.d.mts +247 -0
- package/dist/content/index.d.ts +247 -0
- package/dist/content/index.js +2458 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/index.mjs +2428 -0
- package/dist/content/index.mjs.map +1 -0
- package/dist/index.d.mts +72 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.js +6273 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +6204 -0
- package/dist/index.mjs.map +1 -0
- package/dist/product/index.d.mts +94 -0
- package/dist/product/index.d.ts +94 -0
- package/dist/product/index.js +282 -0
- package/dist/product/index.js.map +1 -0
- package/dist/product/index.mjs +278 -0
- package/dist/product/index.mjs.map +1 -0
- package/dist/provider-D7Rij9UM.d.mts +86 -0
- package/dist/provider-D7Rij9UM.d.ts +86 -0
- package/dist/seo/index.d.mts +64 -0
- package/dist/seo/index.d.ts +64 -0
- package/dist/seo/index.js +61 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/index.mjs +59 -0
- package/dist/seo/index.mjs.map +1 -0
- package/dist/utils/index.d.mts +21 -0
- package/dist/utils/index.d.ts +21 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +10 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +168 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface ContentPageData {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
slug: string;
|
|
8
|
+
content: string;
|
|
9
|
+
contentFormat: string;
|
|
10
|
+
seoTitle?: string | null;
|
|
11
|
+
seoDescription?: string | null;
|
|
12
|
+
seoKeywords?: string | null;
|
|
13
|
+
lastUpdated: string;
|
|
14
|
+
version: number;
|
|
15
|
+
tags?: string[];
|
|
16
|
+
excerpt?: string | null;
|
|
17
|
+
thumbnail?: string | null;
|
|
18
|
+
author?: string | null;
|
|
19
|
+
publishedAt?: string | null;
|
|
20
|
+
readingTime?: number | null;
|
|
21
|
+
featured?: boolean;
|
|
22
|
+
category?: string | null;
|
|
23
|
+
}
|
|
24
|
+
interface ContentPageListItem {
|
|
25
|
+
id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
slug: string;
|
|
28
|
+
lastUpdated: string;
|
|
29
|
+
tags?: string[];
|
|
30
|
+
excerpt?: string | null;
|
|
31
|
+
thumbnail?: string | null;
|
|
32
|
+
author?: string | null;
|
|
33
|
+
publishedAt?: string | null;
|
|
34
|
+
readingTime?: number | null;
|
|
35
|
+
featured?: boolean;
|
|
36
|
+
category?: string | null;
|
|
37
|
+
seoDescription?: string | null;
|
|
38
|
+
}
|
|
39
|
+
interface ContentPageListData {
|
|
40
|
+
items: ContentPageListItem[];
|
|
41
|
+
total: number;
|
|
42
|
+
hasMore: boolean;
|
|
43
|
+
}
|
|
44
|
+
interface UseContentPageOptions {
|
|
45
|
+
/** Whether to use template variable replacement (resolvedContentPage) */
|
|
46
|
+
resolve?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Hook to fetch a single public content page by slug.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* const { data, loading, error } = useContentPage('privacy-policy');
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare function useContentPage(slug: string, options?: UseContentPageOptions): {
|
|
57
|
+
data: ContentPageData | null;
|
|
58
|
+
loading: boolean;
|
|
59
|
+
error: string | null;
|
|
60
|
+
refetch: () => void;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Hook to fetch a list of public content pages for the current product.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* const { data, loading } = useContentPages({ limit: 10 });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
declare function useContentPages(options?: {
|
|
71
|
+
limit?: number;
|
|
72
|
+
offset?: number;
|
|
73
|
+
}): {
|
|
74
|
+
data: ContentPageListData | null;
|
|
75
|
+
loading: boolean;
|
|
76
|
+
error: string | null;
|
|
77
|
+
refetch: () => void;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Content renderer component.
|
|
81
|
+
*
|
|
82
|
+
* - `markdown` (default): converts to HTML via {@link renderMarkdown}
|
|
83
|
+
* - `html`: rendered as-is (assumed already sanitized upstream)
|
|
84
|
+
* - anything else: plain-text fallback
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```tsx
|
|
88
|
+
* <ContentRenderer content={page.content} format={page.contentFormat} />
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function ContentRenderer({ content, format, className, }: {
|
|
92
|
+
content: string;
|
|
93
|
+
format?: string;
|
|
94
|
+
className?: string;
|
|
95
|
+
}): react_jsx_runtime.JSX.Element;
|
|
96
|
+
|
|
97
|
+
interface BlogListPageProps {
|
|
98
|
+
productName?: string;
|
|
99
|
+
heroTitle?: string;
|
|
100
|
+
heroSubtitle?: string;
|
|
101
|
+
blogPostBasePath?: string;
|
|
102
|
+
className?: string;
|
|
103
|
+
seoTitle?: string;
|
|
104
|
+
seoDescription?: string;
|
|
105
|
+
seoKeywords?: string;
|
|
106
|
+
}
|
|
107
|
+
interface BlogPostPageProps {
|
|
108
|
+
productName?: string;
|
|
109
|
+
blogListUrl?: string;
|
|
110
|
+
/** Back-link label. Default: "Back to Blog". Use e.g. "Back to Press"
|
|
111
|
+
* when reusing this renderer for a press release at /press/:slug. */
|
|
112
|
+
backLabel?: string;
|
|
113
|
+
className?: string;
|
|
114
|
+
}
|
|
115
|
+
declare function BlogListPage(props: BlogListPageProps): react_jsx_runtime.JSX.Element;
|
|
116
|
+
declare function BlogPostPage(props: BlogPostPageProps): react_jsx_runtime.JSX.Element;
|
|
117
|
+
|
|
118
|
+
interface CaseStudiesListPageProps {
|
|
119
|
+
productName?: string;
|
|
120
|
+
heroTitle?: string;
|
|
121
|
+
heroSubtitle?: string;
|
|
122
|
+
caseStudyBasePath?: string;
|
|
123
|
+
className?: string;
|
|
124
|
+
seoTitle?: string;
|
|
125
|
+
seoDescription?: string;
|
|
126
|
+
seoKeywords?: string;
|
|
127
|
+
}
|
|
128
|
+
interface CaseStudyPageProps {
|
|
129
|
+
productName?: string;
|
|
130
|
+
caseStudiesListUrl?: string;
|
|
131
|
+
/** Back-link label. Default: "Back to Case Studies". */
|
|
132
|
+
backLabel?: string;
|
|
133
|
+
className?: string;
|
|
134
|
+
}
|
|
135
|
+
declare function CaseStudiesListPage(props: CaseStudiesListPageProps): react_jsx_runtime.JSX.Element;
|
|
136
|
+
declare function CaseStudyPage(props: CaseStudyPageProps): react_jsx_runtime.JSX.Element;
|
|
137
|
+
|
|
138
|
+
interface ChangelogEntry {
|
|
139
|
+
/** Release date as an ISO string. */
|
|
140
|
+
date: string;
|
|
141
|
+
/** Version identifier, e.g. "1.2.0". */
|
|
142
|
+
version: string;
|
|
143
|
+
/** Entry headline. */
|
|
144
|
+
title: string;
|
|
145
|
+
/** Category used for filtering, e.g. "feature", "fix", "improvement". */
|
|
146
|
+
category: string;
|
|
147
|
+
/** Entry body — plain text, markdown, or a React node. */
|
|
148
|
+
content: ReactNode | string;
|
|
149
|
+
/** Optional tags for search and filtering. */
|
|
150
|
+
tags?: string[];
|
|
151
|
+
}
|
|
152
|
+
interface ChangelogPageProps {
|
|
153
|
+
productName?: string;
|
|
154
|
+
heroEyebrow?: string;
|
|
155
|
+
heroTitle?: string;
|
|
156
|
+
heroSubtitle?: string;
|
|
157
|
+
/** Optional bottom CTA. Rendered only when ctaHref + ctaLabel are provided. */
|
|
158
|
+
ctaTitle?: string;
|
|
159
|
+
ctaSubtitle?: string;
|
|
160
|
+
ctaHref?: string;
|
|
161
|
+
ctaLabel?: string;
|
|
162
|
+
className?: string;
|
|
163
|
+
seoTitle?: string;
|
|
164
|
+
seoDescription?: string;
|
|
165
|
+
seoKeywords?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Optional prop-driven entries. When provided, the component skips the CMS
|
|
168
|
+
* fetch and renders these entries with search, category filters, and
|
|
169
|
+
* pagination.
|
|
170
|
+
*/
|
|
171
|
+
entries?: ChangelogEntry[];
|
|
172
|
+
/** Number of entries per page in prop-driven mode. Defaults to 10. */
|
|
173
|
+
pageSize?: number;
|
|
174
|
+
}
|
|
175
|
+
declare function ChangelogPage(props: ChangelogPageProps): react_jsx_runtime.JSX.Element;
|
|
176
|
+
|
|
177
|
+
type PressKitAssetCategory = "LOGO" | "BANNER" | "SCREENSHOT" | "BROCHURE" | "DOCUMENT" | "PRESS_RELEASE" | "BRAND_GUIDE";
|
|
178
|
+
interface PressKitAsset {
|
|
179
|
+
id: string;
|
|
180
|
+
category: PressKitAssetCategory;
|
|
181
|
+
title: string;
|
|
182
|
+
slug: string;
|
|
183
|
+
description?: string | null;
|
|
184
|
+
fileUrl: string;
|
|
185
|
+
fileName?: string | null;
|
|
186
|
+
fileSize?: number | null;
|
|
187
|
+
mimeType?: string | null;
|
|
188
|
+
thumbnailUrl?: string | null;
|
|
189
|
+
version?: string | null;
|
|
190
|
+
tags: string[];
|
|
191
|
+
sortOrder: number;
|
|
192
|
+
updatedAt: string;
|
|
193
|
+
}
|
|
194
|
+
interface PressKitPageProps {
|
|
195
|
+
productName?: string;
|
|
196
|
+
heroTitle?: string;
|
|
197
|
+
heroSubtitle?: string;
|
|
198
|
+
/** Media/press contact email shown in the contact block */
|
|
199
|
+
mediaContactEmail?: string;
|
|
200
|
+
/** Optional URL for a "Download brand kit" hero CTA (e.g. a zip asset) */
|
|
201
|
+
brandKitUrl?: string;
|
|
202
|
+
className?: string;
|
|
203
|
+
seoTitle?: string;
|
|
204
|
+
seoDescription?: string;
|
|
205
|
+
seoKeywords?: string;
|
|
206
|
+
/**
|
|
207
|
+
* Show a "Press Releases" section (published content pages tagged
|
|
208
|
+
* "press") above the downloadable assets. Self-hides when there are
|
|
209
|
+
* none. Default: true.
|
|
210
|
+
*/
|
|
211
|
+
showPressReleases?: boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Base path for press-release detail links — `${basePath}/${slug}`.
|
|
214
|
+
* Default: "/press".
|
|
215
|
+
*/
|
|
216
|
+
pressReleaseBasePath?: string;
|
|
217
|
+
/** Heading for the press-releases section. Default: "Press Releases". */
|
|
218
|
+
pressReleasesTitle?: string;
|
|
219
|
+
}
|
|
220
|
+
declare function PressKitPage(props: PressKitPageProps): react_jsx_runtime.JSX.Element;
|
|
221
|
+
|
|
222
|
+
interface ContractAsset {
|
|
223
|
+
id: string;
|
|
224
|
+
title: string;
|
|
225
|
+
slug: string;
|
|
226
|
+
description?: string | null;
|
|
227
|
+
fileUrl: string;
|
|
228
|
+
fileName?: string | null;
|
|
229
|
+
fileSize?: number | null;
|
|
230
|
+
mimeType?: string | null;
|
|
231
|
+
version?: string | null;
|
|
232
|
+
tags: string[];
|
|
233
|
+
sortOrder: number;
|
|
234
|
+
updatedAt: string;
|
|
235
|
+
}
|
|
236
|
+
interface ContractsPageProps {
|
|
237
|
+
productName?: string;
|
|
238
|
+
heroTitle?: string;
|
|
239
|
+
heroSubtitle?: string;
|
|
240
|
+
className?: string;
|
|
241
|
+
seoTitle?: string;
|
|
242
|
+
seoDescription?: string;
|
|
243
|
+
seoKeywords?: string;
|
|
244
|
+
}
|
|
245
|
+
declare function ContractsPage(props: ContractsPageProps): react_jsx_runtime.JSX.Element;
|
|
246
|
+
|
|
247
|
+
export { BlogListPage, type BlogListPageProps, BlogPostPage, type BlogPostPageProps, CaseStudiesListPage, type CaseStudiesListPageProps, CaseStudyPage, type CaseStudyPageProps, type ChangelogEntry, ChangelogPage, type ChangelogPageProps, type ContentPageData, type ContentPageListData, type ContentPageListItem, ContentRenderer, type ContractAsset, ContractsPage, type ContractsPageProps, type PressKitAsset, type PressKitAssetCategory, PressKitPage, type PressKitPageProps, type UseContentPageOptions, useContentPage, useContentPages };
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface ContentPageData {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
slug: string;
|
|
8
|
+
content: string;
|
|
9
|
+
contentFormat: string;
|
|
10
|
+
seoTitle?: string | null;
|
|
11
|
+
seoDescription?: string | null;
|
|
12
|
+
seoKeywords?: string | null;
|
|
13
|
+
lastUpdated: string;
|
|
14
|
+
version: number;
|
|
15
|
+
tags?: string[];
|
|
16
|
+
excerpt?: string | null;
|
|
17
|
+
thumbnail?: string | null;
|
|
18
|
+
author?: string | null;
|
|
19
|
+
publishedAt?: string | null;
|
|
20
|
+
readingTime?: number | null;
|
|
21
|
+
featured?: boolean;
|
|
22
|
+
category?: string | null;
|
|
23
|
+
}
|
|
24
|
+
interface ContentPageListItem {
|
|
25
|
+
id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
slug: string;
|
|
28
|
+
lastUpdated: string;
|
|
29
|
+
tags?: string[];
|
|
30
|
+
excerpt?: string | null;
|
|
31
|
+
thumbnail?: string | null;
|
|
32
|
+
author?: string | null;
|
|
33
|
+
publishedAt?: string | null;
|
|
34
|
+
readingTime?: number | null;
|
|
35
|
+
featured?: boolean;
|
|
36
|
+
category?: string | null;
|
|
37
|
+
seoDescription?: string | null;
|
|
38
|
+
}
|
|
39
|
+
interface ContentPageListData {
|
|
40
|
+
items: ContentPageListItem[];
|
|
41
|
+
total: number;
|
|
42
|
+
hasMore: boolean;
|
|
43
|
+
}
|
|
44
|
+
interface UseContentPageOptions {
|
|
45
|
+
/** Whether to use template variable replacement (resolvedContentPage) */
|
|
46
|
+
resolve?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Hook to fetch a single public content page by slug.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* const { data, loading, error } = useContentPage('privacy-policy');
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare function useContentPage(slug: string, options?: UseContentPageOptions): {
|
|
57
|
+
data: ContentPageData | null;
|
|
58
|
+
loading: boolean;
|
|
59
|
+
error: string | null;
|
|
60
|
+
refetch: () => void;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Hook to fetch a list of public content pages for the current product.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* const { data, loading } = useContentPages({ limit: 10 });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
declare function useContentPages(options?: {
|
|
71
|
+
limit?: number;
|
|
72
|
+
offset?: number;
|
|
73
|
+
}): {
|
|
74
|
+
data: ContentPageListData | null;
|
|
75
|
+
loading: boolean;
|
|
76
|
+
error: string | null;
|
|
77
|
+
refetch: () => void;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Content renderer component.
|
|
81
|
+
*
|
|
82
|
+
* - `markdown` (default): converts to HTML via {@link renderMarkdown}
|
|
83
|
+
* - `html`: rendered as-is (assumed already sanitized upstream)
|
|
84
|
+
* - anything else: plain-text fallback
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```tsx
|
|
88
|
+
* <ContentRenderer content={page.content} format={page.contentFormat} />
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function ContentRenderer({ content, format, className, }: {
|
|
92
|
+
content: string;
|
|
93
|
+
format?: string;
|
|
94
|
+
className?: string;
|
|
95
|
+
}): react_jsx_runtime.JSX.Element;
|
|
96
|
+
|
|
97
|
+
interface BlogListPageProps {
|
|
98
|
+
productName?: string;
|
|
99
|
+
heroTitle?: string;
|
|
100
|
+
heroSubtitle?: string;
|
|
101
|
+
blogPostBasePath?: string;
|
|
102
|
+
className?: string;
|
|
103
|
+
seoTitle?: string;
|
|
104
|
+
seoDescription?: string;
|
|
105
|
+
seoKeywords?: string;
|
|
106
|
+
}
|
|
107
|
+
interface BlogPostPageProps {
|
|
108
|
+
productName?: string;
|
|
109
|
+
blogListUrl?: string;
|
|
110
|
+
/** Back-link label. Default: "Back to Blog". Use e.g. "Back to Press"
|
|
111
|
+
* when reusing this renderer for a press release at /press/:slug. */
|
|
112
|
+
backLabel?: string;
|
|
113
|
+
className?: string;
|
|
114
|
+
}
|
|
115
|
+
declare function BlogListPage(props: BlogListPageProps): react_jsx_runtime.JSX.Element;
|
|
116
|
+
declare function BlogPostPage(props: BlogPostPageProps): react_jsx_runtime.JSX.Element;
|
|
117
|
+
|
|
118
|
+
interface CaseStudiesListPageProps {
|
|
119
|
+
productName?: string;
|
|
120
|
+
heroTitle?: string;
|
|
121
|
+
heroSubtitle?: string;
|
|
122
|
+
caseStudyBasePath?: string;
|
|
123
|
+
className?: string;
|
|
124
|
+
seoTitle?: string;
|
|
125
|
+
seoDescription?: string;
|
|
126
|
+
seoKeywords?: string;
|
|
127
|
+
}
|
|
128
|
+
interface CaseStudyPageProps {
|
|
129
|
+
productName?: string;
|
|
130
|
+
caseStudiesListUrl?: string;
|
|
131
|
+
/** Back-link label. Default: "Back to Case Studies". */
|
|
132
|
+
backLabel?: string;
|
|
133
|
+
className?: string;
|
|
134
|
+
}
|
|
135
|
+
declare function CaseStudiesListPage(props: CaseStudiesListPageProps): react_jsx_runtime.JSX.Element;
|
|
136
|
+
declare function CaseStudyPage(props: CaseStudyPageProps): react_jsx_runtime.JSX.Element;
|
|
137
|
+
|
|
138
|
+
interface ChangelogEntry {
|
|
139
|
+
/** Release date as an ISO string. */
|
|
140
|
+
date: string;
|
|
141
|
+
/** Version identifier, e.g. "1.2.0". */
|
|
142
|
+
version: string;
|
|
143
|
+
/** Entry headline. */
|
|
144
|
+
title: string;
|
|
145
|
+
/** Category used for filtering, e.g. "feature", "fix", "improvement". */
|
|
146
|
+
category: string;
|
|
147
|
+
/** Entry body — plain text, markdown, or a React node. */
|
|
148
|
+
content: ReactNode | string;
|
|
149
|
+
/** Optional tags for search and filtering. */
|
|
150
|
+
tags?: string[];
|
|
151
|
+
}
|
|
152
|
+
interface ChangelogPageProps {
|
|
153
|
+
productName?: string;
|
|
154
|
+
heroEyebrow?: string;
|
|
155
|
+
heroTitle?: string;
|
|
156
|
+
heroSubtitle?: string;
|
|
157
|
+
/** Optional bottom CTA. Rendered only when ctaHref + ctaLabel are provided. */
|
|
158
|
+
ctaTitle?: string;
|
|
159
|
+
ctaSubtitle?: string;
|
|
160
|
+
ctaHref?: string;
|
|
161
|
+
ctaLabel?: string;
|
|
162
|
+
className?: string;
|
|
163
|
+
seoTitle?: string;
|
|
164
|
+
seoDescription?: string;
|
|
165
|
+
seoKeywords?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Optional prop-driven entries. When provided, the component skips the CMS
|
|
168
|
+
* fetch and renders these entries with search, category filters, and
|
|
169
|
+
* pagination.
|
|
170
|
+
*/
|
|
171
|
+
entries?: ChangelogEntry[];
|
|
172
|
+
/** Number of entries per page in prop-driven mode. Defaults to 10. */
|
|
173
|
+
pageSize?: number;
|
|
174
|
+
}
|
|
175
|
+
declare function ChangelogPage(props: ChangelogPageProps): react_jsx_runtime.JSX.Element;
|
|
176
|
+
|
|
177
|
+
type PressKitAssetCategory = "LOGO" | "BANNER" | "SCREENSHOT" | "BROCHURE" | "DOCUMENT" | "PRESS_RELEASE" | "BRAND_GUIDE";
|
|
178
|
+
interface PressKitAsset {
|
|
179
|
+
id: string;
|
|
180
|
+
category: PressKitAssetCategory;
|
|
181
|
+
title: string;
|
|
182
|
+
slug: string;
|
|
183
|
+
description?: string | null;
|
|
184
|
+
fileUrl: string;
|
|
185
|
+
fileName?: string | null;
|
|
186
|
+
fileSize?: number | null;
|
|
187
|
+
mimeType?: string | null;
|
|
188
|
+
thumbnailUrl?: string | null;
|
|
189
|
+
version?: string | null;
|
|
190
|
+
tags: string[];
|
|
191
|
+
sortOrder: number;
|
|
192
|
+
updatedAt: string;
|
|
193
|
+
}
|
|
194
|
+
interface PressKitPageProps {
|
|
195
|
+
productName?: string;
|
|
196
|
+
heroTitle?: string;
|
|
197
|
+
heroSubtitle?: string;
|
|
198
|
+
/** Media/press contact email shown in the contact block */
|
|
199
|
+
mediaContactEmail?: string;
|
|
200
|
+
/** Optional URL for a "Download brand kit" hero CTA (e.g. a zip asset) */
|
|
201
|
+
brandKitUrl?: string;
|
|
202
|
+
className?: string;
|
|
203
|
+
seoTitle?: string;
|
|
204
|
+
seoDescription?: string;
|
|
205
|
+
seoKeywords?: string;
|
|
206
|
+
/**
|
|
207
|
+
* Show a "Press Releases" section (published content pages tagged
|
|
208
|
+
* "press") above the downloadable assets. Self-hides when there are
|
|
209
|
+
* none. Default: true.
|
|
210
|
+
*/
|
|
211
|
+
showPressReleases?: boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Base path for press-release detail links — `${basePath}/${slug}`.
|
|
214
|
+
* Default: "/press".
|
|
215
|
+
*/
|
|
216
|
+
pressReleaseBasePath?: string;
|
|
217
|
+
/** Heading for the press-releases section. Default: "Press Releases". */
|
|
218
|
+
pressReleasesTitle?: string;
|
|
219
|
+
}
|
|
220
|
+
declare function PressKitPage(props: PressKitPageProps): react_jsx_runtime.JSX.Element;
|
|
221
|
+
|
|
222
|
+
interface ContractAsset {
|
|
223
|
+
id: string;
|
|
224
|
+
title: string;
|
|
225
|
+
slug: string;
|
|
226
|
+
description?: string | null;
|
|
227
|
+
fileUrl: string;
|
|
228
|
+
fileName?: string | null;
|
|
229
|
+
fileSize?: number | null;
|
|
230
|
+
mimeType?: string | null;
|
|
231
|
+
version?: string | null;
|
|
232
|
+
tags: string[];
|
|
233
|
+
sortOrder: number;
|
|
234
|
+
updatedAt: string;
|
|
235
|
+
}
|
|
236
|
+
interface ContractsPageProps {
|
|
237
|
+
productName?: string;
|
|
238
|
+
heroTitle?: string;
|
|
239
|
+
heroSubtitle?: string;
|
|
240
|
+
className?: string;
|
|
241
|
+
seoTitle?: string;
|
|
242
|
+
seoDescription?: string;
|
|
243
|
+
seoKeywords?: string;
|
|
244
|
+
}
|
|
245
|
+
declare function ContractsPage(props: ContractsPageProps): react_jsx_runtime.JSX.Element;
|
|
246
|
+
|
|
247
|
+
export { BlogListPage, type BlogListPageProps, BlogPostPage, type BlogPostPageProps, CaseStudiesListPage, type CaseStudiesListPageProps, CaseStudyPage, type CaseStudyPageProps, type ChangelogEntry, ChangelogPage, type ChangelogPageProps, type ContentPageData, type ContentPageListData, type ContentPageListItem, ContentRenderer, type ContractAsset, ContractsPage, type ContractsPageProps, type PressKitAsset, type PressKitAssetCategory, PressKitPage, type PressKitPageProps, type UseContentPageOptions, useContentPage, useContentPages };
|