mirror of
https://dev.azure.com/globalhealthx/EMR/_git/helix-engage-server
synced 2026-04-11 18:08:16 +00:00
feat: theme config service — REST API with versioning + backup
- ThemeService: read/write/validate theme.json, auto-backup on save - ThemeController: GET/PUT/POST /api/config/theme (public GET, versioned PUT) - ThemeConfig type with version + updatedAt fields - Default theme: Global Hospital blue scale - ConfigThemeModule registered in AppModule Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
79
src/config/theme.defaults.ts
Normal file
79
src/config/theme.defaults.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
export type ThemeConfig = {
|
||||
version?: number;
|
||||
updatedAt?: string;
|
||||
brand: {
|
||||
name: string;
|
||||
hospitalName: string;
|
||||
logo: string;
|
||||
favicon: string;
|
||||
};
|
||||
colors: {
|
||||
brand: Record<string, string>;
|
||||
};
|
||||
typography: {
|
||||
body: string;
|
||||
display: string;
|
||||
};
|
||||
login: {
|
||||
title: string;
|
||||
subtitle: string;
|
||||
showGoogleSignIn: boolean;
|
||||
showForgotPassword: boolean;
|
||||
poweredBy: { label: string; url: string };
|
||||
};
|
||||
sidebar: {
|
||||
title: string;
|
||||
subtitle: string;
|
||||
};
|
||||
ai: {
|
||||
quickActions: Array<{ label: string; prompt: string }>;
|
||||
};
|
||||
};
|
||||
|
||||
export const DEFAULT_THEME: ThemeConfig = {
|
||||
brand: {
|
||||
name: 'Helix Engage',
|
||||
hospitalName: 'Global Hospital',
|
||||
logo: '/helix-logo.png',
|
||||
favicon: '/favicon.ico',
|
||||
},
|
||||
colors: {
|
||||
brand: {
|
||||
'25': 'rgb(239 246 255)',
|
||||
'50': 'rgb(219 234 254)',
|
||||
'100': 'rgb(191 219 254)',
|
||||
'200': 'rgb(147 197 253)',
|
||||
'300': 'rgb(96 165 250)',
|
||||
'400': 'rgb(59 130 246)',
|
||||
'500': 'rgb(37 99 235)',
|
||||
'600': 'rgb(29 78 216)',
|
||||
'700': 'rgb(30 64 175)',
|
||||
'800': 'rgb(30 58 138)',
|
||||
'900': 'rgb(23 37 84)',
|
||||
'950': 'rgb(15 23 42)',
|
||||
},
|
||||
},
|
||||
typography: {
|
||||
body: "'Satoshi', var(--font-inter, 'Inter'), -apple-system, 'Segoe UI', Roboto, Arial, sans-serif",
|
||||
display: "'General Sans', var(--font-inter, 'Inter'), -apple-system, 'Segoe UI', Roboto, Arial, sans-serif",
|
||||
},
|
||||
login: {
|
||||
title: 'Sign in to Helix Engage',
|
||||
subtitle: 'Global Hospital',
|
||||
showGoogleSignIn: true,
|
||||
showForgotPassword: true,
|
||||
poweredBy: { label: 'Powered by F0rty2.ai', url: 'https://f0rty2.ai' },
|
||||
},
|
||||
sidebar: {
|
||||
title: 'Helix Engage',
|
||||
subtitle: 'Global Hospital \u00b7 {role}',
|
||||
},
|
||||
ai: {
|
||||
quickActions: [
|
||||
{ label: 'Doctor availability', prompt: 'What doctors are available and what are their visiting hours?' },
|
||||
{ label: 'Clinic timings', prompt: 'What are the clinic locations and timings?' },
|
||||
{ label: 'Patient history', prompt: "Can you summarize this patient's history?" },
|
||||
{ label: 'Treatment packages', prompt: 'What treatment packages are available?' },
|
||||
],
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user