@se-studio/core-ui 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +87 -14
  2. package/dist/CmsRendererConfig.d.ts +122 -0
  3. package/dist/CmsRendererConfig.d.ts.map +1 -1
  4. package/dist/analytics/AnalyticsProvider.d.ts +7 -0
  5. package/dist/analytics/AnalyticsProvider.d.ts.map +1 -1
  6. package/dist/analytics/AnalyticsProvider.js +7 -0
  7. package/dist/analytics/AnalyticsProvider.js.map +1 -1
  8. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts +4 -0
  9. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts.map +1 -1
  10. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js +5 -0
  11. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js.map +1 -1
  12. package/dist/analytics/types.d.ts +23 -0
  13. package/dist/analytics/types.d.ts.map +1 -1
  14. package/dist/analytics/useAnalytics.d.ts +35 -0
  15. package/dist/analytics/useAnalytics.d.ts.map +1 -1
  16. package/dist/analytics/useAnalytics.js +35 -0
  17. package/dist/analytics/useAnalytics.js.map +1 -1
  18. package/dist/components/ClientMonitor.d.ts.map +1 -1
  19. package/dist/components/ClientMonitor.js +40 -0
  20. package/dist/components/ClientMonitor.js.map +1 -1
  21. package/dist/components/CmsCollection.d.ts +47 -0
  22. package/dist/components/CmsCollection.d.ts.map +1 -1
  23. package/dist/components/CmsCollection.js +7 -0
  24. package/dist/components/CmsCollection.js.map +1 -1
  25. package/dist/components/CmsComponent.d.ts +47 -0
  26. package/dist/components/CmsComponent.d.ts.map +1 -1
  27. package/dist/components/CmsComponent.js +7 -0
  28. package/dist/components/CmsComponent.js.map +1 -1
  29. package/dist/components/CmsContent.d.ts +62 -0
  30. package/dist/components/CmsContent.d.ts.map +1 -1
  31. package/dist/components/CmsContent.js +53 -0
  32. package/dist/components/CmsContent.js.map +1 -1
  33. package/dist/components/CmsConversionErrors.js +2 -0
  34. package/dist/components/CmsConversionErrors.js.map +1 -1
  35. package/dist/components/CmsEmbeddedContent.d.ts +3 -0
  36. package/dist/components/CmsEmbeddedContent.d.ts.map +1 -1
  37. package/dist/components/CmsEmbeddedContent.js +3 -0
  38. package/dist/components/CmsEmbeddedContent.js.map +1 -1
  39. package/dist/components/CmsExternalComponent.d.ts +44 -0
  40. package/dist/components/CmsExternalComponent.d.ts.map +1 -1
  41. package/dist/components/CmsExternalComponent.js +7 -0
  42. package/dist/components/CmsExternalComponent.js.map +1 -1
  43. package/dist/components/ImageKitClientVideo.js +1 -0
  44. package/dist/components/ImageKitClientVideo.js.map +1 -1
  45. package/dist/components/SvgComponent.js +3 -1
  46. package/dist/components/SvgComponent.js.map +1 -1
  47. package/dist/components/VisualComponent.d.ts +47 -0
  48. package/dist/components/VisualComponent.d.ts.map +1 -1
  49. package/dist/components/VisualComponent.js +47 -0
  50. package/dist/components/VisualComponent.js.map +1 -1
  51. package/dist/elements/TrackedLink.d.ts +8 -0
  52. package/dist/elements/TrackedLink.d.ts.map +1 -1
  53. package/dist/elements/TrackedLink.js +13 -0
  54. package/dist/elements/TrackedLink.js.map +1 -1
  55. package/dist/framework/BackgroundMedia.js +5 -1
  56. package/dist/framework/BackgroundMedia.js.map +1 -1
  57. package/dist/framework/ComponentErrorIndicator.js +7 -4
  58. package/dist/framework/ComponentErrorIndicator.js.map +1 -1
  59. package/dist/framework/componentErrors.d.ts +8 -0
  60. package/dist/framework/componentErrors.d.ts.map +1 -1
  61. package/dist/framework/componentErrors.js +10 -0
  62. package/dist/framework/componentErrors.js.map +1 -1
  63. package/dist/hooks/useClickTracking.d.ts +39 -0
  64. package/dist/hooks/useClickTracking.d.ts.map +1 -1
  65. package/dist/hooks/useClickTracking.js +29 -0
  66. package/dist/hooks/useClickTracking.js.map +1 -1
  67. package/dist/index.d.ts +35 -0
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +44 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/rtf/rtf.d.ts +41 -0
  72. package/dist/rtf/rtf.d.ts.map +1 -1
  73. package/dist/rtf/rtf.js +36 -0
  74. package/dist/rtf/rtf.js.map +1 -1
  75. package/dist/utils/UnsupportedWarning.d.ts +23 -0
  76. package/dist/utils/UnsupportedWarning.d.ts.map +1 -1
  77. package/dist/utils/UnsupportedWarning.js +24 -0
  78. package/dist/utils/UnsupportedWarning.js.map +1 -1
  79. package/dist/utils/UnusedChecker.d.ts +39 -0
  80. package/dist/utils/UnusedChecker.d.ts.map +1 -1
  81. package/dist/utils/UnusedChecker.js +47 -3
  82. package/dist/utils/UnusedChecker.js.map +1 -1
  83. package/dist/utils/buildPageMetadata.d.ts +45 -0
  84. package/dist/utils/buildPageMetadata.d.ts.map +1 -1
  85. package/dist/utils/buildPageMetadata.js +37 -0
  86. package/dist/utils/buildPageMetadata.js.map +1 -1
  87. package/dist/utils/cn.d.ts +26 -0
  88. package/dist/utils/cn.d.ts.map +1 -1
  89. package/dist/utils/cn.js +26 -0
  90. package/dist/utils/cn.js.map +1 -1
  91. package/dist/utils/componentUtils.d.ts +121 -0
  92. package/dist/utils/componentUtils.d.ts.map +1 -1
  93. package/dist/utils/componentUtils.js +80 -0
  94. package/dist/utils/componentUtils.js.map +1 -1
  95. package/dist/utils/convertText.js +10 -2
  96. package/dist/utils/convertText.js.map +1 -1
  97. package/dist/utils/errorHandling.d.ts +27 -0
  98. package/dist/utils/errorHandling.d.ts.map +1 -1
  99. package/dist/utils/errorHandling.js +33 -0
  100. package/dist/utils/errorHandling.js.map +1 -1
  101. package/dist/utils/previewUtils.js +2 -0
  102. package/dist/utils/previewUtils.js.map +1 -1
  103. package/package.json +17 -4
