@se-studio/core-ui 1.0.52 → 1.0.54

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 (34) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/analytics/adapters/index.d.ts +1 -1
  3. package/dist/analytics/adapters/index.d.ts.map +1 -1
  4. package/dist/analytics/adapters/index.js.map +1 -1
  5. package/dist/components/CmsEmbeddedContent.d.ts +2 -1
  6. package/dist/components/CmsEmbeddedContent.d.ts.map +1 -1
  7. package/dist/components/ErrorBoundary.d.ts +1 -1
  8. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  9. package/dist/components/ExternalVimeoEmbed.d.ts +1 -1
  10. package/dist/components/ExternalVimeoEmbed.d.ts.map +1 -1
  11. package/dist/components/ExternalVimeoEmbed.js +1 -1
  12. package/dist/components/ExternalVimeoEmbed.js.map +1 -1
  13. package/dist/components/banner/BannerClient.d.ts +13 -0
  14. package/dist/components/banner/BannerClient.d.ts.map +1 -0
  15. package/dist/components/banner/BannerClient.js +109 -0
  16. package/dist/components/banner/BannerClient.js.map +1 -0
  17. package/dist/components/banner/BannerManager.d.ts +16 -0
  18. package/dist/components/banner/BannerManager.d.ts.map +1 -0
  19. package/dist/components/banner/BannerManager.js +21 -0
  20. package/dist/components/banner/BannerManager.js.map +1 -0
  21. package/dist/components/banner/BannerTargeting.d.ts +20 -0
  22. package/dist/components/banner/BannerTargeting.d.ts.map +1 -0
  23. package/dist/components/banner/BannerTargeting.js +203 -0
  24. package/dist/components/banner/BannerTargeting.js.map +1 -0
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/rtf/rtf.d.ts.map +1 -1
  30. package/dist/rtf/rtf.js +3 -8
  31. package/dist/rtf/rtf.js.map +1 -1
  32. package/dist/utils/errorMonitoring.d.ts +2 -1
  33. package/dist/utils/errorMonitoring.d.ts.map +1 -1
  34. package/package.json +7 -16
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @se-studio/core-ui
2
2
 
3
+ ## 1.0.54
4
+
5
+ ### Patch Changes
6
+
7
+ - Bulk version bump: patch for all packages
8
+ - Updated dependencies
9
+ - @se-studio/contentful-rest-api@1.0.54
10
+ - @se-studio/core-data-types@1.0.54
11
+
12
+ ## 1.0.53
13
+
14
+ ### Patch Changes
15
+
16
+ - Bulk version bump: patch for all packages
17
+ - Updated dependencies
18
+ - @se-studio/contentful-rest-api@1.0.53
19
+ - @se-studio/core-data-types@1.0.53
20
+
3
21
  ## 1.0.52
4
22
 
5
23
  ### Patch Changes
@@ -1,4 +1,4 @@
1
1
  export { ConsentAwareAdapter } from './ConsentAwareAdapter';
2
2
  export { ConsoleAnalyticsAdapter } from './ConsoleAnalyticsAdapter';
3
- export { type ConsentState, GoogleTagManagerAdapter } from './GoogleTagManagerAdapter';
3
+ export { GoogleTagManagerAdapter } from './GoogleTagManagerAdapter';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,KAAK,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analytics/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAqB,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analytics/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { type EmbeddedCollectionRenderer } from './CmsCollection';
2
2
  import { type EmbeddedComponentRenderer } from './CmsComponent';
3
3
  import { type EmbeddedExternalComponentRenderer } from './CmsExternalComponent';
4
- export type EmbeddedContentRenderer = EmbeddedComponentRenderer | EmbeddedCollectionRenderer | EmbeddedExternalComponentRenderer;
4
+ type EmbeddedContentRenderer = EmbeddedComponentRenderer | EmbeddedCollectionRenderer | EmbeddedExternalComponentRenderer;
5
5
  /**
6
6
  * Single content item renderer that routes to the appropriate renderer based on type
7
7
  */
8
8
  export declare const CmsEmbeddedContent: EmbeddedContentRenderer;
9
+ export {};
9
10
  //# sourceMappingURL=CmsEmbeddedContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CmsEmbeddedContent.d.ts","sourceRoot":"","sources":["../../src/components/CmsEmbeddedContent.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAyB,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,uBAAuB,GAC/B,yBAAyB,GACzB,0BAA0B,GAC1B,iCAAiC,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,uBA4DhC,CAAC"}
