feat(shared): add UI components, hooks, form fields, and action utils
- Add UI components: confirm-delete-dialog, empty-table-row, list-pagination, pagination, status-badge - Add form-fields directory for reusable form field components - Add hooks: use-action-mutation, use-action-query for server action integration - Add action-utils lib for action state helpers - Update a11y components, charts, global-search, onboarding-gate, question components - Update UI components: chip-nav, filter-bar, page-header, stat-card, stat-item, switch, table - Update hooks: use-action-with-toast, use-aria-live, use-debounce, use-local-storage, use-media-query, use-permission - Update lib: a11y, ai, audit-logger, auth-guard, bcrypt-utils, change-logger, download, excel, file-storage, http-utils, login-logger, password-policy, password-security-service, permissions, rate-limit, role-utils, search-params, session, storage-provider - Update types: action-state, permissions - Update i18n messages (en, zh-CN) for dashboard, diagnostic, grades, lesson-preparation, settings
This commit is contained in:
@@ -34,9 +34,17 @@
|
||||
"chart": {
|
||||
"radarTitle": "Knowledge Point Mastery",
|
||||
"radarDescription": "Radar chart of mastery level (student vs class average)",
|
||||
"radarDescriptionNonEmpty": "Radar chart of mastery level (0-100) across knowledge points.",
|
||||
"heatmapTitle": "Knowledge Point Mastery Heatmap",
|
||||
"rankingTitle": "Knowledge Point Ranking",
|
||||
"noMasteryData": "No knowledge point mastery records found."
|
||||
"noMasteryData": "No knowledge point mastery records found.",
|
||||
"noMasteryDataForStudent": "No knowledge point mastery records found for this student.",
|
||||
"radarEmptyTitle": "No mastery data",
|
||||
"radarAriaLabelEmpty": "Knowledge point mastery radar chart: no data",
|
||||
"radarAriaLabelNonEmpty": "Knowledge point mastery radar chart: {count} knowledge points{withClassAverage}",
|
||||
"withClassAverage": " (with class average comparison)",
|
||||
"studentSeries": "Student",
|
||||
"classAvgSeries": "Class Avg"
|
||||
},
|
||||
"report": {
|
||||
"generate": "Generate Diagnostic Report",
|
||||
@@ -44,6 +52,7 @@
|
||||
"generateClass": "Generate Class Diagnostic Report",
|
||||
"publish": "Publish",
|
||||
"delete": "Delete",
|
||||
"export": "Export",
|
||||
"publishTitle": "Publish Report",
|
||||
"publishConfirmation": "Are you sure you want to publish this report? It will be visible to relevant users.",
|
||||
"deleteTitle": "Delete Report",
|
||||
@@ -82,6 +91,99 @@
|
||||
"publishFailed": "Failed to publish",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"loadFailed": "Failed to load",
|
||||
"exportFailed": "Export failed",
|
||||
"retry": "Retry"
|
||||
},
|
||||
"classDiagnostic": {
|
||||
"noClassDataTitle": "No class data",
|
||||
"heatmapDescription": "Average mastery level per knowledge point (green >=80%, yellow 60-79%, orange 40-59%, red <40%).",
|
||||
"noKnowledgePointData": "No knowledge point data available.",
|
||||
"heatmapAriaLabel": "Knowledge point mastery heatmap, {count} knowledge points. Color indicates mastery level: green >=80% excellent, yellow 60-79% good, orange 40-59% needs improvement, red <40% weak",
|
||||
"masteryLevelExcellent": "Excellent",
|
||||
"masteryLevelGood": "Good",
|
||||
"masteryLevelNeedsImprovement": "Needs Improvement",
|
||||
"masteryLevelWeak": "Weak",
|
||||
"legendLabel": "Color Legend",
|
||||
"noRankingData": "No data.",
|
||||
"knowledgePointColumn": "Knowledge Point",
|
||||
"avgMasteryColumn": "Avg Mastery",
|
||||
"masteredColumn": "Mastered (≥80%)",
|
||||
"notMasteredColumn": "Not Mastered (<60%)",
|
||||
"studentsNeedingAttentionTitle": "Students Needing Attention (avg <60%)",
|
||||
"studentsNeedingAttentionDescription": "Students with low overall mastery.",
|
||||
"allStudentsAboveThreshold": "All students are above the attention threshold.",
|
||||
"weakPointsColumn": "Weak Points",
|
||||
"viewAction": "View",
|
||||
"viewAriaLabel": "View {studentName}'s diagnostic details",
|
||||
"filterByKpTitle": "Filter Students by Knowledge Point",
|
||||
"filterByKpDescription": "Select a knowledge point to view all students' mastery levels for targeted tutoring.",
|
||||
"kpFilterLabel": "Select knowledge point",
|
||||
"kpFilterPlaceholder": "Select a knowledge point",
|
||||
"kpFilterAll": "All knowledge points",
|
||||
"filtering": "Filtering...",
|
||||
"totalQuestionsColumn": "Total Questions",
|
||||
"correctQuestionsColumn": "Correct",
|
||||
"statusColumn": "Status",
|
||||
"needsAttention": "Needs Attention",
|
||||
"mastered": "Mastered",
|
||||
"noStudentsForKp": "No mastery data available for this knowledge point.",
|
||||
"generateDescription": "Generate a class-level diagnostic report with aggregated analysis.",
|
||||
"periodLabel": "Period (YYYY-MM)",
|
||||
"generating": "Generating...",
|
||||
"generateButton": "Generate Class Report"
|
||||
},
|
||||
"reportList": {
|
||||
"caption": "Diagnostic reports list",
|
||||
"typeColumn": "Type",
|
||||
"studentTargetColumn": "Student / Target",
|
||||
"periodColumn": "Period",
|
||||
"scoreColumn": "Score",
|
||||
"statusColumn": "Status",
|
||||
"generatedByColumn": "Generated By",
|
||||
"dateColumn": "Date",
|
||||
"actionsColumn": "Actions",
|
||||
"classReportPlaceholder": "(Class report)",
|
||||
"gradeReportPlaceholder": "(Grade report)",
|
||||
"noReportsDescription": "Generate diagnostic reports to see them here.",
|
||||
"publishConfirmation": "Once published, the report will be visible to students. Continue?",
|
||||
"publishAriaLabel": "Publish report {studentName}",
|
||||
"deleteAriaLabel": "Delete report {studentName}",
|
||||
"exportAriaLabel": "Export report {studentName}",
|
||||
"exportSuccess": "Report exported",
|
||||
"share": "Share",
|
||||
"shareAriaLabel": "Share report {studentName}",
|
||||
"shareTitle": "Share Report",
|
||||
"shareDescription": "Copy the report link to share with students or parents.",
|
||||
"shareLinkLabel": "Report Link",
|
||||
"copyLink": "Copy Link",
|
||||
"copyLinkSuccess": "Link copied",
|
||||
"copyLinkFailed": "Failed to copy link",
|
||||
"shareLinkAriaLabel": "Report share link",
|
||||
"confidenceColumn": "Confidence",
|
||||
"confidenceHigh": "High",
|
||||
"confidenceMedium": "Medium",
|
||||
"confidenceLow": "Low",
|
||||
"confidenceInsufficient": "Insufficient Data",
|
||||
"confidenceHighHint": "Sufficient data, conclusions are reliable",
|
||||
"confidenceMediumHint": "Limited data, consider with other information",
|
||||
"confidenceLowHint": "Little data, conclusions are for reference only",
|
||||
"confidenceAriaLabel": "Data confidence: {level}"
|
||||
},
|
||||
"studentDiagnostic": {
|
||||
"noDataDescription": "Unable to load student mastery data.",
|
||||
"strengthsDescription": "Knowledge points with high mastery.",
|
||||
"weaknessesDescription": "Knowledge points needing attention.",
|
||||
"diagnosticReportTitle": "Diagnostic Report",
|
||||
"overallLabel": "Overall",
|
||||
"historyDescription": "Past diagnostic reports (newest first).",
|
||||
"untitledPeriod": "Untitled period",
|
||||
"strengthsListAriaLabel": "Strengths knowledge points list",
|
||||
"weaknessesListAriaLabel": "Weaknesses knowledge points list",
|
||||
"recommendationsListAriaLabel": "Recommendations list",
|
||||
"practiceAriaLabel": "Practice knowledge point: {name}",
|
||||
"noStrengths": "No strengths identified yet.",
|
||||
"noWeaknesses": "No weaknesses identified.",
|
||||
"reportMeta": "Period: {period} · Overall: {score}%",
|
||||
"historyReportMeta": "{date} · Overall: {score}%"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user