larxius commited on
Commit
093d84f
·
verified ·
1 Parent(s): 00998d9

Update frontend/src/pages/LandingPage.jsx

Browse files
Files changed (1) hide show
  1. frontend/src/pages/LandingPage.jsx +53 -95
frontend/src/pages/LandingPage.jsx CHANGED
@@ -892,99 +892,57 @@ export const LandingPage = () => {
892
  onClick={() => setLegalModal(null)}
893
  />
894
 
895
- <div className="bg-surface-container-lowest border border-outline-variant shadow-2xl rounded-2xl w-full max-w-2xl relative z-10 animate-fade-in flex flex-col max-h-[90vh] overflow-hidden">
896
 
897
  {/* Header */}
898
- <div className="flex justify-between items-center px-xl py-lg border-b border-outline-variant bg-surface-container-low/40">
899
- <div className="flex items-center gap-2">
900
- <span className="material-symbols-outlined text-primary text-[24px]">gavel</span>
901
- <h3 className="font-headline-sm font-bold text-on-surface text-[18px]">Legal Policies</h3>
902
  </div>
903
  <button
904
  onClick={() => setLegalModal(null)}
905
- className="text-on-surface-variant hover:text-on-surface hover:bg-surface-container p-2 rounded-full transition-colors border-0 bg-transparent cursor-pointer flex items-center justify-center"
906
  title="Close"
907
  >
908
- <span className="material-symbols-outlined text-[20px]">close</span>
909
- </button>
910
- </div>
911
-
912
- {/* Policy Tab Switcher */}
913
- <div className="flex border-b border-outline-variant bg-surface-container-lowest px-xl overflow-x-auto">
914
- <button
915
- onClick={() => setLegalModal('privacy')}
916
- className={`py-md px-md text-[13px] font-bold border-b-2 transition-all cursor-pointer bg-transparent border-0 whitespace-nowrap ${
917
- legalModal === 'privacy'
918
- ? 'border-primary text-primary'
919
- : 'border-transparent text-on-surface-variant hover:text-on-surface'
920
- }`}
921
- >
922
- Privacy Policy
923
- </button>
924
- <button
925
- onClick={() => setLegalModal('terms')}
926
- className={`py-md px-md text-[13px] font-bold border-b-2 transition-all cursor-pointer bg-transparent border-0 whitespace-nowrap ${
927
- legalModal === 'terms'
928
- ? 'border-primary text-primary'
929
- : 'border-transparent text-on-surface-variant hover:text-on-surface'
930
- }`}
931
- >
932
- Terms of Service
933
- </button>
934
- <button
935
- onClick={() => setLegalModal('status')}
936
- className={`py-md px-md text-[13px] font-bold border-b-2 transition-all cursor-pointer bg-transparent border-0 whitespace-nowrap ${
937
- legalModal === 'status'
938
- ? 'border-primary text-primary'
939
- : 'border-transparent text-on-surface-variant hover:text-on-surface'
940
- }`}
941
- >
942
- System Status
943
- </button>
944
- <button
945
- onClick={() => setLegalModal('cookies')}
946
- className={`py-md px-md text-[13px] font-bold border-b-2 transition-all cursor-pointer bg-transparent border-0 whitespace-nowrap ${
947
- legalModal === 'cookies'
948
- ? 'border-primary text-primary'
949
- : 'border-transparent text-on-surface-variant hover:text-on-surface'
950
- }`}
951
- >
952
- Cookie Policy
953
  </button>
954
  </div>
955
 
956
  {/* Modal Body */}
957
- <div className="p-xl overflow-y-auto max-h-[60vh] text-left">
958
  {legalModal === 'privacy' && (
959
  <div>
960
- <h3 className="text-[20px] font-extrabold text-on-surface mb-1">Privacy Policy</h3>
961
- <p className="text-[12px] font-bold text-primary mb-lg">Effective Date: August 15, 2026</p>
962
 
963
- <p className="text-[13.5px] text-on-surface-variant leading-relaxed mb-lg">
964
  This Privacy Policy describes how Larshield ("we", "us", or "our") collects, uses, and shares your personal information. We are committed to complying with global data protection laws including the GDPR, CCPA, and India's DPDP Act.
965
  </p>
966
 
967
- <div className="space-y-md text-[13.5px] text-on-surface-variant">
968
  <div>
969
- <h4 className="font-bold text-on-surface text-[14px]">1. Information We Collect</h4>
970
- <p className="mt-1"><strong>Account Data:</strong> Email address, name, billing information, and organization details.</p>
971
- <p className="mt-1"><strong>Scan Data:</strong> Target URLs, scan configurations, identified vulnerabilities, and generated PDF reports.</p>
972
- <p className="mt-1"><strong>Audit Logs:</strong> Origin IP addresses, access timestamps, and API request logs for security and compliance monitoring.</p>
 
 
973
  </div>
974
 
975
  <div>
976
- <h4 className="font-bold text-on-surface text-[14px]">2. How We Use Your Information</h4>
977
- <p className="mt-1">We use your data strictly to provide, maintain, and improve the Service, process payments, and ensure legal compliance. We do not sell your personal data or scan results to third parties.</p>
978
  </div>
979
 
980
  <div>
981
- <h4 className="font-bold text-on-surface text-[14px]">3. Data Security</h4>
982
- <p className="mt-1">Scan results and user data are encrypted at rest (AES-256) and in transit (TLS 1.3). We enforce strict role-based access controls internally. However, no internet transmission is entirely secure, and you use the Service at your own risk.</p>
983
  </div>
984
 
985
  <div>
986
- <h4 className="font-bold text-on-surface text-[14px]">4. Your Rights (GDPR &amp; CCPA)</h4>
987
- <p className="mt-1">Depending on your jurisdiction, you have the right to access, correct, delete, or restrict the processing of your personal data. You can request a complete data export or account deletion by contacting info@larxius.com.</p>
988
  </div>
989
  </div>
990
  </div>
@@ -995,30 +953,30 @@ export const LandingPage = () => {
995
  <h3 className="text-[20px] font-extrabold text-on-surface mb-1">Terms of Service</h3>
996
  <p className="text-[12px] font-bold text-primary mb-lg">Effective Date: August 15, 2026</p>
997
 
998
- <div className="space-y-md text-[13.5px] text-on-surface-variant">
999
  <div>
1000
- <h4 className="font-bold text-on-surface text-[14px]">1. Acceptance of Terms</h4>
1001
- <p className="mt-1">By accessing or using the Larshield platform (the "Service"), you agree to be bound by these Terms of Service. If you do not agree, you may not access the Service.</p>
1002
  </div>
1003
 
1004
  <div>
1005
- <h4 className="font-bold text-on-surface text-[14px]">2. Description of Service</h4>
1006
- <p className="mt-1">Larshield provides automated vulnerability scanning, active penetration testing, and security posture management tools. The Service actively probes designated targets to identify security flaws, misconfigurations, and compliance violations.</p>
1007
  </div>
1008
 
1009
  <div>
1010
- <h4 className="font-bold text-on-surface text-[14px]">3. Authorization and Legal Use</h4>
1011
- <p className="mt-1">You explicitly certify that you possess full, legally verifiable authorization from the system owner to conduct active security assessments against any target URL you submit. Unauthorized scanning is illegal and strictly prohibited. You assume all liability for damages resulting from unauthorized use of the Service.</p>
1012
  </div>
1013
 
1014
  <div>
1015
- <h4 className="font-bold text-on-surface text-[14px]">4. Limitation of Liability</h4>
1016
- <p className="mt-1">Larshield is provided "AS IS". Vulnerability scanning can cause unintended disruptions, including data loss or system crashes. To the maximum extent permitted by law, Larshield shall not be liable for any direct, indirect, incidental, special, or consequential damages resulting from the use or inability to use the Service.</p>
1017
  </div>
1018
 
1019
  <div>
1020
- <h4 className="font-bold text-on-surface text-[14px]">5. Termination</h4>
1021
- <p className="mt-1">We reserve the right to suspend or terminate your account immediately, without prior notice or liability, for any reason, including without limitation if you breach the Terms, particularly regarding unauthorized target scanning.</p>
1022
  </div>
1023
  </div>
1024
  </div>
@@ -1026,20 +984,20 @@ export const LandingPage = () => {
1026
 
1027
  {legalModal === 'status' && (
1028
  <div>
1029
- <h3 className="text-[20px] font-extrabold text-on-surface mb-1">System Status</h3>
1030
- <p className="text-[12px] font-bold text-primary mb-lg">Effective Date: August 15, 2026</p>
1031
 
1032
- <div className="space-y-md text-[13.5px] text-on-surface-variant">
1033
  <div>
1034
- <h4 className="font-bold text-on-surface text-[14px]">1. Uptime Commitment</h4>
1035
- <p className="mt-1">LarShield maintains a 99.9% uptime SLA for all scanning and reporting APIs. Maintenance windows are announced 7 days in advance.</p>
1036
  </div>
1037
 
1038
  <div>
1039
- <h4 className="font-bold text-on-surface text-[14px]">2. Current Status</h4>
1040
- <div className="mt-2 p-md bg-green-500/10 border border-green-500/30 rounded-xl flex items-center gap-md text-green-600 dark:text-green-400">
1041
- <span className="w-3 h-3 rounded-full bg-green-500 shrink-0 animate-pulse"></span>
1042
- <span className="font-bold text-[13.5px]">All systems are currently operational and operating at optimal performance levels.</span>
1043
  </div>
1044
  </div>
1045
  </div>
@@ -1048,18 +1006,18 @@ export const LandingPage = () => {
1048
 
1049
  {legalModal === 'cookies' && (
1050
  <div>
1051
- <h3 className="text-[20px] font-extrabold text-on-surface mb-1">Cookie Policy</h3>
1052
- <p className="text-[12px] font-bold text-primary mb-lg">Effective Date: August 15, 2026</p>
1053
 
1054
- <div className="space-y-md text-[13.5px] text-on-surface-variant">
1055
  <div>
1056
- <h4 className="font-bold text-on-surface text-[14px]">1. Essential Cookies</h4>
1057
- <p className="mt-1">We use strictly necessary cookies to maintain your session and ensure secure authentication. These cannot be disabled.</p>
1058
  </div>
1059
 
1060
  <div>
1061
- <h4 className="font-bold text-on-surface text-[14px]">2. Analytics Cookies</h4>
1062
- <p className="mt-1">We optionally collect telemetry data to improve platform performance. You can opt-out at any time via your account settings.</p>
1063
  </div>
1064
  </div>
1065
  </div>
@@ -1067,10 +1025,10 @@ export const LandingPage = () => {
1067
  </div>
1068
 
1069
  {/* Footer */}
1070
- <div className="flex justify-end p-xl border-t border-outline-variant bg-surface-container-low/40">
1071
  <button
1072
  onClick={() => setLegalModal(null)}
1073
- className="bg-primary text-white font-bold py-2.5 px-6 rounded-xl hover:brightness-110 active:scale-95 transition-all text-sm border-0 cursor-pointer shadow-md shadow-primary/20"
1074
  >
1075
  I Understand
1076
  </button>
 
892
  onClick={() => setLegalModal(null)}
893
  />
894
 
895
+ <div className="bg-white border border-slate-200 shadow-2xl rounded-2xl w-full max-w-2xl relative z-10 animate-fade-in flex flex-col max-h-[90vh] overflow-hidden text-slate-900">
896
 
897
  {/* Header */}
898
+ <div className="flex justify-between items-center px-6 py-4 border-b border-slate-100 bg-white">
899
+ <div className="flex items-center gap-2.5">
900
+ <span className="material-symbols-outlined text-blue-600 text-[22px]">gavel</span>
901
+ <h3 className="font-bold text-slate-900 text-base tracking-tight">Legal Policies</h3>
902
  </div>
903
  <button
904
  onClick={() => setLegalModal(null)}
905
+ className="text-slate-400 hover:text-slate-700 hover:bg-slate-100 p-1.5 rounded-full transition-colors border-0 bg-transparent cursor-pointer flex items-center justify-center"
906
  title="Close"
907
  >
908
+ <span className="material-symbols-outlined text-[18px]">close</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
909
  </button>
910
  </div>
911
 
912
  {/* Modal Body */}
913
+ <div className="p-8 overflow-y-auto max-h-[65vh] text-left text-sm leading-relaxed text-slate-600 space-y-6">
914
  {legalModal === 'privacy' && (
915
  <div>
916
+ <h2 className="text-2xl font-bold text-slate-900 mb-1">Privacy Policy</h2>
917
+ <p className="text-xs font-semibold text-slate-500 mb-5">Effective Date: August 15, 2026</p>
918
 
919
+ <p className="text-sm text-slate-600 leading-relaxed mb-6">
920
  This Privacy Policy describes how Larshield ("we", "us", or "our") collects, uses, and shares your personal information. We are committed to complying with global data protection laws including the GDPR, CCPA, and India's DPDP Act.
921
  </p>
922
 
923
+ <div className="space-y-6">
924
  <div>
925
+ <h3 className="font-bold text-slate-900 text-base mb-2">1. Information We Collect</h3>
926
+ <ul className="list-disc pl-5 space-y-2 text-sm text-slate-600">
927
+ <li><strong>Account Data:</strong> Email address, name, billing information, and organization details.</li>
928
+ <li><strong>Scan Data:</strong> Target URLs, scan configurations, identified vulnerabilities, and generated PDF reports.</li>
929
+ <li><strong>Audit Logs:</strong> Origin IP addresses, access timestamps, and API request logs for security and compliance monitoring.</li>
930
+ </ul>
931
  </div>
932
 
933
  <div>
934
+ <h3 className="font-bold text-slate-900 text-base mb-2">2. How We Use Your Information</h3>
935
+ <p className="text-sm text-slate-600 leading-relaxed">We use your data strictly to provide, maintain, and improve the Service, process payments, and ensure legal compliance. We do not sell your personal data or scan results to third parties.</p>
936
  </div>
937
 
938
  <div>
939
+ <h3 className="font-bold text-slate-900 text-base mb-2">3. Data Security</h3>
940
+ <p className="text-sm text-slate-600 leading-relaxed">Scan results and user data are encrypted at rest (AES-256) and in transit (TLS 1.3). We enforce strict role-based access controls internally. However, no internet transmission is entirely secure, and you use the Service at your own risk.</p>
941
  </div>
942
 
943
  <div>
944
+ <h3 className="font-bold text-slate-900 text-base mb-2">4. Your Rights (GDPR &amp; CCPA)</h3>
945
+ <p className="text-sm text-slate-600 leading-relaxed">Depending on your jurisdiction, you have the right to access, correct, delete, or restrict the processing of your personal data. You can request a complete data export or account deletion by contacting <a href="mailto:info@larxius.com" className="text-blue-600 font-semibold hover:underline">info@larxius.com</a>.</p>
946
  </div>
947
  </div>
948
  </div>
 
953
  <h3 className="text-[20px] font-extrabold text-on-surface mb-1">Terms of Service</h3>
954
  <p className="text-[12px] font-bold text-primary mb-lg">Effective Date: August 15, 2026</p>
955
 
956
+ <div className="space-y-6">
957
  <div>
958
+ <h3 className="font-bold text-slate-900 text-base mb-2">1. Acceptance of Terms</h3>
959
+ <p className="text-sm text-slate-600 leading-relaxed">By accessing or using the Larshield platform (the "Service"), you agree to be bound by these Terms of Service. If you do not agree, you may not access the Service.</p>
960
  </div>
961
 
962
  <div>
963
+ <h3 className="font-bold text-slate-900 text-base mb-2">2. Description of Service</h3>
964
+ <p className="text-sm text-slate-600 leading-relaxed">Larshield provides automated vulnerability scanning, active penetration testing, and security posture management tools. The Service actively probes designated targets to identify security flaws, misconfigurations, and compliance violations.</p>
965
  </div>
966
 
967
  <div>
968
+ <h3 className="font-bold text-slate-900 text-base mb-2">3. Authorization and Legal Use</h3>
969
+ <p className="text-sm text-slate-600 leading-relaxed">You explicitly certify that you possess full, legally verifiable authorization from the system owner to conduct active security assessments against any target URL you submit. Unauthorized scanning is illegal and strictly prohibited. You assume all liability for damages resulting from unauthorized use of the Service.</p>
970
  </div>
971
 
972
  <div>
973
+ <h3 className="font-bold text-slate-900 text-base mb-2">4. Limitation of Liability</h3>
974
+ <p className="text-sm text-slate-600 leading-relaxed">Larshield is provided "AS IS". Vulnerability scanning can cause unintended disruptions, including data loss or system crashes. To the maximum extent permitted by law, Larshield shall not be liable for any direct, indirect, incidental, special, or consequential damages resulting from the use or inability to use the Service.</p>
975
  </div>
976
 
977
  <div>
978
+ <h3 className="font-bold text-slate-900 text-base mb-2">5. Termination</h3>
979
+ <p className="text-sm text-slate-600 leading-relaxed">We reserve the right to suspend or terminate your account immediately, without prior notice or liability, for any reason, including without limitation if you breach the Terms, particularly regarding unauthorized target scanning.</p>
980
  </div>
981
  </div>
982
  </div>
 
984
 
985
  {legalModal === 'status' && (
986
  <div>
987
+ <h2 className="text-2xl font-bold text-slate-900 mb-1">System Status</h2>
988
+ <p className="text-xs font-semibold text-slate-500 mb-5">Effective Date: August 15, 2026</p>
989
 
990
+ <div className="space-y-6">
991
  <div>
992
+ <h3 className="font-bold text-slate-900 text-base mb-2">1. Uptime Commitment</h3>
993
+ <p className="text-sm text-slate-600 leading-relaxed">LarShield maintains a 99.9% uptime SLA for all scanning and reporting APIs. Maintenance windows are announced 7 days in advance.</p>
994
  </div>
995
 
996
  <div>
997
+ <h3 className="font-bold text-slate-900 text-base mb-2">2. Current Status</h3>
998
+ <div className="mt-2 p-4 bg-emerald-50 border border-emerald-200 rounded-xl flex items-center gap-3 text-emerald-800">
999
+ <span className="w-3 h-3 rounded-full bg-emerald-500 shrink-0 animate-pulse"></span>
1000
+ <span className="font-semibold text-sm">All systems are currently operational and operating at optimal performance levels.</span>
1001
  </div>
1002
  </div>
1003
  </div>
 
1006
 
1007
  {legalModal === 'cookies' && (
1008
  <div>
1009
+ <h2 className="text-2xl font-bold text-slate-900 mb-1">Cookie Policy</h2>
1010
+ <p className="text-xs font-semibold text-slate-500 mb-5">Effective Date: August 15, 2026</p>
1011
 
1012
+ <div className="space-y-6">
1013
  <div>
1014
+ <h3 className="font-bold text-slate-900 text-base mb-2">1. Essential Cookies</h3>
1015
+ <p className="text-sm text-slate-600 leading-relaxed">We use strictly necessary cookies to maintain your session and ensure secure authentication. These cannot be disabled.</p>
1016
  </div>
1017
 
1018
  <div>
1019
+ <h3 className="font-bold text-slate-900 text-base mb-2">2. Analytics Cookies</h3>
1020
+ <p className="text-sm text-slate-600 leading-relaxed">We optionally collect telemetry data to improve platform performance. You can opt-out at any time via your account settings.</p>
1021
  </div>
1022
  </div>
1023
  </div>
 
1025
  </div>
1026
 
1027
  {/* Footer */}
1028
+ <div className="flex justify-end p-5 border-t border-slate-100 bg-white">
1029
  <button
1030
  onClick={() => setLegalModal(null)}
1031
+ className="bg-blue-600 text-white font-semibold py-2.5 px-6 rounded-xl hover:bg-blue-700 active:scale-95 transition-all text-sm border-0 cursor-pointer shadow-md shadow-blue-600/20"
1032
  >
1033
  I Understand
1034
  </button>