32 lines
2.2 KiB
JavaScript
32 lines
2.2 KiB
JavaScript
/** Project fixture for the colour-system e2e: an OLS-Digital-like dark header (#0f172a) with a logo box (#15202c) and a small page. */
|
|
const node = (name, props, parent, nodes = [], isCanvas = false) => ({
|
|
type: { resolvedName: name }, isCanvas, props, displayName: name, custom: {}, parent, hidden: false, nodes, linkedNodes: {},
|
|
});
|
|
const base = { anchorId: '', cssId: '', cssClass: '', animation: '', animationDelay: '0', hideOnDesktop: false, hideOnTablet: false, hideOnMobile: false };
|
|
const box = (id, style, aiName) => ({ style: { padding: '20px', minHeight: '60px', ...style }, tag: 'div', fullWidth: false, contentWidth: 'full', ...base, aiName, node_id: id });
|
|
|
|
export function buildProject() {
|
|
const header = {
|
|
ROOT: node('Container', box('hdr-root', { backgroundColor: '#0f172a' }, 'Header'), null, ['logo-box'], true),
|
|
'logo-box': node('Container', box('logo-box', { backgroundColor: '#15202c', minHeight: '50px' }, 'Logo box'), 'ROOT', [], true),
|
|
};
|
|
const page = {
|
|
ROOT: node('Container', box('page-root', {}, 'Root'), null, ['target-box', 'copy'], true),
|
|
// The element the brand colour is applied to.
|
|
'target-box': node('Container', box('target-box', { backgroundColor: '#ffffff', minHeight: '80px' }, 'Target box'), 'ROOT', [], true),
|
|
copy: node('TextBlock', { text: 'Hello colour system', html: '', style: { fontSize: '16px', color: '#111111' }, ...base, aiName: 'Copy', node_id: 'copy' }, 'ROOT'),
|
|
};
|
|
return {
|
|
site_id: 1, name: 'Colours', html: '', css: '', pages: [], header_html: '', footer_html: '', head_code: '',
|
|
craft_state: '', header_craft_state: JSON.stringify(header), footer_craft_state: '',
|
|
pages_craft_state: [{ id: 'home', name: 'Home', slug: 'index', craftState: JSON.stringify(page) }],
|
|
design: {
|
|
primaryColor: '#3b82f6', secondaryColor: '#8b5cf6', accentColor: '#10b981', headingFont: 'Inter, sans-serif', bodyFont: 'Inter, sans-serif',
|
|
linkColor: '#3b82f6', successColor: '#10b981', warningColor: '#f59e0b', errorColor: '#ef4444', backgroundColor: '#ffffff',
|
|
textColor: '#1f2937', mutedTextColor: '#6b7280', borderColor: '#e5e7eb', borderRadius: '8px', buttonFont: 'Inter, sans-serif',
|
|
buttonRadius: '8px', navStyle: 'light', headCode: '', favicon: '',
|
|
},
|
|
extras: {},
|
|
};
|
|
}
|