@se-studio/core-ui 0.1.0 → 0.1.1

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 (181) hide show
  1. package/README.md +218 -20
  2. package/dist/CmsRendererConfig.d.ts +38 -0
  3. package/dist/CmsRendererConfig.d.ts.map +1 -0
  4. package/dist/CmsRendererConfig.js +2 -0
  5. package/dist/CmsRendererConfig.js.map +1 -0
  6. package/dist/__tests__/setup.d.ts +2 -0
  7. package/dist/__tests__/setup.d.ts.map +1 -0
  8. package/dist/__tests__/setup.js +2 -0
  9. package/dist/__tests__/setup.js.map +1 -0
  10. package/dist/components/AnimationComponent.d.ts +13 -0
  11. package/dist/components/AnimationComponent.d.ts.map +1 -0
  12. package/dist/components/AnimationComponent.js +6 -0
  13. package/dist/components/AnimationComponent.js.map +1 -0
  14. package/dist/components/ClientMonitor.d.ts +2 -3
  15. package/dist/components/ClientMonitor.d.ts.map +1 -0
  16. package/dist/components/ClientMonitor.js +104 -102
  17. package/dist/components/ClientMonitor.js.map +1 -1
  18. package/dist/components/CmsCollection.d.ts +14 -0
  19. package/dist/components/CmsCollection.d.ts.map +1 -0
  20. package/dist/components/CmsCollection.js +26 -0
  21. package/dist/components/CmsCollection.js.map +1 -0
  22. package/dist/components/CmsComponent.d.ts +14 -0
  23. package/dist/components/CmsComponent.d.ts.map +1 -0
  24. package/dist/components/CmsComponent.js +26 -0
  25. package/dist/components/CmsComponent.js.map +1 -0
  26. package/dist/components/CmsContent.d.ts +22 -0
  27. package/dist/components/CmsContent.d.ts.map +1 -0
  28. package/dist/components/CmsContent.js +117 -0
  29. package/dist/components/CmsContent.js.map +1 -0
  30. package/dist/components/CmsDataError.d.ts +14 -0
  31. package/dist/components/CmsDataError.d.ts.map +1 -0
  32. package/dist/components/CmsDataError.js +7 -0
  33. package/dist/components/CmsDataError.js.map +1 -0
  34. package/dist/components/ImageComponent.d.ts +7 -0
  35. package/dist/components/ImageComponent.d.ts.map +1 -0
  36. package/dist/components/ImageComponent.js +14 -0
  37. package/dist/components/ImageComponent.js.map +1 -0
  38. package/dist/components/ImageKitClientVideo.d.ts +10 -0
  39. package/dist/components/ImageKitClientVideo.d.ts.map +1 -0
  40. package/dist/components/ImageKitClientVideo.js +30 -0
  41. package/dist/components/ImageKitClientVideo.js.map +1 -0
  42. package/dist/components/LocalVideo.d.ts +9 -0
  43. package/dist/components/LocalVideo.d.ts.map +1 -0
  44. package/dist/components/LocalVideo.js +31 -0
  45. package/dist/components/LocalVideo.js.map +1 -0
  46. package/dist/components/PictureComponent.d.ts +7 -0
  47. package/dist/components/PictureComponent.d.ts.map +1 -0
  48. package/dist/components/PictureComponent.js +28 -0
  49. package/dist/components/PictureComponent.js.map +1 -0
  50. package/dist/components/Preview.d.ts +2 -3
  51. package/dist/components/Preview.d.ts.map +1 -0
  52. package/dist/components/Preview.js +33 -31
  53. package/dist/components/Preview.js.map +1 -1
  54. package/dist/components/SvgComponent.d.ts +7 -0
  55. package/dist/components/SvgComponent.d.ts.map +1 -0
  56. package/dist/components/SvgComponent.js +8 -0
  57. package/dist/components/SvgComponent.js.map +1 -0
  58. package/dist/components/SvgImageComponent.d.ts +7 -0
  59. package/dist/components/SvgImageComponent.d.ts.map +1 -0
  60. package/dist/components/SvgImageComponent.js +10 -0
  61. package/dist/components/SvgImageComponent.js.map +1 -0
  62. package/dist/components/Video.d.ts +6 -0
  63. package/dist/components/Video.d.ts.map +1 -0
  64. package/dist/components/Video.js +2 -0
  65. package/dist/components/Video.js.map +1 -0
  66. package/dist/components/VideoComponent.d.ts +9 -0
  67. package/dist/components/VideoComponent.d.ts.map +1 -0
  68. package/dist/components/VideoComponent.js +11 -0
  69. package/dist/components/VideoComponent.js.map +1 -0
  70. package/dist/components/Visual.d.ts +30 -0
  71. package/dist/components/Visual.d.ts.map +1 -0
  72. package/dist/components/Visual.js +57 -0
  73. package/dist/components/Visual.js.map +1 -0
  74. package/dist/components/VisualComponent.d.ts +7 -0
  75. package/dist/components/VisualComponent.d.ts.map +1 -0
  76. package/dist/components/VisualComponent.js +19 -0
  77. package/dist/components/VisualComponent.js.map +1 -0
  78. package/dist/elements/RtfOrString.d.ts +13 -0
  79. package/dist/elements/RtfOrString.d.ts.map +1 -0
  80. package/dist/elements/RtfOrString.js +13 -0
  81. package/dist/elements/RtfOrString.js.map +1 -0
  82. package/dist/elements/UtmLink.d.ts +7 -0
  83. package/dist/elements/UtmLink.d.ts.map +1 -0
  84. package/dist/elements/UtmLink.js +24 -0
  85. package/dist/elements/UtmLink.js.map +1 -0
  86. package/dist/elements/UtmLinkOrDiv.d.ts +5 -0
  87. package/dist/elements/UtmLinkOrDiv.d.ts.map +1 -0
  88. package/dist/elements/UtmLinkOrDiv.js +9 -0
  89. package/dist/elements/UtmLinkOrDiv.js.map +1 -0
  90. package/dist/embeddable/BuildEmbed.d.ts +6 -0
  91. package/dist/embeddable/BuildEmbed.d.ts.map +1 -0
  92. package/dist/embeddable/BuildEmbed.js +15 -0
  93. package/dist/embeddable/BuildEmbed.js.map +1 -0
  94. package/dist/embeddable/EmbeddableContext.d.ts +14 -0
  95. package/dist/embeddable/EmbeddableContext.d.ts.map +1 -0
  96. package/dist/embeddable/EmbeddableContext.js +2 -0
  97. package/dist/embeddable/EmbeddableContext.js.map +1 -0
  98. package/dist/embeddable/EmbeddableMaps.d.ts +7 -0
  99. package/dist/embeddable/EmbeddableMaps.d.ts.map +1 -0
  100. package/dist/embeddable/EmbeddableMaps.js +7 -0
  101. package/dist/embeddable/EmbeddableMaps.js.map +1 -0
  102. package/dist/framework/BackgroundMedia.d.ts +11 -0
  103. package/dist/framework/BackgroundMedia.d.ts.map +1 -0
  104. package/dist/framework/BackgroundMedia.js +19 -0
  105. package/dist/framework/BackgroundMedia.js.map +1 -0
  106. package/dist/framework/ColourChange.d.ts +8 -0
  107. package/dist/framework/ColourChange.d.ts.map +1 -0
  108. package/dist/framework/ColourChange.js +13 -0
  109. package/dist/framework/ColourChange.js.map +1 -0
  110. package/dist/framework/ComponentErrorIndicator.d.ts +12 -0
  111. package/dist/framework/ComponentErrorIndicator.d.ts.map +1 -0
  112. package/dist/framework/ComponentErrorIndicator.js +26 -0
  113. package/dist/framework/ComponentErrorIndicator.js.map +1 -0
  114. package/dist/framework/componentErrors.d.ts +11 -0
  115. package/dist/framework/componentErrors.d.ts.map +1 -0
  116. package/dist/framework/componentErrors.js +21 -0
  117. package/dist/framework/componentErrors.js.map +1 -0
  118. package/dist/hooks/useClickTracking.d.ts +19 -0
  119. package/dist/hooks/useClickTracking.d.ts.map +1 -0
  120. package/dist/hooks/useClickTracking.js +19 -0
  121. package/dist/hooks/useClickTracking.js.map +1 -0
  122. package/dist/hooks/useDocumentVisible.d.ts +2 -3
  123. package/dist/hooks/useDocumentVisible.d.ts.map +1 -0
  124. package/dist/hooks/useDocumentVisible.js +15 -18
  125. package/dist/hooks/useDocumentVisible.js.map +1 -1
  126. package/dist/hooks/visibility.d.ts +14 -0
  127. package/dist/hooks/visibility.d.ts.map +1 -0
  128. package/dist/hooks/visibility.js +122 -0
  129. package/dist/hooks/visibility.js.map +1 -0
  130. package/dist/index.d.ts +40 -172
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +28 -1077
  133. package/dist/index.js.map +1 -1
  134. package/dist/rtf/rtf.d.ts +11 -0
  135. package/dist/rtf/rtf.d.ts.map +1 -0
  136. package/dist/rtf/rtf.js +60 -0
  137. package/dist/rtf/rtf.js.map +1 -0
  138. package/dist/utils/UnsupportedWarning.d.ts +7 -0
  139. package/dist/utils/UnsupportedWarning.d.ts.map +1 -0
  140. package/dist/utils/UnsupportedWarning.js +20 -0
  141. package/dist/utils/UnsupportedWarning.js.map +1 -0
  142. package/dist/utils/UnusedChecker.d.ts +12 -0
  143. package/dist/utils/UnusedChecker.d.ts.map +1 -0
  144. package/dist/utils/UnusedChecker.js +53 -0
  145. package/dist/utils/UnusedChecker.js.map +1 -0
  146. package/dist/utils/buildPageMetadata.d.ts +11 -0
  147. package/dist/utils/buildPageMetadata.d.ts.map +1 -0
  148. package/dist/utils/buildPageMetadata.js +45 -0
  149. package/dist/utils/buildPageMetadata.js.map +1 -0
  150. package/dist/utils/cn.d.ts +3 -0
  151. package/dist/utils/cn.d.ts.map +1 -0
  152. package/dist/utils/cn.js +6 -0
  153. package/dist/utils/cn.js.map +1 -0
  154. package/dist/utils/componentUtils.d.ts +26 -0
  155. package/dist/utils/componentUtils.d.ts.map +1 -0
  156. package/dist/utils/componentUtils.js +46 -0
  157. package/dist/utils/componentUtils.js.map +1 -0
  158. package/dist/utils/convertText.d.ts +2 -0
  159. package/dist/utils/convertText.d.ts.map +1 -0
  160. package/dist/utils/convertText.js +33 -0
  161. package/dist/utils/convertText.js.map +1 -0
  162. package/dist/utils/errorHandling.d.ts +10 -0
  163. package/dist/utils/errorHandling.d.ts.map +1 -0
  164. package/dist/utils/errorHandling.js +27 -0
  165. package/dist/utils/errorHandling.js.map +1 -0
  166. package/dist/utils/previewUtils.d.ts +29 -0
  167. package/dist/utils/previewUtils.d.ts.map +1 -0
  168. package/dist/utils/previewUtils.js +24 -0
  169. package/dist/utils/previewUtils.js.map +1 -0
  170. package/dist/utils/visualPositions.d.ts +3 -0
  171. package/dist/utils/visualPositions.d.ts.map +1 -0
  172. package/dist/utils/visualPositions.js +14 -0
  173. package/dist/utils/visualPositions.js.map +1 -0
  174. package/dist/utils/visualSizes.d.ts +5 -0
  175. package/dist/utils/visualSizes.d.ts.map +1 -0
  176. package/dist/utils/visualSizes.js +21 -0
  177. package/dist/utils/visualSizes.js.map +1 -0
  178. package/package.json +13 -14
  179. package/dist/client.d.ts +0 -2
  180. package/dist/client.js +0 -8
  181. package/dist/client.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColourChange.js","sourceRoot":"","sources":["../../src/framework/ColourChange.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,sBAAsB,CACpC,iBAAgC,EAChC,aAA4B,EAC5B,gBAAyB;IAEzB,IAAI,gBAAgB;QAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,iBAAiB,EAAE,gBAAsC,CAAC;IACtE,MAAM,MAAM,GAAG,aAAa,EAAE,gBAAsC,CAAC;IACrE,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QAClB,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QACrC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,12 @@
