@se-studio/core-ui 1.0.14 → 1.0.16
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/README.md +87 -14
- package/dist/CmsRendererConfig.d.ts +122 -0
- package/dist/CmsRendererConfig.d.ts.map +1 -1
- package/dist/analytics/AnalyticsProvider.d.ts +7 -0
- package/dist/analytics/AnalyticsProvider.d.ts.map +1 -1
- package/dist/analytics/AnalyticsProvider.js +7 -0
- package/dist/analytics/AnalyticsProvider.js.map +1 -1
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts +4 -0
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts.map +1 -1
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js +5 -0
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js.map +1 -1
- package/dist/analytics/types.d.ts +23 -0
- package/dist/analytics/types.d.ts.map +1 -1
- package/dist/analytics/useAnalytics.d.ts +35 -0
- package/dist/analytics/useAnalytics.d.ts.map +1 -1
- package/dist/analytics/useAnalytics.js +35 -0
- package/dist/analytics/useAnalytics.js.map +1 -1
- package/dist/components/ClientMonitor.d.ts.map +1 -1
- package/dist/components/ClientMonitor.js +40 -0
- package/dist/components/ClientMonitor.js.map +1 -1
- package/dist/components/CmsCollection.d.ts +47 -0
- package/dist/components/CmsCollection.d.ts.map +1 -1
- package/dist/components/CmsCollection.js +7 -0
- package/dist/components/CmsCollection.js.map +1 -1
- package/dist/components/CmsComponent.d.ts +47 -0
- package/dist/components/CmsComponent.d.ts.map +1 -1
- package/dist/components/CmsComponent.js +7 -0
- package/dist/components/CmsComponent.js.map +1 -1
- package/dist/components/CmsContent.d.ts +62 -0
- package/dist/components/CmsContent.d.ts.map +1 -1
- package/dist/components/CmsContent.js +53 -0
- package/dist/components/CmsContent.js.map +1 -1
- package/dist/components/CmsConversionErrors.js +2 -0
- package/dist/components/CmsConversionErrors.js.map +1 -1
- package/dist/components/CmsEmbeddedContent.d.ts +3 -0
- package/dist/components/CmsEmbeddedContent.d.ts.map +1 -1
- package/dist/components/CmsEmbeddedContent.js +3 -0
- package/dist/components/CmsEmbeddedContent.js.map +1 -1
- package/dist/components/CmsExternalComponent.d.ts +44 -0
- package/dist/components/CmsExternalComponent.d.ts.map +1 -1
- package/dist/components/CmsExternalComponent.js +7 -0
- package/dist/components/CmsExternalComponent.js.map +1 -1
- package/dist/components/ImageKitClientVideo.js +1 -0
- package/dist/components/ImageKitClientVideo.js.map +1 -1
- package/dist/components/SvgComponent.js +3 -1
- package/dist/components/SvgComponent.js.map +1 -1
- package/dist/components/VisualComponent.d.ts +47 -0
- package/dist/components/VisualComponent.d.ts.map +1 -1
- package/dist/components/VisualComponent.js +47 -0
- package/dist/components/VisualComponent.js.map +1 -1
- package/dist/elements/TrackedLink.d.ts +8 -0
- package/dist/elements/TrackedLink.d.ts.map +1 -1
- package/dist/elements/TrackedLink.js +13 -0
- package/dist/elements/TrackedLink.js.map +1 -1
- package/dist/framework/BackgroundMedia.js +5 -1
- package/dist/framework/BackgroundMedia.js.map +1 -1
- package/dist/framework/ComponentErrorIndicator.js +7 -4
- package/dist/framework/ComponentErrorIndicator.js.map +1 -1
- package/dist/framework/componentErrors.d.ts +8 -0
- package/dist/framework/componentErrors.d.ts.map +1 -1
- package/dist/framework/componentErrors.js +10 -0
- package/dist/framework/componentErrors.js.map +1 -1
- package/dist/hooks/useClickTracking.d.ts +39 -0
- package/dist/hooks/useClickTracking.d.ts.map +1 -1
- package/dist/hooks/useClickTracking.js +29 -0
- package/dist/hooks/useClickTracking.js.map +1 -1
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -1
- package/dist/rtf/rtf.d.ts +41 -0
- package/dist/rtf/rtf.d.ts.map +1 -1
- package/dist/rtf/rtf.js +36 -0
- package/dist/rtf/rtf.js.map +1 -1
- package/dist/utils/UnsupportedWarning.d.ts +23 -0
- package/dist/utils/UnsupportedWarning.d.ts.map +1 -1
- package/dist/utils/UnsupportedWarning.js +24 -0
- package/dist/utils/UnsupportedWarning.js.map +1 -1
- package/dist/utils/UnusedChecker.d.ts +39 -0
- package/dist/utils/UnusedChecker.d.ts.map +1 -1
- package/dist/utils/UnusedChecker.js +47 -3
- package/dist/utils/UnusedChecker.js.map +1 -1
- package/dist/utils/buildPageMetadata.d.ts +45 -0
- package/dist/utils/buildPageMetadata.d.ts.map +1 -1
- package/dist/utils/buildPageMetadata.js +37 -0
- package/dist/utils/buildPageMetadata.js.map +1 -1
- package/dist/utils/cn.d.ts +26 -0
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/cn.js +26 -0
- package/dist/utils/cn.js.map +1 -1
- package/dist/utils/componentUtils.d.ts +121 -0
- package/dist/utils/componentUtils.d.ts.map +1 -1
- package/dist/utils/componentUtils.js +80 -0
- package/dist/utils/componentUtils.js.map +1 -1
- package/dist/utils/convertText.js +10 -2
- package/dist/utils/convertText.js.map +1 -1
- package/dist/utils/errorHandling.d.ts +27 -0
- package/dist/utils/errorHandling.d.ts.map +1 -1
- package/dist/utils/errorHandling.js +33 -0
- package/dist/utils/errorHandling.js.map +1 -1
- package/dist/utils/previewUtils.js +2 -0
- package/dist/utils/previewUtils.js.map +1 -1
- package/package.json +17 -4
|
@@ -3,13 +3,17 @@ import { usePathname } from 'next/navigation';
|
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
4
|
import { useDocumentVisible } from '../hooks/useDocumentVisible';
|
|
5
5
|
const _observers = new Map();
|
|
6
|
+
// Maps to store element metadata for scroll progress calculation
|
|
6
7
|
const _sectionHeights = new Map();
|
|
7
8
|
const _sectionThresholds = new Map();
|
|
9
|
+
// Dense thresholds for IntersectionObserver (0, 0.05, 0.1, ... 1.0)
|
|
8
10
|
const SECTION_THRESHOLDS = Array.from({ length: 21 }, (_, i) => i * 0.05);
|
|
11
|
+
// Tracking for tall elements that need scroll listener
|
|
9
12
|
const _intersectingTallElements = new Set();
|
|
10
13
|
let _scrollRAFId = null;
|
|
11
14
|
let _scrollListenerAttached = false;
|
|
12
15
|
const isDevelopment = process.env.NODE_ENV === 'development';
|
|
16
|
+
// Module-level debug flag, set by ClientMonitor component
|
|
13
17
|
let _debugEnabled = false;
|
|
14
18
|
function shouldDebug(element) {
|
|
15
19
|
if (!isDevelopment)
|
|
@@ -20,6 +24,7 @@ function shouldDebug(element) {
|
|
|
20
24
|
return true;
|
|
21
25
|
return false;
|
|
22
26
|
}
|
|
27
|
+
// Updates scroll progress for a single element (used by scroll handler)
|
|
23
28
|
function updateScrollProgress(element) {
|
|
24
29
|
const elementHeight = _sectionHeights.get(element);
|
|
25
30
|
const threshold = _sectionThresholds.get(element);
|
|
@@ -42,6 +47,7 @@ function updateScrollProgress(element) {
|
|
|
42
47
|
element.dataset.debugIsTallElement = 'true';
|
|
43
48
|
}
|
|
44
49
|
}
|
|
50
|
+
// RAF-throttled scroll handler for tall elements
|
|
45
51
|
function handleScroll() {
|
|
46
52
|
if (_scrollRAFId !== null)
|
|
47
53
|
return;
|
|
@@ -52,6 +58,7 @@ function handleScroll() {
|
|
|
52
58
|
}
|
|
53
59
|
});
|
|
54
60
|
}
|
|
61
|
+
// Attach scroll listener if not already attached
|
|
55
62
|
function attachScrollListener() {
|
|
56
63
|
if (!_scrollListenerAttached) {
|
|
57
64
|
window.addEventListener('scroll', handleScroll, { passive: true });
|
|
@@ -61,6 +68,7 @@ function attachScrollListener() {
|
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
70
|
}
|
|
71
|
+
// Detach scroll listener if no tall elements are being tracked
|
|
64
72
|
function detachScrollListener() {
|
|
65
73
|
if (_scrollListenerAttached && _intersectingTallElements.size === 0) {
|
|
66
74
|
window.removeEventListener('scroll', handleScroll);
|
|
@@ -90,21 +98,26 @@ function getElementThreshold(element, defaultThreshold) {
|
|
|
90
98
|
function handleVideo(video, isIntersecting) {
|
|
91
99
|
if (!isIntersecting) {
|
|
92
100
|
if (!video.paused) {
|
|
101
|
+
// console.log("pause video", video.src);
|
|
93
102
|
video.pause();
|
|
94
103
|
}
|
|
95
104
|
}
|
|
96
105
|
else if (video.paused) {
|
|
106
|
+
// console.log("play video", video.src);
|
|
97
107
|
video
|
|
98
108
|
.play()
|
|
99
109
|
.then(() => {
|
|
100
110
|
video.controls = false;
|
|
101
111
|
})
|
|
102
112
|
.catch(() => {
|
|
113
|
+
// console.log("failed to play", error);
|
|
114
|
+
// video.controls = true;
|
|
103
115
|
});
|
|
104
116
|
}
|
|
105
117
|
}
|
|
106
118
|
function handleAnimation(animation, isIntersecting) {
|
|
107
119
|
const currentState = animation.currentState;
|
|
120
|
+
// console.log('current state', currentState)
|
|
108
121
|
if (!isIntersecting) {
|
|
109
122
|
if (currentState === 'playing') {
|
|
110
123
|
animation.pause();
|
|
@@ -112,9 +125,11 @@ function handleAnimation(animation, isIntersecting) {
|
|
|
112
125
|
}
|
|
113
126
|
else {
|
|
114
127
|
if (currentState === 'paused') {
|
|
128
|
+
// console.log('play animation')
|
|
115
129
|
animation.play();
|
|
116
130
|
}
|
|
117
131
|
if (!currentState || currentState === 'loading') {
|
|
132
|
+
// console.log('set to autoplay')
|
|
118
133
|
if (animation.play) {
|
|
119
134
|
animation.play();
|
|
120
135
|
}
|
|
@@ -126,6 +141,7 @@ function handleAnimatedSection(section, isIntersecting, entry) {
|
|
|
126
141
|
const elementHeight = _sectionHeights.get(section);
|
|
127
142
|
const threshold = _sectionThresholds.get(section);
|
|
128
143
|
if (elementHeight === undefined || threshold === undefined) {
|
|
144
|
+
// Fallback to intersection-based behavior if height/threshold not available
|
|
129
145
|
section.dataset.visible = isIntersecting ? 'true' : 'false';
|
|
130
146
|
if (isIntersecting && !section.dataset.seen) {
|
|
131
147
|
section.dataset.seen = 'true';
|
|
@@ -143,15 +159,18 @@ function handleAnimatedSection(section, isIntersecting, entry) {
|
|
|
143
159
|
return;
|
|
144
160
|
}
|
|
145
161
|
const isTallElement = elementHeight > window.innerHeight;
|
|
162
|
+
// For tall elements, use scroll listener for continuous tracking
|
|
146
163
|
if (isTallElement) {
|
|
147
164
|
if (isIntersecting) {
|
|
148
165
|
_intersectingTallElements.add(section);
|
|
149
166
|
attachScrollListener();
|
|
167
|
+
// Immediately update scroll progress
|
|
150
168
|
updateScrollProgress(section);
|
|
151
169
|
}
|
|
152
170
|
else {
|
|
153
171
|
_intersectingTallElements.delete(section);
|
|
154
172
|
detachScrollListener();
|
|
173
|
+
// Mark as not visible when leaving viewport
|
|
155
174
|
section.dataset.visible = 'false';
|
|
156
175
|
}
|
|
157
176
|
if (shouldDebug(section)) {
|
|
@@ -161,6 +180,7 @@ function handleAnimatedSection(section, isIntersecting, entry) {
|
|
|
161
180
|
}
|
|
162
181
|
return;
|
|
163
182
|
}
|
|
183
|
+
// For normal-sized elements, IntersectionObserver provides enough granularity
|
|
164
184
|
const scrollProgress = (window.innerHeight - entry.boundingClientRect.top) / elementHeight;
|
|
165
185
|
const shouldTrigger = scrollProgress >= threshold;
|
|
166
186
|
section.dataset.visible = shouldTrigger ? 'true' : 'false';
|
|
@@ -181,6 +201,7 @@ function handleAnimatedSection(section, isIntersecting, entry) {
|
|
|
181
201
|
}
|
|
182
202
|
function intersectionHandler(entries) {
|
|
183
203
|
for (const entry of entries) {
|
|
204
|
+
// console.log("target", entry.target.localName, entry.target);
|
|
184
205
|
const target = entry.target;
|
|
185
206
|
switch (target.localName) {
|
|
186
207
|
case 'video':
|
|
@@ -232,6 +253,7 @@ function findAllVideos(defaultThreshold) {
|
|
|
232
253
|
observer.observe(video);
|
|
233
254
|
}
|
|
234
255
|
return () => {
|
|
256
|
+
// console.log("clear down video observers");
|
|
235
257
|
for (const [observer, videoList] of videoObservers) {
|
|
236
258
|
for (const video of videoList) {
|
|
237
259
|
observer.unobserve(video);
|
|
@@ -261,6 +283,7 @@ function findAllAnimations(defaultThreshold) {
|
|
|
261
283
|
observer.observe(animation);
|
|
262
284
|
}
|
|
263
285
|
return () => {
|
|
286
|
+
// console.log("clear down animation observers");
|
|
264
287
|
for (const [observer, animationList] of animationObservers) {
|
|
265
288
|
for (const animation of animationList) {
|
|
266
289
|
observer.unobserve(animation);
|
|
@@ -274,12 +297,15 @@ function findAllAnimatedSections(defaultThreshold) {
|
|
|
274
297
|
if (shouldDebug()) {
|
|
275
298
|
console.log(`[ClientMonitor] Found ${sections.length} animated section(s)`);
|
|
276
299
|
}
|
|
300
|
+
// Create a shared observer with dense thresholds for all sections
|
|
301
|
+
// This gives us callbacks at every 5% intersection change
|
|
277
302
|
const sectionObserver = new IntersectionObserver((entries) => {
|
|
278
303
|
for (const entry of entries) {
|
|
279
304
|
const element = entry.target;
|
|
280
305
|
handleAnimatedSection(element, entry.isIntersecting, entry);
|
|
281
306
|
}
|
|
282
307
|
}, { threshold: SECTION_THRESHOLDS });
|
|
308
|
+
// Set up ResizeObserver to track element heights
|
|
283
309
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
284
310
|
for (const entry of entries) {
|
|
285
311
|
const element = entry.target;
|
|
@@ -288,26 +314,39 @@ function findAllAnimatedSections(defaultThreshold) {
|
|
|
288
314
|
});
|
|
289
315
|
for (const section of sections) {
|
|
290
316
|
const sectionElement = section;
|
|
317
|
+
// Skip elements that are excluded from animation
|
|
318
|
+
if (sectionElement.hasAttribute('data-exclude-animation')) {
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
291
321
|
const threshold = getElementThreshold(sectionElement, defaultThreshold);
|
|
322
|
+
// Store threshold for this element
|
|
292
323
|
_sectionThresholds.set(sectionElement, threshold);
|
|
324
|
+
// Get initial height and store it
|
|
293
325
|
const height = sectionElement.offsetHeight;
|
|
294
326
|
_sectionHeights.set(sectionElement, height);
|
|
327
|
+
// Observe element for size changes
|
|
295
328
|
resizeObserver.observe(sectionElement);
|
|
329
|
+
// Track element for cleanup
|
|
296
330
|
sectionElements.push(sectionElement);
|
|
297
331
|
if (shouldDebug(sectionElement)) {
|
|
298
332
|
sectionElement.setAttribute('data-monitor-threshold', threshold.toString());
|
|
299
333
|
sectionElement.setAttribute('data-monitor-observed', 'true');
|
|
300
334
|
}
|
|
335
|
+
// Observe with shared dense-threshold observer
|
|
301
336
|
sectionObserver.observe(sectionElement);
|
|
302
337
|
}
|
|
303
338
|
return () => {
|
|
339
|
+
// Clean up IntersectionObserver
|
|
304
340
|
sectionObserver.disconnect();
|
|
341
|
+
// Clean up ResizeObserver and maps
|
|
305
342
|
for (const sectionElement of sectionElements) {
|
|
306
343
|
resizeObserver.unobserve(sectionElement);
|
|
307
344
|
_sectionHeights.delete(sectionElement);
|
|
308
345
|
_sectionThresholds.delete(sectionElement);
|
|
346
|
+
// Remove from tall element tracking if present
|
|
309
347
|
_intersectingTallElements.delete(sectionElement);
|
|
310
348
|
}
|
|
349
|
+
// Clean up scroll listener
|
|
311
350
|
if (_scrollListenerAttached) {
|
|
312
351
|
window.removeEventListener('scroll', handleScroll);
|
|
313
352
|
_scrollListenerAttached = false;
|
|
@@ -332,6 +371,7 @@ function findAll(defaultThreshold) {
|
|
|
332
371
|
};
|
|
333
372
|
}
|
|
334
373
|
export const ClientMonitor = ({ defaultThreshold = 0.2, enableDebug = false, }) => {
|
|
374
|
+
// Set module-level flag on mount/update
|
|
335
375
|
_debugEnabled = enableDebug;
|
|
336
376
|
const isDocumentVisible = useDocumentVisible();
|
|
337
377
|
const pathname = usePathname();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientMonitor.js","sourceRoot":"","sources":["../../src/components/ClientMonitor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClientMonitor.js","sourceRoot":"","sources":["../../src/components/ClientMonitor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: Any is allowed */
|
|
1
2
|
import type { IBaseCollection, IContentContext, ITyped } from '@se-studio/core-data-types';
|
|
2
3
|
import type React from 'react';
|
|
3
4
|
import type { CmsRendererConfig } from '../CmsRendererConfig';
|
|
@@ -7,8 +8,54 @@ export type CollectionRendererProps<TInformation extends ITyped> = {
|
|
|
7
8
|
contentContext: IContentContext;
|
|
8
9
|
rendererConfig: CmsRendererConfig;
|
|
9
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Standard collection renderer type for rendering collections in the main content flow.
|
|
13
|
+
* Used for collections that appear as top-level page content.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const MyCollectionRenderer: CollectionRenderer<IMyCollection> = ({
|
|
18
|
+
* information,
|
|
19
|
+
* contentContext,
|
|
20
|
+
* rendererConfig
|
|
21
|
+
* }) => {
|
|
22
|
+
* return <div>{information.title}</div>;
|
|
23
|
+
* };
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
10
26
|
export type CollectionRenderer<TInformation extends ITyped> = React.FC<CollectionRendererProps<TInformation>>;
|
|
27
|
+
/**
|
|
28
|
+
* Embedded collection renderer type for rendering collections within rich text or other collections.
|
|
29
|
+
* Includes additional props for positioning and tracking embedded content.
|
|
30
|
+
*
|
|
31
|
+
* Use this type when defining custom collection renderers that can be embedded within RTF fields
|
|
32
|
+
* or nested inside other collections.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const MyEmbeddedCollectionRenderer: EmbeddedCollectionRenderer<IMyCollection> = ({
|
|
37
|
+
* information,
|
|
38
|
+
* contentContext,
|
|
39
|
+
* rendererConfig,
|
|
40
|
+
* positionClassName,
|
|
41
|
+
* embeddedIndex,
|
|
42
|
+
* parentIndex
|
|
43
|
+
* }) => {
|
|
44
|
+
* return (
|
|
45
|
+
* <div className={positionClassName}>
|
|
46
|
+
* {information.title} (Position: {embeddedIndex})
|
|
47
|
+
* </div>
|
|
48
|
+
* );
|
|
49
|
+
* };
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
11
52
|
export type EmbeddedCollectionRenderer<TInformation extends ITyped = ITyped> = React.FC<CollectionRendererProps<TInformation> & EmbeddedRendererProps>;
|
|
53
|
+
/**
|
|
54
|
+
* Collection type mapper for rendering collections.
|
|
55
|
+
* Maps collection type strings to React components that can render them.
|
|
56
|
+
*
|
|
57
|
+
* Projects should provide their own CollectionMap when calling CmsCollection.
|
|
58
|
+
*/
|
|
12
59
|
export type CollectionMap<TKey extends string, TInformation extends ITyped> = Partial<Record<TKey, CollectionRenderer<TInformation>>>;
|
|
13
60
|
export type EmbeddedCollectionMap<TKey extends string, TInformation extends IBaseCollection> = Partial<Record<TKey, EmbeddedCollectionRenderer<TInformation>>>;
|
|
14
61
|
export declare const CmsCollection: CollectionRenderer<IBaseCollection>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsCollection.d.ts","sourceRoot":"","sources":["../../src/components/CmsCollection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CmsCollection.d.ts","sourceRoot":"","sources":["../../src/components/CmsCollection.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,uBAAuB,CAAC,YAAY,SAAS,MAAM,IAAI;IACjE,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,iBAAiB,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,kBAAkB,CAAC,YAAY,SAAS,MAAM,IAAI,KAAK,CAAC,EAAE,CACpE,uBAAuB,CAAC,YAAY,CAAC,CACtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,0BAA0B,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,EAAE,CACrF,uBAAuB,CAAC,YAAY,CAAC,GAAG,qBAAqB,CAC9D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,IAAI,SAAS,MAAM,EAAE,YAAY,SAAS,MAAM,IAAI,OAAO,CACnF,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAC/C,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,IAAI,SAAS,MAAM,EACnB,YAAY,SAAS,eAAe,IAClC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AA8CpE,eAAO,MAAM,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAyD7D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,0BAA0B,CAAC,eAAe,CA0D7E,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Error component displayed in development/preview mode when an unknown collection type is encountered
|
|
4
|
+
*/
|
|
2
5
|
const CollectionTypeError = ({ information, availableTypes, showInProduction = false, }) => {
|
|
3
6
|
if (!showInProduction && typeof process !== 'undefined' && process.env?.NODE_ENV === 'production')
|
|
4
7
|
return null;
|
|
@@ -17,8 +20,10 @@ export const CmsCollection = ({ information, contentContext, rendererConfig, })
|
|
|
17
20
|
const result = (_jsx(Element, { information: information, contentContext: contentContext, rendererConfig: rendererConfig }));
|
|
18
21
|
return result;
|
|
19
22
|
}
|
|
23
|
+
// Log unknown collection type for monitoring
|
|
20
24
|
const availableTypes = Object.keys(collectionMap);
|
|
21
25
|
console.log(`Unknown collection type: ${String(information.collectionType)} (ID: ${information.id}). Available types:`, availableTypes.join(','));
|
|
26
|
+
// Show warning in development/preview mode, use Generic fallback
|
|
22
27
|
const shouldShowError = showUnknownTypeErrors ||
|
|
23
28
|
(typeof process !== 'undefined' && process.env?.NODE_ENV === 'development');
|
|
24
29
|
const result = (_jsxs(_Fragment, { children: [shouldShowError && (_jsx(CollectionTypeError, { information: information, availableTypes: availableTypes, showInProduction: showUnknownTypeErrors })), DefaultRenderer && (_jsx(DefaultRenderer, { information: information, contentContext: contentContext, rendererConfig: rendererConfig }))] }));
|
|
@@ -31,8 +36,10 @@ export const CmsEmbeddedCollection = ({ information, rendererConfig, contentCont
|
|
|
31
36
|
const result = (_jsx(Element, { information: information, rendererConfig: rendererConfig, contentContext: contentContext, ...props }));
|
|
32
37
|
return result;
|
|
33
38
|
}
|
|
39
|
+
// Log unknown collection type for monitoring
|
|
34
40
|
const availableTypes = Object.keys(embeddedCollectionMap);
|
|
35
41
|
console.log(`Unknown embedded collection type: ${String(information.collectionType)} (ID: ${information.id}). Available types:`, availableTypes.join(','));
|
|
42
|
+
// Show warning in development/preview mode, use Generic fallback
|
|
36
43
|
const shouldShowError = showUnknownTypeErrors ||
|
|
37
44
|
(typeof process !== 'undefined' && process.env?.NODE_ENV === 'development');
|
|
38
45
|
const result = (_jsxs(_Fragment, { children: [shouldShowError && (_jsx(CollectionTypeError, { information: information, availableTypes: availableTypes, showInProduction: showUnknownTypeErrors })), DefaultRenderer && (_jsx(DefaultRenderer, { information: information, contentContext: contentContext, rendererConfig: rendererConfig }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsCollection.js","sourceRoot":"","sources":["../../src/components/CmsCollection.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"CmsCollection.js","sourceRoot":"","sources":["../../src/components/CmsCollection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: Any is allowed */
|
|
1
2
|
import type { IBaseComponent, IContentContext, ITyped } from '@se-studio/core-data-types';
|
|
2
3
|
import type React from 'react';
|
|
3
4
|
import type { CmsRendererConfig } from '../CmsRendererConfig';
|
|
@@ -7,8 +8,54 @@ export type ComponentRendererProps<TInformation extends ITyped> = {
|
|
|
7
8
|
contentContext: IContentContext;
|
|
8
9
|
rendererConfig: CmsRendererConfig;
|
|
9
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Standard component renderer type for rendering components in the main content flow.
|
|
13
|
+
* Used for components that appear as top-level page content.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const MyComponentRenderer: ComponentRenderer<IMyComponent> = ({
|
|
18
|
+
* information,
|
|
19
|
+
* contentContext,
|
|
20
|
+
* rendererConfig
|
|
21
|
+
* }) => {
|
|
22
|
+
* return <div>{information.heading}</div>;
|
|
23
|
+
* };
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
10
26
|
export type ComponentRenderer<TInformation extends ITyped> = React.FC<ComponentRendererProps<TInformation>>;
|
|
27
|
+
/**
|
|
28
|
+
* Embedded component renderer type for rendering components within rich text or collections.
|
|
29
|
+
* Includes additional props for positioning and tracking embedded content.
|
|
30
|
+
*
|
|
31
|
+
* Use this type when defining custom component renderers that can be embedded within RTF fields
|
|
32
|
+
* or nested inside collections.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const MyEmbeddedComponentRenderer: EmbeddedComponentRenderer<IMyComponent> = ({
|
|
37
|
+
* information,
|
|
38
|
+
* contentContext,
|
|
39
|
+
* rendererConfig,
|
|
40
|
+
* positionClassName,
|
|
41
|
+
* embeddedIndex,
|
|
42
|
+
* parentIndex
|
|
43
|
+
* }) => {
|
|
44
|
+
* return (
|
|
45
|
+
* <div className={positionClassName}>
|
|
46
|
+
* {information.heading} (Embedded #{embeddedIndex})
|
|
47
|
+
* </div>
|
|
48
|
+
* );
|
|
49
|
+
* };
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
11
52
|
export type EmbeddedComponentRenderer<TInformation extends ITyped = ITyped> = React.FC<ComponentRendererProps<TInformation> & EmbeddedRendererProps>;
|
|
53
|
+
/**
|
|
54
|
+
* Component type mapper for rendering components.
|
|
55
|
+
* Maps component type strings to React components that can render them.
|
|
56
|
+
*
|
|
57
|
+
* Projects should provide their own ComponentMap when calling CmsComponent.
|
|
58
|
+
*/
|
|
12
59
|
export type ComponentMap<TKey extends string, TInformation extends ITyped> = Partial<Record<TKey, ComponentRenderer<TInformation>>>;
|
|
13
60
|
export type EmbeddedComponentMap<TKey extends string, TInformation extends ITyped> = Partial<Record<TKey, EmbeddedComponentRenderer<TInformation>>>;
|
|
14
61
|
export declare const CmsComponent: ComponentRenderer<IBaseComponent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsComponent.d.ts","sourceRoot":"","sources":["../../src/components/CmsComponent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CmsComponent.d.ts","sourceRoot":"","sources":["../../src/components/CmsComponent.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,sBAAsB,CAAC,YAAY,SAAS,MAAM,IAAI;IAChE,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,iBAAiB,CAAC;CACnC,CAAC;AACF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,SAAS,MAAM,IAAI,KAAK,CAAC,EAAE,CACnE,sBAAsB,CAAC,YAAY,CAAC,CACrC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,yBAAyB,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,EAAE,CACpF,sBAAsB,CAAC,YAAY,CAAC,GAAG,qBAAqB,CAC7D,CAAC;AACF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,YAAY,SAAS,MAAM,IAAI,OAAO,CAClF,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAC9C,CAAC;AACF,MAAM,MAAM,oBAAoB,CAAC,IAAI,SAAS,MAAM,EAAE,YAAY,SAAS,MAAM,IAAI,OAAO,CAC1F,MAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC,CACtD,CAAC;AA8CF,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAyD1D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,yBAAyB,CAAC,cAAc,CA0D1E,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Error component displayed in development/preview mode when an unknown component type is encountered
|
|
4
|
+
*/
|
|
2
5
|
const ComponentTypeError = ({ information, availableTypes, showInProduction = false, }) => {
|
|
3
6
|
if (!showInProduction && typeof process !== 'undefined' && process.env?.NODE_ENV === 'production')
|
|
4
7
|
return null;
|
|
@@ -17,8 +20,10 @@ export const CmsComponent = ({ information, contentContext, rendererConfig, }) =
|
|
|
17
20
|
const result = (_jsx(Element, { information: information, contentContext: contentContext, rendererConfig: rendererConfig }));
|
|
18
21
|
return result;
|
|
19
22
|
}
|
|
23
|
+
// Log unknown component type for monitoring
|
|
20
24
|
const availableTypes = Object.keys(componentMap);
|
|
21
25
|
console.log(`Unknown component type: ${String(information.componentType)} (ID: ${information.id}). Available types:`, availableTypes.join(','));
|
|
26
|
+
// Show warning in development/preview mode, use Generic fallback
|
|
22
27
|
const shouldShowError = showUnknownTypeErrors ||
|
|
23
28
|
(typeof process !== 'undefined' && process.env?.NODE_ENV === 'development');
|
|
24
29
|
const result = (_jsxs(_Fragment, { children: [shouldShowError && (_jsx(ComponentTypeError, { information: information, availableTypes: availableTypes, showInProduction: showUnknownTypeErrors })), DefaultRenderer && (_jsx(DefaultRenderer, { information: information, contentContext: contentContext, rendererConfig: rendererConfig }))] }));
|
|
@@ -31,8 +36,10 @@ export const CmsEmbeddedComponent = ({ information, contentContext, rendererConf
|
|
|
31
36
|
const result = (_jsx(Element, { information: information, contentContext: contentContext, rendererConfig: rendererConfig, ...props }));
|
|
32
37
|
return result;
|
|
33
38
|
}
|
|
39
|
+
// Log unknown component type for monitoring
|
|
34
40
|
const availableTypes = Object.keys(embeddedComponentMap);
|
|
35
41
|
console.log(`Unknown embedded component type: ${String(information.componentType)} (ID: ${information.id}). Available types:`, availableTypes.join(','));
|
|
42
|
+
// Show warning in development/preview mode, use Generic fallback
|
|
36
43
|
const shouldShowError = showUnknownTypeErrors ||
|
|
37
44
|
(typeof process !== 'undefined' && process.env?.NODE_ENV === 'development');
|
|
38
45
|
const result = (_jsxs(_Fragment, { children: [shouldShowError && (_jsx(ComponentTypeError, { information: information, availableTypes: availableTypes, showInProduction: showUnknownTypeErrors })), DefaultRenderer && (_jsx(DefaultRenderer, { information: information, contentContext: contentContext, rendererConfig: rendererConfig }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsComponent.js","sourceRoot":"","sources":["../../src/components/CmsComponent.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"CmsComponent.js","sourceRoot":"","sources":["../../src/components/CmsComponent.tsx"],"names":[],"mappings":";AAwEA;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,EAC1B,WAAW,EACX,cAAc,EACd,gBAAgB,GAAG,KAAK,GAKzB,EAAE,EAAE;IACH,IAAI,CAAC,gBAAgB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,YAAY;QAC/F,OAAO,IAAI,CAAC;IAEd,OAAO,CACL,eACE,KAAK,EAAE;YACL,MAAM,EAAE,kBAAkB;YAC1B,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,KAAK;SACpB,aAED,aAAI,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,uCAA6B,EACpF,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAClC,wBACE,+CAAgC,OAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IACjE,EACJ,wBACE,6CAA8B,OAAE,WAAW,CAAC,EAAE,IAC5C,EACJ,wBACE,gDAAiC,OAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAC1D,EACJ,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,+FAE/C,IACA,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAsC,CAAC,EAC9D,WAAW,EACX,cAAc,EACd,cAAc,GACf,EAAE,EAAE;IACH,MAAM,EACJ,qBAAqB,EACrB,YAAY,EACZ,wBAAwB,EAAE,eAAe,GAC1C,GAAG,cAAc,CAAC;IAEnB,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAExD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,CACb,KAAC,OAAO,IACN,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,4CAA4C;IAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CACT,2BAA2B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,WAAW,CAAC,EAAE,qBAAqB,EACxG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CACzB,CAAC;IAEF,iEAAiE;IACjE,MAAM,eAAe,GACnB,qBAAqB;QACrB,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,aAAa,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG,CACb,8BACG,eAAe,IAAI,CAClB,KAAC,kBAAkB,IACjB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,qBAAqB,GACvC,CACH,EACA,eAAe,IAAI,CAClB,KAAC,eAAe,IACd,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC9B,CACH,IACA,CACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA8C,CAAC,EAC9E,WAAW,EACX,cAAc,EACd,cAAc,EACd,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EACJ,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EAAE,eAAe,GAC1C,GAAG,cAAc,CAAC;IAEnB,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAChE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,CACb,KAAC,OAAO,IACN,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,KAC1B,KAAK,GACT,CACH,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,4CAA4C;IAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CACT,oCAAoC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,WAAW,CAAC,EAAE,qBAAqB,EACjH,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CACzB,CAAC;IAEF,iEAAiE;IACjE,MAAM,eAAe,GACnB,qBAAqB;QACrB,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,aAAa,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG,CACb,8BACG,eAAe,IAAI,CAClB,KAAC,kBAAkB,IACjB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,qBAAqB,GACvC,CACH,EACA,eAAe,IAAI,CAClB,KAAC,eAAe,IACd,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC9B,CACH,IACA,CACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,19 +1,39 @@
|
|
|
1
1
|
import type { IContentContext, IPageContext, ITyped, IVisual } from '@se-studio/core-data-types';
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
import type { CmsRendererConfig } from '../CmsRendererConfig';
|
|
4
|
+
/**
|
|
5
|
+
* Visual component renderer type
|
|
6
|
+
*/
|
|
4
7
|
export type VisualComponentRenderer = React.FC<{
|
|
5
8
|
information: IVisual;
|
|
6
9
|
contentContext: IContentContext;
|
|
7
10
|
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Internal link renderer type
|
|
13
|
+
*/
|
|
8
14
|
export type InternalLinkRenderer = React.FC<{
|
|
9
15
|
information: unknown;
|
|
10
16
|
contentContext: IContentContext;
|
|
11
17
|
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Additional props provided to embedded content renderers (collections, components, and external components)
|
|
20
|
+
* when they are rendered within rich text fields or other collections.
|
|
21
|
+
*
|
|
22
|
+
* These props allow embedded renderers to apply appropriate styling and track their position
|
|
23
|
+
* for analytics, animations, or other positional logic.
|
|
24
|
+
*
|
|
25
|
+
* @property positionClassName - CSS class name(s) for positioning the embedded content (e.g., "w-full col-span-full" for full-width grid items)
|
|
26
|
+
* @property embeddedIndex - Zero-based index of this embedded content among its siblings (e.g., 0 for the first embedded entry, 1 for the second)
|
|
27
|
+
* @property parentIndex - Index or depth of the parent container (e.g., 0 for root-level RTF content, higher values for nested collections)
|
|
28
|
+
*/
|
|
12
29
|
export type EmbeddedRendererProps = {
|
|
13
30
|
positionClassName: string;
|
|
14
31
|
embeddedIndex: number;
|
|
15
32
|
parentIndex: number;
|
|
16
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Error display component for rendering errors in development mode
|
|
36
|
+
*/
|
|
17
37
|
export declare const ContentError: ({ error, content, showInProduction, }: {
|
|
18
38
|
error: Error;
|
|
19
39
|
content: {
|
|
@@ -22,6 +42,48 @@ export declare const ContentError: ({ error, content, showInProduction, }: {
|
|
|
22
42
|
};
|
|
23
43
|
showInProduction?: boolean;
|
|
24
44
|
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
45
|
+
/**
|
|
46
|
+
* Main content renderer that renders an array of page content items.
|
|
47
|
+
*
|
|
48
|
+
* @example Basic usage
|
|
49
|
+
* ```tsx
|
|
50
|
+
* import { createCmsRendererConfig } from "@se-studio/core-ui";
|
|
51
|
+
*
|
|
52
|
+
* const rendererConfig = createCmsRendererConfig<MyProjectConfig>({
|
|
53
|
+
* componentMap: {
|
|
54
|
+
* "Hero": HeroComponent,
|
|
55
|
+
* "CTA": CTAComponent,
|
|
56
|
+
* },
|
|
57
|
+
* collectionMap: {
|
|
58
|
+
* "FAQs": FAQCollection,
|
|
59
|
+
* },
|
|
60
|
+
* showUnknownTypeErrors: process.env.NODE_ENV === 'development',
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* <CmsContent
|
|
64
|
+
* rendererConfig={rendererConfig}
|
|
65
|
+
* pageContext={pageContext}
|
|
66
|
+
* contents={page.contents}
|
|
67
|
+
* />
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @example With all renderer types
|
|
71
|
+
* ```tsx
|
|
72
|
+
* const rendererConfig = createCmsRendererConfig<MyProjectConfig>({
|
|
73
|
+
* componentMap: { ... },
|
|
74
|
+
* collectionMap: { ... },
|
|
75
|
+
* externalComponentMap: { ... },
|
|
76
|
+
* visualComponentRenderer: VisualRenderer,
|
|
77
|
+
* internalLinkRenderer: InternalLinkRenderer,
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* <CmsContent
|
|
81
|
+
* rendererConfig={rendererConfig}
|
|
82
|
+
* pageContext={pageContext}
|
|
83
|
+
* contents={page.contents}
|
|
84
|
+
* />
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
25
87
|
export declare function CmsContent({ pageContext, contents, rendererConfig, }: {
|
|
26
88
|
pageContext: IPageContext;
|
|
27
89
|
contents?: ReadonlyArray<ITyped>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsContent.d.ts","sourceRoot":"","sources":["../../src/components/CmsContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,eAAe,EACf,YAAY,EACZ,MAAM,EACN,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"CmsContent.d.ts","sourceRoot":"","sources":["../../src/components/CmsContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,eAAe,EACf,YAAY,EACZ,MAAM,EACN,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAwB9D;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,EAAE,CAAC;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,eAAe,CAAC;CACjC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,eAAe,CAAC;CACjC,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,uCAI1B;IACD,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,mDA0CA,CAAC;AAkIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,EAAE;IACD,WAAW,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,EAAE,iBAAiB,CAAC;CACnC,kDAmBA"}
|