1
+ {"version":3,"file":"CmsEmbeddedContent.d.ts","sourceRoot":"","sources":["../../src/components/CmsEmbeddedContent.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAyB,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,wBAAwB,CAAC;AAEhC,KAAK,uBAAuB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,iCAAiC,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,uBA4DhC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React, { type ErrorInfo, type ReactNode } from 'react';
2
- export interface ErrorBoundaryProps {
2
+ interface ErrorBoundaryProps {
3
3
  children: ReactNode;
4
4
  fallback?: ReactNode | ((error: Error) => ReactNode);
5
5
  onError?: (error: Error, errorInfo: ErrorInfo) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../src/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBAC5E,KAAK,EAAE,kBAAkB;IAKrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIxD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IASpD,MAAM;CAahB"}
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../src/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9D,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBAC5E,KAAK,EAAE,kBAAkB;IAKrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIxD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IASpD,MAAM;CAahB"}
@@ -1,6 +1,6 @@
1
1
  import type { IAnalyticsContext, IExternalVideo } from '@se-studio/core-data-types';
2
2
  import type { IVideoProps } from './Video';
3
- export declare function ExternalVimeoEmbed({ video, style, className, vimeoId, analyticsContext, componentLabel, autoPlay, loop, ...props }: {
3
+ declare function ExternalVimeoEmbed({ video, style, className, vimeoId, analyticsContext, componentLabel, autoPlay, loop, ...props }: {
4
4
  video: IExternalVideo;
5
5
  vimeoId: string;
6
6
  analyticsContext: IAnalyticsContext | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalVimeoEmbed.d.ts","sourceRoot":"","sources":["../../src/components/ExternalVimeoEmbed.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EACT,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3C,GAAG,WAAW,2CAoCd;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ExternalVimeoEmbed.d.ts","sourceRoot":"","sources":["../../src/components/ExternalVimeoEmbed.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,iBAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EACT,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3C,GAAG,WAAW,2CAoCd;AAED,eAAe,kBAAkB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import Image from 'next/image';
4
4
  import { calculateCropDetails } from './Visual';
5
- export function ExternalVimeoEmbed({ video, style, className, vimeoId, analyticsContext, componentLabel, autoPlay, loop, ...props }) {
5
+ function ExternalVimeoEmbed({ video, style, className, vimeoId, analyticsContext, componentLabel, autoPlay, loop, ...props }) {
6
6
  const cropProperties = calculateCropDetails(video);
7
7
  const embed = video.embed;
8
8
  const fullStyle = {
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalVimeoEmbed.js","sourceRoot":"","sources":["../../src/components/ExternalVimeoEmbed.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EAMK;IACb,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAkB;QAC/B,GAAG,KAAK;QACR,GAAG,cAAc;QACjB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,YACzC,qBACE,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,SAAS,EAAC,eAAe,EACzB,QAAQ,QACR,QAAQ,EAAE,QAAQ,KACd,KAAK,YAER,KAAK,CAAC,MAAM,IAAI,CACf,KAAC,KAAK,IACJ,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,EAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAC5B,KAAK,EAAE;oBACL,SAAS,EAAE,OAAO;iBACnB,EACD,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,eAAe,GACzB,CACH,GACU,GACT,CACP,CAAC;AACJ,CAAC;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ExternalVimeoEmbed.js","sourceRoot":"","sources":["../../src/components/ExternalVimeoEmbed.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,SAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EAMK;IACb,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAkB;QAC/B,GAAG,KAAK;QACR,GAAG,cAAc;QACjB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,YACzC,qBACE,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,SAAS,EAAC,eAAe,EACzB,QAAQ,QACR,QAAQ,EAAE,QAAQ,KACd,KAAK,YAER,KAAK,CAAC,MAAM,IAAI,CACf,KAAC,KAAK,IACJ,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,EAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAC5B,KAAK,EAAE;oBACL,SAAS,EAAE,OAAO;iBACnB,EACD,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,eAAe,GACzB,CACH,GACU,GACT,CACP,CAAC;AACJ,CAAC;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { IBanner } from '@se-studio/core-data-types';
2
+ interface BannerClientProps {
3
+ banners: readonly IBanner[];
4
+ BannerComponent: React.ComponentType<{
5
+ banner: IBanner;
6
+ onDismiss: () => void;
7
+ onClick?: () => void;
8
+ }>;
9
+ debug?: boolean;
10
+ }
11
+ declare const BannerClient: React.FC<BannerClientProps>;
12
+ export default BannerClient;
13
+ //# sourceMappingURL=BannerClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerClient.d.ts","sourceRoot":"","sources":["../../../src/components/banner/BannerClient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAM1D,UAAU,iBAAiB;IACzB,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC;QACnC,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,MAAM,IAAI,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwH7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,109 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useState } from 'react';
4
+ const BannerClient = ({ banners, BannerComponent, debug }) => {
5
+ const [visibleBannerId, setVisibleBannerId] = useState(null);
6
+ useEffect(() => {
7
+ // Check localStorage for dismissed banners
8
+ // Safety check for SSR/environment without localStorage
9
+ if (typeof window === 'undefined')
10
+ return;
11
+ if (debug) {
12
+ console.log('[BannerClient] Initializing with banners:', banners);
13
+ }
14
+ const dismissedBanners = JSON.parse(localStorage.getItem('dismissedBanners') || '{}');
15
+ if (debug) {
16
+ console.log('[BannerClient] Dismissed banners from storage:', dismissedBanners);
17
+ }
18
+ // Sort banners by priority (descending)
19
+ const sortedBanners = [...banners].sort((a, b) => (b.priority || 0) - (a.priority || 0));
20
+ // Find the first non-dismissed banner
21
+ for (const banner of sortedBanners) {
22
+ // Date checks
23
+ const now = new Date();
24
+ if (banner.startDate && new Date(banner.startDate) > now) {
25
+ if (debug)
26
+ console.log(`[BannerClient] Banner ${banner.id} skipped: Not started yet.`);
27
+ continue;
28
+ }
29
+ if (banner.endDate && new Date(banner.endDate) < now) {
30
+ if (debug)
31
+ console.log(`[BannerClient] Banner ${banner.id} skipped: Expired.`);
32
+ continue;
33
+ }
34
+ const dismissed = dismissedBanners[banner.id];
35
+ if (!dismissed) {
36
+ // Banner was never dismissed
37
+ if (debug)
38
+ console.log(`[BannerClient] Showing banner ${banner.id}: Never dismissed.`);
39
+ setVisibleBannerId(banner.id);
40
+ break;
41
+ }
42
+ if (banner.dismissType === 'Timed' && dismissed.timestamp) {
43
+ const dismissedTime = new Date(dismissed.timestamp).getTime();
44
+ const currentTime = new Date().getTime();
45
+ const hoursSinceDismiss = (currentTime - dismissedTime) / (1000 * 60 * 60);
46
+ if (hoursSinceDismiss >= (banner.dismissDurationHours || 24)) {
47
+ // Dismissal period has expired
48
+ if (debug)
49
+ console.log(`[BannerClient] Showing banner ${banner.id}: Dismissal expired.`);
50
+ setVisibleBannerId(banner.id);
51
+ break;
52
+ }
53
+ if (debug)
54
+ console.log(`[BannerClient] Banner ${banner.id} skipped: Dismissed (Timed).`);
55
+ }
56
+ else if (banner.dismissType === 'Session') {
57
+ // For session dismissals, check if we're in a new session
58
+ const sessionKey = `banner_session_${banner.id}`;
59
+ if (!sessionStorage.getItem(sessionKey)) {
60
+ if (debug)
61
+ console.log(`[BannerClient] Showing banner ${banner.id}: New session.`);
62
+ setVisibleBannerId(banner.id);
63
+ break;
64
+ }
65
+ if (debug)
66
+ console.log(`[BannerClient] Banner ${banner.id} skipped: Dismissed (Session).`);
67
+ }
68
+ else if (banner.dismissType === 'Permanent') {
69
+ if (debug)
70
+ console.log(`[BannerClient] Banner ${banner.id} skipped: Dismissed (Permanent).`);
71
+ }
72
+ }
73
+ }, [banners, debug]);
74
+ const handleClick = useCallback((banner) => {
75
+ // Optional: emit event
76
+ if (debug)
77
+ console.debug('Banner clicked:', banner.id);
78
+ }, [debug]);
79
+ const handleDismiss = useCallback((banner) => {
80
+ if (typeof window === 'undefined')
81
+ return;
82
+ if (debug)
83
+ console.log(`[BannerClient] Dismissing banner ${banner.id}`);
84
+ // Store dismissal in localStorage
85
+ const dismissedBanners = JSON.parse(localStorage.getItem('dismissedBanners') || '{}');
86
+ dismissedBanners[banner.id] = {
87
+ timestamp: new Date().toISOString(),
88
+ type: banner.dismissType,
89
+ };
90
+ localStorage.setItem('dismissedBanners', JSON.stringify(dismissedBanners));
91
+ // For session dismissals, also store in sessionStorage
92
+ if (banner.dismissType === 'Session') {
93
+ sessionStorage.setItem(`banner_session_${banner.id}`, 'true');
94
+ }
95
+ // Hide the banner
96
+ setVisibleBannerId(null);
97
+ }, [debug]);
98
+ if (!visibleBannerId) {
99
+ if (debug && banners.length > 0)
100
+ console.log('[BannerClient] No visible banner selected.');
101
+ return null;
102
+ }
103
+ const visibleBanner = banners.find((banner) => banner.id === visibleBannerId);
104
+ if (!visibleBanner)
105
+ return null;
106
+ return (_jsx(BannerComponent, { banner: visibleBanner, onDismiss: () => handleDismiss(visibleBanner), onClick: () => handleClick(visibleBanner) }));
107
+ };
108
+ export default BannerClient;
109
+ //# sourceMappingURL=BannerClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerClient.js","sourceRoot":"","sources":["../../../src/components/banner/BannerClient.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { IBanner, IBaseModel, ITyped } from '@se-studio/core-data-types';
2
+ interface BannerManagerProps {
3
+ content?: IBaseModel & {
4
+ tags?: ReadonlyArray<ITyped>;
5
+ };
6
+ banners: ReadonlyArray<IBanner>;
7
+ url?: string;
8
+ BannerComponent: React.ComponentType<{
9
+ banner: IBanner;
10
+ onDismiss: () => void;
11
+ onClick?: () => void;
12
+ }>;
13
+ }
14
+ export declare function BannerManager({ content, banners, url, BannerComponent }: BannerManagerProps): import("react/jsx-runtime").JSX.Element | null;
15
+ export {};
16
+ //# sourceMappingURL=BannerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerManager.d.ts","sourceRoot":"","sources":["../../../src/components/banner/BannerManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAK9E,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IACxD,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC;QACnC,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,MAAM,IAAI,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,kBAAkB,kDAsB3F"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Suspense } from 'react';
3
+ import BannerClient from './BannerClient';
4
+ import { BannerTargetingEngine } from './BannerTargeting';
5
+ export function BannerManager({ content, banners, url, BannerComponent }) {
6
+ const debug = process.env.BANNER_DEBUG === 'true';
7
+ if (!banners || banners.length === 0) {
8
+ if (debug)
9
+ console.log('[BannerManager] No banners found.');
10
+ return null;
11
+ }
12
+ // Filter banners based on targeting rules
13
+ const targetedBanners = BannerTargetingEngine.filterBannersForPage(banners, content, url);
14
+ if (debug) {
15
+ console.log(`[BannerManager] ${targetedBanners.length} banners passed targeting.`);
16
+ }
17
+ if (targetedBanners.length === 0)
18
+ return null;
19
+ return (_jsx(Suspense, { fallback: null, children: _jsx(BannerClient, { banners: targetedBanners, BannerComponent: BannerComponent, debug: debug }) }));
20
+ }
21
+ //# sourceMappingURL=BannerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerManager.js","sourceRoot":"","sources":["../../../src/components/banner/BannerManager.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAa1D,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAsB;IAC1F,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC;IAElD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAE1F,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,mBAAmB,eAAe,CAAC,MAAM,4BAA4B,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9C,OAAO,CACL,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,YAAY,IAAC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAI,GACjF,CACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { IBanner, IBaseModel } from '@se-studio/core-data-types';
2
+ export declare const BannerTargetingEngine: {
3
+ /**
4
+ * Evaluates whether a banner should be shown on the current page with comprehensive logging
5
+ * @param banner Banner configuration with targeting rules
6
+ * @param content Current page/content model (IBaseModel or similar ITyped)
7
+ * @param url Current page URL
8
+ * @returns true if banner should be shown
9
+ */
10
+ evaluateBannerRules(banner: IBanner, content?: IBaseModel, url?: string): boolean;
11
+ /**
12
+ * Process all banners for a page with summary logging
13
+ * @param banners Array of banners to evaluate
14
+ * @param content Current content model
15
+ * @param url Current URL
16
+ * @returns Array of banners that should be shown
17
+ */
18
+ filterBannersForPage(banners: readonly IBanner[], content?: IBaseModel, url?: string): IBanner[];
19
+ };
20
+ //# sourceMappingURL=BannerTargeting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerTargeting.d.ts","sourceRoot":"","sources":["../../../src/components/banner/BannerTargeting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAU,MAAM,4BAA4B,CAAC;AAmG9E,eAAO,MAAM,qBAAqB;IAChC;;;;;;OAMG;gCACyB,OAAO,YAAY,UAAU,QAAQ,MAAM,GAAG,OAAO;IAyGjF;;;;;;OAMG;kCAC2B,SAAS,OAAO,EAAE,YAAY,UAAU,QAAQ,MAAM,GAAG,OAAO,EAAE;CAuBjG,CAAC"}
@@ -0,0 +1,203 @@
1
+ const BANNER_DEBUG = process.env.BANNER_DEBUG === 'true';
2
+ // Debug logging function for banner targeting
3
+ const debugLog = (message, data) => {
4
+ if (BANNER_DEBUG) {
5
+ console.log(message, data);
6
+ }
7
+ };
8
+ /**
9
+ * Normalize URL for consistent pattern matching
10
+ * @param url URL to normalize
11
+ * @returns Normalized URL
12
+ */
13
+ function normalizeUrl(url) {
14
+ // Ensure leading slash, remove trailing slash (except root), lowercase
15
+ let normalized = url.toLowerCase();
16
+ if (!normalized.startsWith('/')) {
17
+ normalized = `/${normalized}`;
18
+ }
19
+ if (normalized.length > 1 && normalized.endsWith('/')) {
20
+ normalized = normalized.slice(0, -1);
21
+ }
22
+ return normalized;
23
+ }
24
+ /**
25
+ * Check if a URL matches a pattern with wildcard support
26
+ * @param pattern Pattern with * wildcards
27
+ * @param url URL to check
28
+ * @returns true if URL matches pattern
29
+ */
30
+ function matchesPattern(pattern, url) {
31
+ // Escape special regex characters except *
32
+ const escapedPattern = pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&');
33
+ // Replace * with regex equivalent (match any characters)
34
+ const regexPattern = escapedPattern.replace(/\*/g, '(.*)?');
35
+ // Create regex with anchors for exact matching
36
+ const regex = new RegExp(`^${regexPattern}$`);
37
+ return regex.test(url);
38
+ }
39
+ /**
40
+ * Check if any URL pattern matches the current URL
41
+ * @param patterns Array of URL patterns to check
42
+ * @param url Current page URL
43
+ * @returns Matched pattern or null
44
+ */
45
+ function matchesAnyPattern(patterns, url) {
46
+ const normalizedUrl = normalizeUrl(url);
47
+ for (const pattern of patterns) {
48
+ const normalizedPattern = normalizeUrl(pattern);
49
+ if (matchesPattern(normalizedPattern, normalizedUrl)) {
50
+ return pattern;
51
+ }
52
+ }
53
+ return null;
54
+ }
55
+ /**
56
+ * Check if any content reference matches the current page context
57
+ * @param references Array of content references to check
58
+ * @param content Current page content
59
+ * @returns Matched reference or null
60
+ */
61
+ function matchesAnyReference(references, content) {
62
+ for (const ref of references) {
63
+ // Direct ID match
64
+ if (ref.id === content.id) {
65
+ return ref;
66
+ }
67
+ }
68
+ return null;
69
+ }
70
+ export const BannerTargetingEngine = {
71
+ /**
72
+ * Evaluates whether a banner should be shown on the current page with comprehensive logging
73
+ * @param banner Banner configuration with targeting rules
74
+ * @param content Current page/content model (IBaseModel or similar ITyped)
75
+ * @param url Current page URL
76
+ * @returns true if banner should be shown
77
+ */
78
+ evaluateBannerRules(banner, content, url) {
79
+ debugLog('Looking at banner', banner);
80
+ const evaluation = {
81
+ excludePatterns: { matched: false },
82
+ excludeContent: { matched: false },
83
+ includePatterns: { matched: false },
84
+ includeContent: { matched: false },
85
+ };
86
+ let decision = 'DEFAULT';
87
+ let reason = 'default_behavior';
88
+ let matchedPattern;
89
+ let matchedContent;
90
+ let hasInclude = false;
91
+ let hasExclude = false;
92
+ // Step 1: Check exclude patterns first (highest priority)
93
+ if (url && banner.excludePatterns?.length) {
94
+ hasExclude = true;
95
+ const excludePatternMatch = matchesAnyPattern(banner.excludePatterns, url);
96
+ evaluation.excludePatterns.matched = !!excludePatternMatch;
97
+ if (excludePatternMatch) {
98
+ evaluation.excludePatterns.pattern = excludePatternMatch;
99
+ decision = 'EXCLUDED';
100
+ reason = 'matched_exclude_pattern';
101
+ matchedPattern = excludePatternMatch;
102
+ }
103
+ }
104
+ // Step 2: Check exclude content references
105
+ if (decision === 'DEFAULT' && content && banner.hideOn?.length) {
106
+ hasExclude = true;
107
+ const excludeContentMatch = matchesAnyReference(banner.hideOn, content);
108
+ evaluation.excludeContent.matched = !!excludeContentMatch;
109
+ if (excludeContentMatch) {
110
+ evaluation.excludeContent.contentType = excludeContentMatch.type;
111
+ evaluation.excludeContent.id = excludeContentMatch.id;
112
+ decision = 'EXCLUDED';
113
+ reason = 'matched_exclude_content';
114
+ matchedContent = {
115
+ type: excludeContentMatch.type,
116
+ id: excludeContentMatch.id,
117
+ };
118
+ }
119
+ }
120
+ // Step 3: Check include patterns
121
+ if (decision === 'DEFAULT' && url && banner.includePatterns?.length) {
122
+ hasInclude = true;
123
+ const includePatternMatch = matchesAnyPattern(banner.includePatterns, url);
124
+ evaluation.includePatterns.matched = !!includePatternMatch;
125
+ if (includePatternMatch) {
126
+ evaluation.includePatterns.pattern = includePatternMatch;
127
+ decision = 'INCLUDED';
128
+ reason = 'matched_include_pattern';
129
+ matchedPattern = includePatternMatch;
130
+ }
131
+ }
132
+ // Step 4: Check include content references (only if no include patterns or if patterns matched)
133
+ if (decision === 'DEFAULT' && content && banner.showOn?.length) {
134
+ hasInclude = true;
135
+ const includeContentMatch = matchesAnyReference(banner.showOn, content);
136
+ evaluation.includeContent.matched = !!includeContentMatch;
137
+ if (includeContentMatch) {
138
+ evaluation.includeContent.contentType = includeContentMatch.type;
139
+ evaluation.includeContent.id = includeContentMatch.id;
140
+ decision = 'INCLUDED';
141
+ reason = 'matched_include_content';
142
+ matchedContent = {
143
+ type: includeContentMatch.type,
144
+ id: includeContentMatch.id,
145
+ };
146
+ }
147
+ }
148
+ if (decision === 'DEFAULT') {
149
+ if (hasInclude) {
150
+ decision = 'EXCLUDED';
151
+ reason = 'no_include_match';
152
+ }
153
+ else if (hasExclude) {
154
+ decision = 'INCLUDED';
155
+ reason = 'no_exclude_match';
156
+ }
157
+ }
158
+ const finalDecision = decision === 'DEFAULT' ? 'INCLUDED' : decision;
159
+ // Debug logging
160
+ if (BANNER_DEBUG) {
161
+ const debugInfo = {
162
+ bannerId: banner.id,
163
+ bannerMessage: banner.message ?? null,
164
+ currentUrl: url,
165
+ decision: finalDecision,
166
+ reason,
167
+ matchedPattern,
168
+ matchedContent,
169
+ evaluation,
170
+ };
171
+ debugLog(`🎯 Banner Decision for "${banner.message}":`, debugInfo);
172
+ }
173
+ return finalDecision === 'INCLUDED';
174
+ },
175
+ /**
176
+ * Process all banners for a page with summary logging
177
+ * @param banners Array of banners to evaluate
178
+ * @param content Current content model
179
+ * @param url Current URL
180
+ * @returns Array of banners that should be shown
181
+ */
182
+ filterBannersForPage(banners, content, url) {
183
+ const results = banners.map((banner) => ({
184
+ banner,
185
+ shouldShow: this.evaluateBannerRules(banner, content, url),
186
+ }));
187
+ const includedBanners = results.filter((r) => r.shouldShow).map((r) => r.banner);
188
+ debugLog('📊 Banner filtering summary:', {
189
+ pageUrl: url,
190
+ contentId: content?.id,
191
+ totalBanners: banners.length,
192
+ includedBanners: includedBanners.length,
193
+ excludedBanners: banners.length - includedBanners.length,
194
+ bannerDetails: results.map((r) => ({
195
+ id: r.banner.id,
196
+ message: r.banner.message,
197
+ status: r.shouldShow ? 'INCLUDED' : 'EXCLUDED',
198
+ })),
199
+ });
200
+ return includedBanners;
201
+ },
202
+ };
203
+ //# sourceMappingURL=BannerTargeting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerTargeting.js","sourceRoot":"","sources":["../../../src/components/banner/BannerTargeting.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -40,6 +40,7 @@ export { useAnalytics } from './analytics/useAnalytics';
40
40
  export type { CmsRendererConfig, CmsRendererTypes } from './CmsRendererConfig';
41
41
  export type { CollectionRegistration, ComponentRegistration, ExternalComponentRegistration, MockData, } from './cmsRegistration';
42
42
  export { buildCollectionMaps, buildComponentMaps, buildExternalComponentMaps, defineCollection, defineComponent, defineExternalComponent, } from './cmsRegistration';
43
+ export { BannerManager } from './components/banner/BannerManager';
43
44
  export { ClientMonitor } from './components/ClientMonitor.js';
44
45
  export type { CollectionMap, CollectionRenderer, CollectionRendererProps, EmbeddedCollectionMap, EmbeddedCollectionRenderer, } from './components/CmsCollection';
45
46
  export { CmsCollection } from './components/CmsCollection';
@@ -67,6 +68,7 @@ export { ComponentErrorIndicator } from './framework/ComponentErrorIndicator';
67
68
  export { showComponentError, showInlineError } from './framework/componentErrors';
68
69
  export { default as ResponsiveVisual } from './framework/ResponsiveVisual';
69
70
  export { useClickTracking } from './hooks/useClickTracking';
71
+ export { onVisibleToUser, useClientOnly, useDocumentVisible, useFirstVisibleCallback, useFirstVisibleToUser, useVisibleToUser, } from './hooks/visibility';
70
72
  export { RTF } from './rtf/rtf';
71
73
  export * from './showcase';
72
74
  export type { IBuildInformation } from './utils/buildPageMetadata';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -40,6 +40,7 @@ export { AnalyticsProvider, useAnalyticsContext } from './analytics/AnalyticsPro
40
40
  export { ConsentAwareAdapter, ConsoleAnalyticsAdapter, GoogleTagManagerAdapter, } from './analytics/adapters';
41
41
  export { useAnalytics } from './analytics/useAnalytics';
42
42
  export { buildCollectionMaps, buildComponentMaps, buildExternalComponentMaps, defineCollection, defineComponent, defineExternalComponent, } from './cmsRegistration';
43
+ export { BannerManager } from './components/banner/BannerManager';
43
44
  export { ClientMonitor } from './components/ClientMonitor.js';
44
45
  export { CmsCollection } from './components/CmsCollection';
45
46
  export { CmsComponent } from './components/CmsComponent';
@@ -66,6 +67,7 @@ export { showComponentError, showInlineError } from './framework/componentErrors
66
67
  export { default as ResponsiveVisual } from './framework/ResponsiveVisual';
67
68
  // Shared Hooks
68
69
  export { useClickTracking } from './hooks/useClickTracking';
70
+ export { onVisibleToUser, useClientOnly, useDocumentVisible, useFirstVisibleCallback, useFirstVisibleToUser, useVisibleToUser, } from './hooks/visibility';
69
71
  export { RTF } from './rtf/rtf';
70
72
  // CMS Showcase
71
73
  export * from './showcase';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,kDAAkD;AAElD,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACvF,qBAAqB;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASxD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAQrE,uBAAuB;AACvB,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,oBAAoB;AACpB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,WAAW;AACX,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,eAAe;AACf,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC5F,mBAAmB;AACnB,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,wBAAwB;AACxB,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rtf.d.ts","sourceRoot":"","sources":["../../src/rtf/rtf.tsx"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,QAAQ,EAGd,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsL9D;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,8CAA8C;IAC9C,OAAO,EAAE,QAAQ,CAAC;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,uDAAuD;IACvD,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,0DAA0D;IAC1D,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,SAAS,EACT,KAAK,EACL,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,GAAG,KAAK,EACT,EAAE,QAAQ,2CAOV"}
1
+ {"version":3,"file":"rtf.d.ts","sourceRoot":"","sources":["../../src/rtf/rtf.tsx"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,QAAQ,EAGd,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAyK9D;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,8CAA8C;IAC9C,OAAO,EAAE,QAAQ,CAAC;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,uDAAuD;IACvD,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,0DAA0D;IAC1D,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,SAAS,EACT,KAAK,EACL,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,GAAG,KAAK,EACT,EAAE,QAAQ,2CAOV"}
package/dist/rtf/rtf.js CHANGED
@@ -1,9 +1,10 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { documentToReactComponents, } from '@contentful/rich-text-react-renderer';
3
3
  import { BLOCKS, INLINES, } from '@contentful/rich-text-types';
4
4
  import Link from 'next/link';
5
5
  import { Fragment } from 'react';
6
6
  import { CmsEmbeddedContent } from '../components/CmsEmbeddedContent';
7
+ import { convertText } from '../utils/convertText';
7
8
  import { isAbsoluteUrl } from '../utils/urlUtils';
8
9
  function createComplexLinksRenderer(rendererConfig, contentContext, embeddedPositionClassName) {
9
10
  if (!rendererConfig || !contentContext) {
@@ -98,13 +99,7 @@ function buildOptions(rendererConfig, contentContext, embeddedPositionClassName)
98
99
  // Wrap text nodes in keyed fragments to avoid React key warnings
99
100
  // when they appear alongside other inline elements
100
101
  const key = `text-${textNodeCounter++}`;
101
- const segments = text.split('\n');
102
- if (segments.length === 1) {
103
- return _jsx(Fragment, { children: text }, key);
104
- }
105
- return (_jsx(Fragment, { children: segments.map((segment, index) => (
106
- // biome-ignore lint/suspicious/noArrayIndexKey: Index is ok here
107
- _jsxs(Fragment, { children: [index > 0 && _jsx("br", {}), segment] }, index))) }, key));
102
+ return _jsx(Fragment, { children: convertText(text) }, key);
108
103
  },
109
104
  preserveWhitespace: true,
110
105
  stripEmptyTrailingParagraph: true,
@@ -1 +1 @@
1
- {"version":3,"file":"rtf.js","sourceRoot":"","sources":["../../src/rtf/rtf.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rtf.js","sourceRoot":"","sources":["../../src/rtf/rtf.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ export interface ErrorContext {
2
2
  componentStack?: string;
3
3
  [key: string]: unknown;
4
4
  }
5
- export interface ErrorReporter {
5
+ interface ErrorReporter {
6
6
  captureException(error: Error, context?: ErrorContext): void;
7
7
  }
8
8
  /**
@@ -13,4 +13,5 @@ export declare function initErrorMonitoring(reporter: ErrorReporter): void;
13
13
  * Capture an exception
14
14
  */
15
15
  export declare function captureException(error: unknown, context?: ErrorContext): void;
16
+ export {};
16
17
  //# sourceMappingURL=errorMonitoring.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorMonitoring.d.ts","sourceRoot":"","sources":["../../src/utils/errorMonitoring.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9D;AAgBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,QAE1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,QAGtE"}
1
+ {"version":3,"file":"errorMonitoring.d.ts","sourceRoot":"","sources":["../../src/utils/errorMonitoring.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,aAAa;IACrB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9D;AAgBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,QAE1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,QAGtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/core-ui",
3
- "version": "1.0.52",
3
+ "version": "1.0.54",
4
4
  "description": "Shared React UI component library with Tailwind CSS v4 for SE Studio applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -55,33 +55,24 @@
55
55
  "@extractus/oembed-extractor": "^4.0.9",
56
56
  "@radix-ui/react-slot": "^1.2.4",
57
57
  "@types/mustache": "4.2.6",
58
- "change-case": "^5.4.4",
59
58
  "clsx": "^2.1.1",
60
59
  "html-entities": "^2.6.0",
61
60
  "mustache": "4.2.0",
62
61
  "tailwind-merge": "^3.4.0",
63
- "@se-studio/core-data-types": "1.0.52",
64
- "@se-studio/contentful-rest-api": "1.0.52"
62
+ "@se-studio/contentful-rest-api": "1.0.54",
63
+ "@se-studio/core-data-types": "1.0.54"
65
64
  },
66
65
  "devDependencies": {
67
- "@biomejs/biome": "^2.3.11",
68
- "@testing-library/jest-dom": "^6.9.1",
69
- "@testing-library/react": "^16.3.1",
70
- "@types/node": "^22.19.5",
71
- "@types/react": "^19.2.7",
66
+ "@biomejs/biome": "^2.3.12",
67
+ "@types/node": "^22.19.7",
68
+ "@types/react": "^19.2.9",
72
69
  "@types/react-dom": "^19.2.3",
73
- "@vitejs/plugin-react": "^5.1.2",
74
- "jsdom": "^27.4.0",
75
70
  "next": "^15.5.9",
76
- "tsup": "^8.5.1",
77
- "typescript": "^5.9.3",
78
- "vitest": "^4.0.16"
71
+ "typescript": "^5.9.3"
79
72
  },
80
73
  "scripts": {
81
74
  "build": "tsc --project tsconfig.build.json",
82
75
  "dev": "tsc --project tsconfig.build.json --watch",
83
- "test": "vitest run",
84
- "test:watch": "vitest",
85
76
  "type-check": "tsc --noEmit",
86
77
  "lint": "biome lint .",
87
78
  "clean": "rm -rf dist .turbo *.tsbuildinfo"