@se-studio/core-ui 0.0.0-next16-20260822103555
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/ANALYTICS.md +160 -0
- package/CHANGELOG.md +2565 -0
- package/CMS_INFRASTRUCTURE.md +370 -0
- package/CONSENT.md +121 -0
- package/README.md +638 -0
- package/dist/CmsRendererConfig.d.ts +259 -0
- package/dist/CmsRendererConfig.d.ts.map +1 -0
- package/dist/CmsRendererConfig.js +2 -0
- package/dist/CmsRendererConfig.js.map +1 -0
- package/dist/__mocks__/server-only.d.ts +2 -0
- package/dist/__mocks__/server-only.d.ts.map +1 -0
- package/dist/__mocks__/server-only.js +2 -0
- package/dist/__mocks__/server-only.js.map +1 -0
- package/dist/analytics/AnalyticsPageTracker.d.ts +11 -0
- package/dist/analytics/AnalyticsPageTracker.d.ts.map +1 -0
- package/dist/analytics/AnalyticsPageTracker.js +26 -0
- package/dist/analytics/AnalyticsPageTracker.js.map +1 -0
- package/dist/analytics/AnalyticsProvider.d.ts +18 -0
- package/dist/analytics/AnalyticsProvider.d.ts.map +1 -0
- package/dist/analytics/AnalyticsProvider.js +48 -0
- package/dist/analytics/AnalyticsProvider.js.map +1 -0
- package/dist/analytics/adapters/CompositeAnalyticsAdapter.d.ts +13 -0
- package/dist/analytics/adapters/CompositeAnalyticsAdapter.d.ts.map +1 -0
- package/dist/analytics/adapters/CompositeAnalyticsAdapter.js +35 -0
- package/dist/analytics/adapters/CompositeAnalyticsAdapter.js.map +1 -0
- package/dist/analytics/adapters/ConsentAwareAdapter.d.ts +20 -0
- package/dist/analytics/adapters/ConsentAwareAdapter.d.ts.map +1 -0
- package/dist/analytics/adapters/ConsentAwareAdapter.js +35 -0
- package/dist/analytics/adapters/ConsentAwareAdapter.js.map +1 -0
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts +12 -0
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts.map +1 -0
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js +22 -0
- package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js.map +1 -0
- package/dist/analytics/adapters/GoogleTagManagerAdapter.d.ts +53 -0
- package/dist/analytics/adapters/GoogleTagManagerAdapter.d.ts.map +1 -0
- package/dist/analytics/adapters/GoogleTagManagerAdapter.js +134 -0
- package/dist/analytics/adapters/GoogleTagManagerAdapter.js.map +1 -0
- package/dist/analytics/adapters/index.d.ts +5 -0
- package/dist/analytics/adapters/index.d.ts.map +1 -0
- package/dist/analytics/adapters/index.js +5 -0
- package/dist/analytics/adapters/index.js.map +1 -0
- package/dist/analytics/types.d.ts +42 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +2 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/analytics/useAnalytics.d.ts +44 -0
- package/dist/analytics/useAnalytics.d.ts.map +1 -0
- package/dist/analytics/useAnalytics.js +69 -0
- package/dist/analytics/useAnalytics.js.map +1 -0
- package/dist/analytics/video/classifySeek.d.ts +15 -0
- package/dist/analytics/video/classifySeek.d.ts.map +1 -0
- package/dist/analytics/video/classifySeek.js +32 -0
- package/dist/analytics/video/classifySeek.js.map +1 -0
- package/dist/analytics/video/createVideoEngagementSession.d.ts +51 -0
- package/dist/analytics/video/createVideoEngagementSession.d.ts.map +1 -0
- package/dist/analytics/video/createVideoEngagementSession.js +225 -0
- package/dist/analytics/video/createVideoEngagementSession.js.map +1 -0
- package/dist/analytics/video/index.d.ts +6 -0
- package/dist/analytics/video/index.d.ts.map +1 -0
- package/dist/analytics/video/index.js +6 -0
- package/dist/analytics/video/index.js.map +1 -0
- package/dist/analytics/video/loadYouTubeIframeApi.d.ts +50 -0
- package/dist/analytics/video/loadYouTubeIframeApi.d.ts.map +1 -0
- package/dist/analytics/video/loadYouTubeIframeApi.js +52 -0
- package/dist/analytics/video/loadYouTubeIframeApi.js.map +1 -0
- package/dist/analytics/video/useHtml5VideoEngagement.d.ts +8 -0
- package/dist/analytics/video/useHtml5VideoEngagement.d.ts.map +1 -0
- package/dist/analytics/video/useHtml5VideoEngagement.js +67 -0
- package/dist/analytics/video/useHtml5VideoEngagement.js.map +1 -0
- package/dist/analytics/video/useVideoEngagement.d.ts +19 -0
- package/dist/analytics/video/useVideoEngagement.d.ts.map +1 -0
- package/dist/analytics/video/useVideoEngagement.js +80 -0
- package/dist/analytics/video/useVideoEngagement.js.map +1 -0
- package/dist/analytics/video/videoEngagementTypes.d.ts +52 -0
- package/dist/analytics/video/videoEngagementTypes.d.ts.map +1 -0
- package/dist/analytics/video/videoEngagementTypes.js +45 -0
- package/dist/analytics/video/videoEngagementTypes.js.map +1 -0
- package/dist/app-helpers.d.ts +196 -0
- package/dist/app-helpers.d.ts.map +1 -0
- package/dist/app-helpers.js +322 -0
- package/dist/app-helpers.js.map +1 -0
- package/dist/cmsRegistration.d.ts +302 -0
- package/dist/cmsRegistration.d.ts.map +1 -0
- package/dist/cmsRegistration.js +242 -0
- package/dist/cmsRegistration.js.map +1 -0
- package/dist/components/Animation.d.ts +3 -0
- package/dist/components/Animation.d.ts.map +1 -0
- package/dist/components/Animation.js +2 -0
- package/dist/components/Animation.js.map +1 -0
- package/dist/components/AnimationComponent.d.ts +9 -0
- package/dist/components/AnimationComponent.d.ts.map +1 -0
- package/dist/components/AnimationComponent.js +18 -0
- package/dist/components/AnimationComponent.js.map +1 -0
- package/dist/components/ClientMonitor.d.ts +7 -0
- package/dist/components/ClientMonitor.d.ts.map +1 -0
- package/dist/components/ClientMonitor.js +368 -0
- package/dist/components/ClientMonitor.js.map +1 -0
- package/dist/components/CmsCollection.d.ts +68 -0
- package/dist/components/CmsCollection.d.ts.map +1 -0
- package/dist/components/CmsCollection.js +68 -0
- package/dist/components/CmsCollection.js.map +1 -0
- package/dist/components/CmsComponent.d.ts +68 -0
- package/dist/components/CmsComponent.d.ts.map +1 -0
- package/dist/components/CmsComponent.js +68 -0
- package/dist/components/CmsComponent.js.map +1 -0
- package/dist/components/CmsContent.d.ts +105 -0
- package/dist/components/CmsContent.d.ts.map +1 -0
- package/dist/components/CmsContent.js +200 -0
- package/dist/components/CmsContent.js.map +1 -0
- package/dist/components/CmsConversionErrors.d.ts +8 -0
- package/dist/components/CmsConversionErrors.d.ts.map +1 -0
- package/dist/components/CmsConversionErrors.js +51 -0
- package/dist/components/CmsConversionErrors.js.map +1 -0
- package/dist/components/CmsDataError.d.ts +14 -0
- package/dist/components/CmsDataError.d.ts.map +1 -0
- package/dist/components/CmsDataError.js +7 -0
- package/dist/components/CmsDataError.js.map +1 -0
- package/dist/components/CmsDevLayout.d.ts +23 -0
- package/dist/components/CmsDevLayout.d.ts.map +1 -0
- package/dist/components/CmsDevLayout.js +26 -0
- package/dist/components/CmsDevLayout.js.map +1 -0
- package/dist/components/CmsEmbeddedContent.d.ts +10 -0
- package/dist/components/CmsEmbeddedContent.d.ts.map +1 -0
- package/dist/components/CmsEmbeddedContent.js +51 -0
- package/dist/components/CmsEmbeddedContent.js.map +1 -0
- package/dist/components/CmsExternalComponent.d.ts +63 -0
- package/dist/components/CmsExternalComponent.d.ts.map +1 -0
- package/dist/components/CmsExternalComponent.js +68 -0
- package/dist/components/CmsExternalComponent.js.map +1 -0
- package/dist/components/CmsRoutesLayout.d.ts +16 -0
- package/dist/components/CmsRoutesLayout.d.ts.map +1 -0
- package/dist/components/CmsRoutesLayout.js +17 -0
- package/dist/components/CmsRoutesLayout.js.map +1 -0
- package/dist/components/DefaultExternalVideoPlayButton.d.ts +3 -0
- package/dist/components/DefaultExternalVideoPlayButton.d.ts.map +1 -0
- package/dist/components/DefaultExternalVideoPlayButton.js +6 -0
- package/dist/components/DefaultExternalVideoPlayButton.js.map +1 -0
- package/dist/components/DotLottieAnimationComponent.d.ts +16 -0
- package/dist/components/DotLottieAnimationComponent.d.ts.map +1 -0
- package/dist/components/DotLottieAnimationComponent.js +88 -0
- package/dist/components/DotLottieAnimationComponent.js.map +1 -0
- package/dist/components/ErrorBoundary.d.ts +19 -0
- package/dist/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/ErrorBoundary.js +32 -0
- package/dist/components/ErrorBoundary.js.map +1 -0
- package/dist/components/ExternalVideoComponent.d.ts +9 -0
- package/dist/components/ExternalVideoComponent.d.ts.map +1 -0
- package/dist/components/ExternalVideoComponent.js +39 -0
- package/dist/components/ExternalVideoComponent.js.map +1 -0
- package/dist/components/ExternalVimeoEmbed.d.ts +12 -0
- package/dist/components/ExternalVimeoEmbed.d.ts.map +1 -0
- package/dist/components/ExternalVimeoEmbed.js +211 -0
- package/dist/components/ExternalVimeoEmbed.js.map +1 -0
- package/dist/components/ExternalYouTubeEmbed.d.ts +9 -0
- package/dist/components/ExternalYouTubeEmbed.d.ts.map +1 -0
- package/dist/components/ExternalYouTubeEmbed.js +220 -0
- package/dist/components/ExternalYouTubeEmbed.js.map +1 -0
- package/dist/components/HeroLoopVideo.d.ts +13 -0
- package/dist/components/HeroLoopVideo.d.ts.map +1 -0
- package/dist/components/HeroLoopVideo.js +146 -0
- package/dist/components/HeroLoopVideo.js.map +1 -0
- package/dist/components/HtmlComponent.d.ts +21 -0
- package/dist/components/HtmlComponent.d.ts.map +1 -0
- package/dist/components/HtmlComponent.js +34 -0
- package/dist/components/HtmlComponent.js.map +1 -0
- package/dist/components/HtmlComponentScript.d.ts +12 -0
- package/dist/components/HtmlComponentScript.d.ts.map +1 -0
- package/dist/components/HtmlComponentScript.js +12 -0
- package/dist/components/HtmlComponentScript.js.map +1 -0
- package/dist/components/ImageComponent.d.ts +7 -0
- package/dist/components/ImageComponent.d.ts.map +1 -0
- package/dist/components/ImageComponent.js +20 -0
- package/dist/components/ImageComponent.js.map +1 -0
- package/dist/components/ImageKitClientVideo.d.ts +16 -0
- package/dist/components/ImageKitClientVideo.d.ts.map +1 -0
- package/dist/components/ImageKitClientVideo.js +211 -0
- package/dist/components/ImageKitClientVideo.js.map +1 -0
- package/dist/components/ImageKitHlsVideoClient.d.ts +21 -0
- package/dist/components/ImageKitHlsVideoClient.d.ts.map +1 -0
- package/dist/components/ImageKitHlsVideoClient.js +167 -0
- package/dist/components/ImageKitHlsVideoClient.js.map +1 -0
- package/dist/components/LazyAnimation.d.ts +16 -0
- package/dist/components/LazyAnimation.d.ts.map +1 -0
- package/dist/components/LazyAnimation.js +90 -0
- package/dist/components/LazyAnimation.js.map +1 -0
- package/dist/components/LazyVideo.d.ts +19 -0
- package/dist/components/LazyVideo.d.ts.map +1 -0
- package/dist/components/LazyVideo.js +134 -0
- package/dist/components/LazyVideo.js.map +1 -0
- package/dist/components/LocalVideo.d.ts +10 -0
- package/dist/components/LocalVideo.d.ts.map +1 -0
- package/dist/components/LocalVideo.js +66 -0
- package/dist/components/LocalVideo.js.map +1 -0
- package/dist/components/LocalVideoPlayChrome.d.ts +20 -0
- package/dist/components/LocalVideoPlayChrome.d.ts.map +1 -0
- package/dist/components/LocalVideoPlayChrome.js +22 -0
- package/dist/components/LocalVideoPlayChrome.js.map +1 -0
- package/dist/components/LocalVideoPlayOverlay.d.ts +19 -0
- package/dist/components/LocalVideoPlayOverlay.d.ts.map +1 -0
- package/dist/components/LocalVideoPlayOverlay.js +49 -0
- package/dist/components/LocalVideoPlayOverlay.js.map +1 -0
- package/dist/components/PictureComponent.d.ts +7 -0
- package/dist/components/PictureComponent.d.ts.map +1 -0
- package/dist/components/PictureComponent.js +29 -0
- package/dist/components/PictureComponent.js.map +1 -0
- package/dist/components/Preview.d.ts +2 -0
- package/dist/components/Preview.d.ts.map +1 -0
- package/dist/components/Preview.js +52 -0
- package/dist/components/Preview.js.map +1 -0
- package/dist/components/StructuredData.d.ts +20 -0
- package/dist/components/StructuredData.d.ts.map +1 -0
- package/dist/components/StructuredData.js +116 -0
- package/dist/components/StructuredData.js.map +1 -0
- package/dist/components/SvgComponent.d.ts +7 -0
- package/dist/components/SvgComponent.d.ts.map +1 -0
- package/dist/components/SvgComponent.js +10 -0
- package/dist/components/SvgComponent.js.map +1 -0
- package/dist/components/SvgIconComponent.d.ts +20 -0
- package/dist/components/SvgIconComponent.d.ts.map +1 -0
- package/dist/components/SvgIconComponent.js +23 -0
- package/dist/components/SvgIconComponent.js.map +1 -0
- package/dist/components/SvgImageComponent.d.ts +7 -0
- package/dist/components/SvgImageComponent.d.ts.map +1 -0
- package/dist/components/SvgImageComponent.js +10 -0
- package/dist/components/SvgImageComponent.js.map +1 -0
- package/dist/components/SvgSpriteSheet.d.ts +24 -0
- package/dist/components/SvgSpriteSheet.d.ts.map +1 -0
- package/dist/components/SvgSpriteSheet.js +37 -0
- package/dist/components/SvgSpriteSheet.js.map +1 -0
- package/dist/components/Video.d.ts +11 -0
- package/dist/components/Video.d.ts.map +1 -0
- package/dist/components/Video.js +2 -0
- package/dist/components/Video.js.map +1 -0
- package/dist/components/VideoComponent.d.ts +10 -0
- package/dist/components/VideoComponent.d.ts.map +1 -0
- package/dist/components/VideoComponent.js +22 -0
- package/dist/components/VideoComponent.js.map +1 -0
- package/dist/components/Visual.d.ts +43 -0
- package/dist/components/Visual.d.ts.map +1 -0
- package/dist/components/Visual.js +60 -0
- package/dist/components/Visual.js.map +1 -0
- package/dist/components/VisualComponent.d.ts +83 -0
- package/dist/components/VisualComponent.d.ts.map +1 -0
- package/dist/components/VisualComponent.js +136 -0
- package/dist/components/VisualComponent.js.map +1 -0
- package/dist/components/banner/BannerClient.d.ts +13 -0
- package/dist/components/banner/BannerClient.d.ts.map +1 -0
- package/dist/components/banner/BannerClient.js +38 -0
- package/dist/components/banner/BannerClient.js.map +1 -0
- package/dist/components/banner/BannerManager.d.ts +26 -0
- package/dist/components/banner/BannerManager.d.ts.map +1 -0
- package/dist/components/banner/BannerManager.js +35 -0
- package/dist/components/banner/BannerManager.js.map +1 -0
- package/dist/components/banner/BannerTargeting.d.ts +20 -0
- package/dist/components/banner/BannerTargeting.d.ts.map +1 -0
- package/dist/components/banner/BannerTargeting.js +204 -0
- package/dist/components/banner/BannerTargeting.js.map +1 -0
- package/dist/components/banner/bannerVisibility.d.ts +20 -0
- package/dist/components/banner/bannerVisibility.d.ts.map +1 -0
- package/dist/components/banner/bannerVisibility.js +73 -0
- package/dist/components/banner/bannerVisibility.js.map +1 -0
- package/dist/components/clientMonitorVideos.d.ts +6 -0
- package/dist/components/clientMonitorVideos.d.ts.map +1 -0
- package/dist/components/clientMonitorVideos.js +116 -0
- package/dist/components/clientMonitorVideos.js.map +1 -0
- package/dist/components/dotlottieWasm.d.ts +19 -0
- package/dist/components/dotlottieWasm.d.ts.map +1 -0
- package/dist/components/dotlottieWasm.js +62 -0
- package/dist/components/dotlottieWasm.js.map +1 -0
- package/dist/components/heroLoop.d.ts +22 -0
- package/dist/components/heroLoop.d.ts.map +1 -0
- package/dist/components/heroLoop.js +24 -0
- package/dist/components/heroLoop.js.map +1 -0
- package/dist/components/svg.d.ts +3 -0
- package/dist/components/svg.d.ts.map +1 -0
- package/dist/components/svg.js +64 -0
- package/dist/components/svg.js.map +1 -0
- package/dist/context/ExternalVideoPlayButtonContext.d.ts +7 -0
- package/dist/context/ExternalVideoPlayButtonContext.d.ts.map +1 -0
- package/dist/context/ExternalVideoPlayButtonContext.js +11 -0
- package/dist/context/ExternalVideoPlayButtonContext.js.map +1 -0
- package/dist/elements/RtfOrString.d.ts +26 -0
- package/dist/elements/RtfOrString.d.ts.map +1 -0
- package/dist/elements/RtfOrString.js +13 -0
- package/dist/elements/RtfOrString.js.map +1 -0
- package/dist/elements/TrackedLink.d.ts +25 -0
- package/dist/elements/TrackedLink.d.ts.map +1 -0
- package/dist/elements/TrackedLink.js +96 -0
- package/dist/elements/TrackedLink.js.map +1 -0
- package/dist/elements/UtmLink.d.ts +7 -0
- package/dist/elements/UtmLink.d.ts.map +1 -0
- package/dist/elements/UtmLink.js +24 -0
- package/dist/elements/UtmLink.js.map +1 -0
- package/dist/framework/BackgroundMedia.d.ts +12 -0
- package/dist/framework/BackgroundMedia.d.ts.map +1 -0
- package/dist/framework/BackgroundMedia.js +23 -0
- package/dist/framework/BackgroundMedia.js.map +1 -0
- package/dist/framework/ComponentErrorIndicator.d.ts +12 -0
- package/dist/framework/ComponentErrorIndicator.d.ts.map +1 -0
- package/dist/framework/ComponentErrorIndicator.js +29 -0
- package/dist/framework/ComponentErrorIndicator.js.map +1 -0
- package/dist/framework/ContainedVisual.d.ts +12 -0
- package/dist/framework/ContainedVisual.d.ts.map +1 -0
- package/dist/framework/ContainedVisual.js +14 -0
- package/dist/framework/ContainedVisual.js.map +1 -0
- package/dist/framework/ResponsiveVisual.d.ts +14 -0
- package/dist/framework/ResponsiveVisual.d.ts.map +1 -0
- package/dist/framework/ResponsiveVisual.js +14 -0
- package/dist/framework/ResponsiveVisual.js.map +1 -0
- package/dist/framework/componentErrors.d.ts +19 -0
- package/dist/framework/componentErrors.d.ts.map +1 -0
- package/dist/framework/componentErrors.js +31 -0
- package/dist/framework/componentErrors.js.map +1 -0
- package/dist/hooks/useClickTracking.d.ts +58 -0
- package/dist/hooks/useClickTracking.d.ts.map +1 -0
- package/dist/hooks/useClickTracking.js +48 -0
- package/dist/hooks/useClickTracking.js.map +1 -0
- package/dist/hooks/useDocumentVisible.d.ts +2 -0
- package/dist/hooks/useDocumentVisible.d.ts.map +1 -0
- package/dist/hooks/useDocumentVisible.js +17 -0
- package/dist/hooks/useDocumentVisible.js.map +1 -0
- package/dist/hooks/visibility.d.ts +14 -0
- package/dist/hooks/visibility.d.ts.map +1 -0
- package/dist/hooks/visibility.js +122 -0
- package/dist/hooks/visibility.js.map +1 -0
- package/dist/index.d.ts +134 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +120 -0
- package/dist/index.js.map +1 -0
- package/dist/media-library/MediaLibraryAnimationPlayer.d.ts +9 -0
- package/dist/media-library/MediaLibraryAnimationPlayer.d.ts.map +1 -0
- package/dist/media-library/MediaLibraryAnimationPlayer.js +99 -0
- package/dist/media-library/MediaLibraryAnimationPlayer.js.map +1 -0
- package/dist/media-library/MediaLibraryGrid.d.ts +5 -0
- package/dist/media-library/MediaLibraryGrid.d.ts.map +1 -0
- package/dist/media-library/MediaLibraryGrid.js +88 -0
- package/dist/media-library/MediaLibraryGrid.js.map +1 -0
- package/dist/media-library/MediaLibraryPage.d.ts +17 -0
- package/dist/media-library/MediaLibraryPage.d.ts.map +1 -0
- package/dist/media-library/MediaLibraryPage.js +30 -0
- package/dist/media-library/MediaLibraryPage.js.map +1 -0
- package/dist/media-library/index.d.ts +4 -0
- package/dist/media-library/index.d.ts.map +1 -0
- package/dist/media-library/index.js +4 -0
- package/dist/media-library/index.js.map +1 -0
- package/dist/media-library/types.d.ts +8 -0
- package/dist/media-library/types.d.ts.map +1 -0
- package/dist/media-library/types.js +12 -0
- package/dist/media-library/types.js.map +1 -0
- package/dist/route-handlers/createCmsTxtHandler.d.ts +19 -0
- package/dist/route-handlers/createCmsTxtHandler.d.ts.map +1 -0
- package/dist/route-handlers/createCmsTxtHandler.js +154 -0
- package/dist/route-handlers/createCmsTxtHandler.js.map +1 -0
- package/dist/route-handlers/createDiscoveryHandler.d.ts +67 -0
- package/dist/route-handlers/createDiscoveryHandler.d.ts.map +1 -0
- package/dist/route-handlers/createDiscoveryHandler.js +190 -0
- package/dist/route-handlers/createDiscoveryHandler.js.map +1 -0
- package/dist/route-handlers/createGuidelinesHandler.d.ts +16 -0
- package/dist/route-handlers/createGuidelinesHandler.d.ts.map +1 -0
- package/dist/route-handlers/createGuidelinesHandler.js +100 -0
- package/dist/route-handlers/createGuidelinesHandler.js.map +1 -0
- package/dist/route-handlers/createMediaLibraryHandler.d.ts +19 -0
- package/dist/route-handlers/createMediaLibraryHandler.d.ts.map +1 -0
- package/dist/route-handlers/createMediaLibraryHandler.js +76 -0
- package/dist/route-handlers/createMediaLibraryHandler.js.map +1 -0
- package/dist/route-handlers/index.d.ts +9 -0
- package/dist/route-handlers/index.d.ts.map +1 -0
- package/dist/route-handlers/index.js +5 -0
- package/dist/route-handlers/index.js.map +1 -0
- package/dist/rtf/rtf.d.ts +66 -0
- package/dist/rtf/rtf.d.ts.map +1 -0
- package/dist/rtf/rtf.js +183 -0
- package/dist/rtf/rtf.js.map +1 -0
- package/dist/server/index.d.ts +20 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +11 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/merge-prepared-page-context.d.ts +8 -0
- package/dist/server/merge-prepared-page-context.d.ts.map +1 -0
- package/dist/server/merge-prepared-page-context.js +11 -0
- package/dist/server/merge-prepared-page-context.js.map +1 -0
- package/dist/server/page-test-merge.d.ts +7 -0
- package/dist/server/page-test-merge.d.ts.map +1 -0
- package/dist/server/page-test-merge.js +12 -0
- package/dist/server/page-test-merge.js.map +1 -0
- package/dist/server/route-handlers-types.d.ts +124 -0
- package/dist/server/route-handlers-types.d.ts.map +1 -0
- package/dist/server/route-handlers-types.js +2 -0
- package/dist/server/route-handlers-types.js.map +1 -0
- package/dist/server/route-handlers.d.ts +99 -0
- package/dist/server/route-handlers.d.ts.map +1 -0
- package/dist/server/route-handlers.js +1268 -0
- package/dist/server/route-handlers.js.map +1 -0
- package/dist/server/route-types.d.ts +78 -0
- package/dist/server/route-types.d.ts.map +1 -0
- package/dist/server/route-types.js +4 -0
- package/dist/server/route-types.js.map +1 -0
- package/dist/server/tag-index-guards.d.ts +33 -0
- package/dist/server/tag-index-guards.d.ts.map +1 -0
- package/dist/server/tag-index-guards.js +33 -0
- package/dist/server/tag-index-guards.js.map +1 -0
- package/dist/server/template-route-handlers.d.ts +7 -0
- package/dist/server/template-route-handlers.d.ts.map +1 -0
- package/dist/server/template-route-handlers.js +35 -0
- package/dist/server/template-route-handlers.js.map +1 -0
- package/dist/showcase/components/AllViewPanel.d.ts +7 -0
- package/dist/showcase/components/AllViewPanel.d.ts.map +1 -0
- package/dist/showcase/components/AllViewPanel.js +55 -0
- package/dist/showcase/components/AllViewPanel.js.map +1 -0
- package/dist/showcase/components/Controls.d.ts +15 -0
- package/dist/showcase/components/Controls.d.ts.map +1 -0
- package/dist/showcase/components/Controls.js +71 -0
- package/dist/showcase/components/Controls.js.map +1 -0
- package/dist/showcase/components/ControlsWrapper.d.ts +15 -0
- package/dist/showcase/components/ControlsWrapper.d.ts.map +1 -0
- package/dist/showcase/components/ControlsWrapper.js +9 -0
- package/dist/showcase/components/ControlsWrapper.js.map +1 -0
- package/dist/showcase/components/IframeHeightReporter.d.ts +13 -0
- package/dist/showcase/components/IframeHeightReporter.d.ts.map +1 -0
- package/dist/showcase/components/IframeHeightReporter.js +51 -0
- package/dist/showcase/components/IframeHeightReporter.js.map +1 -0
- package/dist/showcase/components/PreviewPanel.d.ts +18 -0
- package/dist/showcase/components/PreviewPanel.d.ts.map +1 -0
- package/dist/showcase/components/PreviewPanel.js +52 -0
- package/dist/showcase/components/PreviewPanel.js.map +1 -0
- package/dist/showcase/components/ScaledIframe.d.ts +22 -0
- package/dist/showcase/components/ScaledIframe.d.ts.map +1 -0
- package/dist/showcase/components/ScaledIframe.js +41 -0
- package/dist/showcase/components/ScaledIframe.js.map +1 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.d.ts +21 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.d.ts.map +1 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.js +36 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.js.map +1 -0
- package/dist/showcase/components/ShowcaseAnimationRoot.d.ts +8 -0
- package/dist/showcase/components/ShowcaseAnimationRoot.d.ts.map +1 -0
- package/dist/showcase/components/ShowcaseAnimationRoot.js +10 -0
- package/dist/showcase/components/ShowcaseAnimationRoot.js.map +1 -0
- package/dist/showcase/components/ShowcasePage.d.ts +25 -0
- package/dist/showcase/components/ShowcasePage.d.ts.map +1 -0
- package/dist/showcase/components/ShowcasePage.js +31 -0
- package/dist/showcase/components/ShowcasePage.js.map +1 -0
- package/dist/showcase/components/ShowcaseRenderPage.d.ts +21 -0
- package/dist/showcase/components/ShowcaseRenderPage.d.ts.map +1 -0
- package/dist/showcase/components/ShowcaseRenderPage.js +45 -0
- package/dist/showcase/components/ShowcaseRenderPage.js.map +1 -0
- package/dist/showcase/components/ShowcaseViewportGuard.d.ts +14 -0
- package/dist/showcase/components/ShowcaseViewportGuard.d.ts.map +1 -0
- package/dist/showcase/components/ShowcaseViewportGuard.js +77 -0
- package/dist/showcase/components/ShowcaseViewportGuard.js.map +1 -0
- package/dist/showcase/components/TopBar.d.ts +11 -0
- package/dist/showcase/components/TopBar.d.ts.map +1 -0
- package/dist/showcase/components/TopBar.js +105 -0
- package/dist/showcase/components/TopBar.js.map +1 -0
- package/dist/showcase/controlFieldSupport.d.ts +12 -0
- package/dist/showcase/controlFieldSupport.d.ts.map +1 -0
- package/dist/showcase/controlFieldSupport.js +35 -0
- package/dist/showcase/controlFieldSupport.js.map +1 -0
- package/dist/showcase/index.d.ts +20 -0
- package/dist/showcase/index.d.ts.map +1 -0
- package/dist/showcase/index.js +20 -0
- package/dist/showcase/index.js.map +1 -0
- package/dist/showcase/isCmsShowcase.d.ts +10 -0
- package/dist/showcase/isCmsShowcase.d.ts.map +1 -0
- package/dist/showcase/isCmsShowcase.js +12 -0
- package/dist/showcase/isCmsShowcase.js.map +1 -0
- package/dist/showcase/mergeShowcaseMocks.d.ts +34 -0
- package/dist/showcase/mergeShowcaseMocks.d.ts.map +1 -0
- package/dist/showcase/mergeShowcaseMocks.js +31 -0
- package/dist/showcase/mergeShowcaseMocks.js.map +1 -0
- package/dist/showcase/mockFactory.d.ts +47 -0
- package/dist/showcase/mockFactory.d.ts.map +1 -0
- package/dist/showcase/mockFactory.js +726 -0
- package/dist/showcase/mockFactory.js.map +1 -0
- package/dist/showcase/showcaseLayout.d.ts +17 -0
- package/dist/showcase/showcaseLayout.d.ts.map +1 -0
- package/dist/showcase/showcaseLayout.js +11 -0
- package/dist/showcase/showcaseLayout.js.map +1 -0
- package/dist/showcase/showcaseRelatedContent.d.ts +30 -0
- package/dist/showcase/showcaseRelatedContent.d.ts.map +1 -0
- package/dist/showcase/showcaseRelatedContent.js +106 -0
- package/dist/showcase/showcaseRelatedContent.js.map +1 -0
- package/dist/showcase/types.d.ts +21 -0
- package/dist/showcase/types.d.ts.map +1 -0
- package/dist/showcase/types.js +19 -0
- package/dist/showcase/types.js.map +1 -0
- package/dist/utils/UnsupportedWarning.d.ts +30 -0
- package/dist/utils/UnsupportedWarning.d.ts.map +1 -0
- package/dist/utils/UnsupportedWarning.js +44 -0
- package/dist/utils/UnsupportedWarning.js.map +1 -0
- package/dist/utils/UnusedChecker.d.ts +51 -0
- package/dist/utils/UnusedChecker.d.ts.map +1 -0
- package/dist/utils/UnusedChecker.js +96 -0
- package/dist/utils/UnusedChecker.js.map +1 -0
- package/dist/utils/agent-ready.d.ts +103 -0
- package/dist/utils/agent-ready.d.ts.map +1 -0
- package/dist/utils/agent-ready.js +246 -0
- package/dist/utils/agent-ready.js.map +1 -0
- package/dist/utils/assertValidSiteBaseUrl.d.ts +8 -0
- package/dist/utils/assertValidSiteBaseUrl.d.ts.map +1 -0
- package/dist/utils/assertValidSiteBaseUrl.js +31 -0
- package/dist/utils/assertValidSiteBaseUrl.js.map +1 -0
- package/dist/utils/breadcrumbUtils.d.ts +64 -0
- package/dist/utils/breadcrumbUtils.d.ts.map +1 -0
- package/dist/utils/breadcrumbUtils.js +73 -0
- package/dist/utils/breadcrumbUtils.js.map +1 -0
- package/dist/utils/buildPageMetadata.d.ts +139 -0
- package/dist/utils/buildPageMetadata.d.ts.map +1 -0
- package/dist/utils/buildPageMetadata.js +218 -0
- package/dist/utils/buildPageMetadata.js.map +1 -0
- package/dist/utils/cn.d.ts +29 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cn.js +32 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/componentUtils.d.ts +82 -0
- package/dist/utils/componentUtils.d.ts.map +1 -0
- package/dist/utils/componentUtils.js +327 -0
- package/dist/utils/componentUtils.js.map +1 -0
- package/dist/utils/convertText.d.ts +2 -0
- package/dist/utils/convertText.d.ts.map +1 -0
- package/dist/utils/convertText.js +35 -0
- package/dist/utils/convertText.js.map +1 -0
- package/dist/utils/createDefaultRenderText.d.ts +17 -0
- package/dist/utils/createDefaultRenderText.d.ts.map +1 -0
- package/dist/utils/createDefaultRenderText.js +25 -0
- package/dist/utils/createDefaultRenderText.js.map +1 -0
- package/dist/utils/errorHandling.d.ts +37 -0
- package/dist/utils/errorHandling.d.ts.map +1 -0
- package/dist/utils/errorHandling.js +61 -0
- package/dist/utils/errorHandling.js.map +1 -0
- package/dist/utils/errorMonitoring.d.ts +17 -0
- package/dist/utils/errorMonitoring.d.ts.map +1 -0
- package/dist/utils/errorMonitoring.js +26 -0
- package/dist/utils/errorMonitoring.js.map +1 -0
- package/dist/utils/imageKitVideoHls.d.ts +3 -0
- package/dist/utils/imageKitVideoHls.d.ts.map +1 -0
- package/dist/utils/imageKitVideoHls.js +5 -0
- package/dist/utils/imageKitVideoHls.js.map +1 -0
- package/dist/utils/interpolateMetaText.d.ts +9 -0
- package/dist/utils/interpolateMetaText.d.ts.map +1 -0
- package/dist/utils/interpolateMetaText.js +21 -0
- package/dist/utils/interpolateMetaText.js.map +1 -0
- package/dist/utils/linkAccessibility.d.ts +13 -0
- package/dist/utils/linkAccessibility.d.ts.map +1 -0
- package/dist/utils/linkAccessibility.js +14 -0
- package/dist/utils/linkAccessibility.js.map +1 -0
- package/dist/utils/linkResolution.d.ts +15 -0
- package/dist/utils/linkResolution.d.ts.map +1 -0
- package/dist/utils/linkResolution.js +19 -0
- package/dist/utils/linkResolution.js.map +1 -0
- package/dist/utils/listing-page-heading.d.ts +16 -0
- package/dist/utils/listing-page-heading.d.ts.map +1 -0
- package/dist/utils/listing-page-heading.js +24 -0
- package/dist/utils/listing-page-heading.js.map +1 -0
- package/dist/utils/listingStructuredData.d.ts +28 -0
- package/dist/utils/listingStructuredData.d.ts.map +1 -0
- package/dist/utils/listingStructuredData.js +65 -0
- package/dist/utils/listingStructuredData.js.map +1 -0
- package/dist/utils/marketingSiteSitemap.d.ts +103 -0
- package/dist/utils/marketingSiteSitemap.d.ts.map +1 -0
- package/dist/utils/marketingSiteSitemap.js +352 -0
- package/dist/utils/marketingSiteSitemap.js.map +1 -0
- package/dist/utils/previewPageUtils.d.ts +61 -0
- package/dist/utils/previewPageUtils.d.ts.map +1 -0
- package/dist/utils/previewPageUtils.js +72 -0
- package/dist/utils/previewPageUtils.js.map +1 -0
- package/dist/utils/previewUtils.d.ts +59 -0
- package/dist/utils/previewUtils.d.ts.map +1 -0
- package/dist/utils/previewUtils.js +60 -0
- package/dist/utils/previewUtils.js.map +1 -0
- package/dist/utils/processCollectionLinks.d.ts +11 -0
- package/dist/utils/processCollectionLinks.d.ts.map +1 -0
- package/dist/utils/processCollectionLinks.js +38 -0
- package/dist/utils/processCollectionLinks.js.map +1 -0
- package/dist/utils/processTextContent.d.ts +18 -0
- package/dist/utils/processTextContent.d.ts.map +1 -0
- package/dist/utils/processTextContent.js +24 -0
- package/dist/utils/processTextContent.js.map +1 -0
- package/dist/utils/reactNodeText.d.ts +7 -0
- package/dist/utils/reactNodeText.d.ts.map +1 -0
- package/dist/utils/reactNodeText.js +43 -0
- package/dist/utils/reactNodeText.js.map +1 -0
- package/dist/utils/richTextNodeText.d.ts +13 -0
- package/dist/utils/richTextNodeText.d.ts.map +1 -0
- package/dist/utils/richTextNodeText.js +29 -0
- package/dist/utils/richTextNodeText.js.map +1 -0
- package/dist/utils/robots.d.ts +115 -0
- package/dist/utils/robots.d.ts.map +1 -0
- package/dist/utils/robots.js +174 -0
- package/dist/utils/robots.js.map +1 -0
- package/dist/utils/scopeCss.d.ts +15 -0
- package/dist/utils/scopeCss.d.ts.map +1 -0
- package/dist/utils/scopeCss.js +186 -0
- package/dist/utils/scopeCss.js.map +1 -0
- package/dist/utils/sitemap.d.ts +173 -0
- package/dist/utils/sitemap.d.ts.map +1 -0
- package/dist/utils/sitemap.js +257 -0
- package/dist/utils/sitemap.js.map +1 -0
- package/dist/utils/structuredDataUtils.d.ts +158 -0
- package/dist/utils/structuredDataUtils.d.ts.map +1 -0
- package/dist/utils/structuredDataUtils.js +225 -0
- package/dist/utils/structuredDataUtils.js.map +1 -0
- package/dist/utils/urlUtils.d.ts +30 -0
- package/dist/utils/urlUtils.d.ts.map +1 -0
- package/dist/utils/urlUtils.js +100 -0
- package/dist/utils/urlUtils.js.map +1 -0
- package/dist/utils/visualPositions.d.ts +3 -0
- package/dist/utils/visualPositions.d.ts.map +1 -0
- package/dist/utils/visualPositions.js +13 -0
- package/dist/utils/visualPositions.js.map +1 -0
- package/dist/utils/visualSizes.d.ts +5 -0
- package/dist/utils/visualSizes.d.ts.map +1 -0
- package/dist/utils/visualSizes.js +27 -0
- package/dist/utils/visualSizes.js.map +1 -0
- package/dist/utils/wcagRelativeLuminanceFromHex.d.ts +8 -0
- package/dist/utils/wcagRelativeLuminanceFromHex.d.ts.map +1 -0
- package/dist/utils/wcagRelativeLuminanceFromHex.js +30 -0
- package/dist/utils/wcagRelativeLuminanceFromHex.js.map +1 -0
- package/dist/utils/wrapHtmlComponentJs.d.ts +10 -0
- package/dist/utils/wrapHtmlComponentJs.d.ts.map +1 -0
- package/dist/utils/wrapHtmlComponentJs.js +12 -0
- package/dist/utils/wrapHtmlComponentJs.js.map +1 -0
- package/docs/PACKAGE_EXPORT_BOUNDARIES.md +98 -0
- package/docs/llms.md +358 -0
- package/package.json +108 -0
- package/src/showcase/README.md +269 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: Any is allowed */
|
|
2
|
+
import type { CmsResponse, FetchOptions } from '@se-studio/contentful-rest-api';
|
|
3
|
+
import type { IArticleLink, IContentContext, IInternalLink, IPersonLink, ITagLink } from '@se-studio/core-data-types';
|
|
4
|
+
import type * as React from 'react';
|
|
5
|
+
import type { CollectionMap, CollectionRenderer, EmbeddedCollectionMap } from './components/CmsCollection';
|
|
6
|
+
import type { ComponentMap, ComponentRenderer, EmbeddedComponentMap } from './components/CmsComponent';
|
|
7
|
+
import type { EmbeddedBlockInternalLinkRenderer, InternalLinkRenderer, VisualComponentRenderer } from './components/CmsContent';
|
|
8
|
+
import type { EmbeddedExternalComponentMap, ExternalComponentMap } from './components/CmsExternalComponent';
|
|
9
|
+
import type { IBuildInformation } from './utils/buildPageMetadata';
|
|
10
|
+
import type { IContent as IPreviewContent } from './utils/previewUtils';
|
|
11
|
+
/** Preview data attribute props for Contentful live preview */
|
|
12
|
+
export type PreviewDataAttributes = {
|
|
13
|
+
'data-contentful-entry-id': string | undefined;
|
|
14
|
+
'data-contentful-asset-id': string | undefined;
|
|
15
|
+
'data-contentful-field-id': string | undefined;
|
|
16
|
+
} | undefined;
|
|
17
|
+
/** Preview helpers passed via renderer config to avoid circular imports from cms-server */
|
|
18
|
+
export type PreviewHelpers = {
|
|
19
|
+
getPreviewFieldIdProps: (id?: string, fieldId?: string) => PreviewDataAttributes;
|
|
20
|
+
getPreviewAssetIdProps: (assetId?: string) => PreviewDataAttributes;
|
|
21
|
+
getPreviewParentProps: (information: IPreviewContent | null | undefined) => PreviewDataAttributes;
|
|
22
|
+
getPreviewResponsiveVisualFieldIdProps: (id?: string, visualFieldId?: string, mobileVisualFieldId?: string) => {
|
|
23
|
+
visualPreviewProps: PreviewDataAttributes;
|
|
24
|
+
mobileVisualPreviewProps: PreviewDataAttributes;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Options for link fetcher functions.
|
|
29
|
+
* All FetchOptions fields are optional (buildOptions fills defaults internally).
|
|
30
|
+
* Pass `allowUnindexed` to opt in to receiving entries with indexed === false.
|
|
31
|
+
*
|
|
32
|
+
* Note: Article filter criteria fields (articleType*, tag*, author*, tagType*, strictAuthorMatch,
|
|
33
|
+
* excludeArticleIds, before, after, count) only affect getAllArticleLinks (via filterRelatedArticles).
|
|
34
|
+
* They are accepted (for convenience) on other getAll*Links signatures but are ignored there.
|
|
35
|
+
*/
|
|
36
|
+
export type LinkFetchOptions = Partial<FetchOptions> & {
|
|
37
|
+
/** Pass `allowUnindexed: true` to opt in to receiving entries with indexed === false. */
|
|
38
|
+
allowUnindexed?: boolean;
|
|
39
|
+
/** Filter to articles matching any of these article type IDs (OR). Only affects getAllArticleLinks. */
|
|
40
|
+
articleTypeIds?: string[];
|
|
41
|
+
/** Filter to articles matching any of these article type slugs (OR). Only affects getAllArticleLinks. */
|
|
42
|
+
articleTypeSlugs?: string[];
|
|
43
|
+
/** Filter to articles matching any of these tag IDs (OR); articles with more matches rank higher. Only affects getAllArticleLinks. */
|
|
44
|
+
tagIds?: string[];
|
|
45
|
+
/** Filter to articles matching any of these tag slugs (OR); articles with more matches rank higher. Only affects getAllArticleLinks. */
|
|
46
|
+
tagSlugs?: string[];
|
|
47
|
+
/** Filter to articles that have at least one tag belonging to any of these tag type IDs. Only affects getAllArticleLinks. */
|
|
48
|
+
tagTypeIds?: string[];
|
|
49
|
+
/** Filter to articles that have at least one tag belonging to any of these tag type slugs. Only affects getAllArticleLinks. */
|
|
50
|
+
tagTypeSlugs?: string[];
|
|
51
|
+
/** Filter/rank by author IDs - articles with matching authors are ranked higher. Only affects getAllArticleLinks. */
|
|
52
|
+
authorIds?: string[];
|
|
53
|
+
/** Filter/rank by author slugs - articles with matching authors are ranked higher. Only affects getAllArticleLinks. */
|
|
54
|
+
authorSlugs?: string[];
|
|
55
|
+
/** When true, authorIds/authorSlugs become a hard filter (exclude non-matching) rather than just a ranking boost. Only affects getAllArticleLinks. */
|
|
56
|
+
strictAuthorMatch?: boolean;
|
|
57
|
+
/** Articles to exclude from results. Only affects getAllArticleLinks. */
|
|
58
|
+
excludeArticleIds?: string[];
|
|
59
|
+
/** Only include articles published before this date. Only affects getAllArticleLinks. */
|
|
60
|
+
before?: Date;
|
|
61
|
+
/** Only include articles published after this date. Only affects getAllArticleLinks. */
|
|
62
|
+
after?: Date;
|
|
63
|
+
/** Maximum number of results to return (after filter/score/sort; undefined = all). Only affects getAllArticleLinks. */
|
|
64
|
+
count?: number;
|
|
65
|
+
/**
|
|
66
|
+
* CMS fetch profile for bulk link fetches. `listing` omits nav/content trees (smaller payloads).
|
|
67
|
+
* Only affects getAllArticleLinks. Default `listing`.
|
|
68
|
+
*/
|
|
69
|
+
fetchProfile?: 'page' | 'listing';
|
|
70
|
+
/** Pagination page size for getAllArticleLinks. Default 100. */
|
|
71
|
+
pageSize?: number;
|
|
72
|
+
};
|
|
73
|
+
/** Fetch helpers for components that need to load data (avoids circular cms-server imports) */
|
|
74
|
+
export type FetchHelpers = {
|
|
75
|
+
getAllArticleLinks?: (options?: LinkFetchOptions) => Promise<CmsResponse<IArticleLink[]>>;
|
|
76
|
+
getAllTagLinks?: (options?: LinkFetchOptions) => Promise<CmsResponse<IInternalLink[]>>;
|
|
77
|
+
getAllPersonLinks?: (options?: LinkFetchOptions) => Promise<CmsResponse<IPersonLink[]>>;
|
|
78
|
+
/** Uses `any` for information to accept project-specific collection types */
|
|
79
|
+
getRelatedArticles?: (information: any, contentContext: IContentContext, count?: number) => Promise<CmsResponse<IArticleLink[]>>;
|
|
80
|
+
getRelatedPeople?: (information: any, contentContext: IContentContext, count: number) => Promise<CmsResponse<IPersonLink[]>>;
|
|
81
|
+
getRelatedTags?: (information: any, contentContext: IContentContext, count: number) => Promise<CmsResponse<ITagLink[]>>;
|
|
82
|
+
};
|
|
83
|
+
export type CmsRendererTypes = {
|
|
84
|
+
componentNameType: string;
|
|
85
|
+
componentType: any;
|
|
86
|
+
collectionNameType: string;
|
|
87
|
+
collectionType: any;
|
|
88
|
+
externalComponentNameType: string;
|
|
89
|
+
externalComponentType: any;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Configuration object that bundles all CMS renderer maps and display options.
|
|
93
|
+
* Create this once at the project level and pass it to CmsContent.
|
|
94
|
+
*
|
|
95
|
+
* This provides a clean, extensible API for configuring how CMS content is rendered,
|
|
96
|
+
* making it easy to add new renderer types without breaking existing code.
|
|
97
|
+
*
|
|
98
|
+
* @example Basic configuration
|
|
99
|
+
* ```tsx
|
|
100
|
+
* const rendererConfig = {
|
|
101
|
+
* buildInformation,
|
|
102
|
+
* componentMap: {
|
|
103
|
+
* "Hero": HeroComponent,
|
|
104
|
+
* "CTA": CTAComponent,
|
|
105
|
+
* "Content Block": ContentBlock,
|
|
106
|
+
* },
|
|
107
|
+
* collectionMap: {
|
|
108
|
+
* "FAQs": FAQCollection,
|
|
109
|
+
* "Related Articles": RelatedArticles,
|
|
110
|
+
* },
|
|
111
|
+
* // ... other required fields
|
|
112
|
+
* };
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* Error panels (unknown types, render errors) are shown when `!buildInformation.isProduction`.
|
|
116
|
+
*/
|
|
117
|
+
export interface CmsRendererConfig<TConfig extends CmsRendererTypes = CmsRendererTypes> {
|
|
118
|
+
/**
|
|
119
|
+
* Map of component types to their renderers.
|
|
120
|
+
* Each key should match a ComponentType from your CMS configuration.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```tsx
|
|
124
|
+
* componentMap: {
|
|
125
|
+
* "Hero": HeroComponent,
|
|
126
|
+
* "CTA": CTAComponent,
|
|
127
|
+
* }
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
componentMap: ComponentMap<TConfig['componentNameType'], TConfig['componentType']>;
|
|
131
|
+
embeddedComponentMap: EmbeddedComponentMap<TConfig['componentNameType'], TConfig['componentType']>;
|
|
132
|
+
/**
|
|
133
|
+
* Map of collection types to their renderers.
|
|
134
|
+
* Each key should match a CollectionType from your CMS configuration.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```tsx
|
|
138
|
+
* collectionMap: {
|
|
139
|
+
* "FAQs": FAQCollection,
|
|
140
|
+
* "Related Articles": RelatedArticles,
|
|
141
|
+
* }
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
collectionMap: CollectionMap<TConfig['collectionNameType'], TConfig['collectionType']>;
|
|
145
|
+
embeddedCollectionMap: EmbeddedCollectionMap<TConfig['collectionNameType'], TConfig['collectionType']>;
|
|
146
|
+
/**
|
|
147
|
+
* Map of external component types to their renderers (optional).
|
|
148
|
+
* Use this for third-party integrations, forms, widgets, etc.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```tsx
|
|
152
|
+
* externalComponentMap: {
|
|
153
|
+
* "Contact Form": ContactFormRenderer,
|
|
154
|
+
* "Newsletter": NewsletterRenderer,
|
|
155
|
+
* }
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
externalComponentMap: ExternalComponentMap<TConfig['externalComponentNameType'], TConfig['externalComponentType']>;
|
|
159
|
+
embeddedExternalComponentMap: EmbeddedExternalComponentMap<TConfig['externalComponentNameType'], TConfig['externalComponentType']>;
|
|
160
|
+
/**
|
|
161
|
+
* Set of component type names that have explicitly opted out of embedding
|
|
162
|
+
* (registered with `embeddedRenderer: false`). When a type is in this set,
|
|
163
|
+
* `CmsEmbeddedComponent` shows a "not supported" warning in dev instead of
|
|
164
|
+
* falling back to the top-level renderer.
|
|
165
|
+
*/
|
|
166
|
+
noEmbedComponents?: Set<string>;
|
|
167
|
+
/** Set of collection type names that have explicitly opted out of embedding. */
|
|
168
|
+
noEmbedCollections?: Set<string>;
|
|
169
|
+
/** Set of external component type names that have explicitly opted out of embedding. */
|
|
170
|
+
noEmbedExternalComponents?: Set<string>;
|
|
171
|
+
/**
|
|
172
|
+
* Renderer for Visual content types (optional).
|
|
173
|
+
* Use this to define how images, videos, and other visual assets are rendered.
|
|
174
|
+
* When `embedded` is true (e.g. in RTF or inside a collection), render a compact
|
|
175
|
+
* variant; when false or omitted (standalone page content), render with full section layout.
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```tsx
|
|
179
|
+
* visualComponentRenderer: ({ information, contentContext, embedded }) => (
|
|
180
|
+
* embedded ? (
|
|
181
|
+
* <Visual visual={information} className="w-full" />
|
|
182
|
+
* ) : (
|
|
183
|
+
* <Section><Visual visual={information} /></Section>
|
|
184
|
+
* )
|
|
185
|
+
* )
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
visualComponentRenderer: VisualComponentRenderer;
|
|
189
|
+
/**
|
|
190
|
+
* Renderer for Internal Link content types (optional).
|
|
191
|
+
* Use this to define how internal navigation links are rendered.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```tsx
|
|
195
|
+
* internalLinkRenderer: ({ information }) => (
|
|
196
|
+
* <Link href={information.href}>{information.text}</Link>
|
|
197
|
+
* )
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
internalLinkRenderer: InternalLinkRenderer;
|
|
201
|
+
/**
|
|
202
|
+
* Optional renderer for Internal link entries embedded as a **block** in rich text
|
|
203
|
+
* (`BLOCKS.EMBEDDED_ENTRY`). Use for block-level presentation (e.g. CTA button) that
|
|
204
|
+
* differs from inline links. Inline embeds and entry hyperlinks still use `internalLinkRenderer`.
|
|
205
|
+
* When omitted, block embeds fall back to `internalLinkRenderer` inside the position wrapper
|
|
206
|
+
* (non-breaking for existing projects).
|
|
207
|
+
*/
|
|
208
|
+
embeddedBlockInternalLinkRenderer?: EmbeddedBlockInternalLinkRenderer;
|
|
209
|
+
/**
|
|
210
|
+
* Map of custom content types to their renderers (optional).
|
|
211
|
+
* Use this for project-specific content types that extend the base CMS content model.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```tsx
|
|
215
|
+
* customContentMap: {
|
|
216
|
+
* "pricingPlan": PricingPlanRenderer,
|
|
217
|
+
* "testimonial": TestimonialRenderer,
|
|
218
|
+
* }
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
customContentMap?: Partial<Record<string, React.FC<{
|
|
222
|
+
information: any;
|
|
223
|
+
contentContext: IContentContext;
|
|
224
|
+
}>>>;
|
|
225
|
+
/**
|
|
226
|
+
* Tailwind (or other) classes applied to the `HtmlComponent` root when `fullWidth` is true.
|
|
227
|
+
* Omit for the built-in viewport-breakout default. Use project-specific classes for your grid.
|
|
228
|
+
*/
|
|
229
|
+
htmlComponentFullWidthClassName?: string;
|
|
230
|
+
/**
|
|
231
|
+
* Map of type → types it defers to. Built from defaultOf in component/collection registrations.
|
|
232
|
+
* When an item's type is a key here, it is not rendered if any of the listed types exist in the page.
|
|
233
|
+
*/
|
|
234
|
+
defaultsMap?: Record<string, string[]>;
|
|
235
|
+
/**
|
|
236
|
+
* Optional custom text processor for both rich text and plain text.
|
|
237
|
+
* When provided, used instead of default convertText (e.g. for {{phone}} placeholders).
|
|
238
|
+
*/
|
|
239
|
+
processText?: (text: string, contentContext?: IContentContext) => React.ReactNode;
|
|
240
|
+
/**
|
|
241
|
+
* Preview helpers for Contentful live preview.
|
|
242
|
+
* Pass these from cms-server to avoid circular imports (cms-server → cms → registrations → components → cms-server).
|
|
243
|
+
* Components use rendererConfig.previewHelpers?.getPreviewFieldIdProps(id, fieldId) instead of importing from cms-server.
|
|
244
|
+
*/
|
|
245
|
+
previewHelpers: PreviewHelpers;
|
|
246
|
+
/**
|
|
247
|
+
* Fetch helpers for components that need to load data (getAllArticleLinks, getRelatedArticles, etc.).
|
|
248
|
+
* Pass from cms-server to avoid circular imports in collection/component renderers.
|
|
249
|
+
*/
|
|
250
|
+
fetchHelpers: FetchHelpers;
|
|
251
|
+
/**
|
|
252
|
+
* Build configuration (isProduction, baseUrl, etc.).
|
|
253
|
+
* Error panels (unknown types, render errors) are shown when `!buildInformation.isProduction`.
|
|
254
|
+
*/
|
|
255
|
+
buildInformation: IBuildInformation;
|
|
256
|
+
defaultComponentRenderer: ComponentRenderer<any>;
|
|
257
|
+
defaultCollectionRenderer: CollectionRenderer<any>;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=CmsRendererConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CmsRendererConfig.d.ts","sourceRoot":"","sources":["../src/CmsRendererConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CmsRendererConfig.js","sourceRoot":"","sources":["../src/CmsRendererConfig.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-only.d.ts","sourceRoot":"","sources":["../../src/__mocks__/server-only.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-only.js","sourceRoot":"","sources":["../../src/__mocks__/server-only.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IAnalyticsContext } from '@se-studio/core-data-types';
|
|
2
|
+
export interface AnalyticsPageTrackerProps {
|
|
3
|
+
/** Merged into page view properties (e.g. content type from CMS). */
|
|
4
|
+
analyticsContext?: IAnalyticsContext;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Tracks soft navigations via the analytics adapter (HubSpot Mode B).
|
|
8
|
+
* Skips the first mount so the initial page view is handled by HubSpot auto-track.
|
|
9
|
+
*/
|
|
10
|
+
export declare function AnalyticsPageTracker({ analyticsContext }: AnalyticsPageTrackerProps): null;
|
|
11
|
+
//# sourceMappingURL=AnalyticsPageTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPageTracker.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsPageTracker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,QAoBnF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { usePathname } from 'next/navigation';
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { useAnalytics } from './useAnalytics';
|
|
5
|
+
/**
|
|
6
|
+
* Tracks soft navigations via the analytics adapter (HubSpot Mode B).
|
|
7
|
+
* Skips the first mount so the initial page view is handled by HubSpot auto-track.
|
|
8
|
+
*/
|
|
9
|
+
export function AnalyticsPageTracker({ analyticsContext }) {
|
|
10
|
+
const pathname = usePathname();
|
|
11
|
+
const { trackPage } = useAnalytics();
|
|
12
|
+
const isFirstMount = useRef(true);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (typeof window === 'undefined') {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (isFirstMount.current) {
|
|
18
|
+
isFirstMount.current = false;
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const context = analyticsContext ?? { slug: pathname };
|
|
22
|
+
trackPage(window.location.href, pathname, context);
|
|
23
|
+
}, [pathname, trackPage, analyticsContext]);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=AnalyticsPageTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPageTracker.js","sourceRoot":"","sources":["../../src/analytics/AnalyticsPageTracker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAE,gBAAgB,EAA6B;IAClF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAsB,gBAAgB,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC1E,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { AnalyticsAdapter } from './types';
|
|
3
|
+
interface AnalyticsProviderProps {
|
|
4
|
+
adapter: AnalyticsAdapter;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Provider component that makes analytics adapter available to child components
|
|
9
|
+
*/
|
|
10
|
+
export declare function AnalyticsProvider({ adapter, children }: AnalyticsProviderProps): import("react").JSX.Element;
|
|
11
|
+
/**
|
|
12
|
+
* Hook to access the analytics adapter from context.
|
|
13
|
+
* Returns a no-op adapter when no provider is present so client components never crash
|
|
14
|
+
* the React tree (SSR prerender and defensive client fallback).
|
|
15
|
+
*/
|
|
16
|
+
export declare function useAnalyticsContext(): AnalyticsAdapter;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=AnalyticsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsProvider.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAgChD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,sBAAsB,+BAE9E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAYtD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
/** Stable global key so duplicate package instances share one React context identity. */
|
|
5
|
+
const GLOBAL_CONTEXT_KEY = '__SE_STUDIO_ANALYTICS_CONTEXT__';
|
|
6
|
+
/**
|
|
7
|
+
* Share one React context identity even when `@se-studio/core-ui` is duplicated in the
|
|
8
|
+
* client bundle (pnpm peer isolation / multi-chunk). Separate module evaluations that each
|
|
9
|
+
* call `createContext()` would otherwise break the provider tree and crash the site with
|
|
10
|
+
* "useAnalyticsContext must be used within an AnalyticsProvider".
|
|
11
|
+
*/
|
|
12
|
+
function getAnalyticsContext() {
|
|
13
|
+
const globalStore = globalThis;
|
|
14
|
+
if (!globalStore[GLOBAL_CONTEXT_KEY]) {
|
|
15
|
+
globalStore[GLOBAL_CONTEXT_KEY] = createContext(null);
|
|
16
|
+
}
|
|
17
|
+
return globalStore[GLOBAL_CONTEXT_KEY];
|
|
18
|
+
}
|
|
19
|
+
const AnalyticsContext = getAnalyticsContext();
|
|
20
|
+
/** Silent no-op when provider is missing (SSR prerender, or no layout provider). */
|
|
21
|
+
const NOOP_ANALYTICS_FALLBACK = {
|
|
22
|
+
trackEvent() { },
|
|
23
|
+
trackPage() { },
|
|
24
|
+
trackClick() { },
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Provider component that makes analytics adapter available to child components
|
|
28
|
+
*/
|
|
29
|
+
export function AnalyticsProvider({ adapter, children }) {
|
|
30
|
+
return _jsx(AnalyticsContext.Provider, { value: adapter, children: children });
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Hook to access the analytics adapter from context.
|
|
34
|
+
* Returns a no-op adapter when no provider is present so client components never crash
|
|
35
|
+
* the React tree (SSR prerender and defensive client fallback).
|
|
36
|
+
*/
|
|
37
|
+
export function useAnalyticsContext() {
|
|
38
|
+
const adapter = useContext(AnalyticsContext);
|
|
39
|
+
if (adapter) {
|
|
40
|
+
return adapter;
|
|
41
|
+
}
|
|
42
|
+
// Dev-only signal that tracking is a no-op (missing layout provider or mis-wiring).
|
|
43
|
+
if (process.env.NODE_ENV !== 'production' && typeof window !== 'undefined') {
|
|
44
|
+
console.warn('[analytics] useAnalyticsContext used without AnalyticsProvider; tracking is a no-op.');
|
|
45
|
+
}
|
|
46
|
+
return NOOP_ANALYTICS_FALLBACK;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=AnalyticsProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["../../src/analytics/AnalyticsProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGlD,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;AAM7D;;;;;GAKG;AACH,SAAS,mBAAmB;IAC1B,MAAM,WAAW,GAAG,UAAwC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrC,WAAW,CAAC,kBAAkB,CAAC,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;AAE/C,oFAAoF;AACpF,MAAM,uBAAuB,GAAqB;IAChD,UAAU,KAAI,CAAC;IACf,SAAS,KAAI,CAAC;IACd,UAAU,KAAI,CAAC;CAChB,CAAC;AAOF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAA0B;IAC7E,OAAO,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YAAG,QAAQ,GAA6B,CAAC;AAC3F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,oFAAoF;IACpF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3E,OAAO,CAAC,IAAI,CACV,sFAAsF,CACvF,CAAC;IACJ,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AnalyticsAdapter, ClickTrackingProperties, PageTrackingProperties } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Fans out analytics calls to multiple adapters (e.g. GTM + HubSpot).
|
|
4
|
+
*/
|
|
5
|
+
export declare class CompositeAnalyticsAdapter implements AnalyticsAdapter {
|
|
6
|
+
private readonly adapters;
|
|
7
|
+
constructor(adapters: AnalyticsAdapter[]);
|
|
8
|
+
initialize(): void;
|
|
9
|
+
trackEvent(event: string, properties: Record<string, unknown>): void;
|
|
10
|
+
trackPage(url: string, properties: PageTrackingProperties): void;
|
|
11
|
+
trackClick(properties: ClickTrackingProperties): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=CompositeAnalyticsAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompositeAnalyticsAdapter.d.ts","sourceRoot":"","sources":["../../../src/analytics/adapters/CompositeAnalyticsAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAQlG;;GAEG;AACH,qBAAa,yBAA0B,YAAW,gBAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,gBAAgB,EAAE;IAEzD,UAAU,IAAI,IAAI;IAMlB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMpE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,GAAG,IAAI;IAMhE,UAAU,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;CAKtD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
function callInitialize(adapter) {
|
|
2
|
+
if ('initialize' in adapter && typeof adapter.initialize === 'function') {
|
|
3
|
+
adapter.initialize();
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Fans out analytics calls to multiple adapters (e.g. GTM + HubSpot).
|
|
8
|
+
*/
|
|
9
|
+
export class CompositeAnalyticsAdapter {
|
|
10
|
+
adapters;
|
|
11
|
+
constructor(adapters) {
|
|
12
|
+
this.adapters = adapters;
|
|
13
|
+
}
|
|
14
|
+
initialize() {
|
|
15
|
+
for (const adapter of this.adapters) {
|
|
16
|
+
callInitialize(adapter);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
trackEvent(event, properties) {
|
|
20
|
+
for (const adapter of this.adapters) {
|
|
21
|
+
adapter.trackEvent(event, properties);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
trackPage(url, properties) {
|
|
25
|
+
for (const adapter of this.adapters) {
|
|
26
|
+
adapter.trackPage(url, properties);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
trackClick(properties) {
|
|
30
|
+
for (const adapter of this.adapters) {
|
|
31
|
+
adapter.trackClick(properties);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=CompositeAnalyticsAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompositeAnalyticsAdapter.js","sourceRoot":"","sources":["../../../src/analytics/adapters/CompositeAnalyticsAdapter.ts"],"names":[],"mappings":"AAEA,SAAS,cAAc,CAAC,OAAyB;IAC/C,IAAI,YAAY,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACxE,OAAO,CAAC,UAAU,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACP;IAA7B,YAA6B,QAA4B;QAA5B,aAAQ,GAAR,QAAQ,CAAoB;IAAG,CAAC;IAE7D,UAAU;QACR,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,UAAmC;QAC3D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,UAAkC;QACvD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,UAAmC;QAC5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AnalyticsAdapter, ClickTrackingProperties, PageTrackingProperties } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Adapter that wraps another analytics adapter and checks for consent before tracking.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* const gtmAdapter = new GoogleTagManagerAdapter(...);
|
|
8
|
+
* const consentAwareAdapter = new ConsentAwareAdapter(gtmAdapter, 'google-tag-manager');
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export declare class ConsentAwareAdapter implements AnalyticsAdapter {
|
|
12
|
+
private adapter;
|
|
13
|
+
private consentName;
|
|
14
|
+
private getConsent;
|
|
15
|
+
constructor(adapter: AnalyticsAdapter, consentName: string, getConsent: (name: string) => boolean);
|
|
16
|
+
trackEvent(event: string, properties: Record<string, unknown>): void;
|
|
17
|
+
trackPage(url: string, properties: PageTrackingProperties): void;
|
|
18
|
+
trackClick(properties: ClickTrackingProperties): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ConsentAwareAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsentAwareAdapter.d.ts","sourceRoot":"","sources":["../../../src/analytics/adapters/ConsentAwareAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElG;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IAExD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;gBAFV,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO;IAG/C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMpE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,GAAG,IAAI;IAMhE,UAAU,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;CAKtD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter that wraps another analytics adapter and checks for consent before tracking.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* const gtmAdapter = new GoogleTagManagerAdapter(...);
|
|
7
|
+
* const consentAwareAdapter = new ConsentAwareAdapter(gtmAdapter, 'google-tag-manager');
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export class ConsentAwareAdapter {
|
|
11
|
+
adapter;
|
|
12
|
+
consentName;
|
|
13
|
+
getConsent;
|
|
14
|
+
constructor(adapter, consentName, getConsent) {
|
|
15
|
+
this.adapter = adapter;
|
|
16
|
+
this.consentName = consentName;
|
|
17
|
+
this.getConsent = getConsent;
|
|
18
|
+
}
|
|
19
|
+
trackEvent(event, properties) {
|
|
20
|
+
if (this.getConsent(this.consentName)) {
|
|
21
|
+
this.adapter.trackEvent(event, properties);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
trackPage(url, properties) {
|
|
25
|
+
if (this.getConsent(this.consentName)) {
|
|
26
|
+
this.adapter.trackPage(url, properties);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
trackClick(properties) {
|
|
30
|
+
if (this.getConsent(this.consentName)) {
|
|
31
|
+
this.adapter.trackClick(properties);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ConsentAwareAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsentAwareAdapter.js","sourceRoot":"","sources":["../../../src/analytics/adapters/ConsentAwareAdapter.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IAEpB;IACA;IACA;IAHV,YACU,OAAyB,EACzB,WAAmB,EACnB,UAAqC;QAFrC,YAAO,GAAP,OAAO,CAAkB;QACzB,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAA2B;IAC5C,CAAC;IAEJ,UAAU,CAAC,KAAa,EAAE,UAAmC;QAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,UAAkC;QACvD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,UAAU,CAAC,UAAmC;QAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AnalyticsAdapter, ClickTrackingProperties, PageTrackingProperties } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Console adapter used as the default/example implementation.
|
|
4
|
+
* Customer projects should provide their own adapter that satisfies `AnalyticsAdapter`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConsoleAnalyticsAdapter implements AnalyticsAdapter {
|
|
7
|
+
private log;
|
|
8
|
+
trackEvent(event: string, properties: Record<string, unknown>): void;
|
|
9
|
+
trackPage(url: string, properties: PageTrackingProperties): void;
|
|
10
|
+
trackClick(properties: ClickTrackingProperties): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ConsoleAnalyticsAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleAnalyticsAdapter.d.ts","sourceRoot":"","sources":["../../../src/analytics/adapters/ConsoleAnalyticsAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElG;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,OAAO,CAAC,GAAG;IAKX,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,GAAG,IAAI;IAIhE,UAAU,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;CAItD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* Console adapter used as the default/example implementation.
|
|
4
|
+
* Customer projects should provide their own adapter that satisfies `AnalyticsAdapter`.
|
|
5
|
+
*/
|
|
6
|
+
export class ConsoleAnalyticsAdapter {
|
|
7
|
+
log(...args) {
|
|
8
|
+
// eslint-disable-next-line no-console -- intentional logging adapter
|
|
9
|
+
console.log('[Analytics]', ...args);
|
|
10
|
+
}
|
|
11
|
+
trackEvent(event, properties) {
|
|
12
|
+
this.log('event', event, properties);
|
|
13
|
+
}
|
|
14
|
+
trackPage(url, properties) {
|
|
15
|
+
this.log('page', { ...properties, url });
|
|
16
|
+
}
|
|
17
|
+
trackClick(properties) {
|
|
18
|
+
const eventName = properties.trackingInfo?.trackingEventName?.trim() || 'click';
|
|
19
|
+
this.log(eventName, properties);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=ConsoleAnalyticsAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleAnalyticsAdapter.js","sourceRoot":"","sources":["../../../src/analytics/adapters/ConsoleAnalyticsAdapter.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAC1B,GAAG,CAAC,GAAG,IAAe;QAC5B,qEAAqE;QACrE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,UAAmC;QAC3D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,UAAkC;QACvD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,UAAmC;QAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AnalyticsAdapter, ClickTrackingProperties, PageTrackingProperties } from '../types';
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
dataLayer: unknown[];
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Consent state for GTM Consent Mode v2
|
|
9
|
+
*/
|
|
10
|
+
interface ConsentState {
|
|
11
|
+
/** Controls analytics_storage */
|
|
12
|
+
analytics?: boolean;
|
|
13
|
+
/** Controls ad_storage, ad_user_data, ad_personalization */
|
|
14
|
+
advertising?: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface GoogleTagManagerConfig {
|
|
17
|
+
/**
|
|
18
|
+
* GTM Container ID (e.g., GTM-XXXXXXX)
|
|
19
|
+
*/
|
|
20
|
+
containerId?: string;
|
|
21
|
+
/**
|
|
22
|
+
* GA4 Measurement ID (e.g., G-XXXXXXXXXX)
|
|
23
|
+
* If provided, it will be initialized via gtag.js if GTM is not used,
|
|
24
|
+
* or can be used alongside GTM if needed.
|
|
25
|
+
*/
|
|
26
|
+
measurementId?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class GoogleTagManagerAdapter implements AnalyticsAdapter {
|
|
29
|
+
private initialized;
|
|
30
|
+
private config;
|
|
31
|
+
constructor(config: GoogleTagManagerConfig);
|
|
32
|
+
/**
|
|
33
|
+
* Push gtag commands to dataLayer
|
|
34
|
+
*/
|
|
35
|
+
private gtag;
|
|
36
|
+
/**
|
|
37
|
+
* Initialize consent mode with all consent types granted by default
|
|
38
|
+
*/
|
|
39
|
+
private initializeConsentMode;
|
|
40
|
+
initialize(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Update consent state for specific purposes.
|
|
43
|
+
* Call this when user grants or revokes consent.
|
|
44
|
+
*
|
|
45
|
+
* @param consent - Object with analytics and/or advertising consent state
|
|
46
|
+
*/
|
|
47
|
+
updateConsent(consent: ConsentState): void;
|
|
48
|
+
trackEvent(event: string, properties: Record<string, unknown>): void;
|
|
49
|
+
trackPage(url: string, properties: PageTrackingProperties): void;
|
|
50
|
+
trackClick(properties: ClickTrackingProperties): void;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=GoogleTagManagerAdapter.d.ts.map
|