@se-studio/core-ui 1.0.45 → 1.0.47
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/ANALYTICS.md +136 -0
- package/CHANGELOG.md +466 -0
- package/CMS_INFRASTRUCTURE.md +335 -0
- package/CONSENT.md +121 -0
- package/README.md +13 -8
- package/dist/cmsRegistration.d.ts +152 -0
- package/dist/cmsRegistration.d.ts.map +1 -0
- package/dist/cmsRegistration.js +145 -0
- package/dist/cmsRegistration.js.map +1 -0
- package/dist/components/CmsCollection.d.ts +2 -1
- package/dist/components/CmsCollection.d.ts.map +1 -1
- package/dist/components/CmsCollection.js +1 -1
- package/dist/components/CmsCollection.js.map +1 -1
- package/dist/components/CmsComponent.d.ts +2 -1
- package/dist/components/CmsComponent.d.ts.map +1 -1
- package/dist/components/CmsComponent.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/showcase/components/AllViewPanel.d.ts +7 -0
- package/dist/showcase/components/AllViewPanel.d.ts.map +1 -0
- package/dist/showcase/components/AllViewPanel.js +35 -0
- package/dist/showcase/components/AllViewPanel.js.map +1 -0
- package/dist/showcase/components/Controls.d.ts +15 -0
- package/dist/showcase/components/Controls.d.ts.map +1 -0
- package/dist/showcase/components/Controls.js +74 -0
- package/dist/showcase/components/Controls.js.map +1 -0
- package/dist/showcase/components/ControlsWrapper.d.ts +13 -0
- package/dist/showcase/components/ControlsWrapper.d.ts.map +1 -0
- package/dist/showcase/components/ControlsWrapper.js +9 -0
- package/dist/showcase/components/ControlsWrapper.js.map +1 -0
- package/dist/showcase/components/PreviewPanel.d.ts +10 -0
- package/dist/showcase/components/PreviewPanel.d.ts.map +1 -0
- package/dist/showcase/components/PreviewPanel.js +42 -0
- package/dist/showcase/components/PreviewPanel.js.map +1 -0
- package/dist/showcase/components/ScaledIframe.d.ts +10 -0
- package/dist/showcase/components/ScaledIframe.d.ts.map +1 -0
- package/dist/showcase/components/ScaledIframe.js +16 -0
- package/dist/showcase/components/ScaledIframe.js.map +1 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.d.ts +19 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.d.ts.map +1 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.js +46 -0
- package/dist/showcase/components/ShowcaseAllRenderPage.js.map +1 -0
- package/dist/showcase/components/ShowcasePage.d.ts +15 -0
- package/dist/showcase/components/ShowcasePage.d.ts.map +1 -0
- package/dist/showcase/components/ShowcasePage.js +16 -0
- package/dist/showcase/components/ShowcasePage.js.map +1 -0
- package/dist/showcase/components/ShowcaseRenderPage.d.ts +19 -0
- package/dist/showcase/components/ShowcaseRenderPage.d.ts.map +1 -0
- package/dist/showcase/components/ShowcaseRenderPage.js +51 -0
- package/dist/showcase/components/ShowcaseRenderPage.js.map +1 -0
- package/dist/showcase/components/TopBar.d.ts +11 -0
- package/dist/showcase/components/TopBar.d.ts.map +1 -0
- package/dist/showcase/components/TopBar.js +103 -0
- package/dist/showcase/components/TopBar.js.map +1 -0
- package/dist/showcase/index.d.ts +12 -0
- package/dist/showcase/index.d.ts.map +1 -0
- package/dist/showcase/index.js +12 -0
- package/dist/showcase/index.js.map +1 -0
- package/dist/showcase/mockFactory.d.ts +34 -0
- package/dist/showcase/mockFactory.d.ts.map +1 -0
- package/dist/showcase/mockFactory.js +352 -0
- package/dist/showcase/mockFactory.js.map +1 -0
- package/dist/showcase/types.d.ts +20 -0
- package/dist/showcase/types.d.ts.map +1 -0
- package/dist/showcase/types.js +18 -0
- package/dist/showcase/types.js.map +1 -0
- package/dist/utils/buildPageMetadata.d.ts +20 -1
- package/dist/utils/buildPageMetadata.d.ts.map +1 -1
- package/dist/utils/buildPageMetadata.js +37 -0
- package/dist/utils/buildPageMetadata.js.map +1 -1
- package/dist/utils/componentUtils.d.ts +39 -146
- package/dist/utils/componentUtils.d.ts.map +1 -1
- package/dist/utils/componentUtils.js +142 -101
- package/dist/utils/componentUtils.js.map +1 -1
- package/dist/utils/urlUtils.d.ts +5 -0
- package/dist/utils/urlUtils.d.ts.map +1 -1
- package/dist/utils/urlUtils.js +10 -0
- package/dist/utils/urlUtils.js.map +1 -1
- package/package.json +9 -6
- package/src/showcase/README.md +131 -0
- package/dist/__tests__/setup.d.ts +0 -2
- package/dist/__tests__/setup.d.ts.map +0 -1
- package/dist/__tests__/setup.js +0 -2
- package/dist/__tests__/setup.js.map +0 -1
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import { BLOCKS, MARKS, } from '@contentful/rich-text-types';
|
|
2
|
+
import { DEFAULT_ALLOWED_UNUSED } from '../utils/UnusedChecker';
|
|
3
|
+
import { DEFAULT_SHOWCASE_CONTROL_STATE } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Parses inline marks (bold) from a text string.
|
|
6
|
+
* Returns an array of text nodes with appropriate marks.
|
|
7
|
+
*/
|
|
8
|
+
function parseInlineMarks(text) {
|
|
9
|
+
const parts = text.split(/(\*\*.*?\*\*)/g);
|
|
10
|
+
return parts
|
|
11
|
+
.filter((part) => part.length > 0)
|
|
12
|
+
.map((part) => {
|
|
13
|
+
if (part.startsWith('**') && part.endsWith('**')) {
|
|
14
|
+
return {
|
|
15
|
+
nodeType: 'text',
|
|
16
|
+
value: part.slice(2, -2),
|
|
17
|
+
marks: [{ type: MARKS.BOLD }],
|
|
18
|
+
data: {},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
nodeType: 'text',
|
|
23
|
+
value: part,
|
|
24
|
+
marks: [],
|
|
25
|
+
data: {},
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a valid Contentful Rich Text document from a string, supporting basic markdown:
|
|
31
|
+
* - Paragraphs (split by double newline)
|
|
32
|
+
* - Bold text (**text**)
|
|
33
|
+
* - Headings (# H1, ## H2, etc.)
|
|
34
|
+
* - Bullet lists (- item or * item)
|
|
35
|
+
*/
|
|
36
|
+
export function createRichTextFromMarkdown(text) {
|
|
37
|
+
if (!text) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const paragraphs = text.split(/\n\n+/);
|
|
41
|
+
const content = paragraphs.map((paragraphText) => {
|
|
42
|
+
// Check for bullet lists (lines starting with - or *)
|
|
43
|
+
const lines = paragraphText.split('\n');
|
|
44
|
+
const isUnorderedList = lines.every((line) => /^[-*]\s+/.test(line) || line.trim() === '');
|
|
45
|
+
if (isUnorderedList && lines.some((line) => /^[-*]\s+/.test(line))) {
|
|
46
|
+
const listItems = lines
|
|
47
|
+
.filter((line) => /^[-*]\s+/.test(line))
|
|
48
|
+
.map((line) => {
|
|
49
|
+
const itemText = line.replace(/^[-*]\s+/, '');
|
|
50
|
+
return {
|
|
51
|
+
nodeType: BLOCKS.LIST_ITEM,
|
|
52
|
+
data: {},
|
|
53
|
+
content: [
|
|
54
|
+
{
|
|
55
|
+
nodeType: BLOCKS.PARAGRAPH,
|
|
56
|
+
data: {},
|
|
57
|
+
content: parseInlineMarks(itemText),
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
nodeType: BLOCKS.UL_LIST,
|
|
64
|
+
data: {},
|
|
65
|
+
content: listItems,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// Check for headings
|
|
69
|
+
let nodeType = BLOCKS.PARAGRAPH;
|
|
70
|
+
let cleanText = paragraphText;
|
|
71
|
+
const headingMatch = paragraphText.match(/^(#{1,6})\s+(.+)/);
|
|
72
|
+
if (headingMatch?.[1] && headingMatch[2]) {
|
|
73
|
+
const level = headingMatch[1].length;
|
|
74
|
+
cleanText = headingMatch[2];
|
|
75
|
+
switch (level) {
|
|
76
|
+
case 1:
|
|
77
|
+
nodeType = BLOCKS.HEADING_1;
|
|
78
|
+
break;
|
|
79
|
+
case 2:
|
|
80
|
+
nodeType = BLOCKS.HEADING_2;
|
|
81
|
+
break;
|
|
82
|
+
case 3:
|
|
83
|
+
nodeType = BLOCKS.HEADING_3;
|
|
84
|
+
break;
|
|
85
|
+
case 4:
|
|
86
|
+
nodeType = BLOCKS.HEADING_4;
|
|
87
|
+
break;
|
|
88
|
+
case 5:
|
|
89
|
+
nodeType = BLOCKS.HEADING_5;
|
|
90
|
+
break;
|
|
91
|
+
case 6:
|
|
92
|
+
nodeType = BLOCKS.HEADING_6;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
nodeType,
|
|
98
|
+
data: {},
|
|
99
|
+
content: parseInlineMarks(cleanText),
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
const document = {
|
|
103
|
+
nodeType: BLOCKS.DOCUMENT,
|
|
104
|
+
data: {},
|
|
105
|
+
content: content,
|
|
106
|
+
};
|
|
107
|
+
return {
|
|
108
|
+
json: document,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Creates a valid Visual object
|
|
113
|
+
*/
|
|
114
|
+
export function createVisual(id, width, height) {
|
|
115
|
+
return {
|
|
116
|
+
type: 'Visual',
|
|
117
|
+
id: `visual-${id}`,
|
|
118
|
+
image: {
|
|
119
|
+
type: 'Picture',
|
|
120
|
+
id: `img-${id}`,
|
|
121
|
+
name: 'Sample Image',
|
|
122
|
+
mimeType: 'image/jpeg',
|
|
123
|
+
width,
|
|
124
|
+
height,
|
|
125
|
+
size: 1024,
|
|
126
|
+
src: `https://placehold.co/${width}x${height}`,
|
|
127
|
+
description: 'Sample placeholder image',
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Creates a Responsive Visual object
|
|
133
|
+
*/
|
|
134
|
+
export function createResponsiveVisual(showVisual, showMobile, customSize, width = 800, height = 600) {
|
|
135
|
+
if (!showVisual) {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
// Calculate mobile dimensions maintaining roughly the same aspect ratio, but max width 400
|
|
139
|
+
const aspectRatio = width / height;
|
|
140
|
+
const mobileWidth = 400;
|
|
141
|
+
const mobileHeight = Math.round(mobileWidth / aspectRatio);
|
|
142
|
+
return {
|
|
143
|
+
visual: createVisual('desktop', width, height),
|
|
144
|
+
mobileVisual: showMobile ? createVisual('mobile', mobileWidth, mobileHeight) : undefined,
|
|
145
|
+
hideVisual: false,
|
|
146
|
+
hideMobileVisual: !showMobile,
|
|
147
|
+
visualCustomSize: customSize > 0 ? customSize : null,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Creates sample links
|
|
152
|
+
*/
|
|
153
|
+
export function createLinks(count) {
|
|
154
|
+
return Array.from({ length: count }).map((_, i) => ({
|
|
155
|
+
type: 'Internal link',
|
|
156
|
+
internalType: 'Page',
|
|
157
|
+
id: `link-${i}`,
|
|
158
|
+
name: `Sample Link ${i + 1}`,
|
|
159
|
+
title: `Action ${i + 1}`,
|
|
160
|
+
text: `Action ${i + 1}`,
|
|
161
|
+
slug: 'sample-page',
|
|
162
|
+
href: '#',
|
|
163
|
+
variant: i === 0 ? 'Primary' : 'Secondary',
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
export function parseShowcaseControls(searchParams, defaultState = DEFAULT_SHOWCASE_CONTROL_STATE) {
|
|
167
|
+
const params = new URLSearchParams();
|
|
168
|
+
Object.entries(searchParams).forEach(([key, value]) => {
|
|
169
|
+
if (typeof value === 'string') {
|
|
170
|
+
params.set(key, value);
|
|
171
|
+
}
|
|
172
|
+
else if (Array.isArray(value) && value.length > 0 && value[0] !== undefined) {
|
|
173
|
+
params.set(key, value[0]);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
const getBool = (key) => {
|
|
177
|
+
const val = params.get(key);
|
|
178
|
+
return (val === null ? defaultState[key] : val === 'true');
|
|
179
|
+
};
|
|
180
|
+
const getStr = (key) => {
|
|
181
|
+
return (params.get(key) || defaultState[key]);
|
|
182
|
+
};
|
|
183
|
+
const getNum = (key) => {
|
|
184
|
+
const val = params.get(key);
|
|
185
|
+
return (val ? Number(val) : defaultState[key]);
|
|
186
|
+
};
|
|
187
|
+
return {
|
|
188
|
+
heading: getStr('heading'),
|
|
189
|
+
showHeading: getBool('showHeading'),
|
|
190
|
+
preHeading: getStr('preHeading'),
|
|
191
|
+
postHeading: getStr('postHeading'),
|
|
192
|
+
body: getStr('body'),
|
|
193
|
+
additionalCopy: getStr('additionalCopy'),
|
|
194
|
+
showVisual: getBool('showVisual'),
|
|
195
|
+
showMobileVisual: getBool('showMobileVisual'),
|
|
196
|
+
visualCustomSize: getNum('visualCustomSize'),
|
|
197
|
+
backgroundColour: getStr('backgroundColour'),
|
|
198
|
+
textColour: getStr('textColour'),
|
|
199
|
+
textSize: getStr('textSize'),
|
|
200
|
+
showLinks: getBool('showLinks'),
|
|
201
|
+
numberOfLinks: getNum('numberOfLinks'),
|
|
202
|
+
cmsLabel: getStr('cmsLabel'),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Creates a mock card item for a collection
|
|
207
|
+
*/
|
|
208
|
+
export function createMockCardContent(collectionType, index, controls, collectionCardFieldsMap, cardMockData) {
|
|
209
|
+
const cardId = `mock-card-${index}`;
|
|
210
|
+
const cardName = `Mock Card ${index + 1}`;
|
|
211
|
+
// Special handling for Media Carousel which expects Visuals
|
|
212
|
+
if (collectionType === 'Carousel: Media' || collectionType.includes('Media')) {
|
|
213
|
+
return createVisual(`media-${index}`, cardMockData?.visual?.width || 800, cardMockData?.visual?.height || 600);
|
|
214
|
+
}
|
|
215
|
+
// Extract visual dimensions from mock data if present
|
|
216
|
+
const visualDims = cardMockData?.visual;
|
|
217
|
+
const mockFields = cardMockData || {};
|
|
218
|
+
const getString = (key, defaultVal) => {
|
|
219
|
+
const val = mockFields[key];
|
|
220
|
+
return typeof val === 'string' ? val : defaultVal;
|
|
221
|
+
};
|
|
222
|
+
// Helper to get rich text from mock data (auto-converting markdown string)
|
|
223
|
+
const getRichText = (key, defaultVal) => {
|
|
224
|
+
const val = mockFields[key];
|
|
225
|
+
if (typeof val === 'string') {
|
|
226
|
+
return createRichTextFromMarkdown(val);
|
|
227
|
+
}
|
|
228
|
+
return createRichTextFromMarkdown(defaultVal);
|
|
229
|
+
};
|
|
230
|
+
const rawCard = {
|
|
231
|
+
id: cardId,
|
|
232
|
+
type: 'Component',
|
|
233
|
+
componentType: 'Generic',
|
|
234
|
+
name: cardName,
|
|
235
|
+
cmsLabel: cardName,
|
|
236
|
+
index,
|
|
237
|
+
isFirst: index === 0,
|
|
238
|
+
isLast: index === 3,
|
|
239
|
+
indexOfType: index,
|
|
240
|
+
preHeading: getString('preHeading', `Pre-heading ${index + 1}`),
|
|
241
|
+
heading: getString('heading', `Card Heading ${index + 1}`),
|
|
242
|
+
postHeading: getString('postHeading', `Post-heading ${index + 1}`),
|
|
243
|
+
body: getRichText('body', `This is the body content for mock card ${index + 1}.`),
|
|
244
|
+
additionalCopy: getRichText('additionalCopy', `Additional copy for card ${index + 1}.`),
|
|
245
|
+
// Spread other mock fields
|
|
246
|
+
...Object.fromEntries(Object.entries(mockFields)
|
|
247
|
+
.filter(([key]) => !['visual', 'preHeading', 'heading', 'postHeading', 'body', 'additionalCopy'].includes(key))
|
|
248
|
+
.map(([key, val]) => {
|
|
249
|
+
// If it's a string, pass it as is (could be string field OR markdown for unknown rich text field)
|
|
250
|
+
// We can't automatically know if custom fields are rich text or not without schema.
|
|
251
|
+
return [key, val];
|
|
252
|
+
})),
|
|
253
|
+
visual: createResponsiveVisual(controls.showVisual, controls.showMobileVisual, controls.visualCustomSize, visualDims?.width, visualDims?.height),
|
|
254
|
+
icon: createVisual(`icon-${index}`, 64, 64),
|
|
255
|
+
backgroundColour: controls.backgroundColour,
|
|
256
|
+
textColour: controls.textColour,
|
|
257
|
+
textSize: controls.textSize,
|
|
258
|
+
links: createLinks(1),
|
|
259
|
+
};
|
|
260
|
+
const usedFields = collectionCardFieldsMap[collectionType];
|
|
261
|
+
if (!usedFields) {
|
|
262
|
+
return rawCard;
|
|
263
|
+
}
|
|
264
|
+
// Filter fields to only include those that are used or allowed
|
|
265
|
+
const filteredCard = Object.fromEntries(Object.entries(rawCard).filter(([key]) => {
|
|
266
|
+
if (['id', 'type', 'componentType', 'name', 'cmsLabel', 'index'].includes(key)) {
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
if (usedFields.has(key)) {
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
if (DEFAULT_ALLOWED_UNUSED.has(key)) {
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
return false;
|
|
276
|
+
}));
|
|
277
|
+
return filteredCard;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Generates a mock component or collection based on the control state
|
|
281
|
+
*/
|
|
282
|
+
export function createMockShowcaseData(type, mode, controls, componentFieldsMap, collectionFieldsMap, collectionCardFieldsMap, componentMockMap = {}, collectionMockMap = {}, collectionCardMockMap = {}) {
|
|
283
|
+
// Determine used fields first so we can conditionally create contents
|
|
284
|
+
const usedFields = mode === 'component' ? componentFieldsMap[type] : collectionFieldsMap[type];
|
|
285
|
+
const mockData = mode === 'component' ? componentMockMap[type] : collectionMockMap[type];
|
|
286
|
+
const mockFields = mockData || {};
|
|
287
|
+
const visualDims = mockData?.visual;
|
|
288
|
+
const commonFields = {
|
|
289
|
+
id: 'mock-id',
|
|
290
|
+
name: controls.cmsLabel,
|
|
291
|
+
cmsLabel: controls.cmsLabel,
|
|
292
|
+
index: 0,
|
|
293
|
+
isFirst: true,
|
|
294
|
+
isLast: true,
|
|
295
|
+
indexOfType: 0,
|
|
296
|
+
// Prefer control state (which is merged with mock data in ShowcaseRenderPage),
|
|
297
|
+
// but here we are using the controls directly.
|
|
298
|
+
preHeading: controls.preHeading || null,
|
|
299
|
+
heading: controls.showHeading ? controls.heading : null,
|
|
300
|
+
postHeading: controls.postHeading || null,
|
|
301
|
+
// Rich Text - created from the control string (which was populated from mock data)
|
|
302
|
+
body: controls.body ? createRichTextFromMarkdown(controls.body) : null,
|
|
303
|
+
additionalCopy: controls.additionalCopy
|
|
304
|
+
? createRichTextFromMarkdown(controls.additionalCopy)
|
|
305
|
+
: null,
|
|
306
|
+
// Spread other mock fields that are NOT standard controls
|
|
307
|
+
// (Standard controls like heading/body are passed via `controls` object,
|
|
308
|
+
// so we don't need to spread them again, but we do need custom fields)
|
|
309
|
+
...Object.fromEntries(Object.entries(mockFields)
|
|
310
|
+
.filter(([key]) => !['visual', 'preHeading', 'heading', 'postHeading', 'body', 'additionalCopy'].includes(key))
|
|
311
|
+
.map(([key, val]) => [key, val])),
|
|
312
|
+
// Visuals
|
|
313
|
+
visual: createResponsiveVisual(controls.showVisual, controls.showMobileVisual, controls.visualCustomSize, visualDims?.width, visualDims?.height),
|
|
314
|
+
// Theme
|
|
315
|
+
backgroundColour: controls.backgroundColour,
|
|
316
|
+
textColour: controls.textColour,
|
|
317
|
+
textSize: controls.textSize,
|
|
318
|
+
// Links
|
|
319
|
+
links: controls.showLinks ? createLinks(controls.numberOfLinks) : [],
|
|
320
|
+
};
|
|
321
|
+
// Only create contents if the collection explicitly uses them
|
|
322
|
+
const collectionUsesContents = usedFields?.has('contents') ?? true;
|
|
323
|
+
const rawData = mode === 'component'
|
|
324
|
+
? {
|
|
325
|
+
...commonFields,
|
|
326
|
+
type: 'Component',
|
|
327
|
+
componentType: type,
|
|
328
|
+
}
|
|
329
|
+
: {
|
|
330
|
+
...commonFields,
|
|
331
|
+
type: 'Collection',
|
|
332
|
+
collectionType: type,
|
|
333
|
+
...(collectionUsesContents && {
|
|
334
|
+
contents: Array.from({ length: 4 }).map((_, i) => createMockCardContent(type, i, controls, collectionCardFieldsMap, collectionCardMockMap[type])),
|
|
335
|
+
}),
|
|
336
|
+
};
|
|
337
|
+
// Filter fields to only include those that are used or allowed
|
|
338
|
+
const filteredData = Object.fromEntries(Object.entries(rawData).filter(([key]) => {
|
|
339
|
+
if (['type', 'componentType', 'collectionType'].includes(key)) {
|
|
340
|
+
return true;
|
|
341
|
+
}
|
|
342
|
+
if (usedFields?.has(key)) {
|
|
343
|
+
return true;
|
|
344
|
+
}
|
|
345
|
+
if (DEFAULT_ALLOWED_UNUSED.has(key)) {
|
|
346
|
+
return true;
|
|
347
|
+
}
|
|
348
|
+
return false;
|
|
349
|
+
}));
|
|
350
|
+
return filteredData;
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=mockFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockFactory.js","sourceRoot":"","sources":["../../src/showcase/mockFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ShowcaseControlState<TColor = string, TGradient = string> {
|
|
2
|
+
heading: string;
|
|
3
|
+
showHeading: boolean;
|
|
4
|
+
preHeading: string;
|
|
5
|
+
postHeading: string;
|
|
6
|
+
body: string;
|
|
7
|
+
additionalCopy: string;
|
|
8
|
+
showVisual: boolean;
|
|
9
|
+
showMobileVisual: boolean;
|
|
10
|
+
visualCustomSize: number;
|
|
11
|
+
backgroundColour: TColor | TGradient;
|
|
12
|
+
textColour: TColor;
|
|
13
|
+
textSize: 'Large' | 'Medium' | 'Small';
|
|
14
|
+
showLinks: boolean;
|
|
15
|
+
numberOfLinks: number;
|
|
16
|
+
cmsLabel: string;
|
|
17
|
+
}
|
|
18
|
+
export type ShowcaseMode = 'component' | 'collection';
|
|
19
|
+
export declare const DEFAULT_SHOWCASE_CONTROL_STATE: ShowcaseControlState;
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/showcase/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM;IAEvE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAGvC,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAGtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAEtD,eAAO,MAAM,8BAA8B,EAAE,oBAgB5C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const DEFAULT_SHOWCASE_CONTROL_STATE = {
|
|
2
|
+
heading: 'Sample Heading',
|
|
3
|
+
showHeading: true,
|
|
4
|
+
preHeading: 'Pre-heading',
|
|
5
|
+
postHeading: '',
|
|
6
|
+
body: 'This is a sample body text to demonstrate the component layout and typography. You can edit this text in the controls.',
|
|
7
|
+
additionalCopy: '',
|
|
8
|
+
showVisual: true,
|
|
9
|
+
showMobileVisual: false,
|
|
10
|
+
visualCustomSize: 0,
|
|
11
|
+
backgroundColour: 'White',
|
|
12
|
+
textColour: 'Primary Blue',
|
|
13
|
+
textSize: 'Medium',
|
|
14
|
+
showLinks: true,
|
|
15
|
+
numberOfLinks: 1,
|
|
16
|
+
cmsLabel: 'Showcase Component',
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/showcase/types.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,8BAA8B,GAAyB;IAClE,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,wHAAwH;IAC9H,cAAc,EAAE,EAAE;IAClB,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,OAAO;IACzB,UAAU,EAAE,cAAc;IAC1B,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,CAAC;IAChB,QAAQ,EAAE,oBAAoB;CAC/B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IBaseModel } from '@se-studio/core-data-types';
|
|
1
|
+
import type { IBaseArticle, IBaseArticleType, IBaseCustomType, IBaseModel, IBaseTag } from '@se-studio/core-data-types';
|
|
2
2
|
import type { Metadata, ResolvingMetadata } from 'next';
|
|
3
3
|
/**
|
|
4
4
|
* Configuration for building page metadata.
|
|
@@ -57,4 +57,23 @@ export interface IBuildInformation {
|
|
|
57
57
|
* ```
|
|
58
58
|
*/
|
|
59
59
|
export declare function buildPageMetadata(model: Pick<IBaseModel, 'title' | 'description' | 'featuredImage' | 'indexed'>, path: string, { baseUrl, isProduction, customerName, applicationName }: IBuildInformation, _parent: ResolvingMetadata): Metadata;
|
|
60
|
+
/**
|
|
61
|
+
* Utility function to calculate title and description for various content types.
|
|
62
|
+
*
|
|
63
|
+
* This provides a standard way to generate SEO text for resource index pages,
|
|
64
|
+
* topic pages, and individual articles. Projects can use this in their
|
|
65
|
+
* metadata generation logic.
|
|
66
|
+
*
|
|
67
|
+
* @param params - Objects representing the context (article, tag, articleType, customType)
|
|
68
|
+
* @returns Object with title and description strings
|
|
69
|
+
*/
|
|
70
|
+
export declare function calculateTitleAndDescription({ articleType, customType, tag, article, }: {
|
|
71
|
+
articleType?: IBaseArticleType;
|
|
72
|
+
customType?: IBaseCustomType;
|
|
73
|
+
tag?: IBaseTag;
|
|
74
|
+
article?: IBaseArticle;
|
|
75
|
+
}): {
|
|
76
|
+
title: string;
|
|
77
|
+
description: string;
|
|
78
|
+
};
|
|
60
79
|
//# sourceMappingURL=buildPageMetadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPageMetadata.d.ts","sourceRoot":"","sources":["../../src/utils/buildPageMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"buildPageMetadata.d.ts","sourceRoot":"","sources":["../../src/utils/buildPageMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,QAAQ,EACT,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,YAAY,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,aAAa,EAAE,OAAO,CAAC;IACvB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,CAAC,EAC9E,IAAI,EAAE,MAAM,EACZ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAC3E,OAAO,EAAE,iBAAiB,GACzB,QAAQ,CA8CV;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,WAAW,EACX,UAAU,EACV,GAAG,EACH,OAAO,GACR,EAAE;IACD,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;;;EA0BA"}
|
|
@@ -79,4 +79,41 @@ export function buildPageMetadata(model, path, { baseUrl, isProduction, customer
|
|
|
79
79
|
};
|
|
80
80
|
return result;
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Utility function to calculate title and description for various content types.
|
|
84
|
+
*
|
|
85
|
+
* This provides a standard way to generate SEO text for resource index pages,
|
|
86
|
+
* topic pages, and individual articles. Projects can use this in their
|
|
87
|
+
* metadata generation logic.
|
|
88
|
+
*
|
|
89
|
+
* @param params - Objects representing the context (article, tag, articleType, customType)
|
|
90
|
+
* @returns Object with title and description strings
|
|
91
|
+
*/
|
|
92
|
+
export function calculateTitleAndDescription({ articleType, customType, tag, article, }) {
|
|
93
|
+
if (article) {
|
|
94
|
+
return { title: article.title, description: article.description };
|
|
95
|
+
}
|
|
96
|
+
if (tag && articleType) {
|
|
97
|
+
return {
|
|
98
|
+
title: `${tag.title}`,
|
|
99
|
+
description: `Browse the latest ${articleType.name.toLowerCase()} resources related to ${tag.name.toLowerCase()}.`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (tag && customType) {
|
|
103
|
+
return {
|
|
104
|
+
title: `${tag.title}`,
|
|
105
|
+
description: `Browse the latest ${customType.name.toLowerCase()} resources related to ${tag.name.toLowerCase()}.`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
if (tag) {
|
|
109
|
+
return { title: tag.title, description: tag.description };
|
|
110
|
+
}
|
|
111
|
+
if (articleType) {
|
|
112
|
+
return { title: articleType.title, description: articleType.description };
|
|
113
|
+
}
|
|
114
|
+
if (customType) {
|
|
115
|
+
return { title: customType.title, description: customType.description };
|
|
116
|
+
}
|
|
117
|
+
return { title: '', description: '' };
|
|
118
|
+
}
|
|
82
119
|
//# sourceMappingURL=buildPageMetadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPageMetadata.js","sourceRoot":"","sources":["../../src/utils/buildPageMetadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildPageMetadata.js","sourceRoot":"","sources":["../../src/utils/buildPageMetadata.ts"],"names":[],"mappings":"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"}
|