feat: permanent calendar with editable day modal and per-subject bar chart

- Calendar moved out of List/Group tab toggle — always visible below cross-
  subject analytics (ExperimentAnalysisCharts)
- Day modal shows all subjects: existing data as read-only + Edit button,
  missing data as + Add button; both open DailyStatusForm inline
- Status changes/creates propagate up to parent via onStatusChange/onStatusCreate
  and calendar counts recompute locally (no extra API round-trip)
- Bar chart (recharts) at bottom: Total/Success/Failure bars per subject plus
  % complete text, grouped by subject name
- Tests updated: 17 ExperimentCalendar tests, 76 total passing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Experiments DB Dev
2026-04-23 11:30:26 -04:00
parent 755caca09e
commit 4a048fda88
2 changed files with 116 additions and 142 deletions
+8 -4
View File
@@ -12,11 +12,11 @@
},
"dependencies": {
"axios": "^1.7.2",
"recharts": "^2.12.7",
"date-fns": "^3.6.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.24.0"
"react-router-dom": "^6.24.0",
"recharts": "^2.15.4"
},
"devDependencies": {
"@babel/core": "^7.24.7",
@@ -38,8 +38,12 @@
},
"jest": {
"testEnvironment": "jsdom",
"setupFilesAfterEnv": ["<rootDir>/tests/setup.js"],
"testMatch": ["**/tests/**/*.test.{js,jsx}"],
"setupFilesAfterEnv": [
"<rootDir>/tests/setup.js"
],
"testMatch": [
"**/tests/**/*.test.{js,jsx}"
],
"transform": {
"^.+\\.[jt]sx?$": "babel-jest"
},