@se-studio/core-ui 1.19.10 → 1.20.0
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 +6 -0
- package/dist/cmsRegistration.d.ts +16 -0
- package/dist/cmsRegistration.d.ts.map +1 -1
- package/dist/cmsRegistration.js +10 -0
- package/dist/cmsRegistration.js.map +1 -1
- package/dist/route-handlers/createCmsTxtHandler.d.ts.map +1 -1
- package/dist/route-handlers/createCmsTxtHandler.js +4 -0
- package/dist/route-handlers/createCmsTxtHandler.js.map +1 -1
- package/dist/showcase/components/AllViewPanel.d.ts.map +1 -1
- package/dist/showcase/components/AllViewPanel.js +5 -2
- package/dist/showcase/components/AllViewPanel.js.map +1 -1
- package/dist/showcase/components/Controls.d.ts.map +1 -1
- package/dist/showcase/components/Controls.js +2 -5
- package/dist/showcase/components/Controls.js.map +1 -1
- package/dist/showcase/components/ControlsWrapper.d.ts +3 -1
- package/dist/showcase/components/ControlsWrapper.d.ts.map +1 -1
- package/dist/showcase/components/ControlsWrapper.js +2 -2
- package/dist/showcase/components/ControlsWrapper.js.map +1 -1
- package/dist/showcase/components/IframeHeightReporter.d.ts +6 -3
- package/dist/showcase/components/IframeHeightReporter.d.ts.map +1 -1
- package/dist/showcase/components/IframeHeightReporter.js +32 -5
- package/dist/showcase/components/IframeHeightReporter.js.map +1 -1
- package/dist/showcase/components/PreviewPanel.d.ts +6 -1
- package/dist/showcase/components/PreviewPanel.d.ts.map +1 -1
- package/dist/showcase/components/PreviewPanel.js +5 -3
- package/dist/showcase/components/PreviewPanel.js.map +1 -1
- package/dist/showcase/components/ScaledIframe.d.ts +12 -1
- package/dist/showcase/components/ScaledIframe.d.ts.map +1 -1
- package/dist/showcase/components/ScaledIframe.js +18 -11
- package/dist/showcase/components/ScaledIframe.js.map +1 -1
- package/dist/showcase/components/ShowcaseAllRenderPage.d.ts.map +1 -1
- package/dist/showcase/components/ShowcaseAllRenderPage.js +3 -2
- package/dist/showcase/components/ShowcaseAllRenderPage.js.map +1 -1
- package/dist/showcase/components/ShowcasePage.d.ts +6 -1
- package/dist/showcase/components/ShowcasePage.d.ts.map +1 -1
- package/dist/showcase/components/ShowcasePage.js +8 -2
- package/dist/showcase/components/ShowcasePage.js.map +1 -1
- package/dist/showcase/components/ShowcaseRenderPage.d.ts.map +1 -1
- package/dist/showcase/components/ShowcaseRenderPage.js +9 -8
- package/dist/showcase/components/ShowcaseRenderPage.js.map +1 -1
- package/dist/showcase/components/ShowcaseViewportGuard.d.ts +14 -0
- package/dist/showcase/components/ShowcaseViewportGuard.d.ts.map +1 -0
- package/dist/showcase/components/ShowcaseViewportGuard.js +77 -0
- package/dist/showcase/components/ShowcaseViewportGuard.js.map +1 -0
- package/dist/showcase/controlFieldSupport.d.ts +12 -0
- package/dist/showcase/controlFieldSupport.d.ts.map +1 -0
- package/dist/showcase/controlFieldSupport.js +35 -0
- package/dist/showcase/controlFieldSupport.js.map +1 -0
- package/dist/showcase/index.d.ts +7 -1
- package/dist/showcase/index.d.ts.map +1 -1
- package/dist/showcase/index.js +7 -1
- package/dist/showcase/index.js.map +1 -1
- package/dist/showcase/isCmsShowcase.d.ts +10 -0
- package/dist/showcase/isCmsShowcase.d.ts.map +1 -0
- package/dist/showcase/isCmsShowcase.js +12 -0
- package/dist/showcase/isCmsShowcase.js.map +1 -0
- package/dist/showcase/mockFactory.d.ts +3 -0
- package/dist/showcase/mockFactory.d.ts.map +1 -1
- package/dist/showcase/mockFactory.js +133 -27
- package/dist/showcase/mockFactory.js.map +1 -1
- package/dist/showcase/showcaseLayout.d.ts +17 -0
- package/dist/showcase/showcaseLayout.d.ts.map +1 -0
- package/dist/showcase/showcaseLayout.js +11 -0
- package/dist/showcase/showcaseLayout.js.map +1 -0
- package/dist/showcase/showcaseRelatedContent.d.ts +30 -0
- package/dist/showcase/showcaseRelatedContent.d.ts.map +1 -0
- package/dist/showcase/showcaseRelatedContent.js +106 -0
- package/dist/showcase/showcaseRelatedContent.js.map +1 -0
- package/package.json +3 -3
- package/src/showcase/README.md +130 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @se-studio/core-ui
|
|
2
2
|
|
|
3
|
+
## 1.20.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 928562f: CMS showcase: controls closed by default (`?controls=true`), map control keys to usedFields, string mock body → rich text, placeholder visuals, iframe height shrink/caps, External video for Vimeo/YouTube mock URLs, `showcaseLayout` registration + fixed preview frames, and helpers `isCmsShowcase` / `articlesFromShowcaseContents` / `peopleFromShowcaseContents` for related-content collections. Skills: curate-showcase-mocks video URL and no-LLM notes.
|
|
8
|
+
|
|
3
9
|
## 1.19.10
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -24,6 +24,7 @@ import type { ITyped } from '@se-studio/core-data-types';
|
|
|
24
24
|
import type { CollectionRenderer, EmbeddedCollectionRenderer } from './components/CmsCollection';
|
|
25
25
|
import type { ComponentRenderer, EmbeddedComponentRenderer } from './components/CmsComponent';
|
|
26
26
|
import type { EmbeddedExternalComponentRenderer, ExternalComponentRenderer } from './components/CmsExternalComponent';
|
|
27
|
+
import type { ShowcaseLayoutMode } from './showcase/showcaseLayout';
|
|
27
28
|
/**
|
|
28
29
|
* Converter function for a single CMS item to a markdown string.
|
|
29
30
|
* Structurally identical to `MarkdownItemConverter` in `@se-studio/markdown-renderer`,
|
|
@@ -96,6 +97,14 @@ export interface ComponentRegistration<TName extends string = string, TComponent
|
|
|
96
97
|
mock?: MockData;
|
|
97
98
|
/** Optional flag to exclude from cms-showcase */
|
|
98
99
|
showcaseExclude?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* How the showcase parent iframe should size this type.
|
|
102
|
+
* - `document` (default): auto-grow to content height
|
|
103
|
+
* - `viewport`: fixed frame + internal scroll (scroll-theatre / 100svh UIs)
|
|
104
|
+
* - `compact`: shorter fixed frame (full-bleed heroes)
|
|
105
|
+
* Prefer also implementing compact in-component layouts via `isCmsShowcase()`.
|
|
106
|
+
*/
|
|
107
|
+
showcaseLayout?: ShowcaseLayoutMode;
|
|
99
108
|
/** If set, this component suppresses itself when any of these types exist in the page contents */
|
|
100
109
|
defaultOf?: string[];
|
|
101
110
|
/** Optional custom markdown converter for search indexing. Overrides the generic component renderer. */
|
|
@@ -128,6 +137,11 @@ export interface CollectionRegistration<TName extends string = string, TCollecti
|
|
|
128
137
|
cardMock?: MockData | MockData[];
|
|
129
138
|
/** Optional flag to exclude from cms-showcase */
|
|
130
139
|
showcaseExclude?: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* How the showcase parent iframe should size this collection.
|
|
142
|
+
* See ComponentRegistration.showcaseLayout.
|
|
143
|
+
*/
|
|
144
|
+
showcaseLayout?: ShowcaseLayoutMode;
|
|
131
145
|
/** If set, this collection suppresses itself when any of these types exist in the page contents */
|
|
132
146
|
defaultOf?: string[];
|
|
133
147
|
/** Optional custom markdown converter for search indexing. Overrides the generic collection renderer. */
|
|
@@ -164,6 +178,7 @@ export declare function buildComponentMaps<TComponent extends ITyped>(registrati
|
|
|
164
178
|
componentMockMap: Record<string, MockData>;
|
|
165
179
|
componentDefaultsMap: Record<string, string[]>;
|
|
166
180
|
excludedComponents: string[];
|
|
181
|
+
componentShowcaseLayoutMap: Record<string, ShowcaseLayoutMode>;
|
|
167
182
|
};
|
|
168
183
|
type CollectionRegistrationsInput<TCollection extends ITyped> = readonly CollectionRegistration<string, TCollection>[] | Record<string, CollectionRegistration<string, TCollection>>;
|
|
169
184
|
/**
|
|
@@ -179,6 +194,7 @@ export declare function buildCollectionMaps<TCollection extends ITyped>(registra
|
|
|
179
194
|
collectionCardMockMap: Record<string, MockData | MockData[]>;
|
|
180
195
|
collectionDefaultsMap: Record<string, string[]>;
|
|
181
196
|
excludedCollections: string[];
|
|
197
|
+
collectionShowcaseLayoutMap: Record<string, ShowcaseLayoutMode>;
|
|
182
198
|
};
|
|
183
199
|
type ExternalComponentRegistrationsInput<TExternal extends ITyped> = readonly ExternalComponentRegistration<string, TExternal>[] | Record<string, ExternalComponentRegistration<string, TExternal>>;
|
|
184
200
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmsRegistration.d.ts","sourceRoot":"","sources":["../src/cmsRegistration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EACV,iCAAiC,EACjC,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"cmsRegistration.d.ts","sourceRoot":"","sources":["../src/cmsRegistration.ts"],"names":[],"mappings":"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"}
|
package/dist/cmsRegistration.js
CHANGED
|
@@ -36,6 +36,7 @@ export function buildComponentMaps(registrations) {
|
|
|
36
36
|
const componentMockMap = {};
|
|
37
37
|
const componentDefaultsMap = {};
|
|
38
38
|
const excludedComponents = [];
|
|
39
|
+
const componentShowcaseLayoutMap = {};
|
|
39
40
|
for (const reg of list) {
|
|
40
41
|
componentMap[reg.name] = reg.renderer;
|
|
41
42
|
componentFieldsMap[reg.name] = reg.usedFields;
|
|
@@ -54,6 +55,9 @@ export function buildComponentMaps(registrations) {
|
|
|
54
55
|
if (reg.showcaseExclude) {
|
|
55
56
|
excludedComponents.push(reg.name);
|
|
56
57
|
}
|
|
58
|
+
if (reg.showcaseLayout) {
|
|
59
|
+
componentShowcaseLayoutMap[reg.name] = reg.showcaseLayout;
|
|
60
|
+
}
|
|
57
61
|
}
|
|
58
62
|
return {
|
|
59
63
|
componentMap,
|
|
@@ -63,6 +67,7 @@ export function buildComponentMaps(registrations) {
|
|
|
63
67
|
componentMockMap,
|
|
64
68
|
componentDefaultsMap,
|
|
65
69
|
excludedComponents,
|
|
70
|
+
componentShowcaseLayoutMap,
|
|
66
71
|
};
|
|
67
72
|
}
|
|
68
73
|
function toCollectionRegistrationArray(registrations) {
|
|
@@ -82,6 +87,7 @@ export function buildCollectionMaps(registrations) {
|
|
|
82
87
|
const collectionCardMockMap = {};
|
|
83
88
|
const collectionDefaultsMap = {};
|
|
84
89
|
const excludedCollections = [];
|
|
90
|
+
const collectionShowcaseLayoutMap = {};
|
|
85
91
|
for (const reg of list) {
|
|
86
92
|
collectionMap[reg.name] = reg.renderer;
|
|
87
93
|
collectionFieldsMap[reg.name] = reg.usedFields;
|
|
@@ -106,6 +112,9 @@ export function buildCollectionMaps(registrations) {
|
|
|
106
112
|
if (reg.showcaseExclude) {
|
|
107
113
|
excludedCollections.push(reg.name);
|
|
108
114
|
}
|
|
115
|
+
if (reg.showcaseLayout) {
|
|
116
|
+
collectionShowcaseLayoutMap[reg.name] = reg.showcaseLayout;
|
|
117
|
+
}
|
|
109
118
|
}
|
|
110
119
|
return {
|
|
111
120
|
collectionMap,
|
|
@@ -117,6 +126,7 @@ export function buildCollectionMaps(registrations) {
|
|
|
117
126
|
collectionCardMockMap,
|
|
118
127
|
collectionDefaultsMap,
|
|
119
128
|
excludedCollections,
|
|
129
|
+
collectionShowcaseLayoutMap,
|
|
120
130
|
};
|
|
121
131
|
}
|
|
122
132
|
function toExternalComponentRegistrationArray(registrations) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmsRegistration.js","sourceRoot":"","sources":["../src/cmsRegistration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"cmsRegistration.js","sourceRoot":"","sources":["../src/cmsRegistration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCmsTxtHandler.d.ts","sourceRoot":"","sources":["../../src/route-handlers/createCmsTxtHandler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"createCmsTxtHandler.d.ts","sourceRoot":"","sources":["../../src/route-handlers/createCmsTxtHandler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,QAAQ,CAoHjC"}
|
|
@@ -28,6 +28,10 @@ Useful for visualising what content looks like before editing in Contentful.
|
|
|
28
28
|
|
|
29
29
|
URL: /cms/showcase
|
|
30
30
|
Type: HTML (interactive browser tool)
|
|
31
|
+
Query: ?type=<TypeName>&mode=component|collection&view=single|all&controls=true&debug=true
|
|
32
|
+
Note: Controls panel is closed by default; pass controls=true to open it.
|
|
33
|
+
Note: Pass layout maps from buildComponentMaps/buildCollectionMaps into ShowcasePage
|
|
34
|
+
when using registration showcaseLayout (document|viewport|compact).
|
|
31
35
|
|
|
32
36
|
Render a specific component or collection directly (no browser UI):
|
|
33
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCmsTxtHandler.js","sourceRoot":"","sources":["../../src/route-handlers/createCmsTxtHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAW3C;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA6B;IAE7B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEhD,OAAO,SAAS,GAAG;QACjB,MAAM,OAAO,GAAG,+BAA+B,OAAO;;;;;;yCAMjB,IAAI
|
|
1
|
+
{"version":3,"file":"createCmsTxtHandler.js","sourceRoot":"","sources":["../../src/route-handlers/createCmsTxtHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAW3C;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA6B;IAE7B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEhD,OAAO,SAAS,GAAG;QACjB,MAAM,OAAO,GAAG,+BAA+B,OAAO;;;;;;yCAMjB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiG3C,YAAY,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE/C,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;YAC/B,OAAO,EAAE;gBACP,cAAc,EAAE,8BAA8B;gBAC9C,eAAe,EAAE,sBAAsB;aACxC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllViewPanel.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/AllViewPanel.tsx"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD,eAAO,MAAM,YAAY,GAAI,oBAAoB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"AllViewPanel.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/AllViewPanel.tsx"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD,eAAO,MAAM,YAAY,GAAI,oBAAoB,iBAAiB,gCAyIjE,CAAC"}
|
|
@@ -7,7 +7,9 @@ const ZOOM_LEVELS = [25, 50, 75, 100];
|
|
|
7
7
|
export const AllViewPanel = ({ mode, basePath }) => {
|
|
8
8
|
const [viewport, setViewport] = useState('desktop');
|
|
9
9
|
const [zoom, setZoom] = useState(50);
|
|
10
|
-
|
|
10
|
+
/** Soft upper bound so a runaway iframe cannot freeze the browser (svh loops). */
|
|
11
|
+
const ALL_VIEW_MAX_HEIGHT = 24_000;
|
|
12
|
+
const [iframeHeight, setIframeHeight] = useState(4000);
|
|
11
13
|
const iframeRef = useRef(null);
|
|
12
14
|
const viewportConfig = viewport === 'mobile' ? VIEWPORT_MOBILE : VIEWPORT_DESKTOP;
|
|
13
15
|
const scale = zoom / 100;
|
|
@@ -17,7 +19,8 @@ export const AllViewPanel = ({ mode, basePath }) => {
|
|
|
17
19
|
if (event.data?.type === 'showcase-iframe-height' &&
|
|
18
20
|
iframeRef.current &&
|
|
19
21
|
event.source === iframeRef.current.contentWindow) {
|
|
20
|
-
|
|
22
|
+
const next = Math.min(Math.max(400, event.data.height), ALL_VIEW_MAX_HEIGHT);
|
|
23
|
+
setIframeHeight(next);
|
|
21
24
|
}
|
|
22
25
|
};
|
|
23
26
|
window.addEventListener('message', handler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllViewPanel.js","sourceRoot":"","sources":["../../../src/showcase/components/AllViewPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOpD,MAAM,eAAe,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACxD,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAE3D,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACpE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAuB,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAElD,MAAM,cAAc,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAClF,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;IAEzB,iEAAiE;IACjE,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,
|
|
1
|
+
{"version":3,"file":"AllViewPanel.js","sourceRoot":"","sources":["../../../src/showcase/components/AllViewPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controls.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/Controls.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Controls.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/Controls.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,UAAU,aAAa;IACrB,YAAY,EAAE,oBAAoB,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,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;CAClD;AAED,eAAO,MAAM,QAAQ,GAAI,0HAUtB,aAAa,gCA+Pf,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useRouter, useSearchParams } from 'next/navigation';
|
|
4
4
|
import { useCallback, useEffect, useState } from 'react';
|
|
5
|
+
import { isControlFieldSupported } from '../controlFieldSupport';
|
|
5
6
|
export const Controls = ({ initialState, type, mode, isOpen, onToggle, colorOptions, foregroundColors, componentFieldsMap, collectionFieldsMap, }) => {
|
|
6
7
|
const router = useRouter();
|
|
7
8
|
const searchParams = useSearchParams();
|
|
@@ -34,11 +35,7 @@ export const Controls = ({ initialState, type, mode, isOpen, onToggle, colorOpti
|
|
|
34
35
|
};
|
|
35
36
|
const isSupported = (field) => {
|
|
36
37
|
const fieldsMap = mode === 'component' ? componentFieldsMap : collectionFieldsMap;
|
|
37
|
-
|
|
38
|
-
if (!supportedFields) {
|
|
39
|
-
return true; // Fallback to supported if type not found
|
|
40
|
-
}
|
|
41
|
-
return supportedFields.has(field);
|
|
38
|
+
return isControlFieldSupported(field, fieldsMap[type]);
|
|
42
39
|
};
|
|
43
40
|
const Section = ({ title, children }) => (_jsxs("div", { className: "border-b border-[#e5e7eb] pb-4 mb-4 last:border-0", children: [_jsx("h3", { className: "text-[10px] font-[600] text-[#111827] uppercase tracking-[0.05em] mb-3", children: title }), _jsx("div", { className: "space-y-3", children: children })] }));
|
|
44
41
|
const Input = ({ label, field, type = 'text', }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controls.js","sourceRoot":"","sources":["../../../src/showcase/components/Controls.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Controls.js","sourceRoot":"","sources":["../../../src/showcase/components/Controls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,9 @@ interface ControlsWrapperProps {
|
|
|
7
7
|
foregroundColors: string[];
|
|
8
8
|
componentFieldsMap: Record<string, Set<string>>;
|
|
9
9
|
collectionFieldsMap: Record<string, Set<string>>;
|
|
10
|
+
/** When true, open the controls panel on mount. Default false; set via ?controls=true. */
|
|
11
|
+
initialOpen?: boolean;
|
|
10
12
|
}
|
|
11
|
-
export declare const ControlsWrapper: ({ initialState, type, mode, colorOptions, foregroundColors, componentFieldsMap, collectionFieldsMap, }: ControlsWrapperProps) => import("react").JSX.Element;
|
|
13
|
+
export declare const ControlsWrapper: ({ initialState, type, mode, colorOptions, foregroundColors, componentFieldsMap, collectionFieldsMap, initialOpen, }: ControlsWrapperProps) => import("react").JSX.Element;
|
|
12
14
|
export {};
|
|
13
15
|
//# sourceMappingURL=ControlsWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlsWrapper.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ControlsWrapper.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,UAAU,oBAAoB;IAC5B,YAAY,EAAE,oBAAoB,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,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;
|
|
1
|
+
{"version":3,"file":"ControlsWrapper.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ControlsWrapper.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,UAAU,oBAAoB;IAC5B,YAAY,EAAE,oBAAoB,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,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,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,GAAI,qHAS7B,oBAAoB,gCAgBtB,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { Controls } from './Controls';
|
|
5
|
-
export const ControlsWrapper = ({ initialState, type, mode, colorOptions, foregroundColors, componentFieldsMap, collectionFieldsMap, }) => {
|
|
6
|
-
const [isOpen, setIsOpen] = useState(
|
|
5
|
+
export const ControlsWrapper = ({ initialState, type, mode, colorOptions, foregroundColors, componentFieldsMap, collectionFieldsMap, initialOpen = false, }) => {
|
|
6
|
+
const [isOpen, setIsOpen] = useState(initialOpen);
|
|
7
7
|
return (_jsx(Controls, { initialState: initialState, type: type, mode: mode, isOpen: isOpen, onToggle: () => setIsOpen(!isOpen), colorOptions: colorOptions, foregroundColors: foregroundColors, componentFieldsMap: componentFieldsMap, collectionFieldsMap: collectionFieldsMap }));
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=ControlsWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlsWrapper.js","sourceRoot":"","sources":["../../../src/showcase/components/ControlsWrapper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ControlsWrapper.js","sourceRoot":"","sources":["../../../src/showcase/components/ControlsWrapper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AActC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,YAAY,EACZ,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GAAG,KAAK,GACE,EAAE,EAAE;IACzB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAElD,OAAO,CACL,KAAC,QAAQ,IACP,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAClC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,GACxC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Drop this inside any page that is rendered inside an iframe.
|
|
3
|
-
* It measures
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* It measures content height and posts it to the parent frame so the parent
|
|
4
|
+
* can size the iframe to fit content instead of using a fixed/oversized height.
|
|
5
|
+
*
|
|
6
|
+
* Prefers `#showcase-measure-root` when present so short content can shrink
|
|
7
|
+
* below the iframe chrome height (documentElement.scrollHeight often mirrors
|
|
8
|
+
* the iframe viewport and never reports a smaller value).
|
|
6
9
|
*
|
|
7
10
|
* Same-origin only — no CORS issues for the CMS showcase use case.
|
|
8
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeHeightReporter.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/IframeHeightReporter.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"IframeHeightReporter.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/IframeHeightReporter.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,SAkDnC"}
|
|
@@ -2,22 +2,49 @@
|
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
3
|
/**
|
|
4
4
|
* Drop this inside any page that is rendered inside an iframe.
|
|
5
|
-
* It measures
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* It measures content height and posts it to the parent frame so the parent
|
|
6
|
+
* can size the iframe to fit content instead of using a fixed/oversized height.
|
|
7
|
+
*
|
|
8
|
+
* Prefers `#showcase-measure-root` when present so short content can shrink
|
|
9
|
+
* below the iframe chrome height (documentElement.scrollHeight often mirrors
|
|
10
|
+
* the iframe viewport and never reports a smaller value).
|
|
8
11
|
*
|
|
9
12
|
* Same-origin only — no CORS issues for the CMS showcase use case.
|
|
10
13
|
*/
|
|
11
14
|
export function IframeHeightReporter() {
|
|
12
15
|
useEffect(() => {
|
|
13
16
|
const report = () => {
|
|
14
|
-
const
|
|
17
|
+
const measureRoot = document.getElementById('showcase-measure-root');
|
|
18
|
+
// Prefer the content wrapper when present — documentElement.scrollHeight
|
|
19
|
+
// often equals the iframe chrome and blocks shrinking short components.
|
|
20
|
+
let height;
|
|
21
|
+
if (measureRoot) {
|
|
22
|
+
height = Math.max(measureRoot.scrollHeight, measureRoot.offsetHeight, document.body?.scrollHeight ?? 0, document.body?.offsetHeight ?? 0);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
height = Math.max(document.body?.scrollHeight ?? 0, document.body?.offsetHeight ?? 0, document.documentElement.scrollHeight);
|
|
26
|
+
}
|
|
27
|
+
height = Math.max(120, Math.ceil(height + 8));
|
|
15
28
|
window.parent.postMessage({ type: 'showcase-iframe-height', height }, '*');
|
|
16
29
|
};
|
|
17
30
|
report();
|
|
31
|
+
// Second pass after layout/images settle.
|
|
32
|
+
const t1 = window.setTimeout(report, 100);
|
|
33
|
+
const t2 = window.setTimeout(report, 400);
|
|
18
34
|
const observer = new ResizeObserver(report);
|
|
35
|
+
const measureRoot = document.getElementById('showcase-measure-root');
|
|
36
|
+
if (measureRoot) {
|
|
37
|
+
observer.observe(measureRoot);
|
|
38
|
+
}
|
|
19
39
|
observer.observe(document.documentElement);
|
|
20
|
-
|
|
40
|
+
if (document.body) {
|
|
41
|
+
observer.observe(document.body);
|
|
42
|
+
}
|
|
43
|
+
return () => {
|
|
44
|
+
window.clearTimeout(t1);
|
|
45
|
+
window.clearTimeout(t2);
|
|
46
|
+
observer.disconnect();
|
|
47
|
+
};
|
|
21
48
|
}, []);
|
|
22
49
|
return null;
|
|
23
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeHeightReporter.js","sourceRoot":"","sources":["../../../src/showcase/components/IframeHeightReporter.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"IframeHeightReporter.js","sourceRoot":"","sources":["../../../src/showcase/components/IframeHeightReporter.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;YAErE,yEAAyE;YACzE,wEAAwE;YACxE,IAAI,MAAc,CAAC;YACnB,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,GAAG,IAAI,CAAC,GAAG,CACf,WAAW,CAAC,YAAY,EACxB,WAAW,CAAC,YAAY,EACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,EAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,CACjC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,CAAC,GAAG,CACf,QAAQ,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,EAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,EAChC,QAAQ,CAAC,eAAe,CAAC,YAAY,CACtC,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC,CAAC;QAEF,MAAM,EAAE,CAAC;QACT,0CAA0C;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QACrE,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACxB,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ShowcaseLayoutMode } from '../showcaseLayout';
|
|
1
2
|
import type { ShowcaseControlState } from '../types';
|
|
2
3
|
interface PreviewPanelProps {
|
|
3
4
|
type: string;
|
|
@@ -7,7 +8,11 @@ interface PreviewPanelProps {
|
|
|
7
8
|
basePath: string;
|
|
8
9
|
/** When true, add clean=true to URL and encode all controls (no diff). */
|
|
9
10
|
clean?: boolean;
|
|
11
|
+
componentShowcaseLayoutMap?: Record<string, ShowcaseLayoutMode>;
|
|
12
|
+
collectionShowcaseLayoutMap?: Record<string, ShowcaseLayoutMode>;
|
|
13
|
+
/** Showcase shell `?debug=true` — shows fixed-frame labels etc. */
|
|
14
|
+
debug?: boolean;
|
|
10
15
|
}
|
|
11
|
-
export declare const PreviewPanel: ({ type, mode, controls, mockDefaults, basePath, clean, }: PreviewPanelProps) => import("react").JSX.Element;
|
|
16
|
+
export declare const PreviewPanel: ({ type, mode, controls, mockDefaults, basePath, clean, componentShowcaseLayoutMap, collectionShowcaseLayoutMap, debug, }: PreviewPanelProps) => import("react").JSX.Element;
|
|
12
17
|
export {};
|
|
13
18
|
//# sourceMappingURL=PreviewPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewPanel.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/PreviewPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,YAAY,EAAE,oBAAoB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,eAAO,MAAM,YAAY,GAAI,
|
|
1
|
+
{"version":3,"file":"PreviewPanel.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/PreviewPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,YAAY,EAAE,oBAAoB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0BAA0B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChE,2BAA2B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACjE,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,eAAO,MAAM,YAAY,GAAI,0HAU1B,iBAAiB,gCA4EnB,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { resolveShowcaseLayout, SHOWCASE_LAYOUT_FIXED_HEIGHT, } from '../showcaseLayout';
|
|
4
5
|
import { ScaledIframe } from './ScaledIframe';
|
|
5
6
|
const VIEWPORT_MOBILE = { width: 375 };
|
|
6
7
|
const VIEWPORT_DESKTOP = { width: 1440 };
|
|
7
|
-
export const PreviewPanel = ({ type, mode, controls, mockDefaults, basePath, clean, }) => {
|
|
8
|
+
export const PreviewPanel = ({ type, mode, controls, mockDefaults, basePath, clean, componentShowcaseLayoutMap = {}, collectionShowcaseLayoutMap = {}, debug = false, }) => {
|
|
8
9
|
const containerRef = useRef(null);
|
|
9
10
|
const [containerWidth, setContainerWidth] = useState(0);
|
|
10
11
|
useEffect(() => {
|
|
@@ -20,6 +21,8 @@ export const PreviewPanel = ({ type, mode, controls, mockDefaults, basePath, cle
|
|
|
20
21
|
observer.observe(containerRef.current);
|
|
21
22
|
return () => observer.disconnect();
|
|
22
23
|
}, []);
|
|
24
|
+
const layout = resolveShowcaseLayout(type, mode, componentShowcaseLayoutMap, collectionShowcaseLayoutMap);
|
|
25
|
+
const fixedHeights = layout === 'document' ? null : SHOWCASE_LAYOUT_FIXED_HEIGHT[layout];
|
|
23
26
|
const buildUrl = () => {
|
|
24
27
|
const params = new URLSearchParams();
|
|
25
28
|
params.set('type', type);
|
|
@@ -42,9 +45,8 @@ export const PreviewPanel = ({ type, mode, controls, mockDefaults, basePath, cle
|
|
|
42
45
|
return `${renderPath}?${params.toString()}`;
|
|
43
46
|
};
|
|
44
47
|
const iframeUrl = buildUrl();
|
|
45
|
-
// Desktop gets roughly 2/3 of the space, Mobile gets 1/3
|
|
46
48
|
const mobileContainerWidth = containerWidth * 0.35;
|
|
47
49
|
const desktopContainerWidth = containerWidth * 0.65;
|
|
48
|
-
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 })] }));
|
|
50
|
+
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, fixedHeight: fixedHeights?.mobile, debug: debug }), _jsx(ScaledIframe, { src: iframeUrl, viewportWidth: VIEWPORT_DESKTOP.width, label: "Desktop", containerWidth: desktopContainerWidth, fixedHeight: fixedHeights?.desktop, debug: debug })] }));
|
|
49
51
|
};
|
|
50
52
|
//# 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;
|
|
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;AACpD,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAE7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgB9C,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,EAC3B,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,0BAA0B,GAAG,EAAE,EAC/B,2BAA2B,GAAG,EAAE,EAChC,KAAK,GAAG,KAAK,GACK,EAAE,EAAE;IACtB,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,MAAM,GAAG,qBAAqB,CAClC,IAAI,EACJ,IAAI,EACJ,0BAA0B,EAC1B,2BAA2B,CAC5B,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAEzF,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,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,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;gBAAE,OAAO;YAClD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,CAAC,YAAY,CAAC,GAAiC,CAAC,CAAC,EAAE,CAAC;gBAC3E,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,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,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,EACpC,WAAW,EAAE,YAAY,EAAE,MAAM,EACjC,KAAK,EAAE,KAAK,GACZ,EACF,KAAC,YAAY,IACX,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,gBAAgB,CAAC,KAAK,EACrC,KAAK,EAAC,SAAS,EACf,cAAc,EAAE,qBAAqB,EACrC,WAAW,EAAE,YAAY,EAAE,OAAO,EAClC,KAAK,EAAE,KAAK,GACZ,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
+
/** Hard cap so a single auto-height preview never becomes a multi-viewport tower. */
|
|
2
|
+
export declare const SHOWCASE_SINGLE_IFRAME_MAX_HEIGHT = 900;
|
|
1
3
|
interface ScaledIframeProps {
|
|
2
4
|
src: string;
|
|
3
5
|
viewportWidth: number;
|
|
4
6
|
/** Initial height used before the iframe reports its content height. */
|
|
5
7
|
initialHeight?: number;
|
|
8
|
+
/** Maximum accepted content height (px). Default SHOWCASE_SINGLE_IFRAME_MAX_HEIGHT. */
|
|
9
|
+
maxHeight?: number;
|
|
10
|
+
/**
|
|
11
|
+
* When set, use a fixed frame height and ignore content height reports
|
|
12
|
+
* (content scrolls inside the iframe). For `showcaseLayout: viewport|compact`.
|
|
13
|
+
*/
|
|
14
|
+
fixedHeight?: number;
|
|
6
15
|
label: string;
|
|
7
16
|
containerWidth: number;
|
|
17
|
+
/** When true (e.g. `?debug=true` on showcase), show fixed-frame chrome label. */
|
|
18
|
+
debug?: boolean;
|
|
8
19
|
}
|
|
9
|
-
export declare const ScaledIframe: ({ src, viewportWidth, initialHeight, label, containerWidth, }: ScaledIframeProps) => import("react").JSX.Element;
|
|
20
|
+
export declare const ScaledIframe: ({ src, viewportWidth, initialHeight, maxHeight, fixedHeight, label, containerWidth, debug, }: ScaledIframeProps) => import("react").JSX.Element;
|
|
10
21
|
export {};
|
|
11
22
|
//# sourceMappingURL=ScaledIframe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"ScaledIframe.d.ts","sourceRoot":"","sources":["../../../src/showcase/components/ScaledIframe.tsx"],"names":[],"mappings":"AAIA,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,GAAI,8FAS1B,iBAAiB,gCA8DnB,CAAC"}
|
|
@@ -1,31 +1,38 @@
|
|
|
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
|
-
|
|
4
|
+
/** Hard cap so a single auto-height preview never becomes a multi-viewport tower. */
|
|
5
|
+
export const SHOWCASE_SINGLE_IFRAME_MAX_HEIGHT = 900;
|
|
6
|
+
export const ScaledIframe = ({ src, viewportWidth, initialHeight = 400, maxHeight = SHOWCASE_SINGLE_IFRAME_MAX_HEIGHT, fixedHeight, label, containerWidth, debug = false, }) => {
|
|
5
7
|
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.
|
|
8
|
+
const [iframeHeight, setIframeHeight] = useState(fixedHeight ?? initialHeight);
|
|
10
9
|
useEffect(() => {
|
|
10
|
+
if (fixedHeight != null) {
|
|
11
|
+
setIframeHeight(fixedHeight);
|
|
12
|
+
}
|
|
13
|
+
}, [fixedHeight]);
|
|
14
|
+
// Listen for height reports unless fixed frame mode.
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (fixedHeight != null) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
11
19
|
const handler = (event) => {
|
|
12
20
|
if (event.data?.type === 'showcase-iframe-height' &&
|
|
13
21
|
iframeRef.current &&
|
|
14
22
|
event.source === iframeRef.current.contentWindow) {
|
|
15
|
-
|
|
23
|
+
const next = Math.min(Math.max(120, event.data.height), maxHeight);
|
|
24
|
+
setIframeHeight(next);
|
|
16
25
|
}
|
|
17
26
|
};
|
|
18
27
|
window.addEventListener('message', handler);
|
|
19
28
|
return () => window.removeEventListener('message', handler);
|
|
20
|
-
}, []);
|
|
21
|
-
|
|
22
|
-
const padding = 32; // 16px each side
|
|
29
|
+
}, [maxHeight, fixedHeight]);
|
|
30
|
+
const padding = 32;
|
|
23
31
|
const availableWidth = Math.max(containerWidth - padding, 100);
|
|
24
32
|
const scale = Math.min(availableWidth / viewportWidth, 1.0);
|
|
25
33
|
const scaledWidth = viewportWidth * scale;
|
|
26
|
-
// The outer box must reflect the visual (scaled) height so layout doesn't collapse.
|
|
27
34
|
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: {
|
|
35
|
+
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)", debug && fixedHeight != null ? ' · fixed frame' : ''] }), _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: {
|
|
29
36
|
width: viewportWidth,
|
|
30
37
|
height: iframeHeight,
|
|
31
38
|
transform: `scale(${scale})`,
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAEpD,qFAAqF;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAC;AAoBrD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,GAAG,EACH,aAAa,EACb,aAAa,GAAG,GAAG,EACnB,SAAS,GAAG,iCAAiC,EAC7C,WAAW,EACX,KAAK,EACL,cAAc,EACd,KAAK,GAAG,KAAK,GACK,EAAE,EAAE;IACtB,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;IAE/E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,qDAAqD;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,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,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,MAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC7E,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,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,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,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,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC;IAE1C,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAK,SAAS,EAAC,qEAAqE,aACjF,KAAK,QAAI,aAAa,SACtB,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IACjD,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"}
|