upgrading to next 15, react 18

This commit is contained in:
Khalim Conn-Kowlessar 2025-08-05 18:45:01 +00:00
parent 6c08d547b8
commit 85d6274e87
8 changed files with 5178 additions and 3336 deletions

View file

@ -10,7 +10,7 @@ RUN apt update && apt install -y --no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
# Create the user and grant sudo privileges
RUN useradd -m -s /usr/bin/bash ${USER} \
RUN useradd -m -s /bin/bash ${USER} \
&& echo "${USER} ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/${USER} \
&& chmod 0440 /etc/sudoers.d/${USER}

View file

@ -8,7 +8,7 @@ services:
dockerfile: .devcontainer/Dockerfile
command: sleep infinity
ports:
- "3000:50000"
- "3000:3000"
volumes:
- ..:/workspaces/assessment-model
networks:

View file

@ -1,108 +0,0 @@
NEXTAUTH_SECRET=df425f28-06ab-47c2-bb78-7e604387d463
NEXTAUTH_URL=http://localhost
GOOGLE_CLIENT_ID=232063354367-ustovlgtk3cmtvohvd6tdlejnj1qjjj0.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=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
EPC_AUTH_TOKEN=a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=
AZURE_AD_B2C_TENANT_NAME=DomnaApp
AZURE_AD_B2C_CLIENT_ID=f0a1f977-ddc4-4037-b129-a310008ee934
AZURE_AD_B2C_CLIENT_SECRET=6uh8Q~dmZNqQy3ZxM_Ce33fVSeW24K27R~pYYduD
AZURE_AD_B2C_PRIMARY_USER_FLOW=B2C_1_signupsignin
AZURE_AD_CLIENT_ID=069e75ee-ba54-45ff-ba77-a06f29c0e21c
AZURE_AD_CLIENT_SECRET=x6D8Q~f2roqrnoP1YuomSGN5CvU0HPtIWqqPPaYW
AZURE_AD_TENANT_ID=4a85e8bb-8b7f-4bbd-adc2-1448bb6a9810
DB_HOST=terraform-20230705170609686900000001.cdgzupxvdyp0.eu-west-2.rds.amazonaws.com
DB_PORT=5432
DB_NAME=DevAssessmentModelDB
DB_USERNAME=DevAddessmentModelDB
DB_PASSWORD=!}-A=3D%(2Awy[Qx
URL=http://localhost:3000
PRSIGN_AWS_ACCESS_KEY=AKIAU5A36PPNMR2G7ZQO
PRESIGN_AWS_SECRET_KEY=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
RETOFIT_PLAN_INPUT_BUCKET_NAME=retrofit-plan-inputs-dev
PRESIGN_AWS_REGION=eu-west-2
DUE_CONSIDERATIONS_BUCKET=retrofit-due-considerations-dev
DUE_CONSIDERATIONS_AWS_ACCESS_KEY=AKIAU5A36PPNPNFWLJOY
DUE_CONSIDERATIONS_AWS_SECRET_KEY=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
DUE_CONSIDERATIONS_AWS_REGION=eu-west-2
ECO_SPREADSHEET_BUCKET=retrofit-eco-spreadsheet-dev
ECO_SPREADSHEET_AWS_ACCESS_KEY=AKIAU5A36PPNPTFDQGOJ
ECO_SPREADSHEET_AWS_SECRET_KEY=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
ECO_SPREADSHEET_AWS_REGION=eu-west-2
RETROFIT_ENERGY_ASSESSMENTS_BUCKET=retrofit-energy-assessments-dev
RETROFIT_ENERGY_ASSESSMENTS_AWS_ACCESS_KEY=AKIAU5A36PPNJMZZ3KRW
ENERGY_ASSESSMENTS_AWS_SECRET=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
FASTAPI_API_KEY=4QPwbB6hEdUloDVtbBJCUTfGBdBgWwpeavWQ7t5Z
FASTAPI_API_URL=https://api.dev.hestia.homes
DUE_CONSIDERATIONS_API_URL=https://api.dev.hestia.homes
ECO_SPREADSHEET_API_URL=https://api.dev.hestia.homes
DOCUMENTS_DATABASE_URL=postgresql://postgres:makingwarmhomes@terraform-20250331175522503500000002.cdgzupxvdyp0.eu-west-2.rds.amazonaws.com:5432/surveyDB
DOCUMENTS_DB_HOST=terraform-20250331175522503500000002.cdgzupxvdyp0.eu-west-2.rds.amazonaws.com
DOCUMENTS_DB_PORT=5432
DOCUMENTS_DB_NAME=surveyDB
DOCUMENTS_DB_USERNAME=postgres
DOCUMENTS_DB_PASSWORD=makingwarmhomes

1
.gitignore vendored
View file

@ -28,6 +28,7 @@ yarn-error.log*
# local env files
.env*.local
cypress.env.json
.env*.development
# vercel
.vercel

8235
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -14,8 +14,7 @@
"create_user": "tsx src/app/db/create_user.ts"
},
"dependencies": {
"@headlessui-float/react": "^0.11.2",
"@headlessui/react": "^1.7.14",
"@headlessui/react": "^2.2.7",
"@heroicons/react": "^2.0.18",
"@hookform/resolvers": "^3.9.1",
"@radix-ui/react-checkbox": "^1.0.4",
@ -26,7 +25,7 @@
"@radix-ui/react-navigation-menu": "^1.1.3",
"@radix-ui/react-select": "^1.2.2",
"@radix-ui/react-separator": "^1.0.3",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-toast": "^1.2.2",
"@radix-ui/react-tooltip": "^1.0.7",
"@remixicon/react": "^4.2.0",
@ -34,8 +33,8 @@
"@tanstack/react-table": "^8.9.3",
"@tremor/react": "^3.16.0",
"@types/node": "20.2.3",
"@types/react": "18.2.7",
"@types/react-dom": "18.2.4",
"@types/react": "18.3.1",
"@types/react-dom": "18.3.1",
"@vercel/speed-insights": "^1.2.0",
"autoprefixer": "10.4.14",
"aws-sdk": "^2.1415.0",
@ -53,21 +52,22 @@
"next-themes": "^0.3.0",
"pg": "^8.11.1",
"postcss": "^8.5.6",
"react": "18.2.0",
"react-dom": "18.2.0",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-hook-form": "^7.53.2",
"tailwind-merge": "^1.13.2",
"tailwindcss": "^3.4.3",
"tailwindcss-animate": "^1.0.6",
"tsx": "^4.20.3",
"typescript": "5.0.4",
"xlsx": "^0.18.5",
"zod": "^3.23.8"
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.7",
"@testing-library/cypress": "^10.0.3",
"@types/pg": "^8.10.2",
"cypress": "^14.5.2",
"cypress": "^14.5.3",
"cypress-social-logins": "^1.14.1",
"dotenv": "^16.3.1",
"start-server-and-test": "^2.0.0"

View file

@ -2,90 +2,72 @@
@tailwind components;
@tailwind utilities;
/* 🌞 Light Theme (raw HSL values) */
:root {
--foreground-rgb: 0, 0, 0;
--background-start-rgb: 214, 219, 220;
--background-end-rgb: 255, 255, 255;
--background: 0 0% 100%;
--foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 47.4% 11.2%;
--card: 0 0% 100%;
--card-foreground: 222.2 47.4% 11.2%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 100% 50%;
--destructive-foreground: 210 40% 98%;
--ring: 215 20.2% 65.1%;
--radius: 0.5rem;
}
@media (prefers-color-scheme: dark) {
:root {
--foreground-rgb: 255, 255, 255;
--background-start-rgb: 0, 0, 0;
--background-end-rgb: 0, 0, 0;
}
}
/* 🌚 Dark Theme (raw HSL values) */
.dark {
--background: 224 71% 4%;
--foreground: 213 31% 91%;
body {
color: rgb(var(--foreground-rgb));
}
--muted: 223 47% 11%;
--muted-foreground: 215.4 16.3% 56.9%;
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 47.4% 11.2%;
--popover: 224 71% 4%;
--popover-foreground: 215 20.2% 65.1%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--card: 224 71% 4%;
--card-foreground: 213 31% 91%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 47.4% 11.2%;
--border: 216 34% 17%;
--input: 216 34% 17%;
--card: 0 0% 100%;
--card-foreground: 222.2 47.4% 11.2%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 1.2%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--secondary: 222.2 47.4% 11.2%;
--secondary-foreground: 210 40% 98%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--accent: 216 34% 17%;
--accent-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--destructive: 0 63% 31%;
--destructive-foreground: 210 40% 98%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--ring: 216 34% 17%;
--destructive: 0 100% 50%;
--destructive-foreground: 210 40% 98%;
--ring: 215 20.2% 65.1%;
--radius: 0.5rem;
}
.dark {
--background: 224 71% 4%;
--foreground: 213 31% 91%;
--muted: 223 47% 11%;
--muted-foreground: 215.4 16.3% 56.9%;
--popover: 224 71% 4%;
--popover-foreground: 215 20.2% 65.1%;
--card: 224 71% 4%;
--card-foreground: 213 31% 91%;
--border: 216 34% 17%;
--input: 216 34% 17%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 1.2%;
--secondary: 222.2 47.4% 11.2%;
--secondary-foreground: 210 40% 98%;
--accent: 216 34% 17%;
--accent-foreground: 210 40% 98%;
--destructive: 0 63% 31%;
--destructive-foreground: 210 40% 98%;
--ring: 216 34% 17%;
--radius: 0.5rem;
}
--radius: 0.5rem;
}
@layer base {
@ -98,7 +80,30 @@ body {
}
}
/* These styles are for the loading spinner on the due considerations page*/
/* 🎨 Tailwind-aware theme tokens */
@theme inline {
--color-background: hsl(var(--background));
--color-foreground: hsl(var(--foreground));
--color-muted: hsl(var(--muted));
--color-muted-foreground: hsl(var(--muted-foreground));
--color-popover: hsl(var(--popover));
--color-popover-foreground: hsl(var(--popover-foreground));
--color-card: hsl(var(--card));
--color-card-foreground: hsl(var(--card-foreground));
--color-border: hsl(var(--border));
--color-input: hsl(var(--input));
--color-primary: hsl(var(--primary));
--color-primary-foreground: hsl(var(--primary-foreground));
--color-secondary: hsl(var(--secondary));
--color-secondary-foreground: hsl(var(--secondary-foreground));
--color-accent: hsl(var(--accent));
--color-accent-foreground: hsl(var(--accent-foreground));
--color-destructive: hsl(var(--destructive));
--color-destructive-foreground: hsl(var(--destructive-foreground));
--color-ring: hsl(var(--ring));
}
/* 🔄 Spinner animation */
@keyframes spin {
0% {
transform: rotate(0deg);

View file

@ -268,7 +268,6 @@ module.exports = {
});
});
},
require("@headlessui/tailwindcss"),
require("@tailwindcss/forms"),
],
};