diff --git a/contact_us.js b/contact_us.js index fa0bfa0b..0f89718b 100644 --- a/contact_us.js +++ b/contact_us.js @@ -1,5 +1,5 @@ document.addEventListener("DOMContentLoaded", () => { - const sendEmailButton = document.getElementById("sendEmailButton"); // Assuming your button has this ID + const sendEmailButton = document.getElementById("sendEmailButton"); sendEmailButton.addEventListener("click", SendEmail); }); @@ -7,14 +7,13 @@ document.addEventListener("DOMContentLoaded", () => { async function SendEmail(event) { event.preventDefault(); - const firstName = document.getElementById("firstName").value.trim(); - const lastName = document.getElementById("lastName").value.trim(); - const email = document.getElementById("email").value.trim(); + const Name = document.getElementById("Name").value.trim(); // Corrected ID + const email = document.getElementById("email2").value.trim(); // Corrected ID const phone = document.getElementById("phone").value.trim(); const message = document.getElementById("message").value.trim(); // Input validation - if (!firstName || !lastName || !email || !phone || !message) { + if (!Name || !email || !phone || !message) { alert("All fields are required."); return; } @@ -24,13 +23,13 @@ async function SendEmail(event) { return; } - console.log(Name,email,phone,message); + console.log(Name, email, phone, message); // Corrected variable name if (message.length < 10) { alert("Message must be at least 10 characters long."); return; } - //console.log("Email value:", email , Name, phone, message); + const data = { Name: Name, email: email, @@ -46,7 +45,7 @@ async function SendEmail(event) { }); const result = await response.json(); - + if (response.ok) { showPopup(); document.getElementById("contactForm").reset(); @@ -89,4 +88,4 @@ function hidePopup() { function handleErrorResponse(result) { alert(`Error: ${result.message || 'An unexpected error occurred.'}`); -} \ No newline at end of file +} diff --git a/frontend/src/styles/output.css b/frontend/src/styles/output.css index e0e06a26..9be83d56 100644 --- a/frontend/src/styles/output.css +++ b/frontend/src/styles/output.css @@ -641,6 +641,10 @@ video { margin-bottom: 2rem; } +.ml-2 { + margin-left: 0.5rem; +} + .ml-4 { margin-left: 1rem; } @@ -649,14 +653,6 @@ video { margin-right: 0.5rem; } -.mt-4 { - margin-top: 1rem; -} - -.ml-2 { - margin-left: 0.5rem; -} - .mt-1 { margin-top: 0.25rem; } @@ -665,6 +661,10 @@ video { margin-top: 0.5rem; } +.mt-4 { + margin-top: 1rem; +} + .mt-6 { margin-top: 1.5rem; } @@ -685,10 +685,6 @@ video { display: inline-flex; } -.table { - display: table; -} - .grid { display: grid; } @@ -701,6 +697,10 @@ video { height: 2.5rem; } +.h-16 { + height: 4rem; +} + .h-4 { height: 1rem; } @@ -713,14 +713,6 @@ video { height: 1.25rem; } -.h-32 { - height: 8rem; -} - -.h-16 { - height: 4rem; -} - .h-6 { height: 1.5rem; } @@ -729,6 +721,10 @@ video { width: 2.5rem; } +.w-16 { + width: 4rem; +} + .w-4 { width: 1rem; } @@ -737,6 +733,10 @@ video { width: 1.25rem; } +.w-6 { + width: 1.5rem; +} + .w-fit { width: -moz-fit-content; width: fit-content; @@ -746,18 +746,6 @@ video { width: 100%; } -.w-32 { - width: 8rem; -} - -.w-16 { - width: 4rem; -} - -.w-6 { - width: 1.5rem; -} - .max-w-screen-xl { max-width: 1280px; } @@ -794,6 +782,10 @@ video { justify-content: space-between; } +.gap-4 { + gap: 1rem; +} + .gap-6 { gap: 1.5rem; } @@ -802,16 +794,18 @@ video { gap: 2rem; } -.gap-4 { - gap: 1rem; -} - .space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); } +.space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} + .space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); @@ -824,12 +818,6 @@ video { margin-bottom: calc(1rem * var(--tw-space-y-reverse)); } -.space-x-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(1rem * var(--tw-space-x-reverse)); - margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); -} - .space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); @@ -852,6 +840,10 @@ video { border-radius: 0.25rem; } +.rounded-full { + border-radius: 9999px; +} + .rounded-lg { border-radius: 0.5rem; } @@ -860,10 +852,6 @@ video { border-radius: 0.375rem; } -.rounded-full { - border-radius: 9999px; -} - .border { border-width: 1px; } @@ -872,10 +860,6 @@ video { border-width: 0px; } -.border-t { - border-top-width: 1px; -} - .border-b { border-bottom-width: 1px; } @@ -884,6 +868,10 @@ video { border-left-width: 4px; } +.border-t { + border-top-width: 1px; +} + .border-gray-100 { --tw-border-opacity: 1; border-color: rgb(243 244 246 / var(--tw-border-opacity)); @@ -899,8 +887,9 @@ video { border-color: rgb(209 213 219 / var(--tw-border-opacity)); } -.border-transparent { - border-color: transparent; +.border-gray-700 { + --tw-border-opacity: 1; + border-color: rgb(55 65 81 / var(--tw-border-opacity)); } .border-green-400 { @@ -913,9 +902,13 @@ video { border-color: rgb(99 102 241 / var(--tw-border-opacity)); } -.border-gray-700 { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity)); +.border-transparent { + border-color: transparent; +} + +.bg-blue-100 { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity)); } .bg-gray-100 { @@ -928,39 +921,39 @@ video { background-color: rgb(249 250 251 / var(--tw-bg-opacity)); } -.bg-violet-500 { +.bg-gray-800 { --tw-bg-opacity: 1; - background-color: rgb(139 92 246 / var(--tw-bg-opacity)); + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); } -.bg-white { +.bg-green-100 { --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-color: rgb(220 252 231 / var(--tw-bg-opacity)); } -.bg-indigo-600 { +.bg-indigo-100 { --tw-bg-opacity: 1; - background-color: rgb(79 70 229 / var(--tw-bg-opacity)); + background-color: rgb(224 231 255 / var(--tw-bg-opacity)); } -.bg-blue-100 { +.bg-indigo-600 { --tw-bg-opacity: 1; - background-color: rgb(219 234 254 / var(--tw-bg-opacity)); + background-color: rgb(79 70 229 / var(--tw-bg-opacity)); } -.bg-green-100 { +.bg-red-100 { --tw-bg-opacity: 1; - background-color: rgb(220 252 231 / var(--tw-bg-opacity)); + background-color: rgb(254 226 226 / var(--tw-bg-opacity)); } -.bg-indigo-100 { +.bg-violet-500 { --tw-bg-opacity: 1; - background-color: rgb(224 231 255 / var(--tw-bg-opacity)); + background-color: rgb(139 92 246 / var(--tw-bg-opacity)); } -.bg-red-100 { +.bg-white { --tw-bg-opacity: 1; - background-color: rgb(254 226 226 / var(--tw-bg-opacity)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } .bg-yellow-100 { @@ -968,11 +961,6 @@ video { background-color: rgb(254 249 195 / var(--tw-bg-opacity)); } -.bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); -} - .object-cover { -o-object-fit: cover; object-fit: cover; @@ -1024,6 +1012,11 @@ video { padding-bottom: 0.5rem; } +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + .py-36 { padding-top: 9rem; padding-bottom: 9rem; @@ -1039,19 +1032,14 @@ video { padding-bottom: 2rem; } -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; +.pb-4 { + padding-bottom: 1rem; } .pl-10 { padding-left: 2.5rem; } -.pb-4 { - padding-bottom: 1rem; -} - .pl-3 { padding-left: 0.75rem; } @@ -1068,10 +1056,6 @@ video { text-align: center; } -.text-right { - text-align: right; -} - .text-2xl { font-size: 1.5rem; line-height: 2rem; @@ -1092,6 +1076,11 @@ video { line-height: 1.5rem; } +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + .text-sm { font-size: 0.875rem; line-height: 1.25rem; @@ -1102,11 +1091,6 @@ video { line-height: 1.75rem; } -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} - .font-bold { font-weight: 700; } @@ -1131,6 +1115,16 @@ video { line-height: 1.25; } +.text-blue-700 { + --tw-text-opacity: 1; + color: rgb(29 78 216 / var(--tw-text-opacity)); +} + +.text-blue-800 { + --tw-text-opacity: 1; + color: rgb(30 64 175 / var(--tw-text-opacity)); +} + .text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); @@ -1156,26 +1150,6 @@ video { color: rgb(17 24 39 / var(--tw-text-opacity)); } -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.text-indigo-600 { - --tw-text-opacity: 1; - color: rgb(79 70 229 / var(--tw-text-opacity)); -} - -.text-blue-700 { - --tw-text-opacity: 1; - color: rgb(29 78 216 / var(--tw-text-opacity)); -} - -.text-blue-800 { - --tw-text-opacity: 1; - color: rgb(30 64 175 / var(--tw-text-opacity)); -} - .text-green-700 { --tw-text-opacity: 1; color: rgb(21 128 61 / var(--tw-text-opacity)); @@ -1186,11 +1160,21 @@ video { color: rgb(22 101 52 / var(--tw-text-opacity)); } +.text-indigo-600 { + --tw-text-opacity: 1; + color: rgb(79 70 229 / var(--tw-text-opacity)); +} + .text-indigo-700 { --tw-text-opacity: 1; color: rgb(67 56 202 / var(--tw-text-opacity)); } +.text-red-500 { + --tw-text-opacity: 1; + color: rgb(239 68 68 / var(--tw-text-opacity)); +} + .text-red-700 { --tw-text-opacity: 1; color: rgb(185 28 28 / var(--tw-text-opacity)); @@ -1201,6 +1185,11 @@ video { color: rgb(153 27 27 / var(--tw-text-opacity)); } +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + .text-yellow-700 { --tw-text-opacity: 1; color: rgb(161 98 7 / var(--tw-text-opacity)); @@ -1211,11 +1200,6 @@ video { color: rgb(133 77 14 / var(--tw-text-opacity)); } -.text-red-500 { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity)); -} - .shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); @@ -1303,6 +1287,11 @@ body.dark-mode { background-color: rgb(249 250 251 / var(--tw-bg-opacity)); } +.hover\:bg-indigo-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(67 56 202 / var(--tw-bg-opacity)); +} + .hover\:bg-violet-600:hover { --tw-bg-opacity: 1; background-color: rgb(124 58 237 / var(--tw-bg-opacity)); @@ -1313,11 +1302,6 @@ body.dark-mode { background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } -.hover\:bg-indigo-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(67 56 202 / var(--tw-bg-opacity)); -} - .hover\:text-gray-900:hover { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); @@ -1342,14 +1326,14 @@ body.dark-mode { --tw-shadow: var(--tw-shadow-colored); } -.focus\:border-indigo-500:focus { +.focus\:border-indigo-300:focus { --tw-border-opacity: 1; - border-color: rgb(99 102 241 / var(--tw-border-opacity)); + border-color: rgb(165 180 252 / var(--tw-border-opacity)); } -.focus\:border-indigo-300:focus { +.focus\:border-indigo-500:focus { --tw-border-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-border-opacity)); + border-color: rgb(99 102 241 / var(--tw-border-opacity)); } .focus\:outline-none:focus { @@ -1357,21 +1341,21 @@ body.dark-mode { outline-offset: 2px; } -.focus\:ring-2:focus { +.focus\:ring:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } -.focus\:ring-4:focus { +.focus\:ring-2:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } -.focus\:ring:focus { +.focus\:ring-4:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } @@ -1380,14 +1364,14 @@ body.dark-mode { --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); } -.focus\:ring-indigo-500:focus { +.focus\:ring-indigo-200:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity)); } -.focus\:ring-indigo-200:focus { +.focus\:ring-indigo-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); } .focus\:ring-opacity-50:focus { @@ -1413,6 +1397,11 @@ body.dark-mode { border-color: rgb(22 163 74 / var(--tw-border-opacity)); } +.dark\:bg-blue-900:is(.dark *) { + --tw-bg-opacity: 1; + background-color: rgb(30 58 138 / var(--tw-bg-opacity)); +} + .dark\:bg-gray-700:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(55 65 81 / var(--tw-bg-opacity)); @@ -1428,19 +1417,14 @@ body.dark-mode { background-color: rgb(17 24 39 / var(--tw-bg-opacity)); } -.dark\:bg-indigo-500:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(99 102 241 / var(--tw-bg-opacity)); -} - -.dark\:bg-blue-900:is(.dark *) { +.dark\:bg-green-900:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); + background-color: rgb(20 83 45 / var(--tw-bg-opacity)); } -.dark\:bg-green-900:is(.dark *) { +.dark\:bg-indigo-500:is(.dark *) { --tw-bg-opacity: 1; - background-color: rgb(20 83 45 / var(--tw-bg-opacity)); + background-color: rgb(99 102 241 / var(--tw-bg-opacity)); } .dark\:bg-indigo-900:is(.dark *) { @@ -1458,6 +1442,16 @@ body.dark-mode { background-color: rgb(113 63 18 / var(--tw-bg-opacity)); } +.dark\:text-blue-200:is(.dark *) { + --tw-text-opacity: 1; + color: rgb(191 219 254 / var(--tw-text-opacity)); +} + +.dark\:text-blue-300:is(.dark *) { + --tw-text-opacity: 1; + color: rgb(147 197 253 / var(--tw-text-opacity)); +} + .dark\:text-gray-100:is(.dark *) { --tw-text-opacity: 1; color: rgb(243 244 246 / var(--tw-text-opacity)); @@ -1478,26 +1472,6 @@ body.dark-mode { color: rgb(156 163 175 / var(--tw-text-opacity)); } -.dark\:text-white:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.dark\:text-indigo-400:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(129 140 248 / var(--tw-text-opacity)); -} - -.dark\:text-blue-200:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(191 219 254 / var(--tw-text-opacity)); -} - -.dark\:text-blue-300:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(147 197 253 / var(--tw-text-opacity)); -} - .dark\:text-green-200:is(.dark *) { --tw-text-opacity: 1; color: rgb(187 247 208 / var(--tw-text-opacity)); @@ -1513,6 +1487,11 @@ body.dark-mode { color: rgb(199 210 254 / var(--tw-text-opacity)); } +.dark\:text-indigo-400:is(.dark *) { + --tw-text-opacity: 1; + color: rgb(129 140 248 / var(--tw-text-opacity)); +} + .dark\:text-red-200:is(.dark *) { --tw-text-opacity: 1; color: rgb(254 202 202 / var(--tw-text-opacity)); @@ -1523,6 +1502,11 @@ body.dark-mode { color: rgb(252 165 165 / var(--tw-text-opacity)); } +.dark\:text-white:is(.dark *) { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + .dark\:text-yellow-200:is(.dark *) { --tw-text-opacity: 1; color: rgb(254 240 138 / var(--tw-text-opacity)); @@ -1611,14 +1595,14 @@ body.dark-mode { } @media (min-width: 768px) { - .md\:mt-0 { - margin-top: 0px; - } - .md\:mb-0 { margin-bottom: 0px; } + .md\:mt-0 { + margin-top: 0px; + } + .md\:block { display: block; } diff --git a/give_feedback.html b/give_feedback.html index c866437d..75307a32 100644 --- a/give_feedback.html +++ b/give_feedback.html @@ -556,6 +556,15 @@

Message Sent

const message = document.getElementById('message').value; const rating = document.querySelector('input[name="rating"]:checked')?.value; + + // Email validation regex + const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + +// Validate email +if (!emailPattern.test(email)) { + alert('Please enter a valid email address.'); + return; // Stop execution if email is invalid +} // Display feedback result in popup feedbackResult.innerHTML = `Thank you, ${name}!
Your feedback: ${message}
Rating: ${rating} stars`;