1
+ interface ComponentErrorIndicatorProps {
2
+ type: 'validation' | 'parsing' | 'render' | 'data';
3
+ message: string;
4
+ component?: string;
5
+ id?: string;
6
+ details?: unknown;
7
+ inline?: boolean;
8
+ isProduction?: boolean;
9
+ }
10
+ export declare function ComponentErrorIndicator({ type, message, component, id, details, inline, isProduction, }: ComponentErrorIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
11
+ export {};
12
+ //# sourceMappingURL=ComponentErrorIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentErrorIndicator.d.ts","sourceRoot":"","sources":["../../src/framework/ComponentErrorIndicator.tsx"],"names":[],"mappings":"AAAA,UAAU,4BAA4B;IACpC,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;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,EAAE,EACF,OAAO,EACP,MAAc,EACd,YAAoB,GACrB,EAAE,4BAA4B,kDA8D9B"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function ComponentErrorIndicator({ type, message, component, id, details, inline = false, isProduction = false, }) {
3
+ if (isProduction)
4
+ return null;
5
+ const bgColor = {
6
+ validation: '#f97316e6',
7
+ parsing: '#ef4444e6',
8
+ render: '#dc2626e6',
9
+ data: '#eab308e6',
10
+ }[type];
11
+ const icon = {
12
+ validation: '⚠️',
13
+ parsing: '❌',
14
+ render: '🚨',
15
+ data: '⚡',
16
+ }[type];
17
+ if (inline) {
18
+ return (_jsxs("span", { className: "inline-flex items-center gap-1 rounded px-2 py-0.5 text-xs font-medium text-white", style: { backgroundColor: bgColor }, children: [_jsx("span", { children: icon }), _jsx("span", { children: message })] }));
19
+ }
20
+ return (_jsx("div", { className: "relative z-40 text-white", style: { backgroundColor: bgColor }, children: _jsx("div", { className: "mx-auto max-w-7xl px-4 py-2", children: _jsxs("div", { className: "flex items-start gap-2 p-sm", children: [_jsx("span", { className: "text-lg", children: icon }), _jsxs("div", { className: "flex-1", children: [_jsxs("p", { className: "font-semibold", children: ["Component Error: ", component ? `${component}` : 'Unknown Component', id && ` (${id})`] }), _jsx("p", { className: "mt-0.5", children: message }), details !== undefined && details !== null && (_jsxs("details", { className: "mt-1", children: [_jsx("summary", { className: "cursor-pointer text-xs opacity-75 hover:opacity-100", children: "Show details" }), _jsx("pre", { className: "mt-1 overflow-auto rounded bg-black/20 p-2 text-xs", children: details instanceof Error
21
+ ? details.stack || details.message
22
+ : typeof details === 'object'
23
+ ? JSON.stringify(details, null, 2)
24
+ : String(details) })] }))] })] }) }) }));
25
+ }
26
+ //# sourceMappingURL=ComponentErrorIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentErrorIndicator.js","sourceRoot":"","sources":["../../src/framework/ComponentErrorIndicator.tsx"],"names":[],"mappings":";AAUA,MAAM,UAAU,uBAAuB,CAAC,EACtC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,EAAE,EACF,OAAO,EACP,MAAM,GAAG,KAAK,EACd,YAAY,GAAG,KAAK,GACS;IAE7B,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,WAAW;KAClB,CAAC,IAAI,CAAC,CAAC;IAER,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,GAAG;KACV,CAAC,IAAI,CAAC,CAAC;IAER,IAAI,MAAM,EAAE,CAAC;QAEX,OAAO,CACL,gBACE,SAAS,EAAC,mFAAmF,EAC7F,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,aAEnC,yBAAO,IAAI,GAAQ,EACnB,yBAAO,OAAO,GAAQ,IACjB,CACR,CAAC;IACJ,CAAC;IAGD,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,EAAC,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,YAC3E,cAAK,SAAS,EAAC,6BAA6B,YAC1C,eAAK,SAAS,EAAC,6BAA6B,aAC1C,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,GAAQ,EACvC,eAAK,SAAS,EAAC,QAAQ,aACrB,aAAG,SAAS,EAAC,eAAe,kCACR,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAmB,EACjE,EAAE,IAAI,KAAK,EAAE,GAAG,IACf,EACJ,YAAG,SAAS,EAAC,QAAQ,YAAE,OAAO,GAAK,EAClC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,CAC5C,mBAAS,SAAS,EAAC,MAAM,aACvB,kBAAS,SAAS,EAAC,qDAAqD,6BAE9D,EACV,cAAK,SAAS,EAAC,oDAAoD,YAChE,OAAO,YAAY,KAAK;4CACvB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO;4CAClC,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ;gDAC3B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gDAClC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GACjB,IACE,CACX,IACG,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ interface ComponentError {
2
+ type: 'validation' | 'parsing' | 'render' | 'data';
3
+ message: string;
4
+ component?: string;
5
+ id?: string;
6
+ details?: unknown;
7
+ }
8
+ export declare function showComponentError(error: ComponentError, isProduction?: boolean): import("react/jsx-runtime").JSX.Element | null;
9
+ export declare function showInlineError(error: ComponentError, isProduction?: boolean): import("react/jsx-runtime").JSX.Element | null;
10
+ export {};
11
+ //# sourceMappingURL=componentErrors.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ComponentErrorIndicator } from './ComponentErrorIndicator';
3
+ export function showComponentError(error, isProduction = false) {
4
+ if (isProduction)
5
+ return null;
6
+ console.error(`Component Error [${error.component || 'Unknown'}]:`, {
7
+ ...error,
8
+ timestamp: new Date().toISOString(),
9
+ });
10
+ return _jsx(ComponentErrorIndicator, { ...error, isProduction: isProduction });
11
+ }
12
+ export function showInlineError(error, isProduction = false) {
13
+ if (isProduction)
14
+ return null;
15
+ console.warn(`Component Warning [${error.component || 'Unknown'}]:`, {
16
+ ...error,
17
+ timestamp: new Date().toISOString(),
18
+ });
19
+ return _jsx(ComponentErrorIndicator, { ...error, inline: true, isProduction: isProduction });
20
+ }
21
+ //# sourceMappingURL=componentErrors.js.map
@@ -0,0 +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"}
@@ -0,0 +1,19 @@
1
+ import type { IAnalyticsContext } from '@se-studio/core-data-types';
2
+ interface UseClickTrackingProps {
3
+ componentType: string;
4
+ targetUrl?: string;
5
+ linkText: string;
6
+ location: string | null | undefined;
7
+ analytics?: IAnalyticsContext;
8
+ trackClick: (props: {
9
+ componentType: string;
10
+ url: string;
11
+ targetUrl?: string;
12
+ linkText: string;
13
+ location?: string;
14
+ } & IAnalyticsContext) => void;
15
+ getCurrentPageUrl: () => string;
16
+ }
17
+ export declare function useClickTracking({ componentType, targetUrl, linkText, location, analytics, trackClick, getCurrentPageUrl, }: UseClickTrackingProps): () => void;
18
+ export {};
19
+ //# sourceMappingURL=useClickTracking.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { useCallback } from 'react';
3
+ export function useClickTracking({ componentType, targetUrl, linkText, location, analytics, trackClick, getCurrentPageUrl, }) {
4
+ const handleClick = useCallback(() => {
5
+ const url = getCurrentPageUrl();
6
+ if (analytics) {
7
+ trackClick({
8
+ componentType,
9
+ ...analytics,
10
+ url,
11
+ targetUrl,
12
+ linkText,
13
+ location: location || undefined,
14
+ });
15
+ }
16
+ }, [componentType, targetUrl, linkText, location, analytics, trackClick, getCurrentPageUrl]);
17
+ return handleClick;
18
+ }
19
+ //# sourceMappingURL=useClickTracking.js.map
@@ -0,0 +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,3 +1,2 @@
1
- declare function useDocumentVisible(initialState?: boolean): boolean;
2
-
3
- export { useDocumentVisible };
1
+ export declare function useDocumentVisible(initialState?: boolean): boolean;
2
+ //# sourceMappingURL=useDocumentVisible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDocumentVisible.d.ts","sourceRoot":"","sources":["../../src/hooks/useDocumentVisible.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,YAAY,UAAO,WAarD"}
@@ -1,20 +1,17 @@
1
- "use client";
2
- import { useEffect, useState } from "react";
3
- function useDocumentVisible(initialState = true) {
4
- const [isVisible, setIsVisible] = useState(initialState);
5
- useEffect(() => {
6
- const handler = () => {
7
- setIsVisible(document.visibilityState === "visible");
8
- };
9
- document.addEventListener("visibilitychange", handler, true);
10
- handler();
11
- return () => {
12
- document.removeEventListener("visibilitychange", handler, true);
13
- };
14
- }, []);
15
- return isVisible;
1
+ 'use client';
2
+ import { useEffect, useState } from 'react';
3
+ export function useDocumentVisible(initialState = true) {
4
+ const [isVisible, setIsVisible] = useState(initialState);
5
+ useEffect(() => {
6
+ const handler = () => {
7
+ setIsVisible(document.visibilityState === 'visible');
8
+ };
9
+ document.addEventListener('visibilitychange', handler, true);
10
+ handler();
11
+ return () => {
12
+ document.removeEventListener('visibilitychange', handler, true);
13
+ };
14
+ }, []);
15
+ return isVisible;
16
16
  }
17
- export {
18
- useDocumentVisible
19
- };
20
17
  //# sourceMappingURL=useDocumentVisible.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useDocumentVisible.ts"],"sourcesContent":["'use client';\nimport { useEffect, useState } from 'react';\n\nexport function useDocumentVisible(initialState = true) {\n const [isVisible, setIsVisible] = useState(initialState);\n useEffect(() => {\n const handler = () => {\n setIsVisible(document.visibilityState === 'visible');\n };\n document.addEventListener('visibilitychange', handler, true);\n handler();\n return () => {\n document.removeEventListener('visibilitychange', handler, true);\n };\n }, []);\n return isVisible;\n}\n"],"mappings":";AACA,SAAS,WAAW,gBAAgB;AAE7B,SAAS,mBAAmB,eAAe,MAAM;AACtD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,YAAY;AACvD,YAAU,MAAM;AACd,UAAM,UAAU,MAAM;AACpB,mBAAa,SAAS,oBAAoB,SAAS;AAAA,IACrD;AACA,aAAS,iBAAiB,oBAAoB,SAAS,IAAI;AAC3D,YAAQ;AACR,WAAO,MAAM;AACX,eAAS,oBAAoB,oBAAoB,SAAS,IAAI;AAAA,IAChE;AAAA,EACF,GAAG,CAAC,CAAC;AACL,SAAO;AACT;","names":[]}
1
+ {"version":3,"file":"useDocumentVisible.js","sourceRoot":"","sources":["../../src/hooks/useDocumentVisible.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,UAAU,kBAAkB,CAAC,YAAY,GAAG,IAAI;IACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;QACvD,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,EAAE,CAAC;QACV,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type React from 'react';
2
+ export declare function useDocumentVisible(initialState?: boolean): boolean;
3
+ export declare function onVisibleToUser(element: HTMLElement, callback: (isVisible: boolean) => void, threshold?: number, delay?: number): () => void;
4
+ export declare function useFirstVisibleToUser<T extends HTMLElement>(threshold?: number, delay?: number, callback?: () => void): [React.RefObject<T | null>, boolean];
5
+ export declare function useFirstVisibleCallback(pausedClassName: string, runningClassName: string): [() => void, string];
6
+ export declare function useVisibleToUser<T extends HTMLElement = HTMLDivElement>(threshold?: number, delay?: number, callback?: (isVisible: boolean) => void): {
7
+ elementRef: React.RefObject<T | null>;
8
+ visible: boolean;
9
+ isElementVisible: boolean;
10
+ firstVisible: boolean;
11
+ isDocumentVisible: boolean;
12
+ };
13
+ export declare function useClientOnly(): boolean;
14
+ //# sourceMappingURL=visibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../src/hooks/visibility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wBAAgB,kBAAkB,CAAC,YAAY,UAAO,WAarD;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,EACtC,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,IAAI,CAiDZ;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,WAAW,EACzD,SAAS,SAAM,EACf,KAAK,SAAM,EACX,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CA6BtC;AAED,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,CAKtB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EACrE,SAAS,SAAM,EACf,KAAK,SAAM,EACX,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;;;;;;EAoCxC;AAED,wBAAgB,aAAa,IAAI,OAAO,CAIvC"}
@@ -0,0 +1,122 @@
1
+ 'use client';
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ export function useDocumentVisible(initialState = true) {
4
+ const [isVisible, setIsVisible] = useState(initialState);
5
+ useEffect(() => {
6
+ const handler = () => {
7
+ setIsVisible(document.visibilityState === 'visible');
8
+ };
9
+ document.addEventListener('visibilitychange', handler, true);
10
+ handler();
11
+ return () => {
12
+ document.removeEventListener('visibilitychange', handler, true);
13
+ };
14
+ }, []);
15
+ return isVisible;
16
+ }
17
+ export function onVisibleToUser(element, callback, threshold, delay) {
18
+ const realThreshold = threshold ?? 0.2;
19
+ const realDelay = delay ?? 10;
20
+ let timeoutHandle;
21
+ let isVisible;
22
+ let lastNotified;
23
+ const notify = () => {
24
+ const isPageVisible = document.visibilityState === 'visible';
25
+ const isFullyVisible = isVisible && isPageVisible;
26
+ if (isFullyVisible !== lastNotified) {
27
+ lastNotified = isFullyVisible;
28
+ callback(lastNotified ?? false);
29
+ }
30
+ };
31
+ const handle = (entries) => {
32
+ entries.forEach((entry) => {
33
+ if (entry.target === element) {
34
+ const aboveThreshold = realThreshold
35
+ ? entry.intersectionRatio >= realThreshold
36
+ : entry.intersectionRatio > realThreshold;
37
+ if (aboveThreshold !== isVisible) {
38
+ isVisible = aboveThreshold;
39
+ }
40
+ timeoutHandle = window.setTimeout(() => {
41
+ timeoutHandle = undefined;
42
+ notify();
43
+ }, realDelay);
44
+ }
45
+ });
46
+ };
47
+ const eventOptions = { passive: true };
48
+ document.addEventListener('visibilitychange', notify, eventOptions);
49
+ const observer = new IntersectionObserver(handle, {
50
+ threshold: realThreshold,
51
+ });
52
+ observer.observe(element);
53
+ return () => {
54
+ if (timeoutHandle) {
55
+ window.clearTimeout(timeoutHandle);
56
+ timeoutHandle = undefined;
57
+ }
58
+ observer.disconnect();
59
+ document.removeEventListener('visibilitychange', notify, eventOptions);
60
+ };
61
+ }
62
+ export function useFirstVisibleToUser(threshold = 0.4, delay = 100, callback) {
63
+ const elementRef = useRef(null);
64
+ const [visible, setVisible] = useState(false);
65
+ const triggered = useRef(0);
66
+ useEffect(() => {
67
+ const element = elementRef.current;
68
+ if (!element)
69
+ return undefined;
70
+ const removeVisibility = onVisibleToUser(element, (isVisible) => {
71
+ if (isVisible) {
72
+ if (triggered.current === 0) {
73
+ triggered.current = 1;
74
+ setVisible(true);
75
+ callback?.();
76
+ removeVisibility();
77
+ }
78
+ }
79
+ }, threshold, delay);
80
+ return removeVisibility;
81
+ }, [threshold, delay, callback]);
82
+ return [elementRef, visible];
83
+ }
84
+ export function useFirstVisibleCallback(pausedClassName, runningClassName) {
85
+ const [animationMode, setAnimationMode] = useState(pausedClassName);
86
+ const onVisible = useCallback(() => setAnimationMode(runningClassName), [runningClassName]);
87
+ return [onVisible, animationMode];
88
+ }
89
+ export function useVisibleToUser(threshold = 0.4, delay = 100, callback) {
90
+ const elementRef = useRef(null);
91
+ const [isElementVisible, setIsElementVisible] = useState(false);
92
+ const [firstVisible, setFirstVisible] = useState(false);
93
+ const isDocumentVisible = useDocumentVisible();
94
+ useEffect(() => {
95
+ const element = elementRef.current;
96
+ if (!element) {
97
+ return undefined;
98
+ }
99
+ const removeVisibility = onVisibleToUser(element, (isVisible) => {
100
+ if (isVisible) {
101
+ setFirstVisible(true);
102
+ }
103
+ setIsElementVisible(isVisible);
104
+ callback?.(isVisible);
105
+ }, threshold, delay);
106
+ return removeVisibility;
107
+ }, [threshold, delay, callback]);
108
+ const visible = isElementVisible && isDocumentVisible;
109
+ return {
110
+ elementRef,
111
+ visible,
112
+ isElementVisible,
113
+ firstVisible,
114
+ isDocumentVisible,
115
+ };
116
+ }
117
+ export function useClientOnly() {
118
+ const [isClient, setIsClient] = useState(false);
119
+ useEffect(() => setIsClient(true), []);
120
+ return isClient;
121
+ }
122
+ //# sourceMappingURL=visibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../src/hooks/visibility.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,172 +1,40 @@
1
- import { BaseCmsConfig, IContentContext, IVisual, PageContent, IPageContext, IVisualSizes, IAnalyticsContext, IVisualCommon } from '@se-studio/core-data-types';
2
- import { React as React$2 } from 'next/dist/server/route-modules/app-page/vendored/rsc/entrypoints';
3
- import React$1, { PropsWithChildren, CSSProperties, HTMLAttributes } from 'react';
4
- import * as react_jsx_runtime from 'react/jsx-runtime';
5
- import { Document } from '@contentful/rich-text-types';
6
-
7
- type CollectionMap<TConfig extends BaseCmsConfig> = Record<TConfig['CollectionType'], React$1.FC<{
8
- information: TConfig['Collection'];
9
- contentContext: IContentContext<TConfig>;
10
- rendererConfig: CmsRendererConfig<TConfig>;
11
- }>>;
12
- declare function CmsCollection<TConfig extends BaseCmsConfig>({ information, contentContext, rendererConfig, }: {
13
- information: TConfig['Collection'];
14
- contentContext: IContentContext<TConfig>;
15
- rendererConfig: CmsRendererConfig<TConfig>;
16
- }): react_jsx_runtime.JSX.Element;
17
-
18
- type ComponentMap<TConfig extends BaseCmsConfig> = Record<TConfig['ComponentType'], React$1.FC<{
19
- information: TConfig['Component'];
20
- contentContext: IContentContext<TConfig>;
21
- rendererConfig: CmsRendererConfig<TConfig>;
22
- }>>;
23
- declare function CmsComponent<TConfig extends BaseCmsConfig>({ information, contentContext, rendererConfig, }: {
24
- information: TConfig['Component'];
25
- contentContext: IContentContext<TConfig>;
26
- rendererConfig: CmsRendererConfig<TConfig>;
27
- }): react_jsx_runtime.JSX.Element;
28
-
29
- type ExternalComponentRenderer<TConfig extends BaseCmsConfig> = React$1.FC<{
30
- information: TConfig['ExternalComponent'];
31
- contentContext: IContentContext<TConfig>;
32
- }>;
33
- type ExternalComponentMap<TConfig extends BaseCmsConfig> = Partial<Record<TConfig['ExternalComponentType'], ExternalComponentRenderer<TConfig>>>;
34
- type VisualComponentRenderer<TConfig extends BaseCmsConfig> = React$1.FC<{
35
- information: IVisual;
36
- contentContext: IContentContext<TConfig>;
37
- }>;
38
- type InternalLinkRenderer<TConfig extends BaseCmsConfig> = React$1.FC<{
39
- information: Extract<PageContent<TConfig>, {
40
- type: 'Internal link';
41
- }>;
42
- contentContext: IContentContext<TConfig>;
43
- }>;
44
- declare function CmsContent<TConfig extends BaseCmsConfig>({ pageContext, contents, rendererConfig, }: {
45
- pageContext: IPageContext<TConfig>;
46
- contents?: ReadonlyArray<PageContent<TConfig>>;
47
- rendererConfig: CmsRendererConfig<TConfig>;
48
- }): react_jsx_runtime.JSX.Element | null;
49
-
50
- interface CmsRendererConfig<TConfig extends BaseCmsConfig> {
51
- componentMap: ComponentMap<TConfig>;
52
- collectionMap: CollectionMap<TConfig>;
53
- externalComponentMap: ExternalComponentMap<TConfig>;
54
- visualComponentRenderer: VisualComponentRenderer<TConfig>;
55
- internalLinkRenderer: InternalLinkRenderer<TConfig>;
56
- showUnknownTypeErrors: boolean;
57
- showRenderErrors: boolean;
58
- defaultComponentRenderer: React$2.FC<{
59
- information: TConfig['Component'];
60
- contentContext: IContentContext<TConfig>;
61
- rendererConfig: CmsRendererConfig<TConfig>;
62
- }>;
63
- defaultCollectionRenderer: React$2.FC<{
64
- information: TConfig['Collection'];
65
- contentContext: IContentContext<TConfig>;
66
- rendererConfig: CmsRendererConfig<TConfig>;
67
- }>;
68
- basicLinkRenderer: React$2.FC<PropsWithChildren<{
69
- href?: string;
70
- }>>;
71
- embeddedContentRenderer: React$2.FC<{
72
- information: TConfig['PageContent'];
73
- contentContext: IContentContext<TConfig>;
74
- rendererConfig: CmsRendererConfig<TConfig>;
75
- }>;
76
- }
77
- declare function createCmsRendererConfig<TConfig extends BaseCmsConfig>(config: CmsRendererConfig<TConfig>): CmsRendererConfig<TConfig>;
78
- type PartialCmsRendererConfig<TConfig extends BaseCmsConfig> = {
79
- [K in keyof CmsRendererConfig<TConfig>]?: CmsRendererConfig<TConfig>[K];
80
- };
81
- declare function mergeCmsRendererConfig<TConfig extends BaseCmsConfig>(base: CmsRendererConfig<TConfig>, overrides: PartialCmsRendererConfig<TConfig>): CmsRendererConfig<TConfig>;
82
-
83
- type IVisualProps = {
84
- className?: string;
85
- style?: Omit<CSSProperties, 'objectFit' | 'objectPosition'>;
86
- autoPlay?: boolean;
87
- loop?: boolean;
88
- loopDelay?: number;
89
- muted?: boolean;
90
- controls?: boolean;
91
- loading?: 'eager' | 'lazy' | undefined;
92
- priority?: boolean;
93
- fetchPriority?: 'high' | 'low' | undefined;
94
- visualSizes?: IVisualSizes;
95
- fullPlayer?: boolean;
96
- analyticsContext?: IAnalyticsContext;
97
- componentLabel?: string | null;
98
- };
99
- declare function calculateCropDetails(details: Omit<IVisualCommon, 'id' | 'type' | 'name' | 'nameAsCaption'>): Pick<CSSProperties, 'objectFit' | 'objectPosition'>;
100
- declare function calculateImagePriority(index: number): {
101
- priority: boolean;
102
- fetchPriority: 'high' | 'low' | undefined;
103
- } | undefined;
104
- declare function calculateImageWidthStyleVariable(visual?: IVisual, baseWidth?: number | null): CSSProperties | undefined;
105
-
106
- declare const Visual: React$1.FC<{
107
- visual: IVisual;
108
- } & IVisualProps>;
109
-
110
- type ArrayToUnion<T extends ReadonlyArray<unknown>> = T[number];
111
- interface ComponentConfig<TConfig extends BaseCmsConfig = BaseCmsConfig, TAdditional = Record<string, unknown>> {
112
- componentProps: ReadonlyArray<keyof TConfig['Component']>;
113
- contextProps: ReadonlyArray<keyof IPageContext<TConfig>>;
114
- additionalProps?: TAdditional;
115
- }
116
- interface CollectionConfig<TConfig extends BaseCmsConfig = BaseCmsConfig, TAdditional = Record<string, unknown>> {
117
- collectionProps: ReadonlyArray<keyof TConfig['Collection']>;
118
- contextProps: ReadonlyArray<keyof IPageContext<TConfig>>;
119
- additionalProps?: TAdditional;
120
- }
121
- type ComponentPropsFromConfig<TConfig extends BaseCmsConfig, T extends ComponentConfig<TConfig>> = T['componentProps'] extends ReadonlyArray<keyof TConfig['Component']> ? Pick<TConfig['Component'], ArrayToUnion<T['componentProps']>> : never;
122
- type CollectionPropsFromConfig<TConfig extends BaseCmsConfig, T extends CollectionConfig<TConfig>> = T['collectionProps'] extends ReadonlyArray<keyof TConfig['Collection']> ? Pick<TConfig['Collection'], ArrayToUnion<T['collectionProps']>> : never;
123
- type ContextPropsFromConfig<TConfig extends BaseCmsConfig, T extends ComponentConfig<TConfig> | CollectionConfig<TConfig>> = Pick<IPageContext<TConfig>, ArrayToUnion<T['contextProps']>>;
124
- type GeneratePropsFromComponentConfig<TConfig extends BaseCmsConfig, T extends ComponentConfig<TConfig>> = ComponentPropsFromConfig<TConfig, T> & ContextPropsFromConfig<TConfig, T> & (T['additionalProps'] extends Record<string, unknown> ? T['additionalProps'] : Record<string, never>);
125
- type GeneratePropsFromCollectionConfig<TConfig extends BaseCmsConfig, T extends CollectionConfig<TConfig>> = CollectionPropsFromConfig<TConfig, T> & ContextPropsFromConfig<TConfig, T> & (T['additionalProps'] extends Record<string, unknown> ? T['additionalProps'] : Record<string, never>);
126
- declare function extractPropsFromComponentConfig<TConfig extends BaseCmsConfig, T extends ComponentConfig<TConfig>>(config: T, component: TConfig['Component'], context?: IPageContext<TConfig>): GeneratePropsFromComponentConfig<TConfig, T>;
127
- declare function extractPropsFromCollectionConfig<TConfig extends BaseCmsConfig, T extends CollectionConfig<TConfig>>(config: T, collection: TConfig['Collection'], context?: IPageContext<TConfig>): GeneratePropsFromCollectionConfig<TConfig, T>;
128
-
129
- interface IEmbeddableComponentContext<TConfig extends BaseCmsConfig = BaseCmsConfig, T extends TConfig['Component'] = TConfig['Component']> {
130
- information: T;
131
- parentIndex: number;
132
- parentId: string;
133
- pageContext: IPageContext<TConfig>;
134
- }
135
- interface IEmbeddableCollectionContext<TConfig extends BaseCmsConfig = BaseCmsConfig, T extends TConfig['Collection'] = TConfig['Collection']> {
136
- information: T;
137
- parentIndex: number;
138
- parentId: string;
139
- pageContext: IPageContext<TConfig>;
140
- }
141
-
142
- declare function BuildEmbedFromComponentConfig<TConfig extends BaseCmsConfig, TProps extends Record<string, unknown>, TComponentConfig extends ComponentConfig<TConfig>>(Component: React$1.FC<TProps>, componentConfig: TComponentConfig): React$1.FC<IEmbeddableComponentContext<TConfig>>;
143
- declare function BuildEmbedFromCollectionConfig<TConfig extends BaseCmsConfig, TProps extends Record<string, unknown>, TCollectionConfig extends CollectionConfig<TConfig>>(Collection: React$1.FC<TProps>, collectionConfig: TCollectionConfig): React$1.FC<IEmbeddableCollectionContext<TConfig>>;
144
-
145
- type EmbeddableComponentMap<TConfig extends BaseCmsConfig> = Partial<Record<TConfig['ComponentType'], React$1.FC<IEmbeddableComponentContext<TConfig>>>>;
146
- type EmbeddableCollectionMap<TConfig extends BaseCmsConfig> = Partial<Record<TConfig['CollectionType'], React$1.FC<IEmbeddableCollectionContext<TConfig>>>>;
147
- declare function isComponentEmbeddable<TConfig extends BaseCmsConfig>(componentType: TConfig['ComponentType'], embeddableMap: EmbeddableComponentMap<TConfig>): boolean;
148
- declare function isCollectionEmbeddable<TConfig extends BaseCmsConfig>(collectionType: TConfig['CollectionType'], embeddableMap: EmbeddableCollectionMap<TConfig>): boolean;
149
-
150
- type RTFProps<TConfig extends BaseCmsConfig> = {
151
- content: Document;
152
- rendererConfig: CmsRendererConfig<TConfig>;
153
- contentContext: IContentContext<TConfig>;
154
- } & Omit<HTMLAttributes<HTMLElement>, 'content'>;
155
- declare function RTF<TConfig extends BaseCmsConfig>({ content, className, style, rendererConfig, contentContext, ...other }: RTFProps<TConfig>): react_jsx_runtime.JSX.Element;
156
-
157
- declare const DEFAULT_ALLOWED_UNUSED: Set<string>;
158
- type UnusedType = Record<string, unknown>;
159
- declare const UnusedChecker: React.FC<PropsWithChildren<{
160
- componentName: string;
161
- unused: UnusedType;
162
- allowedToBeUnused?: Set<string>;
163
- showWarnings?: boolean;
164
- }>>;
165
-
166
- declare const UnsupportedWarning: React.FC<PropsWithChildren<{
167
- className?: string;
168
- style?: CSSProperties;
169
- showWarnings?: boolean;
170
- }>>;
171
-
172
- export { type ArrayToUnion, BuildEmbedFromCollectionConfig, BuildEmbedFromComponentConfig, CmsCollection, CmsComponent, CmsContent, type CmsRendererConfig, type CollectionConfig, type CollectionMap, type CollectionPropsFromConfig, type ComponentConfig, type ComponentMap, type ComponentPropsFromConfig, type ContextPropsFromConfig, DEFAULT_ALLOWED_UNUSED, type EmbeddableCollectionMap, type EmbeddableComponentMap, type ExternalComponentMap, type ExternalComponentRenderer, type GeneratePropsFromCollectionConfig, type GeneratePropsFromComponentConfig, type IEmbeddableCollectionContext, type IEmbeddableComponentContext, type IVisualProps, type InternalLinkRenderer, type PartialCmsRendererConfig, RTF, UnsupportedWarning, UnusedChecker, Visual, type VisualComponentRenderer, calculateCropDetails, calculateImagePriority, calculateImageWidthStyleVariable, createCmsRendererConfig, extractPropsFromCollectionConfig, extractPropsFromComponentConfig, isCollectionEmbeddable, isComponentEmbeddable, mergeCmsRendererConfig };
1
+ export type { CmsRendererConfig } from './CmsRendererConfig';
2
+ export { ClientMonitor } from './components/ClientMonitor.js';
3
+ export type { CollectionMap } from './components/CmsCollection';
4
+ export { CmsCollection } from './components/CmsCollection';
5
+ export type { ComponentMap } from './components/CmsComponent';
6
+ export { CmsComponent } from './components/CmsComponent';
7
+ export type { ExternalComponentMap, ExternalComponentRenderer, InternalLinkRenderer, VisualComponentRenderer, } from './components/CmsContent';
8
+ export { CmsContent } from './components/CmsContent';
9
+ export { Preview } from './components/Preview.js';
10
+ export type { IVisualProps } from './components/Visual';
11
+ export { calculateCropDetails, calculateImagePriority, calculateImageWidthStyleVariable, } from './components/Visual';
12
+ export { Visual } from './components/VisualComponent';
13
+ export { RtfOrString } from './elements/RtfOrString';
14
+ export { UtmLink } from './elements/UtmLink';
15
+ export { UtmLinkOrDiv } from './elements/UtmLinkOrDiv';
16
+ export { BuildEmbedFromCollectionConfig, BuildEmbedFromComponentConfig, } from './embeddable/BuildEmbed';
17
+ export type { IEmbeddableCollectionContext, IEmbeddableComponentContext, } from './embeddable/EmbeddableContext';
18
+ export type { EmbeddableCollectionMap, EmbeddableComponentMap, } from './embeddable/EmbeddableMaps';
19
+ export { isCollectionEmbeddable, isComponentEmbeddable, } from './embeddable/EmbeddableMaps';
20
+ export { BackgroundMedia } from './framework/BackgroundMedia';
21
+ export type { ColourChange } from './framework/ColourChange';
22
+ export { calculateColourChanges } from './framework/ColourChange';
23
+ export { ComponentErrorIndicator } from './framework/ComponentErrorIndicator';
24
+ export { showComponentError, showInlineError } from './framework/componentErrors';
25
+ export { useClickTracking } from './hooks/useClickTracking';
26
+ export { RTF } from './rtf/rtf';
27
+ export type { IBuildInformation } from './utils/buildPageMetadata';
28
+ export { buildPageMetadata } from './utils/buildPageMetadata';
29
+ export { cn } from './utils/cn';
30
+ export type { ArrayToUnion, CollectionConfig, CollectionPropsFromConfig, CollectionRenderer, ComponentConfig, ComponentPropsFromConfig, ComponentRenderer, ContextPropsFromConfig, GeneratePropsFromCollectionConfig, GeneratePropsFromComponentConfig, } from './utils/componentUtils';
31
+ export { createCollectionProps, createComponentProps, extractCollectionInfo, extractComponentInfo, extractPageContext, } from './utils/componentUtils';
32
+ export { convertText } from './utils/convertText';
33
+ export { handleCmsError } from './utils/errorHandling';
34
+ export type { IContent } from './utils/previewUtils';
35
+ export { getPreviewAssetIdProps, getPreviewFieldIdProps, getPreviewParentProps, getPreviewProps, } from './utils/previewUtils';
36
+ export { UnsupportedWarning } from './utils/UnsupportedWarning';
37
+ export { DEFAULT_ALLOWED_UNUSED, UnusedChecker } from './utils/UnusedChecker';
38
+ export { calculateHorizontalPositionClassName } from './utils/visualPositions';
39
+ export { calculateVisualSizes } from './utils/visualSizes';
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EACV,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,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,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAChC,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;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,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,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}