/**
* Team-Specific Dashboard Templates
*
* Each team (UI, UX, QA) gets a tailored dashboard with relevant metrics and actions
*/
export const UITeamDashboard = (health, stats, discovery, activity, projectName = 'Default Project', dashboardData = {}, projectId = null, app = null) => {
const uiData = dashboardData.ui || { token_drift: { total: 0, by_severity: {} }, code_metrics: {} };
const tokenDrift = uiData.token_drift || { total: 0, by_severity: {} };
return `
Components
${stats.components?.total || discovery.files?.components || 0}
Token Drift Issues
${tokenDrift.total || 0}
Critical Issues
${tokenDrift.by_severity?.critical || 0}
Warnings
${tokenDrift.by_severity?.warning || 0}
Figma Tools
Extract and sync from Figma
๐จ Extract Tokens from Figma
๐ฆ Extract Components
๐ Sync Tokens to File
Component Generation
Generate code from designs
โก Generate Component Code
๐ Generate Storybook Stories
๐จ Generate Storybook Theme
Recent Syncs
${activity.length > 0 ? `
${activity.slice(0, 5).map(item => `
${item.message}
${new Date(item.timestamp).toLocaleTimeString()}
`).join('')}
` : 'No recent activity
'}
`;
};
export const UXTeamDashboard = (health, stats, discovery, activity, projectName = 'Default Project', dashboardData = {}, projectId = null, app = null) => {
const uxData = dashboardData.ux || { figma_files_count: 0, figma_files: [] };
const figmaFiles = uxData.figma_files || [];
return `
Figma Files
${uxData.figma_files_count || 0}
Synced Files
${figmaFiles.filter(f => f.sync_status === 'success').length}
Pending Sync
${figmaFiles.filter(f => f.sync_status === 'pending').length}
Design Tokens
${stats.tokens?.total || 0}
โ Add Figma File
Configure Figma files for this project
Figma Files (${figmaFiles.length})
Manage Figma files for this project
${figmaFiles.length === 0 ? `
No Figma files configured yet. Add your first file above! ๐
` : `
${figmaFiles.map(file => {
const statusColors = {
pending: 'text-muted',
syncing: 'text-warning',
success: 'text-success',
error: 'text-destructive'
};
const statusIcons = {
pending: 'โณ',
syncing: '๐',
success: 'โ',
error: 'โ'
};
return `
${statusIcons[file.sync_status] || '๐'}
${file.file_name}
Key: ${file.file_key}
Status: ${file.sync_status || 'pending'}
${file.last_synced ? `ยท Last synced: ${new Date(file.last_synced).toLocaleString()}` : ''}
๐ Sync
๐๏ธ
`;
}).join('')}
`}
`;
};
export const QATeamDashboard = (health, stats, discovery, activity, projectName = 'Default Project', dashboardData = {}, projectId = null, app = null) => {
const healthScore = discovery.health?.score || 0;
const healthGrade = discovery.health?.grade || '-';
const qaData = dashboardData.qa || { esre_count: 0, test_summary: {} };
return `
Health Score
${healthScore}% (${healthGrade})
ESRE Definitions
${qaData.esre_count || 0}
Tests Run
${qaData.test_summary?.total_tests || 0}
Tests Passed
${qaData.test_summary?.passed_tests || 0}
Quality Analysis
Find issues and improvements
โก Get Quick Wins
๐ Find Unused Styles
๐ Find Inline Styles
Validation
Check compliance and quality
โ
Validate Components
๐ Analyze React Components
๐ฏ Check Story Coverage
โ Add ESRE Definition
Define Expected State Requirements for components
ESRE Definitions (${qaData.esre_count || 0})
Expected State Requirements for testing
${qaData.esre_count === 0 ? `
No ESRE definitions yet. Add your first definition above! ๐
` : `
Use the API to list ESRE definitions for this project.
`}
`;
};