@se-studio/core-ui 1.0.91 → 1.0.93
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.
- package/CHANGELOG.md +18 -0
- package/dist/cmsRegistration.d.ts +41 -4
- package/dist/cmsRegistration.d.ts.map +1 -1
- package/dist/cmsRegistration.js.map +1 -1
- package/dist/components/ExternalVideoComponent.d.ts.map +1 -1
- package/dist/components/ExternalVideoComponent.js +6 -1
- package/dist/components/ExternalVideoComponent.js.map +1 -1
- package/dist/components/ExternalVimeoEmbed.d.ts.map +1 -1
- package/dist/components/ExternalVimeoEmbed.js +4 -4
- package/dist/components/ExternalVimeoEmbed.js.map +1 -1
- package/dist/components/ExternalYouTubeEmbed.js +1 -1
- package/dist/components/ExternalYouTubeEmbed.js.map +1 -1
- package/dist/components/ImageKitClientVideo.js +1 -1
- package/dist/components/ImageKitClientVideo.js.map +1 -1
- package/dist/components/ImageKitHlsVideoClient.js +1 -1
- package/dist/components/ImageKitHlsVideoClient.js.map +1 -1
- package/dist/components/{LocalVideoServer.d.ts → LocalVideo.d.ts} +3 -3
- package/dist/components/LocalVideo.d.ts.map +1 -0
- package/dist/components/LocalVideo.js +34 -0
- package/dist/components/LocalVideo.js.map +1 -0
- package/dist/components/VideoComponent.js +4 -4
- package/dist/components/VideoComponent.js.map +1 -1
- package/dist/components/VisualComponent.d.ts +1 -1
- package/dist/components/VisualComponent.js +3 -3
- package/dist/components/VisualComponent.js.map +1 -1
- package/dist/showcase/components/AllViewPanel.d.ts.map +1 -1
- package/dist/showcase/components/AllViewPanel.js +20 -3
- package/dist/showcase/components/AllViewPanel.js.map +1 -1
- package/dist/showcase/components/IframeHeightReporter.d.ts +10 -0
- package/dist/showcase/components/IframeHeightReporter.d.ts.map +1 -0
- package/dist/showcase/components/IframeHeightReporter.js +24 -0
- package/dist/showcase/components/IframeHeightReporter.js.map +1 -0
- package/dist/showcase/components/PreviewPanel.d.ts.map +1 -1
- package/dist/showcase/components/PreviewPanel.js +3 -4
- package/dist/showcase/components/PreviewPanel.js.map +1 -1
- package/dist/showcase/components/ScaledIframe.d.ts +3 -2
- package/dist/showcase/components/ScaledIframe.d.ts.map +1 -1
- package/dist/showcase/components/ScaledIframe.js +22 -4
- package/dist/showcase/components/ScaledIframe.js.map +1 -1
- package/dist/showcase/components/ShowcaseAllRenderPage.d.ts +1 -1
- package/dist/showcase/components/ShowcaseAllRenderPage.d.ts.map +1 -1
- package/dist/showcase/components/ShowcaseAllRenderPage.js +26 -25
- package/dist/showcase/components/ShowcaseAllRenderPage.js.map +1 -1
- package/dist/showcase/components/ShowcasePage.d.ts +4 -1
- package/dist/showcase/components/ShowcasePage.d.ts.map +1 -1
- package/dist/showcase/components/ShowcasePage.js +28 -2
- package/dist/showcase/components/ShowcasePage.js.map +1 -1
- package/dist/showcase/components/ShowcaseRenderPage.d.ts +1 -1
- package/dist/showcase/components/ShowcaseRenderPage.d.ts.map +1 -1
- package/dist/showcase/components/ShowcaseRenderPage.js +15 -8
- package/dist/showcase/components/ShowcaseRenderPage.js.map +1 -1
- package/dist/showcase/index.d.ts +1 -0
- package/dist/showcase/index.d.ts.map +1 -1
- package/dist/showcase/index.js +1 -0
- package/dist/showcase/index.js.map +1 -1
- package/dist/showcase/mergeShowcaseMocks.d.ts +34 -0
- package/dist/showcase/mergeShowcaseMocks.d.ts.map +1 -0
- package/dist/showcase/mergeShowcaseMocks.js +31 -0
- package/dist/showcase/mergeShowcaseMocks.js.map +1 -0
- package/dist/showcase/mockFactory.d.ts +9 -5
- package/dist/showcase/mockFactory.d.ts.map +1 -1
- package/dist/showcase/mockFactory.js +207 -33
- package/dist/showcase/mockFactory.js.map +1 -1
- package/package.json +6 -6
- package/dist/components/AnimationServer.d.ts +0 -9
- package/dist/components/AnimationServer.d.ts.map +0 -1
- package/dist/components/AnimationServer.js +0 -34
- package/dist/components/AnimationServer.js.map +0 -1
- package/dist/components/ExternalVideoServer.d.ts +0 -9
- package/dist/components/ExternalVideoServer.d.ts.map +0 -1
- package/dist/components/ExternalVideoServer.js +0 -26
- package/dist/components/ExternalVideoServer.js.map +0 -1
- package/dist/components/LocalVideoServer.d.ts.map +0 -1
- package/dist/components/LocalVideoServer.js +0 -54
- package/dist/components/LocalVideoServer.js.map +0 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { ScaledIframe } from './ScaledIframe';
|
|
5
|
-
const VIEWPORT_MOBILE = { width: 375
|
|
6
|
-
const VIEWPORT_DESKTOP = { width: 1440
|
|
5
|
+
const VIEWPORT_MOBILE = { width: 375 };
|
|
6
|
+
const VIEWPORT_DESKTOP = { width: 1440 };
|
|
7
7
|
export const PreviewPanel = ({ type, mode, controls, basePath }) => {
|
|
8
8
|
const containerRef = useRef(null);
|
|
9
9
|
const [containerWidth, setContainerWidth] = useState(0);
|
|
@@ -29,7 +29,6 @@ export const PreviewPanel = ({ type, mode, controls, basePath }) => {
|
|
|
29
29
|
params.set(key, String(value));
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
-
// Ensure basePath ends with /render if not already present or handle accordingly
|
|
33
32
|
const renderPath = basePath.endsWith('/') ? `${basePath}render` : `${basePath}/render`;
|
|
34
33
|
return `${renderPath}?${params.toString()}`;
|
|
35
34
|
};
|
|
@@ -37,6 +36,6 @@ export const PreviewPanel = ({ type, mode, controls, basePath }) => {
|
|
|
37
36
|
// Desktop gets roughly 2/3 of the space, Mobile gets 1/3
|
|
38
37
|
const mobileContainerWidth = containerWidth * 0.35;
|
|
39
38
|
const desktopContainerWidth = containerWidth * 0.65;
|
|
40
|
-
return (_jsxs("div", { ref: containerRef, className: "flex-1 bg-[#f3f4f6] p-8 flex gap-8 justify-center items-start overflow-auto", children: [_jsx(ScaledIframe, { src: iframeUrl, viewportWidth: VIEWPORT_MOBILE.width,
|
|
39
|
+
return (_jsxs("div", { ref: containerRef, className: "flex-1 bg-[#f3f4f6] p-8 flex gap-8 justify-center items-start overflow-auto", children: [_jsx(ScaledIframe, { src: iframeUrl, viewportWidth: VIEWPORT_MOBILE.width, label: "Mobile", containerWidth: mobileContainerWidth }), _jsx(ScaledIframe, { src: iframeUrl, viewportWidth: VIEWPORT_DESKTOP.width, label: "Desktop", containerWidth: desktopContainerWidth })] }));
|
|
41
40
|
};
|
|
42
41
|
//# sourceMappingURL=PreviewPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewPanel.js","sourceRoot":"","sources":["../../../src/showcase/components/PreviewPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,eAAe,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"PreviewPanel.js","sourceRoot":"","sources":["../../../src/showcase/components/PreviewPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,eAAe,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvC,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACpF,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,EAAE,CAAC;gBACV,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,SAAS,CAAC;QACvF,OAAO,GAAG,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAE7B,yDAAyD;IACzD,MAAM,oBAAoB,GAAG,cAAc,GAAG,IAAI,CAAC;IACnD,MAAM,qBAAqB,GAAG,cAAc,GAAG,IAAI,CAAC;IAEpD,OAAO,CACL,eACE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAC,6EAA6E,aAEvF,KAAC,YAAY,IACX,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,eAAe,CAAC,KAAK,EACpC,KAAK,EAAC,QAAQ,EACd,cAAc,EAAE,oBAAoB,GACpC,EACF,KAAC,YAAY,IACX,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,gBAAgB,CAAC,KAAK,EACrC,KAAK,EAAC,SAAS,EACf,cAAc,EAAE,qBAAqB,GACrC,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
interface ScaledIframeProps {
|
|
2
2
|
src: string;
|
|
3
3
|
viewportWidth: number;
|
|
4
|
-
|
|
4
|
+
/** Initial height used before the iframe reports its content height. */
|
|
5
|
+
initialHeight?: number;
|
|
5
6
|
label: string;
|
|
6
7
|
containerWidth: number;
|
|
7
8
|
}
|
|
8
|
-
export declare const ScaledIframe: ({ src, viewportWidth,
|
|
9
|
+
export declare const ScaledIframe: ({ src, viewportWidth, initialHeight, label, containerWidth, }: ScaledIframeProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=ScaledIframe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScaledIframe.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ScaledIframe.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScaledIframe.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ScaledIframe.tsx"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,GAAI,+DAM1B,iBAAiB,4CAuDnB,CAAC"}
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
export const ScaledIframe = ({ src, viewportWidth, initialHeight = 600, label, containerWidth, }) => {
|
|
5
|
+
const iframeRef = useRef(null);
|
|
6
|
+
const [iframeHeight, setIframeHeight] = useState(initialHeight);
|
|
7
|
+
// Listen for height reports from this specific iframe's content.
|
|
8
|
+
// Filtering by event.source ensures two side-by-side iframes don't
|
|
9
|
+
// interfere with each other.
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
const handler = (event) => {
|
|
12
|
+
if (event.data?.type === 'showcase-iframe-height' &&
|
|
13
|
+
iframeRef.current &&
|
|
14
|
+
event.source === iframeRef.current.contentWindow) {
|
|
15
|
+
setIframeHeight(event.data.height);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
window.addEventListener('message', handler);
|
|
19
|
+
return () => window.removeEventListener('message', handler);
|
|
20
|
+
}, []);
|
|
4
21
|
// Calculate scale to fit container with padding
|
|
5
22
|
const padding = 32; // 16px each side
|
|
6
23
|
const availableWidth = Math.max(containerWidth - padding, 100);
|
|
7
24
|
const scale = Math.min(availableWidth / viewportWidth, 1.0);
|
|
8
25
|
const scaledWidth = viewportWidth * scale;
|
|
9
|
-
|
|
10
|
-
|
|
26
|
+
// The outer box must reflect the visual (scaled) height so layout doesn't collapse.
|
|
27
|
+
const scaledHeight = iframeHeight * scale;
|
|
28
|
+
return (_jsxs("div", { className: "flex flex-col items-center shrink-0", children: [_jsxs("div", { className: "text-[11px] font-[600] text-[#6b7280] uppercase tracking-wider mb-3", children: [label, " (", viewportWidth, "px)"] }), _jsx("div", { className: "bg-[#ffffff] shadow-lg rounded-lg overflow-hidden border border-[#e5e7eb]", style: { width: scaledWidth, height: scaledHeight }, children: _jsx("iframe", { ref: iframeRef, src: src, title: `${label} preview`, className: "origin-top-left border-none", style: {
|
|
11
29
|
width: viewportWidth,
|
|
12
|
-
height:
|
|
30
|
+
height: iframeHeight,
|
|
13
31
|
transform: `scale(${scale})`,
|
|
14
32
|
} }) })] }));
|
|
15
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScaledIframe.js","sourceRoot":"","sources":["../../../src/showcase/components/ScaledIframe.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"ScaledIframe.js","sourceRoot":"","sources":["../../../src/showcase/components/ScaledIframe.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAWpD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,GAAG,EACH,aAAa,EACb,aAAa,GAAG,GAAG,EACnB,KAAK,EACL,cAAc,GACI,EAAE,EAAE;IACtB,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEhE,iEAAiE;IACjE,mEAAmE;IACnE,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;YACtC,IACE,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,wBAAwB;gBAC7C,SAAS,CAAC,OAAO;gBACjB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,aAAa,EAChD,CAAC;gBACD,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gDAAgD;IAChD,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,iBAAiB;IACrC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC;IAE5D,MAAM,WAAW,GAAG,aAAa,GAAG,KAAK,CAAC;IAC1C,oFAAoF;IACpF,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC;IAE1C,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAK,SAAS,EAAC,qEAAqE,aACjF,KAAK,QAAI,aAAa,WACnB,EAEN,cACE,SAAS,EAAC,2EAA2E,EACrF,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAEnD,iBACE,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,GAAG,KAAK,UAAU,EACzB,SAAS,EAAC,6BAA6B,EACvC,KAAK,EAAE;wBACL,KAAK,EAAE,aAAa;wBACpB,MAAM,EAAE,YAAY;wBACpB,SAAS,EAAE,SAAS,KAAK,GAAG;qBAC7B,GACD,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -12,7 +12,7 @@ interface ShowcaseAllRenderPageProps {
|
|
|
12
12
|
contentContext?: IContentContext;
|
|
13
13
|
componentMockMap?: Record<string, MockData>;
|
|
14
14
|
collectionMockMap?: Record<string, MockData>;
|
|
15
|
-
collectionCardMockMap?: Record<string, MockData>;
|
|
15
|
+
collectionCardMockMap?: Record<string, MockData | MockData[]>;
|
|
16
16
|
excludedComponents?: string[];
|
|
17
17
|
excludedCollections?: string[];
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowcaseAllRenderPage.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseAllRenderPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ShowcaseAllRenderPage.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseAllRenderPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,UAAU,0BAA0B;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC5D,cAAc,EAAE,iBAAiB,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,YAAY,EAAE,oBAAoB,CAAC;IACnC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC;IAC9D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAQD,eAAO,MAAM,qBAAqB,GAAI,wOAanC,0BAA0B,4CAkF5B,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { CmsCollection } from '../../components/CmsCollection';
|
|
3
3
|
import { CmsComponent } from '../../components/CmsComponent';
|
|
4
4
|
import { createMockShowcaseData } from '../mockFactory';
|
|
5
|
+
import { IframeHeightReporter } from './IframeHeightReporter';
|
|
5
6
|
const DEFAULT_MOCK_CONTEXT = {
|
|
6
7
|
current: { type: 'Page', id: 'mock-page' },
|
|
7
8
|
pageContext: {},
|
|
@@ -18,32 +19,32 @@ export const ShowcaseAllRenderPage = ({ searchParams, rendererConfig, componentF
|
|
|
18
19
|
: Object.keys(rendererConfig.collectionMap)
|
|
19
20
|
.filter((type) => !excludedCollections.includes(type))
|
|
20
21
|
.sort();
|
|
21
|
-
return (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed for mock data
|
|
40
|
-
, {
|
|
22
|
+
return (_jsxs("div", { className: "bg-[#f3f4f6]", children: [types.map((type) => {
|
|
23
|
+
// Merge default state with mock data overrides for this type
|
|
24
|
+
const currentMockData = mode === 'component' ? componentMockMap[type] : collectionMockMap[type];
|
|
25
|
+
const mergedDefaultState = { ...baseDefaultState };
|
|
26
|
+
if (currentMockData) {
|
|
27
|
+
if (typeof currentMockData.heading === 'string')
|
|
28
|
+
mergedDefaultState.heading = currentMockData.heading;
|
|
29
|
+
if (typeof currentMockData.preHeading === 'string')
|
|
30
|
+
mergedDefaultState.preHeading = currentMockData.preHeading;
|
|
31
|
+
if (typeof currentMockData.postHeading === 'string')
|
|
32
|
+
mergedDefaultState.postHeading = currentMockData.postHeading;
|
|
33
|
+
if (typeof currentMockData.body === 'string')
|
|
34
|
+
mergedDefaultState.body = currentMockData.body;
|
|
35
|
+
if (typeof currentMockData.additionalCopy === 'string')
|
|
36
|
+
mergedDefaultState.additionalCopy = currentMockData.additionalCopy;
|
|
37
|
+
}
|
|
38
|
+
const mockData = createMockShowcaseData(type, mode, mergedDefaultState, componentFieldsMap, collectionFieldsMap, collectionCardFieldsMap, componentMockMap, collectionMockMap, collectionCardMockMap);
|
|
39
|
+
return (_jsxs("div", { id: `component-${type.replace(/\s+/g, '-').toLowerCase()}`, children: [_jsxs("div", { className: "sticky top-0 z-[10] px-[16px] py-[8px] bg-[#1f2937] text-[#ffffff] text-[14px] font-[600] border-b-[2px] border-[#3b82f6]", children: [_jsx("span", { className: "text-[#9ca3af] mr-[8px]", children: mode === 'component' ? 'Component:' : 'Collection:' }), type] }), _jsx("div", { children: mode === 'component' ? (_jsx(CmsComponent
|
|
41
40
|
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed for mock data
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
, {
|
|
42
|
+
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed for mock data
|
|
43
|
+
information: mockData, rendererConfig: rendererConfig, contentContext: contentContext })) : (_jsx(CmsCollection
|
|
45
44
|
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed for mock data
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
, {
|
|
46
|
+
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed for mock data
|
|
47
|
+
information: mockData, rendererConfig: rendererConfig, contentContext: contentContext })) })] }, type));
|
|
48
|
+
}), _jsx(IframeHeightReporter, {})] }));
|
|
48
49
|
};
|
|
49
50
|
//# sourceMappingURL=ShowcaseAllRenderPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowcaseAllRenderPage.js","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseAllRenderPage.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ShowcaseAllRenderPage.js","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseAllRenderPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CmsRendererConfig } from '../../CmsRendererConfig';
|
|
2
|
+
import type { MockData } from '../../cmsRegistration';
|
|
2
3
|
import type { ShowcaseControlState } from '../types';
|
|
3
4
|
interface ShowcasePageProps {
|
|
4
5
|
searchParams: Record<string, string | string[] | undefined>;
|
|
@@ -11,7 +12,9 @@ interface ShowcasePageProps {
|
|
|
11
12
|
defaultState: ShowcaseControlState;
|
|
12
13
|
excludedComponents?: string[];
|
|
13
14
|
excludedCollections?: string[];
|
|
15
|
+
componentMockMap?: Record<string, MockData>;
|
|
16
|
+
collectionMockMap?: Record<string, MockData>;
|
|
14
17
|
}
|
|
15
|
-
export declare const ShowcasePage: ({ searchParams, rendererConfig, componentFieldsMap, collectionFieldsMap, colorOptions, foregroundColors, basePath, defaultState, excludedComponents, excludedCollections, }: ShowcasePageProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare const ShowcasePage: ({ searchParams, rendererConfig, componentFieldsMap, collectionFieldsMap, colorOptions, foregroundColors, basePath, defaultState, excludedComponents, excludedCollections, componentMockMap, collectionMockMap, }: ShowcasePageProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
19
|
export {};
|
|
17
20
|
//# sourceMappingURL=ShowcasePage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowcasePage.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ShowcasePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ShowcasePage.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ShowcasePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAMrD,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC5D,cAAc,EAAE,iBAAiB,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,oBAAoB,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,YAAY,GAAI,kNAa1B,iBAAiB,4CAuEnB,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { AllViewPanel } from './AllViewPanel';
|
|
|
4
4
|
import { ControlsWrapper } from './ControlsWrapper';
|
|
5
5
|
import { PreviewPanel } from './PreviewPanel';
|
|
6
6
|
import { TopBar } from './TopBar';
|
|
7
|
-
export const ShowcasePage = ({ searchParams, rendererConfig, componentFieldsMap, collectionFieldsMap, colorOptions, foregroundColors, basePath, defaultState, excludedComponents = [], excludedCollections = [], }) => {
|
|
7
|
+
export const ShowcasePage = ({ searchParams, rendererConfig, componentFieldsMap, collectionFieldsMap, colorOptions, foregroundColors, basePath, defaultState, excludedComponents = [], excludedCollections = [], componentMockMap = {}, collectionMockMap = {}, }) => {
|
|
8
8
|
const componentTypes = Object.keys(rendererConfig.componentMap)
|
|
9
9
|
.filter((type) => !excludedComponents.includes(type))
|
|
10
10
|
.sort();
|
|
@@ -14,7 +14,33 @@ export const ShowcasePage = ({ searchParams, rendererConfig, componentFieldsMap,
|
|
|
14
14
|
const type = searchParams.type || componentTypes[0] || '';
|
|
15
15
|
const mode = searchParams.mode || 'component';
|
|
16
16
|
const view = (searchParams.view || 'single');
|
|
17
|
-
|
|
17
|
+
// Merge curated mock data into defaultState so the initial iframe URL encodes the
|
|
18
|
+
// real heading/preHeading/colours rather than the generic placeholder defaults.
|
|
19
|
+
// Without this, PreviewPanel serialises "Sample Heading" into the URL and the
|
|
20
|
+
// render page's own merge is overridden by the explicit URL param.
|
|
21
|
+
const mergedDefaultState = { ...defaultState };
|
|
22
|
+
const currentMockData = type
|
|
23
|
+
? mode === 'component'
|
|
24
|
+
? componentMockMap[type]
|
|
25
|
+
: collectionMockMap[type]
|
|
26
|
+
: undefined;
|
|
27
|
+
if (currentMockData) {
|
|
28
|
+
if (typeof currentMockData.heading === 'string')
|
|
29
|
+
mergedDefaultState.heading = currentMockData.heading;
|
|
30
|
+
if (typeof currentMockData.preHeading === 'string')
|
|
31
|
+
mergedDefaultState.preHeading = currentMockData.preHeading;
|
|
32
|
+
if (typeof currentMockData.postHeading === 'string')
|
|
33
|
+
mergedDefaultState.postHeading = currentMockData.postHeading;
|
|
34
|
+
if (typeof currentMockData.body === 'string')
|
|
35
|
+
mergedDefaultState.body = currentMockData.body;
|
|
36
|
+
if (typeof currentMockData.additionalCopy === 'string')
|
|
37
|
+
mergedDefaultState.additionalCopy = currentMockData.additionalCopy;
|
|
38
|
+
if (typeof currentMockData.backgroundColour === 'string')
|
|
39
|
+
mergedDefaultState.backgroundColour = currentMockData.backgroundColour;
|
|
40
|
+
if (typeof currentMockData.textColour === 'string')
|
|
41
|
+
mergedDefaultState.textColour = currentMockData.textColour;
|
|
42
|
+
}
|
|
43
|
+
const controls = parseShowcaseControls(searchParams, mergedDefaultState);
|
|
18
44
|
return (_jsxs("div", { className: "flex flex-col h-screen bg-[#ffffff] overflow-hidden", children: [_jsx(TopBar, { componentTypes: componentTypes, collectionTypes: collectionTypes, selectedType: type, mode: mode, view: view }), _jsx("div", { className: "flex-1 flex overflow-hidden relative", children: view === 'all' ? (_jsx(AllViewPanel, { mode: mode, basePath: basePath })) : (_jsxs(_Fragment, { children: [_jsx(PreviewPanel, { type: type, mode: mode, controls: controls, basePath: basePath }), _jsx(ControlsWrapper, { initialState: controls, type: type, mode: mode, colorOptions: colorOptions, foregroundColors: foregroundColors, componentFieldsMap: componentFieldsMap, collectionFieldsMap: collectionFieldsMap })] })) })] }));
|
|
19
45
|
};
|
|
20
46
|
//# sourceMappingURL=ShowcasePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowcasePage.js","sourceRoot":"","sources":["../../../src/showcase/components/ShowcasePage.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ShowcasePage.js","sourceRoot":"","sources":["../../../src/showcase/components/ShowcasePage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ interface ShowcaseRenderPageProps {
|
|
|
12
12
|
contentContext?: IContentContext;
|
|
13
13
|
componentMockMap?: Record<string, MockData>;
|
|
14
14
|
collectionMockMap?: Record<string, MockData>;
|
|
15
|
-
collectionCardMockMap?: Record<string, MockData>;
|
|
15
|
+
collectionCardMockMap?: Record<string, MockData | MockData[]>;
|
|
16
16
|
}
|
|
17
17
|
export declare const ShowcaseRenderPage: ({ searchParams, rendererConfig, componentFieldsMap, collectionFieldsMap, collectionCardFieldsMap, defaultState, contentContext, componentMockMap, collectionMockMap, collectionCardMockMap, }: ShowcaseRenderPageProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowcaseRenderPage.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseRenderPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ShowcaseRenderPage.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseRenderPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,UAAU,uBAAuB;IAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC5D,cAAc,EAAE,iBAAiB,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,YAAY,EAAE,oBAAoB,CAAC;IACnC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC;CAC/D;AAQD,eAAO,MAAM,kBAAkB,GAAI,+LAWhC,uBAAuB,4CAsEzB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { CmsCollection } from '../../components/CmsCollection';
|
|
3
3
|
import { CmsComponent } from '../../components/CmsComponent';
|
|
4
4
|
import { createMockShowcaseData, parseShowcaseControls } from '../mockFactory';
|
|
5
|
+
import { IframeHeightReporter } from './IframeHeightReporter';
|
|
5
6
|
const DEFAULT_MOCK_CONTEXT = {
|
|
6
7
|
current: { type: 'Page', id: 'mock-page' },
|
|
7
8
|
pageContext: {},
|
|
@@ -28,6 +29,12 @@ export const ShowcaseRenderPage = ({ searchParams, rendererConfig, componentFiel
|
|
|
28
29
|
mergedDefaultState.body = currentMockData.body;
|
|
29
30
|
if (typeof currentMockData.additionalCopy === 'string')
|
|
30
31
|
mergedDefaultState.additionalCopy = currentMockData.additionalCopy;
|
|
32
|
+
// Apply colors from mock data so components default to their real brand colors.
|
|
33
|
+
// The user can still override these via the sidebar controls.
|
|
34
|
+
if (typeof currentMockData.backgroundColour === 'string')
|
|
35
|
+
mergedDefaultState.backgroundColour = currentMockData.backgroundColour;
|
|
36
|
+
if (typeof currentMockData.textColour === 'string')
|
|
37
|
+
mergedDefaultState.textColour = currentMockData.textColour;
|
|
31
38
|
}
|
|
32
39
|
const controls = parseShowcaseControls(searchParams, mergedDefaultState);
|
|
33
40
|
const mockData = type
|
|
@@ -36,14 +43,14 @@ export const ShowcaseRenderPage = ({ searchParams, rendererConfig, componentFiel
|
|
|
36
43
|
if (!mockData) {
|
|
37
44
|
return _jsx("div", { className: "p-4 text-red-500 text-sm", children: "No component selected" });
|
|
38
45
|
}
|
|
39
|
-
return (
|
|
40
|
-
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed
|
|
41
|
-
, {
|
|
46
|
+
return (_jsxs("div", { children: [mode === 'component' ? (_jsx(CmsComponent
|
|
42
47
|
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
48
|
+
, {
|
|
49
|
+
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed
|
|
50
|
+
information: mockData, rendererConfig: rendererConfig, contentContext: contentContext })) : (_jsx(CmsCollection
|
|
46
51
|
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed
|
|
47
|
-
|
|
52
|
+
, {
|
|
53
|
+
// biome-ignore lint/suspicious/noExplicitAny: Any is allowed
|
|
54
|
+
information: mockData, rendererConfig: rendererConfig, contentContext: contentContext })), _jsx(IframeHeightReporter, {})] }));
|
|
48
55
|
};
|
|
49
56
|
//# sourceMappingURL=ShowcaseRenderPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowcaseRenderPage.js","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseRenderPage.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ShowcaseRenderPage.js","sourceRoot":"","sources":["../../../src/showcase/components/ShowcaseRenderPage.tsx"],"names":[],"mappings":"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"}
|
package/dist/showcase/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { ShowcaseAllRenderPage } from './components/ShowcaseAllRenderPage';
|
|
|
7
7
|
export { ShowcasePage } from './components/ShowcasePage';
|
|
8
8
|
export { ShowcaseRenderPage } from './components/ShowcaseRenderPage';
|
|
9
9
|
export { type ShowcaseView, TopBar } from './components/TopBar';
|
|
10
|
+
export * from './mergeShowcaseMocks';
|
|
10
11
|
export * from './mockFactory';
|
|
11
12
|
export * from './types';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
package/dist/showcase/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { ShowcaseAllRenderPage } from './components/ShowcaseAllRenderPage';
|
|
|
7
7
|
export { ShowcasePage } from './components/ShowcasePage';
|
|
8
8
|
export { ShowcaseRenderPage } from './components/ShowcaseRenderPage';
|
|
9
9
|
export { TopBar } from './components/TopBar';
|
|
10
|
+
export * from './mergeShowcaseMocks';
|
|
10
11
|
export * from './mockFactory';
|
|
11
12
|
export * from './types';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAqB,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAqB,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { MockData } from '../cmsRegistration';
|
|
2
|
+
/**
|
|
3
|
+
* Shape of the curated showcase-mocks.json file produced by the curate-showcase-mocks skill.
|
|
4
|
+
* Components are keyed by their CMS type name, collections include both the collection-level
|
|
5
|
+
* mock and an optional array of distinct card mocks.
|
|
6
|
+
*/
|
|
7
|
+
export interface CuratedShowcaseMocks {
|
|
8
|
+
curatedAt: string;
|
|
9
|
+
components: Record<string, MockData>;
|
|
10
|
+
collections: Record<string, {
|
|
11
|
+
mock: MockData;
|
|
12
|
+
cards?: MockData[];
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Merges curated showcase mock data (from showcase-mocks.json) over the base mock maps
|
|
17
|
+
* derived from component/collection registrations. Curated data takes precedence; types
|
|
18
|
+
* without curated data fall back to their inline registration mock.
|
|
19
|
+
*
|
|
20
|
+
* @param curatedJson - Parsed contents of showcase-mocks.json. Pass null/undefined if the
|
|
21
|
+
* file does not exist yet — the base maps will be returned unchanged.
|
|
22
|
+
* @param base - Mock maps built from registrations via buildComponentMaps/buildCollectionMaps.
|
|
23
|
+
* @returns Merged mock maps ready to pass to ShowcaseRenderPage / ShowcaseAllRenderPage.
|
|
24
|
+
*/
|
|
25
|
+
export declare function mergeShowcaseMocks(curatedJson: CuratedShowcaseMocks | null | undefined, base: {
|
|
26
|
+
componentMockMap: Record<string, MockData>;
|
|
27
|
+
collectionMockMap: Record<string, MockData>;
|
|
28
|
+
collectionCardMockMap: Record<string, MockData | MockData[]>;
|
|
29
|
+
}): {
|
|
30
|
+
componentMockMap: Record<string, MockData>;
|
|
31
|
+
collectionMockMap: Record<string, MockData>;
|
|
32
|
+
collectionCardMockMap: Record<string, MockData | MockData[]>;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=mergeShowcaseMocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeShowcaseMocks.d.ts","sourceRoot":"","sources":["../../src/showcase/mergeShowcaseMocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EACpD,IAAI,EAAE;IACJ,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC;CAC9D,GACA;IACD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC;CAC9D,CAuBA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges curated showcase mock data (from showcase-mocks.json) over the base mock maps
|
|
3
|
+
* derived from component/collection registrations. Curated data takes precedence; types
|
|
4
|
+
* without curated data fall back to their inline registration mock.
|
|
5
|
+
*
|
|
6
|
+
* @param curatedJson - Parsed contents of showcase-mocks.json. Pass null/undefined if the
|
|
7
|
+
* file does not exist yet — the base maps will be returned unchanged.
|
|
8
|
+
* @param base - Mock maps built from registrations via buildComponentMaps/buildCollectionMaps.
|
|
9
|
+
* @returns Merged mock maps ready to pass to ShowcaseRenderPage / ShowcaseAllRenderPage.
|
|
10
|
+
*/
|
|
11
|
+
export function mergeShowcaseMocks(curatedJson, base) {
|
|
12
|
+
if (!curatedJson) {
|
|
13
|
+
return base;
|
|
14
|
+
}
|
|
15
|
+
const componentMockMap = {
|
|
16
|
+
...base.componentMockMap,
|
|
17
|
+
...curatedJson.components,
|
|
18
|
+
};
|
|
19
|
+
const collectionMockMap = { ...base.collectionMockMap };
|
|
20
|
+
const collectionCardMockMap = {
|
|
21
|
+
...base.collectionCardMockMap,
|
|
22
|
+
};
|
|
23
|
+
for (const [name, entry] of Object.entries(curatedJson.collections)) {
|
|
24
|
+
collectionMockMap[name] = entry.mock;
|
|
25
|
+
if (entry.cards && entry.cards.length > 0) {
|
|
26
|
+
collectionCardMockMap[name] = entry.cards;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return { componentMockMap, collectionMockMap, collectionCardMockMap };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=mergeShowcaseMocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeShowcaseMocks.js","sourceRoot":"","sources":["../../src/showcase/mergeShowcaseMocks.ts"],"names":[],"mappings":"AAaA;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAoD,EACpD,IAIC;IAMD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAA6B;QACjD,GAAG,IAAI,CAAC,gBAAgB;QACxB,GAAG,WAAW,CAAC,UAAU;KAC1B,CAAC;IAEF,MAAM,iBAAiB,GAA6B,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClF,MAAM,qBAAqB,GAA0C;QACnE,GAAG,IAAI,CAAC,qBAAqB;KAC9B,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QACpE,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;QACrC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -11,13 +11,17 @@ import type { ShowcaseControlState } from './types';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function createRichTextFromMarkdown(text: string): IContentfulRichText;
|
|
13
13
|
/**
|
|
14
|
-
* Creates a valid Visual object
|
|
14
|
+
* Creates a valid Visual object.
|
|
15
|
+
* - When `lottieUrl` is provided the visual wraps an IAnimation.
|
|
16
|
+
* - When `url` is provided it is used as the image src.
|
|
17
|
+
* - Otherwise a placehold.co placeholder is generated from the dimensions.
|
|
15
18
|
*/
|
|
16
|
-
export declare function createVisual(id: string, width: number, height: number): IVisual;
|
|
19
|
+
export declare function createVisual(id: string, width: number, height: number, url?: string, lottieUrl?: string): IVisual;
|
|
17
20
|
/**
|
|
18
|
-
* Creates a Responsive Visual object
|
|
21
|
+
* Creates a Responsive Visual object.
|
|
22
|
+
* Passes through real image URL or Lottie URL from curated mock when available.
|
|
19
23
|
*/
|
|
20
|
-
export declare function createResponsiveVisual(showVisual: boolean, showMobile: boolean, width?: number, height?: number): IResponsiveVisual | undefined;
|
|
24
|
+
export declare function createResponsiveVisual(showVisual: boolean, showMobile: boolean, width?: number, height?: number, url?: string, lottieUrl?: string): IResponsiveVisual | undefined;
|
|
21
25
|
/**
|
|
22
26
|
* Creates sample links
|
|
23
27
|
*/
|
|
@@ -30,5 +34,5 @@ export declare function createMockCardContent(collectionType: string, index: num
|
|
|
30
34
|
/**
|
|
31
35
|
* Generates a mock component or collection based on the control state
|
|
32
36
|
*/
|
|
33
|
-
export declare function createMockShowcaseData(type: string, mode: 'component' | 'collection', controls: ShowcaseControlState, componentFieldsMap: Record<string, Set<string>>, collectionFieldsMap: Record<string, Set<string>>, collectionCardFieldsMap: Record<string, Set<string>>, componentMockMap?: Record<string, MockData>, collectionMockMap?: Record<string, MockData>, collectionCardMockMap?: Record<string, MockData>): IContentfulComponent | IContentfulCollection;
|
|
37
|
+
export declare function createMockShowcaseData(type: string, mode: 'component' | 'collection', controls: ShowcaseControlState, componentFieldsMap: Record<string, Set<string>>, collectionFieldsMap: Record<string, Set<string>>, collectionCardFieldsMap: Record<string, Set<string>>, componentMockMap?: Record<string, MockData>, collectionMockMap?: Record<string, MockData>, collectionCardMockMap?: Record<string, MockData | MockData[]>): IContentfulComponent | IContentfulCollection;
|
|
34
38
|
//# sourceMappingURL=mockFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockFactory.d.ts","sourceRoot":"","sources":["../../src/showcase/mockFactory.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mockFactory.d.ts","sourceRoot":"","sources":["../../src/showcase/mockFactory.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAIV,aAAa,EAEb,iBAAiB,EACjB,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAA0B,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA4BpD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAmF5E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CA4BT;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO,EACnB,KAAK,SAAM,EACX,MAAM,SAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,iBAAiB,GAAG,SAAS,CA0B/B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAc1D;AA0FD,wBAAgB,qBAAqB,CAAC,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EACvE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EAC3D,YAAY,EAAE,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,GACpD,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAwCzC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,oBAAoB,EAC9B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACpD,YAAY,CAAC,EAAE,QAAQ,GACtB,oBAAoB,GAAG,OAAO,CAuJhC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAAG,YAAY,EAChC,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAC/C,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAChD,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACpD,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM,EAC/C,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM,EAChD,qBAAqB,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAM,GAChE,oBAAoB,GAAG,qBAAqB,CAmJ9C"}
|