@@ -1,3 +1,4 @@
1
+ /** biome-ignore-all lint/suspicious/noConsole: Console is ok */
1
2
  interface ComponentError {
2
3
  type: 'validation' | 'parsing' | 'render' | 'data';
3
4
  message: string;
@@ -5,7 +6,14 @@ interface ComponentError {
5
6
  id?: string;
6
7
  details?: unknown;
7
8
  }
9
+ /**
10
+ * Shows a component error indicator in non-production environments
11
+ * Returns the error element to be included in the component's render
12
+ */
8
13
  export declare function showComponentError(error: ComponentError, isProduction?: boolean): import("react/jsx-runtime").JSX.Element | null;
14
+ /**
15
+ * Shows an inline error indicator (smaller, embedded version)
16
+ */
9
17
  export declare function showInlineError(error: ComponentError, isProduction?: boolean): import("react/jsx-runtime").JSX.Element | null;
10
18
  export {};
11
19
  //# sourceMappingURL=componentErrors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentErrors.d.ts","sourceRoot":"","sources":["../../src/framework/componentErrors.tsx"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,kDAU7E;AAKD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,kDAU1E"}
1
+ {"version":3,"file":"componentErrors.d.ts","sourceRoot":"","sources":["../../src/framework/componentErrors.tsx"],"names":[],"mappings":"AAAA,gEAAgE;AAIhE,UAAU,cAAc;IACtB,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,kDAU7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,kDAU1E"}
@@ -1,17 +1,27 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ /** biome-ignore-all lint/suspicious/noConsole: Console is ok */
2
3
  import { ComponentErrorIndicator } from './ComponentErrorIndicator';
4
+ /**
5
+ * Shows a component error indicator in non-production environments
6
+ * Returns the error element to be included in the component's render
7
+ */
3
8
  export function showComponentError(error, isProduction = false) {
4
9
  if (isProduction)
5
10
  return null;
11
+ // Also log to console for debugging
6
12
  console.error(`Component Error [${error.component || 'Unknown'}]:`, {
7
13
  ...error,
8
14
  timestamp: new Date().toISOString(),
9
15
  });
10
16
  return _jsx(ComponentErrorIndicator, { ...error, isProduction: isProduction });
11
17
  }
18
+ /**
19
+ * Shows an inline error indicator (smaller, embedded version)
20
+ */
12
21
  export function showInlineError(error, isProduction = false) {
13
22
  if (isProduction)
14
23
  return null;
24
+ // Also log to console for debugging
15
25
  console.warn(`Component Warning [${error.component || 'Unknown'}]:`, {
16
26
  ...error,
17
27
  timestamp: new Date().toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"componentErrors.js","sourceRoot":"","sources":["../../src/framework/componentErrors.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAepE,MAAM,UAAU,kBAAkB,CAAC,KAAqB,EAAE,YAAY,GAAG,KAAK;IAC5E,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAG9B,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,SAAS,IAAI,SAAS,IAAI,EAAE;QAClE,GAAG,KAAK;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,OAAO,KAAC,uBAAuB,OAAK,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,CAAC;AAC5E,CAAC;AAKD,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,YAAY,GAAG,KAAK;IACzE,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAG9B,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,SAAS,IAAI,SAAS,IAAI,EAAE;QACnE,GAAG,KAAK;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,OAAO,KAAC,uBAAuB,OAAK,KAAK,EAAE,MAAM,QAAC,YAAY,EAAE,YAAY,GAAI,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"componentErrors.js","sourceRoot":"","sources":["../../src/framework/componentErrors.tsx"],"names":[],"mappings":";AAAA,gEAAgE;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAUpE;;;GAGG;AAEH,MAAM,UAAU,kBAAkB,CAAC,KAAqB,EAAE,YAAY,GAAG,KAAK;IAC5E,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAE9B,oCAAoC;IACpC,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,SAAS,IAAI,SAAS,IAAI,EAAE;QAClE,GAAG,KAAK;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,OAAO,KAAC,uBAAuB,OAAK,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,YAAY,GAAG,KAAK;IACzE,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAE9B,oCAAoC;IACpC,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,SAAS,IAAI,SAAS,IAAI,EAAE;QACnE,GAAG,KAAK;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,OAAO,KAAC,uBAAuB,OAAK,KAAK,EAAE,MAAM,QAAC,YAAY,EAAE,YAAY,GAAI,CAAC;AACnF,CAAC"}
@@ -1,10 +1,19 @@
1
1
  import type { IAnalyticsContext } from '@se-studio/core-data-types';
2
+ /**
3
+ * Props for the useClickTracking hook.
4
+ */
2
5
  interface UseClickTrackingProps {
6
+ /** Type of component being tracked (e.g., 'Button', 'Link', 'Card') */
3
7
  componentType: string;
8
+ /** Optional target URL for the click */
4
9
  targetUrl?: string;
10
+ /** Text content of the link/button */
5
11
  linkText: string;
12
+ /** Location label from CMS (optional) */
6
13
  location: string | null | undefined;
14
+ /** Optional analytics context for enhanced tracking */
7
15
  analytics?: IAnalyticsContext;
16
+ /** Function to call when tracking a click */
8
17
  trackClick: (props: {
9
18
  componentType: string;
10
19
  url: string;
@@ -12,8 +21,38 @@ interface UseClickTrackingProps {
12
21
  linkText: string;
13
22
  location?: string;
14
23
  } & IAnalyticsContext) => void;
24
+ /** Function to get the current page URL */
15
25
  getCurrentPageUrl: () => string;
16
26
  }
27
+ /**
28
+ * Hook for tracking click events with analytics.
29
+ *
30
+ * Returns a click handler function that automatically tracks clicks with
31
+ * component type, link text, URLs, and analytics context.
32
+ *
33
+ * @param props - Click tracking configuration
34
+ * @returns Click handler function to attach to onClick events
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * import { useClickTracking, useAnalytics } from '@se-studio/core-ui';
39
+ *
40
+ * function MyButton() {
41
+ * const { trackClick } = useAnalytics();
42
+ * const handleClick = useClickTracking({
43
+ * componentType: 'Button',
44
+ * targetUrl: '/signup',
45
+ * linkText: 'Sign up',
46
+ * location: 'hero',
47
+ * analytics: { page_title: 'Home' },
48
+ * trackClick,
49
+ * getCurrentPageUrl: () => window.location.href,
50
+ * });
51
+ *
52
+ * return <button onClick={handleClick}>Sign up</button>;
53
+ * }
54
+ * ```
55
+ */
17
56
  export declare function useClickTracking({ componentType, targetUrl, linkText, location, analytics, trackClick, getCurrentPageUrl, }: UseClickTrackingProps): () => void;
18
57
  export {};
19
58
  //# sourceMappingURL=useClickTracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useClickTracking.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickTracking.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,UAAU,qBAAqB;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,CACV,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,iBAAiB,KAClB,IAAI,CAAC;IACV,iBAAiB,EAAE,MAAM,MAAM,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,aAAa,EACb,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,EAAE,qBAAqB,cAiBvB"}
1
+ {"version":3,"file":"useClickTracking.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickTracking.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;;GAEG;AACH,UAAU,qBAAqB;IAC7B,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,uDAAuD;IACvD,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,6CAA6C;IAC7C,UAAU,EAAE,CACV,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,iBAAiB,KAClB,IAAI,CAAC;IACV,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,aAAa,EACb,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,EAAE,qBAAqB,cAiBvB"}
@@ -1,5 +1,34 @@
1
1
  'use client';
2
2
  import { useCallback } from 'react';
3
+ /**
4
+ * Hook for tracking click events with analytics.
5
+ *
6
+ * Returns a click handler function that automatically tracks clicks with
7
+ * component type, link text, URLs, and analytics context.
8
+ *
9
+ * @param props - Click tracking configuration
10
+ * @returns Click handler function to attach to onClick events
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * import { useClickTracking, useAnalytics } from '@se-studio/core-ui';
15
+ *
16
+ * function MyButton() {
17
+ * const { trackClick } = useAnalytics();
18
+ * const handleClick = useClickTracking({
19
+ * componentType: 'Button',
20
+ * targetUrl: '/signup',
21
+ * linkText: 'Sign up',
22
+ * location: 'hero',
23
+ * analytics: { page_title: 'Home' },
24
+ * trackClick,
25
+ * getCurrentPageUrl: () => window.location.href,
26
+ * });
27
+ *
28
+ * return <button onClick={handleClick}>Sign up</button>;
29
+ * }
30
+ * ```
31
+ */
3
32
  export function useClickTracking({ componentType, targetUrl, linkText, location, analytics, trackClick, getCurrentPageUrl, }) {
4
33
  const handleClick = useCallback(() => {
5
34
  const url = getCurrentPageUrl();
@@ -1 +1 @@
1
- {"version":3,"file":"useClickTracking.js","sourceRoot":"","sources":["../../src/hooks/useClickTracking.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAoBpC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,aAAa,EACb,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,iBAAiB,GACK;IACtB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAEhC,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC;gBACT,aAAa;gBACb,GAAG,SAAS;gBACZ,GAAG;gBACH,SAAS;gBACT,QAAQ;gBACR,QAAQ,EAAE,QAAQ,IAAI,SAAS;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE7F,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"useClickTracking.js","sourceRoot":"","sources":["../../src/hooks/useClickTracking.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AA8BpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,aAAa,EACb,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,iBAAiB,GACK;IACtB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAEhC,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC;gBACT,aAAa;gBACb,GAAG,SAAS;gBACZ,GAAG;gBACH,SAAS;gBACT,QAAQ;gBACR,QAAQ,EAAE,QAAQ,IAAI,SAAS;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE7F,OAAO,WAAW,CAAC;AACrB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,38 @@
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
+ */
1
36
  export { AnalyticsProvider, useAnalyticsContext } from './analytics/AnalyticsProvider';
2
37
  export { ConsoleAnalyticsAdapter } from './analytics/adapters';
3
38
  export type { AnalyticsAdapter, ClickTrackingProperties, PageTrackingProperties, } from './analytics/types';
@@ -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
@@ -1,4 +1,42 @@
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
+ // Component and Collection Mapping Infrastructure
37
+ // Analytics
1
38
  export { AnalyticsProvider, useAnalyticsContext } from './analytics/AnalyticsProvider';
39
+ // Analytics Adapters
2
40
  export { ConsoleAnalyticsAdapter } from './analytics/adapters';
3
41
  export { useAnalytics } from './analytics/useAnalytics';
4
42
  export { ClientMonitor } from './components/ClientMonitor.js';
@@ -8,24 +46,30 @@ export { CmsContent } from './components/CmsContent';
8
46
  export { CmsConversionErrors } from './components/CmsConversionErrors';
9
47
  export { CmsEmbeddedContent } from './components/CmsEmbeddedContent';
10
48
  export { Preview } from './components/Preview.js';
49
+ // Visual Components
11
50
  export { calculateCropDetails, calculateImagePriority, calculateImageWidthStyleVariable, } from './components/Visual';
12
51
  export { Visual } from './components/VisualComponent';
13
52
  export { RtfOrString } from './elements/RtfOrString';
14
53
  export { TrackedLink } from './elements/TrackedLink';
54
+ // Elements
15
55
  export { UtmLink } from './elements/UtmLink';
16
56
  export { BackgroundMedia } from './framework/BackgroundMedia';
57
+ // Framework Components
17
58
  export { ComponentErrorIndicator } from './framework/ComponentErrorIndicator';
18
59
  export { showComponentError, showInlineError } from './framework/componentErrors';
19
60
  export { default as ResponsiveVisual } from './framework/ResponsiveVisual';
61
+ // Shared Hooks
20
62
  export { useClickTracking } from './hooks/useClickTracking';
21
63
  export { RTF } from './rtf/rtf';
22
64
  export { buildPageMetadata } from './utils/buildPageMetadata';
65
+ // Shared Utilities
23
66
  export { cn } from './utils/cn';
24
67
  export { createCollectionProps, createComponentProps, extractCollectionInfo, extractComponentInfo, extractPageContext, } from './utils/componentUtils';
25
68
  export { convertText } from './utils/convertText';
26
69
  export { handleCmsError } from './utils/errorHandling';
27
70
  export { getPreviewAssetIdProps, getPreviewFieldIdProps, getPreviewParentProps, getPreviewProps, } from './utils/previewUtils';
28
71
  export { UnsupportedWarning } from './utils/UnsupportedWarning';
72
+ // Development Utilities
29
73
  export { DEFAULT_ALLOWED_UNUSED, UnusedChecker } from './utils/UnusedChecker';
30
74
  export { isAbsoluteUrl } from './utils/urlUtils';
31
75
  export { calculateHorizontalPositionClassName } from './utils/visualPositions';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAM/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,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,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,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;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,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;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAYhC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
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,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAM/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,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,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,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,uBAAuB;AACvB,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,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,mBAAmB;AACnB,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAYhC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,wBAAwB;AACxB,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/rtf/rtf.d.ts CHANGED
@@ -2,11 +2,52 @@ import { type Document } from '@contentful/rich-text-types';
2
2
  import type { IContentContext } from '@se-studio/core-data-types';
3
3
  import type { HTMLAttributes } from 'react';
4
4
  import type { CmsRendererConfig } from '../CmsRendererConfig';
5
+ /**
6
+ * Props for the RTF (Rich Text Field) component.
7
+ */
5
8
  export type RTFProps = {
9
+ /** Contentful rich text document to render */
6
10
  content: Document;
11
+ /** Optional CMS renderer configuration for embedded content */
7
12
  rendererConfig?: CmsRendererConfig;
13
+ /** Optional content context for embedded components */
8
14
  contentContext?: IContentContext;
15
+ /** Optional CSS class for positioning embedded content */
9
16
  embeddedPositionClassName?: string;
10
17
  } & Omit<HTMLAttributes<HTMLElement>, 'content'>;
18
+ /**
19
+ * Renders Contentful rich text fields with support for embedded entries and assets.
20
+ *
21
+ * This component handles:
22
+ * - Standard rich text formatting (headings, paragraphs, lists, etc.)
23
+ * - Embedded entries (components, collections) via renderer config
24
+ * - Embedded assets (images, videos) via visual component renderer
25
+ * - Hyperlinks (internal and external)
26
+ * - Entry hyperlinks (links to CMS entries)
27
+ *
28
+ * @param content - Contentful rich text document
29
+ * @param rendererConfig - Optional CMS renderer configuration for embedded content
30
+ * @param contentContext - Optional content context for embedded components
31
+ * @param embeddedPositionClassName - Optional CSS class for positioning embedded content
32
+ * @param className - Additional CSS classes
33
+ * @param style - Additional inline styles
34
+ *
35
+ * @example Basic usage
36
+ * ```tsx
37
+ * import { RTF } from '@se-studio/core-ui';
38
+ *
39
+ * <RTF content={richTextField} />
40
+ * ```
41
+ *
42
+ * @example With embedded content
43
+ * ```tsx
44
+ * <RTF
45
+ * content={richTextField}
46
+ * rendererConfig={rendererConfig}
47
+ * contentContext={contentContext}
48
+ * embeddedPositionClassName="w-full col-span-full"
49
+ * />
50
+ * ```
51
+ */
11
52
  export declare function RTF({ content, className, style, rendererConfig, contentContext, embeddedPositionClassName, ...other }: RTFProps): import("react/jsx-runtime").JSX.Element;
12
53
  //# sourceMappingURL=rtf.d.ts.map
@@ -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,EAAW,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA6F9D,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjD,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,EAAW,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA6F9D;;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
@@ -8,6 +8,7 @@ function createComplexLinksRenderer(rendererConfig, contentContext, embeddedPosi
8
8
  if (!rendererConfig || !contentContext) {
9
9
  return {};
10
10
  }
11
+ // Track the position of embedded entries within this RTF document
11
12
  let embeddedEntryCounter = 0;
12
13
  return {
13
14
  [INLINES.EMBEDDED_ENTRY]: (node) => {
@@ -36,6 +37,7 @@ function createComplexLinksRenderer(rendererConfig, contentContext, embeddedPosi
36
37
  [BLOCKS.EMBEDDED_ENTRY]: (node) => {
37
38
  const target = node.data.target;
38
39
  if (target) {
40
+ // Capture the current index before incrementing for the next embedded entry
39
41
  const currentIndex = embeddedEntryCounter++;
40
42
  return (_jsx(CmsEmbeddedContent, { information: target, contentContext: contentContext, rendererConfig: rendererConfig, positionClassName: embeddedPositionClassName ?? 'w-full col-span-full', parentIndex: 0, embeddedIndex: currentIndex }));
41
43
  }
@@ -59,6 +61,40 @@ function buildOptions(rendererConfig, contentContext, embeddedPositionClassName)
59
61
  },
60
62
  };
61
63
  }
64
+ /**
65
+ * Renders Contentful rich text fields with support for embedded entries and assets.
66
+ *
67
+ * This component handles:
68
+ * - Standard rich text formatting (headings, paragraphs, lists, etc.)
69
+ * - Embedded entries (components, collections) via renderer config
70
+ * - Embedded assets (images, videos) via visual component renderer
71
+ * - Hyperlinks (internal and external)
72
+ * - Entry hyperlinks (links to CMS entries)
73
+ *
74
+ * @param content - Contentful rich text document
75
+ * @param rendererConfig - Optional CMS renderer configuration for embedded content
76
+ * @param contentContext - Optional content context for embedded components
77
+ * @param embeddedPositionClassName - Optional CSS class for positioning embedded content
78
+ * @param className - Additional CSS classes
79
+ * @param style - Additional inline styles
80
+ *
81
+ * @example Basic usage
82
+ * ```tsx
83
+ * import { RTF } from '@se-studio/core-ui';
84
+ *
85
+ * <RTF content={richTextField} />
86
+ * ```
87
+ *
88
+ * @example With embedded content
89
+ * ```tsx
90
+ * <RTF
91
+ * content={richTextField}
92
+ * rendererConfig={rendererConfig}
93
+ * contentContext={contentContext}
94
+ * embeddedPositionClassName="w-full col-span-full"
95
+ * />
96
+ * ```
97
+ */
62
98
  export function RTF({ content, className, style, rendererConfig, contentContext, embeddedPositionClassName, ...other }) {
63
99
  const options = buildOptions(rendererConfig, contentContext, embeddedPositionClassName);
64
100
  return (_jsx("div", { className: className, style: style, ...other, children: documentToReactComponents(content, options) }));
@@ -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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"}
@@ -1,4 +1,27 @@
1
1
  import type { CSSProperties, PropsWithChildren } from 'react';
2
+ /**
3
+ * Development utility component that displays a warning message for unsupported features or configurations.
4
+ *
5
+ * This helps identify areas where content or features are not yet supported,
6
+ * making it easier to spot missing functionality during development.
7
+ *
8
+ * Only shows warnings in development mode (NODE_ENV !== 'production').
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * const MyComponent = ({ data }) => {
13
+ * if (data.type === 'unsupported') {
14
+ * return (
15
+ * <UnsupportedWarning className="my-warning">
16
+ * This content type is not yet supported
17
+ * </UnsupportedWarning>
18
+ * );
19
+ * }
20
+ *
21
+ * return <div>{data.content}</div>;
22
+ * };
23
+ * ```
24
+ */
2
25
  export declare const UnsupportedWarning: React.FC<PropsWithChildren<{
3
26
  className?: string;
4
27
  style?: CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"UnsupportedWarning.d.ts","sourceRoot":"","sources":["../../src/utils/UnsupportedWarning.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAyB9D,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CACvC,iBAAiB,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC,CA0BH,CAAC"}
1
+ {"version":3,"file":"UnsupportedWarning.d.ts","sourceRoot":"","sources":["../../src/utils/UnsupportedWarning.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CACvC,iBAAiB,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC,CA0BH,CAAC"}
@@ -1,5 +1,29 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Development utility component that displays a warning message for unsupported features or configurations.
4
+ *
5
+ * This helps identify areas where content or features are not yet supported,
6
+ * making it easier to spot missing functionality during development.
7
+ *
8
+ * Only shows warnings in development mode (NODE_ENV !== 'production').
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * const MyComponent = ({ data }) => {
13
+ * if (data.type === 'unsupported') {
14
+ * return (
15
+ * <UnsupportedWarning className="my-warning">
16
+ * This content type is not yet supported
17
+ * </UnsupportedWarning>
18
+ * );
19
+ * }
20
+ *
21
+ * return <div>{data.content}</div>;
22
+ * };
23
+ * ```
24
+ */
2
25
  export const UnsupportedWarning = ({ children, className, style, showWarnings = true }) => {
26
+ // Only show in development mode
3
27
  if ((typeof process !== 'undefined' && process.env?.NODE_ENV === 'production') || !showWarnings) {
4
28
  return null;
5
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UnsupportedWarning.js","sourceRoot":"","sources":["../../src/utils/UnsupportedWarning.tsx"],"names":[],"mappings":";AAyBA,MAAM,CAAC,MAAM,kBAAkB,GAM3B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,EAAE,EAAE;IAE1D,IAAI,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAkB;QAClC,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,cAAc;KACxB,CAAC;IAEF,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,CAAC;IAElD,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,YAC1C,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"UnsupportedWarning.js","sourceRoot":"","sources":["../../src/utils/UnsupportedWarning.tsx"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAM3B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,EAAE,EAAE;IAC1D,gCAAgC;IAChC,IAAI,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAkB;QAClC,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,cAAc;KACxB,CAAC;IAEF,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,CAAC;IAElD,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,YAC1C,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,6 +1,42 @@
1
1
  import type { PropsWithChildren } from 'react';
2
+ /**
3
+ * Set of property names that are commonly unused and should not trigger warnings.
4
+ * Projects can extend this list by wrapping UnusedChecker or using their own implementation.
5
+ */
2
6
  declare const DEFAULT_ALLOWED_UNUSED: Set<string>;
3
7
  type FieldsType = Record<string, unknown>;
8
+ /**
9
+ * Development utility component that warns about unused component/collection properties.
10
+ *
11
+ * This helps catch cases where CMS content includes fields that aren't being rendered,
12
+ * which could indicate missing functionality or unnecessary data fetching.
13
+ *
14
+ * Only shows warnings in development mode (NODE_ENV !== 'production').
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * const USED_FIELDS = new Set(['heading', 'body', 'visual']);
19
+ *
20
+ * const MyComponent = ({ information }) => {
21
+ * const { componentType, ...allFields } = information;
22
+ *
23
+ * return (
24
+ * <UnusedChecker
25
+ * componentName="MyComponent"
26
+ * allFields={allFields}
27
+ * usedFields={USED_FIELDS}
28
+ * additionalAllowedUnused={new Set(['customField'])}
29
+ * showWarnings={true}
30
+ * >
31
+ * <div>
32
+ * <h2>{information.heading}</h2>
33
+ * <p>{information.body}</p>
34
+ * </div>
35
+ * </UnusedChecker>
36
+ * );
37
+ * };
38
+ * ```
39
+ */
4
40
  export declare const UnusedChecker: React.FC<PropsWithChildren<{
5
41
  componentName: string;
6
42
  allFields: FieldsType;
@@ -8,5 +44,8 @@ export declare const UnusedChecker: React.FC<PropsWithChildren<{
8
44
  additionalAllowedUnused?: Set<string>;
9
45
  showWarnings?: boolean;
10
46
  }>>;
47
+ /**
48
+ * Export the default allowed unused set so projects can extend it
49
+ */
11
50
  export { DEFAULT_ALLOWED_UNUSED };
12
51
  //# sourceMappingURL=UnusedChecker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UnusedChecker.d.ts","sourceRoot":"","sources":["../../src/utils/UnusedChecker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAM/C,QAAA,MAAM,sBAAsB,aAmB1B,CAAC;AAEH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAuD1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC,iBAAiB,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC,CA6CH,CAAC;AAKF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"UnusedChecker.d.ts","sourceRoot":"","sources":["../../src/utils/UnusedChecker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C;;;GAGG;AACH,QAAA,MAAM,sBAAsB,aAmB1B,CAAC;AAEH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAuB1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC,iBAAiB,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC,CA6CH,CAAC;AAEF;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Set of property names that are commonly unused and should not trigger warnings.
4
+ * Projects can extend this list by wrapping UnusedChecker or using their own implementation.
5
+ */
2
6
  const DEFAULT_ALLOWED_UNUSED = new Set([
3
7
  'componentType',
4
8
  'CollectionType',
@@ -19,18 +23,55 @@ const DEFAULT_ALLOWED_UNUSED = new Set([
19
23
  'backgroundVisual',
20
24
  'backgroundOverlayOpacity',
21
25
  ]);
26
+ /**
27
+ * Get fields that have values but are not in the allowed sets or used fields
28
+ */
22
29
  function getUnusedFields(allFields, usedFields, additionalAllowedUnused) {
30
+ // Combine default allowed unused with any additional project-specific ones
23
31
  const allowedUnused = new Set([...DEFAULT_ALLOWED_UNUSED, ...(additionalAllowedUnused || [])]);
24
32
  const fieldsWithValues = Object.entries(allFields)
25
- .filter(([name]) => !allowedUnused.has(name))
26
- .filter(([name]) => !usedFields?.has(name))
27
- .filter(([, value]) => typeof value !== 'undefined' && value !== null)
33
+ .filter(([name]) => !allowedUnused.has(name)) // Not in allowed unused sets
34
+ .filter(([name]) => !usedFields?.has(name)) // Not in used fields
35
+ .filter(([, value]) => typeof value !== 'undefined' && value !== null) // Has actual value
28
36
  .map(([name]) => name);
29
37
  if (fieldsWithValues.length > 0)
30
38
  return fieldsWithValues;
31
39
  return undefined;
32
40
  }
41
+ /**
42
+ * Development utility component that warns about unused component/collection properties.
43
+ *
44
+ * This helps catch cases where CMS content includes fields that aren't being rendered,
45
+ * which could indicate missing functionality or unnecessary data fetching.
46
+ *
47
+ * Only shows warnings in development mode (NODE_ENV !== 'production').
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * const USED_FIELDS = new Set(['heading', 'body', 'visual']);
52
+ *
53
+ * const MyComponent = ({ information }) => {
54
+ * const { componentType, ...allFields } = information;
55
+ *
56
+ * return (
57
+ * <UnusedChecker
58
+ * componentName="MyComponent"
59
+ * allFields={allFields}
60
+ * usedFields={USED_FIELDS}
61
+ * additionalAllowedUnused={new Set(['customField'])}
62
+ * showWarnings={true}
63
+ * >
64
+ * <div>
65
+ * <h2>{information.heading}</h2>
66
+ * <p>{information.body}</p>
67
+ * </div>
68
+ * </UnusedChecker>
69
+ * );
70
+ * };
71
+ * ```
72
+ */
33
73
  export const UnusedChecker = ({ children, componentName, allFields, usedFields, additionalAllowedUnused, showWarnings = true, }) => {
74
+ // Only check in development mode
34
75
  if ((typeof process !== 'undefined' && process.env?.NODE_ENV === 'production') || !showWarnings) {
35
76
  return _jsx(_Fragment, { children: children });
36
77
  }
@@ -48,5 +89,8 @@ export const UnusedChecker = ({ children, componentName, allFields, usedFields,
48
89
  }
49
90
  return _jsx(_Fragment, { children: children });
50
91
  };
92
+ /**
93
+ * Export the default allowed unused set so projects can extend it
94
+ */
51
95
  export { DEFAULT_ALLOWED_UNUSED };
52
96
  //# sourceMappingURL=UnusedChecker.js.map