@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.
Files changed (625) hide show
  1. package/ANALYTICS.md +160 -0
  2. package/CHANGELOG.md +2565 -0
  3. package/CMS_INFRASTRUCTURE.md +370 -0
  4. package/CONSENT.md +121 -0
  5. package/README.md +638 -0
  6. package/dist/CmsRendererConfig.d.ts +259 -0
  7. package/dist/CmsRendererConfig.d.ts.map +1 -0
  8. package/dist/CmsRendererConfig.js +2 -0
  9. package/dist/CmsRendererConfig.js.map +1 -0
  10. package/dist/__mocks__/server-only.d.ts +2 -0
  11. package/dist/__mocks__/server-only.d.ts.map +1 -0
  12. package/dist/__mocks__/server-only.js +2 -0
  13. package/dist/__mocks__/server-only.js.map +1 -0
  14. package/dist/analytics/AnalyticsPageTracker.d.ts +11 -0
  15. package/dist/analytics/AnalyticsPageTracker.d.ts.map +1 -0
  16. package/dist/analytics/AnalyticsPageTracker.js +26 -0
  17. package/dist/analytics/AnalyticsPageTracker.js.map +1 -0
  18. package/dist/analytics/AnalyticsProvider.d.ts +18 -0
  19. package/dist/analytics/AnalyticsProvider.d.ts.map +1 -0
  20. package/dist/analytics/AnalyticsProvider.js +48 -0
  21. package/dist/analytics/AnalyticsProvider.js.map +1 -0
  22. package/dist/analytics/adapters/CompositeAnalyticsAdapter.d.ts +13 -0
  23. package/dist/analytics/adapters/CompositeAnalyticsAdapter.d.ts.map +1 -0
  24. package/dist/analytics/adapters/CompositeAnalyticsAdapter.js +35 -0
  25. package/dist/analytics/adapters/CompositeAnalyticsAdapter.js.map +1 -0
  26. package/dist/analytics/adapters/ConsentAwareAdapter.d.ts +20 -0
  27. package/dist/analytics/adapters/ConsentAwareAdapter.d.ts.map +1 -0
  28. package/dist/analytics/adapters/ConsentAwareAdapter.js +35 -0
  29. package/dist/analytics/adapters/ConsentAwareAdapter.js.map +1 -0
  30. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts +12 -0
  31. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts.map +1 -0
  32. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js +22 -0
  33. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js.map +1 -0
  34. package/dist/analytics/adapters/GoogleTagManagerAdapter.d.ts +53 -0
  35. package/dist/analytics/adapters/GoogleTagManagerAdapter.d.ts.map +1 -0
  36. package/dist/analytics/adapters/GoogleTagManagerAdapter.js +134 -0
  37. package/dist/analytics/adapters/GoogleTagManagerAdapter.js.map +1 -0
  38. package/dist/analytics/adapters/index.d.ts +5 -0
  39. package/dist/analytics/adapters/index.d.ts.map +1 -0
  40. package/dist/analytics/adapters/index.js +5 -0
  41. package/dist/analytics/adapters/index.js.map +1 -0
  42. package/dist/analytics/types.d.ts +42 -0
  43. package/dist/analytics/types.d.ts.map +1 -0
  44. package/dist/analytics/types.js +2 -0
  45. package/dist/analytics/types.js.map +1 -0
  46. package/dist/analytics/useAnalytics.d.ts +44 -0
  47. package/dist/analytics/useAnalytics.d.ts.map +1 -0
  48. package/dist/analytics/useAnalytics.js +69 -0
  49. package/dist/analytics/useAnalytics.js.map +1 -0
  50. package/dist/analytics/video/classifySeek.d.ts +15 -0
  51. package/dist/analytics/video/classifySeek.d.ts.map +1 -0
  52. package/dist/analytics/video/classifySeek.js +32 -0
  53. package/dist/analytics/video/classifySeek.js.map +1 -0
  54. package/dist/analytics/video/createVideoEngagementSession.d.ts +51 -0
  55. package/dist/analytics/video/createVideoEngagementSession.d.ts.map +1 -0
  56. package/dist/analytics/video/createVideoEngagementSession.js +225 -0
  57. package/dist/analytics/video/createVideoEngagementSession.js.map +1 -0
  58. package/dist/analytics/video/index.d.ts +6 -0
  59. package/dist/analytics/video/index.d.ts.map +1 -0
  60. package/dist/analytics/video/index.js +6 -0
  61. package/dist/analytics/video/index.js.map +1 -0
  62. package/dist/analytics/video/loadYouTubeIframeApi.d.ts +50 -0
  63. package/dist/analytics/video/loadYouTubeIframeApi.d.ts.map +1 -0
  64. package/dist/analytics/video/loadYouTubeIframeApi.js +52 -0
  65. package/dist/analytics/video/loadYouTubeIframeApi.js.map +1 -0
  66. package/dist/analytics/video/useHtml5VideoEngagement.d.ts +8 -0
  67. package/dist/analytics/video/useHtml5VideoEngagement.d.ts.map +1 -0
  68. package/dist/analytics/video/useHtml5VideoEngagement.js +67 -0
  69. package/dist/analytics/video/useHtml5VideoEngagement.js.map +1 -0
  70. package/dist/analytics/video/useVideoEngagement.d.ts +19 -0
  71. package/dist/analytics/video/useVideoEngagement.d.ts.map +1 -0
  72. package/dist/analytics/video/useVideoEngagement.js +80 -0
  73. package/dist/analytics/video/useVideoEngagement.js.map +1 -0
  74. package/dist/analytics/video/videoEngagementTypes.d.ts +52 -0
  75. package/dist/analytics/video/videoEngagementTypes.d.ts.map +1 -0
  76. package/dist/analytics/video/videoEngagementTypes.js +45 -0
  77. package/dist/analytics/video/videoEngagementTypes.js.map +1 -0
  78. package/dist/app-helpers.d.ts +196 -0
  79. package/dist/app-helpers.d.ts.map +1 -0
  80. package/dist/app-helpers.js +322 -0
  81. package/dist/app-helpers.js.map +1 -0
  82. package/dist/cmsRegistration.d.ts +302 -0
  83. package/dist/cmsRegistration.d.ts.map +1 -0
  84. package/dist/cmsRegistration.js +242 -0
  85. package/dist/cmsRegistration.js.map +1 -0
  86. package/dist/components/Animation.d.ts +3 -0
  87. package/dist/components/Animation.d.ts.map +1 -0
  88. package/dist/components/Animation.js +2 -0
  89. package/dist/components/Animation.js.map +1 -0
  90. package/dist/components/AnimationComponent.d.ts +9 -0
  91. package/dist/components/AnimationComponent.d.ts.map +1 -0
  92. package/dist/components/AnimationComponent.js +18 -0
  93. package/dist/components/AnimationComponent.js.map +1 -0
  94. package/dist/components/ClientMonitor.d.ts +7 -0
  95. package/dist/components/ClientMonitor.d.ts.map +1 -0
  96. package/dist/components/ClientMonitor.js +368 -0
  97. package/dist/components/ClientMonitor.js.map +1 -0
  98. package/dist/components/CmsCollection.d.ts +68 -0
  99. package/dist/components/CmsCollection.d.ts.map +1 -0
  100. package/dist/components/CmsCollection.js +68 -0
  101. package/dist/components/CmsCollection.js.map +1 -0
  102. package/dist/components/CmsComponent.d.ts +68 -0
  103. package/dist/components/CmsComponent.d.ts.map +1 -0
  104. package/dist/components/CmsComponent.js +68 -0
  105. package/dist/components/CmsComponent.js.map +1 -0
  106. package/dist/components/CmsContent.d.ts +105 -0
  107. package/dist/components/CmsContent.d.ts.map +1 -0
  108. package/dist/components/CmsContent.js +200 -0
  109. package/dist/components/CmsContent.js.map +1 -0
  110. package/dist/components/CmsConversionErrors.d.ts +8 -0
  111. package/dist/components/CmsConversionErrors.d.ts.map +1 -0
  112. package/dist/components/CmsConversionErrors.js +51 -0
  113. package/dist/components/CmsConversionErrors.js.map +1 -0
  114. package/dist/components/CmsDataError.d.ts +14 -0
  115. package/dist/components/CmsDataError.d.ts.map +1 -0
  116. package/dist/components/CmsDataError.js +7 -0
  117. package/dist/components/CmsDataError.js.map +1 -0
  118. package/dist/components/CmsDevLayout.d.ts +23 -0
  119. package/dist/components/CmsDevLayout.d.ts.map +1 -0
  120. package/dist/components/CmsDevLayout.js +26 -0
  121. package/dist/components/CmsDevLayout.js.map +1 -0
  122. package/dist/components/CmsEmbeddedContent.d.ts +10 -0
  123. package/dist/components/CmsEmbeddedContent.d.ts.map +1 -0
  124. package/dist/components/CmsEmbeddedContent.js +51 -0
  125. package/dist/components/CmsEmbeddedContent.js.map +1 -0
  126. package/dist/components/CmsExternalComponent.d.ts +63 -0
  127. package/dist/components/CmsExternalComponent.d.ts.map +1 -0
  128. package/dist/components/CmsExternalComponent.js +68 -0
  129. package/dist/components/CmsExternalComponent.js.map +1 -0
  130. package/dist/components/CmsRoutesLayout.d.ts +16 -0
  131. package/dist/components/CmsRoutesLayout.d.ts.map +1 -0
  132. package/dist/components/CmsRoutesLayout.js +17 -0
  133. package/dist/components/CmsRoutesLayout.js.map +1 -0
  134. package/dist/components/DefaultExternalVideoPlayButton.d.ts +3 -0
  135. package/dist/components/DefaultExternalVideoPlayButton.d.ts.map +1 -0
  136. package/dist/components/DefaultExternalVideoPlayButton.js +6 -0
  137. package/dist/components/DefaultExternalVideoPlayButton.js.map +1 -0
  138. package/dist/components/DotLottieAnimationComponent.d.ts +16 -0
  139. package/dist/components/DotLottieAnimationComponent.d.ts.map +1 -0
  140. package/dist/components/DotLottieAnimationComponent.js +88 -0
  141. package/dist/components/DotLottieAnimationComponent.js.map +1 -0
  142. package/dist/components/ErrorBoundary.d.ts +19 -0
  143. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  144. package/dist/components/ErrorBoundary.js +32 -0
  145. package/dist/components/ErrorBoundary.js.map +1 -0
  146. package/dist/components/ExternalVideoComponent.d.ts +9 -0
  147. package/dist/components/ExternalVideoComponent.d.ts.map +1 -0
  148. package/dist/components/ExternalVideoComponent.js +39 -0
  149. package/dist/components/ExternalVideoComponent.js.map +1 -0
  150. package/dist/components/ExternalVimeoEmbed.d.ts +12 -0
  151. package/dist/components/ExternalVimeoEmbed.d.ts.map +1 -0
  152. package/dist/components/ExternalVimeoEmbed.js +211 -0
  153. package/dist/components/ExternalVimeoEmbed.js.map +1 -0
  154. package/dist/components/ExternalYouTubeEmbed.d.ts +9 -0
  155. package/dist/components/ExternalYouTubeEmbed.d.ts.map +1 -0
  156. package/dist/components/ExternalYouTubeEmbed.js +220 -0
  157. package/dist/components/ExternalYouTubeEmbed.js.map +1 -0
  158. package/dist/components/HeroLoopVideo.d.ts +13 -0
  159. package/dist/components/HeroLoopVideo.d.ts.map +1 -0
  160. package/dist/components/HeroLoopVideo.js +146 -0
  161. package/dist/components/HeroLoopVideo.js.map +1 -0
  162. package/dist/components/HtmlComponent.d.ts +21 -0
  163. package/dist/components/HtmlComponent.d.ts.map +1 -0
  164. package/dist/components/HtmlComponent.js +34 -0
  165. package/dist/components/HtmlComponent.js.map +1 -0
  166. package/dist/components/HtmlComponentScript.d.ts +12 -0
  167. package/dist/components/HtmlComponentScript.d.ts.map +1 -0
  168. package/dist/components/HtmlComponentScript.js +12 -0
  169. package/dist/components/HtmlComponentScript.js.map +1 -0
  170. package/dist/components/ImageComponent.d.ts +7 -0
  171. package/dist/components/ImageComponent.d.ts.map +1 -0
  172. package/dist/components/ImageComponent.js +20 -0
  173. package/dist/components/ImageComponent.js.map +1 -0
  174. package/dist/components/ImageKitClientVideo.d.ts +16 -0
  175. package/dist/components/ImageKitClientVideo.d.ts.map +1 -0
  176. package/dist/components/ImageKitClientVideo.js +211 -0
  177. package/dist/components/ImageKitClientVideo.js.map +1 -0
  178. package/dist/components/ImageKitHlsVideoClient.d.ts +21 -0
  179. package/dist/components/ImageKitHlsVideoClient.d.ts.map +1 -0
  180. package/dist/components/ImageKitHlsVideoClient.js +167 -0
  181. package/dist/components/ImageKitHlsVideoClient.js.map +1 -0
  182. package/dist/components/LazyAnimation.d.ts +16 -0
  183. package/dist/components/LazyAnimation.d.ts.map +1 -0
  184. package/dist/components/LazyAnimation.js +90 -0
  185. package/dist/components/LazyAnimation.js.map +1 -0
  186. package/dist/components/LazyVideo.d.ts +19 -0
  187. package/dist/components/LazyVideo.d.ts.map +1 -0
  188. package/dist/components/LazyVideo.js +134 -0
  189. package/dist/components/LazyVideo.js.map +1 -0
  190. package/dist/components/LocalVideo.d.ts +10 -0
  191. package/dist/components/LocalVideo.d.ts.map +1 -0
  192. package/dist/components/LocalVideo.js +66 -0
  193. package/dist/components/LocalVideo.js.map +1 -0
  194. package/dist/components/LocalVideoPlayChrome.d.ts +20 -0
  195. package/dist/components/LocalVideoPlayChrome.d.ts.map +1 -0
  196. package/dist/components/LocalVideoPlayChrome.js +22 -0
  197. package/dist/components/LocalVideoPlayChrome.js.map +1 -0
  198. package/dist/components/LocalVideoPlayOverlay.d.ts +19 -0
  199. package/dist/components/LocalVideoPlayOverlay.d.ts.map +1 -0
  200. package/dist/components/LocalVideoPlayOverlay.js +49 -0
  201. package/dist/components/LocalVideoPlayOverlay.js.map +1 -0
  202. package/dist/components/PictureComponent.d.ts +7 -0
  203. package/dist/components/PictureComponent.d.ts.map +1 -0
  204. package/dist/components/PictureComponent.js +29 -0
  205. package/dist/components/PictureComponent.js.map +1 -0
  206. package/dist/components/Preview.d.ts +2 -0
  207. package/dist/components/Preview.d.ts.map +1 -0
  208. package/dist/components/Preview.js +52 -0
  209. package/dist/components/Preview.js.map +1 -0
  210. package/dist/components/StructuredData.d.ts +20 -0
  211. package/dist/components/StructuredData.d.ts.map +1 -0
  212. package/dist/components/StructuredData.js +116 -0
  213. package/dist/components/StructuredData.js.map +1 -0
  214. package/dist/components/SvgComponent.d.ts +7 -0
  215. package/dist/components/SvgComponent.d.ts.map +1 -0
  216. package/dist/components/SvgComponent.js +10 -0
  217. package/dist/components/SvgComponent.js.map +1 -0
  218. package/dist/components/SvgIconComponent.d.ts +20 -0
  219. package/dist/components/SvgIconComponent.d.ts.map +1 -0
  220. package/dist/components/SvgIconComponent.js +23 -0
  221. package/dist/components/SvgIconComponent.js.map +1 -0
  222. package/dist/components/SvgImageComponent.d.ts +7 -0
  223. package/dist/components/SvgImageComponent.d.ts.map +1 -0
  224. package/dist/components/SvgImageComponent.js +10 -0
  225. package/dist/components/SvgImageComponent.js.map +1 -0
  226. package/dist/components/SvgSpriteSheet.d.ts +24 -0
  227. package/dist/components/SvgSpriteSheet.d.ts.map +1 -0
  228. package/dist/components/SvgSpriteSheet.js +37 -0
  229. package/dist/components/SvgSpriteSheet.js.map +1 -0
  230. package/dist/components/Video.d.ts +11 -0
  231. package/dist/components/Video.d.ts.map +1 -0
  232. package/dist/components/Video.js +2 -0
  233. package/dist/components/Video.js.map +1 -0
  234. package/dist/components/VideoComponent.d.ts +10 -0
  235. package/dist/components/VideoComponent.d.ts.map +1 -0
  236. package/dist/components/VideoComponent.js +22 -0
  237. package/dist/components/VideoComponent.js.map +1 -0
  238. package/dist/components/Visual.d.ts +43 -0
  239. package/dist/components/Visual.d.ts.map +1 -0
  240. package/dist/components/Visual.js +60 -0
  241. package/dist/components/Visual.js.map +1 -0
  242. package/dist/components/VisualComponent.d.ts +83 -0
  243. package/dist/components/VisualComponent.d.ts.map +1 -0
  244. package/dist/components/VisualComponent.js +136 -0
  245. package/dist/components/VisualComponent.js.map +1 -0
  246. package/dist/components/banner/BannerClient.d.ts +13 -0
  247. package/dist/components/banner/BannerClient.d.ts.map +1 -0
  248. package/dist/components/banner/BannerClient.js +38 -0
  249. package/dist/components/banner/BannerClient.js.map +1 -0
  250. package/dist/components/banner/BannerManager.d.ts +26 -0
  251. package/dist/components/banner/BannerManager.d.ts.map +1 -0
  252. package/dist/components/banner/BannerManager.js +35 -0
  253. package/dist/components/banner/BannerManager.js.map +1 -0
  254. package/dist/components/banner/BannerTargeting.d.ts +20 -0
  255. package/dist/components/banner/BannerTargeting.d.ts.map +1 -0
  256. package/dist/components/banner/BannerTargeting.js +204 -0
  257. package/dist/components/banner/BannerTargeting.js.map +1 -0
  258. package/dist/components/banner/bannerVisibility.d.ts +20 -0
  259. package/dist/components/banner/bannerVisibility.d.ts.map +1 -0
  260. package/dist/components/banner/bannerVisibility.js +73 -0
  261. package/dist/components/banner/bannerVisibility.js.map +1 -0
  262. package/dist/components/clientMonitorVideos.d.ts +6 -0
  263. package/dist/components/clientMonitorVideos.d.ts.map +1 -0
  264. package/dist/components/clientMonitorVideos.js +116 -0
  265. package/dist/components/clientMonitorVideos.js.map +1 -0
  266. package/dist/components/dotlottieWasm.d.ts +19 -0
  267. package/dist/components/dotlottieWasm.d.ts.map +1 -0
  268. package/dist/components/dotlottieWasm.js +62 -0
  269. package/dist/components/dotlottieWasm.js.map +1 -0
  270. package/dist/components/heroLoop.d.ts +22 -0
  271. package/dist/components/heroLoop.d.ts.map +1 -0
  272. package/dist/components/heroLoop.js +24 -0
  273. package/dist/components/heroLoop.js.map +1 -0
  274. package/dist/components/svg.d.ts +3 -0
  275. package/dist/components/svg.d.ts.map +1 -0
  276. package/dist/components/svg.js +64 -0
  277. package/dist/components/svg.js.map +1 -0
  278. package/dist/context/ExternalVideoPlayButtonContext.d.ts +7 -0
  279. package/dist/context/ExternalVideoPlayButtonContext.d.ts.map +1 -0
  280. package/dist/context/ExternalVideoPlayButtonContext.js +11 -0
  281. package/dist/context/ExternalVideoPlayButtonContext.js.map +1 -0
  282. package/dist/elements/RtfOrString.d.ts +26 -0
  283. package/dist/elements/RtfOrString.d.ts.map +1 -0
  284. package/dist/elements/RtfOrString.js +13 -0
  285. package/dist/elements/RtfOrString.js.map +1 -0
  286. package/dist/elements/TrackedLink.d.ts +25 -0
  287. package/dist/elements/TrackedLink.d.ts.map +1 -0
  288. package/dist/elements/TrackedLink.js +96 -0
  289. package/dist/elements/TrackedLink.js.map +1 -0
  290. package/dist/elements/UtmLink.d.ts +7 -0
  291. package/dist/elements/UtmLink.d.ts.map +1 -0
  292. package/dist/elements/UtmLink.js +24 -0
  293. package/dist/elements/UtmLink.js.map +1 -0
  294. package/dist/framework/BackgroundMedia.d.ts +12 -0
  295. package/dist/framework/BackgroundMedia.d.ts.map +1 -0
  296. package/dist/framework/BackgroundMedia.js +23 -0
  297. package/dist/framework/BackgroundMedia.js.map +1 -0
  298. package/dist/framework/ComponentErrorIndicator.d.ts +12 -0
  299. package/dist/framework/ComponentErrorIndicator.d.ts.map +1 -0
  300. package/dist/framework/ComponentErrorIndicator.js +29 -0
  301. package/dist/framework/ComponentErrorIndicator.js.map +1 -0
  302. package/dist/framework/ContainedVisual.d.ts +12 -0
  303. package/dist/framework/ContainedVisual.d.ts.map +1 -0
  304. package/dist/framework/ContainedVisual.js +14 -0
  305. package/dist/framework/ContainedVisual.js.map +1 -0
  306. package/dist/framework/ResponsiveVisual.d.ts +14 -0
  307. package/dist/framework/ResponsiveVisual.d.ts.map +1 -0
  308. package/dist/framework/ResponsiveVisual.js +14 -0
  309. package/dist/framework/ResponsiveVisual.js.map +1 -0
  310. package/dist/framework/componentErrors.d.ts +19 -0
  311. package/dist/framework/componentErrors.d.ts.map +1 -0
  312. package/dist/framework/componentErrors.js +31 -0
  313. package/dist/framework/componentErrors.js.map +1 -0
  314. package/dist/hooks/useClickTracking.d.ts +58 -0
  315. package/dist/hooks/useClickTracking.d.ts.map +1 -0
  316. package/dist/hooks/useClickTracking.js +48 -0
  317. package/dist/hooks/useClickTracking.js.map +1 -0
  318. package/dist/hooks/useDocumentVisible.d.ts +2 -0
  319. package/dist/hooks/useDocumentVisible.d.ts.map +1 -0
  320. package/dist/hooks/useDocumentVisible.js +17 -0
  321. package/dist/hooks/useDocumentVisible.js.map +1 -0
  322. package/dist/hooks/visibility.d.ts +14 -0
  323. package/dist/hooks/visibility.d.ts.map +1 -0
  324. package/dist/hooks/visibility.js +122 -0
  325. package/dist/hooks/visibility.js.map +1 -0
  326. package/dist/index.d.ts +134 -0
  327. package/dist/index.d.ts.map +1 -0
  328. package/dist/index.js +120 -0
  329. package/dist/index.js.map +1 -0
  330. package/dist/media-library/MediaLibraryAnimationPlayer.d.ts +9 -0
  331. package/dist/media-library/MediaLibraryAnimationPlayer.d.ts.map +1 -0
  332. package/dist/media-library/MediaLibraryAnimationPlayer.js +99 -0
  333. package/dist/media-library/MediaLibraryAnimationPlayer.js.map +1 -0
  334. package/dist/media-library/MediaLibraryGrid.d.ts +5 -0
  335. package/dist/media-library/MediaLibraryGrid.d.ts.map +1 -0
  336. package/dist/media-library/MediaLibraryGrid.js +88 -0
  337. package/dist/media-library/MediaLibraryGrid.js.map +1 -0
  338. package/dist/media-library/MediaLibraryPage.d.ts +17 -0
  339. package/dist/media-library/MediaLibraryPage.d.ts.map +1 -0
  340. package/dist/media-library/MediaLibraryPage.js +30 -0
  341. package/dist/media-library/MediaLibraryPage.js.map +1 -0
  342. package/dist/media-library/index.d.ts +4 -0
  343. package/dist/media-library/index.d.ts.map +1 -0
  344. package/dist/media-library/index.js +4 -0
  345. package/dist/media-library/index.js.map +1 -0
  346. package/dist/media-library/types.d.ts +8 -0
  347. package/dist/media-library/types.d.ts.map +1 -0
  348. package/dist/media-library/types.js +12 -0
  349. package/dist/media-library/types.js.map +1 -0
  350. package/dist/route-handlers/createCmsTxtHandler.d.ts +19 -0
  351. package/dist/route-handlers/createCmsTxtHandler.d.ts.map +1 -0
  352. package/dist/route-handlers/createCmsTxtHandler.js +154 -0
  353. package/dist/route-handlers/createCmsTxtHandler.js.map +1 -0
  354. package/dist/route-handlers/createDiscoveryHandler.d.ts +67 -0
  355. package/dist/route-handlers/createDiscoveryHandler.d.ts.map +1 -0
  356. package/dist/route-handlers/createDiscoveryHandler.js +190 -0
  357. package/dist/route-handlers/createDiscoveryHandler.js.map +1 -0
  358. package/dist/route-handlers/createGuidelinesHandler.d.ts +16 -0
  359. package/dist/route-handlers/createGuidelinesHandler.d.ts.map +1 -0
  360. package/dist/route-handlers/createGuidelinesHandler.js +100 -0
  361. package/dist/route-handlers/createGuidelinesHandler.js.map +1 -0
  362. package/dist/route-handlers/createMediaLibraryHandler.d.ts +19 -0
  363. package/dist/route-handlers/createMediaLibraryHandler.d.ts.map +1 -0
  364. package/dist/route-handlers/createMediaLibraryHandler.js +76 -0
  365. package/dist/route-handlers/createMediaLibraryHandler.js.map +1 -0
  366. package/dist/route-handlers/index.d.ts +9 -0
  367. package/dist/route-handlers/index.d.ts.map +1 -0
  368. package/dist/route-handlers/index.js +5 -0
  369. package/dist/route-handlers/index.js.map +1 -0
  370. package/dist/rtf/rtf.d.ts +66 -0
  371. package/dist/rtf/rtf.d.ts.map +1 -0
  372. package/dist/rtf/rtf.js +183 -0
  373. package/dist/rtf/rtf.js.map +1 -0
  374. package/dist/server/index.d.ts +20 -0
  375. package/dist/server/index.d.ts.map +1 -0
  376. package/dist/server/index.js +11 -0
  377. package/dist/server/index.js.map +1 -0
  378. package/dist/server/merge-prepared-page-context.d.ts +8 -0
  379. package/dist/server/merge-prepared-page-context.d.ts.map +1 -0
  380. package/dist/server/merge-prepared-page-context.js +11 -0
  381. package/dist/server/merge-prepared-page-context.js.map +1 -0
  382. package/dist/server/page-test-merge.d.ts +7 -0
  383. package/dist/server/page-test-merge.d.ts.map +1 -0
  384. package/dist/server/page-test-merge.js +12 -0
  385. package/dist/server/page-test-merge.js.map +1 -0
  386. package/dist/server/route-handlers-types.d.ts +124 -0
  387. package/dist/server/route-handlers-types.d.ts.map +1 -0
  388. package/dist/server/route-handlers-types.js +2 -0
  389. package/dist/server/route-handlers-types.js.map +1 -0
  390. package/dist/server/route-handlers.d.ts +99 -0
  391. package/dist/server/route-handlers.d.ts.map +1 -0
  392. package/dist/server/route-handlers.js +1268 -0
  393. package/dist/server/route-handlers.js.map +1 -0
  394. package/dist/server/route-types.d.ts +78 -0
  395. package/dist/server/route-types.d.ts.map +1 -0
  396. package/dist/server/route-types.js +4 -0
  397. package/dist/server/route-types.js.map +1 -0
  398. package/dist/server/tag-index-guards.d.ts +33 -0
  399. package/dist/server/tag-index-guards.d.ts.map +1 -0
  400. package/dist/server/tag-index-guards.js +33 -0
  401. package/dist/server/tag-index-guards.js.map +1 -0
  402. package/dist/server/template-route-handlers.d.ts +7 -0
  403. package/dist/server/template-route-handlers.d.ts.map +1 -0
  404. package/dist/server/template-route-handlers.js +35 -0
  405. package/dist/server/template-route-handlers.js.map +1 -0
  406. package/dist/showcase/components/AllViewPanel.d.ts +7 -0
  407. package/dist/showcase/components/AllViewPanel.d.ts.map +1 -0
  408. package/dist/showcase/components/AllViewPanel.js +55 -0
  409. package/dist/showcase/components/AllViewPanel.js.map +1 -0
  410. package/dist/showcase/components/Controls.d.ts +15 -0
  411. package/dist/showcase/components/Controls.d.ts.map +1 -0
  412. package/dist/showcase/components/Controls.js +71 -0
  413. package/dist/showcase/components/Controls.js.map +1 -0
  414. package/dist/showcase/components/ControlsWrapper.d.ts +15 -0
  415. package/dist/showcase/components/ControlsWrapper.d.ts.map +1 -0
  416. package/dist/showcase/components/ControlsWrapper.js +9 -0
  417. package/dist/showcase/components/ControlsWrapper.js.map +1 -0
  418. package/dist/showcase/components/IframeHeightReporter.d.ts +13 -0
  419. package/dist/showcase/components/IframeHeightReporter.d.ts.map +1 -0
  420. package/dist/showcase/components/IframeHeightReporter.js +51 -0
  421. package/dist/showcase/components/IframeHeightReporter.js.map +1 -0
  422. package/dist/showcase/components/PreviewPanel.d.ts +18 -0
  423. package/dist/showcase/components/PreviewPanel.d.ts.map +1 -0
  424. package/dist/showcase/components/PreviewPanel.js +52 -0
  425. package/dist/showcase/components/PreviewPanel.js.map +1 -0
  426. package/dist/showcase/components/ScaledIframe.d.ts +22 -0
  427. package/dist/showcase/components/ScaledIframe.d.ts.map +1 -0
  428. package/dist/showcase/components/ScaledIframe.js +41 -0
  429. package/dist/showcase/components/ScaledIframe.js.map +1 -0
  430. package/dist/showcase/components/ShowcaseAllRenderPage.d.ts +21 -0
  431. package/dist/showcase/components/ShowcaseAllRenderPage.d.ts.map +1 -0
  432. package/dist/showcase/components/ShowcaseAllRenderPage.js +36 -0
  433. package/dist/showcase/components/ShowcaseAllRenderPage.js.map +1 -0
  434. package/dist/showcase/components/ShowcaseAnimationRoot.d.ts +8 -0
  435. package/dist/showcase/components/ShowcaseAnimationRoot.d.ts.map +1 -0
  436. package/dist/showcase/components/ShowcaseAnimationRoot.js +10 -0
  437. package/dist/showcase/components/ShowcaseAnimationRoot.js.map +1 -0
  438. package/dist/showcase/components/ShowcasePage.d.ts +25 -0
  439. package/dist/showcase/components/ShowcasePage.d.ts.map +1 -0
  440. package/dist/showcase/components/ShowcasePage.js +31 -0
  441. package/dist/showcase/components/ShowcasePage.js.map +1 -0
  442. package/dist/showcase/components/ShowcaseRenderPage.d.ts +21 -0
  443. package/dist/showcase/components/ShowcaseRenderPage.d.ts.map +1 -0
  444. package/dist/showcase/components/ShowcaseRenderPage.js +45 -0
  445. package/dist/showcase/components/ShowcaseRenderPage.js.map +1 -0
  446. package/dist/showcase/components/ShowcaseViewportGuard.d.ts +14 -0
  447. package/dist/showcase/components/ShowcaseViewportGuard.d.ts.map +1 -0
  448. package/dist/showcase/components/ShowcaseViewportGuard.js +77 -0
  449. package/dist/showcase/components/ShowcaseViewportGuard.js.map +1 -0
  450. package/dist/showcase/components/TopBar.d.ts +11 -0
  451. package/dist/showcase/components/TopBar.d.ts.map +1 -0
  452. package/dist/showcase/components/TopBar.js +105 -0
  453. package/dist/showcase/components/TopBar.js.map +1 -0
  454. package/dist/showcase/controlFieldSupport.d.ts +12 -0
  455. package/dist/showcase/controlFieldSupport.d.ts.map +1 -0
  456. package/dist/showcase/controlFieldSupport.js +35 -0
  457. package/dist/showcase/controlFieldSupport.js.map +1 -0
  458. package/dist/showcase/index.d.ts +20 -0
  459. package/dist/showcase/index.d.ts.map +1 -0
  460. package/dist/showcase/index.js +20 -0
  461. package/dist/showcase/index.js.map +1 -0
  462. package/dist/showcase/isCmsShowcase.d.ts +10 -0
  463. package/dist/showcase/isCmsShowcase.d.ts.map +1 -0
  464. package/dist/showcase/isCmsShowcase.js +12 -0
  465. package/dist/showcase/isCmsShowcase.js.map +1 -0
  466. package/dist/showcase/mergeShowcaseMocks.d.ts +34 -0
  467. package/dist/showcase/mergeShowcaseMocks.d.ts.map +1 -0
  468. package/dist/showcase/mergeShowcaseMocks.js +31 -0
  469. package/dist/showcase/mergeShowcaseMocks.js.map +1 -0
  470. package/dist/showcase/mockFactory.d.ts +47 -0
  471. package/dist/showcase/mockFactory.d.ts.map +1 -0
  472. package/dist/showcase/mockFactory.js +726 -0
  473. package/dist/showcase/mockFactory.js.map +1 -0
  474. package/dist/showcase/showcaseLayout.d.ts +17 -0
  475. package/dist/showcase/showcaseLayout.d.ts.map +1 -0
  476. package/dist/showcase/showcaseLayout.js +11 -0
  477. package/dist/showcase/showcaseLayout.js.map +1 -0
  478. package/dist/showcase/showcaseRelatedContent.d.ts +30 -0
  479. package/dist/showcase/showcaseRelatedContent.d.ts.map +1 -0
  480. package/dist/showcase/showcaseRelatedContent.js +106 -0
  481. package/dist/showcase/showcaseRelatedContent.js.map +1 -0
  482. package/dist/showcase/types.d.ts +21 -0
  483. package/dist/showcase/types.d.ts.map +1 -0
  484. package/dist/showcase/types.js +19 -0
  485. package/dist/showcase/types.js.map +1 -0
  486. package/dist/utils/UnsupportedWarning.d.ts +30 -0
  487. package/dist/utils/UnsupportedWarning.d.ts.map +1 -0
  488. package/dist/utils/UnsupportedWarning.js +44 -0
  489. package/dist/utils/UnsupportedWarning.js.map +1 -0
  490. package/dist/utils/UnusedChecker.d.ts +51 -0
  491. package/dist/utils/UnusedChecker.d.ts.map +1 -0
  492. package/dist/utils/UnusedChecker.js +96 -0
  493. package/dist/utils/UnusedChecker.js.map +1 -0
  494. package/dist/utils/agent-ready.d.ts +103 -0
  495. package/dist/utils/agent-ready.d.ts.map +1 -0
  496. package/dist/utils/agent-ready.js +246 -0
  497. package/dist/utils/agent-ready.js.map +1 -0
  498. package/dist/utils/assertValidSiteBaseUrl.d.ts +8 -0
  499. package/dist/utils/assertValidSiteBaseUrl.d.ts.map +1 -0
  500. package/dist/utils/assertValidSiteBaseUrl.js +31 -0
  501. package/dist/utils/assertValidSiteBaseUrl.js.map +1 -0
  502. package/dist/utils/breadcrumbUtils.d.ts +64 -0
  503. package/dist/utils/breadcrumbUtils.d.ts.map +1 -0
  504. package/dist/utils/breadcrumbUtils.js +73 -0
  505. package/dist/utils/breadcrumbUtils.js.map +1 -0
  506. package/dist/utils/buildPageMetadata.d.ts +139 -0
  507. package/dist/utils/buildPageMetadata.d.ts.map +1 -0
  508. package/dist/utils/buildPageMetadata.js +218 -0
  509. package/dist/utils/buildPageMetadata.js.map +1 -0
  510. package/dist/utils/cn.d.ts +29 -0
  511. package/dist/utils/cn.d.ts.map +1 -0
  512. package/dist/utils/cn.js +32 -0
  513. package/dist/utils/cn.js.map +1 -0
  514. package/dist/utils/componentUtils.d.ts +82 -0
  515. package/dist/utils/componentUtils.d.ts.map +1 -0
  516. package/dist/utils/componentUtils.js +327 -0
  517. package/dist/utils/componentUtils.js.map +1 -0
  518. package/dist/utils/convertText.d.ts +2 -0
  519. package/dist/utils/convertText.d.ts.map +1 -0
  520. package/dist/utils/convertText.js +35 -0
  521. package/dist/utils/convertText.js.map +1 -0
  522. package/dist/utils/createDefaultRenderText.d.ts +17 -0
  523. package/dist/utils/createDefaultRenderText.d.ts.map +1 -0
  524. package/dist/utils/createDefaultRenderText.js +25 -0
  525. package/dist/utils/createDefaultRenderText.js.map +1 -0
  526. package/dist/utils/errorHandling.d.ts +37 -0
  527. package/dist/utils/errorHandling.d.ts.map +1 -0
  528. package/dist/utils/errorHandling.js +61 -0
  529. package/dist/utils/errorHandling.js.map +1 -0
  530. package/dist/utils/errorMonitoring.d.ts +17 -0
  531. package/dist/utils/errorMonitoring.d.ts.map +1 -0
  532. package/dist/utils/errorMonitoring.js +26 -0
  533. package/dist/utils/errorMonitoring.js.map +1 -0
  534. package/dist/utils/imageKitVideoHls.d.ts +3 -0
  535. package/dist/utils/imageKitVideoHls.d.ts.map +1 -0
  536. package/dist/utils/imageKitVideoHls.js +5 -0
  537. package/dist/utils/imageKitVideoHls.js.map +1 -0
  538. package/dist/utils/interpolateMetaText.d.ts +9 -0
  539. package/dist/utils/interpolateMetaText.d.ts.map +1 -0
  540. package/dist/utils/interpolateMetaText.js +21 -0
  541. package/dist/utils/interpolateMetaText.js.map +1 -0
  542. package/dist/utils/linkAccessibility.d.ts +13 -0
  543. package/dist/utils/linkAccessibility.d.ts.map +1 -0
  544. package/dist/utils/linkAccessibility.js +14 -0
  545. package/dist/utils/linkAccessibility.js.map +1 -0
  546. package/dist/utils/linkResolution.d.ts +15 -0
  547. package/dist/utils/linkResolution.d.ts.map +1 -0
  548. package/dist/utils/linkResolution.js +19 -0
  549. package/dist/utils/linkResolution.js.map +1 -0
  550. package/dist/utils/listing-page-heading.d.ts +16 -0
  551. package/dist/utils/listing-page-heading.d.ts.map +1 -0
  552. package/dist/utils/listing-page-heading.js +24 -0
  553. package/dist/utils/listing-page-heading.js.map +1 -0
  554. package/dist/utils/listingStructuredData.d.ts +28 -0
  555. package/dist/utils/listingStructuredData.d.ts.map +1 -0
  556. package/dist/utils/listingStructuredData.js +65 -0
  557. package/dist/utils/listingStructuredData.js.map +1 -0
  558. package/dist/utils/marketingSiteSitemap.d.ts +103 -0
  559. package/dist/utils/marketingSiteSitemap.d.ts.map +1 -0
  560. package/dist/utils/marketingSiteSitemap.js +352 -0
  561. package/dist/utils/marketingSiteSitemap.js.map +1 -0
  562. package/dist/utils/previewPageUtils.d.ts +61 -0
  563. package/dist/utils/previewPageUtils.d.ts.map +1 -0
  564. package/dist/utils/previewPageUtils.js +72 -0
  565. package/dist/utils/previewPageUtils.js.map +1 -0
  566. package/dist/utils/previewUtils.d.ts +59 -0
  567. package/dist/utils/previewUtils.d.ts.map +1 -0
  568. package/dist/utils/previewUtils.js +60 -0
  569. package/dist/utils/previewUtils.js.map +1 -0
  570. package/dist/utils/processCollectionLinks.d.ts +11 -0
  571. package/dist/utils/processCollectionLinks.d.ts.map +1 -0
  572. package/dist/utils/processCollectionLinks.js +38 -0
  573. package/dist/utils/processCollectionLinks.js.map +1 -0
  574. package/dist/utils/processTextContent.d.ts +18 -0
  575. package/dist/utils/processTextContent.d.ts.map +1 -0
  576. package/dist/utils/processTextContent.js +24 -0
  577. package/dist/utils/processTextContent.js.map +1 -0
  578. package/dist/utils/reactNodeText.d.ts +7 -0
  579. package/dist/utils/reactNodeText.d.ts.map +1 -0
  580. package/dist/utils/reactNodeText.js +43 -0
  581. package/dist/utils/reactNodeText.js.map +1 -0
  582. package/dist/utils/richTextNodeText.d.ts +13 -0
  583. package/dist/utils/richTextNodeText.d.ts.map +1 -0
  584. package/dist/utils/richTextNodeText.js +29 -0
  585. package/dist/utils/richTextNodeText.js.map +1 -0
  586. package/dist/utils/robots.d.ts +115 -0
  587. package/dist/utils/robots.d.ts.map +1 -0
  588. package/dist/utils/robots.js +174 -0
  589. package/dist/utils/robots.js.map +1 -0
  590. package/dist/utils/scopeCss.d.ts +15 -0
  591. package/dist/utils/scopeCss.d.ts.map +1 -0
  592. package/dist/utils/scopeCss.js +186 -0
  593. package/dist/utils/scopeCss.js.map +1 -0
  594. package/dist/utils/sitemap.d.ts +173 -0
  595. package/dist/utils/sitemap.d.ts.map +1 -0
  596. package/dist/utils/sitemap.js +257 -0
  597. package/dist/utils/sitemap.js.map +1 -0
  598. package/dist/utils/structuredDataUtils.d.ts +158 -0
  599. package/dist/utils/structuredDataUtils.d.ts.map +1 -0
  600. package/dist/utils/structuredDataUtils.js +225 -0
  601. package/dist/utils/structuredDataUtils.js.map +1 -0
  602. package/dist/utils/urlUtils.d.ts +30 -0
  603. package/dist/utils/urlUtils.d.ts.map +1 -0
  604. package/dist/utils/urlUtils.js +100 -0
  605. package/dist/utils/urlUtils.js.map +1 -0
  606. package/dist/utils/visualPositions.d.ts +3 -0
  607. package/dist/utils/visualPositions.d.ts.map +1 -0
  608. package/dist/utils/visualPositions.js +13 -0
  609. package/dist/utils/visualPositions.js.map +1 -0
  610. package/dist/utils/visualSizes.d.ts +5 -0
  611. package/dist/utils/visualSizes.d.ts.map +1 -0
  612. package/dist/utils/visualSizes.js +27 -0
  613. package/dist/utils/visualSizes.js.map +1 -0
  614. package/dist/utils/wcagRelativeLuminanceFromHex.d.ts +8 -0
  615. package/dist/utils/wcagRelativeLuminanceFromHex.d.ts.map +1 -0
  616. package/dist/utils/wcagRelativeLuminanceFromHex.js +30 -0
  617. package/dist/utils/wcagRelativeLuminanceFromHex.js.map +1 -0
  618. package/dist/utils/wrapHtmlComponentJs.d.ts +10 -0
  619. package/dist/utils/wrapHtmlComponentJs.d.ts.map +1 -0
  620. package/dist/utils/wrapHtmlComponentJs.js +12 -0
  621. package/dist/utils/wrapHtmlComponentJs.js.map +1 -0
  622. package/docs/PACKAGE_EXPORT_BOUNDARIES.md +98 -0
  623. package/docs/llms.md +358 -0
  624. package/package.json +108 -0
  625. package/src/showcase/README.md +269 -0
