diff --git a/findd/dowork/__pycache__/__init__.cpython-39.pyc b/findd/dowork/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..768aecec
Binary files /dev/null and b/findd/dowork/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd/dowork/__pycache__/admin.cpython-39.pyc b/findd/dowork/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 00000000..3445273b
Binary files /dev/null and b/findd/dowork/__pycache__/admin.cpython-39.pyc differ
diff --git a/findd/dowork/__pycache__/apps.cpython-39.pyc b/findd/dowork/__pycache__/apps.cpython-39.pyc
new file mode 100644
index 00000000..c09a5a1a
Binary files /dev/null and b/findd/dowork/__pycache__/apps.cpython-39.pyc differ
diff --git a/findd/dowork/__pycache__/models.cpython-39.pyc b/findd/dowork/__pycache__/models.cpython-39.pyc
new file mode 100644
index 00000000..7137f67b
Binary files /dev/null and b/findd/dowork/__pycache__/models.cpython-39.pyc differ
diff --git a/findd/dowork/__pycache__/urls.cpython-39.pyc b/findd/dowork/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 00000000..9053c8d3
Binary files /dev/null and b/findd/dowork/__pycache__/urls.cpython-39.pyc differ
diff --git a/findd/dowork/__pycache__/views.cpython-39.pyc b/findd/dowork/__pycache__/views.cpython-39.pyc
new file mode 100644
index 00000000..6008a37a
Binary files /dev/null and b/findd/dowork/__pycache__/views.cpython-39.pyc differ
diff --git a/findd/dowork/migrations/__pycache__/__init__.cpython-39.pyc b/findd/dowork/migrations/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..5d75d47b
Binary files /dev/null and b/findd/dowork/migrations/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd/findd/__pycache__/__init__.cpython-39.pyc b/findd/findd/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..9f6006b7
Binary files /dev/null and b/findd/findd/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd/findd/__pycache__/settings.cpython-39.pyc b/findd/findd/__pycache__/settings.cpython-39.pyc
new file mode 100644
index 00000000..711f0fc0
Binary files /dev/null and b/findd/findd/__pycache__/settings.cpython-39.pyc differ
diff --git a/findd/findd/__pycache__/urls.cpython-39.pyc b/findd/findd/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 00000000..a3087da5
Binary files /dev/null and b/findd/findd/__pycache__/urls.cpython-39.pyc differ
diff --git a/findd/findd/__pycache__/views.cpython-39.pyc b/findd/findd/__pycache__/views.cpython-39.pyc
new file mode 100644
index 00000000..563d3b38
Binary files /dev/null and b/findd/findd/__pycache__/views.cpython-39.pyc differ
diff --git a/findd/findd/settings.py b/findd/findd/settings.py
index f8c668db..919b2478 100644
--- a/findd/findd/settings.py
+++ b/findd/findd/settings.py
@@ -82,7 +82,7 @@
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "findd",
- "PASSWORD": "yourpassword",
+ "PASSWORD": "Sakshi@2001",
"USER": "root",
"HOST": "localhost",
}
diff --git a/findd/frontend/FINDD/package-lock.json b/findd/frontend/FINDD/package-lock.json
index 641f1f8f..3741be88 100644
--- a/findd/frontend/FINDD/package-lock.json
+++ b/findd/frontend/FINDD/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.0.0",
"dependencies": {
"firebase": "^11.3.1",
- "framer-motion": "^12.4.7",
+ "framer-motion": "^12.5.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.2.0",
@@ -3290,13 +3290,13 @@
}
},
"node_modules/framer-motion": {
- "version": "12.4.7",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.7.tgz",
- "integrity": "sha512-VhrcbtcAMXfxlrjeHPpWVu2+mkcoR31e02aNSR7OUS/hZAciKa8q6o3YN2mA1h+jjscRsSyKvX6E1CiY/7OLMw==",
+ "version": "12.5.0",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.5.0.tgz",
+ "integrity": "sha512-buPlioFbH9/W7rDzYh1C09AuZHAk2D1xTA1BlounJ2Rb9aRg84OXexP0GLd+R83v0khURdMX7b5MKnGTaSg5iA==",
"license": "MIT",
"dependencies": {
- "motion-dom": "^12.4.5",
- "motion-utils": "^12.0.0",
+ "motion-dom": "^12.5.0",
+ "motion-utils": "^12.5.0",
"tslib": "^2.4.0"
},
"peerDependencies": {
@@ -4260,18 +4260,18 @@
}
},
"node_modules/motion-dom": {
- "version": "12.4.5",
- "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.4.5.tgz",
- "integrity": "sha512-Q2xmhuyYug1CGTo0jdsL05EQ4RhIYXlggFS/yPhQQRNzbrhjKQ1tbjThx5Plv68aX31LsUQRq4uIkuDxdO5vRQ==",
+ "version": "12.5.0",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.5.0.tgz",
+ "integrity": "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ==",
"license": "MIT",
"dependencies": {
- "motion-utils": "^12.0.0"
+ "motion-utils": "^12.5.0"
}
},
"node_modules/motion-utils": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz",
- "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==",
+ "version": "12.5.0",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.5.0.tgz",
+ "integrity": "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA==",
"license": "MIT"
},
"node_modules/ms": {
diff --git a/findd/frontend/FINDD/package.json b/findd/frontend/FINDD/package.json
index 200d2198..56ac401a 100644
--- a/findd/frontend/FINDD/package.json
+++ b/findd/frontend/FINDD/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"firebase": "^11.3.1",
- "framer-motion": "^12.4.7",
+ "framer-motion": "^12.5.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.2.0",
diff --git a/findd/frontend/FINDD/src/pages/Jobs.css b/findd/frontend/FINDD/src/pages/Jobs.css
index d15b534a..9356b391 100644
--- a/findd/frontend/FINDD/src/pages/Jobs.css
+++ b/findd/frontend/FINDD/src/pages/Jobs.css
@@ -17,7 +17,7 @@
.job-box {
width: 1278px;
height: 1200px;
- background: #fdbf62;
+ background: #f0f0dd;
border-radius: 10px;
padding: 20px;
padding-top: 220px;
@@ -31,8 +31,18 @@
font-family: Arial, sans-serif;
font-size: 18px;
margin-top: 700px;
+ transition: transform 0.3s ease-in-out;
}
+.job-box.left {
+ transform: translateX(-100%) rotate(-10deg);
+ opacity: 0;
+}
+
+.job-box.right {
+ transform: translateX(100%) rotate(10deg);
+ opacity: 0;
+}
.job-header {
text-align: center;
padding: 20px 0;
@@ -73,7 +83,7 @@
width: 1278px;
max-height: 1200px;
overflow-y: auto;
- background: #fdbf62;
+ background: #f5d00328;
border-radius: 10px;
padding: 15px;
/* margin-top: 10px; */
@@ -165,33 +175,45 @@
display: flex;
align-items: center;
justify-content: center;
- margin-top: 62px;
+ margin-top: 93px;
+ /* border: 2px solid #222; */
+ border-radius: 1rem;
}
.divider {
margin-top: 150px; /* Increased margin to push it further down */
margin-bottom: 20px;
+ height: 5px;
}
.job-box {
- width: 100vw;
- height: calc(100vh - 60px);
- max-height: calc(100vh - 60px);
- font-size: 16px;
+ width: 97.5vw;
+ /* height: calc(100vh - 60px); */
+ /* max-height: calc(100vh - 60px); */
+ font-size: 26px;
padding: 15px;
+ padding-top: 130px;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
+ color: black;
+ border: 2px solid #555;
+ border-radius: 8px;
}
.applied-job-popup {
font-size: 12px;
}
.job-description-container {
- width: 90vw;
- max-height: 180px; /* Slightly increased for better readability */
+ width: 85vw;
+ height: auto;
+ min-height: 150px;
+ max-height: 60vh; /* Slightly increased for better readability */
overflow-y: auto;
- padding: 10px;
+ /* padding: 10px; */
+ border: 2px solid #888;
+ border-radius: 6px;
+ margin: 10px ;
}
}
diff --git a/findd/frontend/FINDD/src/pages/Jobs.jsx b/findd/frontend/FINDD/src/pages/Jobs.jsx
index 5f6a197a..202b6828 100644
--- a/findd/frontend/FINDD/src/pages/Jobs.jsx
+++ b/findd/frontend/FINDD/src/pages/Jobs.jsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from "react";
+import React, { useState, useEffect, useRef } from "react";
import "./Jobs.css";
const jobsData = [
@@ -37,7 +37,7 @@ const jobsData = [
},
{
id: 4,
- title: "Cybersecurity Expert",
+ title: "Security expert",
company: "Tesla",
description: "Secure networks, prevent cyber attacks, and analyze threats.",
location: "Austin, TX",
@@ -48,7 +48,6 @@ const jobsData = [
}
];
-
const JobsPage = () => {
const [jobs, setJobs] = useState(jobsData);
const [currentJobIndex, setCurrentJobIndex] = useState(0);
@@ -56,6 +55,8 @@ const JobsPage = () => {
const [startX, setStartX] = useState(null);
const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);
const [showDescription, setShowDescription] = useState(false);
+ const [swipeDirection, setSwipeDirection] = useState(""); // 🔹 Track swipe animation
+ const jobBoxRef = useRef(null);
// Detect screen size change
useEffect(() => {
@@ -72,14 +73,22 @@ const JobsPage = () => {
setRecentlyApplied(jobs[currentJobIndex]);
setTimeout(() => setRecentlyApplied(null), 500);
}
- handleNext();
+ setSwipeDirection("right"); // 🔹 Trigger right swipe animation
+ setTimeout(() => {
+ handleNext();
+ setSwipeDirection(""); // Reset animation class
+ }, 300);
};
// Function to move to the next job
const handleNext = () => {
if (currentJobIndex < jobs.length - 1) {
- setCurrentJobIndex(currentJobIndex + 1);
- setShowDescription(false); // Reset description visibility when switching jobs
+ setSwipeDirection("left"); // 🔹 Trigger left swipe animation
+ setTimeout(() => {
+ setCurrentJobIndex(currentJobIndex + 1);
+ setSwipeDirection(""); // Reset animation class
+ setShowDescription(false);
+ }, 300);
}
};
@@ -106,8 +115,22 @@ const JobsPage = () => {
// Swipe events for mobile
const handleTouchStart = (e) => {
if (!isMobile) return;
+
+ const jobBox = jobBoxRef.current;
+ const divider = document.querySelector(".divider");
+
+ if (!jobBox || !divider) return;
+
+ // Get the Y position of the divider relative to the viewport
+ const dividerRect = divider.getBoundingClientRect();
+ const touchY = e.touches[0].clientY; // Get the Y position of the touch event
+
+ // If touch starts below the divider, disable swipe
+ if (touchY > dividerRect.bottom) return;
+
setStartX(e.touches[0].clientX);
};
+
const handleTouchEnd = (e) => {
if (!isMobile || !startX) return;
@@ -138,53 +161,48 @@ const JobsPage = () => {
)}
-
- {jobs[currentJobIndex] ? (
- <>
- {/* 🔹 Job Title & Company Section */}
-
-
{jobs[currentJobIndex].title}
-
{jobs[currentJobIndex].company}
+
+ {jobs[currentJobIndex] ? (
+ <>
+ {/* 🔹 Job Title & Company Section */}
+
+
{jobs[currentJobIndex].title}
+
{jobs[currentJobIndex].company}
+
+
+ {/* 🔹 Black Divider */}
+
+
+ {/* 🔹 Job Description Section */}
+
+
Title of Job:
+
{jobs[currentJobIndex].title}
+
+
Job Description:
+
{jobs[currentJobIndex].description}
+
+
Location:
+
{jobs[currentJobIndex].location}
+
+
Years of Experience Required:
+
{jobs[currentJobIndex].experience}
+
+
Salary:
+
{jobs[currentJobIndex].salary}
+
+
Mode of Job:
+
{jobs[currentJobIndex].mode}
+
+
Time Duration of Job:
+
{jobs[currentJobIndex].duration}
+
+ >
+ ) : (
+
No more jobs available
+ )}
-
- {/* 🔹 Black Divider */}
-
-
- {/* 🔹 Job Description Section */}
-
-
Title of Job:
-
{jobs[currentJobIndex].title}
-
-
Job Description:
-
{jobs[currentJobIndex].description}
-
-
Location:
-
{jobs[currentJobIndex].location}
-
-
Years of Experience Required:
-
{jobs[currentJobIndex].experience}
-
-
Salary:
-
{jobs[currentJobIndex].salary}
-
-
Mode of Job:
-
{jobs[currentJobIndex].mode}
-
-
Time Duration of Job:
-
{jobs[currentJobIndex].duration}
-
-
- >
- ) : (
-
No more jobs available
- )}
-
-
);
};
export default JobsPage;
-
-
-
diff --git a/findd/frontend/FINDD/src/pages/Login.css b/findd/frontend/FINDD/src/pages/Login.css
index 5c291742..b7374cbe 100644
--- a/findd/frontend/FINDD/src/pages/Login.css
+++ b/findd/frontend/FINDD/src/pages/Login.css
@@ -23,10 +23,11 @@
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
- width: 100%;
+ width: 95%;
max-width: 400px;
/* margin-top: -250px; */
gap: 10px;
+ padding-left: 20px;
}
.login-container label {
@@ -43,6 +44,8 @@
border: 1px solid #ccc;
border-radius: 5px;
font-size: 14px;
+ background-color: white;
+ color: black;
}
.login-container button {
@@ -61,4 +64,10 @@
.login-container button:hover {
background-color: #1a252f;
}
-
\ No newline at end of file
+
+ @media (max-width: 600px) {
+ .login-container {
+ width: 115%;
+ padding: 20px;
+ }
+}
diff --git a/findd/frontend/FINDD/src/pages/RecruiterForm.css b/findd/frontend/FINDD/src/pages/RecruiterForm.css
index ce246089..c9a4e607 100644
--- a/findd/frontend/FINDD/src/pages/RecruiterForm.css
+++ b/findd/frontend/FINDD/src/pages/RecruiterForm.css
@@ -42,9 +42,12 @@
width: 100%;
padding: 10px;
margin-bottom: 15px;
+ padding-left: 1px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 14px;
+ background-color: white;
+ color: black;
}
/* Buttons */
@@ -85,10 +88,12 @@
margin-top: 10px;
text-align: center;
font-size: 14px;
+ padding-right: 100px;
+ color: black;
}
.login-link a {
- color: #2c3e50;
+ color: #3491ee;
font-weight: bold;
text-decoration: none;
}
@@ -118,7 +123,7 @@
/* Responsive Design */
@media (max-width: 600px) {
.recruiter-form-container form {
- width: 90%;
+ width: 85%;
padding: 20px;
}
diff --git a/findd/frontend/FINDD/vite.config.js b/findd/frontend/FINDD/vite.config.js
index 7fc5d9cb..f075fa1d 100644
--- a/findd/frontend/FINDD/vite.config.js
+++ b/findd/frontend/FINDD/vite.config.js
@@ -5,12 +5,12 @@ import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
// base: '/static/frontend/dev/',
- // server: {
- // cors: {
- // // the origin you will be accessing via browser
- // origin: 'http://my-backend.example.com',
- // },
- // },
+ server: {
+ host: '0.0.0.0', // Allows access from other devices
+ port: 5173, // Default Vite port, change if needed
+ strictPort: true, // Ensures the port does not change
+ cors: true, // Allows cross-origin requests if needed
+ },
build: {
// generate .vite/manifest.json in outDir
manifest: true,
diff --git a/findd/frontend/__pycache__/__init__.cpython-39.pyc b/findd/frontend/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..bfd22dde
Binary files /dev/null and b/findd/frontend/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd/frontend/__pycache__/admin.cpython-39.pyc b/findd/frontend/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 00000000..d9cd3978
Binary files /dev/null and b/findd/frontend/__pycache__/admin.cpython-39.pyc differ
diff --git a/findd/frontend/__pycache__/apps.cpython-39.pyc b/findd/frontend/__pycache__/apps.cpython-39.pyc
new file mode 100644
index 00000000..a2739623
Binary files /dev/null and b/findd/frontend/__pycache__/apps.cpython-39.pyc differ
diff --git a/findd/frontend/__pycache__/models.cpython-39.pyc b/findd/frontend/__pycache__/models.cpython-39.pyc
new file mode 100644
index 00000000..a3dbc384
Binary files /dev/null and b/findd/frontend/__pycache__/models.cpython-39.pyc differ
diff --git a/findd/frontend/__pycache__/urls.cpython-39.pyc b/findd/frontend/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 00000000..97e54d60
Binary files /dev/null and b/findd/frontend/__pycache__/urls.cpython-39.pyc differ
diff --git a/findd/frontend/__pycache__/views.cpython-39.pyc b/findd/frontend/__pycache__/views.cpython-39.pyc
new file mode 100644
index 00000000..7b88a2dd
Binary files /dev/null and b/findd/frontend/__pycache__/views.cpython-39.pyc differ
diff --git a/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc b/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..8d28ef20
Binary files /dev/null and b/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd/getwork/__pycache__/__init__.cpython-39.pyc b/findd/getwork/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..7946f9b0
Binary files /dev/null and b/findd/getwork/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd/getwork/__pycache__/urls.cpython-39.pyc b/findd/getwork/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 00000000..8f5b7e6c
Binary files /dev/null and b/findd/getwork/__pycache__/urls.cpython-39.pyc differ
diff --git a/findd/getwork/__pycache__/views.cpython-39.pyc b/findd/getwork/__pycache__/views.cpython-39.pyc
new file mode 100644
index 00000000..eb08f100
Binary files /dev/null and b/findd/getwork/__pycache__/views.cpython-39.pyc differ
diff --git a/findd/home/__pycache__/__init__.cpython-39.pyc b/findd/home/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..b90c3f0c
Binary files /dev/null and b/findd/home/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd/home/__pycache__/admin.cpython-39.pyc b/findd/home/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 00000000..7eac7312
Binary files /dev/null and b/findd/home/__pycache__/admin.cpython-39.pyc differ
diff --git a/findd/home/__pycache__/apps.cpython-39.pyc b/findd/home/__pycache__/apps.cpython-39.pyc
new file mode 100644
index 00000000..4111602f
Binary files /dev/null and b/findd/home/__pycache__/apps.cpython-39.pyc differ
diff --git a/findd/home/__pycache__/models.cpython-39.pyc b/findd/home/__pycache__/models.cpython-39.pyc
new file mode 100644
index 00000000..5a6be344
Binary files /dev/null and b/findd/home/__pycache__/models.cpython-39.pyc differ
diff --git a/findd/home/__pycache__/urls.cpython-39.pyc b/findd/home/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 00000000..cb3f0d8b
Binary files /dev/null and b/findd/home/__pycache__/urls.cpython-39.pyc differ
diff --git a/findd/home/__pycache__/views.cpython-39.pyc b/findd/home/__pycache__/views.cpython-39.pyc
new file mode 100644
index 00000000..00a8c885
Binary files /dev/null and b/findd/home/__pycache__/views.cpython-39.pyc differ
diff --git a/findd/home/migrations/__pycache__/__init__.cpython-39.pyc b/findd/home/migrations/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..7c0942c1
Binary files /dev/null and b/findd/home/migrations/__pycache__/__init__.cpython-39.pyc differ
diff --git a/findd_frontend/FINDD/package-lock.json b/findd_frontend/FINDD/package-lock.json
index 641f1f8f..bcb38201 100644
--- a/findd_frontend/FINDD/package-lock.json
+++ b/findd_frontend/FINDD/package-lock.json
@@ -25,7 +25,7 @@
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.18",
"globals": "^15.14.0",
- "vite": "^6.1.0"
+ "vite": "^6.2.2"
}
},
"node_modules/@ampproject/remapping": {
@@ -325,9 +325,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz",
- "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
+ "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
"cpu": [
"ppc64"
],
@@ -342,9 +342,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz",
- "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
+ "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
"cpu": [
"arm"
],
@@ -359,9 +359,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz",
- "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
+ "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
"cpu": [
"arm64"
],
@@ -376,9 +376,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz",
- "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
+ "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
"cpu": [
"x64"
],
@@ -393,9 +393,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz",
- "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
+ "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
"cpu": [
"arm64"
],
@@ -410,9 +410,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz",
- "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
+ "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
"cpu": [
"x64"
],
@@ -427,9 +427,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz",
- "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
"cpu": [
"arm64"
],
@@ -444,9 +444,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz",
- "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
+ "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
"cpu": [
"x64"
],
@@ -461,9 +461,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz",
- "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
+ "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
"cpu": [
"arm"
],
@@ -478,9 +478,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz",
- "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
+ "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
"cpu": [
"arm64"
],
@@ -495,9 +495,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz",
- "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
+ "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
"cpu": [
"ia32"
],
@@ -512,9 +512,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz",
- "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
+ "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
"cpu": [
"loong64"
],
@@ -529,9 +529,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz",
- "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
+ "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
"cpu": [
"mips64el"
],
@@ -546,9 +546,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz",
- "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
+ "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
"cpu": [
"ppc64"
],
@@ -563,9 +563,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz",
- "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
+ "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
"cpu": [
"riscv64"
],
@@ -580,9 +580,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz",
- "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
+ "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
"cpu": [
"s390x"
],
@@ -597,9 +597,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz",
- "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
+ "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
"cpu": [
"x64"
],
@@ -614,9 +614,9 @@
}
},
"node_modules/@esbuild/netbsd-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz",
- "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
"cpu": [
"arm64"
],
@@ -631,9 +631,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz",
- "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
"cpu": [
"x64"
],
@@ -648,9 +648,9 @@
}
},
"node_modules/@esbuild/openbsd-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz",
- "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
"cpu": [
"arm64"
],
@@ -665,9 +665,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz",
- "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
"cpu": [
"x64"
],
@@ -682,9 +682,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz",
- "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
+ "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
"cpu": [
"x64"
],
@@ -699,9 +699,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz",
- "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
+ "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
"cpu": [
"arm64"
],
@@ -716,9 +716,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz",
- "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
+ "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
"cpu": [
"ia32"
],
@@ -733,9 +733,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz",
- "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
+ "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
"cpu": [
"x64"
],
@@ -2881,9 +2881,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz",
- "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==",
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
+ "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -2894,31 +2894,31 @@
"node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.24.2",
- "@esbuild/android-arm": "0.24.2",
- "@esbuild/android-arm64": "0.24.2",
- "@esbuild/android-x64": "0.24.2",
- "@esbuild/darwin-arm64": "0.24.2",
- "@esbuild/darwin-x64": "0.24.2",
- "@esbuild/freebsd-arm64": "0.24.2",
- "@esbuild/freebsd-x64": "0.24.2",
- "@esbuild/linux-arm": "0.24.2",
- "@esbuild/linux-arm64": "0.24.2",
- "@esbuild/linux-ia32": "0.24.2",
- "@esbuild/linux-loong64": "0.24.2",
- "@esbuild/linux-mips64el": "0.24.2",
- "@esbuild/linux-ppc64": "0.24.2",
- "@esbuild/linux-riscv64": "0.24.2",
- "@esbuild/linux-s390x": "0.24.2",
- "@esbuild/linux-x64": "0.24.2",
- "@esbuild/netbsd-arm64": "0.24.2",
- "@esbuild/netbsd-x64": "0.24.2",
- "@esbuild/openbsd-arm64": "0.24.2",
- "@esbuild/openbsd-x64": "0.24.2",
- "@esbuild/sunos-x64": "0.24.2",
- "@esbuild/win32-arm64": "0.24.2",
- "@esbuild/win32-ia32": "0.24.2",
- "@esbuild/win32-x64": "0.24.2"
+ "@esbuild/aix-ppc64": "0.25.1",
+ "@esbuild/android-arm": "0.25.1",
+ "@esbuild/android-arm64": "0.25.1",
+ "@esbuild/android-x64": "0.25.1",
+ "@esbuild/darwin-arm64": "0.25.1",
+ "@esbuild/darwin-x64": "0.25.1",
+ "@esbuild/freebsd-arm64": "0.25.1",
+ "@esbuild/freebsd-x64": "0.25.1",
+ "@esbuild/linux-arm": "0.25.1",
+ "@esbuild/linux-arm64": "0.25.1",
+ "@esbuild/linux-ia32": "0.25.1",
+ "@esbuild/linux-loong64": "0.25.1",
+ "@esbuild/linux-mips64el": "0.25.1",
+ "@esbuild/linux-ppc64": "0.25.1",
+ "@esbuild/linux-riscv64": "0.25.1",
+ "@esbuild/linux-s390x": "0.25.1",
+ "@esbuild/linux-x64": "0.25.1",
+ "@esbuild/netbsd-arm64": "0.25.1",
+ "@esbuild/netbsd-x64": "0.25.1",
+ "@esbuild/openbsd-arm64": "0.25.1",
+ "@esbuild/openbsd-x64": "0.25.1",
+ "@esbuild/sunos-x64": "0.25.1",
+ "@esbuild/win32-arm64": "0.25.1",
+ "@esbuild/win32-ia32": "0.25.1",
+ "@esbuild/win32-x64": "0.25.1"
}
},
"node_modules/escalade": {
@@ -5445,14 +5445,14 @@
}
},
"node_modules/vite": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.1.tgz",
- "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.2.tgz",
+ "integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "^0.24.2",
- "postcss": "^8.5.2",
+ "esbuild": "^0.25.0",
+ "postcss": "^8.5.3",
"rollup": "^4.30.1"
},
"bin": {
diff --git a/findd_frontend/FINDD/package.json b/findd_frontend/FINDD/package.json
index 200d2198..40788426 100644
--- a/findd_frontend/FINDD/package.json
+++ b/findd_frontend/FINDD/package.json
@@ -28,6 +28,6 @@
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.18",
"globals": "^15.14.0",
- "vite": "^6.1.0"
+ "vite": "^6.2.2"
}
}
diff --git a/findd_frontend/FINDD/src/pages/Jobs.css b/findd_frontend/FINDD/src/pages/Jobs.css
index c0ec8bd3..d15b534a 100644
--- a/findd_frontend/FINDD/src/pages/Jobs.css
+++ b/findd_frontend/FINDD/src/pages/Jobs.css
@@ -10,30 +10,46 @@
background-color: white;
padding-left: 6px;
padding-right: 5px;
+ margin-top: 65px;
}
/* Centered Job Box */
.job-box {
- width: 1290px;
- height: 640px;
+ width: 1278px;
+ height: 1200px;
background: #fdbf62;
border-radius: 10px;
padding: 20px;
+ padding-top: 220px;
text-align: center;
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
justify-content: center;
+ align-items: center;
position: relative;
font-family: Arial, sans-serif;
font-size: 18px;
- margin-top: 35px;
+ margin-top: 700px;
+}
+
+.job-header {
+ text-align: center;
+ padding: 20px 0;
+}
+
+.divider {
+ width: 100%;
+ height: 2px;
+ background-color: black;
+ margin-top: 190px;
+ margin-bottom: 50px;
}
/* Applied Job Notification */
.applied-job-popup {
position: absolute;
- top: 20px;
+ top: 100px;
left: 50%;
transform: translateX(-50%);
background: green;
@@ -43,106 +59,49 @@
font-size: 16px;
animation: fadeOut 2s;
z-index: 10;
- display: none;
- /* margin-top: 100px; */
+ display: block;
+ transition: opacity 0.2s ease-in-out;
+ opacity: 0;
}
@keyframes fadeOut {
0% { opacity: 1; }
- 100% { opacity: 0; }
-}
-
-/* More Details Clickable Text */
-.more-details {
- color: blue;
- text-decoration: none;
- cursor: pointer;
- font-size: 16px;
- margin-top: 10px;
-}
-
-.more-details:hover {
- text-decoration: underline;
}
-/* Mobile Overlay (Covers only 50% of screen) */
-.job-overlay {
- display: none; /* Hidden by default */
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 50vh; /* Covers only half of the screen */
- background: rgba(0, 0, 0, 0.8);
- backdrop-filter: blur(5px);
- color: white;
- align-items: center;
- justify-content: center;
- font-size: 18px;
- text-align: center;
- padding: 20px;
- z-index: 999;
-}
-
-/* Show Overlay when Active */
-.job-overlay.active {
- display: flex;
-}
-
-/* Close Button for Popup */
-.close-overlay, .close-popup {
- position: absolute;
- top: 10px;
- right: 15px;
- font-size: 24px;
- cursor: pointer;
- color: white;
-}
-
-/* Desktop Popup */
-.popup {
- display: none; /* Initially hidden */
- position: fixed;
- top: 58%;
- left: 50%;
- transform: translate(-50%, -50%);
- width: 400px;
- height: 150px;
- max-width: 90%;
- background: white;
- padding: 20px;
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);
+/* ✅ New Feature: Scrollable Job Description */
+.job-description-container {
+ width: 1278px;
+ max-height: 1200px;
+ overflow-y: auto;
+ background: #fdbf62;
border-radius: 10px;
- z-index: 1000;
- text-align: center;
+ padding: 15px;
+ /* margin-top: 10px; */
+ text-align: left;
+ /* box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); */
+ /* margin-top: 20px; */
+ transition: opacity 0.3s ease-in-out;
}
-/* Show Popup */
-.popup.active {
- display: block;
+.job-description-container h3 {
+ font-size: 18px;
+ font-weight: bold;
+ margin-bottom: 5px;
+ color: #222;
}
-/* Close Button for Popup */
-.close-popup {
- color: black;
- position: absolute;
- font-size: 24px;
- font-weight: bold;
- top: 10px;
- right: 10px;
- cursor: pointer;
+.job-description-container p {
+ font-size: 16px;
+ color: #333;
+ line-height: 1.5;
+ margin-bottom: 10px;
}
-/* Base Styles (Applies to Mobile) */
-.jobs-container {
- padding-top: 60px; /* Adjust based on navbar height */
- height: calc(100vh - 60px); /* Full height minus navbar */
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- width: 100%;
- background-color: white;
+.job-description {
+ font-size: 16px;
+ color: #333;
+ line-height: 1.5;
+ /* margin-top: 600px; */
}
/* Responsive Adjustments */
@@ -158,52 +117,122 @@
top: 15%;
left: 50%;
}
+ .job-description-container {
+ width: 60%;
+ }
}
/* Small Tablets & Large Phones (768px and below) */
@media (max-width: 768px) {
.jobs-container {
- padding: 50px 20px;
+ padding: 0;
+ margin: 0;
+ height: 100vh;
+ width: 100vw;
+ overflow: hidden;
+ display: flex;
+ align-items: center;
+ justify-content: center;
}
.job-box {
- width: 90%;
- height: 100%;
+ width: 100vw;
+ height: calc(100vh - 60px);
max-height: calc(100vh - 60px); /* Full screen minus navbar */
- padding: 20px;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
font-size: 18px;
+ box-sizing: border-box;
+ margin: 0;
}
.applied-job-popup {
font-size: 14px;
}
+ .job-description-container {
+ width: 90vw;
+ max-height: 180px;
+ }
}
/* ✅ Mobile Screens (480px and below) */
@media (max-width: 480px) {
.jobs-container {
- height: auto;
- padding: 20px;
+ height: 100%;
+ width: 100vw;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: 62px;
+ }
+
+ .divider {
+ margin-top: 150px; /* Increased margin to push it further down */
+ margin-bottom: 20px;
}
.job-box {
- width: 95%;
+ width: 100vw;
+ height: calc(100vh - 60px);
+ max-height: calc(100vh - 60px);
font-size: 16px;
padding: 15px;
+ box-sizing: border-box;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
}
.applied-job-popup {
font-size: 12px;
}
+ .job-description-container {
+ width: 90vw;
+ max-height: 180px; /* Slightly increased for better readability */
+ overflow-y: auto;
+ padding: 10px;
+ }
}
/* ✅ Extra Small Screens (360px and below) */
@media (max-width: 360px) {
+ .jobs-container {
+ width: 100vw;
+ height: 1200px;
+ padding: 0;
+ margin: 0;
+ margin-top: -165px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
.job-box {
- width: 95%;
- font-size: 16px;
+ width: 100vw;
+ min-height: 1200px; /* Increase height dynamically */
+ font-size: 14px;
+ padding: 10px;
+ padding-top: 465px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ }
+
+ .divider {
+ margin-top: 300px; /* Keep reasonable margin */
+ margin-bottom: 20px;
}
+
.applied-job-popup {
font-size: 10px;
+ padding: 5px;
+ margin-top: 150px;
+ }
+
+ .job-description-container {
+ width: 90vw;
+ max-height: 400px; /* Adjusted for small screens */
+ overflow-y: auto;
}
-}
\ No newline at end of file
+}
diff --git a/findd_frontend/FINDD/src/pages/Jobs.jsx b/findd_frontend/FINDD/src/pages/Jobs.jsx
index 609c4931..5f6a197a 100644
--- a/findd_frontend/FINDD/src/pages/Jobs.jsx
+++ b/findd_frontend/FINDD/src/pages/Jobs.jsx
@@ -2,20 +2,60 @@ import React, { useState, useEffect } from "react";
import "./Jobs.css";
const jobsData = [
- { id: 1, title: "Software Engineer", company: "Google", description: "Develop scalable applications using React and Node.js." },
- { id: 2, title: "Frontend Developer", company: "Amazon", description: "Build interactive UIs using modern frameworks like React and Vue." },
- { id: 3, title: "Data Analyst", company: "Microsoft", description: "Analyze data trends using Python, SQL, and Power BI." },
- { id: 4, title: "Cybersecurity Expert", company: "Tesla", description: "Secure networks, prevent cyber attacks, and analyze threats." },
+ {
+ id: 1,
+ title: "Software Engineer",
+ company: "Google",
+ description: "Develop scalable applications using React and Node.js.",
+ location: "Mountain View, CA",
+ experience: "2+ years",
+ salary: "$120,000 - $150,000 per year",
+ mode: "Full-time",
+ duration: "Permanent"
+ },
+ {
+ id: 2,
+ title: "Frontend Developer",
+ company: "Amazon",
+ description: "Build interactive UIs using modern frameworks like React and Vue.",
+ location: "Seattle, WA",
+ experience: "1-3 years",
+ salary: "$100,000 - $130,000 per year",
+ mode: "Hybrid",
+ duration: "Permanent"
+ },
+ {
+ id: 3,
+ title: "Data Analyst",
+ company: "Microsoft",
+ description: "Analyze data trends using Python, SQL, and Power BI.",
+ location: "Redmond, WA",
+ experience: "3+ years",
+ salary: "$90,000 - $120,000 per year",
+ mode: "Remote",
+ duration: "6-month contract"
+ },
+ {
+ id: 4,
+ title: "Cybersecurity Expert",
+ company: "Tesla",
+ description: "Secure networks, prevent cyber attacks, and analyze threats.",
+ location: "Austin, TX",
+ experience: "4+ years",
+ salary: "$130,000 - $160,000 per year",
+ mode: "Full-time",
+ duration: "Permanent"
+ }
];
+
const JobsPage = () => {
const [jobs, setJobs] = useState(jobsData);
const [currentJobIndex, setCurrentJobIndex] = useState(0);
const [recentlyApplied, setRecentlyApplied] = useState(null);
const [startX, setStartX] = useState(null);
const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);
- const [overlayJob, setOverlayJob] = useState(null);
- const [popupJob, setPopupJob] = useState(null); // Popup for Desktop
+ const [showDescription, setShowDescription] = useState(false);
// Detect screen size change
useEffect(() => {
@@ -28,19 +68,18 @@ const JobsPage = () => {
// Function to handle applying for a job
const handleApply = () => {
- if(popupJob) return;
if (currentJobIndex < jobs.length) {
setRecentlyApplied(jobs[currentJobIndex]);
- setTimeout(() => setRecentlyApplied(null), 3000);
+ setTimeout(() => setRecentlyApplied(null), 500);
}
handleNext();
};
// Function to move to the next job
const handleNext = () => {
- if(popupJob) return;
if (currentJobIndex < jobs.length - 1) {
setCurrentJobIndex(currentJobIndex + 1);
+ setShowDescription(false); // Reset description visibility when switching jobs
}
};
@@ -48,7 +87,8 @@ const JobsPage = () => {
useEffect(() => {
if (!isMobile) {
const handleClick = (e) => {
- if(popupJob) return;
+ const jobsContainer = document.querySelector(".jobs-container");
+ if (!jobsContainer.contains(e.target)) return;
if (e.clientX < window.innerWidth / 2) {
handleNext(); // Left click → next job
} else {
@@ -61,7 +101,7 @@ const JobsPage = () => {
document.removeEventListener("click", handleClick);
};
}
- }, [currentJobIndex, isMobile, popupJob]);
+ }, [currentJobIndex, isMobile]);
// Swipe events for mobile
const handleTouchStart = (e) => {
@@ -84,69 +124,67 @@ const JobsPage = () => {
setStartX(null);
};
- // Show overlay for mobile
- const showOverlay = (job) => {
- if (isMobile) {
- setOverlayJob(job);
- } else {
- setPopupJob(job); // Open popup on desktop
- }
- };
-
- // Close overlay
- const closeOverlay = (e) => {
- e.stopPropagation();
- setOverlayJob(null);
- setPopupJob(null);
+ // Handle Scroll to Show Description
+ const handleScroll = (e) => {
+ const scrollTop = e.target.scrollTop;
+ setShowDescription(scrollTop > 50);
};
return (
-
+
{recentlyApplied && (
Applied to {recentlyApplied.title} at {recentlyApplied.company}
)}
-
- {jobs[currentJobIndex] ? (
- <>
-
{jobs[currentJobIndex].title}
-
{jobs[currentJobIndex].company}
-
showOverlay(jobs[currentJobIndex])}>
- More Details
-
- >
- ) : (
-
No more jobs available
- )}
+
+ {jobs[currentJobIndex] ? (
+ <>
+ {/* 🔹 Job Title & Company Section */}
+
+
{jobs[currentJobIndex].title}
+
{jobs[currentJobIndex].company}
- {/* Overlay for Mobile */}
- {overlayJob && (
-
-
×
-
{overlayJob.title}
-
Company: {overlayJob.company}
-
{overlayJob.description}
-
- )}
+ {/* 🔹 Black Divider */}
+
+
+ {/* 🔹 Job Description Section */}
+
+
Title of Job:
+
{jobs[currentJobIndex].title}
+
+
Job Description:
+
{jobs[currentJobIndex].description}
+
+
Location:
+
{jobs[currentJobIndex].location}
+
+
Years of Experience Required:
+
{jobs[currentJobIndex].experience}
+
+
Salary:
+
{jobs[currentJobIndex].salary}
+
+
Mode of Job:
+
{jobs[currentJobIndex].mode}
+
+
Time Duration of Job:
+
{jobs[currentJobIndex].duration}
+
+
+ >
+ ) : (
+
No more jobs available
+ )}
+
- {/* Popup for Desktop */}
- {popupJob && !isMobile && (
-
-
×
-
{popupJob.title}
-
Company: {popupJob.company}
-
{popupJob.description}
-
- )}
);
};
-export default JobsPage;
\ No newline at end of file
+export default JobsPage;
+
+
+