@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
@@ -2,6 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { CmsCollection } from './CmsCollection';
3
3
  import { CmsComponent } from './CmsComponent';
4
4
  import { CmsExternalComponent } from './CmsExternalComponent';
5
+ /**
6
+ * Creates a content context for a specific component with lazy evaluation
7
+ */
5
8
  function createContentContext(pageContext, components, currentIndex) {
6
9
  const current = components[currentIndex];
7
10
  if (!current) {
@@ -11,6 +14,9 @@ function createContentContext(pageContext, components, currentIndex) {
11
14
  const nextContent = currentIndex === components.length - 1 ? undefined : components[currentIndex + 1];
12
15
  return { pageContext, previousContent, current, nextContent };
13
16
  }
17
+ /**
18
+ * Error display component for rendering errors in development mode
19
+ */
14
20
  export const ContentError = ({ error, content, showInProduction = false, }) => {
15
21
  if (!showInProduction && typeof process !== 'undefined' && process.env?.NODE_ENV === 'production')
16
22
  return null;
@@ -29,6 +35,9 @@ export const ContentError = ({ error, content, showInProduction = false, }) => {
29
35
  fontSize: '0.75rem',
30
36
  }, children: error.message })] })] })] }));
31
37
  };
38
+ /**
39
+ * Single content item renderer that routes to the appropriate renderer based on type
40
+ */
32
41
  const SingleContent = ({ context, rendererConfig, }) => {
33
42
  try {
34
43
  const { current } = context;
@@ -68,12 +77,14 @@ const SingleContent = ({ context, rendererConfig, }) => {
68
77
  }
69
78
  break;
70
79
  default: {
80
+ // Check if there's a custom content renderer for this type
71
81
  const unknownContent = current;
72
82
  const CustomRenderer = rendererConfig.customContentMap?.[unknownContent.type];
73
83
  if (CustomRenderer) {
74
84
  result = _jsx(CustomRenderer, { information: current, contentContext: context });
75
85
  break;
76
86
  }
87
+ // No custom renderer found - treat as unknown content
77
88
  const error = new Error(`Unknown content type: ${unknownContent.type} (ID: ${unknownContent.id})`);
78
89
  console.error(error);
79
90
  if (rendererConfig.showRenderErrors ||
@@ -97,6 +108,48 @@ const SingleContent = ({ context, rendererConfig, }) => {
97
108
  return null;
98
109
  }
99
110
  };
111
+ /**
112
+ * Main content renderer that renders an array of page content items.
113
+ *
114
+ * @example Basic usage
115
+ * ```tsx
116
+ * import { createCmsRendererConfig } from "@se-studio/core-ui";
117
+ *
118
+ * const rendererConfig = createCmsRendererConfig<MyProjectConfig>({
119
+ * componentMap: {
120
+ * "Hero": HeroComponent,
121
+ * "CTA": CTAComponent,
122
+ * },
123
+ * collectionMap: {
124
+ * "FAQs": FAQCollection,
125
+ * },
126
+ * showUnknownTypeErrors: process.env.NODE_ENV === 'development',
127
+ * });
128
+ *
129
+ * <CmsContent
130
+ * rendererConfig={rendererConfig}
131
+ * pageContext={pageContext}
132
+ * contents={page.contents}
133
+ * />
134
+ * ```
135
+ *
136
+ * @example With all renderer types
137
+ * ```tsx
138
+ * const rendererConfig = createCmsRendererConfig<MyProjectConfig>({
139
+ * componentMap: { ... },
140
+ * collectionMap: { ... },
141
+ * externalComponentMap: { ... },
142
+ * visualComponentRenderer: VisualRenderer,
143
+ * internalLinkRenderer: InternalLinkRenderer,
144
+ * });
145
+ *
146
+ * <CmsContent
147
+ * rendererConfig={rendererConfig}
148
+ * pageContext={pageContext}
149
+ * contents={page.contents}
150
+ * />
151
+ * ```
152
+ */
100
153
  export function CmsContent({ pageContext, contents, rendererConfig, }) {
101
154
  if (!contents || contents.length === 0) {
102
155
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"CmsContent.js","sourceRoot":"","sources":["../../src/components/CmsContent.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK9D,SAAS,oBAAoB,CAC3B,WAAyB,EACzB,UAAiC,EACjC,YAAoB;IAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACtF,MAAM,WAAW,GACf,YAAY,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAEpF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAChE,CAAC;AAsCD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,gBAAgB,GAAG,KAAK,GAKzB,EAAE,EAAE;IACH,IAAI,CAAC,gBAAgB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,YAAY;QAC/F,OAAO,IAAI,CAAC;IAEd,OAAO,CACL,eACE,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,eAAe;YACvB,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,MAAM;SAChB,aAED,aAAI,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,qCAEpE,EACL,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAClC,wBACE,6CAA8B,OAAE,OAAO,CAAC,IAAI,IAC1C,EACJ,wBACE,2CAA4B,OAAE,OAAO,CAAC,EAAE,IACtC,EACJ,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAClC,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,uBAAY,EACzD,cACE,KAAK,EAAE;oCACL,SAAS,EAAE,MAAM;oCACjB,YAAY,EAAE,KAAK;oCACnB,MAAM,EAAE,gBAAgB;oCACxB,UAAU,EAAE,OAAO;oCACnB,OAAO,EAAE,QAAQ;oCACjB,QAAQ,EAAE,SAAS;iCACpB,YAEA,KAAK,CAAC,OAAO,GACV,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,aAAa,GAAG,CAAC,EACrB,OAAO,EACP,cAAc,GAIf,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE5B,IAAI,MAAuB,CAAC;QAC5B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,WAAW;gBACd,MAAM,GAAG,CACP,KAAC,YAAY,IACX,WAAW,EAAE,OAAyB,EACtC,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;gBACF,MAAM;YAER,KAAK,YAAY;gBACf,MAAM,GAAG,CACP,KAAC,aAAa,IACZ,WAAW,EAAE,OAA0B,EACvC,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;gBACF,MAAM;YAER,KAAK,oBAAoB;gBACvB,MAAM,GAAG,CACP,KAAC,oBAAoB,IACnB,WAAW,EAAE,OAAiC,EAC9C,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;gBACF,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,cAAc,CAAC,uBAAuB,EAAE,CAAC;oBAC3C,MAAM,GAAG,cAAc,CAAC,uBAAuB,CAAC;wBAC9C,WAAW,EAAE,OAAkB;wBAC/B,cAAc,EAAE,OAAO;qBACxB,CAAoB,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;oBAC5C,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAC9C,4DAA0C,CAC3C,CAAC,CAAC,CAAC,IAAI,CAAC;gBACX,CAAC;gBACD,MAAM;YAER,KAAK,eAAe;gBAClB,IAAI,cAAc,CAAC,oBAAoB,EAAE,CAAC;oBACxC,MAAM,GAAG,cAAc,CAAC,oBAAoB,CAAC;wBAC3C,WAAW,EAAE,OAAO;wBACpB,cAAc,EAAE,OAAO;qBACxB,CAAoB,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;oBACnD,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAC9C,mEAAiD,CAClD,CAAC,CAAC,CAAC,IAAI,CAAC;gBACX,CAAC;gBACD,MAAM;YAER,OAAO,CAAC,CAAC,CAAC;gBAER,MAAM,cAAc,GAAG,OAAuC,CAAC;gBAC/D,MAAM,cAAc,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAE9E,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,GAAG,KAAC,cAAc,IAAC,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAI,CAAC;oBAC3E,MAAM;gBACR,CAAC;gBAGD,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,yBAAyB,cAAc,CAAC,IAAI,SAAS,cAAc,CAAC,EAAE,GAAG,CAC1E,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAErB,IACE,cAAc,CAAC,gBAAgB;oBAC/B,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,aAAa,CAAC,EAC3E,CAAC;oBACD,MAAM,GAAG,CACP,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,GACjD,CACH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAEjD,IACE,cAAc,CAAC,gBAAgB;YAC/B,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,aAAa,CAAC,EAC3E,CAAC;YACD,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,KAAc,EACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,GACjD,CACH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AA4CF,MAAM,UAAU,UAAU,CAAC,EACzB,WAAW,EACX,QAAQ,EACR,cAAc,GAKf;IACC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,4BACG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnE,OAAO,CACL,KAAC,aAAa,IAEZ,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,IAFzB,GAAG,OAAO,CAAC,EAAE,IAAI,KAAK,EAAE,CAG7B,CACH,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CmsContent.js","sourceRoot":"","sources":["../../src/components/CmsContent.tsx"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
4
  export function CmsConversionErrors({ errors, isProduction }) {
5
5
  const [expanded, setExpanded] = useState(false);
6
+ // Don't render in production
6
7
  if (isProduction || errors.length === 0) {
7
8
  return null;
8
9
  }
10
+ // Show first 5 errors by default, or all if expanded
9
11
  const visibleErrors = expanded ? errors : errors.slice(0, 5);
10
12
  const hasMoreErrors = errors.length > 5;
11
13
  return (_jsx("div", { style: {
@@ -1 +1 @@
1
- {"version":3,"file":"CmsConversionErrors.js","sourceRoot":"","sources":["../../src/components/CmsConversionErrors.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CmsConversionErrors.js","sourceRoot":"","sources":["../../src/components/CmsConversionErrors.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOjC,MAAM,UAAU,mBAAmB,CAAC,EAAE,MAAM,EAAE,YAAY,EAA4B;IACpF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,6BAA6B;IAC7B,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAExC,OAAO,CACL,cACE,KAAK,EAAE;YACL,eAAe,EAAE,SAAS;YAC1B,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,QAAQ;SACvB,YAED,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,aACvD,cAAK,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,YAC3B,eACE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAChE,IAAI,EAAC,cAAc,EACnB,OAAO,EAAC,WAAW,aAEnB,2CAA2B,EAC3B,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,mNAAmN,EACrN,QAAQ,EAAC,SAAS,GAClB,IACE,GACF,EACN,eAAK,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,aAC5C,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,aACpF,cAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,gDACpC,MAAM,CAAC,MAAM,SAC1C,EACJ,aAAa,IAAI,CAChB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EACrC,KAAK,EAAE;wCACL,QAAQ,EAAE,UAAU;wCACpB,KAAK,EAAE,SAAS;wCAChB,cAAc,EAAE,WAAW;wCAC3B,UAAU,EAAE,MAAM;wCAClB,MAAM,EAAE,MAAM;wCACd,MAAM,EAAE,SAAS;qCAClB,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;wCAClB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;oCAC1C,CAAC,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;wCAClB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;oCAC1C,CAAC,YAEA,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC,OAAO,GACnD,CACV,IACG,EACN,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aACjC,YAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,uHAGzE,EACJ,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,YACpE,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,cAEE,KAAK,EAAE;4CACL,YAAY,EAAE,SAAS;4CACvB,eAAe,EAAE,SAAS;4CAC1B,OAAO,EAAE,SAAS;yCACnB,YAED,cACE,KAAK,EAAE;gDACL,OAAO,EAAE,MAAM;gDACf,UAAU,EAAE,YAAY;gDACxB,cAAc,EAAE,eAAe;6CAChC,YAED,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,aACrB,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,aAClE,eACE,KAAK,EAAE;oEACL,QAAQ,EAAE,SAAS;oEACnB,eAAe,EAAE,SAAS;oEAC1B,OAAO,EAAE,gBAAgB;oEACzB,YAAY,EAAE,SAAS;oEACvB,KAAK,EAAE,SAAS;iEACjB,YAEA,KAAK,CAAC,OAAO,GACT,EACN,KAAK,CAAC,SAAS,IAAI,CAClB,eACE,KAAK,EAAE;oEACL,QAAQ,EAAE,SAAS;oEACnB,KAAK,EAAE,SAAS;oEAChB,eAAe,EAAE,SAAS;oEAC1B,OAAO,EAAE,gBAAgB;oEACzB,YAAY,EAAE,SAAS;iEACxB,YAEA,KAAK,CAAC,SAAS,GACX,CACR,IACG,EACN,YAAG,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,YACvE,KAAK,CAAC,OAAO,GACZ,IACA,GACF,IA7CD,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,CA8C5B,CACP,CAAC,GACE,IACF,IACF,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -2,5 +2,8 @@ import { type EmbeddedCollectionRenderer } from './CmsCollection';
2
2
  import { type EmbeddedComponentRenderer } from './CmsComponent';
3
3
  import { type EmbeddedExternalComponentRenderer } from './CmsExternalComponent';
4
4
  export type EmbeddedContentRenderer = EmbeddedComponentRenderer | EmbeddedCollectionRenderer | EmbeddedExternalComponentRenderer;
5
+ /**
6
+ * Single content item renderer that routes to the appropriate renderer based on type
7
+ */
5
8
  export declare const CmsEmbeddedContent: EmbeddedContentRenderer;
6
9
  //# 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;AAKtC,eAAO,MAAM,kBAAkB,EAAE,uBAkDhC,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,MAAM,MAAM,uBAAuB,GAC/B,yBAAyB,GACzB,0BAA0B,GAC1B,iCAAiC,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,uBAkDhC,CAAC"}
@@ -3,6 +3,9 @@ import { CmsEmbeddedCollection } from './CmsCollection';
3
3
  import { CmsEmbeddedComponent } from './CmsComponent';
4
4
  import { ContentError } from './CmsContent';
5
5
  import { CmsEmbeddedExternalComponent, } from './CmsExternalComponent';
6
+ /**
7
+ * Single content item renderer that routes to the appropriate renderer based on type
8
+ */
6
9
  export const CmsEmbeddedContent = ({ information, ...props }) => {
7
10
  try {
8
11
  let result;
@@ -1 +1 @@
1
- {"version":3,"file":"CmsEmbeddedContent.js","sourceRoot":"","sources":["../../src/components/CmsEmbeddedContent.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAmC,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAkC,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,4BAA4B,GAE7B,MAAM,wBAAwB,CAAC;AAUhC,MAAM,CAAC,MAAM,kBAAkB,GAA4B,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACvF,IAAI,CAAC;QACH,IAAI,MAAuB,CAAC;QAC5B,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,WAAW;gBACd,MAAM,GAAG,KAAC,oBAAoB,IAAC,WAAW,EAAE,WAA6B,KAAM,KAAK,GAAI,CAAC;gBACzF,MAAM;YAER,KAAK,YAAY;gBACf,MAAM,GAAG,KAAC,qBAAqB,IAAC,WAAW,EAAE,WAA8B,KAAM,KAAK,GAAI,CAAC;gBAC3F,MAAM;YAER,KAAK,oBAAoB;gBACvB,MAAM,GAAG,CACP,KAAC,4BAA4B,IAC3B,WAAW,EAAE,WAAqC,KAC9C,KAAK,GACT,CACH,CAAC;gBACF,MAAM;YAER;gBACE,MAAM,GAAG,CACP,KAAC,YAAY,IACX,KAAK,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC,EACxC,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,qBAAqB,GAC5D,CACH,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAEjD,IACE,KAAK,CAAC,cAAc,CAAC,gBAAgB;YACrC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,aAAa,CAAC,EAC3E,CAAC;YACD,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,KAAc,EACrB,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,GACvD,CACH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"CmsEmbeddedContent.js","sourceRoot":"","sources":["../../src/components/CmsEmbeddedContent.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAmC,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAkC,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,4BAA4B,GAE7B,MAAM,wBAAwB,CAAC;AAOhC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA4B,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACvF,IAAI,CAAC;QACH,IAAI,MAAuB,CAAC;QAC5B,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,WAAW;gBACd,MAAM,GAAG,KAAC,oBAAoB,IAAC,WAAW,EAAE,WAA6B,KAAM,KAAK,GAAI,CAAC;gBACzF,MAAM;YAER,KAAK,YAAY;gBACf,MAAM,GAAG,KAAC,qBAAqB,IAAC,WAAW,EAAE,WAA8B,KAAM,KAAK,GAAI,CAAC;gBAC3F,MAAM;YAER,KAAK,oBAAoB;gBACvB,MAAM,GAAG,CACP,KAAC,4BAA4B,IAC3B,WAAW,EAAE,WAAqC,KAC9C,KAAK,GACT,CACH,CAAC;gBACF,MAAM;YAER;gBACE,MAAM,GAAG,CACP,KAAC,YAAY,IACX,KAAK,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC,EACxC,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,qBAAqB,GAC5D,CACH,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAEjD,IACE,KAAK,CAAC,cAAc,CAAC,gBAAgB;YACrC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,aAAa,CAAC,EAC3E,CAAC;YACD,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,KAAc,EACrB,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,GACvD,CACH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ /** biome-ignore-all lint/suspicious/noExplicitAny: Any is allowed */
1
2
  import type { IBaseExternalComponent, IContentContext, ITyped } from '@se-studio/core-data-types';
2
3
  import type { CmsRendererConfig } from '../CmsRendererConfig';
3
4
  import type { EmbeddedRendererProps } from './CmsContent';
@@ -6,8 +7,51 @@ export type ExternalComponentRendererProps<TInformation extends ITyped> = {
6
7
  contentContext: IContentContext;
7
8
  rendererConfig: CmsRendererConfig;
8
9
  };
10
+ /**
11
+ * Standard external component renderer type for rendering external components in the main content flow.
12
+ * Used for external components (like third-party widgets or services) that appear as top-level page content.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * const MyExternalComponentRenderer: ExternalComponentRenderer<IMyExternalComponent> = ({
17
+ * information,
18
+ * contentContext,
19
+ * rendererConfig
20
+ * }) => {
21
+ * return <div data-external-id={information.externalId}>{information.title}</div>;
22
+ * };
23
+ * ```
24
+ */
9
25
  export type ExternalComponentRenderer<TInformation extends ITyped> = React.FC<ExternalComponentRendererProps<TInformation>>;
26
+ /**
27
+ * Embedded external component renderer type for rendering external components within rich text or collections.
28
+ * Includes additional props for positioning and tracking embedded content.
29
+ *
30
+ * Use this type when defining custom external component renderers that can be embedded within RTF fields
31
+ * or nested inside collections.
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * const MyEmbeddedExternalComponentRenderer: EmbeddedExternalComponentRenderer<IMyExternalComponent> = ({
36
+ * information,
37
+ * contentContext,
38
+ * rendererConfig,
39
+ * positionClassName,
40
+ * embeddedIndex,
41
+ * parentIndex
42
+ * }) => {
43
+ * return (
44
+ * <div className={positionClassName} data-position={embeddedIndex}>
45
+ * {information.title}
46
+ * </div>
47
+ * );
48
+ * };
49
+ * ```
50
+ */
10
51
  export type EmbeddedExternalComponentRenderer<TInformation extends ITyped = ITyped> = React.FC<ExternalComponentRendererProps<TInformation> & EmbeddedRendererProps>;
52
+ /**
53
+ * Map of external component types to their renderers
54
+ */
11
55
  export type ExternalComponentMap<TKey extends string, TInformation extends ITyped> = Partial<Record<TKey, ExternalComponentRenderer<TInformation>>>;
12
56
  export type EmbeddedExternalComponentMap<TKey extends string, TInformation extends ITyped> = Partial<Record<TKey, EmbeddedExternalComponentRenderer<TInformation>>>;
13
57
  export declare const CmsExternalComponent: ExternalComponentRenderer<IBaseExternalComponent>;
@@ -1 +1 @@
1
- {"version":3,"file":"CmsExternalComponent.d.ts","sourceRoot":"","sources":["../../src/components/CmsExternalComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,8BAA8B,CAAC,YAAY,SAAS,MAAM,IAAI;IACxE,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,iBAAiB,CAAC;CACnC,CAAC;AAiBF,MAAM,MAAM,yBAAyB,CAAC,YAAY,SAAS,MAAM,IAAI,KAAK,CAAC,EAAE,CAC3E,8BAA8B,CAAC,YAAY,CAAC,CAC7C,CAAC;AA2BF,MAAM,MAAM,iCAAiC,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,EAAE,CAC5F,8BAA8B,CAAC,YAAY,CAAC,GAAG,qBAAqB,CACrE,CAAC;AAIF,MAAM,MAAM,oBAAoB,CAAC,IAAI,SAAS,MAAM,EAAE,YAAY,SAAS,MAAM,IAAI,OAAO,CAC1F,MAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC,CACtD,CAAC;AAEF,MAAM,MAAM,4BAA4B,CACtC,IAAI,SAAS,MAAM,EACnB,YAAY,SAAS,MAAM,IACzB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,iCAAiC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AA8C3E,eAAO,MAAM,oBAAoB,EAAE,yBAAyB,CAAC,sBAAsB,CA8ClF,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,iCAAiC,CAC1E,sBAAsB,CAqCvB,CAAC"}
1
+ {"version":3,"file":"CmsExternalComponent.d.ts","sourceRoot":"","sources":["../../src/components/CmsExternalComponent.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,8BAA8B,CAAC,YAAY,SAAS,MAAM,IAAI;IACxE,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,iBAAiB,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,yBAAyB,CAAC,YAAY,SAAS,MAAM,IAAI,KAAK,CAAC,EAAE,CAC3E,8BAA8B,CAAC,YAAY,CAAC,CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,iCAAiC,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,EAAE,CAC5F,8BAA8B,CAAC,YAAY,CAAC,GAAG,qBAAqB,CACrE,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,IAAI,SAAS,MAAM,EAAE,YAAY,SAAS,MAAM,IAAI,OAAO,CAC1F,MAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC,CACtD,CAAC;AAEF,MAAM,MAAM,4BAA4B,CACtC,IAAI,SAAS,MAAM,EACnB,YAAY,SAAS,MAAM,IACzB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,iCAAiC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AA8C3E,eAAO,MAAM,oBAAoB,EAAE,yBAAyB,CAAC,sBAAsB,CA8ClF,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,iCAAiC,CAC1E,sBAAsB,CAqCvB,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * Error component displayed in development/preview mode when an unknown collection type is encountered
4
+ */
2
5
  const ExternalComponentTypeError = ({ information, availableTypes, showInProduction = false, }) => {
3
6
  if (!showInProduction && typeof process !== 'undefined' && process.env?.NODE_ENV === 'production')
4
7
  return null;
@@ -17,8 +20,10 @@ export const CmsExternalComponent = ({ information, contentContext, rendererConf
17
20
  const result = (_jsx(Element, { information: information, contentContext: contentContext, rendererConfig: rendererConfig }));
18
21
  return result;
19
22
  }
23
+ // Log unknown component type for monitoring
20
24
  const availableTypes = Object.keys(externalComponentMap);
21
25
  console.log(`Unknown external component type: ${String(information.externalType)} (ID: ${information.id}). Available types:`, availableTypes.join(','));
26
+ // Show warning in development/preview mode, use Generic fallback
22
27
  const shouldShowError = showUnknownTypeErrors ||
23
28
  (typeof process !== 'undefined' && process.env?.NODE_ENV === 'development');
24
29
  const result = (_jsx(_Fragment, { children: shouldShowError && (_jsx(ExternalComponentTypeError, { information: information, availableTypes: availableTypes, showInProduction: showUnknownTypeErrors })) }));
@@ -31,8 +36,10 @@ export const CmsEmbeddedExternalComponent = ({ information, rendererConfig, ...p
31
36
  const result = _jsx(Element, { information: information, rendererConfig: rendererConfig, ...props });
32
37
  return result;
33
38
  }
39
+ // Log unknown component type for monitoring
34
40
  const availableTypes = Object.keys(embeddedExternalComponentMap);
35
41
  console.log(`Unknown embedded external component type: ${String(information.externalType)} (ID: ${information.id}). Available types:`, availableTypes.join(','));
42
+ // Show warning in development/preview mode, use Generic fallback
36
43
  const shouldShowError = showUnknownTypeErrors ||
37
44
  (typeof process !== 'undefined' && process.env?.NODE_ENV === 'development');
38
45
  const result = (_jsx(_Fragment, { children: shouldShowError && (_jsx(ExternalComponentTypeError, { information: information, availableTypes: availableTypes, showInProduction: showUnknownTypeErrors })) }));
@@ -1 +1 @@
1
- {"version":3,"file":"CmsExternalComponent.js","sourceRoot":"","sources":["../../src/components/CmsExternalComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CmsExternalComponent.js","sourceRoot":"","sources":["../../src/components/CmsExternalComponent.tsx"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ const VideoSources = ({ baseSrc, videoPrefix, width, visualSizes }) => {
9
9
  ?.breakpoints?.filter((x) => !width || x.pixels < width)
10
10
  .sort((a, b) => a.minWidth - b.minWidth);
11
11
  return (_jsxs(_Fragment, { children: [sizes?.map(({ minWidth, pixels }, index, arr) => {
12
+ // For video sources, convert minWidth back to max-width media queries
12
13
  const nextBreakpoint = arr[index + 1];
13
14
  const maxWidth = nextBreakpoint ? nextBreakpoint.minWidth - 1 : undefined;
14
15
  return maxWidth ? (_jsx("source", { src: `${videoPrefix}${baseSrc}?tr=w-${pixels}`, media: `(max-width: ${maxWidth}px)`, type: "video/mp4" }, minWidth)) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageKitClientVideo.js","sourceRoot":"","sources":["../../src/components/ImageKitClientVideo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageKitClientVideo.js","sourceRoot":"","sources":["../../src/components/ImageKitClientVideo.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { calculateCropDetails } from './Visual';
3
3
  function SvgComponent({ image, className, style, ...other }) {
4
4
  const cropProperties = calculateCropDetails(image);
5
- return (_jsx("div", { className: className, style: { ...style, ...cropProperties }, dangerouslySetInnerHTML: { __html: image.data }, ...other }));
5
+ return (_jsx("div", { className: className, style: { ...style, ...cropProperties },
6
+ // biome-ignore lint/security/noDangerouslySetInnerHtml: Ok to set SVG inner HTML
7
+ dangerouslySetInnerHTML: { __html: image.data }, ...other }));
6
8
  }
7
9
  export default SvgComponent;
8
10
  //# sourceMappingURL=SvgComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SvgComponent.js","sourceRoot":"","sources":["../../src/components/SvgComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAoB,MAAM,UAAU,CAAC;AAElE,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACgE;IACxE,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,cAAc,EAAE,EAEtC,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAC3C,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SvgComponent.js","sourceRoot":"","sources":["../../src/components/SvgComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAoB,MAAM,UAAU,CAAC;AAElE,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACgE;IACxE,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,cAAc,EAAE;QACtC,iFAAiF;QACjF,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAC3C,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -1,6 +1,53 @@
1
1
  import type { IVisual } from '@se-studio/core-data-types';
2
2
  import type React from 'react';
3
3
  import type { IVisualProps } from './Visual';
4
+ /**
5
+ * Visual component for rendering images, videos, and animations.
6
+ *
7
+ * Automatically selects the appropriate renderer based on the visual type:
8
+ * - Animations (Lottie) are rendered via AnimationServer
9
+ * - Videos are rendered via VideoComponent with Next.js optimization
10
+ * - Images are rendered via ImageComponent with Next.js Image optimization
11
+ *
12
+ * @param visual - Visual data containing image, video, or animation
13
+ * @param muted - Whether video should be muted (default: false)
14
+ * @param controls - Whether video should show controls (default: false)
15
+ * @param autoPlay - Whether video/animation should autoplay (default: false)
16
+ * @param visualSizes - Responsive size configuration for the visual
17
+ * @param fullPlayer - Whether video should use full player mode (default: false)
18
+ * @param loop - Whether video/animation should loop (default: false)
19
+ * @param loopDelay - Delay between loops in milliseconds
20
+ * @param analyticsContext - Analytics context for tracking
21
+ * @param componentLabel - Label for analytics tracking
22
+ * @param className - Additional CSS classes
23
+ * @param style - Additional inline styles
24
+ *
25
+ * @example Basic image
26
+ * ```tsx
27
+ * <Visual visual={imageVisual} className="w-full h-auto" />
28
+ * ```
29
+ *
30
+ * @example Video with autoplay
31
+ * ```tsx
32
+ * <Visual
33
+ * visual={videoVisual}
34
+ * autoPlay
35
+ * muted
36
+ * loop
37
+ * className="w-full"
38
+ * />
39
+ * ```
40
+ *
41
+ * @example Animation with loop delay
42
+ * ```tsx
43
+ * <Visual
44
+ * visual={animationVisual}
45
+ * autoPlay
46
+ * loop
47
+ * loopDelay={1000}
48
+ * />
49
+ * ```
50
+ */
4
51
  export declare const Visual: React.FC<{
5
52
  visual: IVisual;
6
53
  } & IVisualProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"VisualComponent.d.ts","sourceRoot":"","sources":["../../src/components/VisualComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAqD/D,CAAC"}
1
+ {"version":3,"file":"VisualComponent.d.ts","sourceRoot":"","sources":["../../src/components/VisualComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAqD/D,CAAC"}
@@ -3,6 +3,53 @@ import { UnsupportedWarning } from '../utils/UnsupportedWarning';
3
3
  import AnimationServer from './AnimationServer';
4
4
  import ImageComponent from './ImageComponent';
5
5
  import VideoComponent from './VideoComponent';
6
+ /**
7
+ * Visual component for rendering images, videos, and animations.
8
+ *
9
+ * Automatically selects the appropriate renderer based on the visual type:
10
+ * - Animations (Lottie) are rendered via AnimationServer
11
+ * - Videos are rendered via VideoComponent with Next.js optimization
12
+ * - Images are rendered via ImageComponent with Next.js Image optimization
13
+ *
14
+ * @param visual - Visual data containing image, video, or animation
15
+ * @param muted - Whether video should be muted (default: false)
16
+ * @param controls - Whether video should show controls (default: false)
17
+ * @param autoPlay - Whether video/animation should autoplay (default: false)
18
+ * @param visualSizes - Responsive size configuration for the visual
19
+ * @param fullPlayer - Whether video should use full player mode (default: false)
20
+ * @param loop - Whether video/animation should loop (default: false)
21
+ * @param loopDelay - Delay between loops in milliseconds
22
+ * @param analyticsContext - Analytics context for tracking
23
+ * @param componentLabel - Label for analytics tracking
24
+ * @param className - Additional CSS classes
25
+ * @param style - Additional inline styles
26
+ *
27
+ * @example Basic image
28
+ * ```tsx
29
+ * <Visual visual={imageVisual} className="w-full h-auto" />
30
+ * ```
31
+ *
32
+ * @example Video with autoplay
33
+ * ```tsx
34
+ * <Visual
35
+ * visual={videoVisual}
36
+ * autoPlay
37
+ * muted
38
+ * loop
39
+ * className="w-full"
40
+ * />
41
+ * ```
42
+ *
43
+ * @example Animation with loop delay
44
+ * ```tsx
45
+ * <Visual
46
+ * visual={animationVisual}
47
+ * autoPlay
48
+ * loop
49
+ * loopDelay={1000}
50
+ * />
51
+ * ```
52
+ */
6
53
  export const Visual = ({ visual, muted, controls, autoPlay, visualSizes, fullPlayer, loop, loopDelay, analyticsContext, componentLabel, ...props }) => {
7
54
  const { animation, image, video } = visual;
8
55
  if (animation) {
@@ -1 +1 @@
1
- {"version":3,"file":"VisualComponent.js","sourceRoot":"","sources":["../../src/components/VisualComponent.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,MAAM,CAAC,MAAM,MAAM,GAAiD,CAAC,EACnE,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,KAC1B,KAAK,GACT,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,KAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,KAC1B,KAAK,GACT,CACH,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;IAC/E,CAAC;IAED,OAAO,CACL,KAAC,kBAAkB,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,8CAE7C,CACtB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"VisualComponent.js","sourceRoot":"","sources":["../../src/components/VisualComponent.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiD,CAAC,EACnE,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,KAC1B,KAAK,GACT,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,KAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,KAC1B,KAAK,GACT,CACH,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;IAC/E,CAAC;IAED,OAAO,CACL,KAAC,kBAAkB,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,8CAE7C,CACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -12,5 +12,13 @@ export interface TrackedLinkProps extends Omit<LinkProps<string>, 'href'>, Omit<
12
12
  component?: React.ElementType;
13
13
  children: React.ReactNode;
14
14
  }
15
+ /**
16
+ * Unified link component that handles:
17
+ * - All link types (internal, external, blank)
18
+ * - UTM parameter appending from URL search params
19
+ * - Click tracking integration
20
+ * - Uses Next.js Link for all URLs (handles absolute URLs correctly)
21
+ * - Uses href="#" for blank links
22
+ */
15
23
  export declare const TrackedLink: React.ForwardRefExoticComponent<TrackedLinkProps & React.RefAttributes<HTMLAnchorElement>>;
16
24
  //# sourceMappingURL=TrackedLink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TrackedLink.d.ts","sourceRoot":"","sources":["../../src/elements/TrackedLink.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EACrC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAUD,eAAO,MAAM,WAAW,4FA+GtB,CAAC"}
1
+ {"version":3,"file":"TrackedLink.d.ts","sourceRoot":"","sources":["../../src/elements/TrackedLink.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EACrC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,4FA+GtB,CAAC"}
@@ -4,9 +4,18 @@ import { Slot } from '@radix-ui/react-slot';
4
4
  import Link from 'next/link';
5
5
  import { forwardRef, isValidElement, useCallback, useEffect, useState } from 'react';
6
6
  import { useAnalytics } from '../analytics/useAnalytics';
7
+ /**
8
+ * Unified link component that handles:
9
+ * - All link types (internal, external, blank)
10
+ * - UTM parameter appending from URL search params
11
+ * - Click tracking integration
12
+ * - Uses Next.js Link for all URLs (handles absolute URLs correctly)
13
+ * - Uses href="#" for blank links
14
+ */
7
15
  export const TrackedLink = forwardRef(function TrackedLink({ href, componentType = 'Link', location, analyticsContext, linkText, appendUtmParams = true, children, onClick, asChild = false, component, prefetch, replace, scroll, shallow, passHref, locale, ...props }, ref) {
8
16
  const { trackClick } = useAnalytics();
9
17
  const [finalHref, setFinalHref] = useState(href || '#');
18
+ // Handle UTM parameter appending
10
19
  useEffect(() => {
11
20
  if (!href || href === '#') {
12
21
  setFinalHref('#');
@@ -24,11 +33,13 @@ export const TrackedLink = forwardRef(function TrackedLink({ href, componentType
24
33
  setFinalHref(href);
25
34
  }
26
35
  }, [href, appendUtmParams]);
36
+ // Get link text for tracking
27
37
  const getLinkText = useCallback(() => {
28
38
  if (linkText)
29
39
  return linkText;
30
40
  if (typeof children === 'string')
31
41
  return children;
42
+ // Try to extract text from children
32
43
  if (isValidElement(children)) {
33
44
  const childrenElement = children;
34
45
  const props = childrenElement.props;
@@ -39,12 +50,14 @@ export const TrackedLink = forwardRef(function TrackedLink({ href, componentType
39
50
  return '';
40
51
  }, [linkText, children]);
41
52
  const handleClick = useCallback((event) => {
53
+ // Track the click if analytics context is provided
42
54
  if (analyticsContext) {
43
55
  trackClick(componentType, getLinkText(), analyticsContext, {
44
56
  targetUrl: href || undefined,
45
57
  location: location || undefined,
46
58
  });
47
59
  }
60
+ // Call the original onClick handler
48
61
  onClick?.(event);
49
62
  }, [analyticsContext, componentType, getLinkText, href, location, onClick, trackClick]);
50
63
  const linkProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"TrackedLink.js","sourceRoot":"","sources":["../../src/elements/TrackedLink.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrackedLink.js","sourceRoot":"","sources":["../../src/elements/TrackedLink.tsx"],"names":[],"mappings":"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"}
@@ -14,6 +14,10 @@ export function BackgroundMedia({ responsiveVisual, overlayOpacity, className, a
14
14
  : undefined;
15
15
  const isVideo = isVisualVideo(visual);
16
16
  const isMobileVideo = isVisualVideo(mobileVisual);
17
- return (_jsxs("div", { className: cn('absolute inset-0 overflow-hidden', className), children: [!hideVisual && (_jsx("div", { className: cn('size-full', (hideMobileVisual || mobileVisual) && 'max-laptop:hidden'), children: _jsx(Visual, { visual: visual, className: "size-full object-cover object-center", autoPlay: isVideo, muted: isVideo, loop: isVideo, controls: false, analyticsContext: analyticsContext, componentLabel: componentLabel }) })), mobileVisual && !hideMobileVisual && (_jsx("div", { className: "size-full block tablet:hidden", children: _jsx(Visual, { visual: mobileVisual, className: "size-full object-cover object-center", autoPlay: isMobileVideo, muted: isMobileVideo, loop: isMobileVideo, controls: false, analyticsContext: analyticsContext, componentLabel: componentLabel }) })), hasOverlay && _jsx("div", { className: "absolute inset-0", style: overlayStyle, "aria-hidden": "true" })] }));
17
+ return (_jsxs("div", { className: cn('absolute inset-0 overflow-hidden', className), children: [!hideVisual && (_jsx("div", { className: cn('size-full', (hideMobileVisual || mobileVisual) && 'max-laptop:hidden'), children: _jsx(Visual, { visual: visual, className: "size-full object-cover object-center",
18
+ // Videos should autoplay, be muted, and loop for backgrounds
19
+ autoPlay: isVideo, muted: isVideo, loop: isVideo, controls: false, analyticsContext: analyticsContext, componentLabel: componentLabel }) })), mobileVisual && !hideMobileVisual && (_jsx("div", { className: "size-full block tablet:hidden", children: _jsx(Visual, { visual: mobileVisual, className: "size-full object-cover object-center",
20
+ // Videos should autoplay, be muted, and loop for backgrounds
21
+ autoPlay: isMobileVideo, muted: isMobileVideo, loop: isMobileVideo, controls: false, analyticsContext: analyticsContext, componentLabel: componentLabel }) })), hasOverlay && _jsx("div", { className: "absolute inset-0", style: overlayStyle, "aria-hidden": "true" })] }));
18
22
  }
19
23
  //# sourceMappingURL=BackgroundMedia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackgroundMedia.js","sourceRoot":"","sources":["../../src/framework/BackgroundMedia.tsx"],"names":[],"mappings":";AAAA,OAAO,EAGL,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAUjC,MAAM,UAAU,eAAe,CAAC,EAC9B,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,GACO;IACrB,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAAC;IAEhF,MAAM,UAAU,GAAG,cAAc,IAAI,cAAc,GAAG,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC;YACE,eAAe,EAAE,iBAAiB,cAAc,GAAG,GAAG,GAAG;SAC1D;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,aAE9D,CAAC,UAAU,IAAI,CACd,cAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,gBAAgB,IAAI,YAAY,CAAC,IAAI,mBAAmB,CAAC,YACxF,KAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,SAAS,EAAC,sCAAsC,EAEhD,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,EAGA,YAAY,IAAI,CAAC,gBAAgB,IAAI,CACpC,cAAK,SAAS,EAAC,+BAA+B,YAC5C,KAAC,MAAM,IACL,MAAM,EAAE,YAAY,EACpB,SAAS,EAAC,sCAAsC,EAEhD,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,EAGA,UAAU,IAAI,cAAK,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,YAAY,iBAAc,MAAM,GAAG,IACvF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"BackgroundMedia.js","sourceRoot":"","sources":["../../src/framework/BackgroundMedia.tsx"],"names":[],"mappings":";AAAA,OAAO,EAGL,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAUjC,MAAM,UAAU,eAAe,CAAC,EAC9B,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,GACO;IACrB,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAAC;IAEhF,MAAM,UAAU,GAAG,cAAc,IAAI,cAAc,GAAG,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC;YACE,eAAe,EAAE,iBAAiB,cAAc,GAAG,GAAG,GAAG;SAC1D;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,aAE9D,CAAC,UAAU,IAAI,CACd,cAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,gBAAgB,IAAI,YAAY,CAAC,IAAI,mBAAmB,CAAC,YACxF,KAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,SAAS,EAAC,sCAAsC;oBAChD,6DAA6D;oBAC7D,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,EAGA,YAAY,IAAI,CAAC,gBAAgB,IAAI,CACpC,cAAK,SAAS,EAAC,+BAA+B,YAC5C,KAAC,MAAM,IACL,MAAM,EAAE,YAAY,EACpB,SAAS,EAAC,sCAAsC;oBAChD,6DAA6D;oBAC7D,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,EAGA,UAAU,IAAI,cAAK,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,YAAY,iBAAc,MAAM,GAAG,IACvF,CACP,CAAC;AACJ,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  export function ComponentErrorIndicator({ type, message, component, id, details, inline = false, isProduction = false, }) {
3
+ // Don't show errors in production
3
4
  if (isProduction)
4
5
  return null;
5
6
  const bgColor = {
6
- validation: '#f97316e6',
7
- parsing: '#ef4444e6',
8
- render: '#dc2626e6',
9
- data: '#eab308e6',
7
+ validation: '#f97316e6', // orange-500 with 90% opacity
8
+ parsing: '#ef4444e6', // red-500 with 90% opacity
9
+ render: '#dc2626e6', // red-600 with 90% opacity
10
+ data: '#eab308e6', // yellow-500 with 90% opacity
10
11
  }[type];
11
12
  const icon = {
12
13
  validation: '⚠️',
@@ -15,8 +16,10 @@ export function ComponentErrorIndicator({ type, message, component, id, details,
15
16
  data: '⚡',
16
17
  }[type];
17
18
  if (inline) {
19
+ // Inline version for embedding within components
18
20
  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
21
  }
22
+ // Full banner version
20
23
  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
24
  ? details.stack || details.message
22
25
  : typeof details === 'object'
@@ -1 +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"}
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;IAC7B,kCAAkC;IAClC,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,WAAW,EAAE,8BAA8B;QACvD,OAAO,EAAE,WAAW,EAAE,2BAA2B;QACjD,MAAM,EAAE,WAAW,EAAE,2BAA2B;QAChD,IAAI,EAAE,WAAW,EAAE,8BAA8B;KAClD,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;QACX,iDAAiD;QACjD,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;IAED,sBAAsB;IACtB,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"}