+
}
+ appearance="primary"
+ onClick={handleAddGroup}
+ >
+ Add Group
+
+
}
+ onClick={() => handleAddReport(null)}
+ >
+ Add Ungrouped Report
+
+
+
}
+ onClick={handleLoadConfig}
+ >
+ Load Config
+
+
}
+ onClick={handleSaveConfig}
+ >
+ Save Config
+
+
+
}
+ appearance="primary"
+ onClick={handleRunReports}
+ disabled={isRunning}
+ >
+ {isRunning ? 'Running...' : 'Run All Reports'}
+
+ {reportResults && (
+ <>
+
}
+ onClick={() => handleExportResults('yaml')}
+ >
+ Export YAML
+
+
}
+ onClick={() => handleExportResults('json')}
+ >
+ Export JSON
+
+
}
+ onClick={() => handleExportResults('csv')}
+ >
+ Export CSV
+
+ >
+ )}
+
+ {/* Report Groups */}
+ {config.reportGroups.map((group, groupIndex) => (
+
+
+
+
+ {group.name}
+ {group.reports.length} reports
+
+
+ }
+ onClick={() => handleMoveGroup(groupIndex, 'up')}
+ disabled={groupIndex === 0}
+ />
+ }
+ onClick={() => handleMoveGroup(groupIndex, 'down')}
+ disabled={groupIndex === config.reportGroups.length - 1}
+ />
+ }
+ onClick={() => handleAddReport(groupIndex)}
+ />
+ }
+ onClick={() => handleDeleteGroup(groupIndex)}
+ />
+
+
+
+ {/* Reports in group */}
+ {group.reports.map((report, reportIndex) => (
+
+
+
+
+ {report.name}
+
+ {report.severity}
+
+
+ {report.description && (
+
+ {report.description}
+
+ )}
+
+
+ }
+ onClick={() => handleMoveReport(groupIndex, reportIndex, 'up')}
+ disabled={reportIndex === 0}
+ />
+ }
+ onClick={() => handleMoveReport(groupIndex, reportIndex, 'down')}
+ disabled={reportIndex === group.reports.length - 1}
+ />
+ }
+ onClick={() => handleDuplicateReport(groupIndex, reportIndex)}
+ />
+
+ }
+ onClick={() => handleDeleteReport(groupIndex, reportIndex)}
+ />
+
+
+ ))}
+
+ ))}
+
+ {/* Ungrouped Reports */}
+ {config.ungroupedReports.length > 0 && (
+
+
+
+ Ungrouped Reports
+ {config.ungroupedReports.length} reports
+
+
+
+ {config.ungroupedReports.map((report, reportIndex) => (
+
+
+
+
+ {report.name}
+
+ {report.severity}
+
+
+ {report.description && (
+
+ {report.description}
+
+ )}
+
+
+ }
+ onClick={() => handleMoveReport(null, reportIndex, 'up')}
+ disabled={reportIndex === 0}
+ />
+ }
+ onClick={() => handleMoveReport(null, reportIndex, 'down')}
+ disabled={reportIndex === config.ungroupedReports.length - 1}
+ />
+ }
+ onClick={() => handleDuplicateReport(null, reportIndex)}
+ />
+
+ }
+ onClick={() => handleDeleteReport(null, reportIndex)}
+ />
+
+
+ ))}
+
+ )}
+
+ )}
+
+ {/* Edit Report Dialog */}
+ {editingReport && (
+