@@ -0,0 +1,134 @@
1
+ /**
2
+ * @se-studio/core-ui
3
+ *
4
+ * Shared React UI component library with Tailwind CSS v4 and CMS infrastructure
5
+ * for SE Studio applications.
6
+ *
7
+ * This package provides:
8
+ * - CMS content rendering system with type-safe component mapping
9
+ * - React components for images, videos, animations, and rich text
10
+ * - Analytics integration hooks and providers
11
+ * - Utility functions for page metadata, error handling, and content extraction
12
+ * - Type-safe configuration system for CMS renderers
13
+ *
14
+ * @example Basic usage
15
+ * ```tsx
16
+ * import { CmsContent, Visual } from '@se-studio/core-ui';
17
+ * import { contentfulPageRest } from '@se-studio/contentful-rest-api';
18
+ *
19
+ * const page = await contentfulPageRest(config, 'home');
20
+ *
21
+ * export default function Page() {
22
+ * return <CmsContent content={page} config={rendererConfig} />;
23
+ * }
24
+ * ```
25
+ *
26
+ * @example Using Visual component
27
+ * ```tsx
28
+ * import { Visual } from '@se-studio/core-ui';
29
+ * import type { IVisual } from '@se-studio/core-data-types';
30
+ *
31
+ * <Visual visual={visualData} className="w-full" priority />
32
+ * ```
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+ export type { RenderMark, RenderNode, RenderText } from '@contentful/rich-text-react-renderer';
37
+ export type { AnalyticsPageTrackerProps } from './analytics/AnalyticsPageTracker';
38
+ export { AnalyticsPageTracker } from './analytics/AnalyticsPageTracker';
39
+ export { AnalyticsProvider, useAnalyticsContext } from './analytics/AnalyticsProvider';
40
+ export { CompositeAnalyticsAdapter, ConsentAwareAdapter, ConsoleAnalyticsAdapter, GoogleTagManagerAdapter, } from './analytics/adapters';
41
+ export type { AnalyticsAdapter, ClickTrackingProperties, PageTrackingProperties, } from './analytics/types';
42
+ export { useAnalytics } from './analytics/useAnalytics';
43
+ export type { CreateVideoEngagementSessionOptions, UseVideoEngagementOptions, VideoEngagementEventName, VideoEngagementIdentity, VideoEngagementSession, VideoEngagementTrackFn, VideoProvider, } from './analytics/video';
44
+ export { createVideoEngagementSession, useHtml5VideoEngagement, useVideoEngagement, VIDEO_ENGAGEMENT_EVENT_NAMES, VIDEO_ENGAGEMENT_EVENTS, VIDEO_ENGAGEMENT_THRESHOLDS, } from './analytics/video';
45
+ export type { AppHelpers, AppHelpersConfig, AppHelpersWithSitemap, } from './app-helpers';
46
+ export type { CmsRendererConfig, CmsRendererTypes, FetchHelpers, LinkFetchOptions, PreviewDataAttributes, PreviewHelpers, } from './CmsRendererConfig';
47
+ export type { CollectionRegistration, ComponentRegistration, DataTypeRegistration, ExternalComponentRegistration, MarkdownItemConverter, MockData, } from './cmsRegistration';
48
+ export { buildCollectionMaps, buildComponentMaps, buildExternalComponentMaps, buildMarkdownConverters, defineCollection, defineComponent, defineDataType, defineExternalComponent, } from './cmsRegistration';
49
+ export { BannerManager, filterBannersByPlacement } from './components/banner/BannerManager';
50
+ export { BannerTargetingEngine } from './components/banner/BannerTargeting';
51
+ export { isBannerWithinSchedule, selectVisibleBannerId, sortBannersByPriority, } from './components/banner/bannerVisibility';
52
+ export { ClientMonitor } from './components/ClientMonitor.js';
53
+ export type { CollectionMap, CollectionRenderer, CollectionRendererProps, EmbeddedCollectionMap, EmbeddedCollectionRenderer, } from './components/CmsCollection';
54
+ export { CmsCollection } from './components/CmsCollection';
55
+ export type { ComponentMap, ComponentRenderer, ComponentRendererProps, EmbeddedComponentMap, EmbeddedComponentRenderer, } from './components/CmsComponent';
56
+ export { CmsComponent } from './components/CmsComponent';
57
+ export type { EmbeddedBlockInternalLinkRenderer, InternalLinkRenderer, VisualComponentRenderer, } from './components/CmsContent';
58
+ export { CmsContent, createEmbeddedContentContext } from './components/CmsContent';
59
+ export { CmsConversionErrors } from './components/CmsConversionErrors';
60
+ export { CmsDevLayout } from './components/CmsDevLayout';
61
+ export { CmsEmbeddedContent } from './components/CmsEmbeddedContent';
62
+ export type { EmbeddedExternalComponentMap, EmbeddedExternalComponentRenderer, ExternalComponentMap, ExternalComponentRenderer, ExternalComponentRendererProps, } from './components/CmsExternalComponent';
63
+ export { CmsExternalComponent } from './components/CmsExternalComponent';
64
+ export { CmsRoutesLayout, dynamicParams } from './components/CmsRoutesLayout';
65
+ export { DefaultExternalVideoPlayButton } from './components/DefaultExternalVideoPlayButton';
66
+ export { ensureDotLottieWasm, getDotLottieWasmUrl, preloadDotLottieWasm, } from './components/dotlottieWasm';
67
+ export { ErrorBoundary } from './components/ErrorBoundary';
68
+ export { defaultHtmlComponentFullWidthClassName, HtmlComponent, type HtmlComponentProps, } from './components/HtmlComponent';
69
+ export { LazyAnimation } from './components/LazyAnimation';
70
+ export { LazyVideo } from './components/LazyVideo';
71
+ export { LocalVideoPlayChrome } from './components/LocalVideoPlayChrome';
72
+ export { LocalVideoPlayOverlay } from './components/LocalVideoPlayOverlay';
73
+ export { Preview } from './components/Preview.js';
74
+ export type { StructuredDataProps } from './components/StructuredData';
75
+ export { StructuredData } from './components/StructuredData';
76
+ export { SvgSpriteSheet } from './components/SvgSpriteSheet';
77
+ export type { IVisualProps } from './components/Visual';
78
+ export { calculateCropDetails, calculateImagePriority, calculateImageWidthStyleVariable, } from './components/Visual';
79
+ export { Visual } from './components/VisualComponent';
80
+ export { ExternalVideoPlayButtonProvider, useExternalVideoPlayButton, } from './context/ExternalVideoPlayButtonContext';
81
+ export { RtfOrString } from './elements/RtfOrString';
82
+ export type { TrackedLinkProps } from './elements/TrackedLink';
83
+ export { TrackedLink } from './elements/TrackedLink';
84
+ export { UtmLink } from './elements/UtmLink';
85
+ export { BackgroundMedia } from './framework/BackgroundMedia';
86
+ export { ComponentErrorIndicator } from './framework/ComponentErrorIndicator';
87
+ export { default as ContainedVisual } from './framework/ContainedVisual';
88
+ export { showComponentError, showInlineError } from './framework/componentErrors';
89
+ export { default as ResponsiveVisual } from './framework/ResponsiveVisual';
90
+ export { useClickTracking } from './hooks/useClickTracking';
91
+ export { onVisibleToUser, useClientOnly, useDocumentVisible, useFirstVisibleCallback, useFirstVisibleToUser, useVisibleToUser, } from './hooks/visibility';
92
+ export { isMediaLibraryKind, MEDIA_LIBRARY_KIND_LABELS, MEDIA_LIBRARY_KINDS, MediaLibraryHub, type MediaLibraryHubProps, type MediaLibraryItem, type MediaLibraryKind, MediaLibraryPage, type MediaLibraryPageData, type MediaLibraryPageProps, } from './media-library/index';
93
+ export { RTF } from './rtf/rtf';
94
+ export type { BasicLayoutProps, BreadcrumbOptions, CmsRouteConfig } from './server/route-types';
95
+ export { toBreadcrumbOptions } from './server/route-types';
96
+ export * from './showcase';
97
+ export type { AgentDiscoveryLinkOptions } from './utils/agent-ready';
98
+ export { apiPathNeedingTrailingSlash, appendAgentDiscoveryLinkHeaders, buildAgentDiscoveryLinkValues, htmlPathToMarkdownPath, prefersMarkdownAccept, resolveMarkdownNegotiationPath, } from './utils/agent-ready';
99
+ export { assertValidSiteBaseUrl } from './utils/assertValidSiteBaseUrl';
100
+ export type { BreadcrumbLookup, BreadcrumbLookupEntry, BreadcrumbSegment, ResolveBreadcrumbSegmentsOptions, } from './utils/breadcrumbUtils';
101
+ export { normalizeBreadcrumbPath, resolveBreadcrumbSegments, } from './utils/breadcrumbUtils';
102
+ export type { IBuildInformation, LocaleConfig, SiteGeneratorAttribution, } from './utils/buildPageMetadata';
103
+ export { buildPageMetadata, calculateTitleAndDescription, formatSiteGeneratorContent, getLocalizedPath, resolveMetadataAuthors, } from './utils/buildPageMetadata';
104
+ export { cn } from './utils/cn';
105
+ export { convertText } from './utils/convertText';
106
+ export { createDefaultRenderText } from './utils/createDefaultRenderText';
107
+ export { handleCmsError } from './utils/errorHandling';
108
+ export { captureException, initErrorMonitoring } from './utils/errorMonitoring';
109
+ export { getLinkAriaLabel } from './utils/linkAccessibility';
110
+ export type { ListingPageContext, ListingScope } from './utils/listing-page-heading';
111
+ export { resolveListingPageHeading } from './utils/listing-page-heading';
112
+ export type { MarketingSiteSitemapConfig } from './utils/marketingSiteSitemap';
113
+ export type { PreviewSecretValidation } from './utils/previewPageUtils';
114
+ export { validatePreviewSecret } from './utils/previewPageUtils';
115
+ export type { IContent } from './utils/previewUtils';
116
+ export { coreGetPreviewAssetIdProps, coreGetPreviewFieldIdProps, coreGetPreviewParentProps, coreGetPreviewProps, getPreviewFieldProps, getPreviewResponsiveVisualFieldProps, } from './utils/previewUtils';
117
+ export { processCollectionLinks } from './utils/processCollectionLinks';
118
+ export { processTextContent } from './utils/processTextContent';
119
+ export { extractTextFromReactNode } from './utils/reactNodeText';
120
+ export { extractRichTextNodeText } from './utils/richTextNodeText';
121
+ export type { ContentSignalPreference, ContentSignals, CreateRobotsConfigOptions, FormatRobotsTxtOptions, } from './utils/robots';
122
+ export { buildRobotsDisallow, createRobotsConfig, createRobotsTxtResponse, DEFAULT_ROBOTS_DISALLOW, formatContentSignalLine, formatRobotsTxt, TRACKING_QUERY_ROBOTS_DISALLOW, } from './utils/robots';
123
+ export { scopeCss } from './utils/scopeCss';
124
+ export type { GenerateSitemapOptions, SitemapChangeFrequency, SitemapEntry, SitemapSource, } from './utils/sitemap';
125
+ export { buildSitemap, deduplicateSitemapEntries, generateNextSitemap, sitemapToXml, sortSitemapEntries, } from './utils/sitemap';
126
+ export type { BuildStructuredDataContextOptions, StructuredDataContext, } from './utils/structuredDataUtils';
127
+ export { buildStructuredDataContext } from './utils/structuredDataUtils';
128
+ export { UnsupportedWarning } from './utils/UnsupportedWarning';
129
+ export { DEFAULT_ALLOWED_UNUSED, UnusedChecker } from './utils/UnusedChecker';
130
+ export { ensureInternalPageTrailingSlash, getCurrentPageUrl, isAbsoluteUrl, resolveTrackedHref, } from './utils/urlUtils';
131
+ export { calculateHorizontalPositionClassName } from './utils/visualPositions';
132
+ export { calculateVisualSizes } from './utils/visualSizes';
133
+ export { wcagRelativeLuminanceFromHex } from './utils/wcagRelativeLuminanceFromHex';
134
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,120 @@
1
+ /**
2
+ * @se-studio/core-ui
3
+ *
4
+ * Shared React UI component library with Tailwind CSS v4 and CMS infrastructure
5
+ * for SE Studio applications.
6
+ *
7
+ * This package provides:
8
+ * - CMS content rendering system with type-safe component mapping
9
+ * - React components for images, videos, animations, and rich text
10
+ * - Analytics integration hooks and providers
11
+ * - Utility functions for page metadata, error handling, and content extraction
12
+ * - Type-safe configuration system for CMS renderers
13
+ *
14
+ * @example Basic usage
15
+ * ```tsx
16
+ * import { CmsContent, Visual } from '@se-studio/core-ui';
17
+ * import { contentfulPageRest } from '@se-studio/contentful-rest-api';
18
+ *
19
+ * const page = await contentfulPageRest(config, 'home');
20
+ *
21
+ * export default function Page() {
22
+ * return <CmsContent content={page} config={rendererConfig} />;
23
+ * }
24
+ * ```
25
+ *
26
+ * @example Using Visual component
27
+ * ```tsx
28
+ * import { Visual } from '@se-studio/core-ui';
29
+ * import type { IVisual } from '@se-studio/core-data-types';
30
+ *
31
+ * <Visual visual={visualData} className="w-full" priority />
32
+ * ```
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+ // Analytics
37
+ export { AnalyticsPageTracker } from './analytics/AnalyticsPageTracker';
38
+ export { AnalyticsProvider, useAnalyticsContext } from './analytics/AnalyticsProvider';
39
+ // Analytics Adapters
40
+ export { CompositeAnalyticsAdapter, ConsentAwareAdapter, ConsoleAnalyticsAdapter, GoogleTagManagerAdapter, } from './analytics/adapters';
41
+ export { useAnalytics } from './analytics/useAnalytics';
42
+ export { createVideoEngagementSession, useHtml5VideoEngagement, useVideoEngagement, VIDEO_ENGAGEMENT_EVENT_NAMES, VIDEO_ENGAGEMENT_EVENTS, VIDEO_ENGAGEMENT_THRESHOLDS, } from './analytics/video';
43
+ export { buildCollectionMaps, buildComponentMaps, buildExternalComponentMaps, buildMarkdownConverters, defineCollection, defineComponent, defineDataType, defineExternalComponent, } from './cmsRegistration';
44
+ export { BannerManager, filterBannersByPlacement } from './components/banner/BannerManager';
45
+ export { BannerTargetingEngine } from './components/banner/BannerTargeting';
46
+ export { isBannerWithinSchedule, selectVisibleBannerId, sortBannersByPriority, } from './components/banner/bannerVisibility';
47
+ export { ClientMonitor } from './components/ClientMonitor.js';
48
+ export { CmsCollection } from './components/CmsCollection';
49
+ export { CmsComponent } from './components/CmsComponent';
50
+ export { CmsContent, createEmbeddedContentContext } from './components/CmsContent';
51
+ export { CmsConversionErrors } from './components/CmsConversionErrors';
52
+ export { CmsDevLayout } from './components/CmsDevLayout';
53
+ export { CmsEmbeddedContent } from './components/CmsEmbeddedContent';
54
+ export { CmsExternalComponent } from './components/CmsExternalComponent';
55
+ export { CmsRoutesLayout, dynamicParams } from './components/CmsRoutesLayout';
56
+ export { DefaultExternalVideoPlayButton } from './components/DefaultExternalVideoPlayButton';
57
+ export { ensureDotLottieWasm, getDotLottieWasmUrl, preloadDotLottieWasm, } from './components/dotlottieWasm';
58
+ // Framework Components
59
+ // Error Handling
60
+ export { ErrorBoundary } from './components/ErrorBoundary';
61
+ export { defaultHtmlComponentFullWidthClassName, HtmlComponent, } from './components/HtmlComponent';
62
+ export { LazyAnimation } from './components/LazyAnimation';
63
+ export { LazyVideo } from './components/LazyVideo';
64
+ export { LocalVideoPlayChrome } from './components/LocalVideoPlayChrome';
65
+ export { LocalVideoPlayOverlay } from './components/LocalVideoPlayOverlay';
66
+ export { Preview } from './components/Preview.js';
67
+ export { StructuredData } from './components/StructuredData';
68
+ // SVG Sprite System
69
+ export { SvgSpriteSheet } from './components/SvgSpriteSheet';
70
+ // Visual Components
71
+ export { calculateCropDetails, calculateImagePriority, calculateImageWidthStyleVariable, } from './components/Visual';
72
+ export { Visual } from './components/VisualComponent';
73
+ export { ExternalVideoPlayButtonProvider, useExternalVideoPlayButton, } from './context/ExternalVideoPlayButtonContext';
74
+ export { RtfOrString } from './elements/RtfOrString';
75
+ export { TrackedLink } from './elements/TrackedLink';
76
+ // Elements
77
+ export { UtmLink } from './elements/UtmLink';
78
+ export { BackgroundMedia } from './framework/BackgroundMedia';
79
+ export { ComponentErrorIndicator } from './framework/ComponentErrorIndicator';
80
+ export { default as ContainedVisual } from './framework/ContainedVisual';
81
+ export { showComponentError, showInlineError } from './framework/componentErrors';
82
+ export { default as ResponsiveVisual } from './framework/ResponsiveVisual';
83
+ // Shared Hooks
84
+ export { useClickTracking } from './hooks/useClickTracking';
85
+ export { onVisibleToUser, useClientOnly, useDocumentVisible, useFirstVisibleCallback, useFirstVisibleToUser, useVisibleToUser, } from './hooks/visibility';
86
+ export { isMediaLibraryKind, MEDIA_LIBRARY_KIND_LABELS, MEDIA_LIBRARY_KINDS, MediaLibraryHub, MediaLibraryPage, } from './media-library/index';
87
+ export { RTF } from './rtf/rtf';
88
+ export { toBreadcrumbOptions } from './server/route-types';
89
+ // CMS Showcase
90
+ export * from './showcase';
91
+ export { apiPathNeedingTrailingSlash, appendAgentDiscoveryLinkHeaders, buildAgentDiscoveryLinkValues, htmlPathToMarkdownPath, prefersMarkdownAccept, resolveMarkdownNegotiationPath, } from './utils/agent-ready';
92
+ export { assertValidSiteBaseUrl } from './utils/assertValidSiteBaseUrl';
93
+ export { normalizeBreadcrumbPath, resolveBreadcrumbSegments, } from './utils/breadcrumbUtils';
94
+ export { buildPageMetadata, calculateTitleAndDescription, formatSiteGeneratorContent, getLocalizedPath, resolveMetadataAuthors, } from './utils/buildPageMetadata';
95
+ // Shared Utilities
96
+ export { cn } from './utils/cn';
97
+ export { convertText } from './utils/convertText';
98
+ export { createDefaultRenderText } from './utils/createDefaultRenderText';
99
+ export { handleCmsError } from './utils/errorHandling';
100
+ export { captureException, initErrorMonitoring } from './utils/errorMonitoring';
101
+ export { getLinkAriaLabel } from './utils/linkAccessibility';
102
+ export { resolveListingPageHeading } from './utils/listing-page-heading';
103
+ export { validatePreviewSecret } from './utils/previewPageUtils';
104
+ export { coreGetPreviewAssetIdProps, coreGetPreviewFieldIdProps, coreGetPreviewParentProps, coreGetPreviewProps, getPreviewFieldProps, getPreviewResponsiveVisualFieldProps, } from './utils/previewUtils';
105
+ export { processCollectionLinks } from './utils/processCollectionLinks';
106
+ export { processTextContent } from './utils/processTextContent';
107
+ export { extractTextFromReactNode } from './utils/reactNodeText';
108
+ export { extractRichTextNodeText } from './utils/richTextNodeText';
109
+ export { buildRobotsDisallow, createRobotsConfig, createRobotsTxtResponse, DEFAULT_ROBOTS_DISALLOW, formatContentSignalLine, formatRobotsTxt, TRACKING_QUERY_ROBOTS_DISALLOW, } from './utils/robots';
110
+ export { scopeCss } from './utils/scopeCss';
111
+ export { buildSitemap, deduplicateSitemapEntries, generateNextSitemap, sitemapToXml, sortSitemapEntries, } from './utils/sitemap';
112
+ export { buildStructuredDataContext } from './utils/structuredDataUtils';
113
+ export { UnsupportedWarning } from './utils/UnsupportedWarning';
114
+ // Development Utilities
115
+ export { DEFAULT_ALLOWED_UNUSED, UnusedChecker } from './utils/UnusedChecker';
116
+ export { ensureInternalPageTrailingSlash, getCurrentPageUrl, isAbsoluteUrl, resolveTrackedHref, } from './utils/urlUtils';
117
+ export { calculateHorizontalPositionClassName } from './utils/visualPositions';
118
+ export { calculateVisualSizes } from './utils/visualSizes';
119
+ export { wcagRelativeLuminanceFromHex } from './utils/wcagRelativeLuminanceFromHex';
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Lightweight DotLottie player for the media library (one-at-a-time play).
3
+ * Always plays while the card is active (no viewport pause).
4
+ */
5
+ export declare function MediaLibraryAnimationPlayer({ src, label, }: {
6
+ src: string;
7
+ label?: string | null;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=MediaLibraryAnimationPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaLibraryAnimationPlayer.d.ts","sourceRoot":"","sources":["../../src/media-library/MediaLibraryAnimationPlayer.tsx"],"names":[],"mappings":"AAoEA;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,GAAG,EACH,KAAK,GACN,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,+BAsFA"}
@@ -0,0 +1,99 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
4
+ import { getDotLottieWasmUrl } from '../components/dotlottieWasm';
5
+ let playerModulePromise = null;
6
+ function isAbortError(e) {
7
+ if (!e || typeof e !== 'object')
8
+ return false;
9
+ const err = e;
10
+ return err.name === 'AbortError' || (err.message ?? '').includes('aborted');
11
+ }
12
+ /**
13
+ * Load DotLottie once per page. Prefer self-hosted WASM; if missing, leave the
14
+ * library default (built-in CDN backup) so we do not hardcode a package version.
15
+ */
16
+ async function loadDotLottieModule() {
17
+ if (!playerModulePromise) {
18
+ playerModulePromise = (async () => {
19
+ const mod = (await import('@lottiefiles/dotlottie-react'));
20
+ const local = getDotLottieWasmUrl();
21
+ if (local.startsWith('http://') || local.startsWith('https://')) {
22
+ mod.setWasmUrl?.(local);
23
+ return mod;
24
+ }
25
+ try {
26
+ const res = await fetch(local, { method: 'HEAD', cache: 'no-store' });
27
+ if (res.ok) {
28
+ const type = res.headers.get('content-type') ?? '';
29
+ if (!type.includes('text/html')) {
30
+ mod.setWasmUrl?.(local);
31
+ }
32
+ }
33
+ }
34
+ catch {
35
+ // Leave library default WASM resolution
36
+ }
37
+ return mod;
38
+ })().catch((err) => {
39
+ playerModulePromise = null;
40
+ throw err;
41
+ });
42
+ }
43
+ return playerModulePromise;
44
+ }
45
+ /**
46
+ * Lightweight DotLottie player for the media library (one-at-a-time play).
47
+ * Always plays while the card is active (no viewport pause).
48
+ */
49
+ export function MediaLibraryAnimationPlayer({ src, label, }) {
50
+ const [Player, setPlayer] = useState(null);
51
+ const [error, setError] = useState(null);
52
+ const [status, setStatus] = useState('loading');
53
+ useEffect(() => {
54
+ let cancelled = false;
55
+ setStatus('loading');
56
+ setError(null);
57
+ void (async () => {
58
+ try {
59
+ const mod = await loadDotLottieModule();
60
+ if (cancelled)
61
+ return;
62
+ if (!mod.DotLottieReact) {
63
+ throw new Error('@lottiefiles/dotlottie-react has no DotLottieReact export');
64
+ }
65
+ setPlayer(() => mod.DotLottieReact);
66
+ setStatus('ready');
67
+ }
68
+ catch (e) {
69
+ if (cancelled || isAbortError(e))
70
+ return;
71
+ setStatus('error');
72
+ setError(e instanceof Error ? e.message : 'Failed to load DotLottie');
73
+ }
74
+ })();
75
+ return () => {
76
+ cancelled = true;
77
+ };
78
+ }, []);
79
+ if (status === 'error') {
80
+ return (_jsxs("div", { className: "flex h-full w-full flex-col items-center justify-center gap-[6px] bg-[#f3f4f6] px-[8px] text-center", children: [_jsx("span", { className: "text-[11px] font-[600] text-[#b91c1c]", children: "Animation failed" }), _jsx("span", { className: "text-[10px] leading-[1.3] text-[#6b7280]", children: error }), _jsx("a", { href: src, target: "_blank", rel: "noreferrer", className: "text-[11px] text-[#2563eb] underline", children: "Open asset URL" })] }));
81
+ }
82
+ if (status === 'loading' || !Player) {
83
+ return (_jsx("div", { className: "flex h-full w-full items-center justify-center bg-[#ffffff] text-[11px] text-[#9ca3af]", children: "Loading player\u2026" }));
84
+ }
85
+ return (_jsx("div", { className: "h-full w-full bg-[#ffffff]", style: { minHeight: 200 }, "aria-label": label ?? 'Animation', role: "img", "data-se-animation": "media-library-dotlottie", children: _jsx(Player, { src: src, loop: true, autoplay: true, style: { width: '100%', height: '100%', display: 'block', minHeight: 200 }, layout: { fit: 'contain', align: [0.5, 0.5] }, renderConfig: {
86
+ autoResize: true,
87
+ devicePixelRatio: Math.min(window.devicePixelRatio || 1, 2),
88
+ }, dotLottieRefCallback: (ref) => {
89
+ if (!ref)
90
+ return;
91
+ try {
92
+ ref.play();
93
+ }
94
+ catch {
95
+ // ignore destroyed instances
96
+ }
97
+ } }, src) }));
98
+ }
99
+ //# sourceMappingURL=MediaLibraryAnimationPlayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaLibraryAnimationPlayer.js","sourceRoot":"","sources":["../../src/media-library/MediaLibraryAnimationPlayer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { MediaLibraryItem } from './types';
2
+ export declare function MediaLibraryGrid({ items }: {
3
+ items: MediaLibraryItem[];
4
+ }): import("react").JSX.Element;
5
+ //# sourceMappingURL=MediaLibraryGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaLibraryGrid.d.ts","sourceRoot":"","sources":["../../src/media-library/MediaLibraryGrid.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,SAAS,CAAC;AA8NlE,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE,+BAwBxE"}
@@ -0,0 +1,88 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useCallback, useState } from 'react';
4
+ import { MediaLibraryAnimationPlayer } from './MediaLibraryAnimationPlayer';
5
+ function formatDimensions(width, height) {
6
+ if (width != null && height != null)
7
+ return `${width}×${height}`;
8
+ return '—';
9
+ }
10
+ function formatSize(sizeBytes) {
11
+ if (sizeBytes == null)
12
+ return '';
13
+ if (sizeBytes < 1024)
14
+ return `${sizeBytes} B`;
15
+ if (sizeBytes < 1024 * 1024)
16
+ return `${Math.round(sizeBytes / 1024)} KB`;
17
+ return `${(sizeBytes / (1024 * 1024)).toFixed(1)} MB`;
18
+ }
19
+ function placeholderLabel(kind) {
20
+ switch (kind) {
21
+ case 'videos':
22
+ return 'Video';
23
+ case 'animations':
24
+ return 'Animation';
25
+ case 'external-videos':
26
+ return 'External';
27
+ default:
28
+ return 'Media';
29
+ }
30
+ }
31
+ function isPlayable(kind) {
32
+ return kind === 'videos' || kind === 'animations' || kind === 'external-videos';
33
+ }
34
+ function tryGetYouTubeId(url) {
35
+ const match = url.match(/(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?(?:.*&)?v=|embed\/|v\/|shorts\/)|youtu\.be\/)([\w-]{11})/);
36
+ return match?.[1] ?? null;
37
+ }
38
+ function tryGetVimeoId(url) {
39
+ if (!url.includes('vimeo.com'))
40
+ return null;
41
+ const match = url.match(/vimeo\.com\/(?:video\/)?(\d+)/);
42
+ return match?.[1] ?? null;
43
+ }
44
+ function PlayButton({ label }) {
45
+ return (_jsxs("span", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-[6px] bg-[rgba(17,24,39,0.35)]", children: [_jsx("span", { className: "flex h-[40px] w-[40px] items-center justify-center rounded-full bg-[#ffffff] text-[#111827] shadow-[0_1px_4px_rgba(0,0,0,0.25)]", children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx("path", { fill: "currentColor", d: "M5 3.5v9l8-4.5-8-4.5z" }) }) }), _jsx("span", { className: "text-[11px] font-[600] uppercase tracking-[0.04em] text-[#ffffff]", children: label })] }));
46
+ }
47
+ function PlayingPreview({ item }) {
48
+ if (item.kind === 'videos' && item.url) {
49
+ return (_jsx("video", { src: item.url, className: "h-full w-full object-contain bg-[#111827]", controls: true, autoPlay: true, playsInline: true, muted: true, children: _jsx("track", { kind: "captions" }) }));
50
+ }
51
+ if (item.kind === 'animations') {
52
+ if (!item.url) {
53
+ return _jsx("span", { className: "text-[12px] text-[#9ca3af]", children: "No animation URL" });
54
+ }
55
+ return (_jsx(MediaLibraryAnimationPlayer, { src: item.url, label: item.fileName ?? item.title ?? item.id }));
56
+ }
57
+ if (item.kind === 'external-videos') {
58
+ const external = item.externalUrl ?? item.url;
59
+ if (!external) {
60
+ return _jsx("span", { className: "text-[12px] text-[#9ca3af]", children: "No external URL" });
61
+ }
62
+ const yt = tryGetYouTubeId(external);
63
+ if (yt) {
64
+ return (_jsx("iframe", { title: item.title ?? 'YouTube video', src: `https://www.youtube-nocookie.com/embed/${yt}?autoplay=1&rel=0`, className: "h-full w-full border-0", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture", allowFullScreen: true }));
65
+ }
66
+ const vimeo = tryGetVimeoId(external);
67
+ if (vimeo) {
68
+ return (_jsx("iframe", { title: item.title ?? 'Vimeo video', src: `https://player.vimeo.com/video/${vimeo}?autoplay=1`, className: "h-full w-full border-0", allow: "autoplay; fullscreen; picture-in-picture", allowFullScreen: true }));
69
+ }
70
+ return (_jsx("a", { href: external, target: "_blank", rel: "noreferrer", className: "px-[8px] text-center text-[12px] text-[#2563eb] underline", children: "Open external URL" }));
71
+ }
72
+ return null;
73
+ }
74
+ function MediaCard({ item, isPlaying, onPlay, onStop, }) {
75
+ const playable = isPlayable(item.kind) && Boolean(item.url || item.externalUrl);
76
+ return (_jsxs("li", { className: "overflow-hidden rounded-[8px] border border-[#e5e7eb] bg-[#ffffff] shadow-[0_1px_2px_rgba(0,0,0,0.04)]", children: [_jsx("div", { className: `relative flex items-center justify-center overflow-hidden bg-[#f3f4f6] ${isPlaying ? 'h-[200px]' : 'h-[140px]'}`, children: isPlaying && playable ? (_jsxs(_Fragment, { children: [_jsx(PlayingPreview, { item: item }), _jsx("button", { type: "button", onClick: onStop, className: "absolute right-[6px] top-[6px] z-[1] rounded-[4px] bg-[rgba(17,24,39,0.75)] px-[8px] py-[4px] text-[11px] font-[500] text-[#ffffff]", children: "Stop" })] })) : playable ? (_jsxs("button", { type: "button", onClick: () => onPlay(item.id), className: "relative h-full w-full cursor-pointer border-0 bg-transparent p-0", "aria-label": `Play ${item.fileName ?? item.title ?? item.id}`, children: [item.thumbUrl ? (_jsx("img", { src: item.thumbUrl, alt: "", width: 320, height: 320, className: "h-full w-full object-cover", loading: "lazy" })) : (_jsx("span", { className: "text-[12px] font-[500] uppercase tracking-[0.04em] text-[#9ca3af]", children: placeholderLabel(item.kind) })), _jsx(PlayButton, { label: "Play" })] })) : item.thumbUrl ? (_jsx("img", { src: item.thumbUrl, alt: "", width: 320, height: 320, className: "h-full w-full object-cover", loading: "lazy" })) : (_jsx("span", { className: "text-[12px] font-[500] uppercase tracking-[0.04em] text-[#9ca3af]", children: placeholderLabel(item.kind) })) }), _jsxs("div", { className: "flex flex-col gap-[4px] p-[10px]", children: [_jsx("p", { className: "m-0 truncate font-mono text-[11px] leading-[1.3] text-[#111827]", title: item.fileName ?? item.title ?? item.id, children: item.fileName ?? item.title ?? item.id }), _jsx("p", { className: "m-0 line-clamp-2 min-h-[32px] text-[12px] leading-[1.35] text-[#4b5563]", title: item.description ?? undefined, children: item.description?.trim() ? item.description : '—' }), _jsxs("p", { className: "m-0 text-[11px] text-[#6b7280]", children: [formatDimensions(item.width, item.height), item.sizeBytes != null ? ` · ${formatSize(item.sizeBytes)}` : ''] }), _jsx("p", { className: "m-0 truncate font-mono text-[10px] text-[#9ca3af]", title: item.id, children: item.id })] })] }));
77
+ }
78
+ export function MediaLibraryGrid({ items }) {
79
+ const [playingId, setPlayingId] = useState(null);
80
+ const onPlay = useCallback((id) => {
81
+ setPlayingId(id);
82
+ }, []);
83
+ const onStop = useCallback(() => {
84
+ setPlayingId(null);
85
+ }, []);
86
+ return (_jsx("ul", { className: "m-0 grid list-none grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-[12px] p-0", children: items.map((item) => (_jsx(MediaCard, { item: item, isPlaying: playingId === item.id, onPlay: onPlay, onStop: onStop }, item.id))) }));
87
+ }
88
+ //# sourceMappingURL=MediaLibraryGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaLibraryGrid.js","sourceRoot":"","sources":["../../src/media-library/MediaLibraryGrid.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { MediaLibraryPageData } from './types';
2
+ export type MediaLibraryPageProps = {
3
+ data: MediaLibraryPageData;
4
+ /** Base path without trailing kind, e.g. `/cms/media` */
5
+ basePath?: string;
6
+ };
7
+ /**
8
+ * cms-dev media inventory. Images are thumbnails only; videos / animations /
9
+ * external videos play on click (one at a time).
10
+ */
11
+ export declare function MediaLibraryPage({ data, basePath }: MediaLibraryPageProps): import("react").JSX.Element;
12
+ export type MediaLibraryHubProps = {
13
+ basePath?: string;
14
+ };
15
+ /** Index page linking to each media kind. */
16
+ export declare function MediaLibraryHub({ basePath }: MediaLibraryHubProps): import("react").JSX.Element;
17
+ //# sourceMappingURL=MediaLibraryPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaLibraryPage.d.ts","sourceRoot":"","sources":["../../src/media-library/MediaLibraryPage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAUtE,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAuB,EAAE,EAAE,qBAAqB,+BAuGxF;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,EAAE,QAAuB,EAAE,EAAE,oBAAoB,+BA2ChF"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { MediaLibraryGrid } from './MediaLibraryGrid';
3
+ import { MEDIA_LIBRARY_KIND_LABELS, MEDIA_LIBRARY_KINDS } from './types';
4
+ function buildPageHref(basePath, kind, page) {
5
+ const params = new URLSearchParams();
6
+ if (page > 1)
7
+ params.set('page', String(page));
8
+ const qs = params.toString();
9
+ return qs ? `${basePath}/${kind}/?${qs}` : `${basePath}/${kind}/`;
10
+ }
11
+ /**
12
+ * cms-dev media inventory. Images are thumbnails only; videos / animations /
13
+ * external videos play on click (one at a time).
14
+ */
15
+ export function MediaLibraryPage({ data, basePath = '/cms/media' }) {
16
+ const totalPages = Math.max(1, Math.ceil(data.total / data.limit) || 1);
17
+ const hasPrev = data.page > 1;
18
+ const hasNext = data.page < totalPages;
19
+ return (_jsxs("div", { className: "min-h-screen bg-[#f9fafb] text-[#111827]", children: [_jsxs("header", { className: "border-b border-[#e5e7eb] bg-[#ffffff]", children: [_jsxs("div", { className: "mx-auto max-w-[1200px] px-[16px] py-[16px]", children: [_jsx("p", { className: "m-0 text-[11px] font-[500] uppercase tracking-[0.06em] text-[#6b7280]", children: "CMS tools" }), _jsx("h1", { className: "m-0 mt-[4px] text-[20px] font-[600] leading-[1.3]", children: "Media library" }), _jsxs("p", { className: "m-0 mt-[6px] max-w-[720px] text-[13px] leading-[1.45] text-[#4b5563]", children: ["All media in this Contentful space (preview). Image thumbs only; click Play on videos, animations, and external videos (one at a time). Agents:", ' ', _jsxs("code", { className: "text-[12px]", children: [basePath, ".json"] }), " and", ' ', _jsxs("code", { className: "text-[12px]", children: [basePath, ".md"] }), "."] })] }), _jsx("nav", { className: "mx-auto flex max-w-[1200px] flex-wrap gap-[8px] px-[16px] pb-[12px]", "aria-label": "Media kinds", children: MEDIA_LIBRARY_KINDS.map((kind) => {
20
+ const active = kind === data.kind;
21
+ return (_jsx("a", { href: `${basePath}/${kind}/`, className: active
22
+ ? 'rounded-[6px] bg-[#111827] px-[12px] py-[6px] text-[13px] font-[500] text-[#ffffff] no-underline'
23
+ : 'rounded-[6px] bg-[#f3f4f6] px-[12px] py-[6px] text-[13px] font-[500] text-[#374151] no-underline hover:bg-[#e5e7eb]', children: MEDIA_LIBRARY_KIND_LABELS[kind] }, kind));
24
+ }) })] }), _jsxs("main", { className: "mx-auto max-w-[1200px] px-[16px] py-[20px]", children: [_jsxs("div", { className: "mb-[16px] flex flex-wrap items-center justify-between gap-[12px]", children: [_jsxs("p", { className: "m-0 text-[13px] text-[#4b5563]", children: [_jsx("span", { className: "font-[600] text-[#111827]", children: MEDIA_LIBRARY_KIND_LABELS[data.kind] }), ' · ', data.total, " total", ' · ', "page ", data.page, " of ", totalPages] }), _jsxs("div", { className: "flex gap-[8px]", children: [hasPrev ? (_jsx("a", { href: buildPageHref(basePath, data.kind, data.page - 1), className: "rounded-[6px] border border-[#d1d5db] bg-[#ffffff] px-[12px] py-[6px] text-[13px] text-[#111827] no-underline", children: "Previous" })) : (_jsx("span", { className: "rounded-[6px] border border-[#e5e7eb] bg-[#f9fafb] px-[12px] py-[6px] text-[13px] text-[#9ca3af]", children: "Previous" })), hasNext ? (_jsx("a", { href: buildPageHref(basePath, data.kind, data.page + 1), className: "rounded-[6px] border border-[#d1d5db] bg-[#ffffff] px-[12px] py-[6px] text-[13px] text-[#111827] no-underline", children: "Next" })) : (_jsx("span", { className: "rounded-[6px] border border-[#e5e7eb] bg-[#f9fafb] px-[12px] py-[6px] text-[13px] text-[#9ca3af]", children: "Next" }))] })] }), data.truncated ? (_jsxs("p", { className: "mb-[16px] rounded-[8px] border border-[#fcd34d] bg-[#fffbeb] px-[12px] py-[10px] text-[13px] leading-[1.45] text-[#92400e]", role: "status", children: ["Scan hit the safety cap \u2014 this list may be incomplete. Total shown (", data.total, ") may under-count animations still later in the asset catalog."] })) : null, data.items.length === 0 ? (_jsxs("p", { className: "rounded-[8px] border border-dashed border-[#d1d5db] bg-[#ffffff] p-[24px] text-[14px] text-[#6b7280]", children: ["No ", MEDIA_LIBRARY_KIND_LABELS[data.kind].toLowerCase(), " in this space (or none on this page)."] })) : (_jsx(MediaLibraryGrid, { items: data.items }))] })] }));
25
+ }
26
+ /** Index page linking to each media kind. */
27
+ export function MediaLibraryHub({ basePath = '/cms/media' }) {
28
+ return (_jsxs("div", { className: "min-h-screen bg-[#f9fafb] text-[#111827]", children: [_jsx("header", { className: "border-b border-[#e5e7eb] bg-[#ffffff]", children: _jsxs("div", { className: "mx-auto max-w-[720px] px-[16px] py-[24px]", children: [_jsx("p", { className: "m-0 text-[11px] font-[500] uppercase tracking-[0.06em] text-[#6b7280]", children: "CMS tools" }), _jsx("h1", { className: "m-0 mt-[4px] text-[22px] font-[600]", children: "Media library" }), _jsx("p", { className: "m-0 mt-[8px] text-[14px] leading-[1.5] text-[#4b5563]", children: "Browse every image, video, animation, and external video entry in the Contentful space. Thumbnails only. For agents use JSON or Markdown endpoints." })] }) }), _jsxs("main", { className: "mx-auto max-w-[720px] px-[16px] py-[24px]", children: [_jsx("ul", { className: "m-0 flex list-none flex-col gap-[10px] p-0", children: MEDIA_LIBRARY_KINDS.map((kind) => (_jsx("li", { children: _jsxs("a", { href: `${basePath}/${kind}/`, className: "flex items-center justify-between rounded-[8px] border border-[#e5e7eb] bg-[#ffffff] px-[16px] py-[14px] text-[15px] font-[500] text-[#111827] no-underline hover:border-[#9ca3af]", children: [_jsx("span", { children: MEDIA_LIBRARY_KIND_LABELS[kind] }), _jsxs("span", { className: "text-[13px] font-[400] text-[#6b7280]", children: ["/", kind, "/"] })] }) }, kind))) }), _jsxs("div", { className: "mt-[24px] rounded-[8px] border border-[#e5e7eb] bg-[#ffffff] p-[16px] text-[13px] leading-[1.5] text-[#4b5563]", children: [_jsx("p", { className: "m-0 font-[600] text-[#111827]", children: "Agent surfaces" }), _jsxs("ul", { className: "mb-0 mt-[8px] pl-[18px]", children: [_jsx("li", { children: _jsxs("code", { children: [basePath, ".json?kind=images&page=1&limit=50"] }) }), _jsx("li", { children: _jsxs("code", { children: [basePath, ".md?kind=images&page=1&limit=50"] }) })] })] })] })] }));
29
+ }
30
+ //# sourceMappingURL=MediaLibraryPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaLibraryPage.js","sourceRoot":"","sources":["../../src/media-library/MediaLibraryPage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { MediaLibraryGrid } from './MediaLibraryGrid';
2
+ export { MediaLibraryHub, type MediaLibraryHubProps, MediaLibraryPage, type MediaLibraryPageProps, } from './MediaLibraryPage';
3
+ export { isMediaLibraryKind, MEDIA_LIBRARY_KIND_LABELS, MEDIA_LIBRARY_KINDS, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPageData, } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media-library/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { MediaLibraryGrid } from './MediaLibraryGrid';
2
+ export { MediaLibraryHub, MediaLibraryPage, } from './MediaLibraryPage';
3
+ export { isMediaLibraryKind, MEDIA_LIBRARY_KIND_LABELS, MEDIA_LIBRARY_KINDS, } from './types';
4
+ //# sourceMappingURL=index.js.map