/** * 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

Extract from Figma URL: figma.com/file/FILE_KEY/...

Add Figma File
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
Add ESRE Definition
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.

`}
`; };