diff --git a/.gitignore b/.gitignore index 4b6b24b..3a3eb8b 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ client/coverage #Client production client/build +client/dist #Web scraper utility files web-scraper/my_paths.txt diff --git a/client/dist/assets/developers/AlanZhong.jpeg b/client/dist/assets/developers/AlanZhong.jpeg deleted file mode 100644 index a90892b..0000000 Binary files a/client/dist/assets/developers/AlanZhong.jpeg and /dev/null differ diff --git a/client/dist/assets/developers/ChristianPhanhthourath.jpeg b/client/dist/assets/developers/ChristianPhanhthourath.jpeg deleted file mode 100644 index 889abf6..0000000 Binary files a/client/dist/assets/developers/ChristianPhanhthourath.jpeg and /dev/null differ diff --git a/client/dist/assets/developers/ChristinaXu.jpeg b/client/dist/assets/developers/ChristinaXu.jpeg deleted file mode 100644 index 2edd1bc..0000000 Binary files a/client/dist/assets/developers/ChristinaXu.jpeg and /dev/null differ diff --git a/client/dist/assets/developers/DohunKim.jpeg b/client/dist/assets/developers/DohunKim.jpeg deleted file mode 100644 index f78eaf5..0000000 Binary files a/client/dist/assets/developers/DohunKim.jpeg and /dev/null differ diff --git a/client/dist/assets/developers/QuntaoZheng.jpeg b/client/dist/assets/developers/QuntaoZheng.jpeg deleted file mode 100644 index bc1b494..0000000 Binary files a/client/dist/assets/developers/QuntaoZheng.jpeg and /dev/null differ diff --git a/client/dist/assets/developers/RyanFernandes.jpeg b/client/dist/assets/developers/RyanFernandes.jpeg deleted file mode 100644 index 56cfe42..0000000 Binary files a/client/dist/assets/developers/RyanFernandes.jpeg and /dev/null differ diff --git a/client/dist/assets/developers/SebastianGonzalez.jpeg b/client/dist/assets/developers/SebastianGonzalez.jpeg deleted file mode 100644 index 35a8134..0000000 Binary files a/client/dist/assets/developers/SebastianGonzalez.jpeg and /dev/null differ diff --git a/client/dist/assets/developers/no-user.png b/client/dist/assets/developers/no-user.png deleted file mode 100644 index e1bde37..0000000 Binary files a/client/dist/assets/developers/no-user.png and /dev/null differ diff --git a/client/dist/assets/icons/github-icon.png b/client/dist/assets/icons/github-icon.png deleted file mode 100644 index 9490ffc..0000000 Binary files a/client/dist/assets/icons/github-icon.png and /dev/null differ diff --git a/client/dist/assets/icons/link-icon.png b/client/dist/assets/icons/link-icon.png deleted file mode 100644 index 45c4536..0000000 Binary files a/client/dist/assets/icons/link-icon.png and /dev/null differ diff --git a/client/dist/assets/icons/link.svg b/client/dist/assets/icons/link.svg deleted file mode 100644 index 172bff6..0000000 --- a/client/dist/assets/icons/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/assets/icons/linkedin-icon.png b/client/dist/assets/icons/linkedin-icon.png deleted file mode 100644 index 87fbb81..0000000 Binary files a/client/dist/assets/icons/linkedin-icon.png and /dev/null differ diff --git a/client/dist/assets/icons/new-link.png b/client/dist/assets/icons/new-link.png deleted file mode 100644 index e80ecc8..0000000 Binary files a/client/dist/assets/icons/new-link.png and /dev/null differ diff --git a/client/dist/assets/icons/star-empty.svg b/client/dist/assets/icons/star-empty.svg deleted file mode 100644 index 1e082bd..0000000 --- a/client/dist/assets/icons/star-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/assets/icons/star-full.svg b/client/dist/assets/icons/star-full.svg deleted file mode 100644 index 9519cda..0000000 --- a/client/dist/assets/icons/star-full.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/client/dist/assets/icons/website-icon.png b/client/dist/assets/icons/website-icon.png deleted file mode 100644 index 037fcf6..0000000 Binary files a/client/dist/assets/icons/website-icon.png and /dev/null differ diff --git a/client/dist/assets/icons/ycs-icon.png b/client/dist/assets/icons/ycs-icon.png deleted file mode 100644 index 1faa4d5..0000000 Binary files a/client/dist/assets/icons/ycs-icon.png and /dev/null differ diff --git a/client/dist/assets/icons/yura-icon.png b/client/dist/assets/icons/yura-icon.png deleted file mode 100644 index ada0e08..0000000 Binary files a/client/dist/assets/icons/yura-icon.png and /dev/null differ diff --git a/client/dist/assets/index-CDOBa6eK.css b/client/dist/assets/index-CDOBa6eK.css deleted file mode 100644 index 5336a2a..0000000 --- a/client/dist/assets/index-CDOBa6eK.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-top-1{top:-.25rem}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-4{left:1rem}.left-6{left:1.5rem}.right-0{right:0}.right-4{right:1rem}.right-6{right:1.5rem}.top-1\/2{top:50%}.top-4{top:1rem}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-6{grid-column:span 6 / span 6}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-8{margin-top:2rem;margin-bottom:2rem}.-mt-1{margin-top:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.ml-2{margin-left:.5rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[112\.5px\]{height:112.5px}.h-\[3rem\]{height:3rem}.h-full{height:100%}.max-h-0{max-height:0px}.max-h-\[200px\]{max-height:200px}.max-h-\[300px\]{max-height:300px}.max-h-\[350px\]{max-height:350px}.max-h-\[4000px\]{max-height:4000px}.max-h-\[80vh\]{max-height:80vh}.min-h-screen{min-height:100vh}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[200px\]{width:200px}.w-\[3\.5rem\]{width:3.5rem}.w-\[7rem\]{width:7rem}.w-fit{width:fit-content}.w-full{width:100%}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[1300px\]{max-width:1300px}.max-w-md{max-width:28rem}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-5{--tw-translate-y: -1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-t-0{border-top-width:0px}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-current{border-color:currentColor}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-black\/65{background-color:#000000a6}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-200{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-orange-200{--tw-bg-opacity: 1;background-color:rgb(254 215 170 / var(--tw-bg-opacity, 1))}.bg-pink-200{--tw-bg-opacity: 1;background-color:rgb(251 207 232 / var(--tw-bg-opacity, 1))}.bg-purple-200{--tw-bg-opacity: 1;background-color:rgb(233 213 255 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-200{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-teal-200{--tw-bg-opacity: 1;background-color:rgb(153 246 228 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pr-0\.5{padding-right:.125rem}.pr-10{padding-right:2.5rem}.pr-20{padding-right:5rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[8px\]{font-size:8px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_3\.5px_3px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow: 0 3.5px 3px rgba(0,0,0,.3);--tw-shadow-colored: 0 3.5px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-green-600:hover{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-yellow-700:hover{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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(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-blue-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1))}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width: 640px){.sm\:h-\[225px\]{height:225px}.sm\:h-\[4rem\]{height:4rem}.sm\:w-\[4\.5rem\]{width:4.5rem}.sm\:w-\[400px\]{width:400px}.sm\:w-\[9rem\]{width:9rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:col-span-4{grid-column:span 4 / span 4}.md\:ml-2{margin-left:.5rem}.md\:mt-0{margin-top:0}.md\:mt-10{margin-top:2.5rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-\[5\.4rem\]{height:5.4rem}.md\:max-h-\[350px\]{max-height:350px}.md\:w-\[13\.03rem\]{width:13.03rem}.md\:w-\[35\%\]{width:35%}.md\:w-\[6\.33rem\]{width:6.33rem}.md\:max-w-\[400px\]{max-width:400px}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}}@media (min-width: 1024px){.lg\:bottom-6{bottom:1.5rem}.lg\:right-6{right:1.5rem}.lg\:h-\[450px\]{height:450px}.lg\:w-\[800px\]{width:800px}.lg\:max-w-\[600px\]{max-width:600px}} diff --git a/client/dist/assets/index-CxUqnx82.js b/client/dist/assets/index-CxUqnx82.js deleted file mode 100644 index a67322e..0000000 --- a/client/dist/assets/index-CxUqnx82.js +++ /dev/null @@ -1,316 +0,0 @@ -function S1(n,r){for(var o=0;ol[s]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const c of s)if(c.type==="childList")for(const f of c.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&l(f)}).observe(document,{childList:!0,subtree:!0});function o(s){const c={};return s.integrity&&(c.integrity=s.integrity),s.referrerPolicy&&(c.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?c.credentials="include":s.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function l(s){if(s.ep)return;s.ep=!0;const c=o(s);fetch(s.href,c)}})();function fr(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function oa(n){if(Object.prototype.hasOwnProperty.call(n,"__esModule"))return n;var r=n.default;if(typeof r=="function"){var o=function l(){return this instanceof l?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)};o.prototype=r.prototype}else o={};return Object.defineProperty(o,"__esModule",{value:!0}),Object.keys(n).forEach(function(l){var s=Object.getOwnPropertyDescriptor(n,l);Object.defineProperty(o,l,s.get?s:{enumerable:!0,get:function(){return n[l]}})}),o}var Wc={exports:{}},ol={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var w0;function w1(){if(w0)return ol;w0=1;var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(l,s,c){var f=null;if(c!==void 0&&(f=""+c),s.key!==void 0&&(f=""+s.key),"key"in s){c={};for(var p in s)p!=="key"&&(c[p]=s[p])}else c=s;return s=c.ref,{$$typeof:n,type:l,key:f,ref:s!==void 0?s:null,props:c}}return ol.Fragment=r,ol.jsx=o,ol.jsxs=o,ol}var E0;function E1(){return E0||(E0=1,Wc.exports=w1()),Wc.exports}var m=E1(),Jc={exports:{}},Te={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var C0;function C1(){if(C0)return Te;C0=1;var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),f=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),v=Symbol.iterator;function S(U){return U===null||typeof U!="object"?null:(U=v&&U[v]||U["@@iterator"],typeof U=="function"?U:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,x={};function _(U,re,P){this.props=U,this.context=re,this.refs=x,this.updater=P||j}_.prototype.isReactComponent={},_.prototype.setState=function(U,re){if(typeof U!="object"&&typeof U!="function"&&U!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,U,re,"setState")},_.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function T(){}T.prototype=_.prototype;function E(U,re,P){this.props=U,this.context=re,this.refs=x,this.updater=P||j}var O=E.prototype=new T;O.constructor=E,w(O,_.prototype),O.isPureReactComponent=!0;var A=Array.isArray,N={H:null,A:null,T:null,S:null},V=Object.prototype.hasOwnProperty;function M(U,re,P,Q,J,se,H){return P=H.ref,{$$typeof:n,type:U,key:re,ref:P!==void 0?P:null,props:H}}function C(U,re){return M(U.type,re,null,void 0,void 0,void 0,U.props)}function L(U){return typeof U=="object"&&U!==null&&U.$$typeof===n}function D(U){var re={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(P){return re[P]})}var z=/\/+/g;function Y(U,re){return typeof U=="object"&&U!==null&&U.key!=null?D(""+U.key):re.toString(36)}function K(){}function ie(U){switch(U.status){case"fulfilled":return U.value;case"rejected":throw U.reason;default:switch(typeof U.status=="string"?U.then(K,K):(U.status="pending",U.then(function(re){U.status==="pending"&&(U.status="fulfilled",U.value=re)},function(re){U.status==="pending"&&(U.status="rejected",U.reason=re)})),U.status){case"fulfilled":return U.value;case"rejected":throw U.reason}}throw U}function le(U,re,P,Q,J){var se=typeof U;(se==="undefined"||se==="boolean")&&(U=null);var H=!1;if(U===null)H=!0;else switch(se){case"bigint":case"string":case"number":H=!0;break;case"object":switch(U.$$typeof){case n:case r:H=!0;break;case y:return H=U._init,le(H(U._payload),re,P,Q,J)}}if(H)return J=J(U),H=Q===""?"."+Y(U,0):Q,A(J)?(P="",H!=null&&(P=H.replace(z,"$&/")+"/"),le(J,re,P,"",function(ae){return ae})):J!=null&&(L(J)&&(J=C(J,P+(J.key==null||U&&U.key===J.key?"":(""+J.key).replace(z,"$&/")+"/")+H)),re.push(J)),1;H=0;var fe=Q===""?".":Q+":";if(A(U))for(var B=0;B>>1,U=Z[pe];if(0>>1;pes(Q,ne))Js(se,Q)?(Z[pe]=se,Z[J]=ne,pe=J):(Z[pe]=Q,Z[P]=ne,pe=P);else if(Js(se,ne))Z[pe]=se,Z[J]=ne,pe=J;else break e}}return oe}function s(Z,oe){var ne=Z.sortIndex-oe.sortIndex;return ne!==0?ne:Z.id-oe.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;n.unstable_now=function(){return c.now()}}else{var f=Date,p=f.now();n.unstable_now=function(){return f.now()-p}}var h=[],g=[],y=1,v=null,S=3,j=!1,w=!1,x=!1,_=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function O(Z){for(var oe=o(g);oe!==null;){if(oe.callback===null)l(g);else if(oe.startTime<=Z)l(g),oe.sortIndex=oe.expirationTime,r(h,oe);else break;oe=o(g)}}function A(Z){if(x=!1,O(Z),!w)if(o(h)!==null)w=!0,ie();else{var oe=o(g);oe!==null&&le(A,oe.startTime-Z)}}var N=!1,V=-1,M=5,C=-1;function L(){return!(n.unstable_now()-CZ&&L());){var pe=v.callback;if(typeof pe=="function"){v.callback=null,S=v.priorityLevel;var U=pe(v.expirationTime<=Z);if(Z=n.unstable_now(),typeof U=="function"){v.callback=U,O(Z),oe=!0;break t}v===o(h)&&l(h),O(Z)}else l(h);v=o(h)}if(v!==null)oe=!0;else{var re=o(g);re!==null&&le(A,re.startTime-Z),oe=!1}}break e}finally{v=null,S=ne,j=!1}oe=void 0}}finally{oe?z():N=!1}}}var z;if(typeof E=="function")z=function(){E(D)};else if(typeof MessageChannel<"u"){var Y=new MessageChannel,K=Y.port2;Y.port1.onmessage=D,z=function(){K.postMessage(null)}}else z=function(){_(D,0)};function ie(){N||(N=!0,z())}function le(Z,oe){V=_(function(){Z(n.unstable_now())},oe)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(Z){Z.callback=null},n.unstable_continueExecution=function(){w||j||(w=!0,ie())},n.unstable_forceFrameRate=function(Z){0>Z||125pe?(Z.sortIndex=ne,r(g,Z),o(h)===null&&Z===o(g)&&(x?(T(V),V=-1):x=!0,le(A,ne-pe))):(Z.sortIndex=U,r(h,Z),w||j||(w=!0,ie())),Z},n.unstable_shouldYield=L,n.unstable_wrapCallback=function(Z){var oe=S;return function(){var ne=S;S=oe;try{return Z.apply(this,arguments)}finally{S=ne}}}}(nf)),nf}var j0;function T1(){return j0||(j0=1,tf.exports=R1()),tf.exports}var af={exports:{}},Nt={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var O0;function j1(){if(O0)return Nt;O0=1;function n(p){var h="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),af.exports=j1(),af.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var _0;function O1(){if(_0)return sl;_0=1;var n=T1(),r=Es(),o=Bv();function l(e){var t="https://react.dev/errors/"+e;if(1u||$[i]!==F[u]){var te=` -`+$[i].replace(" at new "," at ");return e.displayName&&te.includes("")&&(te=te.replace("",e.displayName)),te}while(1<=i&&0<=u);break}}}finally{z=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?D(a):""}function K(e){switch(e.tag){case 26:case 27:case 5:return D(e.type);case 16:return D("Lazy");case 13:return D("Suspense");case 19:return D("SuspenseList");case 0:case 15:return e=Y(e.type,!1),e;case 11:return e=Y(e.type.render,!1),e;case 1:return e=Y(e.type,!0),e;default:return""}}function ie(e){try{var t="";do t+=K(e),e=e.return;while(e);return t}catch(a){return` -Error generating stack: `+a.message+` -`+a.stack}}function le(e){var t=e,a=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(a=t.return),e=t.return;while(e)}return t.tag===3?a:null}function Z(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function oe(e){if(le(e)!==e)throw Error(l(188))}function ne(e){var t=e.alternate;if(!t){if(t=le(e),t===null)throw Error(l(188));return t!==e?null:e}for(var a=e,i=t;;){var u=a.return;if(u===null)break;var d=u.alternate;if(d===null){if(i=u.return,i!==null){a=i;continue}break}if(u.child===d.child){for(d=u.child;d;){if(d===a)return oe(u),e;if(d===i)return oe(u),t;d=d.sibling}throw Error(l(188))}if(a.return!==i.return)a=u,i=d;else{for(var b=!1,k=u.child;k;){if(k===a){b=!0,a=u,i=d;break}if(k===i){b=!0,i=u,a=d;break}k=k.sibling}if(!b){for(k=d.child;k;){if(k===a){b=!0,a=d,i=u;break}if(k===i){b=!0,i=d,a=u;break}k=k.sibling}if(!b)throw Error(l(189))}}if(a.alternate!==i)throw Error(l(190))}if(a.tag!==3)throw Error(l(188));return a.stateNode.current===a?e:t}function pe(e){return e=ne(e),e!==null?U(e):null}function U(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=U(e),t!==null)return t;e=e.sibling}return null}var re=Array.isArray,P=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Q={pending:!1,data:null,method:null,action:null},J=[],se=-1;function H(e){return{current:e}}function fe(e){0>se||(e.current=J[se],J[se]=null,se--)}function B(e,t){se++,J[se]=e.current,e.current=t}var ae=H(null),he=H(null),ge=H(null),de=H(null),Ee={$$typeof:j,Provider:null,Consumer:null,_currentValue:null,_currentValue2:null,_threadCount:0};function _e(e,t){switch(B(ge,t),B(he,e),B(ae,null),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)&&(t=t.namespaceURI)?Im(t):0;break;default:if(e=e===8?t.parentNode:t,t=e.tagName,e=e.namespaceURI)e=Im(e),t=Wm(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}fe(ae),B(ae,t)}function we(){fe(ae),fe(he),fe(ge)}function Qe(e){e.memoizedState!==null&&B(de,e);var t=ae.current,a=Wm(t,e.type);t!==a&&(B(he,e),B(ae,a))}function je(e){he.current===e&&(fe(ae),fe(he)),de.current===e&&(fe(de),Ee._currentValue=null)}var et=Object.prototype.hasOwnProperty,vn=n.unstable_scheduleCallback,Fe=n.unstable_cancelCallback,On=n.unstable_shouldYield,Hn=n.unstable_requestPaint,Ze=n.unstable_now,be=n.unstable_getCurrentPriorityLevel,De=n.unstable_ImmediatePriority,sa=n.unstable_UserBlockingPriority,yn=n.unstable_NormalPriority,Jt=n.unstable_LowPriority,Re=n.unstable_IdlePriority,ql=n.log,Ys=n.unstable_setDisableYieldValue,ua=null,Bt=null;function rb(e){if(Bt&&typeof Bt.onCommitFiberRoot=="function")try{Bt.onCommitFiberRoot(ua,e,void 0,(e.current.flags&128)===128)}catch{}}function ca(e){if(typeof ql=="function"&&Ys(e),Bt&&typeof Bt.setStrictMode=="function")try{Bt.setStrictMode(ua,e)}catch{}}var en=Math.clz32?Math.clz32:ob,ib=Math.log,lb=Math.LN2;function ob(e){return e>>>=0,e===0?32:31-(ib(e)/lb|0)|0}var Pl=128,Yl=4194304;function mi(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Gl(e,t){var a=e.pendingLanes;if(a===0)return 0;var i=0,u=e.suspendedLanes;e=e.pingedLanes;var d=a&134217727;return d!==0?(a=d&~u,a!==0?i=mi(a):(e&=d,e!==0&&(i=mi(e)))):(a&=~u,a!==0?i=mi(a):e!==0&&(i=mi(e))),i===0?0:t!==0&&t!==i&&(t&u)===0&&(u=i&-i,e=t&-t,u>=e||u===32&&(e&4194176)!==0)?t:i}function sb(e,t){switch(e){case 1:case 2:case 4:case 8:return t+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Yd(e,t){return e.errorRecoveryDisabledLanes&t?0:(e=e.pendingLanes&-536870913,e!==0?e:e&536870912?536870912:0)}function Gd(){var e=Pl;return Pl<<=1,(Pl&4194176)===0&&(Pl=128),e}function Vd(){var e=Yl;return Yl<<=1,(Yl&62914560)===0&&(Yl=4194304),e}function Gs(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function ub(e,t,a){var i=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0,t=e.entanglements;for(var u=e.expirationTimes,d=e.hiddenUpdates;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),pb=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Jd={},ep={};function hb(e){return et.call(ep,e)?!0:et.call(Jd,e)?!1:pb.test(e)?ep[e]=!0:(Jd[e]=!0,!1)}function Vl(e,t,a){if(hb(t))if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var i=t.toLowerCase().slice(0,5);if(i!=="data-"&&i!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+a)}}function Fs(e,t,a){if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+a)}}function Pn(e,t,a,i){if(i===null)e.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(a);return}e.setAttributeNS(t,a,""+i)}}function tn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function tp(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function mb(e){var t=tp(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var u=a.get,d=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return u.call(this)},set:function(b){i=""+b,d.call(this,b)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return i},setValue:function(b){i=""+b},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Xl(e){e._valueTracker||(e._valueTracker=mb(e))}function np(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),i="";return e&&(i=tp(e)?e.checked?"true":"false":e.value),e=i,e!==a?(t.setValue(e),!0):!1}function Fl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var gb=/[\n"\\]/g;function nn(e){return e.replace(gb,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ks(e,t,a,i,u,d,b,k){e.name="",b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"?e.type=b:e.removeAttribute("type"),t!=null?b==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+tn(t)):e.value!==""+tn(t)&&(e.value=""+tn(t)):b!=="submit"&&b!=="reset"||e.removeAttribute("value"),t!=null?Qs(e,b,tn(t)):a!=null?Qs(e,b,tn(a)):i!=null&&e.removeAttribute("value"),u==null&&d!=null&&(e.defaultChecked=!!d),u!=null&&(e.checked=u&&typeof u!="function"&&typeof u!="symbol"),k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"?e.name=""+tn(k):e.removeAttribute("name")}function ap(e,t,a,i,u,d,b,k){if(d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.type=d),t!=null||a!=null){if(!(d!=="submit"&&d!=="reset"||t!=null))return;a=a!=null?""+tn(a):"",t=t!=null?""+tn(t):a,k||t===e.value||(e.value=t),e.defaultValue=t}i=i??u,i=typeof i!="function"&&typeof i!="symbol"&&!!i,e.checked=k?e.checked:!!i,e.defaultChecked=!!i,b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"&&(e.name=b)}function Qs(e,t,a){t==="number"&&Fl(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function gr(e,t,a,i){if(e=e.options,t){t={};for(var u=0;u=wi),gp=" ",vp=!1;function yp(e,t){switch(e){case"keyup":return Gb.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bp(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var xr=!1;function Xb(e,t){switch(e){case"compositionend":return bp(t);case"keypress":return t.which!==32?null:(vp=!0,gp);case"textInput":return e=t.data,e===gp&&vp?null:e;default:return null}}function Fb(e,t){if(xr)return e==="compositionend"||!lu&&yp(e,t)?(e=cp(),Ql=tu=da=null,xr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=i}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=jp(a)}}function Np(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Np(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function _p(){for(var e=window,t=Fl();t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=Fl(e.document)}return t}function uu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function tx(e){var t=_p(),a=e.focusedElem,i=e.selectionRange;if(t!==a&&a&&a.ownerDocument&&Np(a.ownerDocument.documentElement,a)){if(i!==null&&uu(a)){if(t=i.start,e=i.end,e===void 0&&(e=t),"selectionStart"in a)a.selectionStart=t,a.selectionEnd=Math.min(e,a.value.length);else if(e=(t=a.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var u=a.textContent.length,d=Math.min(i.start,u);i=i.end===void 0?d:Math.min(i.end,u),!e.extend&&d>i&&(u=i,i=d,d=u),u=Op(a,d);var b=Op(a,i);u&&b&&(e.rangeCount!==1||e.anchorNode!==u.node||e.anchorOffset!==u.offset||e.focusNode!==b.node||e.focusOffset!==b.offset)&&(t=t.createRange(),t.setStart(u.node,u.offset),e.removeAllRanges(),d>i?(e.addRange(t),e.extend(b.node,b.offset)):(t.setEnd(b.node,b.offset),e.addRange(t)))}}for(t=[],e=a;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a=document.documentMode,Sr=null,cu=null,Ti=null,fu=!1;function Ap(e,t,a){var i=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;fu||Sr==null||Sr!==Fl(i)||(i=Sr,"selectionStart"in i&&uu(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ti&&Ri(Ti,i)||(Ti=i,i=qo(cu,"onSelect"),0>=b,u-=b,Yn=1<<32-en(t)+u|a<xe?(bt=ye,ye=null):bt=ye.sibling;var Me=I(G,ye,X[xe],ue);if(Me===null){ye===null&&(ye=bt);break}e&&ye&&Me.alternate===null&&t(G,ye),q=d(Me,q,xe),ve===null?me=Me:ve.sibling=Me,ve=Me,ye=bt}if(xe===X.length)return a(G,ye),ze&&Ga(G,xe),me;if(ye===null){for(;xexe?(bt=ye,ye=null):bt=ye.sibling;var Oa=I(G,ye,Me.value,ue);if(Oa===null){ye===null&&(ye=bt);break}e&&ye&&Oa.alternate===null&&t(G,ye),q=d(Oa,q,xe),ve===null?me=Oa:ve.sibling=Oa,ve=Oa,ye=bt}if(Me.done)return a(G,ye),ze&&Ga(G,xe),me;if(ye===null){for(;!Me.done;xe++,Me=X.next(),null)Me=ce(G,Me.value,ue),Me!==null&&(q=d(Me,q,xe),ve===null?me=Me:ve.sibling=Me,ve=Me);return ze&&Ga(G,xe),me}for(ye=i(ye);!Me.done;xe++,Me=X.next(),null)Me=W(ye,G,xe,Me.value,ue),Me!==null&&(e&&Me.alternate!==null&&ye.delete(Me.key===null?xe:Me.key),q=d(Me,q,xe),ve===null?me=Me:ve.sibling=Me,ve=Me);return e&&ye.forEach(function(x1){return t(G,x1)}),ze&&Ga(G,xe),me}function Ie(G,q,X,ue){if(typeof X=="object"&&X!==null&&X.type===h&&X.key===null&&(X=X.props.children),typeof X=="object"&&X!==null){switch(X.$$typeof){case f:e:{for(var me=X.key,ve=q;ve!==null;){if(ve.key===me){if(me=X.type,me===h){if(ve.tag===7){a(G,ve.sibling),q=u(ve,X.props.children),q.return=G,G=q;break e}}else if(ve.elementType===me||typeof me=="object"&&me!==null&&me.$$typeof===E&&Kp(me)===ve.type){a(G,ve.sibling),q=u(ve,X.props),Mi(G,ve,q,X),q.return=G,G=q;break e}a(G,ve);break}else t(G,ve);ve=ve.sibling}X.type===h?(q=er(X.props.children,G.mode,ue,X.key),q.return=G,G=q):(ue=_o(X.type,X.key,X.props,null,G.mode,ue),Mi(G,q,ue,X),ue.return=G,G=ue)}return b(G);case p:e:{for(ve=X.key;q!==null;){if(q.key===ve)if(q.tag===4&&q.stateNode.containerInfo===X.containerInfo&&q.stateNode.implementation===X.implementation){a(G,q.sibling),q=u(q,X.children||[]),q.return=G,G=q;break e}else{a(G,q);break}else t(G,q);q=q.sibling}q=mc(X,G.mode,ue),q.return=G,G=q}return b(G);case E:return ve=X._init,Ie(G,q,ve(X._payload),ue)}if(re(X))return Se(G,q,X,ue);if(V(X)){if(ve=V(X),typeof ve!="function")throw Error(l(150));return X=ve.call(X),Ce(G,q,X,ue)}if(typeof X.then=="function")return Ie(G,q,so(X),ue);if(X.$$typeof===j)return Ie(G,q,jo(G,X,ue),ue);uo(G,X)}return typeof X=="string"&&X!==""||typeof X=="number"||typeof X=="bigint"?(X=""+X,q!==null&&q.tag===6?(a(G,q.sibling),q=u(q,X),q.return=G,G=q):(a(G,q),q=hc(X,G.mode,ue),q.return=G,G=q),b(G)):a(G,q)}return function(G,q,X,ue){return Ai=0,G=Ie(G,q,X,ue),jr=null,G}}var Xa=Qp(!0),Zp=Qp(!1),Or=H(null),co=H(0);function Ip(e,t){e=Jn,B(co,e),B(Or,t),Jn=e|t.baseLanes}function bu(){B(co,Jn),B(Or,Or.current)}function xu(){Jn=co.current,fe(Or),fe(co)}var _n=H(null),An=null;function ha(e){var t=e.alternate;B(mt,mt.current&1),B(_n,e),An===null&&(t===null||Or.current!==null||t.memoizedState!==null)&&(An=e)}function Wp(e){if(e.tag===22){if(B(mt,mt.current),B(_n,e),An===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(An=e)}}else ma()}function ma(){B(mt,mt.current),B(_n,_n.current)}function Vn(e){fe(_n),An===e&&(An=null),fe(mt)}var mt=H(0);function fo(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var lx=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(a,i){e.push(i)}};this.abort=function(){t.aborted=!0,e.forEach(function(a){return a()})}},ox=n.unstable_scheduleCallback,sx=n.unstable_NormalPriority,gt={$$typeof:j,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Su(){return{controller:new lx,data:new Map,refCount:0}}function ki(e){e.refCount--,e.refCount===0&&ox(sx,function(){e.controller.abort()})}var Di=null,wu=0,Nr=0,_r=null;function ux(e,t){if(Di===null){var a=Di=[];wu=0,Nr=_c(),_r={status:"pending",value:void 0,then:function(i){a.push(i)}}}return wu++,t.then(Jp,Jp),t}function Jp(){if(Di!==null&&--wu===0){_r!==null&&(_r.status="fulfilled");var e=Di;Di=null,Nr=0,_r=null;for(var t=0;td?d:8;var b=M.T,k={};M.T=k,$u(e,!1,t,a);try{var $=u(),F=M.S;if(F!==null&&F(k,$),$!==null&&typeof $=="object"&&typeof $.then=="function"){var te=cx($,i);Dr(e,t,te)}else Dr(e,t,i)}catch(ce){Dr(e,t,{then:function(){},status:"rejected",reason:ce})}finally{P.p=d,M.T=b}}function mx(){}function Bu(e,t,a,i){if(e.tag!==5)throw Error(l(476));var u=_h(e).queue;Nh(e,u,t,Q,a===null?mx:function(){return Ah(e),a(i)})}function _h(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xn,lastRenderedState:Q},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xn,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ah(e){var t=_h(e).next.queue;Dr(e,t,{})}function Uu(){var e=jt(Ee);return e!==null?e:Q}function Mh(){return dt().memoizedState}function kh(){return dt().memoizedState}function gx(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=ta();e=Kn(a);var i=xa(t,e,a);i!==null&&(Dt(i,t,a),Ui(i,t,a)),t={cache:Su()},e.payload=t;return}t=t.return}}function vx(e,t,a){var i=ta();a={lane:i,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null},So(e)?Dh(t,a):(a=hu(e,t,a,i),a!==null&&(Dt(a,e,i),zh(a,t,i)))}function Dr(e,t,a){var i=ta(),u={lane:i,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null};if(So(e))Dh(t,u);else{var d=e.alternate;if(e.lanes===0&&(d===null||d.lanes===0)&&(d=t.lastRenderedReducer,d!==null))try{var b=t.lastRenderedState,k=d(b,a);if(u.hasEagerState=!0,u.eagerState=k,an(k,b)){no(e,t,u,0),Ge===null&&to();return}}catch{}finally{}a=hu(e,t,u,i),a!==null&&(Dt(a,e,i),zh(a,t,i))}}function $u(e,t,a,i){if(i={lane:2,revertLane:_c(),action:i,hasEagerState:!1,eagerState:null,next:null},So(e)){if(t)throw Error(l(479))}else t=hu(e,a,i,2),t!==null&&Dt(t,e,2)}function So(e){var t=e.alternate;return e===Oe||t!==null&&t===Oe}function Dh(e,t){Ar=ho=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function zh(e,t,a){if((a&4194176)!==0){var i=t.lanes;i&=e.pendingLanes,a|=i,t.lanes=a,Fd(e,a)}}var Mn={readContext:jt,use:vo,useCallback:ot,useContext:ot,useEffect:ot,useImperativeHandle:ot,useLayoutEffect:ot,useInsertionEffect:ot,useMemo:ot,useReducer:ot,useRef:ot,useState:ot,useDebugValue:ot,useDeferredValue:ot,useTransition:ot,useSyncExternalStore:ot,useId:ot};Mn.useCacheRefresh=ot,Mn.useMemoCache=ot,Mn.useHostTransitionStatus=ot,Mn.useFormState=ot,Mn.useActionState=ot,Mn.useOptimistic=ot;var Qa={readContext:jt,use:vo,useCallback:function(e,t){return $t().memoizedState=[e,t===void 0?null:t],e},useContext:jt,useEffect:Sh,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,bo(4194308,4,Ch.bind(null,t,e),a)},useLayoutEffect:function(e,t){return bo(4194308,4,e,t)},useInsertionEffect:function(e,t){bo(4,2,e,t)},useMemo:function(e,t){var a=$t();t=t===void 0?null:t;var i=e();return Ka&&(ca(!0),e(),ca(!1)),a.memoizedState=[i,t],i},useReducer:function(e,t,a){var i=$t();if(a!==void 0){var u=a(t);Ka&&(ca(!0),a(t),ca(!1))}else u=t;return i.memoizedState=i.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},i.queue=e,e=e.dispatch=vx.bind(null,Oe,e),[i.memoizedState,e]},useRef:function(e){var t=$t();return e={current:e},t.memoizedState=e},useState:function(e){e=Mu(e);var t=e.queue,a=Dr.bind(null,Oe,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:zu,useDeferredValue:function(e,t){var a=$t();return Lu(a,e,t)},useTransition:function(){var e=Mu(!1);return e=Nh.bind(null,Oe,e.queue,!0,!1),$t().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var i=Oe,u=$t();if(ze){if(a===void 0)throw Error(l(407));a=a()}else{if(a=t(),Ge===null)throw Error(l(349));(Le&60)!==0||ih(i,t,a)}u.memoizedState=a;var d={value:a,getSnapshot:t};return u.queue=d,Sh(oh.bind(null,i,d,e),[e]),i.flags|=2048,kr(9,lh.bind(null,i,d,a,t),{destroy:void 0},null),a},useId:function(){var e=$t(),t=Ge.identifierPrefix;if(ze){var a=Gn,i=Yn;a=(i&~(1<<32-en(i)-1)).toString(32)+a,t=":"+t+"R"+a,a=mo++,0 title"))),Et(u,i,a),u[Tt]=e,vt(u),i=u;break e;case"link":var d=s0("link","href",t).get(i+(a.href||""));if(d){for(var b=0;b<\/script>",e=e.removeChild(e.firstChild);break;case"select":e=typeof i.is=="string"?u.createElement("select",{is:i.is}):u.createElement("select"),i.multiple?e.multiple=!0:i.size&&(e.size=i.size);break;default:e=typeof i.is=="string"?u.createElement(a,{is:i.is}):u.createElement(a)}}e[Tt]=t,e[Mt]=i;e:for(u=t.child;u!==null;){if(u.tag===5||u.tag===6)e.appendChild(u.stateNode);else if(u.tag!==4&&u.tag!==27&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===t)break e;for(;u.sibling===null;){if(u.return===null||u.return===t)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}t.stateNode=e;e:switch(Et(e,a,i),a){case"button":case"input":case"select":case"textarea":e=!!i.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&Wn(t)}}return tt(t),t.flags&=-16777217,null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==i&&Wn(t);else{if(typeof i!="string"&&t.stateNode===null)throw Error(l(166));if(e=ge.current,ji(t)){if(e=t.stateNode,a=t.memoizedProps,i=null,u=kt,u!==null)switch(u.tag){case 27:case 5:i=u.memoizedProps}e[Tt]=t,e=!!(e.nodeValue===a||i!==null&&i.suppressHydrationWarning===!0||Qm(e.nodeValue,a)),e||Va(t)}else e=Yo(e).createTextNode(i),e[Tt]=t,t.stateNode=e}return tt(t),null;case 13:if(i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=ji(t),i!==null&&i.dehydrated!==null){if(e===null){if(!u)throw Error(l(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(l(317));u[Tt]=t}else Oi(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;tt(t),u=!1}else xn!==null&&(wc(xn),xn=null),u=!0;if(!u)return t.flags&256?(Vn(t),t):(Vn(t),null)}if(Vn(t),(t.flags&128)!==0)return t.lanes=a,t;if(a=i!==null,e=e!==null&&e.memoizedState!==null,a){i=t.child,u=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(u=i.alternate.memoizedState.cachePool.pool);var d=null;i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(d=i.memoizedState.cachePool.pool),d!==u&&(i.flags|=2048)}return a!==e&&a&&(t.child.flags|=8192),Ao(t,t.updateQueue),tt(t),null;case 4:return we(),e===null&&Dc(t.stateNode.containerInfo),tt(t),null;case 10:return Fn(t.type),tt(t),null;case 19:if(fe(mt),u=t.memoizedState,u===null)return tt(t),null;if(i=(t.flags&128)!==0,d=u.rendering,d===null)if(i)Yi(u,!1);else{if(rt!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(d=fo(e),d!==null){for(t.flags|=128,Yi(u,!1),e=d.updateQueue,t.updateQueue=e,Ao(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)Rm(a,e),a=a.sibling;return B(mt,mt.current&1|2),t.child}e=e.sibling}u.tail!==null&&Ze()>ko&&(t.flags|=128,i=!0,Yi(u,!1),t.lanes=4194304)}else{if(!i)if(e=fo(d),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Ao(t,e),Yi(u,!0),u.tail===null&&u.tailMode==="hidden"&&!d.alternate&&!ze)return tt(t),null}else 2*Ze()-u.renderingStartTime>ko&&a!==536870912&&(t.flags|=128,i=!0,Yi(u,!1),t.lanes=4194304);u.isBackwards?(d.sibling=t.child,t.child=d):(e=u.last,e!==null?e.sibling=d:t.child=d,u.last=d)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=Ze(),t.sibling=null,e=mt.current,B(mt,i?e&1|2:e&1),t):(tt(t),null);case 22:case 23:return Vn(t),xu(),i=t.memoizedState!==null,e!==null?e.memoizedState!==null!==i&&(t.flags|=8192):i&&(t.flags|=8192),i?(a&536870912)!==0&&(t.flags&128)===0&&(tt(t),t.subtreeFlags&6&&(t.flags|=8192)):tt(t),a=t.updateQueue,a!==null&&Ao(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),i=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),i!==a&&(t.flags|=2048),e!==null&&fe(Fa),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Fn(gt),tt(t),null;case 25:return null}throw Error(l(156,t.tag))}function Cx(e,t){switch(gu(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Fn(gt),we(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return je(t),null;case 13:if(Vn(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(l(340));Oi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return fe(mt),null;case 4:return we(),null;case 10:return Fn(t.type),null;case 22:case 23:return Vn(t),xu(),e!==null&&fe(Fa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Fn(gt),null;case 25:return null;default:return null}}function Om(e,t){switch(gu(t),t.tag){case 3:Fn(gt),we();break;case 26:case 27:case 5:je(t);break;case 4:we();break;case 13:Vn(t);break;case 19:fe(mt);break;case 10:Fn(t.type);break;case 22:case 23:Vn(t),xu(),e!==null&&fe(Fa);break;case 24:Fn(gt)}}var Rx={getCacheForType:function(e){var t=jt(gt),a=t.data.get(e);return a===void 0&&(a=e(),t.data.set(e,a)),a}},Tx=typeof WeakMap=="function"?WeakMap:Map,Pe=0,Ge=null,Ne=null,Le=0,nt=0,un=null,gc=!1,Jn=0,rt=0,ea=0,qr=0,vc=0,Ht=0,Gi=null,Rn=null,Pr=!1,Mo=!1,yc=0,ko=1/0,Vi=null,Ea=null,Do=!1,tr=null,Xi=0,bc=0,xc=null,Fi=0,Sc=null;function ta(){if((Pe&2)!==0&&Le!==0)return Le&-Le;if(M.T!==null){var e=Nr;return e!==0?e:_c()}return Qd()}function Nm(){Ht===0&&(Ht=(Le&536870912)===0||ze?Gd():536870912);var e=_n.current;return e!==null&&(e.flags|=32),Ht}function Dt(e,t,a){(e===Ge&&nt===2||e.cancelPendingCommit!==null)&&(nr(e,0),Dn(e,Le,Ht)),Ki(e,a),((Pe&2)===0||e!==Ge)&&(e===Ge&&((Pe&2)===0&&(qr|=a),rt===4&&Dn(e,Le,Ht)),qt(e))}function _m(e,t){if((Pe&6)!==0)throw Error(l(327));var a=e.callbackNode;if(Yr()&&e.callbackNode!==a)return null;var i=Gl(e,e===Ge?Le:0);if(i===0)return null;var u=(i&60)===0&&(i&e.expiredLanes)===0&&!t;if(t=u?_x(e,i):Lo(e,i),t!==0){var d=u;do{if(t===6)Dn(e,i,0);else{if(u=e.current.alternate,d&&!jx(u)){t=Lo(e,i),d=!1;continue}if(t===2){d=i;var b=Yd(e,d);if(b!==0&&(i=b,t=Am(e,d,b),d=!1,t!==2))continue}if(t===1){nr(e,0),Dn(e,i,0);break}e.finishedWork=u,e.finishedLanes=i;e:{switch(d=e,t){case 0:case 1:throw Error(l(345));case 4:if((i&4194176)===i){Dn(d,i,Ht);break e}break;case 2:Rn=null;break;case 3:case 5:break;default:throw Error(l(329))}if((i&62914560)===i&&(t=yc+300-Ze(),10a?32:a,M.T=null,tr===null)var d=!1;else{a=xc,xc=null;var b=tr,k=Xi;if(tr=null,Xi=0,(Pe&6)!==0)throw Error(l(331));var $=Pe;if(Pe|=4,Em(b.current),xm(b,b.current,k,a),Pe=$,Zi(),Bt&&typeof Bt.onPostCommitFiberRoot=="function")try{Bt.onPostCommitFiberRoot(ua,b)}catch{}d=!0}return d}finally{P.p=u,M.T=i,$m(e,t)}}return!1}function Hm(e,t,a){t=ln(a,t),t=Hu(e.stateNode,t,2),e=xa(e,t,2),e!==null&&(Ki(e,2),qt(e))}function Xe(e,t,a){if(e.tag===3)Hm(e,e,a);else for(;t!==null;){if(t.tag===3){Hm(t,e,a);break}else if(t.tag===1){var i=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(Ea===null||!Ea.has(i))){e=ln(a,e),a=Hh(2),i=xa(t,a,2),i!==null&&(qh(a,i,t,e),Ki(i,2),qt(i));break}}t=t.return}}function Tc(e,t,a){var i=e.pingCache;if(i===null){i=e.pingCache=new Tx;var u=new Set;i.set(t,u)}else u=i.get(t),u===void 0&&(u=new Set,i.set(t,u));u.has(a)||(gc=!0,u.add(a),e=kx.bind(null,e,t,a),t.then(e,e))}function kx(e,t,a){var i=e.pingCache;i!==null&&i.delete(t),e.pingedLanes|=e.suspendedLanes&a,Pe&2?Pr=!0:Pe&4&&(Mo=!0),jc(),Ge===e&&(Le&a)===a&&(rt===4||rt===3&&(Le&62914560)===Le&&300>Ze()-yc?(Pe&2)===0&&nr(e,0):vc|=a),qt(e)}function qm(e,t){t===0&&(t=Vd()),e=pa(e,t),e!==null&&(Ki(e,t),qt(e))}function Dx(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),qm(e,a)}function zx(e,t){var a=0;switch(e.tag){case 13:var i=e.stateNode,u=e.memoizedState;u!==null&&(a=u.retryLane);break;case 19:i=e.stateNode;break;case 22:i=e.stateNode._retryCache;break;default:throw Error(l(314))}i!==null&&i.delete(t),qm(e,a)}function jc(){if(50"u"?null:document;function r0(e,t,a){var i=Xr;if(i&&typeof t=="string"&&t){var u=nn(t);u='link[rel="'+e+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),a0.has(u)||(a0.add(u),e={rel:e,crossOrigin:a,href:t},i.querySelector(u)===null&&(t=i.createElement("link"),Et(t,"link",e),vt(t),i.head.appendChild(t)))}}function Jx(e){na.D(e),r0("dns-prefetch",e,null)}function e1(e,t){na.C(e,t),r0("preconnect",e,t)}function t1(e,t,a){na.L(e,t,a);var i=Xr;if(i&&e&&t){var u='link[rel="preload"][as="'+nn(t)+'"]';t==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+nn(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+nn(a.imageSizes)+'"]')):u+='[href="'+nn(e)+'"]';var d=u;switch(t){case"style":d=Fr(e);break;case"script":d=Kr(e)}cn.has(d)||(e=C({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),cn.set(d,e),i.querySelector(u)!==null||t==="style"&&i.querySelector(Ji(d))||t==="script"&&i.querySelector(el(d))||(t=i.createElement("link"),Et(t,"link",e),vt(t),i.head.appendChild(t)))}}function n1(e,t){na.m(e,t);var a=Xr;if(a&&e){var i=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+nn(i)+'"][href="'+nn(e)+'"]',d=u;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":d=Kr(e)}if(!cn.has(d)&&(e=C({rel:"modulepreload",href:e},t),cn.set(d,e),a.querySelector(u)===null)){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(el(d)))return}i=a.createElement("link"),Et(i,"link",e),vt(i),a.head.appendChild(i)}}}function a1(e,t,a){na.S(e,t,a);var i=Xr;if(i&&e){var u=hr(i).hoistableStyles,d=Fr(e);t=t||"default";var b=u.get(d);if(!b){var k={loading:0,preload:null};if(b=i.querySelector(Ji(d)))k.loading=5;else{e=C({rel:"stylesheet",href:e,"data-precedence":t},a),(a=cn.get(d))&&Yc(e,a);var $=b=i.createElement("link");vt($),Et($,"link",e),$._p=new Promise(function(F,te){$.onload=F,$.onerror=te}),$.addEventListener("load",function(){k.loading|=1}),$.addEventListener("error",function(){k.loading|=2}),k.loading|=4,Vo(b,t,i)}b={type:"stylesheet",instance:b,count:1,state:k},u.set(d,b)}}}function r1(e,t){na.X(e,t);var a=Xr;if(a&&e){var i=hr(a).hoistableScripts,u=Kr(e),d=i.get(u);d||(d=a.querySelector(el(u)),d||(e=C({src:e,async:!0},t),(t=cn.get(u))&&Gc(e,t),d=a.createElement("script"),vt(d),Et(d,"link",e),a.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},i.set(u,d))}}function i1(e,t){na.M(e,t);var a=Xr;if(a&&e){var i=hr(a).hoistableScripts,u=Kr(e),d=i.get(u);d||(d=a.querySelector(el(u)),d||(e=C({src:e,async:!0,type:"module"},t),(t=cn.get(u))&&Gc(e,t),d=a.createElement("script"),vt(d),Et(d,"link",e),a.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},i.set(u,d))}}function i0(e,t,a,i){var u=(u=ge.current)?Go(u):null;if(!u)throw Error(l(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(a=Fr(a.href),u=hr(u).hoistableStyles,t=u.get(a),t||(t={type:"style",instance:null,count:0,state:null},u.set(a,t)),t):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Fr(a.href);var d=hr(u).hoistableStyles,b=d.get(e);if(b||(u=u.ownerDocument||u,b={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},d.set(e,b),cn.has(e)||l1(u,e,{rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},b.state)),t&&i===null)throw Error(l(528,""));return b}if(t&&i!==null)throw Error(l(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(a=Kr(a),u=hr(u).hoistableScripts,t=u.get(a),t||(t={type:"script",instance:null,count:0,state:null},u.set(a,t)),t):{type:"void",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function Fr(e){return'href="'+nn(e)+'"'}function Ji(e){return'link[rel="stylesheet"]['+e+"]"}function l0(e){return C({},e,{"data-precedence":e.precedence,precedence:null})}function l1(e,t,a,i){cn.set(t,a),e.querySelector(Ji(t))||(e.querySelector('link[rel="preload"][as="style"]['+t+"]")?i.loading=1:(t=e.createElement("link"),i.preload=t,t.addEventListener("load",function(){return i.loading|=1}),t.addEventListener("error",function(){return i.loading|=2}),Et(t,"link",a),vt(t),e.head.appendChild(t)))}function Kr(e){return'[src="'+nn(e)+'"]'}function el(e){return"script[async]"+e}function o0(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var i=e.querySelector('style[data-href~="'+nn(a.href)+'"]');if(i)return t.instance=i,vt(i),i;var u=C({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return i=(e.ownerDocument||e).createElement("style"),vt(i),Et(i,"style",u),Vo(i,a.precedence,e),t.instance=i;case"stylesheet":u=Fr(a.href);var d=e.querySelector(Ji(u));if(d)return t.state.loading|=4,t.instance=d,vt(d),d;i=l0(a),(u=cn.get(u))&&Yc(i,u),d=(e.ownerDocument||e).createElement("link"),vt(d);var b=d;return b._p=new Promise(function(k,$){b.onload=k,b.onerror=$}),Et(d,"link",i),t.state.loading|=4,Vo(d,a.precedence,e),t.instance=d;case"script":return d=Kr(a.src),(u=e.querySelector(el(d)))?(t.instance=u,vt(u),u):(i=a,(u=cn.get(d))&&(i=C({},a),Gc(i,u)),e=e.ownerDocument||e,u=e.createElement("script"),vt(u),Et(u,"link",i),e.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(l(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(i=t.instance,t.state.loading|=4,Vo(i,a.precedence,e));return t.instance}function Vo(e,t,a){for(var i=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=i.length?i[i.length-1]:null,d=u,b=0;b title"):null)}function o1(e,t,a){if(a===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function c0(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}var tl=null;function s1(){}function u1(e,t,a){if(tl===null)throw Error(l(475));var i=tl;if(t.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(t.state.loading&4)===0){if(t.instance===null){var u=Fr(a.href),d=e.querySelector(Ji(u));if(d){e=d._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(i.count++,i=Fo.bind(i),e.then(i,i)),t.state.loading|=4,t.instance=d,vt(d);return}d=e.ownerDocument||e,a=l0(a),(u=cn.get(u))&&Yc(a,u),d=d.createElement("link"),vt(d);var b=d;b._p=new Promise(function(k,$){b.onload=k,b.onerror=$}),Et(d,"link",a),t.instance=d}i.stylesheets===null&&(i.stylesheets=new Map),i.stylesheets.set(t,e),(e=t.state.preload)&&(t.state.loading&3)===0&&(i.count++,t=Fo.bind(i),e.addEventListener("load",t),e.addEventListener("error",t))}}function c1(){if(tl===null)throw Error(l(475));var e=tl;return e.stylesheets&&e.count===0&&Vc(e,e.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),ef.exports=O1(),ef.exports}var _1=N1(),Uv=Bv();const ns=fr(Uv);/** - * @remix-run/router v1.23.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function xl(){return xl=Object.assign?Object.assign.bind():function(n){for(var r=1;r"u")throw new Error(r)}function $v(n,r){if(!n){typeof console<"u"&&console.warn(r);try{throw new Error(r)}catch{}}}function M1(){return Math.random().toString(36).substr(2,8)}function k0(n,r){return{usr:n.state,key:n.key,idx:r}}function Qf(n,r,o,l){return o===void 0&&(o=null),xl({pathname:typeof n=="string"?n:n.pathname,search:"",hash:""},typeof r=="string"?fi(r):r,{state:o,key:r&&r.key||l||M1()})}function ms(n){let{pathname:r="/",search:o="",hash:l=""}=n;return o&&o!=="?"&&(r+=o.charAt(0)==="?"?o:"?"+o),l&&l!=="#"&&(r+=l.charAt(0)==="#"?l:"#"+l),r}function fi(n){let r={};if(n){let o=n.indexOf("#");o>=0&&(r.hash=n.substr(o),n=n.substr(0,o));let l=n.indexOf("?");l>=0&&(r.search=n.substr(l),n=n.substr(0,l)),n&&(r.pathname=n)}return r}function k1(n,r,o,l){l===void 0&&(l={});let{window:s=document.defaultView,v5Compat:c=!1}=l,f=s.history,p=Aa.Pop,h=null,g=y();g==null&&(g=0,f.replaceState(xl({},f.state,{idx:g}),""));function y(){return(f.state||{idx:null}).idx}function v(){p=Aa.Pop;let _=y(),T=_==null?null:_-g;g=_,h&&h({action:p,location:x.location,delta:T})}function S(_,T){p=Aa.Push;let E=Qf(x.location,_,T);g=y()+1;let O=k0(E,g),A=x.createHref(E);try{f.pushState(O,"",A)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;s.location.assign(A)}c&&h&&h({action:p,location:x.location,delta:1})}function j(_,T){p=Aa.Replace;let E=Qf(x.location,_,T);g=y();let O=k0(E,g),A=x.createHref(E);f.replaceState(O,"",A),c&&h&&h({action:p,location:x.location,delta:0})}function w(_){let T=s.location.origin!=="null"?s.location.origin:s.location.href,E=typeof _=="string"?_:ms(_);return E=E.replace(/ $/,"%20"),st(T,"No window.location.(origin|href) available to create URL for href: "+E),new URL(E,T)}let x={get action(){return p},get location(){return n(s,f)},listen(_){if(h)throw new Error("A history only accepts one active listener");return s.addEventListener(M0,v),h=_,()=>{s.removeEventListener(M0,v),h=null}},createHref(_){return r(s,_)},createURL:w,encodeLocation(_){let T=w(_);return{pathname:T.pathname,search:T.search,hash:T.hash}},push:S,replace:j,go(_){return f.go(_)}};return x}var D0;(function(n){n.data="data",n.deferred="deferred",n.redirect="redirect",n.error="error"})(D0||(D0={}));function D1(n,r,o){return o===void 0&&(o="/"),z1(n,r,o)}function z1(n,r,o,l){let s=typeof r=="string"?fi(r):r,c=hd(s.pathname||"/",o);if(c==null)return null;let f=Hv(n);L1(f);let p=null;for(let h=0;p==null&&h{let h={relativePath:p===void 0?c.path||"":p,caseSensitive:c.caseSensitive===!0,childrenIndex:f,route:c};h.relativePath.startsWith("/")&&(st(h.relativePath.startsWith(l),'Absolute route path "'+h.relativePath+'" nested under path '+('"'+l+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),h.relativePath=h.relativePath.slice(l.length));let g=Ma([l,h.relativePath]),y=o.concat(h);c.children&&c.children.length>0&&(st(c.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+g+'".')),Hv(c.children,r,y,g)),!(c.path==null&&!c.index)&&r.push({path:g,score:Y1(g,c.index),routesMeta:y})};return n.forEach((c,f)=>{var p;if(c.path===""||!((p=c.path)!=null&&p.includes("?")))s(c,f);else for(let h of qv(c.path))s(c,f,h)}),r}function qv(n){let r=n.split("/");if(r.length===0)return[];let[o,...l]=r,s=o.endsWith("?"),c=o.replace(/\?$/,"");if(l.length===0)return s?[c,""]:[c];let f=qv(l.join("/")),p=[];return p.push(...f.map(h=>h===""?c:[c,h].join("/"))),s&&p.push(...f),p.map(h=>n.startsWith("/")&&h===""?"/":h)}function L1(n){n.sort((r,o)=>r.score!==o.score?o.score-r.score:G1(r.routesMeta.map(l=>l.childrenIndex),o.routesMeta.map(l=>l.childrenIndex)))}const B1=/^:[\w-]+$/,U1=3,$1=2,H1=1,q1=10,P1=-2,z0=n=>n==="*";function Y1(n,r){let o=n.split("/"),l=o.length;return o.some(z0)&&(l+=P1),r&&(l+=$1),o.filter(s=>!z0(s)).reduce((s,c)=>s+(B1.test(c)?U1:c===""?H1:q1),l)}function G1(n,r){return n.length===r.length&&n.slice(0,-1).every((l,s)=>l===r[s])?n[n.length-1]-r[r.length-1]:0}function V1(n,r,o){let{routesMeta:l}=n,s={},c="/",f=[];for(let p=0;p{let{paramName:S,isOptional:j}=y;if(S==="*"){let x=p[v]||"";f=c.slice(0,c.length-x.length).replace(/(.)\/+$/,"$1")}const w=p[v];return j&&!w?g[S]=void 0:g[S]=(w||"").replace(/%2F/g,"/"),g},{}),pathname:c,pathnameBase:f,pattern:n}}function F1(n,r,o){r===void 0&&(r=!1),o===void 0&&(o=!0),$v(n==="*"||!n.endsWith("*")||n.endsWith("/*"),'Route path "'+n+'" will be treated as if it were '+('"'+n.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+n.replace(/\*$/,"/*")+'".'));let l=[],s="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(f,p,h)=>(l.push({paramName:p,isOptional:h!=null}),h?"/?([^\\/]+)?":"/([^\\/]+)"));return n.endsWith("*")?(l.push({paramName:"*"}),s+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):o?s+="\\/*$":n!==""&&n!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,r?void 0:"i"),l]}function K1(n){try{return n.split("/").map(r=>decodeURIComponent(r).replace(/\//g,"%2F")).join("/")}catch(r){return $v(!1,'The URL path "'+n+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+r+").")),n}}function hd(n,r){if(r==="/")return n;if(!n.toLowerCase().startsWith(r.toLowerCase()))return null;let o=r.endsWith("/")?r.length-1:r.length,l=n.charAt(o);return l&&l!=="/"?null:n.slice(o)||"/"}function Q1(n,r){r===void 0&&(r="/");let{pathname:o,search:l="",hash:s=""}=typeof n=="string"?fi(n):n;return{pathname:o?o.startsWith("/")?o:Z1(o,r):r,search:J1(l),hash:eS(s)}}function Z1(n,r){let o=r.replace(/\/+$/,"").split("/");return n.split("/").forEach(s=>{s===".."?o.length>1&&o.pop():s!=="."&&o.push(s)}),o.length>1?o.join("/"):"/"}function rf(n,r,o,l){return"Cannot include a '"+n+"' character in a manually specified "+("`to."+r+"` field ["+JSON.stringify(l)+"]. Please separate it out to the ")+("`to."+o+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function I1(n){return n.filter((r,o)=>o===0||r.route.path&&r.route.path.length>0)}function md(n,r){let o=I1(n);return r?o.map((l,s)=>s===o.length-1?l.pathname:l.pathnameBase):o.map(l=>l.pathnameBase)}function gd(n,r,o,l){l===void 0&&(l=!1);let s;typeof n=="string"?s=fi(n):(s=xl({},n),st(!s.pathname||!s.pathname.includes("?"),rf("?","pathname","search",s)),st(!s.pathname||!s.pathname.includes("#"),rf("#","pathname","hash",s)),st(!s.search||!s.search.includes("#"),rf("#","search","hash",s)));let c=n===""||s.pathname==="",f=c?"/":s.pathname,p;if(f==null)p=o;else{let v=r.length-1;if(!l&&f.startsWith("..")){let S=f.split("/");for(;S[0]==="..";)S.shift(),v-=1;s.pathname=S.join("/")}p=v>=0?r[v]:"/"}let h=Q1(s,p),g=f&&f!=="/"&&f.endsWith("/"),y=(c||f===".")&&o.endsWith("/");return!h.pathname.endsWith("/")&&(g||y)&&(h.pathname+="/"),h}const Ma=n=>n.join("/").replace(/\/\/+/g,"/"),W1=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),J1=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,eS=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n;function tS(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}const Pv=["post","put","patch","delete"];new Set(Pv);const nS=["get",...Pv];new Set(nS);/** - * React Router v6.30.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Sl(){return Sl=Object.assign?Object.assign.bind():function(n){for(var r=1;r{p.current=!0}),R.useCallback(function(g,y){if(y===void 0&&(y={}),!p.current)return;if(typeof g=="number"){l.go(g);return}let v=gd(g,JSON.parse(f),c,y.relative==="path");n==null&&r!=="/"&&(v.pathname=v.pathname==="/"?r:Ma([r,v.pathname])),(y.replace?l.replace:l.push)(v,y.state,y)},[r,l,f,c,n])}function Xv(n,r){let{relative:o}=r===void 0?{}:r,{future:l}=R.useContext(za),{matches:s}=R.useContext(La),{pathname:c}=pi(),f=JSON.stringify(md(s,l.v7_relativeSplatPath));return R.useMemo(()=>gd(n,JSON.parse(f),c,o==="path"),[n,f,c,o])}function lS(n,r){return oS(n,r)}function oS(n,r,o,l){di()||st(!1);let{navigator:s,static:c}=R.useContext(za),{matches:f}=R.useContext(La),p=f[f.length-1],h=p?p.params:{};p&&p.pathname;let g=p?p.pathnameBase:"/";p&&p.route;let y=pi(),v;if(r){var S;let T=typeof r=="string"?fi(r):r;g==="/"||(S=T.pathname)!=null&&S.startsWith(g)||st(!1),v=T}else v=y;let j=v.pathname||"/",w=j;if(g!=="/"){let T=g.replace(/^\//,"").split("/");w="/"+j.replace(/^\//,"").split("/").slice(T.length).join("/")}let x=D1(n,{pathname:w}),_=dS(x&&x.map(T=>Object.assign({},T,{params:Object.assign({},h,T.params),pathname:Ma([g,s.encodeLocation?s.encodeLocation(T.pathname).pathname:T.pathname]),pathnameBase:T.pathnameBase==="/"?g:Ma([g,s.encodeLocation?s.encodeLocation(T.pathnameBase).pathname:T.pathnameBase])})),f,o,l);return r&&_?R.createElement(Cs.Provider,{value:{location:Sl({pathname:"/",search:"",hash:"",state:null,key:"default"},v),navigationType:Aa.Pop}},_):_}function sS(){let n=gS(),r=tS(n)?n.status+" "+n.statusText:n instanceof Error?n.message:JSON.stringify(n),o=n instanceof Error?n.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return R.createElement(R.Fragment,null,R.createElement("h2",null,"Unexpected Application Error!"),R.createElement("h3",{style:{fontStyle:"italic"}},r),o?R.createElement("pre",{style:s},o):null,null)}const uS=R.createElement(sS,null);class cS extends R.Component{constructor(r){super(r),this.state={location:r.location,revalidation:r.revalidation,error:r.error}}static getDerivedStateFromError(r){return{error:r}}static getDerivedStateFromProps(r,o){return o.location!==r.location||o.revalidation!=="idle"&&r.revalidation==="idle"?{error:r.error,location:r.location,revalidation:r.revalidation}:{error:r.error!==void 0?r.error:o.error,location:o.location,revalidation:r.revalidation||o.revalidation}}componentDidCatch(r,o){console.error("React Router caught the following error during render",r,o)}render(){return this.state.error!==void 0?R.createElement(La.Provider,{value:this.props.routeContext},R.createElement(Yv.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function fS(n){let{routeContext:r,match:o,children:l}=n,s=R.useContext(vd);return s&&s.static&&s.staticContext&&(o.route.errorElement||o.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=o.route.id),R.createElement(La.Provider,{value:r},l)}function dS(n,r,o,l){var s;if(r===void 0&&(r=[]),o===void 0&&(o=null),l===void 0&&(l=null),n==null){var c;if(!o)return null;if(o.errors)n=o.matches;else if((c=l)!=null&&c.v7_partialHydration&&r.length===0&&!o.initialized&&o.matches.length>0)n=o.matches;else return null}let f=n,p=(s=o)==null?void 0:s.errors;if(p!=null){let y=f.findIndex(v=>v.route.id&&(p==null?void 0:p[v.route.id])!==void 0);y>=0||st(!1),f=f.slice(0,Math.min(f.length,y+1))}let h=!1,g=-1;if(o&&l&&l.v7_partialHydration)for(let y=0;y=0?f=f.slice(0,g+1):f=[f[0]];break}}}return f.reduceRight((y,v,S)=>{let j,w=!1,x=null,_=null;o&&(j=p&&v.route.id?p[v.route.id]:void 0,x=v.route.errorElement||uS,h&&(g<0&&S===0?(yS("route-fallback"),w=!0,_=null):g===S&&(w=!0,_=v.route.hydrateFallbackElement||null)));let T=r.concat(f.slice(0,S+1)),E=()=>{let O;return j?O=x:w?O=_:v.route.Component?O=R.createElement(v.route.Component,null):v.route.element?O=v.route.element:O=y,R.createElement(fS,{match:v,routeContext:{outlet:y,matches:T,isDataRoute:o!=null},children:O})};return o&&(v.route.ErrorBoundary||v.route.errorElement||S===0)?R.createElement(cS,{location:o.location,revalidation:o.revalidation,component:x,error:j,children:E(),routeContext:{outlet:null,matches:T,isDataRoute:!0}}):E()},null)}var Fv=function(n){return n.UseBlocker="useBlocker",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n}(Fv||{}),Kv=function(n){return n.UseBlocker="useBlocker",n.UseLoaderData="useLoaderData",n.UseActionData="useActionData",n.UseRouteError="useRouteError",n.UseNavigation="useNavigation",n.UseRouteLoaderData="useRouteLoaderData",n.UseMatches="useMatches",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n.UseRouteId="useRouteId",n}(Kv||{});function pS(n){let r=R.useContext(vd);return r||st(!1),r}function hS(n){let r=R.useContext(aS);return r||st(!1),r}function mS(n){let r=R.useContext(La);return r||st(!1),r}function Qv(n){let r=mS(),o=r.matches[r.matches.length-1];return o.route.id||st(!1),o.route.id}function gS(){var n;let r=R.useContext(Yv),o=hS(),l=Qv();return r!==void 0?r:(n=o.errors)==null?void 0:n[l]}function vS(){let{router:n}=pS(Fv.UseNavigateStable),r=Qv(Kv.UseNavigateStable),o=R.useRef(!1);return Gv(()=>{o.current=!0}),R.useCallback(function(s,c){c===void 0&&(c={}),o.current&&(typeof s=="number"?n.navigate(s):n.navigate(s,Sl({fromRouteId:r},c)))},[n,r])}const L0={};function yS(n,r,o){L0[n]||(L0[n]=!0)}function bS(n,r){n==null||n.v7_startTransition,n==null||n.v7_relativeSplatPath}function ml(n){let{to:r,replace:o,state:l,relative:s}=n;di()||st(!1);let{future:c,static:f}=R.useContext(za),{matches:p}=R.useContext(La),{pathname:h}=pi(),g=Vv(),y=gd(r,md(p,c.v7_relativeSplatPath),h,s==="path"),v=JSON.stringify(y);return R.useEffect(()=>g(JSON.parse(v),{replace:o,state:l,relative:s}),[g,v,s,o,l]),null}function Na(n){st(!1)}function xS(n){let{basename:r="/",children:o=null,location:l,navigationType:s=Aa.Pop,navigator:c,static:f=!1,future:p}=n;di()&&st(!1);let h=r.replace(/^\/*/,"/"),g=R.useMemo(()=>({basename:h,navigator:c,static:f,future:Sl({v7_relativeSplatPath:!1},p)}),[h,p,c,f]);typeof l=="string"&&(l=fi(l));let{pathname:y="/",search:v="",hash:S="",state:j=null,key:w="default"}=l,x=R.useMemo(()=>{let _=hd(y,h);return _==null?null:{location:{pathname:_,search:v,hash:S,state:j,key:w},navigationType:s}},[h,y,v,S,j,w,s]);return x==null?null:R.createElement(za.Provider,{value:g},R.createElement(Cs.Provider,{children:o,value:x}))}function SS(n){let{children:r,location:o}=n;return lS(Zf(r),o)}new Promise(()=>{});function Zf(n,r){r===void 0&&(r=[]);let o=[];return R.Children.forEach(n,(l,s)=>{if(!R.isValidElement(l))return;let c=[...r,s];if(l.type===R.Fragment){o.push.apply(o,Zf(l.props.children,c));return}l.type!==Na&&st(!1),!l.props.index||!l.props.children||st(!1);let f={id:l.props.id||c.join("-"),caseSensitive:l.props.caseSensitive,element:l.props.element,Component:l.props.Component,index:l.props.index,path:l.props.path,loader:l.props.loader,action:l.props.action,errorElement:l.props.errorElement,ErrorBoundary:l.props.ErrorBoundary,hasErrorBoundary:l.props.ErrorBoundary!=null||l.props.errorElement!=null,shouldRevalidate:l.props.shouldRevalidate,handle:l.props.handle,lazy:l.props.lazy};l.props.children&&(f.children=Zf(l.props.children,c)),o.push(f)}),o}/** - * React Router DOM v6.30.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function If(){return If=Object.assign?Object.assign.bind():function(n){for(var r=1;r=0)&&(o[s]=n[s]);return o}function ES(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function CS(n,r){return n.button===0&&(!r||r==="_self")&&!ES(n)}const RS=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],TS="6";try{window.__reactRouterVersion=TS}catch{}const jS="startTransition",B0=Kf[jS];function OS(n){let{basename:r,children:o,future:l,window:s}=n,c=R.useRef();c.current==null&&(c.current=A1({window:s,v5Compat:!0}));let f=c.current,[p,h]=R.useState({action:f.action,location:f.location}),{v7_startTransition:g}=l||{},y=R.useCallback(v=>{g&&B0?B0(()=>h(v)):h(v)},[h,g]);return R.useLayoutEffect(()=>f.listen(y),[f,y]),R.useEffect(()=>bS(l),[l]),R.createElement(xS,{basename:r,children:o,location:p.location,navigationType:p.action,navigator:f,future:l})}const NS=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",_S=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Rs=R.forwardRef(function(r,o){let{onClick:l,relative:s,reloadDocument:c,replace:f,state:p,target:h,to:g,preventScrollReset:y,viewTransition:v}=r,S=wS(r,RS),{basename:j}=R.useContext(za),w,x=!1;if(typeof g=="string"&&_S.test(g)&&(w=g,NS))try{let O=new URL(window.location.href),A=g.startsWith("//")?new URL(O.protocol+g):new URL(g),N=hd(A.pathname,j);A.origin===O.origin&&N!=null?g=N+A.search+A.hash:x=!0}catch{}let _=rS(g,{relative:s}),T=AS(g,{replace:f,state:p,target:h,preventScrollReset:y,relative:s,viewTransition:v});function E(O){l&&l(O),O.defaultPrevented||T(O)}return R.createElement("a",If({},S,{href:w||_,onClick:x||c?l:E,ref:o,target:h}))});var U0;(function(n){n.UseScrollRestoration="useScrollRestoration",n.UseSubmit="useSubmit",n.UseSubmitFetcher="useSubmitFetcher",n.UseFetcher="useFetcher",n.useViewTransitionState="useViewTransitionState"})(U0||(U0={}));var $0;(function(n){n.UseFetcher="useFetcher",n.UseFetchers="useFetchers",n.UseScrollRestoration="useScrollRestoration"})($0||($0={}));function AS(n,r){let{target:o,replace:l,state:s,preventScrollReset:c,relative:f,viewTransition:p}=r===void 0?{}:r,h=Vv(),g=pi(),y=Xv(n,{relative:f});return R.useCallback(v=>{if(CS(v,o)){v.preventDefault();let S=l!==void 0?l:ms(g)===ms(y);h(n,{replace:S,state:s,preventScrollReset:c,relative:f,viewTransition:p})}},[g,h,y,l,s,o,n,c,f,p])}const MS={isLoading:!0,isAuthenticated:!1,checkContext:()=>{}},mn=R.createContext(MS),ul=({Component:n,unknownBlocked:r,knownBlocked:o})=>{const{user:l,isLoading:s,isAuthenticated:c}=R.useContext(mn);if(s)return null;if(!c)return m.jsx(ml,{to:"/login"});if(l){if(r&&l.userType==="unknown")return m.jsx(ml,{to:"/unknown"});if(o&&l.userType!=="unknown")return m.jsx(ml,{to:"/"})}return m.jsx(n,{})},kS=({Component:n})=>{const{user:r}=R.useContext(mn);return r?m.jsx(ml,{to:"/"}):m.jsx(n,{})},H0=["African American Studies","African Studies","American Studies","Anesthesiology","Anthropology","Applied Mathematics","Applied Physics","Archaeological Studies","Architecture","Art","Astronomy","Biological and Biomedical Sciences","Biomedical Engineering","Biomedical Informatics and Data Science","Biostatistics","Cell Biology","Cellular and Molecular Physiology","Chemical and Environmental Engineering","Chemistry","Child Study Center","Chronic Disease Epidemiology","Classics","Cognitive Science","Comparative Literature","Comparative Medicine","Computational Biology and Bioinformatics","Computer Science","Dermatology","Digital Ethics Center","Early Modern Studies","Earth and Planetary Sciences","East Asian Languages and Literatures","East Asian Studies","Ecology and Evolutionary Biology","Economics","Electrical Engineering","Emergency Medicine","Engineering and Applied Science","English","Environmental Health Sciences","Environmental Studies","Epidemiology of Microbial Diseases","Ethics, Politics and Economics","Ethnicity, Race and Migration","European and Russian Studies","Experimental Pathology","Film and Media Studies","Forestry and Environmental Studies","French","Genetics","Geology and Geophysics","German","Global Affairs","Health Care Management","Health Policy and Management","Hellenic Studies","History","History of Art","History of Medicine","History of Science and Medicine","Humanities","Immunobiology","Internal Medicine","International and Development Economics","Investigative Medicine","Italian","Judaic Studies","Laboratory Medicine","Latin American Studies","Law","Linguistics","MCDB","Management","Mathematics","Mechanical Engineering and Materials Science","Medicine","Medieval Studies","Microbial Pathogenesis","Microbiology","Modern Middle East Studies","Molecular Biophysics and Biochemistry","Molecular, Cellular and Developmental Biology","Music","Near Eastern Langauges and Civilizations","Neurology","Neuroscience","Neurosurgery","Nursing","Obstetrics, Gynecology and Reproductive Sciences","Ophthalmology and Visual Science","Orthopaedics and Rehabilitation","Pathology","Pediatrics","Pharmacology","Philosophy","Physics","Political Science","Psychiatry","Psychology","Public Health","Radiology and Biomedical Imaging","Religious Studies","Slavic Languages and Literatures","Sociology","South Asian Studies","Spanish and Portuguese","Statistics","Surgery","Theater Studies","Therapeutic Radiology","Urology","Women’s, Gender, and Sexuality Studies"],It={"African American Studies":0,"American Studies":0,"Archaeological Studies":0,Architecture:0,Art:0,Classics:0,"Comparative Literature":0,"Early Modern Studies":0,English:0,"Ethics, Politics and Economics":0,"Digital Ethics Center":0,"Film and Media Studies":0,History:0,"History of Art":0,"History of Medicine":0,"History of Science and Medicine":0,Humanities:0,"Judaic Studies":0,"Medieval Studies":0,Music:0,Philosophy:0,"Religious Studies":0,"Theater Studies":0,"African Studies":1,Anthropology:1,"Cognitive Science":1,Economics:1,"Ethnicity, Race and Migration":1,"European and Russian Studies":1,"Global Affairs":1,"International and Development Economics":1,"Political Science":1,Psychology:1,Sociology:1,"South Asian Studies":1,"Women's, Gender, and Sexuality Studies":1,"Applied Mathematics":2,Astronomy:2,Chemistry:2,"Earth and Planetary Sciences":2,"Geology and Geophysics":2,Mathematics:2,Physics:2,Statistics:2,"Biological and Biomedical Sciences":3,"Cell Biology":3,"Cellular and Molecular Physiology":3,"Computational Biology and Bioinformatics":3,"Ecology and Evolutionary Biology":3,"Environmental Studies":3,"Forestry and Environmental Studies":3,Genetics:3,Immunobiology:3,MCDB:3,Microbiology:3,"Molecular Biophysics and Biochemistry":3,"Molecular, Cellular and Developmental Biology":3,Neuroscience:3,"Applied Physics":4,"Biomedical Engineering":4,"Biomedical Informatics and Data Science":4,"Chemical and Environmental Engineering":4,"Computer Science":4,"Electrical Engineering":4,"Engineering and Applied Science":4,"Mechanical Engineering and Materials Science":4,Anesthesiology:5,Biostatistics:5,"Child Study Center":5,"Chronic Disease Epidemiology":5,"Comparative Medicine":5,Dermatology:5,"Emergency Medicine":5,"Environmental Health Sciences":5,"Epidemiology of Microbial Diseases":5,"Experimental Pathology":5,"Health Care Management":5,"Health Policy and Management":5,"Internal Medicine":5,"Investigative Medicine":5,"Laboratory Medicine":5,Medicine:5,"Microbial Pathogenesis":5,Neurology:5,Neurosurgery:5,Nursing:5,"Obstetrics, Gynecology and Reproductive Sciences":5,"Ophthalmology and Visual Science":5,"Orthopaedics and Rehabilitation":5,Pathology:5,Pediatrics:5,Pharmacology:5,Psychiatry:5,"Public Health":5,"Radiology and Biomedical Imaging":5,Surgery:5,"Therapeutic Radiology":5,Urology:5,"East Asian Languages and Literatures":6,"East Asian Studies":6,French:6,German:6,Italian:6,Linguistics:6,"Near Eastern Langauges and Civilizations":6,"Slavic Languages and Literatures":6,"Spanish and Portuguese":6,"Latin American Studies":6,"Modern Middle East Studies":6,"Hellenic Studies":6,Law:7,Management:7},DS=({isOpen:n,onClose:r,listing:o,favListingsIds:l,updateFavorite:s})=>{const[c,f]=R.useState(o.id==="create"),[p,h]=R.useState(l.includes(o.id)),[g,y]=R.useState(!0),{user:v}=R.useContext(mn),S=["bg-blue-200","bg-green-200","bg-yellow-200","bg-red-200","bg-purple-200","bg-pink-200","bg-teal-200","bg-orange-200"],j=()=>o.hiringStatus<0?"bg-red-500":o.hiringStatus===0?"bg-yellow-500":"bg-green-500",w=()=>o.hiringStatus<0?"Lab not seeking applicants":o.hiringStatus===0?"Lab open to applicants":"Lab seeking applicants",x=E=>{E.target===E.currentTarget&&r()};R.useEffect(()=>{l&&h(l.includes(o.id))},[l]),R.useEffect(()=>{v&&v.userConfirmed&&["admin","professor","faculty"].includes(v.userType)&&y(!1)},[]),R.useEffect(()=>(n&&(document.body.style.overflow="hidden"),()=>{document.body.style.overflow="auto"}),[n]);const _=E=>{E.stopPropagation(),o.favorites=p?o.favorites-1:o.favorites+1,o.favorites<0&&(o.favorites=0),s(o.id,!p)},T=E=>E?E.startsWith("http://")||E.startsWith("https://")?E:`https://${E}`:"";return!n||!o?null:m.jsx("div",{className:"fixed inset-0 bg-black/65 z-50 flex items-center justify-center overflow-y-auto p-4 pt-24",onClick:x,children:m.jsxs("div",{className:"bg-white rounded-lg shadow-xl w-full max-w-4xl max-h-[80vh] overflow-y-auto",onClick:E=>E.stopPropagation(),children:[m.jsx("div",{className:`${j()} h-2 w-full rounded-t-lg`}),m.jsxs("div",{className:"p-6 relative",children:[m.jsxs("div",{className:"absolute top-4 right-4",children:[!c&&m.jsx("a",{onClick:_,className:"inline-block",children:m.jsx("button",{className:"p-1 hover:bg-gray-100 rounded-full mr-2","aria-label":p?"Remove from favorites":"Add to favorites",children:m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",className:"transition-colors h-6 w-6",fill:p?"#FFDA7B":"none",stroke:p?"#F0C04A":"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:m.jsx("path",{d:"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z"})})})}),m.jsx("button",{onClick:r,className:"p-1 rounded-full hover:bg-gray-100","aria-label":"Close",children:m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:m.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),m.jsx("div",{className:"mb-6 pr-20",children:m.jsxs("div",{className:"flex flex-col md:flex-row md:items-center gap-2",children:[m.jsx("h2",{className:"text-2xl font-bold md:max-w-[400px] lg:max-w-[600px]",children:o.title}),m.jsx("span",{className:`${j()} mt-2 md:mt-0 md:ml-2 text-white text-xs px-2 py-1 rounded-full inline-block w-fit`,children:w()})]})}),m.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[m.jsxs("div",{className:"col-span-1",children:[m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Professors"}),m.jsx("div",{className:"space-y-2",children:[`${o.ownerFirstName} ${o.ownerLastName}`,...o.professorNames].map((E,O)=>m.jsxs("div",{className:"flex items-center",children:[m.jsx("div",{className:"w-8 h-8 rounded-full bg-gray-200 flex items-center justify-center mr-2",children:E.charAt(0).toUpperCase()}),m.jsx("span",{children:E})]},O))})]}),m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Departments"}),m.jsx("div",{className:"flex flex-wrap gap-2",children:o.departments.map(E=>m.jsx("span",{className:`${Object.keys(It).includes(E)?S[It[E]]:"bg-gray-200"} text-gray-900 text-xs rounded px-2 py-1`,children:E},E))})]}),m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Contact Information"}),m.jsxs("div",{className:"mb-4",children:[m.jsx("h4",{className:"text-md font-medium",children:"Emails"}),m.jsx("ul",{className:"mt-1 space-y-1",children:[o.ownerEmail,...o.emails].map((E,O)=>m.jsx("li",{children:m.jsx("a",{href:`mailto:${E}`,className:"text-blue-600 hover:underline",children:E})},O))})]}),o.websites&&o.websites.length>0&&m.jsxs("div",{children:[m.jsx("h4",{className:"text-md font-medium",children:"Websites"}),m.jsx("ul",{className:"mt-1 space-y-1",children:o.websites.map((E,O)=>m.jsx("li",{className:"truncate",children:m.jsx("a",{href:T(E),target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:E})},O))})]})]}),m.jsxs("section",{children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Stats"}),m.jsxs("div",{className:"space-y-2 text-sm",children:[!g&&m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Views:"}),m.jsx("span",{className:"font-medium",children:o.views})]}),m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Favorites:"}),m.jsx("span",{className:"font-medium",children:o.favorites})]})]}),o.established&&m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Lab Established:"}),m.jsx("span",{className:"font-medium",children:o.established})]}),m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Listing Created:"}),m.jsx("span",{className:"font-medium",children:new Date(o.createdAt).toLocaleDateString()})]}),m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Listing Updated:"}),m.jsx("span",{className:"font-medium",children:new Date(o.updatedAt).toLocaleDateString()})]})]})]})]}),m.jsxs("div",{className:"col-span-1 md:col-span-2",children:[m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"About"}),m.jsx("div",{className:"whitespace-pre-wrap",children:o.description})]}),o.archived&&m.jsxs("div",{className:"mt-6 p-3 bg-red-100 text-red-700 rounded-lg",children:[m.jsx("div",{className:"font-semibold",children:"This listing is archived"}),m.jsx("div",{className:"text-sm",children:"Archived listings are not visible in search results or as favorites."})]})]})]})]})]})})};var as={exports:{}},lf,q0;function Zv(){return q0||(q0=1,lf=function(r,o){return function(){for(var s=new Array(arguments.length),c=0;c"u"}function s(C){return C!==null&&!l(C)&&C.constructor!==null&&!l(C.constructor)&&typeof C.constructor.isBuffer=="function"&&C.constructor.isBuffer(C)}function c(C){return r.call(C)==="[object ArrayBuffer]"}function f(C){return r.call(C)==="[object FormData]"}function p(C){var L;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?L=ArrayBuffer.isView(C):L=C&&C.buffer&&c(C.buffer),L}function h(C){return typeof C=="string"}function g(C){return typeof C=="number"}function y(C){return C!==null&&typeof C=="object"}function v(C){if(r.call(C)!=="[object Object]")return!1;var L=Object.getPrototypeOf(C);return L===null||L===Object.prototype}function S(C){return r.call(C)==="[object Date]"}function j(C){return r.call(C)==="[object File]"}function w(C){return r.call(C)==="[object Blob]"}function x(C){return r.call(C)==="[object Function]"}function _(C){return y(C)&&x(C.pipe)}function T(C){return r.call(C)==="[object URLSearchParams]"}function E(C){return C.trim?C.trim():C.replace(/^\s+|\s+$/g,"")}function O(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function A(C,L){if(!(C===null||typeof C>"u"))if(typeof C!="object"&&(C=[C]),o(C))for(var D=0,z=C.length;D"u"||(n.isArray(y)?v=v+"[]":y=[y],n.forEach(y,function(j){n.isDate(j)?j=j.toISOString():n.isObject(j)&&(j=JSON.stringify(j)),p.push(r(v)+"="+r(j))}))}),f=p.join("&")}if(f){var h=l.indexOf("#");h!==-1&&(l=l.slice(0,h)),l+=(l.indexOf("?")===-1?"?":"&")+f}return l},sf}var uf,G0;function zS(){if(G0)return uf;G0=1;var n=Gt();function r(){this.handlers=[]}return r.prototype.use=function(l,s,c){return this.handlers.push({fulfilled:l,rejected:s,synchronous:c?c.synchronous:!1,runWhen:c?c.runWhen:null}),this.handlers.length-1},r.prototype.eject=function(l){this.handlers[l]&&(this.handlers[l]=null)},r.prototype.forEach=function(l){n.forEach(this.handlers,function(c){c!==null&&l(c)})},uf=r,uf}var cf,V0;function LS(){if(V0)return cf;V0=1;var n=Gt();return cf=function(o,l){n.forEach(o,function(c,f){f!==l&&f.toUpperCase()===l.toUpperCase()&&(o[l]=c,delete o[f])})},cf}var ff,X0;function Wv(){return X0||(X0=1,ff=function(r,o,l,s,c){return r.config=o,l&&(r.code=l),r.request=s,r.response=c,r.isAxiosError=!0,r.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},r}),ff}var df,F0;function Jv(){return F0||(F0=1,df={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}),df}var pf,K0;function ey(){if(K0)return pf;K0=1;var n=Wv();return pf=function(o,l,s,c,f){var p=new Error(o);return n(p,l,s,c,f)},pf}var hf,Q0;function BS(){if(Q0)return hf;Q0=1;var n=ey();return hf=function(o,l,s){var c=s.config.validateStatus;!s.status||!c||c(s.status)?o(s):l(n("Request failed with status code "+s.status,s.config,null,s.request,s))},hf}var mf,Z0;function US(){if(Z0)return mf;Z0=1;var n=Gt();return mf=n.isStandardBrowserEnv()?function(){return{write:function(l,s,c,f,p,h){var g=[];g.push(l+"="+encodeURIComponent(s)),n.isNumber(c)&&g.push("expires="+new Date(c).toGMTString()),n.isString(f)&&g.push("path="+f),n.isString(p)&&g.push("domain="+p),h===!0&&g.push("secure"),document.cookie=g.join("; ")},read:function(l){var s=document.cookie.match(new RegExp("(^|;\\s*)("+l+")=([^;]*)"));return s?decodeURIComponent(s[3]):null},remove:function(l){this.write(l,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),mf}var gf,I0;function $S(){return I0||(I0=1,gf=function(r){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(r)}),gf}var vf,W0;function HS(){return W0||(W0=1,vf=function(r,o){return o?r.replace(/\/+$/,"")+"/"+o.replace(/^\/+/,""):r}),vf}var yf,J0;function qS(){if(J0)return yf;J0=1;var n=$S(),r=HS();return yf=function(l,s){return l&&!n(s)?r(l,s):s},yf}var bf,eg;function PS(){if(eg)return bf;eg=1;var n=Gt(),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];return bf=function(l){var s={},c,f,p;return l&&n.forEach(l.split(` -`),function(g){if(p=g.indexOf(":"),c=n.trim(g.substr(0,p)).toLowerCase(),f=n.trim(g.substr(p+1)),c){if(s[c]&&r.indexOf(c)>=0)return;c==="set-cookie"?s[c]=(s[c]?s[c]:[]).concat([f]):s[c]=s[c]?s[c]+", "+f:f}}),s},bf}var xf,tg;function YS(){if(tg)return xf;tg=1;var n=Gt();return xf=n.isStandardBrowserEnv()?function(){var o=/(msie|trident)/i.test(navigator.userAgent),l=document.createElement("a"),s;function c(f){var p=f;return o&&(l.setAttribute("href",p),p=l.href),l.setAttribute("href",p),{href:l.href,protocol:l.protocol?l.protocol.replace(/:$/,""):"",host:l.host,search:l.search?l.search.replace(/^\?/,""):"",hash:l.hash?l.hash.replace(/^#/,""):"",hostname:l.hostname,port:l.port,pathname:l.pathname.charAt(0)==="/"?l.pathname:"/"+l.pathname}}return s=c(window.location.href),function(p){var h=n.isString(p)?c(p):p;return h.protocol===s.protocol&&h.host===s.host}}():function(){return function(){return!0}}(),xf}var Sf,ng;function Ts(){if(ng)return Sf;ng=1;function n(r){this.message=r}return n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,Sf=n,Sf}var wf,ag;function rg(){if(ag)return wf;ag=1;var n=Gt(),r=BS(),o=US(),l=Iv(),s=qS(),c=PS(),f=YS(),p=ey(),h=Jv(),g=Ts();return wf=function(v){return new Promise(function(j,w){var x=v.data,_=v.headers,T=v.responseType,E;function O(){v.cancelToken&&v.cancelToken.unsubscribe(E),v.signal&&v.signal.removeEventListener("abort",E)}n.isFormData(x)&&delete _["Content-Type"];var A=new XMLHttpRequest;if(v.auth){var N=v.auth.username||"",V=v.auth.password?unescape(encodeURIComponent(v.auth.password)):"";_.Authorization="Basic "+btoa(N+":"+V)}var M=s(v.baseURL,v.url);A.open(v.method.toUpperCase(),l(M,v.params,v.paramsSerializer),!0),A.timeout=v.timeout;function C(){if(A){var D="getAllResponseHeaders"in A?c(A.getAllResponseHeaders()):null,z=!T||T==="text"||T==="json"?A.responseText:A.response,Y={data:z,status:A.status,statusText:A.statusText,headers:D,config:v,request:A};r(function(ie){j(ie),O()},function(ie){w(ie),O()},Y),A=null}}if("onloadend"in A?A.onloadend=C:A.onreadystatechange=function(){!A||A.readyState!==4||A.status===0&&!(A.responseURL&&A.responseURL.indexOf("file:")===0)||setTimeout(C)},A.onabort=function(){A&&(w(p("Request aborted",v,"ECONNABORTED",A)),A=null)},A.onerror=function(){w(p("Network Error",v,null,A)),A=null},A.ontimeout=function(){var z=v.timeout?"timeout of "+v.timeout+"ms exceeded":"timeout exceeded",Y=v.transitional||h;v.timeoutErrorMessage&&(z=v.timeoutErrorMessage),w(p(z,v,Y.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",A)),A=null},n.isStandardBrowserEnv()){var L=(v.withCredentials||f(M))&&v.xsrfCookieName?o.read(v.xsrfCookieName):void 0;L&&(_[v.xsrfHeaderName]=L)}"setRequestHeader"in A&&n.forEach(_,function(z,Y){typeof x>"u"&&Y.toLowerCase()==="content-type"?delete _[Y]:A.setRequestHeader(Y,z)}),n.isUndefined(v.withCredentials)||(A.withCredentials=!!v.withCredentials),T&&T!=="json"&&(A.responseType=v.responseType),typeof v.onDownloadProgress=="function"&&A.addEventListener("progress",v.onDownloadProgress),typeof v.onUploadProgress=="function"&&A.upload&&A.upload.addEventListener("progress",v.onUploadProgress),(v.cancelToken||v.signal)&&(E=function(D){A&&(w(!D||D&&D.type?new g("canceled"):D),A.abort(),A=null)},v.cancelToken&&v.cancelToken.subscribe(E),v.signal&&(v.signal.aborted?E():v.signal.addEventListener("abort",E))),x||(x=null),A.send(x)})},wf}var Ef,ig;function yd(){if(ig)return Ef;ig=1;var n=Gt(),r=LS(),o=Wv(),l=Jv(),s={"Content-Type":"application/x-www-form-urlencoded"};function c(g,y){!n.isUndefined(g)&&n.isUndefined(g["Content-Type"])&&(g["Content-Type"]=y)}function f(){var g;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(g=rg()),g}function p(g,y,v){if(n.isString(g))try{return(y||JSON.parse)(g),n.trim(g)}catch(S){if(S.name!=="SyntaxError")throw S}return(v||JSON.stringify)(g)}var h={transitional:l,adapter:f(),transformRequest:[function(y,v){return r(v,"Accept"),r(v,"Content-Type"),n.isFormData(y)||n.isArrayBuffer(y)||n.isBuffer(y)||n.isStream(y)||n.isFile(y)||n.isBlob(y)?y:n.isArrayBufferView(y)?y.buffer:n.isURLSearchParams(y)?(c(v,"application/x-www-form-urlencoded;charset=utf-8"),y.toString()):n.isObject(y)||v&&v["Content-Type"]==="application/json"?(c(v,"application/json"),p(y)):y}],transformResponse:[function(y){var v=this.transitional||h.transitional,S=v&&v.silentJSONParsing,j=v&&v.forcedJSONParsing,w=!S&&this.responseType==="json";if(w||j&&n.isString(y)&&y.length)try{return JSON.parse(y)}catch(x){if(w)throw x.name==="SyntaxError"?o(x,this,"E_JSON_PARSE"):x}return y}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(y){return y>=200&&y<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};return n.forEach(["delete","get","head"],function(y){h.headers[y]={}}),n.forEach(["post","put","patch"],function(y){h.headers[y]=n.merge(s)}),Ef=h,Ef}var Cf,lg;function GS(){if(lg)return Cf;lg=1;var n=Gt(),r=yd();return Cf=function(l,s,c){var f=this||r;return n.forEach(c,function(h){l=h.call(f,l,s)}),l},Cf}var Rf,og;function ty(){return og||(og=1,Rf=function(r){return!!(r&&r.__CANCEL__)}),Rf}var Tf,sg;function VS(){if(sg)return Tf;sg=1;var n=Gt(),r=GS(),o=ty(),l=yd(),s=Ts();function c(f){if(f.cancelToken&&f.cancelToken.throwIfRequested(),f.signal&&f.signal.aborted)throw new s("canceled")}return Tf=function(p){c(p),p.headers=p.headers||{},p.data=r.call(p,p.data,p.headers,p.transformRequest),p.headers=n.merge(p.headers.common||{},p.headers[p.method]||{},p.headers),n.forEach(["delete","get","head","post","put","patch","common"],function(y){delete p.headers[y]});var h=p.adapter||l.adapter;return h(p).then(function(y){return c(p),y.data=r.call(p,y.data,y.headers,p.transformResponse),y},function(y){return o(y)||(c(p),y&&y.response&&(y.response.data=r.call(p,y.response.data,y.response.headers,p.transformResponse))),Promise.reject(y)})},Tf}var jf,ug;function ny(){if(ug)return jf;ug=1;var n=Gt();return jf=function(o,l){l=l||{};var s={};function c(v,S){return n.isPlainObject(v)&&n.isPlainObject(S)?n.merge(v,S):n.isPlainObject(S)?n.merge({},S):n.isArray(S)?S.slice():S}function f(v){if(n.isUndefined(l[v])){if(!n.isUndefined(o[v]))return c(void 0,o[v])}else return c(o[v],l[v])}function p(v){if(!n.isUndefined(l[v]))return c(void 0,l[v])}function h(v){if(n.isUndefined(l[v])){if(!n.isUndefined(o[v]))return c(void 0,o[v])}else return c(void 0,l[v])}function g(v){if(v in l)return c(o[v],l[v]);if(v in o)return c(void 0,o[v])}var y={url:p,method:p,data:p,baseURL:h,transformRequest:h,transformResponse:h,paramsSerializer:h,timeout:h,timeoutMessage:h,withCredentials:h,adapter:h,responseType:h,xsrfCookieName:h,xsrfHeaderName:h,onUploadProgress:h,onDownloadProgress:h,decompress:h,maxContentLength:h,maxBodyLength:h,transport:h,httpAgent:h,httpsAgent:h,cancelToken:h,socketPath:h,responseEncoding:h,validateStatus:g};return n.forEach(Object.keys(o).concat(Object.keys(l)),function(S){var j=y[S]||f,w=j(S);n.isUndefined(w)&&j!==g||(s[S]=w)}),s},jf}var Of,cg;function ay(){return cg||(cg=1,Of={version:"0.26.1"}),Of}var Nf,fg;function XS(){if(fg)return Nf;fg=1;var n=ay().version,r={};["object","boolean","number","function","string","symbol"].forEach(function(s,c){r[s]=function(p){return typeof p===s||"a"+(c<1?"n ":" ")+s}});var o={};r.transitional=function(c,f,p){function h(g,y){return"[Axios v"+n+"] Transitional option '"+g+"'"+y+(p?". "+p:"")}return function(g,y,v){if(c===!1)throw new Error(h(y," has been removed"+(f?" in "+f:"")));return f&&!o[y]&&(o[y]=!0,console.warn(h(y," has been deprecated since v"+f+" and will be removed in the near future"))),c?c(g,y,v):!0}};function l(s,c,f){if(typeof s!="object")throw new TypeError("options must be an object");for(var p=Object.keys(s),h=p.length;h-- >0;){var g=p[h],y=c[g];if(y){var v=s[g],S=v===void 0||y(v,g,s);if(S!==!0)throw new TypeError("option "+g+" must be "+S);continue}if(f!==!0)throw Error("Unknown option "+g)}}return Nf={assertOptions:l,validators:r},Nf}var _f,dg;function FS(){if(dg)return _f;dg=1;var n=Gt(),r=Iv(),o=zS(),l=VS(),s=ny(),c=XS(),f=c.validators;function p(h){this.defaults=h,this.interceptors={request:new o,response:new o}}return p.prototype.request=function(g,y){typeof g=="string"?(y=y||{},y.url=g):y=g||{},y=s(this.defaults,y),y.method?y.method=y.method.toLowerCase():this.defaults.method?y.method=this.defaults.method.toLowerCase():y.method="get";var v=y.transitional;v!==void 0&&c.assertOptions(v,{silentJSONParsing:f.transitional(f.boolean),forcedJSONParsing:f.transitional(f.boolean),clarifyTimeoutError:f.transitional(f.boolean)},!1);var S=[],j=!0;this.interceptors.request.forEach(function(N){typeof N.runWhen=="function"&&N.runWhen(y)===!1||(j=j&&N.synchronous,S.unshift(N.fulfilled,N.rejected))});var w=[];this.interceptors.response.forEach(function(N){w.push(N.fulfilled,N.rejected)});var x;if(!j){var _=[l,void 0];for(Array.prototype.unshift.apply(_,S),_=_.concat(w),x=Promise.resolve(y);_.length;)x=x.then(_.shift(),_.shift());return x}for(var T=y;S.length;){var E=S.shift(),O=S.shift();try{T=E(T)}catch(A){O(A);break}}try{x=l(T)}catch(A){return Promise.reject(A)}for(;w.length;)x=x.then(w.shift(),w.shift());return x},p.prototype.getUri=function(g){return g=s(this.defaults,g),r(g.url,g.params,g.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],function(g){p.prototype[g]=function(y,v){return this.request(s(v||{},{method:g,url:y,data:(v||{}).data}))}}),n.forEach(["post","put","patch"],function(g){p.prototype[g]=function(y,v,S){return this.request(s(S||{},{method:g,url:y,data:v}))}}),_f=p,_f}var Af,pg;function KS(){if(pg)return Af;pg=1;var n=Ts();function r(o){if(typeof o!="function")throw new TypeError("executor must be a function.");var l;this.promise=new Promise(function(f){l=f});var s=this;this.promise.then(function(c){if(s._listeners){var f,p=s._listeners.length;for(f=0;f{const[s,c]=R.useState([]),[f,p]=R.useState(0),[h,g]=R.useState(!1),[y,v]=R.useState(r.includes(n.id)),[S,j]=R.useState(!1),w=R.useRef(null),{user:x}=R.useContext(mn),_=["bg-blue-200","bg-green-200","bg-yellow-200","bg-red-200","bg-purple-200","bg-pink-200","bg-teal-200","bg-orange-200"],T=()=>n.hiringStatus<0?"bg-red-500":n.hiringStatus===0?"bg-yellow-500":"bg-green-500",E=()=>n.hiringStatus<0?"Lab not seeking applicants":n.hiringStatus===0?"Lab open to applicants":"Lab seeking applicants";R.useEffect(()=>{r&&v(r.includes(n.id))},[r]),R.useEffect(()=>{if(!w.current)return;const V=()=>{const M=w.current;if(!M)return;const C=M.clientWidth;let L=0;const D=[];p(0);const z=document.createElement("span");z.className="bg-blue-200 text-gray-900 text-xs rounded px-1 py-0.5 mt-2 mr-2",z.style.visibility="hidden",z.style.position="absolute",document.body.appendChild(z);for(let Y=0;YC&&(D.pop(),p(n.departments.length-D.length))}document.body.removeChild(z),c(D)};return V(),window.addEventListener("resize",V),()=>window.removeEventListener("resize",V)},[n]);const O=V=>{V.stopPropagation(),n.favorites=y?n.favorites-1:n.favorites+1,n.favorites<0&&(n.favorites=0),o(n.id,!y)},A=()=>{S||(Ct.put(`listings/${n.id}/addView`,{withCredentials:!0}).catch(V=>{console.log("Could not add view for listing"),n.views=n.views-1}),n.views=n.views+1,j(!0)),l(n)},N=V=>V?V.startsWith("http://")||V.startsWith("https://")?V:`https://${V}`:"";return n?m.jsx("div",{className:"mb-4 relative",children:m.jsxs("div",{className:"flex relative z-10 rounded-md shadow",children:[m.jsx("div",{className:`${T()} cursor-pointer rounded-l flex-shrink-0 relative`,style:{width:"6px"},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:h&&m.jsx("div",{className:`${T()} absolute top-1/2 left-4 -translate-y-1/2 text-white text-xs rounded-full py-1 px-2 z-10 whitespace-nowrap shadow`,children:E()})}),m.jsxs("div",{className:"p-4 flex-grow grid grid-cols-3 md:grid-cols-12 cursor-pointer bg-white hover:bg-gray-100 border border-gray-300 rounded-r",onClick:A,children:[m.jsxs("div",{className:"col-span-2 md:col-span-4",children:[m.jsx("p",{className:"text-lg font-semibold mb-3",style:{lineHeight:"1.2rem",height:"1.2rem",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.title}),m.jsxs("p",{className:"text-sm text-gray-700",style:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:1,WebkitBoxOrient:"vertical"},children:["Professors: ",[`${n.ownerFirstName} ${n.ownerLastName}`,...n.professorNames].join(", ")]}),m.jsx("div",{ref:w,className:"flex overflow-hidden",style:{whiteSpace:"nowrap"},children:s.length>0?m.jsxs(m.Fragment,{children:[s.map(V=>m.jsx("span",{className:`${Object.keys(It).includes(V)?_[It[V]]:"bg-gray-200"} text-gray-900 text-xs rounded px-1 py-0.5 mt-3 mr-2`,style:{display:"inline-block",whiteSpace:"nowrap"},children:V},V)),f>0&&m.jsxs("span",{className:"bg-gray-200 text-gray-900 text-xs rounded px-1 py-0.5 mt-3",style:{display:"inline-block",whiteSpace:"nowrap"},children:["+",f," more"]})]}):m.jsx("div",{className:"mt-3 flex",children:m.jsx("span",{className:"invisible bg-gray-200 text-gray-900 text-xs rounded px-1 py-0.5 mr-2",style:{display:"inline-block"},children:"placeholder"})})})]}),m.jsxs("div",{className:"col-span-6 hidden md:flex align-middle",children:[m.jsx("div",{className:"flex-shrink-0 border-l border-gray-300 mx-4"}),m.jsx("p",{className:"flex-grow text-gray-800 text-sm overflow-hidden overflow-ellipsis",style:{display:"-webkit-box",WebkitLineClamp:4,WebkitBoxOrient:"vertical"},children:n.description})]}),m.jsxs("div",{className:"flex flex-col col-span-1 md:col-span-2 items-end",children:[m.jsxs("div",{children:[n.websites&&n.websites.length>0&&m.jsx("a",{href:N(n.websites[0]),className:"mr-1",onClick:V=>V.stopPropagation(),target:"_blank",rel:"noopener noreferrer",children:m.jsx("button",{className:"p-1 rounded-full hover:bg-gray-200",children:m.jsx("img",{src:"/assets/icons/new-link.png",alt:"Lab Website",className:"w-5 h-5"})})}),m.jsx("a",{onClick:O,className:"inline-block",children:m.jsx("button",{className:"p-1 hover:bg-gray-200 rounded-full","aria-label":y?"Remove from favorites":"Add to favorites",children:m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",className:"transition-colors",fill:y?"#FFDA7B":"none",stroke:y?"#F0C04A":"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:m.jsx("path",{d:"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z"})})})})]}),m.jsx("div",{className:"flex-grow"}),m.jsx("p",{className:"text-[8px] mb-0.5 text-gray-700",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%"},children:"Last Update"}),m.jsx("p",{className:"text-sm text-gray-700",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%"},children:new Date(n.updatedAt).toLocaleDateString()})]})]})]},n.id)}):null},iy=({sortBy:n,setSortBy:r,sortOptions:o,searchHub:l})=>{var S;const[s,c]=R.useState(!1),[f,p]=R.useState(-1),h=R.useRef(null),g=R.useRef(null),y=j=>{r(j),c(!1),g.current&&g.current.blur()},v=j=>{switch(j.key){case"ArrowDown":j.preventDefault(),p(w=>ww>0?w-1:0);break;case"Enter":j.preventDefault(),f>=0&&fj.value===n))==null?void 0:S.label)||"",onClick:()=>{c(!0)},onKeyDown:v,onFocus:()=>c(!0),onBlur:()=>{setTimeout(()=>{var j;(j=h.current)!=null&&j.contains(document.activeElement)||c(!1)},100)},className:`appearance-none border rounded w-full ${l?"h-full":"py-2"} px-3 pr-10 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-pointer`}),m.jsx("div",{className:"absolute inset-y-0 right-0 flex items-center px-2 text-gray-700 cursor-pointer",onClick:()=>{c(!s),!s&&g.current&&g.current.focus()},children:m.jsx("svg",{className:"fill-current h-4 w-4",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:m.jsx("path",{d:"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"})})})]}),s&&m.jsx("div",{className:"absolute left-0 right-0 bg-white rounded-lg z-30 shadow-lg border overflow-hidden mt-1 max-h-[350px] border-gray-300",tabIndex:-1,children:m.jsx("ul",{className:"max-h-[350px] overflow-y-auto",tabIndex:-1,children:o.map((j,w)=>m.jsxs("li",{onClick:()=>y(j.value),className:`p-2 cursor-pointer flex items-center justify-between ${f===w?"bg-blue-100":"hover:bg-gray-100"}`,tabIndex:-1,onMouseDown:x=>x.preventDefault(),children:[m.jsx("span",{children:j.label}),n===j.value&&m.jsx("svg",{className:"h-4 w-4 text-blue-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M5 13l4 4L19 7"})})]},w))})})]})})};var Pt={};function nw(n){if(n.sheet)return n.sheet;for(var r=0;r0?Rt(hi,--Yt):0,si--,ht===10&&(si=1,Os--),ht}function Zt(){return ht=Yt2||El(ht)>3?"":" "}function mw(n,r){for(;--r&&Zt()&&!(ht<48||ht>102||ht>57&&ht<65||ht>70&&ht<97););return Al(n,cs()+(r<6&&Bn()==32&&Zt()==32))}function Jf(n){for(;Zt();)switch(ht){case n:return Yt;case 34:case 39:n!==34&&n!==39&&Jf(ht);break;case 40:n===41&&Jf(n);break;case 92:Zt();break}return Yt}function gw(n,r){for(;Zt()&&n+ht!==57;)if(n+ht===84&&Bn()===47)break;return"/*"+Al(r,Yt-1)+"*"+js(n===47?n:Zt())}function vw(n){for(;!El(Bn());)Zt();return Al(n,Yt)}function yw(n){return fy(ds("",null,null,null,[""],n=cy(n),0,[0],n))}function ds(n,r,o,l,s,c,f,p,h){for(var g=0,y=0,v=f,S=0,j=0,w=0,x=1,_=1,T=1,E=0,O="",A=s,N=c,V=l,M=O;_;)switch(w=E,E=Zt()){case 40:if(w!=108&&Rt(M,v-1)==58){Wf(M+=Ue(fs(E),"&","&\f"),"&\f")!=-1&&(T=-1);break}case 34:case 39:case 91:M+=fs(E);break;case 9:case 10:case 13:case 32:M+=hw(w);break;case 92:M+=mw(cs()-1,7);continue;case 47:switch(Bn()){case 42:case 47:rs(bw(gw(Zt(),cs()),r,o),h);break;default:M+="/"}break;case 123*x:p[g++]=zn(M)*T;case 125*x:case 59:case 0:switch(E){case 0:case 125:_=0;case 59+y:T==-1&&(M=Ue(M,/\f/g,"")),j>0&&zn(M)-v&&rs(j>32?bg(M+";",l,o,v-1):bg(Ue(M," ","")+";",l,o,v-2),h);break;case 59:M+=";";default:if(rs(V=yg(M,r,o,g,y,s,p,O,A=[],N=[],v),c),E===123)if(y===0)ds(M,r,V,V,A,c,v,p,N);else switch(S===99&&Rt(M,3)===110?100:S){case 100:case 108:case 109:case 115:ds(n,V,V,l&&rs(yg(n,V,V,0,0,s,p,O,s,A=[],v),N),s,N,v,p,l?A:N);break;default:ds(M,V,V,V,[""],N,0,p,N)}}g=y=j=0,x=T=1,O=M="",v=f;break;case 58:v=1+zn(M),j=w;default:if(x<1){if(E==123)--x;else if(E==125&&x++==0&&pw()==125)continue}switch(M+=js(E),E*x){case 38:T=y>0?1:(M+="\f",-1);break;case 44:p[g++]=(zn(M)-1)*T,T=1;break;case 64:Bn()===45&&(M+=fs(Zt())),S=Bn(),y=v=zn(O=M+=vw(cs())),E++;break;case 45:w===45&&zn(M)==2&&(x=0)}}return c}function yg(n,r,o,l,s,c,f,p,h,g,y){for(var v=s-1,S=s===0?c:[""],j=Sd(S),w=0,x=0,_=0;w0?S[T]+" "+E:Ue(E,/&\f/g,S[T])))&&(h[_++]=O);return Ns(n,r,o,s===0?bd:p,h,g,y)}function bw(n,r,o){return Ns(n,r,o,ly,js(dw()),wl(n,2,-2),0)}function bg(n,r,o,l){return Ns(n,r,o,xd,wl(n,0,l),wl(n,l+1,-1),l)}function li(n,r){for(var o="",l=Sd(n),s=0;s6)switch(Rt(n,r+1)){case 109:if(Rt(n,r+4)!==45)break;case 102:return Ue(n,/(.+:)(.+)-([^]+)/,"$1"+Be+"$2-$3$1"+gs+(Rt(n,r+3)==108?"$3":"$2-$3"))+n;case 115:return~Wf(n,"stretch")?py(Ue(n,"stretch","fill-available"),r)+n:n}break;case 4949:if(Rt(n,r+1)!==115)break;case 6444:switch(Rt(n,zn(n)-3-(~Wf(n,"!important")&&10))){case 107:return Ue(n,":",":"+Be)+n;case 101:return Ue(n,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Be+(Rt(n,14)===45?"inline-":"")+"box$3$1"+Be+"$2$3$1"+_t+"$2box$3")+n}break;case 5936:switch(Rt(n,r+11)){case 114:return Be+n+_t+Ue(n,/[svh]\w+-[tblr]{2}/,"tb")+n;case 108:return Be+n+_t+Ue(n,/[svh]\w+-[tblr]{2}/,"tb-rl")+n;case 45:return Be+n+_t+Ue(n,/[svh]\w+-[tblr]{2}/,"lr")+n}return Be+n+_t+n+n}return n}var Ow=function(r,o,l,s){if(r.length>-1&&!r.return)switch(r.type){case xd:r.return=py(r.value,r.length);break;case oy:return li([cl(r,{value:Ue(r.value,"@","@"+Be)})],s);case bd:if(r.length)return fw(r.props,function(c){switch(cw(c,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return li([cl(r,{props:[Ue(c,/:(read-\w+)/,":"+gs+"$1")]})],s);case"::placeholder":return li([cl(r,{props:[Ue(c,/:(plac\w+)/,":"+Be+"input-$1")]}),cl(r,{props:[Ue(c,/:(plac\w+)/,":"+gs+"$1")]}),cl(r,{props:[Ue(c,/:(plac\w+)/,_t+"input-$1")]})],s)}return""})}},Nw=[Ow],hy=function(r){var o=r.key;if(o==="css"){var l=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(l,function(x){var _=x.getAttribute("data-emotion");_.indexOf(" ")!==-1&&(document.head.appendChild(x),x.setAttribute("data-s",""))})}var s=r.stylisPlugins||Nw,c={},f,p=[];f=r.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+o+' "]'),function(x){for(var _=x.getAttribute("data-emotion").split(" "),T=1;T<_.length;T++)c[_[T]]=!0;p.push(x)});var h,g=[Tw,jw];{var y,v=[xw,ww(function(x){y.insert(x)})],S=Sw(g.concat(s,v)),j=function(_){return li(yw(_),S)};h=function(_,T,E,O){y=E,j(_?_+"{"+T.styles+"}":T.styles),O&&(w.inserted[T.name]=!0)}}var w={key:o,sheet:new rw({key:o,container:f,nonce:r.nonce,speedy:r.speedy,prepend:r.prepend,insertionPoint:r.insertionPoint}),nonce:r.nonce,inserted:c,registered:{},insert:h};return w.sheet.hydrate(p),w};function ee(){return ee=Object.assign?Object.assign.bind():function(n){for(var r=1;r=4;++l,s-=4)o=n.charCodeAt(l)&255|(n.charCodeAt(++l)&255)<<8|(n.charCodeAt(++l)&255)<<16|(n.charCodeAt(++l)&255)<<24,o=(o&65535)*1540483477+((o>>>16)*59797<<16),o^=o>>>24,r=(o&65535)*1540483477+((o>>>16)*59797<<16)^(r&65535)*1540483477+((r>>>16)*59797<<16);switch(s){case 3:r^=(n.charCodeAt(l+2)&255)<<16;case 2:r^=(n.charCodeAt(l+1)&255)<<8;case 1:r^=n.charCodeAt(l)&255,r=(r&65535)*1540483477+((r>>>16)*59797<<16)}return r^=r>>>13,r=(r&65535)*1540483477+((r>>>16)*59797<<16),((r^r>>>15)>>>0).toString(36)}var Lw={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Bw=/[A-Z]|^ms/g,Uw=/_EMO_([^_]+?)_([^]*?)_EMO_/g,vy=function(r){return r.charCodeAt(1)===45},Rg=function(r){return r!=null&&typeof r!="boolean"},Bf=dy(function(n){return vy(n)?n:n.replace(Bw,"-$&").toLowerCase()}),Tg=function(r,o){switch(r){case"animation":case"animationName":if(typeof o=="string")return o.replace(Uw,function(l,s,c){return Ln={name:s,styles:c,next:Ln},s})}return Lw[r]!==1&&!vy(r)&&typeof o=="number"&&o!==0?o+"px":o};function Cl(n,r,o){if(o==null)return"";var l=o;if(l.__emotion_styles!==void 0)return l;switch(typeof o){case"boolean":return"";case"object":{var s=o;if(s.anim===1)return Ln={name:s.name,styles:s.styles,next:Ln},s.name;var c=o;if(c.styles!==void 0){var f=c.next;if(f!==void 0)for(;f!==void 0;)Ln={name:f.name,styles:f.styles,next:Ln},f=f.next;var p=c.styles+";";return p}return $w(n,r,o)}case"function":{if(n!==void 0){var h=Ln,g=o(n);return Ln=h,Cl(n,r,g)}break}}var y=o;if(r==null)return y;var v=r[y];return v!==void 0?v:y}function $w(n,r,o){var l="";if(Array.isArray(o))for(var s=0;s{const A=new IntersectionObserver(V=>{const[M]=V;M.isIntersecting&&!n&&!r&&o(C=>C+1)},{threshold:1}),N=_.current;return N&&A.observe(N),()=>{N&&A.unobserve(N)}},[n,r,o]);const T=[{value:"default",label:"Sort by: Best Match"},{value:"updatedAt",label:"Sort by: Last Updated"},{value:"ownerLastName",label:"Sort by: Last Name"},{value:"ownerFirstName",label:"Sort by: First Name"},{value:"title",label:"Sort by: Lab Title"}],E=A=>{x(A.id),j(!0)},O=()=>{window.scrollTo({top:0,behavior:"smooth"})};return m.jsxs("div",{className:"flex flex-col items-center relative pb-4",children:[!n&&w!==null&&m.jsx(DS,{listing:l.find(A=>A.id===w),onClose:()=>{j(!1),x(null)},isOpen:S,favListingsIds:y,updateFavorite:v}),m.jsxs("div",{className:"mb-4 flex justify-between w-full md:hidden",children:[m.jsx(iy,{sortBy:c,setSortBy:f,sortOptions:T,searchHub:!1}),c!=="default"&&m.jsx("button",{onClick:()=>{n||g()},className:"p-2 flex items-center justify-center","aria-label":h==="asc"?"Sort ascending":"Sort descending",children:m.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:`transition-transform duration-300 ease-in-out transform ${h==="asc"?"rotate-0":"rotate-180"}`,children:m.jsx("path",{d:"M12 5l7 7-1.41 1.41L13 8.83V19h-2V8.83L6.41 13.41 5 12l7-7z",fill:"currentColor"})})})]}),m.jsxs("div",{className:"w-full",children:[l.map(A=>m.jsx(tw,{favListingsIds:y,listing:A,updateFavorite:v,openModal:E},A.id)),!r&&m.jsx("div",{ref:_,className:"h-10 w-full"})]}),n&&m.jsx("div",{className:"flex justify-center items-center mt-4",children:m.jsx(Ms,{color:"#3b82f6",size:15})}),m.jsx("button",{onClick:()=>{n||O()},className:"fixed bottom-4 right-4 lg:bottom-6 lg:right-6 bg-blue-500 text-white p-0.5 rounded-full shadow-[0_3.5px_3px_rgba(0,0,0,0.3)] transition-all duration-200 z-10 group","aria-label":"Scroll to top",children:m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"35",height:"35",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"transition-opacity duration-200 opacity-70 group-hover:opacity-100",children:m.jsx("polyline",{points:"18 15 12 7.5 6 15"})})})]})}var ps={exports:{}},cE=ps.exports,Dg;function fE(){return Dg||(Dg=1,function(n,r){(function(o,l){n.exports=l()})(cE,function(){return function(o){function l(c){if(s[c])return s[c].exports;var f=s[c]={i:c,l:!1,exports:{}};return o[c].call(f.exports,f,f.exports,l),f.l=!0,f.exports}var s={};return l.m=o,l.c=s,l.d=function(c,f,p){l.o(c,f)||Object.defineProperty(c,f,{configurable:!1,enumerable:!0,get:p})},l.n=function(c){var f=c&&c.__esModule?function(){return c.default}:function(){return c};return l.d(f,"a",f),f},l.o=function(c,f){return Object.prototype.hasOwnProperty.call(c,f)},l.p="",l(l.s=8)}([function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c="swal-button";l.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:c,CONFIRM_BUTTON:c+"--confirm",CANCEL_BUTTON:c+"--cancel",DANGER_BUTTON:c+"--danger",BUTTON_LOADING:c+"--loading",BUTTON_LOADER:c+"__loader"},l.default=l.CLASS_NAMES},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0}),l.getNode=function(c){var f="."+c;return document.querySelector(f)},l.stringToNode=function(c){var f=document.createElement("div");return f.innerHTML=c.trim(),f.firstChild},l.insertAfter=function(c,f){var p=f.nextSibling;f.parentNode.insertBefore(c,p)},l.removeNode=function(c){c.parentElement.removeChild(c)},l.throwErr=function(c){throw c=c.replace(/ +(?= )/g,""),"SweetAlert: "+(c=c.trim())},l.isPlainObject=function(c){if(Object.prototype.toString.call(c)!=="[object Object]")return!1;var f=Object.getPrototypeOf(c);return f===null||f===Object.prototype},l.ordinalSuffixOf=function(c){var f=c%10,p=c%100;return f===1&&p!==11?c+"st":f===2&&p!==12?c+"nd":f===3&&p!==13?c+"rd":c+"th"}},function(o,l,s){function c(S){for(var j in S)l.hasOwnProperty(j)||(l[j]=S[j])}Object.defineProperty(l,"__esModule",{value:!0}),c(s(25));var f=s(26);l.overlayMarkup=f.default,c(s(27)),c(s(28)),c(s(29));var p=s(0),h=p.default.MODAL_TITLE,g=p.default.MODAL_TEXT,y=p.default.ICON,v=p.default.FOOTER;l.iconMarkup=` -
',l.titleMarkup=` -
-`,l.textMarkup=` -
',l.footerMarkup=` -
-`},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(1);l.CONFIRM_KEY="confirm",l.CANCEL_KEY="cancel";var f={visible:!0,text:null,value:null,className:"",closeModal:!0},p=Object.assign({},f,{visible:!1,text:"Cancel",value:null}),h=Object.assign({},f,{text:"OK",value:!0});l.defaultButtonList={cancel:p,confirm:h};var g=function(j){switch(j){case l.CONFIRM_KEY:return h;case l.CANCEL_KEY:return p;default:var w=j.charAt(0).toUpperCase()+j.slice(1);return Object.assign({},f,{text:w,value:j})}},y=function(j,w){var x=g(j);return w===!0?Object.assign({},x,{visible:!0}):typeof w=="string"?Object.assign({},x,{visible:!0,text:w}):c.isPlainObject(w)?Object.assign({visible:!0},x,w):Object.assign({},x,{visible:!1})},v=function(j){for(var w={},x=0,_=Object.keys(j);x<_.length;x++){var T=_[x],E=j[T],O=y(T,E);w[T]=O}return w.cancel||(w.cancel=p),w},S=function(j){var w={};switch(j.length){case 1:w[l.CANCEL_KEY]=Object.assign({},p,{visible:!1});break;case 2:w[l.CANCEL_KEY]=y(l.CANCEL_KEY,j[0]),w[l.CONFIRM_KEY]=y(l.CONFIRM_KEY,j[1]);break;default:c.throwErr("Invalid number of 'buttons' in array ("+j.length+`). - If you want more than 2 buttons, you need to use an object!`)}return w};l.getButtonListOpts=function(j){var w=l.defaultButtonList;return typeof j=="string"?w[l.CONFIRM_KEY]=y(l.CONFIRM_KEY,j):Array.isArray(j)?w=S(j):c.isPlainObject(j)?w=v(j):j===!0?w=S([!0,!0]):j===!1?w=S([!1,!1]):j===void 0&&(w=l.defaultButtonList),w}},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(1),f=s(2),p=s(0),h=p.default.MODAL,g=p.default.OVERLAY,y=s(30),v=s(31),S=s(32),j=s(33);l.injectElIntoModal=function(T){var E=c.getNode(h),O=c.stringToNode(T);return E.appendChild(O),O};var w=function(T){T.className=h,T.textContent=""},x=function(T,E){w(T);var O=E.className;O&&T.classList.add(O)};l.initModalContent=function(T){var E=c.getNode(h);x(E,T),y.default(T.icon),v.initTitle(T.title),v.initText(T.text),j.default(T.content),S.default(T.buttons,T.dangerMode)};var _=function(){var T=c.getNode(g),E=c.stringToNode(f.modalMarkup);T.appendChild(E)};l.default=_},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(3),f={isOpen:!1,promise:null,actions:{},timer:null},p=Object.assign({},f);l.resetState=function(){p=Object.assign({},f)},l.setActionValue=function(g){if(typeof g=="string")return h(c.CONFIRM_KEY,g);for(var y in g)h(y,g[y])};var h=function(g,y){p.actions[g]||(p.actions[g]={}),Object.assign(p.actions[g],{value:y})};l.setActionOptionsFor=function(g,y){var v=(y===void 0?{}:y).closeModal,S=v===void 0||v;Object.assign(p.actions[g],{closeModal:S})},l.default=p},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(1),f=s(3),p=s(0),h=p.default.OVERLAY,g=p.default.SHOW_MODAL,y=p.default.BUTTON,v=p.default.BUTTON_LOADING,S=s(5);l.openModal=function(){c.getNode(h).classList.add(g),S.default.isOpen=!0};var j=function(){c.getNode(h).classList.remove(g),S.default.isOpen=!1};l.onAction=function(w){w===void 0&&(w=f.CANCEL_KEY);var x=S.default.actions[w],_=x.value;if(x.closeModal===!1){var T=y+"--"+w;c.getNode(T).classList.add(v)}else j();S.default.promise.resolve(_)},l.getState=function(){var w=Object.assign({},S.default);return delete w.promise,delete w.timer,w},l.stopLoading=function(){for(var w=document.querySelectorAll("."+y),x=0;x=0&&N.splice(L,1)}function g(C){var L=document.createElement("style");return C.attrs.type="text/css",v(L,C.attrs),p(C,L),L}function y(C){var L=document.createElement("link");return C.attrs.type="text/css",C.attrs.rel="stylesheet",v(L,C.attrs),p(C,L),L}function v(C,L){Object.keys(L).forEach(function(D){C.setAttribute(D,L[D])})}function S(C,L){var D,z,Y,K;if(L.transform&&C.css){if(!(K=L.transform(C.css)))return function(){};C.css=K}if(L.singleton){var ie=A++;D=O||(O=g(L)),z=j.bind(null,D,ie,!1),Y=j.bind(null,D,ie,!0)}else C.sourceMap&&typeof URL=="function"&&typeof URL.createObjectURL=="function"&&typeof URL.revokeObjectURL=="function"&&typeof Blob=="function"&&typeof btoa=="function"?(D=y(L),z=x.bind(null,D,L),Y=function(){h(D),D.href&&URL.revokeObjectURL(D.href)}):(D=g(L),z=w.bind(null,D),Y=function(){h(D)});return z(C),function(le){if(le){if(le.css===C.css&&le.media===C.media&&le.sourceMap===C.sourceMap)return;z(C=le)}else Y()}}function j(C,L,D,z){var Y=D?"":z.css;if(C.styleSheet)C.styleSheet.cssText=M(L,Y);else{var K=document.createTextNode(Y),ie=C.childNodes;ie[L]&&C.removeChild(ie[L]),ie.length?C.insertBefore(K,ie[L]):C.appendChild(K)}}function w(C,L){var D=L.css,z=L.media;if(z&&C.setAttribute("media",z),C.styleSheet)C.styleSheet.cssText=D;else{for(;C.firstChild;)C.removeChild(C.firstChild);C.appendChild(document.createTextNode(D))}}function x(C,L,D){var z=D.css,Y=D.sourceMap,K=L.convertToAbsoluteUrls===void 0&&Y;(L.convertToAbsoluteUrls||K)&&(z=V(z)),Y&&(z+=` -/*# sourceMappingURL=data:application/json;base64,`+btoa(unescape(encodeURIComponent(JSON.stringify(Y))))+" */");var ie=new Blob([z],{type:"text/css"}),le=C.href;C.href=URL.createObjectURL(ie),le&&URL.revokeObjectURL(le)}var _={},T=function(C){var L;return function(){return L===void 0&&(L=C.apply(this,arguments)),L}}(function(){return window&&document&&document.all&&!window.atob}),E=function(C){var L={};return function(D){return L[D]===void 0&&(L[D]=C.call(this,D)),L[D]}}(function(C){return document.querySelector(C)}),O=null,A=0,N=[],V=s(15);o.exports=function(C,L){if(typeof DEBUG<"u"&&DEBUG&&typeof document!="object")throw new Error("The style-loader cannot be used in a non-browser environment");L=L||{},L.attrs=typeof L.attrs=="object"?L.attrs:{},L.singleton||(L.singleton=T()),L.insertInto||(L.insertInto="head"),L.insertAt||(L.insertAt="bottom");var D=f(C,L);return c(D,L),function(z){for(var Y=[],K=0;K"u"||window.Promise||(window.Promise=c),s(21),String.prototype.includes||(String.prototype.includes=function(f,p){return typeof p!="number"&&(p=0),!(p+f.length>this.length)&&this.indexOf(f,p)!==-1}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(f,p){if(this==null)throw new TypeError('"this" is null or not defined');var h=Object(this),g=h.length>>>0;if(g===0)return!1;for(var y=0|p,v=Math.max(y>=0?y:g-Math.abs(y),0);v=0&&(p._idleTimeoutId=setTimeout(function(){p._onTimeout&&p._onTimeout()},h))},s(19),l.setImmediate=setImmediate,l.clearImmediate=clearImmediate},function(o,l,s){(function(c,f){(function(p,h){function g(O){typeof O!="function"&&(O=new Function(""+O));for(var A=new Array(arguments.length-1),N=0;N"u"?c===void 0?this:c:self)}).call(l,s(7),s(20))},function(o,l){function s(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function f(O){if(S===setTimeout)return setTimeout(O,0);if((S===s||!S)&&setTimeout)return S=setTimeout,setTimeout(O,0);try{return S(O,0)}catch{try{return S.call(null,O,0)}catch{return S.call(this,O,0)}}}function p(O){if(j===clearTimeout)return clearTimeout(O);if((j===c||!j)&&clearTimeout)return j=clearTimeout,clearTimeout(O);try{return j(O)}catch{try{return j.call(null,O)}catch{return j.call(this,O)}}}function h(){T&&x&&(T=!1,x.length?_=x.concat(_):E=-1,_.length&&g())}function g(){if(!T){var O=f(h);T=!0;for(var A=_.length;A;){for(x=_,_=[];++E1)for(var N=1;N',l.default=l.modalMarkup},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(0),f=c.default.OVERLAY,p=`
-
`;l.default=p},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(0),f=c.default.ICON;l.errorIconMarkup=function(){var p=f+"--error",h=p+"__line";return` -
- - -
- `},l.warningIconMarkup=function(){var p=f+"--warning";return` - - - - `},l.successIconMarkup=function(){var p=f+"--success";return` - - - -
-
- `}},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(0),f=c.default.CONTENT;l.contentMarkup=` -
- -
-`},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(0),f=c.default.BUTTON_CONTAINER,p=c.default.BUTTON,h=c.default.BUTTON_LOADER;l.buttonMarkup=` -
- - - -
-
-
-
-
- -
-`},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(4),f=s(2),p=s(0),h=p.default.ICON,g=p.default.ICON_CUSTOM,y=["error","warning","success","info"],v={error:f.errorIconMarkup(),warning:f.warningIconMarkup(),success:f.successIconMarkup()},S=function(x,_){var T=h+"--"+x;_.classList.add(T);var E=v[x];E&&(_.innerHTML=E)},j=function(x,_){_.classList.add(g);var T=document.createElement("img");T.src=x,_.appendChild(T)},w=function(x){if(x){var _=c.injectElIntoModal(f.iconMarkup);y.includes(x)?S(x,_):j(x,_)}};l.default=w},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(2),f=s(4),p=function(h){navigator.userAgent.includes("AppleWebKit")&&(h.style.display="none",h.offsetHeight,h.style.display="")};l.initTitle=function(h){if(h){var g=f.injectElIntoModal(c.titleMarkup);g.textContent=h,p(g)}},l.initText=function(h){if(h){var g=document.createDocumentFragment();h.split(` -`).forEach(function(v,S,j){g.appendChild(document.createTextNode(v)),S0}).forEach(function(z){C.classList.add(z)}),E&&_===y.CONFIRM_KEY&&C.classList.add(g),C.textContent=O;var D={};return D[_]=A,j.setActionValue(D),j.setActionOptionsFor(_,{closeModal:V}),C.addEventListener("click",function(){return S.onAction(_)}),M},x=function(_,T){var E=f.injectElIntoModal(v.footerMarkup);for(var O in _){var A=_[O],N=w(O,A,T);A.visible&&E.appendChild(N)}E.children.length===0&&E.remove()};l.default=x},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(3),f=s(4),p=s(2),h=s(5),g=s(6),y=s(0),v=y.default.CONTENT,S=function(x){x.addEventListener("input",function(_){var T=_.target,E=T.value;h.setActionValue(E)}),x.addEventListener("keyup",function(_){if(_.key==="Enter")return g.onAction(c.CONFIRM_KEY)}),setTimeout(function(){x.focus(),h.setActionValue("")},0)},j=function(x,_,T){var E=document.createElement(_),O=v+"__"+_;E.classList.add(O);for(var A in T){var N=T[A];E[A]=N}_==="input"&&S(E),x.appendChild(E)},w=function(x){if(x){var _=f.injectElIntoModal(p.contentMarkup),T=x.element,E=x.attributes;typeof T=="string"?j(_,T,E):_.appendChild(T)}};l.default=w},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(1),f=s(2),p=function(){var h=c.stringToNode(f.overlayMarkup);document.body.appendChild(h)};l.default=p},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(5),f=s(6),p=s(1),h=s(3),g=s(0),y=g.default.MODAL,v=g.default.BUTTON,S=g.default.OVERLAY,j=function(z){z.preventDefault(),E()},w=function(z){z.preventDefault(),O()},x=function(z){if(c.default.isOpen)switch(z.key){case"Escape":return f.onAction(h.CANCEL_KEY)}},_=function(z){if(c.default.isOpen)switch(z.key){case"Tab":return j(z)}},T=function(z){if(c.default.isOpen)return z.key==="Tab"&&z.shiftKey?w(z):void 0},E=function(){var z=p.getNode(v);z&&(z.tabIndex=0,z.focus())},O=function(){var z=p.getNode(y),Y=z.querySelectorAll("."+v),K=Y.length-1,ie=Y[K];ie&&ie.focus()},A=function(z){z[z.length-1].addEventListener("keydown",_)},N=function(z){z[0].addEventListener("keydown",T)},V=function(){var z=p.getNode(y),Y=z.querySelectorAll("."+v);Y.length&&(A(Y),N(Y))},M=function(z){if(p.getNode(S)===z.target)return f.onAction(h.CANCEL_KEY)},C=function(z){var Y=p.getNode(S);Y.removeEventListener("click",M),z&&Y.addEventListener("click",M)},L=function(z){c.default.timer&&clearTimeout(c.default.timer),z&&(c.default.timer=window.setTimeout(function(){return f.onAction(h.CANCEL_KEY)},z))},D=function(z){z.closeOnEsc?document.addEventListener("keyup",x):document.removeEventListener("keyup",x),z.dangerMode?E():O(),V(),C(z.closeOnClickOutside),L(z.timer)};l.default=D},function(o,l,s){Object.defineProperty(l,"__esModule",{value:!0});var c=s(1),f=s(3),p=s(37),h=s(38),g={title:null,text:null,icon:null,buttons:f.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},y=Object.assign({},g);l.setDefaults=function(T){y=Object.assign({},g,T)};var v=function(T){var E=T&&T.button,O=T&&T.buttons;return E!==void 0&&O!==void 0&&c.throwErr("Cannot set both 'button' and 'buttons' options!"),E!==void 0?{confirm:E}:O},S=function(T){return c.ordinalSuffixOf(T+1)},j=function(T,E){c.throwErr(S(E)+" argument ('"+T+"') is invalid")},w=function(T,E){var O=T+1,A=E[O];c.isPlainObject(A)||A===void 0||c.throwErr("Expected "+S(O)+" argument ('"+A+"') to be a plain object")},x=function(T,E){var O=T+1,A=E[O];A!==void 0&&c.throwErr("Unexpected "+S(O)+" argument ("+A+")")},_=function(T,E,O,A){var N=typeof E,V=N==="string",M=E instanceof Element;if(V){if(O===0)return{text:E};if(O===1)return{text:E,title:A[0]};if(O===2)return w(O,A),{icon:E};j(E,O)}else{if(M&&O===0)return w(O,A),{content:E};if(c.isPlainObject(E))return x(O,A),E;j(E,O)}};l.getOpts=function(){for(var T=[],E=0;E{const r=n._id==="create"?"* Your Lab's Name (or Professor's Name) *":"",o=n._id==="create"?"This is your new listing! Please edit the details and click save to post it. If you click cancel, this listing will be deleted.":"",l=new Date;return{id:n._id,ownerId:n.ownerId,ownerFirstName:n.ownerFirstName,ownerLastName:n.ownerLastName,ownerEmail:n.ownerEmail,professorIds:n.professorIds||[],professorNames:n.professorNames||[],title:n.title||r,departments:n.departments||[],emails:n.emails||[],websites:n.websites||[],description:n.description||o,keywords:n.keywords||[],established:n.established&&n.established.toString(),views:n.views||0,favorites:n.favorites||0,hiringStatus:n.hiringStatus||0,archived:n.archived||!1,updatedAt:n.updatedAt||l.toISOString(),createdAt:n.createdAt||l.toISOString(),confirmed:n.confirmed===void 0?!0:n.confirmed}},pE=({allDepartments:n,resetListings:r,addListings:o,setIsLoading:l,sortBy:s,sortOrder:c,setSortBy:f,setSortOrder:p,sortableKeys:h,page:g,setPage:y,pageSize:v,sortDirection:S,onToggleSortDirection:j})=>{const w=[{value:"default",label:"Sort by: Best Match"},{value:"updatedAt",label:"Sort by: Last Updated"},{value:"ownerLastName",label:"Sort by: Last Name"},{value:"ownerFirstName",label:"Sort by: First Name"},{value:"title",label:"Sort by: Lab Title"}],[x,_]=R.useState([]),[T,E]=R.useState(!1),[O,A]=R.useState(""),[N,V]=R.useState(""),[M,C]=R.useState(-1),L=R.useRef(null),D=R.useRef(null),z=R.useRef(null),Y=R.useRef(null),[K,ie]=R.useState(!1),[le,Z]=R.useState(!1);R.useEffect(()=>{const B=ae=>{L.current&&!L.current.contains(ae.target)&&(E(!1),A(""))};return document.addEventListener("mousedown",B),y(1),se(1),()=>{document.removeEventListener("mousedown",B)}},[]),R.useEffect(()=>{const B=setTimeout(()=>{K&&(y(1),se(1)),ie(!0)},500);return()=>{clearTimeout(B)}},[N]),R.useEffect(()=>{le&&(y(1),se(1)),Z(!0)},[x,s,c]),R.useEffect(()=>{g>1&&se(g)},[g]);const oe=B=>{var ae,he,ge;switch(B.key){case"ArrowDown":B.preventDefault(),C(de=>dede>0?de-1:0);break;case"Enter":B.preventDefault(),M>=0&&M{var ae;B.key==="Enter"&&(B.preventDefault(),(ae=z.current)==null||ae.blur(),J())},pe=B=>{_(ae=>ae.filter(he=>he!==B))},U=B=>{x.indexOf(B)<0?_(ae=>[...ae,B]):pe(B)},re=B=>{A(B.target.value)},P=n.filter(B=>B.toLowerCase().includes(O.toLowerCase())&&x.indexOf(B)<0),Q=()=>{E(!T),A("")},J=()=>{E(!1),A("")},se=B=>{let ae;const he=N.trim(),ge=x.join(","),de=window.location.host.includes("yalelabs.io")?"https://yalelabs.io":"http://localhost:4000";s==="default"?ae=de+`/listings/search?query=${he}&page=${B}&pageSize=${v}`:ae=de+`/listings/search?query=${he}&sortBy=${s}&sortOrder=${c}&page=${B}&pageSize=${v}`,ge&&(ae+=`&departments=${ge}`),l(!0),ry.get(ae,{withCredentials:!0}).then(Ee=>{const _e=Ee.data.results.map(function(we){return cr(we)});B==1?r(_e):o(_e),l(!1)}).catch(Ee=>{console.error("Error loading listings:",Ee),Je({text:"Unable to load listings. Please try again later.",icon:"warning"}),l(!1)})},H=B=>{if(Object.keys(It).includes(B))switch(It[B]){case 0:return"bg-blue-200 text-gray-900";case 1:return"bg-green-200 text-gray-900";case 2:return"bg-yellow-200 text-gray-900";case 3:return"bg-red-200 text-gray-900";case 4:return"bg-purple-200 text-gray-900";case 5:return"bg-pink-200 text-gray-900";case 6:return"bg-teal-200 text-gray-900";case 7:return"bg-orange-200 text-gray-900";default:return"bg-gray-100 text-gray-900"}return"bg-gray-100 text-gray-900"},fe=()=>{_([])};return m.jsxs("div",{className:"relative",children:[m.jsxs("div",{className:"flex-col flex md:flex-row md:items-center gap-4",children:[m.jsx("div",{className:"md:flex-1",children:m.jsx("input",{ref:Y,type:"text",value:N,onChange:B=>V(B.target.value),onKeyDown:B=>{var ae;(B.key==="Enter"||B.key==="Escape")&&(B.preventDefault(),(ae=Y.current)==null||ae.blur())},onFocus:J,placeholder:"Start your search...",className:"px-4 py-2 w-full border rounded text-gray-600 focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-text h-11"})}),m.jsxs("div",{className:"relative w-full md:w-[35%]",ref:L,children:[m.jsxs("button",{ref:z,onClick:Q,onKeyDown:ne,className:"flex items-center justify-between w-full h-11 px-3 py-2 border rounded bg-white text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500",children:[m.jsx("span",{className:"truncate",children:"Filter by department"}),m.jsx("svg",{className:"fill-current h-4 w-4 ml-2",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:m.jsx("path",{d:"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"})})]}),T&&m.jsxs("div",{className:"absolute left-0 right-0 bg-white rounded-lg z-50 shadow-lg border overflow-hidden mt-1 max-h-[350px] border-gray-300",children:[m.jsx("div",{className:"p-2 border-b",children:m.jsx("input",{type:"text",value:O,onChange:re,onKeyDown:oe,placeholder:"Search departments...",className:"w-full px-3 py-2 border rounded text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500",autoFocus:!0})}),m.jsx("ul",{className:"max-h-[300px] p-1 overflow-y-auto",children:P.length>0?P.map((B,ae)=>m.jsx("li",{onClick:()=>{U(B),A("")},className:`p-2 cursor-pointer ${M===ae?"bg-blue-100":"hover:bg-gray-100"}`,onMouseDown:he=>he.preventDefault(),children:B},ae)):m.jsx("li",{className:"p-2 text-gray-500",children:"No departments found"})})]})]}),m.jsxs("div",{className:"hidden md:flex items-center space-x-2",children:[m.jsx(iy,{sortBy:s,setSortBy:f,sortOptions:w,searchHub:!0}),s!=="default"&&m.jsx("button",{onClick:j,className:"flex items-center justify-center","aria-label":S==="asc"?"Sort ascending":"Sort descending",children:m.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:`transition-transform duration-300 ease-in-out transform ${S==="asc"?"rotate-0":"rotate-180"}`,children:m.jsx("path",{d:"M12 5l7 7-1.41 1.41L13 8.83V19h-2V8.83L6.41 13.41 5 12l7-7z",fill:"currentColor"})})})]})]}),x.length>0&&m.jsxs("div",{className:"flex flex-wrap gap-2 mt-4 w-full",children:[m.jsx("span",{className:"border text-gray-700 px-2 py-1 rounded text-sm flex items-center",children:"Filters:"}),x.map((B,ae)=>m.jsxs("span",{className:`${H(B)} px-2 py-1 rounded text-sm flex items-center`,children:[m.jsx("span",{className:"whitespace-nowrap",children:B}),m.jsx("button",{type:"button",onClick:()=>pe(B),className:"ml-2 text-gray-500 hover:text-gray-700",children:"×"})]},ae)),x.length>=2&&m.jsx("button",{onClick:fe,className:"bg-red-500 hover:bg-red-600 rounded px-2 py-1 rounded text-sm flex items-center transition-colors",children:m.jsx("span",{className:"whitespace-nowrap text-white",children:"Remove All"})})]})]})};var Sy=my();function hE(n){function r(P,Q,J,se,H){for(var fe=0,B=0,ae=0,he=0,ge,de,Ee=0,_e=0,we,Qe=we=ge=0,je=0,et=0,vn=0,Fe=0,On=J.length,Hn=On-1,Ze,be="",De="",sa="",yn="",Jt;jege)&&(Fe=(be=be.replace(" ",":")).length),0se&&(se=(Q=Q.trim()).charCodeAt(0)),se){case 38:return Q.replace(T,"$1"+P.trim());case 58:return P.trim()+Q.replace(T,"$1"+P.trim());default:if(0<1*J&&0B.charCodeAt(8))break;case 115:H=H.replace(B,"-webkit-"+B)+";"+H;break;case 207:case 102:H=H.replace(B,"-webkit-"+(102J.charCodeAt(0)&&(J=J.trim()),re=J,J=[re],01?r-1:0),l=1;l0?" Args: "+o.join(", "):""))}var yE=function(){function n(o){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=o}var r=n.prototype;return r.indexOfGroup=function(o){for(var l=0,s=0;s=this.groupSizes.length){for(var s=this.groupSizes,c=s.length,f=c;o>=f;)(f<<=1)<0&&zl(16,""+o);this.groupSizes=new Uint32Array(f),this.groupSizes.set(s),this.length=f;for(var p=c;p=this.length||this.groupSizes[o]===0)return l;for(var s=this.groupSizes[o],c=this.indexOfGroup(o),f=c+s,p=c;p=gl&&(gl=r+1),hs.set(n,r),bs.set(r,n)},SE="style["+ui+'][data-styled-version="5.3.11"]',wE=new RegExp("^"+ui+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),EE=function(n,r,o){for(var l,s=o.split(","),c=0,f=s.length;c=0;g--){var y=h[g];if(y&&y.nodeType===1&&y.hasAttribute(ui))return y}}(o),c=s!==void 0?s.nextSibling:null;l.setAttribute(ui,"active"),l.setAttribute("data-styled-version","5.3.11");var f=RE();return f&&l.setAttribute("nonce",f),o.insertBefore(l,c),l},TE=function(){function n(o){var l=this.element=wy(o);l.appendChild(document.createTextNode("")),this.sheet=function(s){if(s.sheet)return s.sheet;for(var c=document.styleSheets,f=0,p=c.length;f=0){var s=document.createTextNode(l),c=this.nodes[o];return this.element.insertBefore(s,c||null),this.length++,!0}return!1},r.deleteRule=function(o){this.element.removeChild(this.nodes[o]),this.length--},r.getRule=function(o){return o0&&(v+=S+",")}),c+=""+g+y+'{content:"'+v+`"}/*!sc*/ -`}}}return c}(this)},n}(),_E=/(a)(d)/gi,Ug=function(n){return String.fromCharCode(n+(n>25?39:97))};function ad(n){var r,o="";for(r=Math.abs(n);r>52;r=r/52|0)o=Ug(r%52)+o;return(Ug(r%52)+o).replace(_E,"$1-$2")}var ri=function(n,r){for(var o=r.length;o;)n=33*n^r.charCodeAt(--o);return n},Cy=function(n){return ri(5381,n)};function AE(n){for(var r=0;r>>0);if(!o.hasNameForId(s,p)){var h=l(f,"."+p,void 0,s);o.insertRules(s,p,h)}c.push(p),this.staticRulesId=p}else{for(var g=this.rules.length,y=ri(this.baseHash,l.hash),v="",S=0;S>>0);if(!o.hasNameForId(s,_)){var T=l(v,"."+_,void 0,s);o.insertRules(s,_,T)}c.push(_)}}return c.join(" ")},n}(),DE=/^\s*\/\/.*$/gm,zE=[":","[",".","#"];function LE(n){var r,o,l,s,c=ka,f=c.options,p=f===void 0?ka:f,h=c.plugins,g=h===void 0?ys:h,y=new hE(p),v=[],S=function(x){function _(T){if(T)try{x(T+"}")}catch{}}return function(T,E,O,A,N,V,M,C,L,D){switch(T){case 1:if(L===0&&E.charCodeAt(0)===64)return x(E+";"),"";break;case 2:if(C===0)return E+"/*|*/";break;case 3:switch(C){case 102:case 112:return x(O[0]+E),"";default:return E+(D===0?"/*|*/":"")}case-2:E.split("/*|*/}").forEach(_)}}}(function(x){v.push(x)}),j=function(x,_,T){return _===0&&zE.indexOf(T[o.length])!==-1||T.match(s)?x:"."+r};function w(x,_,T,E){E===void 0&&(E="&");var O=x.replace(DE,""),A=_&&T?T+" "+_+" { "+O+" }":O;return r=E,o=_,l=new RegExp("\\"+o+"\\b","g"),s=new RegExp("(\\"+o+"\\b){2,}"),y(T||!_?"":_,A)}return y.use([].concat(g,[function(x,_,T){x===2&&T.length&&T[0].lastIndexOf(o)>0&&(T[0]=T[0].replace(l,j))},S,function(x){if(x===-2){var _=v;return v=[],_}}])),w.hash=g.length?g.reduce(function(x,_){return _.name||zl(15),ri(x,_.name)},5381).toString():"",w}var Ry=zt.createContext();Ry.Consumer;var Ty=zt.createContext(),BE=(Ty.Consumer,new Ey),rd=LE();function UE(){return R.useContext(Ry)||BE}function $E(){return R.useContext(Ty)||rd}var HE=function(){function n(r,o){var l=this;this.inject=function(s,c){c===void 0&&(c=rd);var f=l.name+c.hash;s.hasNameForId(l.id,f)||s.insertRules(l.id,f,c(l.rules,f,"@keyframes"))},this.toString=function(){return zl(12,String(l.name))},this.name=r,this.id="sc-keyframes-"+r,this.rules=o}return n.prototype.getName=function(r){return r===void 0&&(r=rd),this.name+r.hash},n}(),qE=/([A-Z])/,PE=/([A-Z])/g,YE=/^ms-/,GE=function(n){return"-"+n.toLowerCase()};function $g(n){return qE.test(n)?n.replace(PE,GE).replace(YE,"-ms-"):n}var Hg=function(n){return n==null||n===!1||n===""};function ci(n,r,o,l){if(Array.isArray(n)){for(var s,c=[],f=0,p=n.length;f1?r-1:0),l=1;l?@[\\\]^`{|}~-]+/g,KE=/(^-|-$)/g;function Uf(n){return n.replace(FE,"-").replace(KE,"")}var QE=function(n){return ad(Cy(n)>>>0)};function ls(n){return typeof n=="string"&&!0}var id=function(n){return typeof n=="function"||typeof n=="object"&&n!==null&&!Array.isArray(n)},ZE=function(n){return n!=="__proto__"&&n!=="constructor"&&n!=="prototype"};function IE(n,r,o){var l=n[o];id(r)&&id(l)?jy(l,r):n[o]=r}function jy(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),l=1;l=0||(D[C]=V[C]);return D}(r,["componentId"]),N=O&&O+"-"+(ls(E)?E:Uf(Lg(E)));return Ny(E,aa({},A,{attrs:S,componentId:N}),o)},Object.defineProperty(w,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(E){this._foldedDefaultProps=l?jy({},n.defaultProps,E):E}}),Object.defineProperty(w,"toString",{value:function(){return"."+w.styledComponentId}}),s&&gy(w,n,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),w}var ra=function(n){return function r(o,l,s){if(s===void 0&&(s=ka),!Sy.isValidElementType(l))return zl(1,String(l));var c=function(){return o(l,s,VE.apply(void 0,arguments))};return c.withConfig=function(f){return r(o,l,aa({},s,{},f))},c.attrs=function(f){return r(o,l,aa({},s,{attrs:Array.prototype.concat(s.attrs,f).filter(Boolean)}))},c}(Ny,n)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(n){ra[n]=ra(n)});const Pg=()=>{const[n,r]=R.useState([]),[o,l]=R.useState(!1),[s,c]=R.useState(!1),[f,p]=R.useState(1),h=20,g=["default","updatedAt","ownerLastName","ownerFirstName","title"],[y,v]=R.useState(g[0]),[S,j]=R.useState(1),[w,x]=R.useState("asc"),_=()=>{const C=w==="asc"?"desc":"asc";x(C),j(C==="asc"?1:-1)},[T,E]=R.useState([]),O=Object.keys(It).sort((C,L)=>C.localeCompare(L)),A=async()=>{Ct.get("/users/favListingsIds",{withCredentials:!0}).then(C=>{E(C.data.favListingsIds)}).catch(C=>{console.error("Error fetching user's favorite listings:",C),E([]),Je({text:"Could not load your favorite listings",icon:"warning"})})};R.useEffect(()=>{A()},[]);const N=C=>{r(L=>[...L,...C]),c(C.length{r(C),c(C.length{const D=T;L?(E([C,...D]),Ct.put("/users/favListings",{withCredentials:!0,data:{favListings:[C]}}).catch(z=>{E(D),console.error("Error favoriting listing:",z),Je({text:"Unable to favorite listing",icon:"warning"}),A()})):(E(D.filter(z=>z!==C)),Ct.delete("/users/favListings",{withCredentials:!0,data:{favListings:[C]}}).catch(z=>{E(D),console.error("Error unfavoriting listing:",z),Je({text:"Unable to unfavorite listing",icon:"warning"}),A()}))};return m.jsxs("div",{className:"mx-auto max-w-[1300px] px-6 mt-24 w-full",children:[m.jsx("div",{className:"mt-12",children:m.jsx(pE,{allDepartments:O,resetListings:V,addListings:N,setIsLoading:l,sortBy:y,sortOrder:S,setSortBy:v,setSortOrder:j,sortDirection:w,onToggleSortDirection:_,sortableKeys:g,page:f,setPage:p,pageSize:h})}),m.jsx("div",{className:"mt-4 md:mt-10"}),n.length>0?m.jsx(uE,{loading:o,searchExhausted:s,setPage:p,listings:n,sortableKeys:g,sortBy:y,setSortBy:v,setSortOrder:j,sortDirection:w,onToggleSortDirection:_,favListingsIds:T,updateFavorite:M}):m.jsx(WE,{children:"No results match the search criteria"})]})},WE=ra.h4` - color: #838383; - text-align: center; - padding-top: 15%; -`;function $e(n,r){if(n==null)return{};var o={};for(var l in n)if({}.hasOwnProperty.call(n,l)){if(r.indexOf(l)!==-1)continue;o[l]=n[l]}return o}function _y(n){var r,o,l="";if(typeof n=="string"||typeof n=="number")l+=n;else if(typeof n=="object")if(Array.isArray(n)){var s=n.length;for(r=0;r{if(l.toString().match(/^(components|slots)$/))o[l]=ee({},n[l],o[l]);else if(l.toString().match(/^(componentsProps|slotProps)$/)){const s=n[l]||{},c=r[l];o[l]={},!c||!Object.keys(c)?o[l]=s:!s||!Object.keys(s)?o[l]=c:(o[l]=ee({},c),Object.keys(s).forEach(f=>{o[l][f]=Tl(s[f],c[f])}))}else o[l]===void 0&&(o[l]=n[l])}),o}function Wt(n,r,o=void 0){const l={};return Object.keys(n).forEach(s=>{l[s]=n[s].reduce((c,f)=>{if(f){const p=r(f);p!==""&&c.push(p),o&&o[f]&&c.push(o[f])}return c},[]).join(" ")}),l}var at={},Hf={exports:{}},Yg;function Ay(){return Yg||(Yg=1,function(n){function r(o){return o&&o.__esModule?o:{default:o}}n.exports=r,n.exports.__esModule=!0,n.exports.default=n.exports}(Hf)),Hf.exports}function jl(n){let r="https://mui.com/production-error/?code="+n;for(let o=1;o=6?2:1}}`,"g");let L=M.match(C);return L&&L[0].length===1&&(L=L.map(D=>D+D)),L?`rgb${L.length===4?"a":""}(${L.map((D,z)=>z<3?parseInt(D,16):Math.round(parseInt(D,16)/255*1e3)/1e3).join(", ")})`:""}function c(M){const C=M.toString(16);return C.length===1?`0${C}`:C}function f(M){if(M.type)return M;if(M.charAt(0)==="#")return f(s(M));const C=M.indexOf("("),L=M.substring(0,C);if(["rgb","rgba","hsl","hsla","color"].indexOf(L)===-1)throw new Error((0,r.default)(9,M));let D=M.substring(C+1,M.length-1),z;if(L==="color"){if(D=D.split(" "),z=D.shift(),D.length===4&&D[3].charAt(0)==="/"&&(D[3]=D[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(z)===-1)throw new Error((0,r.default)(10,z))}else D=D.split(",");return D=D.map(Y=>parseFloat(Y)),{type:L,values:D,colorSpace:z}}const p=M=>{const C=f(M);return C.values.slice(0,3).map((L,D)=>C.type.indexOf("hsl")!==-1&&D!==0?`${L}%`:L).join(" ")};at.colorChannel=p;const h=(M,C)=>{try{return p(M)}catch{return M}};at.private_safeColorChannel=h;function g(M){const{type:C,colorSpace:L}=M;let{values:D}=M;return C.indexOf("rgb")!==-1?D=D.map((z,Y)=>Y<3?parseInt(z,10):z):C.indexOf("hsl")!==-1&&(D[1]=`${D[1]}%`,D[2]=`${D[2]}%`),C.indexOf("color")!==-1?D=`${L} ${D.join(" ")}`:D=`${D.join(", ")}`,`${C}(${D})`}function y(M){if(M.indexOf("#")===0)return M;const{values:C}=f(M);return`#${C.map((L,D)=>c(D===3?Math.round(255*L):L)).join("")}`}function v(M){M=f(M);const{values:C}=M,L=C[0],D=C[1]/100,z=C[2]/100,Y=D*Math.min(z,1-z),K=(Z,oe=(Z+L/30)%12)=>z-Y*Math.max(Math.min(oe-3,9-oe,1),-1);let ie="rgb";const le=[Math.round(K(0)*255),Math.round(K(8)*255),Math.round(K(4)*255)];return M.type==="hsla"&&(ie+="a",le.push(C[3])),g({type:ie,values:le})}function S(M){M=f(M);let C=M.type==="hsl"||M.type==="hsla"?f(v(M)).values:M.values;return C=C.map(L=>(M.type!=="color"&&(L/=255),L<=.03928?L/12.92:((L+.055)/1.055)**2.4)),Number((.2126*C[0]+.7152*C[1]+.0722*C[2]).toFixed(3))}function j(M,C){const L=S(M),D=S(C);return(Math.max(L,D)+.05)/(Math.min(L,D)+.05)}function w(M,C){return M=f(M),C=l(C),(M.type==="rgb"||M.type==="hsl")&&(M.type+="a"),M.type==="color"?M.values[3]=`/${C}`:M.values[3]=C,g(M)}function x(M,C,L){try{return w(M,C)}catch{return M}}function _(M,C){if(M=f(M),C=l(C),M.type.indexOf("hsl")!==-1)M.values[2]*=1-C;else if(M.type.indexOf("rgb")!==-1||M.type.indexOf("color")!==-1)for(let L=0;L<3;L+=1)M.values[L]*=1-C;return g(M)}function T(M,C,L){try{return _(M,C)}catch{return M}}function E(M,C){if(M=f(M),C=l(C),M.type.indexOf("hsl")!==-1)M.values[2]+=(100-M.values[2])*C;else if(M.type.indexOf("rgb")!==-1)for(let L=0;L<3;L+=1)M.values[L]+=(255-M.values[L])*C;else if(M.type.indexOf("color")!==-1)for(let L=0;L<3;L+=1)M.values[L]+=(1-M.values[L])*C;return g(M)}function O(M,C,L){try{return E(M,C)}catch{return M}}function A(M,C=.15){return S(M)>.5?_(M,C):E(M,C)}function N(M,C,L){try{return A(M,C)}catch{return M}}function V(M,C,L,D=1){const z=(le,Z)=>Math.round((le**(1/D)*(1-L)+Z**(1/D)*L)**D),Y=f(M),K=f(C),ie=[z(Y.values[0],K.values[0]),z(Y.values[1],K.values[1]),z(Y.values[2],K.values[2])];return g({type:"rgb",values:ie})}return at}var Lt=r2(),lr={},qf={exports:{}},Vg;function i2(){return Vg||(Vg=1,function(n){function r(){return n.exports=r=Object.assign?Object.assign.bind():function(o){for(var l=1;l96?o2:s2},Kg=function(r,o,l){var s;if(o){var c=o.shouldForwardProp;s=r.__emotion_forwardProp&&c?function(f){return r.__emotion_forwardProp(f)&&c(f)}:c}return typeof s!="function"&&l&&(s=r.__emotion_forwardProp),s},u2=function(r){var o=r.cache,l=r.serialized,s=r.isStringTag;return _s(o,l,s),Ed(function(){return As(o,l,s)}),null},c2=function n(r,o){var l=r.__emotion_real===r,s=l&&r.__emotion_base||r,c,f;o!==void 0&&(c=o.label,f=o.target);var p=Kg(r,o,l),h=p||Fg(s),g=!h("as");return function(){var y=arguments,v=l&&r.__emotion_styles!==void 0?r.__emotion_styles.slice(0):[];if(c!==void 0&&v.push("label:"+c+";"),y[0]==null||y[0].raw===void 0)v.push.apply(v,y);else{var S=y[0];v.push(S[0]);for(var j=y.length,w=1;wr(p2(s)?o:s):r;return m.jsx(xy,{styles:l})}function My(n,r){return ld(n,r)}const m2=(n,r)=>{Array.isArray(n.__emotion_styles)&&(n.__emotion_styles=r(n.__emotion_styles))},g2=Object.freeze(Object.defineProperty({__proto__:null,GlobalStyles:h2,StyledEngineProvider:d2,ThemeContext:hn,css:Td,default:My,internal_processStyles:m2,keyframes:Dl},Symbol.toStringTag,{value:"Module"})),v2=oa(g2);function _a(n){if(typeof n!="object"||n===null)return!1;const r=Object.getPrototypeOf(n);return(r===null||r===Object.prototype||Object.getPrototypeOf(r)===null)&&!(Symbol.toStringTag in n)&&!(Symbol.iterator in n)}function ky(n){if(R.isValidElement(n)||!_a(n))return n;const r={};return Object.keys(n).forEach(o=>{r[o]=ky(n[o])}),r}function Un(n,r,o={clone:!0}){const l=o.clone?ee({},n):n;return _a(n)&&_a(r)&&Object.keys(r).forEach(s=>{R.isValidElement(r[s])?l[s]=r[s]:_a(r[s])&&Object.prototype.hasOwnProperty.call(n,s)&&_a(n[s])?l[s]=Un(n[s],r[s],o):o.clone?l[s]=_a(r[s])?ky(r[s]):r[s]:l[s]=r[s]}),l}const y2=Object.freeze(Object.defineProperty({__proto__:null,default:Un,isPlainObject:_a},Symbol.toStringTag,{value:"Module"})),b2=oa(y2);function qe(n){if(typeof n!="string")throw new Error(jl(7));return n.charAt(0).toUpperCase()+n.slice(1)}const x2=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"})),S2=oa(x2);var Yf={exports:{}},Ve={};/** - * @license React - * react-is.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Qg;function w2(){if(Qg)return Ve;Qg=1;var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),f=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.suspense_list"),y=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),S=Symbol.for("react.view_transition"),j=Symbol.for("react.client.reference");function w(x){if(typeof x=="object"&&x!==null){var _=x.$$typeof;switch(_){case n:switch(x=x.type,x){case o:case s:case l:case h:case g:case S:return x;default:switch(x=x&&x.$$typeof,x){case f:case p:case v:case y:return x;case c:return x;default:return _}}case r:return _}}}return Ve.ContextConsumer=c,Ve.ContextProvider=f,Ve.Element=n,Ve.ForwardRef=p,Ve.Fragment=o,Ve.Lazy=v,Ve.Memo=y,Ve.Portal=r,Ve.Profiler=s,Ve.StrictMode=l,Ve.Suspense=h,Ve.SuspenseList=g,Ve.isContextConsumer=function(x){return w(x)===c},Ve.isContextProvider=function(x){return w(x)===f},Ve.isElement=function(x){return typeof x=="object"&&x!==null&&x.$$typeof===n},Ve.isForwardRef=function(x){return w(x)===p},Ve.isFragment=function(x){return w(x)===o},Ve.isLazy=function(x){return w(x)===v},Ve.isMemo=function(x){return w(x)===y},Ve.isPortal=function(x){return w(x)===r},Ve.isProfiler=function(x){return w(x)===s},Ve.isStrictMode=function(x){return w(x)===l},Ve.isSuspense=function(x){return w(x)===h},Ve.isSuspenseList=function(x){return w(x)===g},Ve.isValidElementType=function(x){return typeof x=="string"||typeof x=="function"||x===o||x===s||x===l||x===h||x===g||typeof x=="object"&&x!==null&&(x.$$typeof===v||x.$$typeof===y||x.$$typeof===f||x.$$typeof===c||x.$$typeof===p||x.$$typeof===j||x.getModuleId!==void 0)},Ve.typeOf=w,Ve}var Zg;function E2(){return Zg||(Zg=1,Yf.exports=w2()),Yf.exports}var Ig=E2();const C2=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function Dy(n){const r=`${n}`.match(C2);return r&&r[1]||""}function zy(n,r=""){return n.displayName||n.name||Dy(n)||r}function Wg(n,r,o){const l=zy(r);return n.displayName||(l!==""?`${o}(${l})`:o)}function R2(n){if(n!=null){if(typeof n=="string")return n;if(typeof n=="function")return zy(n,"Component");if(typeof n=="object")switch(n.$$typeof){case Ig.ForwardRef:return Wg(n,n.render,"ForwardRef");case Ig.Memo:return Wg(n,n.type,"memo");default:return}}}const T2=Object.freeze(Object.defineProperty({__proto__:null,default:R2,getFunctionName:Dy},Symbol.toStringTag,{value:"Module"})),j2=oa(T2),O2=["values","unit","step"],N2=n=>{const r=Object.keys(n).map(o=>({key:o,val:n[o]}))||[];return r.sort((o,l)=>o.val-l.val),r.reduce((o,l)=>ee({},o,{[l.key]:l.val}),{})};function Ly(n){const{values:r={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:o="px",step:l=5}=n,s=$e(n,O2),c=N2(r),f=Object.keys(c);function p(S){return`@media (min-width:${typeof r[S]=="number"?r[S]:S}${o})`}function h(S){return`@media (max-width:${(typeof r[S]=="number"?r[S]:S)-l/100}${o})`}function g(S,j){const w=f.indexOf(j);return`@media (min-width:${typeof r[S]=="number"?r[S]:S}${o}) and (max-width:${(w!==-1&&typeof r[f[w]]=="number"?r[f[w]]:j)-l/100}${o})`}function y(S){return f.indexOf(S)+1`@media (min-width:${Nd[n]}px)`};function ia(n,r,o){const l=n.theme||{};if(Array.isArray(r)){const c=l.breakpoints||Jg;return r.reduce((f,p,h)=>(f[c.up(c.keys[h])]=o(r[h]),f),{})}if(typeof r=="object"){const c=l.breakpoints||Jg;return Object.keys(r).reduce((f,p)=>{if(Object.keys(c.values||Nd).indexOf(p)!==-1){const h=c.up(p);f[h]=o(r[p],p)}else{const h=p;f[h]=r[h]}return f},{})}return o(r)}function A2(n={}){var r;return((r=n.keys)==null?void 0:r.reduce((l,s)=>{const c=n.up(s);return l[c]={},l},{}))||{}}function M2(n,r){return n.reduce((o,l)=>{const s=o[l];return(!s||Object.keys(s).length===0)&&delete o[l],o},r)}function ks(n,r,o=!0){if(!r||typeof r!="string")return null;if(n&&n.vars&&o){const l=`vars.${r}`.split(".").reduce((s,c)=>s&&s[c]?s[c]:null,n);if(l!=null)return l}return r.split(".").reduce((l,s)=>l&&l[s]!=null?l[s]:null,n)}function xs(n,r,o,l=o){let s;return typeof n=="function"?s=n(o):Array.isArray(n)?s=n[o]||l:s=ks(n,o)||l,r&&(s=r(s,l,n)),s}function ut(n){const{prop:r,cssProperty:o=n.prop,themeKey:l,transform:s}=n,c=f=>{if(f[r]==null)return null;const p=f[r],h=f.theme,g=ks(h,l)||{};return ia(f,p,v=>{let S=xs(g,s,v);return v===S&&typeof v=="string"&&(S=xs(g,s,`${r}${v==="default"?"":qe(v)}`,v)),o===!1?S:{[o]:S}})};return c.propTypes={},c.filterProps=[r],c}function k2(n){const r={};return o=>(r[o]===void 0&&(r[o]=n(o)),r[o])}const D2={m:"margin",p:"padding"},z2={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},ev={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},L2=k2(n=>{if(n.length>2)if(ev[n])n=ev[n];else return[n];const[r,o]=n.split(""),l=D2[r],s=z2[o]||"";return Array.isArray(s)?s.map(c=>l+c):[l+s]}),_d=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],Ad=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[..._d,...Ad];function Ll(n,r,o,l){var s;const c=(s=ks(n,r,!1))!=null?s:o;return typeof c=="number"?f=>typeof f=="string"?f:c*f:Array.isArray(c)?f=>typeof f=="string"?f:c[f]:typeof c=="function"?c:()=>{}}function By(n){return Ll(n,"spacing",8)}function Bl(n,r){if(typeof r=="string"||r==null)return r;const o=Math.abs(r),l=n(o);return r>=0?l:typeof l=="number"?-l:`-${l}`}function B2(n,r){return o=>n.reduce((l,s)=>(l[s]=Bl(r,o),l),{})}function U2(n,r,o,l){if(r.indexOf(o)===-1)return null;const s=L2(o),c=B2(s,l),f=n[o];return ia(n,f,c)}function Uy(n,r){const o=By(n.theme);return Object.keys(n).map(l=>U2(n,r,l,o)).reduce(vl,{})}function it(n){return Uy(n,_d)}it.propTypes={};it.filterProps=_d;function lt(n){return Uy(n,Ad)}lt.propTypes={};lt.filterProps=Ad;function $2(n=8){if(n.mui)return n;const r=By({spacing:n}),o=(...l)=>(l.length===0?[1]:l).map(c=>{const f=r(c);return typeof f=="number"?`${f}px`:f}).join(" ");return o.mui=!0,o}function Ds(...n){const r=n.reduce((l,s)=>(s.filterProps.forEach(c=>{l[c]=s}),l),{}),o=l=>Object.keys(l).reduce((s,c)=>r[c]?vl(s,r[c](l)):s,{});return o.propTypes={},o.filterProps=n.reduce((l,s)=>l.concat(s.filterProps),[]),o}function pn(n){return typeof n!="number"?n:`${n}px solid`}function gn(n,r){return ut({prop:n,themeKey:"borders",transform:r})}const H2=gn("border",pn),q2=gn("borderTop",pn),P2=gn("borderRight",pn),Y2=gn("borderBottom",pn),G2=gn("borderLeft",pn),V2=gn("borderColor"),X2=gn("borderTopColor"),F2=gn("borderRightColor"),K2=gn("borderBottomColor"),Q2=gn("borderLeftColor"),Z2=gn("outline",pn),I2=gn("outlineColor"),zs=n=>{if(n.borderRadius!==void 0&&n.borderRadius!==null){const r=Ll(n.theme,"shape.borderRadius",4),o=l=>({borderRadius:Bl(r,l)});return ia(n,n.borderRadius,o)}return null};zs.propTypes={};zs.filterProps=["borderRadius"];Ds(H2,q2,P2,Y2,G2,V2,X2,F2,K2,Q2,zs,Z2,I2);const Ls=n=>{if(n.gap!==void 0&&n.gap!==null){const r=Ll(n.theme,"spacing",8),o=l=>({gap:Bl(r,l)});return ia(n,n.gap,o)}return null};Ls.propTypes={};Ls.filterProps=["gap"];const Bs=n=>{if(n.columnGap!==void 0&&n.columnGap!==null){const r=Ll(n.theme,"spacing",8),o=l=>({columnGap:Bl(r,l)});return ia(n,n.columnGap,o)}return null};Bs.propTypes={};Bs.filterProps=["columnGap"];const Us=n=>{if(n.rowGap!==void 0&&n.rowGap!==null){const r=Ll(n.theme,"spacing",8),o=l=>({rowGap:Bl(r,l)});return ia(n,n.rowGap,o)}return null};Us.propTypes={};Us.filterProps=["rowGap"];const W2=ut({prop:"gridColumn"}),J2=ut({prop:"gridRow"}),eC=ut({prop:"gridAutoFlow"}),tC=ut({prop:"gridAutoColumns"}),nC=ut({prop:"gridAutoRows"}),aC=ut({prop:"gridTemplateColumns"}),rC=ut({prop:"gridTemplateRows"}),iC=ut({prop:"gridTemplateAreas"}),lC=ut({prop:"gridArea"});Ds(Ls,Bs,Us,W2,J2,eC,tC,nC,aC,rC,iC,lC);function oi(n,r){return r==="grey"?r:n}const oC=ut({prop:"color",themeKey:"palette",transform:oi}),sC=ut({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:oi}),uC=ut({prop:"backgroundColor",themeKey:"palette",transform:oi});Ds(oC,sC,uC);function Qt(n){return n<=1&&n!==0?`${n*100}%`:n}const cC=ut({prop:"width",transform:Qt}),Md=n=>{if(n.maxWidth!==void 0&&n.maxWidth!==null){const r=o=>{var l,s;const c=((l=n.theme)==null||(l=l.breakpoints)==null||(l=l.values)==null?void 0:l[o])||Nd[o];return c?((s=n.theme)==null||(s=s.breakpoints)==null?void 0:s.unit)!=="px"?{maxWidth:`${c}${n.theme.breakpoints.unit}`}:{maxWidth:c}:{maxWidth:Qt(o)}};return ia(n,n.maxWidth,r)}return null};Md.filterProps=["maxWidth"];const fC=ut({prop:"minWidth",transform:Qt}),dC=ut({prop:"height",transform:Qt}),pC=ut({prop:"maxHeight",transform:Qt}),hC=ut({prop:"minHeight",transform:Qt});ut({prop:"size",cssProperty:"width",transform:Qt});ut({prop:"size",cssProperty:"height",transform:Qt});const mC=ut({prop:"boxSizing"});Ds(cC,Md,fC,dC,pC,hC,mC);const Ul={border:{themeKey:"borders",transform:pn},borderTop:{themeKey:"borders",transform:pn},borderRight:{themeKey:"borders",transform:pn},borderBottom:{themeKey:"borders",transform:pn},borderLeft:{themeKey:"borders",transform:pn},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:pn},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:zs},color:{themeKey:"palette",transform:oi},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:oi},backgroundColor:{themeKey:"palette",transform:oi},p:{style:lt},pt:{style:lt},pr:{style:lt},pb:{style:lt},pl:{style:lt},px:{style:lt},py:{style:lt},padding:{style:lt},paddingTop:{style:lt},paddingRight:{style:lt},paddingBottom:{style:lt},paddingLeft:{style:lt},paddingX:{style:lt},paddingY:{style:lt},paddingInline:{style:lt},paddingInlineStart:{style:lt},paddingInlineEnd:{style:lt},paddingBlock:{style:lt},paddingBlockStart:{style:lt},paddingBlockEnd:{style:lt},m:{style:it},mt:{style:it},mr:{style:it},mb:{style:it},ml:{style:it},mx:{style:it},my:{style:it},margin:{style:it},marginTop:{style:it},marginRight:{style:it},marginBottom:{style:it},marginLeft:{style:it},marginX:{style:it},marginY:{style:it},marginInline:{style:it},marginInlineStart:{style:it},marginInlineEnd:{style:it},marginBlock:{style:it},marginBlockStart:{style:it},marginBlockEnd:{style:it},displayPrint:{cssProperty:!1,transform:n=>({"@media print":{display:n}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Ls},rowGap:{style:Us},columnGap:{style:Bs},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:Qt},maxWidth:{style:Md},minWidth:{transform:Qt},height:{transform:Qt},maxHeight:{transform:Qt},minHeight:{transform:Qt},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function gC(...n){const r=n.reduce((l,s)=>l.concat(Object.keys(s)),[]),o=new Set(r);return n.every(l=>o.size===Object.keys(l).length)}function vC(n,r){return typeof n=="function"?n(r):n}function $y(){function n(o,l,s,c){const f={[o]:l,theme:s},p=c[o];if(!p)return{[o]:l};const{cssProperty:h=o,themeKey:g,transform:y,style:v}=p;if(l==null)return null;if(g==="typography"&&l==="inherit")return{[o]:l};const S=ks(s,g)||{};return v?v(f):ia(f,l,w=>{let x=xs(S,y,w);return w===x&&typeof w=="string"&&(x=xs(S,y,`${o}${w==="default"?"":qe(w)}`,w)),h===!1?x:{[h]:x}})}function r(o){var l;const{sx:s,theme:c={}}=o||{};if(!s)return null;const f=(l=c.unstable_sxConfig)!=null?l:Ul;function p(h){let g=h;if(typeof h=="function")g=h(c);else if(typeof h!="object")return h;if(!g)return null;const y=A2(c.breakpoints),v=Object.keys(y);let S=y;return Object.keys(g).forEach(j=>{const w=vC(g[j],c);if(w!=null)if(typeof w=="object")if(f[j])S=vl(S,n(j,w,c,f));else{const x=ia({theme:c},w,_=>({[j]:_}));gC(x,w)?S[j]=r({sx:w,theme:c}):S=vl(S,x)}else S=vl(S,n(j,w,c,f))}),M2(v,S)}return Array.isArray(s)?s.map(p):p(s)}return r}const $l=$y();$l.filterProps=["sx"];function Hy(n,r){const o=this;return o.vars&&typeof o.getColorSchemeSelector=="function"?{[o.getColorSchemeSelector(n).replace(/(\[[^\]]+\])/,"*:where($1)")]:r}:o.palette.mode===n?r:{}}const yC=["breakpoints","palette","spacing","shape"];function kd(n={},...r){const{breakpoints:o={},palette:l={},spacing:s,shape:c={}}=n,f=$e(n,yC),p=Ly(o),h=$2(s);let g=Un({breakpoints:p,direction:"ltr",components:{},palette:ee({mode:"light"},l),spacing:h,shape:ee({},_2,c)},f);return g.applyStyles=Hy,g=r.reduce((y,v)=>Un(y,v),g),g.unstable_sxConfig=ee({},Ul,f==null?void 0:f.unstable_sxConfig),g.unstable_sx=function(v){return $l({sx:v,theme:this})},g}const bC=Object.freeze(Object.defineProperty({__proto__:null,default:kd,private_createBreakpoints:Ly,unstable_applyStyles:Hy},Symbol.toStringTag,{value:"Module"})),xC=oa(bC),SC=["sx"],wC=n=>{var r,o;const l={systemProps:{},otherProps:{}},s=(r=n==null||(o=n.theme)==null?void 0:o.unstable_sxConfig)!=null?r:Ul;return Object.keys(n).forEach(c=>{s[c]?l.systemProps[c]=n[c]:l.otherProps[c]=n[c]}),l};function Dd(n){const{sx:r}=n,o=$e(n,SC),{systemProps:l,otherProps:s}=wC(o);let c;return Array.isArray(r)?c=[l,...r]:typeof r=="function"?c=(...f)=>{const p=r(...f);return _a(p)?ee({},l,p):l}:c=ee({},l,r),ee({},s,{sx:c})}const EC=Object.freeze(Object.defineProperty({__proto__:null,default:$l,extendSxProp:Dd,unstable_createStyleFunctionSx:$y,unstable_defaultSxConfig:Ul},Symbol.toStringTag,{value:"Module"})),CC=oa(EC);var tv;function RC(){if(tv)return lr;tv=1;var n=Ay();Object.defineProperty(lr,"__esModule",{value:!0}),lr.default=A,lr.shouldForwardProp=w,lr.systemDefaultTheme=void 0;var r=n(i2()),o=n(l2()),l=v(v2),s=b2;n(S2),n(j2);var c=n(xC),f=n(CC);const p=["ownerState"],h=["variants"],g=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function y(N){if(typeof WeakMap!="function")return null;var V=new WeakMap,M=new WeakMap;return(y=function(C){return C?M:V})(N)}function v(N,V){if(N&&N.__esModule)return N;if(N===null||typeof N!="object"&&typeof N!="function")return{default:N};var M=y(V);if(M&&M.has(N))return M.get(N);var C={__proto__:null},L=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var D in N)if(D!=="default"&&Object.prototype.hasOwnProperty.call(N,D)){var z=L?Object.getOwnPropertyDescriptor(N,D):null;z&&(z.get||z.set)?Object.defineProperty(C,D,z):C[D]=N[D]}return C.default=N,M&&M.set(N,C),C}function S(N){return Object.keys(N).length===0}function j(N){return typeof N=="string"&&N.charCodeAt(0)>96}function w(N){return N!=="ownerState"&&N!=="theme"&&N!=="sx"&&N!=="as"}const x=lr.systemDefaultTheme=(0,c.default)(),_=N=>N&&N.charAt(0).toLowerCase()+N.slice(1);function T({defaultTheme:N,theme:V,themeId:M}){return S(V)?N:V[M]||V}function E(N){return N?(V,M)=>M[N]:null}function O(N,V){let{ownerState:M}=V,C=(0,o.default)(V,p);const L=typeof N=="function"?N((0,r.default)({ownerState:M},C)):N;if(Array.isArray(L))return L.flatMap(D=>O(D,(0,r.default)({ownerState:M},C)));if(L&&typeof L=="object"&&Array.isArray(L.variants)){const{variants:D=[]}=L;let Y=(0,o.default)(L,h);return D.forEach(K=>{let ie=!0;typeof K.props=="function"?ie=K.props((0,r.default)({ownerState:M},C,M)):Object.keys(K.props).forEach(le=>{(M==null?void 0:M[le])!==K.props[le]&&C[le]!==K.props[le]&&(ie=!1)}),ie&&(Array.isArray(Y)||(Y=[Y]),Y.push(typeof K.style=="function"?K.style((0,r.default)({ownerState:M},C,M)):K.style))}),Y}return L}function A(N={}){const{themeId:V,defaultTheme:M=x,rootShouldForwardProp:C=w,slotShouldForwardProp:L=w}=N,D=z=>(0,f.default)((0,r.default)({},z,{theme:T((0,r.default)({},z,{defaultTheme:M,themeId:V}))}));return D.__mui_systemSx=!0,(z,Y={})=>{(0,l.internal_processStyles)(z,H=>H.filter(fe=>!(fe!=null&&fe.__mui_systemSx)));const{name:K,slot:ie,skipVariantsResolver:le,skipSx:Z,overridesResolver:oe=E(_(ie))}=Y,ne=(0,o.default)(Y,g),pe=le!==void 0?le:ie&&ie!=="Root"&&ie!=="root"||!1,U=Z||!1;let re,P=w;ie==="Root"||ie==="root"?P=C:ie?P=L:j(z)&&(P=void 0);const Q=(0,l.default)(z,(0,r.default)({shouldForwardProp:P,label:re},ne)),J=H=>typeof H=="function"&&H.__emotion_real!==H||(0,s.isPlainObject)(H)?fe=>O(H,(0,r.default)({},fe,{theme:T({theme:fe.theme,defaultTheme:M,themeId:V})})):H,se=(H,...fe)=>{let B=J(H);const ae=fe?fe.map(J):[];K&&oe&&ae.push(de=>{const Ee=T((0,r.default)({},de,{defaultTheme:M,themeId:V}));if(!Ee.components||!Ee.components[K]||!Ee.components[K].styleOverrides)return null;const _e=Ee.components[K].styleOverrides,we={};return Object.entries(_e).forEach(([Qe,je])=>{we[Qe]=O(je,(0,r.default)({},de,{theme:Ee}))}),oe(de,we)}),K&&!pe&&ae.push(de=>{var Ee;const _e=T((0,r.default)({},de,{defaultTheme:M,themeId:V})),we=_e==null||(Ee=_e.components)==null||(Ee=Ee[K])==null?void 0:Ee.variants;return O({variants:we},(0,r.default)({},de,{theme:_e}))}),U||ae.push(D);const he=ae.length-fe.length;if(Array.isArray(H)&&he>0){const de=new Array(he).fill("");B=[...H,...de],B.raw=[...H.raw,...de]}const ge=Q(B,...ae);return z.muiName&&(ge.muiName=z.muiName),ge};return Q.withConfig&&(se.withConfig=Q.withConfig),se}}return lr}var TC=RC();const jC=fr(TC),nv=n=>n,OC=()=>{let n=nv;return{configure(r){n=r},generate(r){return n(r)},reset(){n=nv}}},qy=OC(),NC={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Vt(n,r,o="Mui"){const l=NC[r];return l?`${o}-${l}`:`${qy.generate(n)}-${r}`}function _C(n,r){return ee({toolbar:{minHeight:56,[n.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[n.up("sm")]:{minHeight:64}}},r)}const Ol={black:"#000",white:"#fff"},AC={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},Qr={50:"#f3e5f5",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",700:"#7b1fa2"},Zr={300:"#e57373",400:"#ef5350",500:"#f44336",700:"#d32f2f",800:"#c62828"},dl={300:"#ffb74d",400:"#ffa726",500:"#ff9800",700:"#f57c00",900:"#e65100"},Ir={50:"#e3f2fd",200:"#90caf9",400:"#42a5f5",700:"#1976d2",800:"#1565c0"},Wr={300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",700:"#0288d1",900:"#01579b"},Jr={300:"#81c784",400:"#66bb6a",500:"#4caf50",700:"#388e3c",800:"#2e7d32",900:"#1b5e20"},MC=["mode","contrastThreshold","tonalOffset"],av={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:Ol.white,default:Ol.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},Gf={text:{primary:Ol.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:Ol.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function rv(n,r,o,l){const s=l.light||l,c=l.dark||l*1.5;n[r]||(n.hasOwnProperty(o)?n[r]=n[o]:r==="light"?n.light=Lt.lighten(n.main,s):r==="dark"&&(n.dark=Lt.darken(n.main,c)))}function kC(n="light"){return n==="dark"?{main:Ir[200],light:Ir[50],dark:Ir[400]}:{main:Ir[700],light:Ir[400],dark:Ir[800]}}function DC(n="light"){return n==="dark"?{main:Qr[200],light:Qr[50],dark:Qr[400]}:{main:Qr[500],light:Qr[300],dark:Qr[700]}}function zC(n="light"){return n==="dark"?{main:Zr[500],light:Zr[300],dark:Zr[700]}:{main:Zr[700],light:Zr[400],dark:Zr[800]}}function LC(n="light"){return n==="dark"?{main:Wr[400],light:Wr[300],dark:Wr[700]}:{main:Wr[700],light:Wr[500],dark:Wr[900]}}function BC(n="light"){return n==="dark"?{main:Jr[400],light:Jr[300],dark:Jr[700]}:{main:Jr[800],light:Jr[500],dark:Jr[900]}}function UC(n="light"){return n==="dark"?{main:dl[400],light:dl[300],dark:dl[700]}:{main:"#ed6c02",light:dl[500],dark:dl[900]}}function $C(n){const{mode:r="light",contrastThreshold:o=3,tonalOffset:l=.2}=n,s=$e(n,MC),c=n.primary||kC(r),f=n.secondary||DC(r),p=n.error||zC(r),h=n.info||LC(r),g=n.success||BC(r),y=n.warning||UC(r);function v(x){return Lt.getContrastRatio(x,Gf.text.primary)>=o?Gf.text.primary:av.text.primary}const S=({color:x,name:_,mainShade:T=500,lightShade:E=300,darkShade:O=700})=>{if(x=ee({},x),!x.main&&x[T]&&(x.main=x[T]),!x.hasOwnProperty("main"))throw new Error(jl(11,_?` (${_})`:"",T));if(typeof x.main!="string")throw new Error(jl(12,_?` (${_})`:"",JSON.stringify(x.main)));return rv(x,"light",E,l),rv(x,"dark",O,l),x.contrastText||(x.contrastText=v(x.main)),x},j={dark:Gf,light:av};return Un(ee({common:ee({},Ol),mode:r,primary:S({color:c,name:"primary"}),secondary:S({color:f,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:S({color:p,name:"error"}),warning:S({color:y,name:"warning"}),info:S({color:h,name:"info"}),success:S({color:g,name:"success"}),grey:AC,contrastThreshold:o,getContrastText:v,augmentColor:S,tonalOffset:l},j[r]),s)}const HC=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function qC(n){return Math.round(n*1e5)/1e5}const iv={textTransform:"uppercase"},lv='"Roboto", "Helvetica", "Arial", sans-serif';function PC(n,r){const o=typeof r=="function"?r(n):r,{fontFamily:l=lv,fontSize:s=14,fontWeightLight:c=300,fontWeightRegular:f=400,fontWeightMedium:p=500,fontWeightBold:h=700,htmlFontSize:g=16,allVariants:y,pxToRem:v}=o,S=$e(o,HC),j=s/14,w=v||(T=>`${T/g*j}rem`),x=(T,E,O,A,N)=>ee({fontFamily:l,fontWeight:T,fontSize:w(E),lineHeight:O},l===lv?{letterSpacing:`${qC(A/E)}em`}:{},N,y),_={h1:x(c,96,1.167,-1.5),h2:x(c,60,1.2,-.5),h3:x(f,48,1.167,0),h4:x(f,34,1.235,.25),h5:x(f,24,1.334,0),h6:x(p,20,1.6,.15),subtitle1:x(f,16,1.75,.15),subtitle2:x(p,14,1.57,.1),body1:x(f,16,1.5,.15),body2:x(f,14,1.43,.15),button:x(p,14,1.75,.4,iv),caption:x(f,12,1.66,.4),overline:x(f,12,2.66,1,iv),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return Un(ee({htmlFontSize:g,pxToRem:w,fontFamily:l,fontSize:s,fontWeightLight:c,fontWeightRegular:f,fontWeightMedium:p,fontWeightBold:h},_),S,{clone:!1})}const YC=.2,GC=.14,VC=.12;function We(...n){return[`${n[0]}px ${n[1]}px ${n[2]}px ${n[3]}px rgba(0,0,0,${YC})`,`${n[4]}px ${n[5]}px ${n[6]}px ${n[7]}px rgba(0,0,0,${GC})`,`${n[8]}px ${n[9]}px ${n[10]}px ${n[11]}px rgba(0,0,0,${VC})`].join(",")}const XC=["none",We(0,2,1,-1,0,1,1,0,0,1,3,0),We(0,3,1,-2,0,2,2,0,0,1,5,0),We(0,3,3,-2,0,3,4,0,0,1,8,0),We(0,2,4,-1,0,4,5,0,0,1,10,0),We(0,3,5,-1,0,5,8,0,0,1,14,0),We(0,3,5,-1,0,6,10,0,0,1,18,0),We(0,4,5,-2,0,7,10,1,0,2,16,1),We(0,5,5,-3,0,8,10,1,0,3,14,2),We(0,5,6,-3,0,9,12,1,0,3,16,2),We(0,6,6,-3,0,10,14,1,0,4,18,3),We(0,6,7,-4,0,11,15,1,0,4,20,3),We(0,7,8,-4,0,12,17,2,0,5,22,4),We(0,7,8,-4,0,13,19,2,0,5,24,4),We(0,7,9,-4,0,14,21,2,0,5,26,4),We(0,8,9,-5,0,15,22,2,0,6,28,5),We(0,8,10,-5,0,16,24,2,0,6,30,5),We(0,8,11,-5,0,17,26,2,0,6,32,5),We(0,9,11,-5,0,18,28,2,0,7,34,6),We(0,9,12,-6,0,19,29,2,0,7,36,6),We(0,10,13,-6,0,20,31,3,0,8,38,7),We(0,10,13,-6,0,21,33,3,0,8,40,7),We(0,10,14,-6,0,22,35,3,0,8,42,7),We(0,11,14,-7,0,23,36,3,0,9,44,8),We(0,11,15,-7,0,24,38,3,0,9,46,8)],FC=["duration","easing","delay"],KC={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},QC={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function ov(n){return`${Math.round(n)}ms`}function ZC(n){if(!n)return 0;const r=n/36;return Math.round((4+15*r**.25+r/5)*10)}function IC(n){const r=ee({},KC,n.easing),o=ee({},QC,n.duration);return ee({getAutoHeightDuration:ZC,create:(s=["all"],c={})=>{const{duration:f=o.standard,easing:p=r.easeInOut,delay:h=0}=c;return $e(c,FC),(Array.isArray(s)?s:[s]).map(g=>`${g} ${typeof f=="string"?f:ov(f)} ${p} ${typeof h=="string"?h:ov(h)}`).join(",")}},n,{easing:r,duration:o})}const WC={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},JC=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function zd(n={},...r){const{mixins:o={},palette:l={},transitions:s={},typography:c={}}=n,f=$e(n,JC);if(n.vars&&n.generateCssVars===void 0)throw new Error(jl(18));const p=$C(l),h=kd(n);let g=Un(h,{mixins:_C(h.breakpoints,o),palette:p,shadows:XC.slice(),typography:PC(p,c),transitions:IC(s),zIndex:ee({},WC)});return g=Un(g,f),g=r.reduce((y,v)=>Un(y,v),g),g.unstable_sxConfig=ee({},Ul,f==null?void 0:f.unstable_sxConfig),g.unstable_sx=function(v){return $l({sx:v,theme:this})},g}const Py=zd(),Nl="$$material";function eR(n){return n!=="ownerState"&&n!=="theme"&&n!=="sx"&&n!=="as"}const Ld=n=>eR(n)&&n!=="classes",ct=jC({themeId:Nl,defaultTheme:Py,rootShouldForwardProp:Ld}),Yy=R.createContext(void 0);function tR({value:n,children:r}){return m.jsx(Yy.Provider,{value:n,children:r})}function nR(n){const{theme:r,name:o,props:l}=n;if(!r||!r.components||!r.components[o])return l;const s=r.components[o];return s.defaultProps?Tl(s.defaultProps,l):!s.styleOverrides&&!s.variants?Tl(s,l):l}function aR({props:n,name:r}){const o=R.useContext(Yy);return nR({props:n,name:r,theme:{components:o}})}function Xt(n){return aR(n)}function sd(n,r){typeof n=="function"?n(r):n&&(n.current=r)}function la(...n){return R.useMemo(()=>n.every(r=>r==null)?null:r=>{n.forEach(o=>{sd(o,r)})},n)}const _l=typeof window<"u"?R.useLayoutEffect:R.useEffect;function ii(n){const r=R.useRef(n);return _l(()=>{r.current=n}),R.useRef((...o)=>(0,r.current)(...o)).current}const sv={};function rR(n,r){const o=R.useRef(sv);return o.current===sv&&(o.current=n(r)),o}const iR=[];function lR(n){R.useEffect(n,iR)}class $s{constructor(){this.currentId=null,this.clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new $s}start(r,o){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,o()},r)}}function oR(){const n=rR($s.create).current;return lR(n.disposeEffect),n}let Hs=!0,ud=!1;const sR=new $s,uR={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function cR(n){const{type:r,tagName:o}=n;return!!(o==="INPUT"&&uR[r]&&!n.readOnly||o==="TEXTAREA"&&!n.readOnly||n.isContentEditable)}function fR(n){n.metaKey||n.altKey||n.ctrlKey||(Hs=!0)}function Vf(){Hs=!1}function dR(){this.visibilityState==="hidden"&&ud&&(Hs=!0)}function pR(n){n.addEventListener("keydown",fR,!0),n.addEventListener("mousedown",Vf,!0),n.addEventListener("pointerdown",Vf,!0),n.addEventListener("touchstart",Vf,!0),n.addEventListener("visibilitychange",dR,!0)}function hR(n){const{target:r}=n;try{return r.matches(":focus-visible")}catch{}return Hs||cR(r)}function mR(){const n=R.useCallback(s=>{s!=null&&pR(s.ownerDocument)},[]),r=R.useRef(!1);function o(){return r.current?(ud=!0,sR.start(100,()=>{ud=!1}),r.current=!1,!0):!1}function l(s){return hR(s)?(r.current=!0,!0):!1}return{isFocusVisibleRef:r,onFocus:l,onBlur:o,ref:n}}function cd(n,r){return cd=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(o,l){return o.__proto__=l,o},cd(n,r)}function Gy(n,r){n.prototype=Object.create(r.prototype),n.prototype.constructor=n,cd(n,r)}const uv={disabled:!1},Ss=zt.createContext(null);var gR=function(r){return r.scrollTop},hl="unmounted",or="exited",sr="entering",ni="entered",fd="exiting",$n=function(n){Gy(r,n);function r(l,s){var c;c=n.call(this,l,s)||this;var f=s,p=f&&!f.isMounting?l.enter:l.appear,h;return c.appearStatus=null,l.in?p?(h=or,c.appearStatus=sr):h=ni:l.unmountOnExit||l.mountOnEnter?h=hl:h=or,c.state={status:h},c.nextCallback=null,c}r.getDerivedStateFromProps=function(s,c){var f=s.in;return f&&c.status===hl?{status:or}:null};var o=r.prototype;return o.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},o.componentDidUpdate=function(s){var c=null;if(s!==this.props){var f=this.state.status;this.props.in?f!==sr&&f!==ni&&(c=sr):(f===sr||f===ni)&&(c=fd)}this.updateStatus(!1,c)},o.componentWillUnmount=function(){this.cancelNextCallback()},o.getTimeouts=function(){var s=this.props.timeout,c,f,p;return c=f=p=s,s!=null&&typeof s!="number"&&(c=s.exit,f=s.enter,p=s.appear!==void 0?s.appear:f),{exit:c,enter:f,appear:p}},o.updateStatus=function(s,c){if(s===void 0&&(s=!1),c!==null)if(this.cancelNextCallback(),c===sr){if(this.props.unmountOnExit||this.props.mountOnEnter){var f=this.props.nodeRef?this.props.nodeRef.current:ns.findDOMNode(this);f&&gR(f)}this.performEnter(s)}else this.performExit();else this.props.unmountOnExit&&this.state.status===or&&this.setState({status:hl})},o.performEnter=function(s){var c=this,f=this.props.enter,p=this.context?this.context.isMounting:s,h=this.props.nodeRef?[p]:[ns.findDOMNode(this),p],g=h[0],y=h[1],v=this.getTimeouts(),S=p?v.appear:v.enter;if(!s&&!f||uv.disabled){this.safeSetState({status:ni},function(){c.props.onEntered(g)});return}this.props.onEnter(g,y),this.safeSetState({status:sr},function(){c.props.onEntering(g,y),c.onTransitionEnd(S,function(){c.safeSetState({status:ni},function(){c.props.onEntered(g,y)})})})},o.performExit=function(){var s=this,c=this.props.exit,f=this.getTimeouts(),p=this.props.nodeRef?void 0:ns.findDOMNode(this);if(!c||uv.disabled){this.safeSetState({status:or},function(){s.props.onExited(p)});return}this.props.onExit(p),this.safeSetState({status:fd},function(){s.props.onExiting(p),s.onTransitionEnd(f.exit,function(){s.safeSetState({status:or},function(){s.props.onExited(p)})})})},o.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},o.safeSetState=function(s,c){c=this.setNextCallback(c),this.setState(s,c)},o.setNextCallback=function(s){var c=this,f=!0;return this.nextCallback=function(p){f&&(f=!1,c.nextCallback=null,s(p))},this.nextCallback.cancel=function(){f=!1},this.nextCallback},o.onTransitionEnd=function(s,c){this.setNextCallback(c);var f=this.props.nodeRef?this.props.nodeRef.current:ns.findDOMNode(this),p=s==null&&!this.props.addEndListener;if(!f||p){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var h=this.props.nodeRef?[this.nextCallback]:[f,this.nextCallback],g=h[0],y=h[1];this.props.addEndListener(g,y)}s!=null&&setTimeout(this.nextCallback,s)},o.render=function(){var s=this.state.status;if(s===hl)return null;var c=this.props,f=c.children;c.in,c.mountOnEnter,c.unmountOnExit,c.appear,c.enter,c.exit,c.timeout,c.addEndListener,c.onEnter,c.onEntering,c.onEntered,c.onExit,c.onExiting,c.onExited,c.nodeRef;var p=$e(c,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return zt.createElement(Ss.Provider,{value:null},typeof f=="function"?f(s,p):zt.cloneElement(zt.Children.only(f),p))},r}(zt.Component);$n.contextType=Ss;$n.propTypes={};function ei(){}$n.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:ei,onEntering:ei,onEntered:ei,onExit:ei,onExiting:ei,onExited:ei};$n.UNMOUNTED=hl;$n.EXITED=or;$n.ENTERING=sr;$n.ENTERED=ni;$n.EXITING=fd;function vR(n){if(n===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}function Bd(n,r){var o=function(c){return r&&R.isValidElement(c)?r(c):c},l=Object.create(null);return n&&R.Children.map(n,function(s){return s}).forEach(function(s){l[s.key]=o(s)}),l}function yR(n,r){n=n||{},r=r||{};function o(y){return y in r?r[y]:n[y]}var l=Object.create(null),s=[];for(var c in n)c in r?s.length&&(l[c]=s,s=[]):s.push(c);var f,p={};for(var h in r){if(l[h])for(f=0;fp!=="theme"&&p!=="sx"&&p!=="as"})($l);return R.forwardRef(function(h,g){const y=Vy(o),v=Dd(h),{className:S,component:j="div"}=v,w=$e(v,RR);return m.jsx(c,ee({as:j,ref:g,className:ke(S,s?s(l):l),theme:r&&y[r]||y},w))})}function At(n,r,o="Mui"){const l={};return r.forEach(s=>{l[s]=Vt(n,s,o)}),l}function jR(n){const{theme:r,name:o,props:l}=n;return!r||!r.components||!r.components[o]||!r.components[o].defaultProps?l:Tl(r.components[o].defaultProps,l)}function OR(n,r,o,l,s){const[c,f]=R.useState(()=>s&&o?o(n).matches:l?l(n).matches:r);return _l(()=>{let p=!0;if(!o)return;const h=o(n),g=()=>{p&&f(h.matches)};return g(),h.addListener(g),()=>{p=!1,h.removeListener(g)}},[n,o]),c}const Xy=R.useSyncExternalStore;function NR(n,r,o,l,s){const c=R.useCallback(()=>r,[r]),f=R.useMemo(()=>{if(s&&o)return()=>o(n).matches;if(l!==null){const{matches:y}=l(n);return()=>y}return c},[c,n,l,s,o]),[p,h]=R.useMemo(()=>{if(o===null)return[c,()=>()=>{}];const y=o(n);return[()=>y.matches,v=>(y.addListener(v),()=>{y.removeListener(v)})]},[c,o,n]);return Xy(h,p,f)}function _R(n,r={}){const o=$d(),l=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:s=!1,matchMedia:c=l?window.matchMedia:null,ssrMatchMedia:f=null,noSsr:p=!1}=jR({name:"MuiUseMediaQuery",props:r,theme:o});let h=typeof n=="function"?n(o):n;return h=h.replace(/^@media( ?)/m,""),(Xy!==void 0?NR:OR)(h,s,c,f,p)}function cv(...n){return n.reduce((r,o)=>o==null?r:function(...s){r.apply(this,s),o.apply(this,s)},()=>{})}function AR(n,r=166){let o;function l(...s){const c=()=>{n.apply(this,s)};clearTimeout(o),o=setTimeout(c,r)}return l.clear=()=>{clearTimeout(o)},l}function MR(n,r){var o,l;return R.isValidElement(n)&&r.indexOf((o=n.type.muiName)!=null?o:(l=n.type)==null||(l=l._payload)==null||(l=l.value)==null?void 0:l.muiName)!==-1}function Da(n){return n&&n.ownerDocument||document}function Hl(n){return Da(n).defaultView||window}function kR(n){const r=n.documentElement.clientWidth;return Math.abs(window.innerWidth-r)}function dd(n){return typeof n=="string"}function DR(n,r,o){return n===void 0||dd(n)?r:ee({},r,{ownerState:ee({},r.ownerState,o)})}function Fy(n,r=[]){if(n===void 0)return{};const o={};return Object.keys(n).filter(l=>l.match(/^on[A-Z]/)&&typeof n[l]=="function"&&!r.includes(l)).forEach(l=>{o[l]=n[l]}),o}function fv(n){if(n===void 0)return{};const r={};return Object.keys(n).filter(o=>!(o.match(/^on[A-Z]/)&&typeof n[o]=="function")).forEach(o=>{r[o]=n[o]}),r}function zR(n){const{getSlotProps:r,additionalProps:o,externalSlotProps:l,externalForwardedProps:s,className:c}=n;if(!r){const j=ke(o==null?void 0:o.className,c,s==null?void 0:s.className,l==null?void 0:l.className),w=ee({},o==null?void 0:o.style,s==null?void 0:s.style,l==null?void 0:l.style),x=ee({},o,s,l);return j.length>0&&(x.className=j),Object.keys(w).length>0&&(x.style=w),{props:x,internalRef:void 0}}const f=Fy(ee({},s,l)),p=fv(l),h=fv(s),g=r(f),y=ke(g==null?void 0:g.className,o==null?void 0:o.className,c,s==null?void 0:s.className,l==null?void 0:l.className),v=ee({},g==null?void 0:g.style,o==null?void 0:o.style,s==null?void 0:s.style,l==null?void 0:l.style),S=ee({},g,o,h,p);return y.length>0&&(S.className=y),Object.keys(v).length>0&&(S.style=v),{props:S,internalRef:g.ref}}function LR(n,r,o){return typeof n=="function"?n(r,o):n}const BR=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function dv(n){var r;const{elementType:o,externalSlotProps:l,ownerState:s,skipResolvingSlotProps:c=!1}=n,f=$e(n,BR),p=c?{}:LR(l,s),{props:h,internalRef:g}=zR(ee({},f,{externalSlotProps:p})),y=la(g,p==null?void 0:p.ref,(r=n.additionalProps)==null?void 0:r.ref);return DR(o,ee({},h,{ref:y}),s)}function qs(n){if(parseInt(R.version,10)>=19){var r;return(n==null||(r=n.props)==null?void 0:r.ref)||null}return(n==null?void 0:n.ref)||null}const Ky=R.createContext(null);function Qy(){return R.useContext(Ky)}const UR=typeof Symbol=="function"&&Symbol.for,$R=UR?Symbol.for("mui.nested"):"__THEME_NESTED__";function HR(n,r){return typeof r=="function"?r(n):ee({},n,r)}function qR(n){const{children:r,theme:o}=n,l=Qy(),s=R.useMemo(()=>{const c=l===null?o:HR(l,o);return c!=null&&(c[$R]=l!==null),c},[o,l]);return m.jsx(Ky.Provider,{value:s,children:r})}const PR=["value"],Zy=R.createContext();function YR(n){let{value:r}=n,o=$e(n,PR);return m.jsx(Zy.Provider,ee({value:r??!0},o))}const GR=()=>{const n=R.useContext(Zy);return n??!1},pv={};function hv(n,r,o,l=!1){return R.useMemo(()=>{const s=n&&r[n]||r;if(typeof o=="function"){const c=o(s),f=n?ee({},r,{[n]:c}):c;return l?()=>f:f}return n?ee({},r,{[n]:o}):ee({},r,o)},[n,r,o,l])}function VR(n){const{children:r,theme:o,themeId:l}=n,s=$d(pv),c=Qy()||pv,f=hv(l,s,o),p=hv(l,c,o,!0),h=f.direction==="rtl";return m.jsx(qR,{theme:p,children:m.jsx(hn.Provider,{value:f,children:m.jsx(YR,{value:h,children:m.jsx(tR,{value:f==null?void 0:f.components,children:r})})})})}function XR(n){const{className:r,classes:o,pulsate:l=!1,rippleX:s,rippleY:c,rippleSize:f,in:p,onExited:h,timeout:g}=n,[y,v]=R.useState(!1),S=ke(r,o.ripple,o.rippleVisible,l&&o.ripplePulsate),j={width:f,height:f,top:-(f/2)+c,left:-(f/2)+s},w=ke(o.child,y&&o.childLeaving,l&&o.childPulsate);return!p&&!y&&v(!0),R.useEffect(()=>{if(!p&&h!=null){const x=setTimeout(h,g);return()=>{clearTimeout(x)}}},[h,p,g]),m.jsx("span",{className:S,style:j,children:m.jsx("span",{className:w})})}const dn=At("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),FR=["center","classes","className"];let Ps=n=>n,mv,gv,vv,yv;const pd=550,KR=80,QR=Dl(mv||(mv=Ps` - 0% { - transform: scale(0); - opacity: 0.1; - } - - 100% { - transform: scale(1); - opacity: 0.3; - } -`)),ZR=Dl(gv||(gv=Ps` - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -`)),IR=Dl(vv||(vv=Ps` - 0% { - transform: scale(1); - } - - 50% { - transform: scale(0.92); - } - - 100% { - transform: scale(1); - } -`)),WR=ct("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),JR=ct(XR,{name:"MuiTouchRipple",slot:"Ripple"})(yv||(yv=Ps` - opacity: 0; - position: absolute; - - &.${0} { - opacity: 0.3; - transform: scale(1); - animation-name: ${0}; - animation-duration: ${0}ms; - animation-timing-function: ${0}; - } - - &.${0} { - animation-duration: ${0}ms; - } - - & .${0} { - opacity: 1; - display: block; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: currentColor; - } - - & .${0} { - opacity: 0; - animation-name: ${0}; - animation-duration: ${0}ms; - animation-timing-function: ${0}; - } - - & .${0} { - position: absolute; - /* @noflip */ - left: 0px; - top: 0; - animation-name: ${0}; - animation-duration: 2500ms; - animation-timing-function: ${0}; - animation-iteration-count: infinite; - animation-delay: 200ms; - } -`),dn.rippleVisible,QR,pd,({theme:n})=>n.transitions.easing.easeInOut,dn.ripplePulsate,({theme:n})=>n.transitions.duration.shorter,dn.child,dn.childLeaving,ZR,pd,({theme:n})=>n.transitions.easing.easeInOut,dn.childPulsate,IR,({theme:n})=>n.transitions.easing.easeInOut),eT=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiTouchRipple"}),{center:s=!1,classes:c={},className:f}=l,p=$e(l,FR),[h,g]=R.useState([]),y=R.useRef(0),v=R.useRef(null);R.useEffect(()=>{v.current&&(v.current(),v.current=null)},[h]);const S=R.useRef(!1),j=oR(),w=R.useRef(null),x=R.useRef(null),_=R.useCallback(A=>{const{pulsate:N,rippleX:V,rippleY:M,rippleSize:C,cb:L}=A;g(D=>[...D,m.jsx(JR,{classes:{ripple:ke(c.ripple,dn.ripple),rippleVisible:ke(c.rippleVisible,dn.rippleVisible),ripplePulsate:ke(c.ripplePulsate,dn.ripplePulsate),child:ke(c.child,dn.child),childLeaving:ke(c.childLeaving,dn.childLeaving),childPulsate:ke(c.childPulsate,dn.childPulsate)},timeout:pd,pulsate:N,rippleX:V,rippleY:M,rippleSize:C},y.current)]),y.current+=1,v.current=L},[c]),T=R.useCallback((A={},N={},V=()=>{})=>{const{pulsate:M=!1,center:C=s||N.pulsate,fakeElement:L=!1}=N;if((A==null?void 0:A.type)==="mousedown"&&S.current){S.current=!1;return}(A==null?void 0:A.type)==="touchstart"&&(S.current=!0);const D=L?null:x.current,z=D?D.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Y,K,ie;if(C||A===void 0||A.clientX===0&&A.clientY===0||!A.clientX&&!A.touches)Y=Math.round(z.width/2),K=Math.round(z.height/2);else{const{clientX:le,clientY:Z}=A.touches&&A.touches.length>0?A.touches[0]:A;Y=Math.round(le-z.left),K=Math.round(Z-z.top)}if(C)ie=Math.sqrt((2*z.width**2+z.height**2)/3),ie%2===0&&(ie+=1);else{const le=Math.max(Math.abs((D?D.clientWidth:0)-Y),Y)*2+2,Z=Math.max(Math.abs((D?D.clientHeight:0)-K),K)*2+2;ie=Math.sqrt(le**2+Z**2)}A!=null&&A.touches?w.current===null&&(w.current=()=>{_({pulsate:M,rippleX:Y,rippleY:K,rippleSize:ie,cb:V})},j.start(KR,()=>{w.current&&(w.current(),w.current=null)})):_({pulsate:M,rippleX:Y,rippleY:K,rippleSize:ie,cb:V})},[s,_,j]),E=R.useCallback(()=>{T({},{pulsate:!0})},[T]),O=R.useCallback((A,N)=>{if(j.clear(),(A==null?void 0:A.type)==="touchend"&&w.current){w.current(),w.current=null,j.start(0,()=>{O(A,N)});return}w.current=null,g(V=>V.length>0?V.slice(1):V),v.current=N},[j]);return R.useImperativeHandle(o,()=>({pulsate:E,start:T,stop:O}),[E,T,O]),m.jsx(WR,ee({className:ke(dn.root,c.root,f),ref:x},p,{children:m.jsx(Ud,{component:null,exit:!0,children:h})}))});function tT(n){return Vt("MuiButtonBase",n)}const nT=At("MuiButtonBase",["root","disabled","focusVisible"]),aT=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],rT=n=>{const{disabled:r,focusVisible:o,focusVisibleClassName:l,classes:s}=n,f=Wt({root:["root",r&&"disabled",o&&"focusVisible"]},tT,s);return o&&l&&(f.root+=` ${l}`),f},iT=ct("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(n,r)=>r.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${nT.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Hd=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiButtonBase"}),{action:s,centerRipple:c=!1,children:f,className:p,component:h="button",disabled:g=!1,disableRipple:y=!1,disableTouchRipple:v=!1,focusRipple:S=!1,LinkComponent:j="a",onBlur:w,onClick:x,onContextMenu:_,onDragLeave:T,onFocus:E,onFocusVisible:O,onKeyDown:A,onKeyUp:N,onMouseDown:V,onMouseLeave:M,onMouseUp:C,onTouchEnd:L,onTouchMove:D,onTouchStart:z,tabIndex:Y=0,TouchRippleProps:K,touchRippleRef:ie,type:le}=l,Z=$e(l,aT),oe=R.useRef(null),ne=R.useRef(null),pe=la(ne,ie),{isFocusVisibleRef:U,onFocus:re,onBlur:P,ref:Q}=mR(),[J,se]=R.useState(!1);g&&J&&se(!1),R.useImperativeHandle(s,()=>({focusVisible:()=>{se(!0),oe.current.focus()}}),[]);const[H,fe]=R.useState(!1);R.useEffect(()=>{fe(!0)},[]);const B=H&&!y&&!g;R.useEffect(()=>{J&&S&&!y&&H&&ne.current.pulsate()},[y,S,J,H]);function ae(Re,ql,Ys=v){return ii(ua=>(ql&&ql(ua),!Ys&&ne.current&&ne.current[Re](ua),!0))}const he=ae("start",V),ge=ae("stop",_),de=ae("stop",T),Ee=ae("stop",C),_e=ae("stop",Re=>{J&&Re.preventDefault(),M&&M(Re)}),we=ae("start",z),Qe=ae("stop",L),je=ae("stop",D),et=ae("stop",Re=>{P(Re),U.current===!1&&se(!1),w&&w(Re)},!1),vn=ii(Re=>{oe.current||(oe.current=Re.currentTarget),re(Re),U.current===!0&&(se(!0),O&&O(Re)),E&&E(Re)}),Fe=()=>{const Re=oe.current;return h&&h!=="button"&&!(Re.tagName==="A"&&Re.href)},On=R.useRef(!1),Hn=ii(Re=>{S&&!On.current&&J&&ne.current&&Re.key===" "&&(On.current=!0,ne.current.stop(Re,()=>{ne.current.start(Re)})),Re.target===Re.currentTarget&&Fe()&&Re.key===" "&&Re.preventDefault(),A&&A(Re),Re.target===Re.currentTarget&&Fe()&&Re.key==="Enter"&&!g&&(Re.preventDefault(),x&&x(Re))}),Ze=ii(Re=>{S&&Re.key===" "&&ne.current&&J&&!Re.defaultPrevented&&(On.current=!1,ne.current.stop(Re,()=>{ne.current.pulsate(Re)})),N&&N(Re),x&&Re.target===Re.currentTarget&&Fe()&&Re.key===" "&&!Re.defaultPrevented&&x(Re)});let be=h;be==="button"&&(Z.href||Z.to)&&(be=j);const De={};be==="button"?(De.type=le===void 0?"button":le,De.disabled=g):(!Z.href&&!Z.to&&(De.role="button"),g&&(De["aria-disabled"]=g));const sa=la(o,Q,oe),yn=ee({},l,{centerRipple:c,component:h,disabled:g,disableRipple:y,disableTouchRipple:v,focusRipple:S,tabIndex:Y,focusVisible:J}),Jt=rT(yn);return m.jsxs(iT,ee({as:be,className:ke(Jt.root,p),ownerState:yn,onBlur:et,onClick:x,onContextMenu:ge,onFocus:vn,onKeyDown:Hn,onKeyUp:Ze,onMouseDown:he,onMouseLeave:_e,onMouseUp:Ee,onDragLeave:de,onTouchEnd:Qe,onTouchMove:je,onTouchStart:we,ref:sa,tabIndex:g?-1:Y,type:le},De,Z,{children:[f,B?m.jsx(eT,ee({ref:pe,center:c},K)):null]}))});function lT(n){return Vt("MuiButton",n)}const os=At("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),oT=R.createContext({}),sT=R.createContext(void 0),uT=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],cT=n=>{const{color:r,disableElevation:o,fullWidth:l,size:s,variant:c,classes:f}=n,p={root:["root",c,`${c}${qe(r)}`,`size${qe(s)}`,`${c}Size${qe(s)}`,`color${qe(r)}`,o&&"disableElevation",l&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${qe(s)}`],endIcon:["icon","endIcon",`iconSize${qe(s)}`]},h=Wt(p,lT,f);return ee({},f,h)},Iy=n=>ee({},n.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},n.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},n.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),fT=ct(Hd,{shouldForwardProp:n=>Ld(n)||n==="classes",name:"MuiButton",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,r[o.variant],r[`${o.variant}${qe(o.color)}`],r[`size${qe(o.size)}`],r[`${o.variant}Size${qe(o.size)}`],o.color==="inherit"&&r.colorInherit,o.disableElevation&&r.disableElevation,o.fullWidth&&r.fullWidth]}})(({theme:n,ownerState:r})=>{var o,l;const s=n.palette.mode==="light"?n.palette.grey[300]:n.palette.grey[800],c=n.palette.mode==="light"?n.palette.grey.A100:n.palette.grey[700];return ee({},n.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(n.vars||n).shape.borderRadius,transition:n.transitions.create(["background-color","box-shadow","border-color","color"],{duration:n.transitions.duration.short}),"&:hover":ee({textDecoration:"none",backgroundColor:n.vars?`rgba(${n.vars.palette.text.primaryChannel} / ${n.vars.palette.action.hoverOpacity})`:Lt.alpha(n.palette.text.primary,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},r.variant==="text"&&r.color!=="inherit"&&{backgroundColor:n.vars?`rgba(${n.vars.palette[r.color].mainChannel} / ${n.vars.palette.action.hoverOpacity})`:Lt.alpha(n.palette[r.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},r.variant==="outlined"&&r.color!=="inherit"&&{border:`1px solid ${(n.vars||n).palette[r.color].main}`,backgroundColor:n.vars?`rgba(${n.vars.palette[r.color].mainChannel} / ${n.vars.palette.action.hoverOpacity})`:Lt.alpha(n.palette[r.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},r.variant==="contained"&&{backgroundColor:n.vars?n.vars.palette.Button.inheritContainedHoverBg:c,boxShadow:(n.vars||n).shadows[4],"@media (hover: none)":{boxShadow:(n.vars||n).shadows[2],backgroundColor:(n.vars||n).palette.grey[300]}},r.variant==="contained"&&r.color!=="inherit"&&{backgroundColor:(n.vars||n).palette[r.color].dark,"@media (hover: none)":{backgroundColor:(n.vars||n).palette[r.color].main}}),"&:active":ee({},r.variant==="contained"&&{boxShadow:(n.vars||n).shadows[8]}),[`&.${os.focusVisible}`]:ee({},r.variant==="contained"&&{boxShadow:(n.vars||n).shadows[6]}),[`&.${os.disabled}`]:ee({color:(n.vars||n).palette.action.disabled},r.variant==="outlined"&&{border:`1px solid ${(n.vars||n).palette.action.disabledBackground}`},r.variant==="contained"&&{color:(n.vars||n).palette.action.disabled,boxShadow:(n.vars||n).shadows[0],backgroundColor:(n.vars||n).palette.action.disabledBackground})},r.variant==="text"&&{padding:"6px 8px"},r.variant==="text"&&r.color!=="inherit"&&{color:(n.vars||n).palette[r.color].main},r.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},r.variant==="outlined"&&r.color!=="inherit"&&{color:(n.vars||n).palette[r.color].main,border:n.vars?`1px solid rgba(${n.vars.palette[r.color].mainChannel} / 0.5)`:`1px solid ${Lt.alpha(n.palette[r.color].main,.5)}`},r.variant==="contained"&&{color:n.vars?n.vars.palette.text.primary:(o=(l=n.palette).getContrastText)==null?void 0:o.call(l,n.palette.grey[300]),backgroundColor:n.vars?n.vars.palette.Button.inheritContainedBg:s,boxShadow:(n.vars||n).shadows[2]},r.variant==="contained"&&r.color!=="inherit"&&{color:(n.vars||n).palette[r.color].contrastText,backgroundColor:(n.vars||n).palette[r.color].main},r.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},r.size==="small"&&r.variant==="text"&&{padding:"4px 5px",fontSize:n.typography.pxToRem(13)},r.size==="large"&&r.variant==="text"&&{padding:"8px 11px",fontSize:n.typography.pxToRem(15)},r.size==="small"&&r.variant==="outlined"&&{padding:"3px 9px",fontSize:n.typography.pxToRem(13)},r.size==="large"&&r.variant==="outlined"&&{padding:"7px 21px",fontSize:n.typography.pxToRem(15)},r.size==="small"&&r.variant==="contained"&&{padding:"4px 10px",fontSize:n.typography.pxToRem(13)},r.size==="large"&&r.variant==="contained"&&{padding:"8px 22px",fontSize:n.typography.pxToRem(15)},r.fullWidth&&{width:"100%"})},({ownerState:n})=>n.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${os.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${os.disabled}`]:{boxShadow:"none"}}),dT=ct("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.startIcon,r[`iconSize${qe(o.size)}`]]}})(({ownerState:n})=>ee({display:"inherit",marginRight:8,marginLeft:-4},n.size==="small"&&{marginLeft:-2},Iy(n))),pT=ct("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.endIcon,r[`iconSize${qe(o.size)}`]]}})(({ownerState:n})=>ee({display:"inherit",marginRight:-4,marginLeft:8},n.size==="small"&&{marginRight:-2},Iy(n))),Ba=R.forwardRef(function(r,o){const l=R.useContext(oT),s=R.useContext(sT),c=Tl(l,r),f=Xt({props:c,name:"MuiButton"}),{children:p,color:h="primary",component:g="button",className:y,disabled:v=!1,disableElevation:S=!1,disableFocusRipple:j=!1,endIcon:w,focusVisibleClassName:x,fullWidth:_=!1,size:T="medium",startIcon:E,type:O,variant:A="text"}=f,N=$e(f,uT),V=ee({},f,{color:h,component:g,disabled:v,disableElevation:S,disableFocusRipple:j,fullWidth:_,size:T,type:O,variant:A}),M=cT(V),C=E&&m.jsx(dT,{className:M.startIcon,ownerState:V,children:E}),L=w&&m.jsx(pT,{className:M.endIcon,ownerState:V,children:w}),D=s||"";return m.jsxs(fT,ee({ownerState:V,className:ke(l.className,M.root,y,D),component:g,disabled:v,focusRipple:!j,focusVisibleClassName:ke(M.focusVisible,x),ref:o,type:O},N,{classes:M,children:[C,p,L]}))}),hT=()=>{const n=window.location.host.includes("yalelabs.io")?"https://yalelabs.io":"http://localhost:4000",[r,o]=R.useState(window.location.origin);R.useEffect(()=>{const s=localStorage.getItem("logoutReturnPath");if(s){try{const c=new URL(s);o(s)}catch{const f=window.location.origin+(s.startsWith("/")?s:"/"+s);o(f)}localStorage.removeItem("logoutReturnPath")}},[]);const l=n+`/cas?redirect=${r}&error=${window.location.origin}/login-error`;return m.jsx(Ba,{variant:"contained",href:l,children:"Sign in With Yale CAS"})},mT=()=>{const{isLoading:n,isAuthenticated:r,user:o}=R.useContext(mn),l=()=>(o==null?void 0:o.userType)==="professor"?"/account":"/";return m.jsxs(gT,{children:[m.jsxs(vT,{children:[m.jsxs("div",{className:"flex items-center",children:[m.jsx("img",{src:"/assets/logos/paperclip.png",alt:"ylabs-logo",className:"mr-2 w-[3.5rem] h-[3rem] md:w-[6.33rem] md:h-[5.4rem] sm:w-[4.5rem] sm:h-[4rem] "}),m.jsx("img",{src:"/assets/logos/ylabs-blue.png",alt:"ylabs-logo",className:"w-[7rem] h-[3rem] md:w-[13.03rem] md:h-[5.4rem] sm:w-[9rem] sm:h-[4rem]"})]}),m.jsx(yT,{className:"mt-12",children:"A Yale Research Database"}),m.jsx(bT,{className:"mt-2",children:"Search through 1400+ Yale faculty listings across 60+ fields of study. Learn about professors who share your research interests and find potential research mentors."})]}),m.jsx(xT,{children:n?m.jsx(Ms,{color:"#66CCFF",size:10}):r?m.jsx(ml,{to:l(),replace:!0}):m.jsx(hT,{})})]})},gT=ra.div` - width: 100%; - background: #ffffff; - display: flex; - flex-direction: column; - align-items: center; - padding: 5% 20px; - box-sizing: border-box; -`,vT=ra.div` - width: 100%; - max-width: 600px; - margin-top: 120px; - display: flex; - align-items: center; - flex-direction: column; - justify-content: top; - text-align: center; - - @media (max-width: 768px) { - padding: 0 15px; - } -`;ra.img` - width: 320px; - height: auto; - max-width: 90%; - - @media (max-width: 768px) { - width: 250px; - } - - @media (max-width: 480px) { - width: 200px; - } -`;const yT=ra.h1` - color: #000000; - font-size: 32px; - - @media (max-width: 768px) { - font-size: 28px; - margin-top: 20px !important; - } - - @media (max-width: 480px) { - font-size: 24px; - } -`,bT=ra.p` - color: #000000; - font-size: 20px; - - @media (max-width: 768px) { - font-size: 18px; - } - - @media (max-width: 480px) { - font-size: 16px; - } -`,xT=ra.div` - margin-top: 30px; - width: 100%; - max-width: 600px; - display: flex; - align-items: center; - flex-direction: column; - text-align: center; - - @media (max-width: 768px) { - margin-top: 20px; - } -`,bv=({developer:n})=>n?m.jsxs("div",{children:[m.jsx("img",{src:n.image?n.image:"/assets/developers/no-user.png",alt:`${n.name} Profile Picture`,className:"aspect-square object-cover w-full rounded-lg mb-2",width:500,height:500}),m.jsx("h3",{className:"text-xl font-semibold",children:n.name}),m.jsx("p",{className:"text-gray-700",children:n.position}),m.jsx("p",{className:"text-gray-700 mb-1",children:n.location}),n.website&&m.jsx("a",{href:n.website,target:"_blank",rel:"noopener noreferrer",children:m.jsx("img",{src:"/assets/icons/website-icon.png",alt:`${n.name} Website`,width:20,height:20,className:"inline-block"})}),n.linkedin&&m.jsx("a",{href:n.linkedin,target:"_blank",rel:"noopener noreferrer",children:m.jsx("img",{src:"/assets/icons/linkedin-icon.png",alt:`${n.name} LinkedIn`,width:28,height:28,className:"inline-block"})}),n.github&&m.jsx("a",{href:n.github,target:"_blank",rel:"noopener noreferrer",children:m.jsx("img",{src:"/assets/icons/github-icon.png",alt:`${n.name} Website`,width:20,height:20,className:"inline-block"})})]}):null,ST=()=>m.jsxs("div",{className:"flex flex-col items-center p-8 min-h-screen mt-24",children:[m.jsxs("div",{className:"max-w-5xl text-center",children:[m.jsx("h1",{className:"text-4xl font-bold mb-7",children:"Welcome to Yale Labs! 🔬"}),m.jsxs("p",{className:"text-lg text-gray-700 mb-10 leading-relaxed",children:["A collaboration between the"," ",m.jsx("a",{href:"https://yalecomputersociety.org/",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500",children:"Yale Computer Society"})," ","and the"," ",m.jsx("a",{href:"https://www.yura.yale.edu/",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500",children:"Yale Undergraduate Research Association"}),", Yale Labs brings students a single, streamlined platform to browse research opportunities at Yale! With a mix of lab listings submitted by professors and scraped from the internet, our mission at Yale Labs is to make finding your next lab as stress-free as possible with all the information you need in one place."]}),m.jsx("h1",{className:"text-3xl font-bold mb-7",children:"Help us with our first release!"}),m.jsxs("p",{className:"text-lg text-gray-700 mb-10 leading-relaxed",children:["While we are working dilligently to get more up-to-date listings on the site, we are also working on changes to improve the browsing experience! As you look around the site, please let us know in the"," ",m.jsx("a",{href:"https://docs.google.com/forms/d/e/1FAIpQLSf2BE6MBulJHWXhDDp3y4Nixwe6EH0Oo9X1pTo976-KrJKv5g/viewform?usp=dialog",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500",children:"feedback form"})," ","if there is anything that is broken, annoying, or that you would like to see added to the site."]}),m.jsx("a",{href:"https://yalecomputersociety.org/",target:"_blank",rel:"noopener noreferrer",children:m.jsx("img",{src:"/assets/icons/ycs-icon.png",alt:"y/cs Website",width:40,height:40,className:"inline-block mx-2"})}),m.jsx("a",{href:"https://www.yura.yale.edu/",target:"_blank",rel:"noopener noreferrer",children:m.jsx("img",{src:"/assets/icons/yura-icon.png",alt:"YURA Website",width:32,height:40,className:"inline-block mx-2"})}),m.jsx("a",{href:"https://github.com/YaleComputerSociety/ylabs",target:"_blank",rel:"noopener noreferrer",children:m.jsx("img",{src:"/assets/icons/github-icon.png",alt:"RDB Github",width:40,height:40,className:"inline-block mx-2"})})]}),m.jsxs("div",{className:"max-w-6xl text-center mt-16",children:[m.jsx("h2",{className:"text-3xl font-bold mb-10",children:"Meet our team"}),m.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-4 mb-16",children:wT.map(n=>m.jsx("div",{className:"bg-gray-50 p-3 rounded-lg shadow-md",children:m.jsx(bv,{developer:n})},n.name))}),m.jsx("h2",{className:"text-3xl font-bold mb-10",children:"RDB alumni"}),m.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-4",children:ET.map(n=>m.jsx("div",{className:"bg-gray-50 p-3 rounded-lg shadow-md",children:m.jsx(bv,{developer:n})},n.name))})]})]}),wT=[{name:"Ryan Fernandes",position:"Development Lead",image:"/assets/developers/RyanFernandes.jpeg",location:"Natick, MA",linkedin:"https://www.linkedin.com/in/ryan-fernandes-088109284/",github:"https://github.com/Ryfernandes"},{name:"Sebastian Gonzalez",image:"/assets/developers/SebastianGonzalez.jpeg",position:"Developer",location:"Montclair, NJ",github:"https://github.com/Seb-G0",linkedin:"https://www.linkedin.com/in/sebastian-ravi-gonzalez/"},{name:"Dohun Kim",position:"Developer",image:"/assets/developers/DohunKim.jpeg",location:"Anyang-si, South Korea",github:"https://github.com/rlaehgnss",linkedin:"https://www.linkedin.com/in/dohun-kim-848028251/"},{name:"Alan Zhong",image:"/assets/developers/AlanZhong.jpeg",position:"Developer",location:"Basking Ridge, NJ",github:"https://github.com/azh248",linkedin:"https://www.linkedin.com/in/azhong248/"},{name:"Quntao Zheng",image:"/assets/developers/QuntaoZheng.jpeg",position:"Developer",location:"New York, NY",github:"https://github.com/quntao-z",linkedin:"https://www.linkedin.com/in/quntao-zheng/"},{name:"Christian Phanhthourath",position:"Developer",image:"/assets/developers/ChristianPhanhthourath.jpeg",location:"Marietta, GA",github:"https://github.com/cphanhth",linkedin:"https://linkedin.com/in/christianphanhthourath"},{name:"Christina Xu",position:"Developer",image:"/assets/developers/ChristinaXu.jpeg",location:"Lincoln, Nebraska",github:"https://github.com/shadaxiong"}],ET=[{name:"Julian Lee",position:"RDB Founder",location:"New York, NY",github:"https://github.com/JulianLee123"},{name:"Miles Yamner",position:"Developer",location:"New York, NY"},{name:"Landon Hellman",position:"Developer",location:"Santa Barbara, CA"}],qd=({error:n})=>n?m.jsx("div",{className:"text-red-500 text-xs mt-1",children:n}):null,xv=({id:n,label:r,value:o,onChange:l,placeholder:s,error:c,onValidate:f})=>m.jsxs("div",{className:"mb-4",children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",htmlFor:n,children:r}),m.jsx("input",{id:n,type:"text",value:o,onChange:p=>{l(p.target.value),f&&f(p.target.value)},placeholder:s,className:`shadow appearance-none border ${c?"border-red-500":""} rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline whitespace-nowrap overflow-x-auto`}),m.jsx(qd,{error:c})]}),CT=({id:n,label:r,value:o,onChange:l,placeholder:s,rows:c=10,error:f,onValidate:p})=>m.jsxs("div",{className:"mb-4",children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",htmlFor:"description",children:r}),m.jsx("textarea",{id:n,value:o,onChange:h=>{l(h.target.value),p&&p(h.target.value)},placeholder:s,className:"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline overflow-x-auto",rows:c}),m.jsx(qd,{error:f})]}),pl=({label:n,items:r,setItems:o,placeholder:l,bgColor:s,textColor:c,buttonColor:f,error:p,type:h="text",permanentValue:g,onValidate:y,infoText:v})=>{const S=R.useRef(null),[j,w]=R.useState(!1),x=E=>{if(E.key==="Enter"&&S.current&&S.current.value.trim()){E.preventDefault();const O=S.current.value.trim();if(!r.includes(O)&&(!g||O!==g)){const A=[...r,O];o(A),S.current.value="",y&&y(g?[...A,g]:A)}}},_=E=>{const O=[...r];O.splice(E,1),o(O),y&&y(g?[...O,g]:O)},T=()=>{const E=[];return g&&E.push(m.jsxs("span",{className:`${s} ${c} px-2 py-1 rounded text-sm flex items-center`,children:[m.jsx("span",{className:"whitespace-nowrap",children:g}),m.jsxs("div",{className:"ml-2 w-4 h-4 relative",onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),children:[m.jsx("div",{className:"rounded-full border border-current flex items-center justify-center w-full h-full cursor-pointer",children:m.jsx("span",{className:"text-xs",children:"?"})}),j&&m.jsx("div",{className:"absolute left-6 -top-1 bg-gray-800 text-white text-xs rounded py-1 px-2 whitespace-nowrap z-10",children:"Creator"})]})]},"permanent")),r.forEach((O,A)=>{g!==O&&E.push(m.jsxs("span",{className:`${s} ${c} px-2 py-1 rounded text-sm flex items-center`,children:[m.jsx("span",{className:"whitespace-nowrap",children:O}),m.jsx("button",{type:"button",onClick:()=>_(A),className:`ml-2 ${f}`,children:"×"})]},A))}),E};return m.jsxs("div",{className:"mb-4",children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",children:n}),v&&m.jsx("div",{className:"text-xs text-gray-500 mb-2",children:v}),m.jsx("div",{className:"flex flex-wrap gap-2 mb-2 overflow-x-auto",children:T()}),m.jsx("div",{className:"flex",children:m.jsx("input",{type:h,ref:S,placeholder:l,className:"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500",onKeyDown:x})}),m.jsx("div",{className:"text-xs text-gray-500 mt-1",children:"Press Enter to add"}),m.jsx(qd,{error:p})]})},RT=({departments:n,availableDepartments:r,onAddDepartment:o,onRemoveDepartment:l})=>{const[s,c]=R.useState(!1),[f,p]=R.useState(""),[h,g]=R.useState(-1),y=R.useRef(null),v=R.useRef(null),S=r.filter(x=>x.toLowerCase().includes(f.toLowerCase()));R.useEffect(()=>{const x=_=>{y.current&&!y.current.contains(_.target)&&(c(!1),p(""))};return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[]);const j=x=>{switch(x.key){case"ArrowDown":x.preventDefault(),g(_=>__>0?_-1:0);break;case"Enter":x.preventDefault(),h>=0&&h{if(Object.keys(It).includes(x))switch(It[x]){case 0:return"bg-blue-200";case 1:return"bg-green-200";case 2:return"bg-yellow-200";case 3:return"bg-red-200";case 4:return"bg-purple-200";case 5:return"bg-pink-200";case 6:return"bg-teal-200";case 7:return"bg-orange-200";default:return"bg-gray-100"}return"bg-gray-100"};return m.jsxs("div",{className:"mb-4",ref:y,children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",children:"⭐ Departments"}),m.jsxs("div",{className:"text-xs text-gray-500 mb-2",children:["Don't see your department? Let us know"," ",m.jsx("a",{href:"https://docs.google.com/forms/d/e/1FAIpQLSf2BE6MBulJHWXhDDp3y4Nixwe6EH0Oo9X1pTo976-KrJKv5g/viewform",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500",children:"here"})]}),m.jsx("div",{className:"flex flex-wrap gap-2 mb-2 overflow-x-auto",children:n.map((x,_)=>m.jsxs("span",{className:`${w(x)} text-gray-900 px-2 py-1 rounded text-sm flex items-center`,children:[m.jsx("span",{className:"whitespace-nowrap",children:x}),m.jsx("button",{type:"button",onClick:()=>l(_),className:"ml-2 text-gray-500 hover:text-gray-700",children:"×"})]},_))}),m.jsxs("div",{className:"relative",children:[m.jsxs("div",{className:"relative",children:[m.jsx("input",{ref:v,type:"text",value:f,onClick:()=>c(!0),onChange:x=>{p(x.target.value),g(-1)},onKeyDown:j,onFocus:()=>c(!0),className:"shadow appearance-none border rounded w-full py-2 px-3 pr-10 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"Add departments..."}),m.jsx("div",{className:"absolute inset-y-0 right-0 flex items-center px-2 text-gray-700 cursor-pointer",onClick:()=>{s&&p(""),c(!s),!s&&v.current&&v.current.focus()},children:m.jsx("svg",{className:"fill-current h-4 w-4",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:m.jsx("path",{d:"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"})})})]}),s&&m.jsx("div",{className:"absolute w-full bg-white rounded-lg z-10 shadow-lg border overflow-hidden mt-1 max-h-[300px] md:max-h-[350px] border-gray-300",tabIndex:-1,children:m.jsx("ul",{className:"max-h-[350px] p-1 overflow-y-auto",tabIndex:-1,children:S.length>0?S.map((x,_)=>m.jsx("li",{onClick:()=>{o(x),p("")},className:`p-2 cursor-pointer ${h===_?"bg-blue-100":"hover:bg-gray-100"}`,tabIndex:-1,onMouseDown:T=>T.preventDefault(),children:x},_)):m.jsx("li",{className:"p-2 text-gray-500",tabIndex:-1,children:"No departments found"})})})]})]})},TT=({hiringStatus:n,setHiringStatus:r})=>{const[o,l]=R.useState(!1),[s,c]=R.useState(-1),f=R.useRef(null),p=R.useRef(null),h=[{value:-1,label:"Lab not seeking applicants"},{value:0,label:"Lab open to applicants"},{value:1,label:"Lab seeking applicants"}],g=v=>{r(v),l(!1),p.current&&p.current.blur()},y=v=>{switch(v.key){case"ArrowDown":v.preventDefault(),c(S=>SS>0?S-1:0);break;case"Enter":v.preventDefault(),s>=0&&s{l(!0)},onKeyDown:y,onFocus:()=>l(!0),onBlur:()=>{setTimeout(()=>{var v;(v=f.current)!=null&&v.contains(document.activeElement)||l(!1)},100)},className:"shadow appearance-none border rounded w-full py-2 px-3 pr-10 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-pointer"}),m.jsx("div",{className:"absolute inset-y-0 right-0 flex items-center px-2 text-gray-700 cursor-pointer",onClick:()=>{l(!o),!o&&p.current&&p.current.focus()},children:m.jsx("svg",{className:"fill-current h-4 w-4",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:m.jsx("path",{d:"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"})})})]}),o&&m.jsx("div",{className:"absolute left-0 right-0 bg-white rounded-lg z-10 shadow-lg border overflow-hidden mt-1 max-h-[350px] border-gray-300",tabIndex:-1,children:m.jsx("ul",{className:"max-h-[350px] overflow-y-auto",tabIndex:-1,children:h.map((v,S)=>m.jsxs("li",{onClick:()=>g(v.value),className:`p-2 cursor-pointer flex items-center justify-between ${s===S?"bg-blue-100":"hover:bg-gray-100"}`,tabIndex:-1,onMouseDown:j=>j.preventDefault(),children:[m.jsx("span",{children:v.label}),n===v.value&&m.jsx("svg",{className:"h-4 w-4 text-blue-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M5 13l4 4L19 7"})})]},S))})})]})]})},Sv=n=>n.trim()?void 0:"Title is required",jT=n=>n.trim()?void 0:"Description is required",wv=n=>{if(!n)return;const r=parseInt(n,10),o=new Date().getFullYear();if(isNaN(r)||!Number.isInteger(r))return"Year must be a valid integer";if(r<1701)return"Yale wasn't established until 1701!";if(r>o)return"Year cannot be in the future";if(n.trim().includes(" "))return"Year cannot include spaces";if(r.toString()!=n.trim())return"Year cannot include non-numeric characters"},Ev=n=>n.length>0?void 0:"At least one professor is required",Cv=n=>{if(n.length===0)return"At least one email is required";for(const r of n)if(!r.includes("@")||!r.includes(".")||r.includes(" "))return`Invalid email format: ${r}`},Rv=n=>{if(n.length!==0){for(const r of n)if(!r.includes(".")||r.includes(" "))return`Invalid website format: ${r}`}},Tv=n=>{if(n.length>3)return"Maximum of 3 collaborators allowed";if(new Set(n).size!==n.length)return"Please remove duplicate collaborators";for(const o of n)if(!/^[a-zA-Z0-9]+$/.test(o))return`Invalid format for collaborator netid: ${o}`},OT=({listing:n,isCreated:r,onLoad:o,onCancel:l,onSave:s,onCreate:c})=>{const[f,p]=R.useState(n.title),[h,g]=R.useState([...n.professorNames]),[y,v]=R.useState(`${n.ownerFirstName} ${n.ownerLastName}`),[S,j]=R.useState([...n.departments]),[w,x]=R.useState([]),[_,T]=R.useState([...n.professorIds]),[E,O]=R.useState([...n.emails]),[A,N]=R.useState(n.ownerEmail),[V,M]=R.useState(n.websites?[...n.websites]:[]),[C,L]=R.useState(n.description),[D,z]=R.useState(n.keywords?[...n.keywords]:[]),[Y,K]=R.useState(n.established||""),[ie,le]=R.useState(n.hiringStatus),[Z,oe]=R.useState(n.archived),[ne,pe]=R.useState(!0),{user:U}=R.useContext(mn),re=U&&U.netId===n.ownerId,[P,Q]=R.useState({});R.useEffect(()=>{r?(x(H0.filter(B=>!S.includes(B)).sort()),pe(!1)):(pe(!0),Ct.get(`/listings/${n.id}`,{withCredentials:!0}).then(B=>{if(!B.data.listing){console.error(`Response, but no listing ${ae.id}:`,B.data),o(ae,!1);return}const ae=cr(B.data.listing);p(ae.title),g([...ae.professorNames]),v(`${ae.ownerFirstName} ${ae.ownerLastName}`),j([...ae.departments]),O([...ae.emails]),N(ae.ownerEmail),M(ae.websites?[...ae.websites]:[]),L(ae.description),z(ae.keywords?[...ae.keywords]:[]),K(ae.established||""),le(ae.hiringStatus),oe(ae.archived),o(ae,!0),x(H0.filter(he=>!ae.departments.includes(he)).sort()),pe(!1)}).catch(B=>{console.error(`Error fetching most recent listing ${n.id}:`,B),o(n,!1)}))},[]),R.useEffect(()=>{const B={...n,title:f,professorNames:h,departments:S,emails:E,websites:V,description:C,keywords:D,established:Y,hiringStatus:ie,archived:Z};o(B,!0)},[f,h,S,E,V,C,D,Y,ie,Z]);const J=B=>{B.preventDefault();const ae={title:Sv(f),description:jT(C),established:wv(Y),professorNames:Ev([y,...h]),professorIds:Tv(_),emails:Cv([A,...E]),websites:Rv(V)},he=Object.fromEntries(Object.entries(ae).filter(([ge,de])=>de!==void 0));if(Q(he),Object.keys(he).length===0){const ge={...n,title:f,professorIds:_,professorNames:h,departments:S,emails:E,websites:V,description:C,keywords:D,established:Y,hiringStatus:ie,archived:Z};r?Je({title:"Create Listing",text:"Are you sure you want to create this listing?",icon:"info",buttons:["Cancel","Create"]}).then(de=>{de&&c&&c(ge)}):Je({title:"Submit Form",text:"Are you sure you want to save these changes?",icon:"info",buttons:["Cancel","Save"]}).then(de=>{de&&s&&s(ge)})}else console.log("Validation errors:",he)},se=()=>{if(r)Je({title:"Delete Listing",text:"Are you sure you want to delete this listing? This action cannot be undone",icon:"warning",buttons:["Cancel","Delete"],dangerMode:!0}).then(B=>{B&&l&&l()});else{const B={...n};p(B.title),g([...B.professorNames]),v(`${B.ownerFirstName} ${B.ownerLastName}`),j([...B.departments]),O([...B.emails]),N(B.ownerEmail),M(B.websites?[...B.websites]:[]),L(B.description),z(B.keywords?[...B.keywords]:[]),K(B.established||""),le(B.hiringStatus),oe(B.archived),o({...B},!0),l&&l()}},H=B=>{j(ae=>[...ae,B]),x(ae=>ae.filter(he=>he!==B).sort())},fe=B=>{const ae=[...S],he=ae.splice(B,1)[0];j(ae),x(ge=>[...ge,he].sort())};return m.jsx("div",{className:"border border-gray-300 border-t-0 bg-white p-6 rounded-b-lg shadow-md relative",children:ne?m.jsx("div",{className:"flex flex-col justify-center items-center h-full",children:m.jsx(Ms,{color:"#66CCFF",size:6})}):m.jsxs("form",{onSubmit:J,children:[m.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 mb-16",children:[m.jsxs("div",{className:"col-span-1",children:[m.jsx(xv,{id:"title",label:"⭐ Listing Title",value:f,onChange:p,placeholder:"Add title",error:P.title,onValidate:B=>{P.title&&Q(ae=>({...ae,title:Sv(B)}))}}),m.jsx(CT,{id:"description",label:"⭐ Description",value:C,onChange:L,placeholder:"Add description",rows:10,error:P.description}),m.jsx(xv,{id:"established",label:"Lab Established Year",value:Y,onChange:K,placeholder:"e.g. 2006",error:P.established,onValidate:B=>{P.established&&Q(ae=>({...ae,established:wv(B)}))}})]}),m.jsx("div",{className:"col-span-1 md:col-span-2",children:m.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[m.jsxs("div",{children:[m.jsx(TT,{hiringStatus:ie,setHiringStatus:le}),re&&m.jsx(pl,{label:"Co-Editors",items:_,setItems:T,placeholder:"Add netid",bgColor:"bg-green-100",textColor:"text-green-800",buttonColor:"text-green-500 hover:text-green-700",error:P.professorIds,onValidate:B=>Q(ae=>({...ae,professorIds:Tv(B)})),infoText:"Allow others in your lab to update this listing"}),m.jsx(pl,{label:"Professors",items:h,setItems:g,placeholder:"Add professor",bgColor:"bg-blue-100",textColor:"text-blue-800",buttonColor:"text-blue-500 hover:text-blue-700",error:P.professorNames,permanentValue:y,onValidate:B=>Q(ae=>({...ae,professorNames:Ev(B)}))}),m.jsx(pl,{label:"Emails",items:E,setItems:O,placeholder:"Add email",bgColor:"bg-green-100",textColor:"text-green-800",buttonColor:"text-green-500 hover:text-green-700",error:P.emails,permanentValue:A,type:"email",onValidate:B=>Q(ae=>({...ae,emails:Cv(B)}))}),m.jsxs("div",{className:"mb-6 flex items-center",children:[m.jsx("input",{id:"archived",type:"checkbox",checked:Z,onChange:B=>oe(B.target.checked),className:"mr-3 h-4 w-4 text-blue-500 focus:ring-blue-400 cursor-pointer"}),m.jsx("label",{className:"text-gray-700 text-sm font-bold cursor-pointer",htmlFor:"archived",children:"Archive this listing"})]})]}),m.jsxs("div",{children:[m.jsx(RT,{departments:S,availableDepartments:w,onAddDepartment:H,onRemoveDepartment:fe}),m.jsx(pl,{label:"Websites",items:V,setItems:M,placeholder:"Add website URL",bgColor:"bg-yellow-100",textColor:"text-yellow-800",buttonColor:"text-yellow-500 hover:text-yellow-700",error:P.websites,type:"url",onValidate:B=>Q(ae=>({...ae,websites:Rv(B)}))}),m.jsx(pl,{label:"Keywords (for search)",items:D,setItems:z,placeholder:"Add keyword",bgColor:"bg-gray-100",textColor:"text-gray-800",buttonColor:"text-gray-500 hover:text-gray-700"})]})]})})]}),m.jsxs("div",{className:"absolute bottom-6 right-6 flex space-x-3 bg-white py-2 px-1",children:[m.jsx("button",{type:"button",onClick:se,className:`${r?"bg-red-500 hover:bg-red-700 text-white":"bg-gray-300 hover:bg-gray-400 text-gray-800"} font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline`,children:r?"Delete":"Cancel"}),m.jsx("button",{type:"submit",className:`${r?"bg-green-500 hover:bg-green-700":"bg-blue-500 hover:bg-blue-700"} text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline`,children:r?"Create":"Save"})]})]})})},jv=({listing:n,favListingsIds:r,updateFavorite:o,updateListing:l,postListing:s,clearCreatedListing:c,deleteListing:f,openModal:p,globalEditing:h,setGlobalEditing:g,editable:y,reloadListings:v})=>{const[S,j]=R.useState([]),[w,x]=R.useState(0),[_,T]=R.useState(!1),[E,O]=R.useState(r.includes(n.id)),[A,N]=R.useState(n.archived),V=R.useRef(null),M=n.id==="create",[C,L]=R.useState(M),{user:D}=R.useContext(mn),z=D&&D.netId===n.ownerId,Y=R.useRef(null),K=["bg-blue-200","bg-green-200","bg-yellow-200","bg-red-200","bg-purple-200","bg-pink-200","bg-teal-200","bg-orange-200"],ie=()=>n.hiringStatus<0?"bg-red-500":n.hiringStatus===0?"bg-yellow-500":"bg-green-500",le=()=>n.hiringStatus<0?"Lab not seeking applicants":n.hiringStatus===0?"Lab open to applicants":"Lab seeking applicants";R.useEffect(()=>{r&&O(r.includes(n.id))},[r]),R.useEffect(()=>{N(n.archived)},[n]),R.useEffect(()=>{if(!V.current)return;const P=()=>{const Q=V.current;if(!Q)return;const J=Q.clientWidth;let se=0;const H=[];x(0);const fe=document.createElement("span");fe.className="bg-blue-200 text-gray-900 text-xs rounded px-1 py-0.5 mt-2 mr-2",fe.style.visibility="hidden",fe.style.position="absolute",document.body.appendChild(fe);for(let B=0;BJ&&(H.pop(),x(n.departments.length-H.length))}document.body.removeChild(fe),j(H)};return P(),window.addEventListener("resize",P),()=>window.removeEventListener("resize",P)},[n]);const Z=P=>{P.stopPropagation(),n.favorites=E?n.favorites-1:n.favorites+1,n.favorites<0&&(n.favorites=0),o(n,n.id,!E)},oe=P=>{P.stopPropagation(),Je({title:"Delete Listing",text:"Are you sure you want to delete this listing? This action cannot be undone",icon:"warning",buttons:["Cancel","Delete"],dangerMode:!0}).then(Q=>{Q&&f(n)})},ne=P=>{P.stopPropagation(),A?(N(!1),Ct.put(`/listings/${n.id}/unarchive`,{withCredentials:!0}).then(Q=>{const J=Q.data.listing,se=cr(J);l(se)}).catch(Q=>{N(!0),console.error("Error unarchiving listing:",Q),Q.response.data.incorrectPermissions?(Je({text:"You no longer have permission to unarchive this listing",icon:"warning"}),v()):(Je({text:"Unable to unarchive listing",icon:"warning"}),v())})):(N(!0),Ct.put(`/listings/${n.id}/archive`,{withCredentials:!0}).then(Q=>{const J=Q.data.listing,se=cr(J);l(se)}).catch(Q=>{N(!1),console.error("Error archiving listing:",Q),Q.response.data.incorrectPermissions?(Je({text:"You no longer have permission to archive this listing",icon:"warning"}),v()):(Je({text:"Unable to archive listing",icon:"warning"}),v())}))},pe=P=>{P.stopPropagation(),Y.current=n,L(!0),g(!0)},U=()=>{p(n)},re=P=>P?P.startsWith("http://")||P.startsWith("https://")?P:`https://${P}`:"";return n?m.jsxs("div",{className:"mb-4 relative",children:[m.jsxs("div",{className:"flex relative z-10 rounded-md shadow",children:[m.jsx("div",{className:`${ie()} cursor-pointer rounded-l flex-shrink-0 relative ${A?"opacity-50":""}`,style:{width:"6px"},onMouseEnter:()=>T(!0),onMouseLeave:()=>T(!1),children:_&&m.jsx("div",{className:`${ie()} absolute top-1/2 left-4 -translate-y-1/2 text-white text-xs rounded-full py-1 px-2 z-10 whitespace-nowrap shadow`,children:le()})}),m.jsxs("div",{className:"p-4 flex-grow grid grid-cols-3 md:grid-cols-12 cursor-pointer bg-white hover:bg-gray-100 border border-gray-300 rounded-r",onClick:U,children:[m.jsxs("div",{className:"col-span-2 md:col-span-4",children:[m.jsx("p",{className:`text-lg font-semibold mb-3 ${A?"opacity-50":""}`,style:{lineHeight:"1.2rem",height:"1.2rem",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.title}),m.jsxs("p",{className:`text-sm text-gray-700 ${A?"opacity-50":""}`,style:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:1,WebkitBoxOrient:"vertical"},children:["Professors: ",[`${n.ownerFirstName} ${n.ownerLastName}`,...n.professorNames].join(", ")]}),m.jsx("div",{ref:V,className:"flex overflow-hidden",style:{whiteSpace:"nowrap"},children:S.length>0?m.jsxs(m.Fragment,{children:[S.map(P=>m.jsx("span",{className:`${Object.keys(It).includes(P)?K[It[P]]:"bg-gray-200"} text-gray-900 text-xs rounded px-1 py-0.5 mt-3 mr-2 ${A?"opacity-50":""}`,style:{display:"inline-block",whiteSpace:"nowrap"},children:P},P)),w>0&&m.jsxs("span",{className:`bg-gray-200 text-gray-900 text-xs rounded px-1 py-0.5 mt-3 ${A?"opacity-50":""}`,style:{display:"inline-block",whiteSpace:"nowrap"},children:["+",w," more"]})]}):m.jsx("div",{className:"mt-3 flex",children:m.jsx("span",{className:`invisible bg-gray-200 text-gray-900 text-xs rounded px-1 py-0.5 mr-2 ${A?"opacity-50":""}`,style:{display:"inline-block"},children:"placeholder"})})})]}),m.jsxs("div",{className:"col-span-6 hidden md:flex align-middle",children:[m.jsx("div",{className:`flex-shrink-0 border-l border-gray-300 mx-4 ${A?"opacity-50":""}`}),m.jsx("p",{className:`flex-grow text-gray-800 text-sm overflow-hidden overflow-ellipsis ${A?"opacity-50":""}`,style:{display:"-webkit-box",WebkitLineClamp:4,WebkitBoxOrient:"vertical"},children:n.description})]}),m.jsxs("div",{className:"flex flex-col col-span-1 md:col-span-2 items-end",children:[m.jsxs("div",{children:[n.websites&&n.websites.length>0&&m.jsx("a",{href:re(n.websites[0]),className:"mr-1",onClick:P=>P.stopPropagation(),target:"_blank",rel:"noopener noreferrer",children:m.jsx("button",{className:"p-1 rounded-full hover:bg-gray-200",children:m.jsx("img",{src:"/assets/icons/new-link.png",alt:"Lab Website",className:`w-5 h-5 ${A?"opacity-50":""}`})})}),!M&&m.jsx("a",{onClick:Z,className:"inline-block",children:m.jsx("button",{className:"p-1 hover:bg-gray-200 rounded-full","aria-label":E?"Remove from favorites":"Add to favorites",children:m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",className:`transition-colors ${A?"opacity-50":""}`,fill:E?"#FFDA7B":"none",stroke:E?"#F0C04A":"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:m.jsx("path",{d:"M12 17.75l-6.172 3.245l1.179-6.873l-5-4.867l6.9-1l3.086-6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z"})})})})]}),m.jsx("div",{className:"flex-grow"}),m.jsx("p",{className:"text-[8px] mb-0.5 text-gray-700",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%"},children:"Last Update"}),m.jsx("p",{className:`text-sm text-gray-700 ${A?"opacity-50":""}`,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%"},children:new Date(n.updatedAt).toLocaleDateString()})]})]})]},n.id),m.jsx("div",{className:`transform transition-all duration-700 overflow-hidden ${y&&C?"translate-y-0 max-h-[4000px]":"-translate-y-5 max-h-0"} pl-2 pr-0.5 -mt-1`,children:y&&C&&m.jsx(OT,{listing:n,isCreated:M,onLoad:(P,Q)=>{if(!Q){L(!1),Je({text:"Unable to fetch most recent listing",icon:"warning"}),v();return}l(P)},onCancel:()=>{M?(L(!1),c()):(Y.current&&l({...Y.current}),L(!1),g(!1))},onSave:P=>{s(P),L(!1),g(!1)},onCreate:P=>{s(P),L(!1),g(!1)}})}),y&&!C&&m.jsx("div",{className:"flex justify-center",children:m.jsxs("div",{className:"bg-white border border-gray-300 border-t-0 rounded-b-lg shadow px-3 pb-1 pt-3 -mt-1 inline-flex space-x-2",children:[m.jsx("button",{className:"p-1 rounded-full hover:bg-gray-100 text-gray-600 hover:text-green-600 transition-colors",onClick:ne,title:A?"Unarchive listing":"Archive listing","aria-label":A?"Unarchive listing":"Archive listing",children:A?m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-50",children:[m.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),m.jsx("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),m.jsx("path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87"}),m.jsx("path",{d:"M3 3l18 18"})]}):m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[m.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),m.jsx("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),m.jsx("path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6"})]})}),m.jsx("button",{className:`p-1 rounded-full ${h?"text-gray-400 cursor-not-allowed":"hover:bg-gray-100 text-gray-600 hover:text-blue-600 transition-colors"}`,onClick:P=>{P.stopPropagation(),h||pe(P)},title:h?"Must close current editor":"Edit listing","aria-label":h?"Editing disabled":"Edit listing",disabled:h,children:m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`${A||h?"opacity-50":""}`,children:[m.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),m.jsx("path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4"}),m.jsx("path",{d:"M13.5 6.5l4 4"})]})}),m.jsx("button",{className:`p-1 rounded-full ${z&&!h?"hover:bg-gray-100 text-gray-600 hover:text-red-600 transition-colors":"text-gray-400 cursor-not-allowed"}`,onClick:P=>{P.stopPropagation(),z&&!h&&oe(P)},title:z?h?"Must close current editor":"Delete listing":"Only owner can delete","aria-label":z?h?"Must close current editor":"Delete listing":"Only owner can delete",disabled:!z,children:m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`${A||h?"opacity-50":""}`,children:[m.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),m.jsx("path",{d:"M4 7l16 0"}),m.jsx("path",{d:"M10 11l0 6"}),m.jsx("path",{d:"M14 11l0 6"}),m.jsx("path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"}),m.jsx("path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"})]})})]})})]}):null},NT=({isOpen:n,onClose:r,listing:o,favListingsIds:l,updateFavorite:s})=>{const[c,f]=R.useState(o.id==="create"),[p,h]=R.useState(l.includes(o.id)),[g,y]=R.useState(!0),{user:v}=R.useContext(mn),S=["bg-blue-200","bg-green-200","bg-yellow-200","bg-red-200","bg-purple-200","bg-pink-200","bg-teal-200","bg-orange-200"],j=()=>o.hiringStatus<0?"bg-red-500":o.hiringStatus===0?"bg-yellow-500":"bg-green-500",w=()=>o.hiringStatus<0?"Lab not seeking applicants":o.hiringStatus===0?"Lab open to applicants":"Lab seeking applicants",x=E=>{E.target===E.currentTarget&&r()};R.useEffect(()=>{l&&h(l.includes(o.id))},[l]),R.useEffect(()=>{v&&v.userConfirmed&&["admin","professor","faculty"].includes(v.userType)&&y(!1)},[]),R.useEffect(()=>(n&&(document.body.style.overflow="hidden"),()=>{document.body.style.overflow="auto"}),[n]);const _=E=>{E.stopPropagation(),o.favorites=p?o.favorites-1:o.favorites+1,o.favorites<0&&(o.favorites=0),s(o,o.id,!p)},T=E=>E?E.startsWith("http://")||E.startsWith("https://")?E:`https://${E}`:"";return!n||!o?null:m.jsx("div",{className:"fixed inset-0 bg-black/65 z-50 flex items-center justify-center overflow-y-auto p-4 pt-24",onClick:x,children:m.jsxs("div",{className:"bg-white rounded-lg shadow-xl w-full max-w-4xl max-h-[80vh] overflow-y-auto",onClick:E=>E.stopPropagation(),children:[m.jsx("div",{className:`${j()} h-2 w-full rounded-t-lg`}),m.jsxs("div",{className:"p-6 relative",children:[m.jsxs("div",{className:"absolute top-4 right-4",children:[!c&&m.jsx("a",{onClick:_,className:"inline-block",children:m.jsx("button",{className:"p-1 hover:bg-gray-100 rounded-full mr-2","aria-label":p?"Remove from favorites":"Add to favorites",children:m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",className:"transition-colors h-6 w-6",fill:p?"#FFDA7B":"none",stroke:p?"#F0C04A":"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:m.jsx("path",{d:"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z"})})})}),m.jsx("button",{onClick:r,className:"p-1 rounded-full hover:bg-gray-100","aria-label":"Close",children:m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:m.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),m.jsx("div",{className:"mb-6 pr-20",children:m.jsxs("div",{className:"flex flex-col md:flex-row md:items-center gap-2",children:[m.jsx("h2",{className:"text-2xl font-bold md:max-w-[400px] lg:max-w-[600px]",children:o.title}),m.jsx("span",{className:`${j()} mt-2 md:mt-0 md:ml-2 text-white text-xs px-2 py-1 rounded-full inline-block w-fit`,children:w()})]})}),m.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[m.jsxs("div",{className:"col-span-1",children:[m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Professors"}),m.jsx("div",{className:"space-y-2",children:[`${o.ownerFirstName} ${o.ownerLastName}`,...o.professorNames].map((E,O)=>m.jsxs("div",{className:"flex items-center",children:[m.jsx("div",{className:"w-8 h-8 rounded-full bg-gray-200 flex items-center justify-center mr-2",children:E.charAt(0).toUpperCase()}),m.jsx("span",{children:E})]},O))})]}),m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Departments"}),m.jsx("div",{className:"flex flex-wrap gap-2",children:o.departments.map(E=>m.jsx("span",{className:`${Object.keys(It).includes(E)?S[It[E]]:"bg-gray-200"} text-gray-900 text-xs rounded px-2 py-1`,children:E},E))})]}),m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Contact Information"}),m.jsxs("div",{className:"mb-4",children:[m.jsx("h4",{className:"text-md font-medium",children:"Emails"}),m.jsx("ul",{className:"mt-1 space-y-1",children:[o.ownerEmail,...o.emails].map((E,O)=>m.jsx("li",{children:m.jsx("a",{href:`mailto:${E}`,className:"text-blue-600 hover:underline",children:E})},O))})]}),o.websites&&o.websites.length>0&&m.jsxs("div",{children:[m.jsx("h4",{className:"text-md font-medium",children:"Websites"}),m.jsx("ul",{className:"mt-1 space-y-1",children:o.websites.map((E,O)=>m.jsx("li",{className:"truncate",children:m.jsx("a",{href:T(E),target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:E})},O))})]})]}),m.jsxs("section",{children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Stats"}),m.jsxs("div",{className:"space-y-2 text-sm",children:[!g&&m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Views:"}),m.jsx("span",{className:"font-medium",children:o.views})]}),m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Favorites:"}),m.jsx("span",{className:"font-medium",children:o.favorites})]})]}),o.established&&m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Lab Established:"}),m.jsx("span",{className:"font-medium",children:o.established})]}),m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Listing Created:"}),m.jsx("span",{className:"font-medium",children:new Date(o.createdAt).toLocaleDateString()})]}),m.jsxs("div",{className:"flex justify-between",children:[m.jsx("span",{children:"Listing Updated:"}),m.jsx("span",{className:"font-medium",children:new Date(o.updatedAt).toLocaleDateString()})]})]})]})]}),m.jsxs("div",{className:"col-span-1 md:col-span-2",children:[m.jsxs("section",{className:"mb-6",children:[m.jsx("h3",{className:"text-lg font-semibold mb-2",children:"About"}),m.jsx("div",{className:"whitespace-pre-wrap",children:o.description})]}),o.archived&&m.jsxs("div",{className:"mt-6 p-3 bg-red-100 text-red-700 rounded-lg",children:[m.jsx("div",{className:"font-semibold",children:"This listing is archived"}),m.jsx("div",{className:"text-sm",children:"Archived listings are not visible in search results or as favorites."})]})]})]})]})]})})},_T=({globalEditing:n,handleCreate:r})=>m.jsx("button",{className:`py-1 px-2 rounded-md ${n?"text-gray-400 cursor-not-allowed":"hover:bg-gray-100 text-green-500 hover:text-green-700 transition-colors"}`,onClick:o=>{o.stopPropagation(),n||r()},title:n?"Must close current editor":"Create listing","aria-label":n?"Create listing disabled":"Edit listing",disabled:n,children:m.jsxs("div",{className:"flex items-center justify-center",children:[m.jsx("span",{className:"mr-1 text-md font-semibold",children:"Create Listing"}),m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:m.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"})})]})});function AT(){return m.jsx("div",{children:m.jsx("iframe",{className:"w-[200px] h-[112.5px] sm:w-[400px] sm:h-[225px] lg:w-[800px] lg:h-[450px] transition-all",src:"https://www.youtube.com/embed/Crf3Tyjsk2k?si=eXHPqMv_Fwi04FT4",title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerPolicy:"strict-origin-when-cross-origin",allowFullScreen:!0})})}const MT=()=>{const[n,r]=R.useState([]),[o,l]=R.useState([]),[s,c]=R.useState([]),[f,p]=R.useState(!1),[h,g]=R.useState(!1),[y,v]=R.useState(!1),[S,j]=R.useState(!1),[w,x]=R.useState(null),{user:_}=R.useContext(mn);R.useEffect(()=>{T()},[]),R.useEffect(()=>{const z=Y=>{if(y){const K="You have unsaved changes that will be lost if you leave this page.";return Y.preventDefault(),Y.returnValue=K,K}};return y&&window.addEventListener("beforeunload",z),()=>{window.removeEventListener("beforeunload",z)}},[y]);const T=async()=>{p(!0),await Ct.get("/users/listings",{withCredentials:!0}).then(z=>{const Y=z.data.ownListings.map(function(ie){return cr(ie)}),K=z.data.favListings.map(function(ie){return cr(ie)});r(Y),l(K)}).catch(z=>{console.error("Error fetching listings:",z),r([]),l([]),p(!1),Je({text:"Error fetching your listings",icon:"warning"})}),Ct.get("/users/favListingsIds",{withCredentials:!0}).then(z=>{c(z.data.favListingsIds),p(!1)}).catch(z=>{console.error("Error fetching user's favorite listings:",z),r([]),l([]),c([]),p(!1),Je({text:"Error fetching your listings",icon:"warning"})})},E=z=>{x(z),g(!0)},O=()=>{g(!1),x(null)},A=(z,Y,K)=>{const ie=o,le=s;K?(l([z,...ie]),c([Y,...le]),Ct.put("/users/favListings",{withCredentials:!0,data:{favListings:[z.id]}}).catch(Z=>{l(ie),c(le),console.error("Error favoriting listing:",Z),Je({text:"Unable to favorite listing",icon:"warning"}),T()})):(l(ie.filter(Z=>Z.id!==Y)),c(le.filter(Z=>Z!==Y)),Ct.delete("/users/favListings",{withCredentials:!0,data:{favListings:[Y]}}).catch(Z=>{l(ie),c(le),console.error("Error unfavoriting listing:",Z),Je({text:"Unable to unfavorite listing",icon:"warning"}),T()}))},N=z=>{r(Y=>Y.map(K=>(K.id===K.id,K))),l(Y=>Y.map(K=>(K.id===K.id,K)))},V=z=>z.filter(Y=>Y.confirmed&&!Y.archived),M=z=>{p(!0),Ct.post("/listings",{withCredentials:!0,data:z}).then(Y=>{T(),v(!1),p(!1),j(!1)}).catch(Y=>{console.error("Error posting new listing:",Y),Je({text:"Unable to create listing",icon:"warning"}),T(),v(!1),p(!1),j(!1)})},C=()=>{r(z=>z.filter(Y=>Y.id!=="create")),v(!1),j(!1)},L=z=>{p(!0),Ct.delete(`/listings/${z.id}`,{withCredentials:!0}).then(Y=>{T(),p(!1)}).catch(Y=>{console.error("Error deleting listing:",Y),Je({text:"Unable to delete listing",icon:"warning"}),T(),p(!1)})},D=()=>{Ct.get("/listings/skeleton",{withCredentials:!0}).then(z=>{const Y=cr(z.data.listing);r(K=>[...K,Y]),v(!0),j(!0)}).catch(z=>{console.error("Error fetching skeleton listing:",z),Je({text:"Unable to create listing",icon:"warning"})})};return m.jsx("div",{className:"mx-auto max-w-[1300px] px-6 mt-24 w-full",children:f?m.jsx("div",{style:{marginTop:"17%",textAlign:"center"},children:m.jsx(Ms,{color:"#66CCFF",size:10})}):m.jsxs("div",{children:[_&&!_.userConfirmed&&m.jsx("div",{className:"bg-amber-100 border-l-4 border-amber-500 text-amber-700 p-4 mb-6 rounded shadow-sm",children:m.jsx("div",{className:"flex items-center",children:m.jsx("p",{className:"font-medium",children:"Your account is pending confirmation. Any listings that you create will not be publicly visible as favorites or in search results until your account is confirmed."})})}),m.jsx("p",{className:"text-xl text-gray-700 mb-4",children:"Your listings"}),n.length>0&&m.jsx("ul",{children:n.map(z=>m.jsx("li",{className:"mb-2",children:m.jsx(jv,{listing:z,favListingsIds:s,updateFavorite:A,updateListing:N,postListing:M,clearCreatedListing:C,deleteListing:L,openModal:E,globalEditing:y,setGlobalEditing:v,editable:!0,reloadListings:T})},z.id))}),_&&(_.userType==="professor"||_.userType==="faculty"||_.userType==="admin")&&!S&&m.jsx("div",{className:"my-8 flex justify-center align-center",children:m.jsx(_T,{globalEditing:y,handleCreate:D})}),m.jsx("p",{className:"text-xl text-gray-700 mb-4",children:"Favorite listings"}),V(o).length>0?m.jsx("ul",{children:V(o).map(z=>m.jsx("li",{className:"mb-2",children:m.jsx(jv,{listing:z,favListingsIds:s,updateFavorite:A,updateListing:N,postListing:M,clearCreatedListing:C,deleteListing:L,openModal:E,globalEditing:y,setGlobalEditing:v,editable:!1,reloadListings:T})},z.id))}):m.jsx("p",{className:"my-4 flex align-center",children:"No listings found."}),_&&(_.userType==="professor"||_.userType==="faculty"||_.userType==="admin")&&m.jsxs(m.Fragment,{children:[m.jsx("h1",{className:"text-4xl mt-24 font-bold text-center mb-7",children:"Learn y/labs!"}),m.jsx("div",{className:"mt-4 flex align-center justify-center mb-4",children:m.jsx(AT,{})})]}),w&&m.jsx(NT,{isOpen:h,onClose:O,listing:w,favListingsIds:s,updateFavorite:A})]})})},kT=()=>{var L;const[n,r]=R.useState(""),[o,l]=R.useState(""),[s,c]=R.useState(""),[f,p]=R.useState(""),[h,g]=R.useState(!1),[y,v]=R.useState(-1),S=R.useRef(null),j=R.useRef(null),[w,x]=R.useState({}),_=[{value:"undergraduate",label:"Undergraduate Student"},{value:"graduate",label:"Graduate Student"},{value:"professor",label:"Professor"},{value:"faculty",label:"Faculty"}],T=D=>D.trim()?void 0:"First name is required",E=D=>D.trim()?void 0:"Last name is required",O=D=>{if(!D.trim())return"Email is required";if(!D.includes("@")||!D.includes(".")||D.includes(" "))return"Invalid email format"},A=D=>D.trim()?void 0:"User type is required",N=D=>{p(D),g(!1),j.current&&j.current.blur(),x(z=>({...z,userType:A(D)}))},V=D=>{switch(D.key){case"ArrowDown":D.preventDefault(),v(z=>z<_.length-1?z+1:z);break;case"ArrowUp":D.preventDefault(),v(z=>z>0?z-1:0);break;case"Enter":D.preventDefault(),y>=0&&y<_.length&&N(_[y].value);break;case"Escape":D.preventDefault(),g(!1),j.current&&j.current.blur();break;case"Tab":g(!1);break}},M=D=>{D.preventDefault();const z={firstName:T(n),lastName:E(o),email:O(s),userType:A(f)},Y=Object.fromEntries(Object.entries(z).filter(([K,ie])=>ie!==void 0));x(Y),Object.keys(Y).length===0&&(console.log("Submitting user information:",{firstName:n,lastName:o,email:s,userType:f}),Ct.put("/users",{withCredentials:!0,data:{fname:n,lname:o,email:s,userType:f,userConfirmed:!1}}).then(K=>{Je("Success!","Your information has been updated! You can now access the site. We will verify your information shortly.","success").then(()=>{window.location.href="/"})}).catch(K=>{console.error("Failed to update user information:",K),Je("Error!","An error occurred while updating your information. Please try again.","error")}))},C=({error:D})=>D?m.jsx("p",{className:"text-red-500 text-xs italic mt-1",children:D}):null;return m.jsx("div",{className:"fixed inset-0 flex items-center justify-center bg-gray-50 p-4",children:m.jsxs("div",{className:"w-full max-w-md bg-white rounded-lg shadow-lg p-6",children:[m.jsx("div",{className:"mb-6",children:m.jsx("h2",{className:"text-xl font-bold text-gray-800 mb-2",children:"Welcome to y/labs!"})}),m.jsxs("form",{onSubmit:M,children:[m.jsxs("div",{className:"mb-4",children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",htmlFor:"firstName",children:"First Name"}),m.jsx("input",{id:"firstName",type:"text",value:n,onChange:D=>{r(D.target.value),w.firstName&&x(z=>({...z,firstName:T(D.target.value)}))},className:`shadow appearance-none border ${w.firstName?"border-red-500":""} rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500`}),m.jsx(C,{error:w.firstName})]}),m.jsxs("div",{className:"mb-4",children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",htmlFor:"lastName",children:"Last Name"}),m.jsx("input",{id:"lastName",type:"text",value:o,onChange:D=>{l(D.target.value),w.lastName&&x(z=>({...z,lastName:E(D.target.value)}))},className:`shadow appearance-none border ${w.lastName?"border-red-500":""} rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500`}),m.jsx(C,{error:w.lastName})]}),m.jsxs("div",{className:"mb-4",children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",htmlFor:"email",children:"Email"}),m.jsx("input",{id:"email",type:"text",value:s,onChange:D=>{c(D.target.value),w.email&&x(z=>({...z,email:O(D.target.value)}))},className:`shadow appearance-none border ${w.email?"border-red-500":""} rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500`}),m.jsx(C,{error:w.email})]}),m.jsxs("div",{className:"mb-6",ref:S,children:[m.jsx("label",{className:"block text-gray-700 text-sm font-bold mb-2",children:"User Type"}),m.jsxs("div",{className:"relative",children:[m.jsxs("div",{className:"relative",children:[m.jsx("input",{ref:j,id:"userType",type:"text",readOnly:!0,value:f&&((L=_.find(D=>D.value===f))==null?void 0:L.label)||"",onClick:()=>{g(!0)},onKeyDown:V,onFocus:()=>g(!0),onBlur:()=>{setTimeout(()=>{var D;(D=S.current)!=null&&D.contains(document.activeElement)||g(!1)},100)},className:`shadow appearance-none border ${w.userType?"border-red-500":""} rounded w-full py-2 px-3 pr-10 text-gray-700 leading-tight focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-pointer`}),m.jsx("div",{className:"absolute inset-y-0 right-0 flex items-center px-2 text-gray-700 cursor-pointer",onClick:()=>{g(!h),!h&&j.current&&j.current.focus()},children:m.jsx("svg",{className:"fill-current h-4 w-4",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:m.jsx("path",{d:"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"})})})]}),h&&m.jsx("div",{className:"absolute left-0 right-0 bg-white rounded-lg z-10 shadow-lg border overflow-hidden mt-1 max-h-[200px] border-gray-300",tabIndex:-1,children:m.jsx("ul",{className:"max-h-[200px] overflow-y-auto",tabIndex:-1,children:_.map((D,z)=>m.jsxs("li",{onClick:()=>N(D.value),className:`p-2 cursor-pointer flex items-center justify-between ${y===z?"bg-blue-100":"hover:bg-gray-100"}`,tabIndex:-1,onMouseDown:Y=>Y.preventDefault(),children:[m.jsx("span",{children:D.label}),f===D.value&&m.jsx("svg",{className:"h-4 w-4 text-blue-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M5 13l4 4L19 7"})})]},z))})})]}),m.jsx(C,{error:w.userType})]}),m.jsx("div",{className:"flex justify-end",children:m.jsx("button",{type:"submit",className:"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-6 rounded focus:outline-none focus:shadow-outline",children:"Continue"})})]})]})})},DT=()=>{const[n,r]=R.useState(!1);return R.useEffect(()=>{setTimeout(()=>{r(!0)},500)}),R.useEffect(()=>{n&&Je({text:"We were unable to process your login. Please try again or contact support if the issue persists.",icon:"warning"}).then(()=>{window.location.href="/login"})},[n]),null},Ov=n=>{let r;return n<1?r=5.11916*n**2:r=4.5*Math.log(n+1)+2,(r/100).toFixed(2)};function Pd(){const n=Vy(Py);return n[Nl]||n}function zT(n){return Vt("MuiPaper",n)}At("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const LT=["className","component","elevation","square","variant"],BT=n=>{const{square:r,elevation:o,variant:l,classes:s}=n,c={root:["root",l,!r&&"rounded",l==="elevation"&&`elevation${o}`]};return Wt(c,zT,s)},UT=ct("div",{name:"MuiPaper",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,r[o.variant],!o.square&&r.rounded,o.variant==="elevation"&&r[`elevation${o.elevation}`]]}})(({theme:n,ownerState:r})=>{var o;return ee({backgroundColor:(n.vars||n).palette.background.paper,color:(n.vars||n).palette.text.primary,transition:n.transitions.create("box-shadow")},!r.square&&{borderRadius:n.shape.borderRadius},r.variant==="outlined"&&{border:`1px solid ${(n.vars||n).palette.divider}`},r.variant==="elevation"&&ee({boxShadow:(n.vars||n).shadows[r.elevation]},!n.vars&&n.palette.mode==="dark"&&{backgroundImage:`linear-gradient(${Lt.alpha("#fff",Ov(r.elevation))}, ${Lt.alpha("#fff",Ov(r.elevation))})`},n.vars&&{backgroundImage:(o=n.vars.overlays)==null?void 0:o[r.elevation]}))}),Wy=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiPaper"}),{className:s,component:c="div",elevation:f=1,square:p=!1,variant:h="elevation"}=l,g=$e(l,LT),y=ee({},l,{component:c,elevation:f,square:p,variant:h}),v=BT(y);return m.jsx(UT,ee({as:c,ownerState:y,className:ke(v.root,s),ref:o},g))});function $T(n){return Vt("MuiAppBar",n)}At("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]);const HT=["className","color","enableColorOnDark","position"],qT=n=>{const{color:r,position:o,classes:l}=n,s={root:["root",`color${qe(r)}`,`position${qe(o)}`]};return Wt(s,$T,l)},ss=(n,r)=>n?`${n==null?void 0:n.replace(")","")}, ${r})`:r,PT=ct(Wy,{name:"MuiAppBar",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,r[`position${qe(o.position)}`],r[`color${qe(o.color)}`]]}})(({theme:n,ownerState:r})=>{const o=n.palette.mode==="light"?n.palette.grey[100]:n.palette.grey[900];return ee({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0},r.position==="fixed"&&{position:"fixed",zIndex:(n.vars||n).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}},r.position==="absolute"&&{position:"absolute",zIndex:(n.vars||n).zIndex.appBar,top:0,left:"auto",right:0},r.position==="sticky"&&{position:"sticky",zIndex:(n.vars||n).zIndex.appBar,top:0,left:"auto",right:0},r.position==="static"&&{position:"static"},r.position==="relative"&&{position:"relative"},!n.vars&&ee({},r.color==="default"&&{backgroundColor:o,color:n.palette.getContrastText(o)},r.color&&r.color!=="default"&&r.color!=="inherit"&&r.color!=="transparent"&&{backgroundColor:n.palette[r.color].main,color:n.palette[r.color].contrastText},r.color==="inherit"&&{color:"inherit"},n.palette.mode==="dark"&&!r.enableColorOnDark&&{backgroundColor:null,color:null},r.color==="transparent"&&ee({backgroundColor:"transparent",color:"inherit"},n.palette.mode==="dark"&&{backgroundImage:"none"})),n.vars&&ee({},r.color==="default"&&{"--AppBar-background":r.enableColorOnDark?n.vars.palette.AppBar.defaultBg:ss(n.vars.palette.AppBar.darkBg,n.vars.palette.AppBar.defaultBg),"--AppBar-color":r.enableColorOnDark?n.vars.palette.text.primary:ss(n.vars.palette.AppBar.darkColor,n.vars.palette.text.primary)},r.color&&!r.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":r.enableColorOnDark?n.vars.palette[r.color].main:ss(n.vars.palette.AppBar.darkBg,n.vars.palette[r.color].main),"--AppBar-color":r.enableColorOnDark?n.vars.palette[r.color].contrastText:ss(n.vars.palette.AppBar.darkColor,n.vars.palette[r.color].contrastText)},!["inherit","transparent"].includes(r.color)&&{backgroundColor:"var(--AppBar-background)"},{color:r.color==="inherit"?"inherit":"var(--AppBar-color)"},r.color==="transparent"&&{backgroundImage:"none",backgroundColor:"transparent",color:"inherit"}))}),YT=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiAppBar"}),{className:s,color:c="primary",enableColorOnDark:f=!1,position:p="fixed"}=l,h=$e(l,HT),g=ee({},l,{color:c,position:p,enableColorOnDark:f}),y=qT(g);return m.jsx(PT,ee({square:!0,component:"header",ownerState:g,elevation:4,className:ke(y.root,s,p==="fixed"&&"mui-fixed"),ref:o},h))}),GT=["theme"];function VT(n){let{theme:r}=n,o=$e(n,GT);const l=r[Nl];let s=l||r;return typeof r!="function"&&(l&&!l.vars?s=ee({},l,{vars:null}):r&&!r.vars&&(s=ee({},r,{vars:null}))),m.jsx(VR,ee({},o,{themeId:l?Nl:void 0,theme:s}))}const XT=At("MuiBox",["root"]),FT=zd(),Xf=TR({themeId:Nl,defaultTheme:FT,defaultClassName:XT.root,generateClassName:qy.generate});function KT(n){return Vt("MuiToolbar",n)}At("MuiToolbar",["root","gutters","regular","dense"]);const QT=["className","component","disableGutters","variant"],ZT=n=>{const{classes:r,disableGutters:o,variant:l}=n;return Wt({root:["root",!o&&"gutters",l]},KT,r)},IT=ct("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,!o.disableGutters&&r.gutters,r[o.variant]]}})(({theme:n,ownerState:r})=>ee({position:"relative",display:"flex",alignItems:"center"},!r.disableGutters&&{paddingLeft:n.spacing(2),paddingRight:n.spacing(2),[n.breakpoints.up("sm")]:{paddingLeft:n.spacing(3),paddingRight:n.spacing(3)}},r.variant==="dense"&&{minHeight:48}),({theme:n,ownerState:r})=>r.variant==="regular"&&n.mixins.toolbar),WT=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiToolbar"}),{className:s,component:c="div",disableGutters:f=!1,variant:p="regular"}=l,h=$e(l,QT),g=ee({},l,{component:c,disableGutters:f,variant:p}),y=ZT(g);return m.jsx(IT,ee({as:c,className:ke(y.root,s),ref:o,ownerState:g},h))});function JT(n){return Vt("MuiTypography",n)}At("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const ej=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],tj=n=>{const{align:r,gutterBottom:o,noWrap:l,paragraph:s,variant:c,classes:f}=n,p={root:["root",c,n.align!=="inherit"&&`align${qe(r)}`,o&&"gutterBottom",l&&"noWrap",s&&"paragraph"]};return Wt(p,JT,f)},nj=ct("span",{name:"MuiTypography",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,o.variant&&r[o.variant],o.align!=="inherit"&&r[`align${qe(o.align)}`],o.noWrap&&r.noWrap,o.gutterBottom&&r.gutterBottom,o.paragraph&&r.paragraph]}})(({theme:n,ownerState:r})=>ee({margin:0},r.variant==="inherit"&&{font:"inherit"},r.variant!=="inherit"&&n.typography[r.variant],r.align!=="inherit"&&{textAlign:r.align},r.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},r.gutterBottom&&{marginBottom:"0.35em"},r.paragraph&&{marginBottom:16})),Nv={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},aj={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},rj=n=>aj[n]||n,ij=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiTypography"}),s=rj(l.color),c=Dd(ee({},l,{color:s})),{align:f="inherit",className:p,component:h,gutterBottom:g=!1,noWrap:y=!1,paragraph:v=!1,variant:S="body1",variantMapping:j=Nv}=c,w=$e(c,ej),x=ee({},c,{align:f,color:s,className:p,component:h,gutterBottom:g,noWrap:y,paragraph:v,variant:S,variantMapping:j}),_=h||(v?"p":j[S]||Nv[S])||"span",T=tj(x);return m.jsx(nj,ee({as:_,ref:o,ownerState:x,className:ke(T.root,p)},w))});function lj(n){return Vt("MuiIconButton",n)}const oj=At("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),sj=["edge","children","className","color","disabled","disableFocusRipple","size"],uj=n=>{const{classes:r,disabled:o,color:l,edge:s,size:c}=n,f={root:["root",o&&"disabled",l!=="default"&&`color${qe(l)}`,s&&`edge${qe(s)}`,`size${qe(c)}`]};return Wt(f,lj,r)},cj=ct(Hd,{name:"MuiIconButton",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,o.color!=="default"&&r[`color${qe(o.color)}`],o.edge&&r[`edge${qe(o.edge)}`],r[`size${qe(o.size)}`]]}})(({theme:n,ownerState:r})=>ee({textAlign:"center",flex:"0 0 auto",fontSize:n.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(n.vars||n).palette.action.active,transition:n.transitions.create("background-color",{duration:n.transitions.duration.shortest})},!r.disableRipple&&{"&:hover":{backgroundColor:n.vars?`rgba(${n.vars.palette.action.activeChannel} / ${n.vars.palette.action.hoverOpacity})`:Lt.alpha(n.palette.action.active,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},r.edge==="start"&&{marginLeft:r.size==="small"?-3:-12},r.edge==="end"&&{marginRight:r.size==="small"?-3:-12}),({theme:n,ownerState:r})=>{var o;const l=(o=(n.vars||n).palette)==null?void 0:o[r.color];return ee({},r.color==="inherit"&&{color:"inherit"},r.color!=="inherit"&&r.color!=="default"&&ee({color:l==null?void 0:l.main},!r.disableRipple&&{"&:hover":ee({},l&&{backgroundColor:n.vars?`rgba(${l.mainChannel} / ${n.vars.palette.action.hoverOpacity})`:Lt.alpha(l.main,n.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),r.size==="small"&&{padding:5,fontSize:n.typography.pxToRem(18)},r.size==="large"&&{padding:12,fontSize:n.typography.pxToRem(28)},{[`&.${oj.disabled}`]:{backgroundColor:"transparent",color:(n.vars||n).palette.action.disabled}})}),fj=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiIconButton"}),{edge:s=!1,children:c,className:f,color:p="default",disabled:h=!1,disableFocusRipple:g=!1,size:y="medium"}=l,v=$e(l,sj),S=ee({},l,{edge:s,color:p,disabled:h,disableFocusRipple:g,size:y}),j=uj(S);return m.jsx(cj,ee({className:ke(j.root,f),centerRipple:!0,focusRipple:!g,disabled:h,ref:o},v,{ownerState:S,children:c}))});function dj(n){const r=Da(n);return r.body===n?Hl(n).innerWidth>r.documentElement.clientWidth:n.scrollHeight>n.clientHeight}function yl(n,r){r?n.setAttribute("aria-hidden","true"):n.removeAttribute("aria-hidden")}function _v(n){return parseInt(Hl(n).getComputedStyle(n).paddingRight,10)||0}function pj(n){const o=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(n.tagName)!==-1,l=n.tagName==="INPUT"&&n.getAttribute("type")==="hidden";return o||l}function Av(n,r,o,l,s){const c=[r,o,...l];[].forEach.call(n.children,f=>{const p=c.indexOf(f)===-1,h=!pj(f);p&&h&&yl(f,s)})}function Ff(n,r){let o=-1;return n.some((l,s)=>r(l)?(o=s,!0):!1),o}function hj(n,r){const o=[],l=n.container;if(!r.disableScrollLock){if(dj(l)){const f=kR(Da(l));o.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${_v(l)+f}px`;const p=Da(l).querySelectorAll(".mui-fixed");[].forEach.call(p,h=>{o.push({value:h.style.paddingRight,property:"padding-right",el:h}),h.style.paddingRight=`${_v(h)+f}px`})}let c;if(l.parentNode instanceof DocumentFragment)c=Da(l).body;else{const f=l.parentElement,p=Hl(l);c=(f==null?void 0:f.nodeName)==="HTML"&&p.getComputedStyle(f).overflowY==="scroll"?f:l}o.push({value:c.style.overflow,property:"overflow",el:c},{value:c.style.overflowX,property:"overflow-x",el:c},{value:c.style.overflowY,property:"overflow-y",el:c}),c.style.overflow="hidden"}return()=>{o.forEach(({value:c,el:f,property:p})=>{c?f.style.setProperty(p,c):f.style.removeProperty(p)})}}function mj(n){const r=[];return[].forEach.call(n.children,o=>{o.getAttribute("aria-hidden")==="true"&&r.push(o)}),r}class gj{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(r,o){let l=this.modals.indexOf(r);if(l!==-1)return l;l=this.modals.length,this.modals.push(r),r.modalRef&&yl(r.modalRef,!1);const s=mj(o);Av(o,r.mount,r.modalRef,s,!0);const c=Ff(this.containers,f=>f.container===o);return c!==-1?(this.containers[c].modals.push(r),l):(this.containers.push({modals:[r],container:o,restore:null,hiddenSiblings:s}),l)}mount(r,o){const l=Ff(this.containers,c=>c.modals.indexOf(r)!==-1),s=this.containers[l];s.restore||(s.restore=hj(s,o))}remove(r,o=!0){const l=this.modals.indexOf(r);if(l===-1)return l;const s=Ff(this.containers,f=>f.modals.indexOf(r)!==-1),c=this.containers[s];if(c.modals.splice(c.modals.indexOf(r),1),this.modals.splice(l,1),c.modals.length===0)c.restore&&c.restore(),r.modalRef&&yl(r.modalRef,o),Av(c.container,r.mount,r.modalRef,c.hiddenSiblings,!1),this.containers.splice(s,1);else{const f=c.modals[c.modals.length-1];f.modalRef&&yl(f.modalRef,!1)}return l}isTopModal(r){return this.modals.length>0&&this.modals[this.modals.length-1]===r}}const vj=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function yj(n){const r=parseInt(n.getAttribute("tabindex")||"",10);return Number.isNaN(r)?n.contentEditable==="true"||(n.nodeName==="AUDIO"||n.nodeName==="VIDEO"||n.nodeName==="DETAILS")&&n.getAttribute("tabindex")===null?0:n.tabIndex:r}function bj(n){if(n.tagName!=="INPUT"||n.type!=="radio"||!n.name)return!1;const r=l=>n.ownerDocument.querySelector(`input[type="radio"]${l}`);let o=r(`[name="${n.name}"]:checked`);return o||(o=r(`[name="${n.name}"]`)),o!==n}function xj(n){return!(n.disabled||n.tagName==="INPUT"&&n.type==="hidden"||bj(n))}function Sj(n){const r=[],o=[];return Array.from(n.querySelectorAll(vj)).forEach((l,s)=>{const c=yj(l);c===-1||!xj(l)||(c===0?r.push(l):o.push({documentOrder:s,tabIndex:c,node:l}))}),o.sort((l,s)=>l.tabIndex===s.tabIndex?l.documentOrder-s.documentOrder:l.tabIndex-s.tabIndex).map(l=>l.node).concat(r)}function wj(){return!0}function Ej(n){const{children:r,disableAutoFocus:o=!1,disableEnforceFocus:l=!1,disableRestoreFocus:s=!1,getTabbable:c=Sj,isEnabled:f=wj,open:p}=n,h=R.useRef(!1),g=R.useRef(null),y=R.useRef(null),v=R.useRef(null),S=R.useRef(null),j=R.useRef(!1),w=R.useRef(null),x=la(qs(r),w),_=R.useRef(null);R.useEffect(()=>{!p||!w.current||(j.current=!o)},[o,p]),R.useEffect(()=>{if(!p||!w.current)return;const O=Da(w.current);return w.current.contains(O.activeElement)||(w.current.hasAttribute("tabIndex")||w.current.setAttribute("tabIndex","-1"),j.current&&w.current.focus()),()=>{s||(v.current&&v.current.focus&&(h.current=!0,v.current.focus()),v.current=null)}},[p]),R.useEffect(()=>{if(!p||!w.current)return;const O=Da(w.current),A=M=>{_.current=M,!(l||!f()||M.key!=="Tab")&&O.activeElement===w.current&&M.shiftKey&&(h.current=!0,y.current&&y.current.focus())},N=()=>{const M=w.current;if(M===null)return;if(!O.hasFocus()||!f()||h.current){h.current=!1;return}if(M.contains(O.activeElement)||l&&O.activeElement!==g.current&&O.activeElement!==y.current)return;if(O.activeElement!==S.current)S.current=null;else if(S.current!==null)return;if(!j.current)return;let C=[];if((O.activeElement===g.current||O.activeElement===y.current)&&(C=c(w.current)),C.length>0){var L,D;const z=!!((L=_.current)!=null&&L.shiftKey&&((D=_.current)==null?void 0:D.key)==="Tab"),Y=C[0],K=C[C.length-1];typeof Y!="string"&&typeof K!="string"&&(z?K.focus():Y.focus())}else M.focus()};O.addEventListener("focusin",N),O.addEventListener("keydown",A,!0);const V=setInterval(()=>{O.activeElement&&O.activeElement.tagName==="BODY"&&N()},50);return()=>{clearInterval(V),O.removeEventListener("focusin",N),O.removeEventListener("keydown",A,!0)}},[o,l,s,f,p,c]);const T=O=>{v.current===null&&(v.current=O.relatedTarget),j.current=!0,S.current=O.target;const A=r.props.onFocus;A&&A(O)},E=O=>{v.current===null&&(v.current=O.relatedTarget),j.current=!0};return m.jsxs(R.Fragment,{children:[m.jsx("div",{tabIndex:p?0:-1,onFocus:E,ref:g,"data-testid":"sentinelStart"}),R.cloneElement(r,{ref:x,onFocus:T}),m.jsx("div",{tabIndex:p?0:-1,onFocus:E,ref:y,"data-testid":"sentinelEnd"})]})}function Cj(n){return typeof n=="function"?n():n}const Rj=R.forwardRef(function(r,o){const{children:l,container:s,disablePortal:c=!1}=r,[f,p]=R.useState(null),h=la(R.isValidElement(l)?qs(l):null,o);if(_l(()=>{c||p(Cj(s)||document.body)},[s,c]),_l(()=>{if(f&&!c)return sd(o,f),()=>{sd(o,null)}},[o,f,c]),c){if(R.isValidElement(l)){const g={ref:h};return R.cloneElement(l,g)}return m.jsx(R.Fragment,{children:l})}return m.jsx(R.Fragment,{children:f&&Uv.createPortal(l,f)})}),Jy=n=>n.scrollTop;function ws(n,r){var o,l;const{timeout:s,easing:c,style:f={}}=n;return{duration:(o=f.transitionDuration)!=null?o:typeof s=="number"?s:s[r.mode]||0,easing:(l=f.transitionTimingFunction)!=null?l:typeof c=="object"?c[r.mode]:c,delay:f.transitionDelay}}const Tj=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],jj={entering:{opacity:1},entered:{opacity:1}},Oj=R.forwardRef(function(r,o){const l=Pd(),s={enter:l.transitions.duration.enteringScreen,exit:l.transitions.duration.leavingScreen},{addEndListener:c,appear:f=!0,children:p,easing:h,in:g,onEnter:y,onEntered:v,onEntering:S,onExit:j,onExited:w,onExiting:x,style:_,timeout:T=s,TransitionComponent:E=$n}=r,O=$e(r,Tj),A=R.useRef(null),N=la(A,qs(p),o),V=ie=>le=>{if(ie){const Z=A.current;le===void 0?ie(Z):ie(Z,le)}},M=V(S),C=V((ie,le)=>{Jy(ie);const Z=ws({style:_,timeout:T,easing:h},{mode:"enter"});ie.style.webkitTransition=l.transitions.create("opacity",Z),ie.style.transition=l.transitions.create("opacity",Z),y&&y(ie,le)}),L=V(v),D=V(x),z=V(ie=>{const le=ws({style:_,timeout:T,easing:h},{mode:"exit"});ie.style.webkitTransition=l.transitions.create("opacity",le),ie.style.transition=l.transitions.create("opacity",le),j&&j(ie)}),Y=V(w),K=ie=>{c&&c(A.current,ie)};return m.jsx(E,ee({appear:f,in:g,nodeRef:A,onEnter:C,onEntered:L,onEntering:M,onExit:z,onExited:Y,onExiting:D,addEndListener:K,timeout:T},O,{children:(ie,le)=>R.cloneElement(p,ee({style:ee({opacity:0,visibility:ie==="exited"&&!g?"hidden":void 0},jj[ie],_,p.props.style),ref:N},le))}))});function Nj(n){return Vt("MuiBackdrop",n)}At("MuiBackdrop",["root","invisible"]);const _j=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],Aj=n=>{const{classes:r,invisible:o}=n;return Wt({root:["root",o&&"invisible"]},Nj,r)},Mj=ct("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,o.invisible&&r.invisible]}})(({ownerState:n})=>ee({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},n.invisible&&{backgroundColor:"transparent"})),kj=R.forwardRef(function(r,o){var l,s,c;const f=Xt({props:r,name:"MuiBackdrop"}),{children:p,className:h,component:g="div",components:y={},componentsProps:v={},invisible:S=!1,open:j,slotProps:w={},slots:x={},TransitionComponent:_=Oj,transitionDuration:T}=f,E=$e(f,_j),O=ee({},f,{component:g,invisible:S}),A=Aj(O),N=(l=w.root)!=null?l:v.root;return m.jsx(_,ee({in:j,timeout:T},E,{children:m.jsx(Mj,ee({"aria-hidden":!0},N,{as:(s=(c=x.root)!=null?c:y.Root)!=null?s:g,className:ke(A.root,h,N==null?void 0:N.className),ownerState:ee({},O,N==null?void 0:N.ownerState),classes:A,ref:o,children:p}))}))});function Dj(n){return typeof n=="function"?n():n}function zj(n){return n?n.props.hasOwnProperty("in"):!1}const Lj=new gj;function Bj(n){const{container:r,disableEscapeKeyDown:o=!1,disableScrollLock:l=!1,manager:s=Lj,closeAfterTransition:c=!1,onTransitionEnter:f,onTransitionExited:p,children:h,onClose:g,open:y,rootRef:v}=n,S=R.useRef({}),j=R.useRef(null),w=R.useRef(null),x=la(w,v),[_,T]=R.useState(!y),E=zj(h);let O=!0;(n["aria-hidden"]==="false"||n["aria-hidden"]===!1)&&(O=!1);const A=()=>Da(j.current),N=()=>(S.current.modalRef=w.current,S.current.mount=j.current,S.current),V=()=>{s.mount(N(),{disableScrollLock:l}),w.current&&(w.current.scrollTop=0)},M=ii(()=>{const Z=Dj(r)||A().body;s.add(N(),Z),w.current&&V()}),C=R.useCallback(()=>s.isTopModal(N()),[s]),L=ii(Z=>{j.current=Z,Z&&(y&&C()?V():w.current&&yl(w.current,O))}),D=R.useCallback(()=>{s.remove(N(),O)},[O,s]);R.useEffect(()=>()=>{D()},[D]),R.useEffect(()=>{y?M():(!E||!c)&&D()},[y,D,E,c,M]);const z=Z=>oe=>{var ne;(ne=Z.onKeyDown)==null||ne.call(Z,oe),!(oe.key!=="Escape"||oe.which===229||!C())&&(o||(oe.stopPropagation(),g&&g(oe,"escapeKeyDown")))},Y=Z=>oe=>{var ne;(ne=Z.onClick)==null||ne.call(Z,oe),oe.target===oe.currentTarget&&g&&g(oe,"backdropClick")};return{getRootProps:(Z={})=>{const oe=Fy(n);delete oe.onTransitionEnter,delete oe.onTransitionExited;const ne=ee({},oe,Z);return ee({role:"presentation"},ne,{onKeyDown:z(ne),ref:x})},getBackdropProps:(Z={})=>{const oe=Z;return ee({"aria-hidden":!0},oe,{onClick:Y(oe),open:y})},getTransitionProps:()=>{const Z=()=>{T(!1),f&&f()},oe=()=>{T(!0),p&&p(),c&&D()};return{onEnter:cv(Z,h==null?void 0:h.props.onEnter),onExited:cv(oe,h==null?void 0:h.props.onExited)}},rootRef:x,portalRef:L,isTopModal:C,exited:_,hasTransition:E}}function Uj(n){return Vt("MuiModal",n)}At("MuiModal",["root","hidden","backdrop"]);const $j=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","onTransitionEnter","onTransitionExited","open","slotProps","slots","theme"],Hj=n=>{const{open:r,exited:o,classes:l}=n;return Wt({root:["root",!r&&o&&"hidden"],backdrop:["backdrop"]},Uj,l)},qj=ct("div",{name:"MuiModal",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,!o.open&&o.exited&&r.hidden]}})(({theme:n,ownerState:r})=>ee({position:"fixed",zIndex:(n.vars||n).zIndex.modal,right:0,bottom:0,top:0,left:0},!r.open&&r.exited&&{visibility:"hidden"})),Pj=ct(kj,{name:"MuiModal",slot:"Backdrop",overridesResolver:(n,r)=>r.backdrop})({zIndex:-1}),Yj=R.forwardRef(function(r,o){var l,s,c,f,p,h;const g=Xt({name:"MuiModal",props:r}),{BackdropComponent:y=Pj,BackdropProps:v,className:S,closeAfterTransition:j=!1,children:w,container:x,component:_,components:T={},componentsProps:E={},disableAutoFocus:O=!1,disableEnforceFocus:A=!1,disableEscapeKeyDown:N=!1,disablePortal:V=!1,disableRestoreFocus:M=!1,disableScrollLock:C=!1,hideBackdrop:L=!1,keepMounted:D=!1,onBackdropClick:z,open:Y,slotProps:K,slots:ie}=g,le=$e(g,$j),Z=ee({},g,{closeAfterTransition:j,disableAutoFocus:O,disableEnforceFocus:A,disableEscapeKeyDown:N,disablePortal:V,disableRestoreFocus:M,disableScrollLock:C,hideBackdrop:L,keepMounted:D}),{getRootProps:oe,getBackdropProps:ne,getTransitionProps:pe,portalRef:U,isTopModal:re,exited:P,hasTransition:Q}=Bj(ee({},Z,{rootRef:o})),J=ee({},Z,{exited:P}),se=Hj(J),H={};if(w.props.tabIndex===void 0&&(H.tabIndex="-1"),Q){const{onEnter:Ee,onExited:_e}=pe();H.onEnter=Ee,H.onExited=_e}const fe=(l=(s=ie==null?void 0:ie.root)!=null?s:T.Root)!=null?l:qj,B=(c=(f=ie==null?void 0:ie.backdrop)!=null?f:T.Backdrop)!=null?c:y,ae=(p=K==null?void 0:K.root)!=null?p:E.root,he=(h=K==null?void 0:K.backdrop)!=null?h:E.backdrop,ge=dv({elementType:fe,externalSlotProps:ae,externalForwardedProps:le,getSlotProps:oe,additionalProps:{ref:o,as:_},ownerState:J,className:ke(S,ae==null?void 0:ae.className,se==null?void 0:se.root,!J.open&&J.exited&&(se==null?void 0:se.hidden))}),de=dv({elementType:B,externalSlotProps:he,additionalProps:v,getSlotProps:Ee=>ne(ee({},Ee,{onClick:_e=>{z&&z(_e),Ee!=null&&Ee.onClick&&Ee.onClick(_e)}})),className:ke(he==null?void 0:he.className,v==null?void 0:v.className,se==null?void 0:se.backdrop),ownerState:J});return!D&&!Y&&(!Q||P)?null:m.jsx(Rj,{ref:U,container:x,disablePortal:V,children:m.jsxs(fe,ee({},ge,{children:[!L&&y?m.jsx(B,ee({},de)):null,m.jsx(Ej,{disableEnforceFocus:A,disableAutoFocus:O,disableRestoreFocus:M,isEnabled:re,open:Y,children:R.cloneElement(w,H)})]}))})}),Gj=["addEndListener","appear","children","container","direction","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function Vj(n,r,o){const l=r.getBoundingClientRect(),s=o&&o.getBoundingClientRect(),c=Hl(r);let f;if(r.fakeTransform)f=r.fakeTransform;else{const g=c.getComputedStyle(r);f=g.getPropertyValue("-webkit-transform")||g.getPropertyValue("transform")}let p=0,h=0;if(f&&f!=="none"&&typeof f=="string"){const g=f.split("(")[1].split(")")[0].split(",");p=parseInt(g[4],10),h=parseInt(g[5],10)}return n==="left"?s?`translateX(${s.right+p-l.left}px)`:`translateX(${c.innerWidth+p-l.left}px)`:n==="right"?s?`translateX(-${l.right-s.left-p}px)`:`translateX(-${l.left+l.width-p}px)`:n==="up"?s?`translateY(${s.bottom+h-l.top}px)`:`translateY(${c.innerHeight+h-l.top}px)`:s?`translateY(-${l.top-s.top+l.height-h}px)`:`translateY(-${l.top+l.height-h}px)`}function Xj(n){return typeof n=="function"?n():n}function us(n,r,o){const l=Xj(o),s=Vj(n,r,l);s&&(r.style.webkitTransform=s,r.style.transform=s)}const Fj=R.forwardRef(function(r,o){const l=Pd(),s={enter:l.transitions.easing.easeOut,exit:l.transitions.easing.sharp},c={enter:l.transitions.duration.enteringScreen,exit:l.transitions.duration.leavingScreen},{addEndListener:f,appear:p=!0,children:h,container:g,direction:y="down",easing:v=s,in:S,onEnter:j,onEntered:w,onEntering:x,onExit:_,onExited:T,onExiting:E,style:O,timeout:A=c,TransitionComponent:N=$n}=r,V=$e(r,Gj),M=R.useRef(null),C=la(qs(h),M,o),L=ne=>pe=>{ne&&(pe===void 0?ne(M.current):ne(M.current,pe))},D=L((ne,pe)=>{us(y,ne,g),Jy(ne),j&&j(ne,pe)}),z=L((ne,pe)=>{const U=ws({timeout:A,style:O,easing:v},{mode:"enter"});ne.style.webkitTransition=l.transitions.create("-webkit-transform",ee({},U)),ne.style.transition=l.transitions.create("transform",ee({},U)),ne.style.webkitTransform="none",ne.style.transform="none",x&&x(ne,pe)}),Y=L(w),K=L(E),ie=L(ne=>{const pe=ws({timeout:A,style:O,easing:v},{mode:"exit"});ne.style.webkitTransition=l.transitions.create("-webkit-transform",pe),ne.style.transition=l.transitions.create("transform",pe),us(y,ne,g),_&&_(ne)}),le=L(ne=>{ne.style.webkitTransition="",ne.style.transition="",T&&T(ne)}),Z=ne=>{f&&f(M.current,ne)},oe=R.useCallback(()=>{M.current&&us(y,M.current,g)},[y,g]);return R.useEffect(()=>{if(S||y==="down"||y==="right")return;const ne=AR(()=>{M.current&&us(y,M.current,g)}),pe=Hl(M.current);return pe.addEventListener("resize",ne),()=>{ne.clear(),pe.removeEventListener("resize",ne)}},[y,S,g]),R.useEffect(()=>{S||oe()},[S,oe]),m.jsx(N,ee({nodeRef:M,onEnter:D,onEntered:Y,onEntering:z,onExit:ie,onExited:le,onExiting:K,addEndListener:Z,appear:p,in:S,timeout:A},V,{children:(ne,pe)=>R.cloneElement(h,ee({ref:C,style:ee({visibility:ne==="exited"&&!S?"hidden":void 0},O,h.props.style)},pe))}))});function Kj(n){return Vt("MuiDrawer",n)}At("MuiDrawer",["root","docked","paper","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const Qj=["BackdropProps"],Zj=["anchor","BackdropProps","children","className","elevation","hideBackdrop","ModalProps","onClose","open","PaperProps","SlideProps","TransitionComponent","transitionDuration","variant"],eb=(n,r)=>{const{ownerState:o}=n;return[r.root,(o.variant==="permanent"||o.variant==="persistent")&&r.docked,r.modal]},Ij=n=>{const{classes:r,anchor:o,variant:l}=n,s={root:["root"],docked:[(l==="permanent"||l==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${qe(o)}`,l!=="temporary"&&`paperAnchorDocked${qe(o)}`]};return Wt(s,Kj,r)},Wj=ct(Yj,{name:"MuiDrawer",slot:"Root",overridesResolver:eb})(({theme:n})=>({zIndex:(n.vars||n).zIndex.drawer})),Mv=ct("div",{shouldForwardProp:Ld,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:eb})({flex:"0 0 auto"}),Jj=ct(Wy,{name:"MuiDrawer",slot:"Paper",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.paper,r[`paperAnchor${qe(o.anchor)}`],o.variant!=="temporary"&&r[`paperAnchorDocked${qe(o.anchor)}`]]}})(({theme:n,ownerState:r})=>ee({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(n.vars||n).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0},r.anchor==="left"&&{left:0},r.anchor==="top"&&{top:0,left:0,right:0,height:"auto",maxHeight:"100%"},r.anchor==="right"&&{right:0},r.anchor==="bottom"&&{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"},r.anchor==="left"&&r.variant!=="temporary"&&{borderRight:`1px solid ${(n.vars||n).palette.divider}`},r.anchor==="top"&&r.variant!=="temporary"&&{borderBottom:`1px solid ${(n.vars||n).palette.divider}`},r.anchor==="right"&&r.variant!=="temporary"&&{borderLeft:`1px solid ${(n.vars||n).palette.divider}`},r.anchor==="bottom"&&r.variant!=="temporary"&&{borderTop:`1px solid ${(n.vars||n).palette.divider}`})),tb={left:"right",right:"left",top:"down",bottom:"up"};function e5(n){return["left","right"].indexOf(n)!==-1}function t5({direction:n},r){return n==="rtl"&&e5(r)?tb[r]:r}const n5=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiDrawer"}),s=Pd(),c=GR(),f={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:p="left",BackdropProps:h,children:g,className:y,elevation:v=16,hideBackdrop:S=!1,ModalProps:{BackdropProps:j}={},onClose:w,open:x=!1,PaperProps:_={},SlideProps:T,TransitionComponent:E=Fj,transitionDuration:O=f,variant:A="temporary"}=l,N=$e(l.ModalProps,Qj),V=$e(l,Zj),M=R.useRef(!1);R.useEffect(()=>{M.current=!0},[]);const C=t5({direction:c?"rtl":"ltr"},p),D=ee({},l,{anchor:p,elevation:v,open:x,variant:A},V),z=Ij(D),Y=m.jsx(Jj,ee({elevation:A==="temporary"?v:0,square:!0},_,{className:ke(z.paper,_.className),ownerState:D,children:g}));if(A==="permanent")return m.jsx(Mv,ee({className:ke(z.root,z.docked,y),ownerState:D,ref:o},V,{children:Y}));const K=m.jsx(E,ee({in:x,direction:tb[C],timeout:O,appear:M.current},T,{children:Y}));return A==="persistent"?m.jsx(Mv,ee({className:ke(z.root,z.docked,y),ownerState:D,ref:o},V,{children:K})):m.jsx(Wj,ee({BackdropProps:ee({},h,j,{transitionDuration:O}),className:ke(z.root,z.modal,y),open:x,ownerState:D,onClose:w,hideBackdrop:S,ref:o},V,N,{children:K}))}),bl=R.createContext({});function a5(n){return Vt("MuiList",n)}At("MuiList",["root","padding","dense","subheader"]);const r5=["children","className","component","dense","disablePadding","subheader"],i5=n=>{const{classes:r,disablePadding:o,dense:l,subheader:s}=n;return Wt({root:["root",!o&&"padding",l&&"dense",s&&"subheader"]},a5,r)},l5=ct("ul",{name:"MuiList",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,!o.disablePadding&&r.padding,o.dense&&r.dense,o.subheader&&r.subheader]}})(({ownerState:n})=>ee({listStyle:"none",margin:0,padding:0,position:"relative"},!n.disablePadding&&{paddingTop:8,paddingBottom:8},n.subheader&&{paddingTop:0})),o5=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiList"}),{children:s,className:c,component:f="ul",dense:p=!1,disablePadding:h=!1,subheader:g}=l,y=$e(l,r5),v=R.useMemo(()=>({dense:p}),[p]),S=ee({},l,{component:f,dense:p,disablePadding:h}),j=i5(S);return m.jsx(bl.Provider,{value:v,children:m.jsxs(l5,ee({as:f,className:ke(j.root,c),ref:o,ownerState:S},y,{children:[g,s]}))})});function s5(n){return Vt("MuiListItem",n)}const ai=At("MuiListItem",["root","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","padding","button","secondaryAction","selected"]),u5=At("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]);function c5(n){return Vt("MuiListItemSecondaryAction",n)}At("MuiListItemSecondaryAction",["root","disableGutters"]);const f5=["className"],d5=n=>{const{disableGutters:r,classes:o}=n;return Wt({root:["root",r&&"disableGutters"]},c5,o)},p5=ct("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(n,r)=>{const{ownerState:o}=n;return[r.root,o.disableGutters&&r.disableGutters]}})(({ownerState:n})=>ee({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"},n.disableGutters&&{right:0})),nb=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiListItemSecondaryAction"}),{className:s}=l,c=$e(l,f5),f=R.useContext(bl),p=ee({},l,{disableGutters:f.disableGutters}),h=d5(p);return m.jsx(p5,ee({className:ke(h.root,s),ownerState:p,ref:o},c))});nb.muiName="ListItemSecondaryAction";const h5=["className"],m5=["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected","slotProps","slots"],g5=(n,r)=>{const{ownerState:o}=n;return[r.root,o.dense&&r.dense,o.alignItems==="flex-start"&&r.alignItemsFlexStart,o.divider&&r.divider,!o.disableGutters&&r.gutters,!o.disablePadding&&r.padding,o.button&&r.button,o.hasSecondaryAction&&r.secondaryAction]},v5=n=>{const{alignItems:r,button:o,classes:l,dense:s,disabled:c,disableGutters:f,disablePadding:p,divider:h,hasSecondaryAction:g,selected:y}=n;return Wt({root:["root",s&&"dense",!f&&"gutters",!p&&"padding",h&&"divider",c&&"disabled",o&&"button",r==="flex-start"&&"alignItemsFlexStart",g&&"secondaryAction",y&&"selected"],container:["container"]},s5,l)},y5=ct("div",{name:"MuiListItem",slot:"Root",overridesResolver:g5})(({theme:n,ownerState:r})=>ee({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left"},!r.disablePadding&&ee({paddingTop:8,paddingBottom:8},r.dense&&{paddingTop:4,paddingBottom:4},!r.disableGutters&&{paddingLeft:16,paddingRight:16},!!r.secondaryAction&&{paddingRight:48}),!!r.secondaryAction&&{[`& > .${u5.root}`]:{paddingRight:48}},{[`&.${ai.focusVisible}`]:{backgroundColor:(n.vars||n).palette.action.focus},[`&.${ai.selected}`]:{backgroundColor:n.vars?`rgba(${n.vars.palette.primary.mainChannel} / ${n.vars.palette.action.selectedOpacity})`:Lt.alpha(n.palette.primary.main,n.palette.action.selectedOpacity),[`&.${ai.focusVisible}`]:{backgroundColor:n.vars?`rgba(${n.vars.palette.primary.mainChannel} / calc(${n.vars.palette.action.selectedOpacity} + ${n.vars.palette.action.focusOpacity}))`:Lt.alpha(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.focusOpacity)}},[`&.${ai.disabled}`]:{opacity:(n.vars||n).palette.action.disabledOpacity}},r.alignItems==="flex-start"&&{alignItems:"flex-start"},r.divider&&{borderBottom:`1px solid ${(n.vars||n).palette.divider}`,backgroundClip:"padding-box"},r.button&&{transition:n.transitions.create("background-color",{duration:n.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(n.vars||n).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ai.selected}:hover`]:{backgroundColor:n.vars?`rgba(${n.vars.palette.primary.mainChannel} / calc(${n.vars.palette.action.selectedOpacity} + ${n.vars.palette.action.hoverOpacity}))`:Lt.alpha(n.palette.primary.main,n.palette.action.selectedOpacity+n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:n.vars?`rgba(${n.vars.palette.primary.mainChannel} / ${n.vars.palette.action.selectedOpacity})`:Lt.alpha(n.palette.primary.main,n.palette.action.selectedOpacity)}}},r.hasSecondaryAction&&{paddingRight:48})),b5=ct("li",{name:"MuiListItem",slot:"Container",overridesResolver:(n,r)=>r.container})({position:"relative"}),ti=R.forwardRef(function(r,o){const l=Xt({props:r,name:"MuiListItem"}),{alignItems:s="center",autoFocus:c=!1,button:f=!1,children:p,className:h,component:g,components:y={},componentsProps:v={},ContainerComponent:S="li",ContainerProps:{className:j}={},dense:w=!1,disabled:x=!1,disableGutters:_=!1,disablePadding:T=!1,divider:E=!1,focusVisibleClassName:O,secondaryAction:A,selected:N=!1,slotProps:V={},slots:M={}}=l,C=$e(l.ContainerProps,h5),L=$e(l,m5),D=R.useContext(bl),z=R.useMemo(()=>({dense:w||D.dense||!1,alignItems:s,disableGutters:_}),[s,D.dense,w,_]),Y=R.useRef(null);_l(()=>{c&&Y.current&&Y.current.focus()},[c]);const K=R.Children.toArray(p),ie=K.length&&MR(K[K.length-1],["ListItemSecondaryAction"]),le=ee({},l,{alignItems:s,autoFocus:c,button:f,dense:z.dense,disabled:x,disableGutters:_,disablePadding:T,divider:E,hasSecondaryAction:ie,selected:N}),Z=v5(le),oe=la(Y,o),ne=M.root||y.Root||y5,pe=V.root||v.root||{},U=ee({className:ke(Z.root,pe.className,h),disabled:x},L);let re=g||"li";return f&&(U.component=g||"div",U.focusVisibleClassName=ke(ai.focusVisible,O),re=Hd),ie?(re=!U.component&&!g?"div":re,S==="li"&&(re==="li"?re="div":U.component==="li"&&(U.component="div")),m.jsx(bl.Provider,{value:z,children:m.jsxs(b5,ee({as:S,className:ke(Z.container,j),ref:oe,ownerState:le},C,{children:[m.jsx(ne,ee({},pe,!dd(ne)&&{as:re,ownerState:ee({},le,pe.ownerState)},U,{children:K})),K.pop()]}))})):m.jsx(bl.Provider,{value:z,children:m.jsxs(ne,ee({},pe,{as:re,ref:oe},!dd(ne)&&{ownerState:ee({},le,pe.ownerState)},U,{children:[K,A&&m.jsx(nb,{children:A})]}))})}),kv=()=>{const{checkContext:n}=R.useContext(mn),r=()=>{const o=window.location.pathname;if(o!=="/login"){const l=window.location.origin+o;localStorage.setItem("logoutReturnPath",l)}Ct.get("/logout").then(({data:l})=>{l.success?n():console.log("LOGOUT: Logout failed")}).catch(l=>{console.error("LOGOUT: Error during logout:",l)})};return m.jsx(Ba,{color:"inherit",sx:{textTransform:"none",color:"#3874CB",fontFamily:"Inter",fontWeight:450,fontSize:"14px",textDecoration:"underline"},onClick:r,disableRipple:!0,children:"Logout"})},Dv=()=>m.jsx(Ba,{color:"inherit",component:Rs,to:"/about",sx:{textTransform:"none",color:"#000000",fontFamily:"Inter",fontWeight:450,fontSize:"14px"},disableRipple:!0,children:"About"}),zv=()=>m.jsx(Ba,{color:"inherit",component:Rs,to:"/account",sx:{textTransform:"none",color:"#000000",fontFamily:"Inter",fontWeight:450,fontSize:"14px"},disableRipple:!0,children:"My Labs"}),x5=()=>{const n=pi(),r=o=>{n.pathname==="/"&&(o.preventDefault(),window.location.reload())};return m.jsxs(Ba,{component:Rs,to:"/",onClick:r,disableRipple:!0,children:[m.jsx("img",{src:"/assets/logos/paperclip.png",alt:"ylabs-logo",className:"mr-2",style:{width:"31.65px",height:"27px"}}),m.jsx("img",{src:"/assets/logos/ylabs-blue.png",alt:"ylabs-logo",style:{width:"65.17px",height:"27px"}})]})},S5=()=>m.jsx(Ba,{color:"inherit",component:Rs,to:"/",sx:{textTransform:"none",color:"#000000",fontFamily:"Inter",fontWeight:450,fontSize:"14px"},disableRipple:!0,children:"Find Labs"}),Lv=()=>{const n=()=>{window.location.reload()};return m.jsxs(Ba,{onClick:n,disableRipple:!0,children:[m.jsx("img",{src:"/assets/logos/paperclip.png",alt:"ylabs-logo",className:"mr-2",style:{width:"31.65px",height:"27px"}}),m.jsx("img",{src:"/assets/logos/ylabs-blue.png",alt:"ylabs-logo",style:{width:"65.17px",height:"27px"}})]})},w5=()=>m.jsx(Ba,{component:"a",href:"https://docs.google.com/forms/d/e/1FAIpQLSf2BE6MBulJHWXhDDp3y4Nixwe6EH0Oo9X1pTo976-KrJKv5g/viewform?usp=dialog",target:"_blank",rel:"noopener noreferrer",color:"inherit",sx:{textTransform:"none",color:"#000000",fontFamily:"Inter",fontWeight:450,fontSize:"14px"},disableRipple:!0,children:"Feedback"}),E5=zd({breakpoints:{values:{xs:0,sm:640,md:768,lg:1024,xl:1280}}}),C5="768px",R5=()=>m.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px",padding:"2px"},children:[m.jsx("div",{style:{width:"18px",height:"2px",backgroundColor:"black"}}),m.jsx("div",{style:{width:"18px",height:"2px",backgroundColor:"black"}}),m.jsx("div",{style:{width:"18px",height:"2px",backgroundColor:"black"}})]});function T5(){const{isAuthenticated:n}=R.useContext(mn),[r,o]=R.useState(!1);_R(`(max-width:${C5})`);const l=c=>f=>{f.type==="keydown"&&(f.key==="Tab"||f.key==="Shift")||o(c)},s=()=>{const c={"& .MuiButton-root":{paddingLeft:1,justifyContent:"flex-start",width:"100%"}};return m.jsx(Xf,{sx:{width:250},role:"presentation",onClick:l(!1),onKeyDown:l(!1),children:m.jsx(o5,{children:n?m.jsxs(m.Fragment,{children:[m.jsx(ti,{sx:c,children:m.jsx(S5,{})}),m.jsx(ti,{sx:c,children:m.jsx(zv,{})}),m.jsx(ti,{sx:c,children:m.jsx(Dv,{})}),m.jsx(ti,{sx:c,children:m.jsx(w5,{})}),m.jsx(ti,{sx:c,children:m.jsx(kv,{})})]}):m.jsx(ti,{sx:c,children:m.jsx(Lv,{})})})})};return m.jsx(VT,{theme:E5,children:m.jsx(Xf,{sx:{flexGrow:1},children:m.jsx(YT,{position:"fixed",sx:{backgroundColor:"#FFFFFF",height:{xs:"64px",sm:"64px"},"& .MuiToolbar-root":{minHeight:"64px !important",height:"64px !important",paddingLeft:{lg:"85px"},paddingRight:{lg:"85px"},transition:"padding 0.3s ease"},boxShadow:"0px 1px 5px rgba(0, 0, 0, 0.2)"},children:m.jsxs(WT,{sx:{height:"64px"},children:[n?m.jsx(x5,{}):m.jsx(Lv,{}),m.jsx(ij,{variant:"h6",component:"div",sx:{flexGrow:1}}),n&&m.jsxs(m.Fragment,{children:[m.jsxs(Xf,{sx:{display:{xs:"none",md:"flex"},gap:"14px"},children:[m.jsx(zv,{}),m.jsx(Dv,{}),m.jsx(kv,{})]}),m.jsx(fj,{size:"large",edge:"start",color:"inherit","aria-label":"menu",onClick:l(!0),sx:{marginLeft:"18px",borderRadius:"4px",padding:"8px","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)",borderRadius:"4px"}},children:m.jsx(R5,{})}),m.jsx(n5,{anchor:"right",open:r,onClose:l(!1),children:s()})]})]})})})})}const j5=()=>m.jsxs(OS,{children:[m.jsx(T5,{}),m.jsxs(SS,{children:[m.jsx(Na,{path:"/",element:m.jsx(ul,{Component:Pg,unknownBlocked:!0})}),m.jsx(Na,{path:"/about",element:m.jsx(ul,{Component:ST,unknownBlocked:!0})}),m.jsx(Na,{path:"/account",element:m.jsx(ul,{Component:MT,unknownBlocked:!0})}),m.jsx(Na,{path:"/login",element:m.jsx(mT,{})}),m.jsx(Na,{path:"/login-error",element:m.jsx(kS,{Component:DT})}),m.jsx(Na,{path:"/unknown",element:m.jsx(ul,{Component:kT,knownBlocked:!0})}),m.jsx(Na,{path:"/*",element:m.jsx(ul,{Component:Pg,unknownBlocked:!0})})]})]}),O5=({children:n})=>{const[r,o]=R.useState(!0),[l,s]=R.useState(!1),[c,f]=R.useState(),p=R.useCallback(()=>{o(!0),Ct.get("/check",{withCredentials:!0}).then(({data:h})=>{h.auth?(s(!0),f(h.user)):(s(!1),f(void 0)),o(!1)}).catch(h=>{console.error("Auth check failed:",h),s(!1),f(void 0),o(!1),Je({text:"Something went wrong while checking authentication status.",icon:"warning"})})},[]);return R.useEffect(()=>{p()},[p]),m.jsx(mn.Provider,{value:{isLoading:r,isAuthenticated:l,user:c,checkContext:p},children:n})},ab=document.getElementById("root");if(!ab)throw new Error("Root container missing in index.html");const N5=_1.createRoot(ab);N5.render(m.jsx(zt.StrictMode,{children:m.jsx(O5,{children:m.jsx(j5,{})})})); diff --git a/client/dist/assets/logos/RDB.png b/client/dist/assets/logos/RDB.png deleted file mode 100644 index 991444b..0000000 Binary files a/client/dist/assets/logos/RDB.png and /dev/null differ diff --git a/client/dist/assets/logos/YURA.png b/client/dist/assets/logos/YURA.png deleted file mode 100644 index 6c33bfc..0000000 Binary files a/client/dist/assets/logos/YURA.png and /dev/null differ diff --git a/client/dist/assets/logos/paperclip.png b/client/dist/assets/logos/paperclip.png deleted file mode 100644 index 7b4ece1..0000000 Binary files a/client/dist/assets/logos/paperclip.png and /dev/null differ diff --git a/client/dist/assets/logos/ylabs-blue.png b/client/dist/assets/logos/ylabs-blue.png deleted file mode 100644 index f5d91ab..0000000 Binary files a/client/dist/assets/logos/ylabs-blue.png and /dev/null differ diff --git a/client/dist/assets/logos/ylabs-temp-blue.png b/client/dist/assets/logos/ylabs-temp-blue.png deleted file mode 100644 index 0bfde05..0000000 Binary files a/client/dist/assets/logos/ylabs-temp-blue.png and /dev/null differ diff --git a/client/dist/assets/logos/ylabs-temp.png b/client/dist/assets/logos/ylabs-temp.png deleted file mode 100644 index fa776b2..0000000 Binary files a/client/dist/assets/logos/ylabs-temp.png and /dev/null differ diff --git a/client/dist/favicon.ico b/client/dist/favicon.ico deleted file mode 100644 index 2bc719b..0000000 Binary files a/client/dist/favicon.ico and /dev/null differ diff --git a/client/dist/index.html b/client/dist/index.html deleted file mode 100644 index e924ed2..0000000 --- a/client/dist/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - YaleLabs - - - - -
- - - - \ No newline at end of file diff --git a/client/dist/manifest.json b/client/dist/manifest.json deleted file mode 100644 index 6416e4f..0000000 --- a/client/dist/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "y/labs", - "name": "y/labs", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/client/dist/robots.txt b/client/dist/robots.txt deleted file mode 100644 index e9e57dc..0000000 --- a/client/dist/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/client/src/pages/analytics.tsx b/client/src/pages/analytics.tsx index 50586ff..cfb25d9 100644 --- a/client/src/pages/analytics.tsx +++ b/client/src/pages/analytics.tsx @@ -47,6 +47,20 @@ interface AnalyticsData { avgFavorites: number; viewsByDepartment: Array<{ department: string; totalViews: number; listingCount: number; avgViews: number }>; }; + emails: { + totalEmails: number; + emailsLast7Days: number; + emailsToday: number; + emailsLast30Days: number; + topProfessors: Array<{ + professorEmail: string; + emailCount: number; + }>; + topUndergrads: Array<{ + netid: string; + emailCount: number; + }>; + }; listings: { overview: { total: number; @@ -146,20 +160,20 @@ const Analytics = () => {

Visitor Statistics

- +
- - - @@ -167,18 +181,18 @@ const Analytics = () => { {/* Login Frequency */}
- - - @@ -237,18 +251,18 @@ const Analytics = () => {
- - - @@ -271,18 +285,18 @@ const Analytics = () => { {/* View Stats from Events */}
- - - @@ -290,19 +304,115 @@ const Analytics = () => { {/* Active Users */}
- -
+ {/* Email Analytics */} +
+

+ Email Analytics +

+ + {/* Email Totals */} +
+ + + + +
+ + {/* Top Professors */} + {data.emails.topProfessors.length > 0 && ( +
+

+ Top 10 Professors by Emails Received +

+
+ + + + + + + + + + {data.emails.topProfessors.map((prof, index) => ( + + + + + + ))} + +
RankProfessor EmailEmails Received
#{index + 1}{prof.professorEmail}{prof.emailCount}
+
+
+ )} + + {/* Top Undergrads */} + {data.emails.topUndergrads.length > 0 && ( +
+

+ Top 10 Undergraduates by Emails Sent +

+
+ + + + + + + + + + {data.emails.topUndergrads.map((student, index) => ( + + + + + + ))} + +
RankNetIDEmails Sent
#{index + 1}{student.netid}{student.emailCount}
+
+
+ )} + + {/* No emails message */} + {data.emails.totalEmails === 0 && ( +
+

No emails sent yet

+
+ )} +
+ {/* Most Active Users */} {data.engagement.mostActiveUsers.length > 0 && (
@@ -381,18 +491,18 @@ const Analytics = () => {
- - - diff --git a/server/package.json b/server/package.json index 8581f12..afe9339 100644 --- a/server/package.json +++ b/server/package.json @@ -24,6 +24,8 @@ "express": "^4.17.3", "express-session": "^1.17.2", "mongoose": "^8.0.4", + "multer": "^2.0.2", + "nodemailer": "^7.0.11", "passport": "^0.5.2", "passport-cas": "git+https://github.com/coursetable/passport-cas#79612f1", "passport-strategy": "^1.0.0" @@ -33,7 +35,9 @@ "@types/cors": "^2.8.12", "@types/express": "4.17.13", "@types/express-session": "^1.17.4", + "@types/multer": "^2.0.0", "@types/node": "20", + "@types/nodemailer": "^7.0.4", "@types/passport": "^1.0.7", "@types/passport-strategy": "^0.2.35", "nodemon": "^2.0.15", diff --git a/server/src/controllers/emailController.ts b/server/src/controllers/emailController.ts new file mode 100644 index 0000000..f2d29c4 --- /dev/null +++ b/server/src/controllers/emailController.ts @@ -0,0 +1,64 @@ +import { Request, Response } from 'express'; +import { sendRelayEmail } from '../services/emailService'; +import { logEvent } from '../services/analyticsService'; +import { AnalyticsEventType } from '../models/analytics'; + +export const sendContactEmail = async (req: Request, res: Response) => { + try { + const { studentName, studentEmail, professorEmail, subject, message, cc, bcc } = req.body; + const currentUser = req.user as { netId?: string, userType: string }; + + if (!studentName || !studentEmail || !professorEmail || !subject || !message) { + return res.status(400).json({ + error: 'Missing required fields', + required: ['studentName', 'studentEmail', 'professorEmail', 'subject', 'message'] + }); + } + + const ccArray = cc ? (Array.isArray(cc) ? cc : [cc]) : []; + const bccArray = bcc ? (Array.isArray(bcc) ? bcc : [bcc]) : []; + + const attachments = (req.files as Express.Multer.File[]) || []; + + await sendRelayEmail({ + studentName, + studentEmail, + professorEmail, + subject, + message, + cc: ccArray, + bcc: bccArray, + attachments + }); + + if (currentUser?.netId) { + await logEvent({ + eventType: AnalyticsEventType.EMAIL_SENT, + netid: currentUser.netId, + userType: currentUser.userType, + metadata: { + studentEmail, + professorEmail, + subject, + attachmentCount: attachments.length, + ccCount: ccArray.length, + bccCount: bccArray.length + } + }); + } + + res.status(200).json({ + success: true, + message: 'Email sent successfully', + emailsSent: 1 + ccArray.length + bccArray.length, + attachmentCount: attachments.length + }); + + } catch (error: any) { + console.error('Email send error:', error); + res.status(500).json({ + error: 'Failed to send email', + details: error.message + }); + } +}; \ No newline at end of file diff --git a/server/src/middleware/upload.ts b/server/src/middleware/upload.ts new file mode 100644 index 0000000..d639e1f --- /dev/null +++ b/server/src/middleware/upload.ts @@ -0,0 +1,21 @@ +// server/src/middleware/upload.ts +import multer from 'multer'; + +// Store files in memory as buffers (not saved to disk) +const storage = multer.memoryStorage(); + +export const uploadPDFs = multer({ + storage: storage, + limits: { + fileSize: 10 * 1024 * 1024, // 10MB per file + files: 5 // Max 5 files total + }, + fileFilter: (req, file, cb) => { + // Only allow PDFs + if (file.mimetype === 'application/pdf') { + cb(null, true); + } else { + cb(new Error('Only PDF files are allowed')); + } + } +}); \ No newline at end of file diff --git a/server/src/models/analytics.ts b/server/src/models/analytics.ts index f261440..bf88420 100644 --- a/server/src/models/analytics.ts +++ b/server/src/models/analytics.ts @@ -13,6 +13,7 @@ export enum AnalyticsEventType { LISTING_ARCHIVE = 'listing_archive', LISTING_UNARCHIVE = 'listing_unarchive', PROFILE_UPDATE = 'profile_update', + EMAIL_SENT = 'email_sent', // NEW } const analyticsEventSchema = new mongoose.Schema({ diff --git a/server/src/routes/email.ts b/server/src/routes/email.ts new file mode 100644 index 0000000..8ac4987 --- /dev/null +++ b/server/src/routes/email.ts @@ -0,0 +1,9 @@ +import express from 'express'; +import { sendContactEmail } from '../controllers/emailController'; +import { uploadPDFs } from '../middleware/upload'; + +const router = express.Router(); + +router.post('/contact', uploadPDFs.array('attachments'), sendContactEmail); + +export default router; \ No newline at end of file diff --git a/server/src/routes/index.ts b/server/src/routes/index.ts index b083f06..a973494 100644 --- a/server/src/routes/index.ts +++ b/server/src/routes/index.ts @@ -2,11 +2,13 @@ import { Router } from "express"; import UsersRoutes from "./users"; import ListingsRoutes from "./listings"; import AnalyticsRoutes from "./analytics"; +import EmailRoutes from "./email"; const router = Router(); router.use("/listings", ListingsRoutes); router.use("/users", UsersRoutes); router.use("/analytics", AnalyticsRoutes); +router.use("/email", EmailRoutes); export default router; \ No newline at end of file diff --git a/server/src/services/analyticsService.ts b/server/src/services/analyticsService.ts index d46abf2..adab4b7 100644 --- a/server/src/services/analyticsService.ts +++ b/server/src/services/analyticsService.ts @@ -5,7 +5,7 @@ import mongoose from "mongoose"; export interface LogEventParams { eventType: AnalyticsEventType; - netid: string; + netid: string; userType: string; listingId?: string; searchQuery?: string; @@ -60,7 +60,7 @@ export const getAnalytics = async () => { const sevenDaysAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000); const thirtyDaysAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000); - + const visitorStats = await AnalyticsEvent.aggregate([ { $match: { @@ -408,6 +408,86 @@ export const getAnalytics = async () => { } ]); + + const emailStats = await AnalyticsEvent.aggregate([ + { + $facet: { + // Email totals + emailTotals: [ + { + $match: { + eventType: AnalyticsEventType.EMAIL_SENT + } + }, + { + $group: { + _id: null, + totalEmails: { $sum: 1 }, + emailsLast7Days: { + $sum: { $cond: [{ $gte: ["$timestamp", sevenDaysAgo] }, 1, 0] } + }, + emailsToday: { + $sum: { $cond: [{ $gte: ["$timestamp", today] }, 1, 0] } + }, + emailsLast30Days: { + $sum: { $cond: [{ $gte: ["$timestamp", thirtyDaysAgo] }, 1, 0] } + } + } + } + ], + // Top 10 professors receiving emails + topProfessors: [ + { + $match: { + eventType: AnalyticsEventType.EMAIL_SENT, + "metadata.professorEmail": { $exists: true } + } + }, + { + $group: { + _id: "$metadata.professorEmail", + emailCount: { $sum: 1 } + } + }, + { $sort: { emailCount: -1 } }, + { $limit: 10 }, + { + $project: { + _id: 0, + professorEmail: "$_id", + emailCount: 1 + } + } + ], + // Top 10 students sending emails (undergrads only) + topUndergrads: [ + { + $match: { + eventType: AnalyticsEventType.EMAIL_SENT, + userType: "undergraduate", + netid: { $exists: true } + } + }, + { + $group: { + _id: "$netid", + emailCount: { $sum: 1 } + } + }, + { $sort: { emailCount: -1 } }, + { $limit: 10 }, + { + $project: { + _id: 0, + netid: "$_id", + emailCount: 1 + } + } + ] + } + } + ]); + // ==================== LISTING ANALYTICS - from db ==================== const listingStats = await Listing.aggregate([ @@ -680,6 +760,14 @@ export const getAnalytics = async () => { avgFavorites: listings.viewsAndFavorites[0]?.avgFavorites || 0, viewsByDepartment: listings.viewsByDepartment || [] }, + emails: { + totalEmails: emailStats[0]?.emailTotals[0]?.totalEmails || 0, + emailsLast7Days: emailStats[0]?.emailTotals[0]?.emailsLast7Days || 0, + emailsToday: emailStats[0]?.emailTotals[0]?.emailsToday || 0, + emailsLast30Days: emailStats[0]?.emailTotals[0]?.emailsLast30Days || 0, + topProfessors: emailStats[0]?.topProfessors || [], + topUndergrads: emailStats[0]?.topUndergrads || [] + }, listings: { overview: listings.overview[0] || { total: 0, active: 0, archived: 0, unconfirmed: 0 }, newListingsLast7Days: listings.newListingsLast7Days[0]?.count || 0, diff --git a/server/src/services/emailService.ts b/server/src/services/emailService.ts new file mode 100644 index 0000000..04a82fa --- /dev/null +++ b/server/src/services/emailService.ts @@ -0,0 +1,54 @@ +import nodemailer from 'nodemailer'; +import dotenv from 'dotenv'; + +dotenv.config(); + +interface SendRelayEmailParams { + studentName: string; + studentEmail: string; + professorEmail: string; + subject: string; + message: string; + cc?: string[]; + bcc?: string[]; + attachments?: Express.Multer.File[]; +} + +export async function sendRelayEmail({ + studentName, + studentEmail, + professorEmail, + subject, + message, + cc = [], + bcc = [], + attachments = [] +}: SendRelayEmailParams): Promise { + const transporter = nodemailer.createTransport({ + host: process.env.EMAIL_HOST, + port: Number(process.env.EMAIL_PORT), + secure: false, + auth: { + user: process.env.EMAIL_USER, + pass: process.env.EMAIL_PASSWORD + } + }); + + // Format attachments for nodemailer + const formattedAttachments = attachments.map(file => ({ + filename: file.originalname, + content: file.buffer + })); + + await transporter.sendMail({ + from: `"${studentName}" <${process.env.EMAIL_USER}>`, + to: professorEmail, + cc: cc.length > 0 ? cc : undefined, + bcc: bcc.length > 0 ? bcc : undefined, + replyTo: studentEmail, + subject: subject, + text: message, + html: `

${message.replace(/\n/g, '
')}

`, + attachments: formattedAttachments + }); +} \ No newline at end of file diff --git a/server/src/testing/test.pdf b/server/src/testing/test.pdf new file mode 100644 index 0000000..4a032f4 Binary files /dev/null and b/server/src/testing/test.pdf differ diff --git a/server/src/testing/testEmail.ts b/server/src/testing/testEmail.ts new file mode 100644 index 0000000..9dcc005 --- /dev/null +++ b/server/src/testing/testEmail.ts @@ -0,0 +1,44 @@ +// server/src/testEmail.ts +import nodemailer from 'nodemailer'; +import dotenv from 'dotenv'; +import path from 'path'; + +// Explicitly load .env from server directory +dotenv.config({ path: path.resolve(__dirname, '../../.env') }); + +async function testEmail() { + // Debug: Check if env vars are loaded + console.log('EMAIL_HOST:', process.env.EMAIL_HOST); + console.log('EMAIL_PORT:', process.env.EMAIL_PORT); + console.log('EMAIL_USER:', process.env.EMAIL_USER); + console.log('EMAIL_PASSWORD:', process.env.EMAIL_PASSWORD ? '***SET***' : 'NOT SET'); + + if (!process.env.EMAIL_HOST || !process.env.EMAIL_USER || !process.env.EMAIL_PASSWORD) { + console.error('❌ Environment variables not loaded! Check your .env file.'); + return; + } + + const transporter = nodemailer.createTransport({ + host: process.env.EMAIL_HOST, + port: Number(process.env.EMAIL_PORT), + secure: false, + auth: { + user: process.env.EMAIL_USER, + pass: process.env.EMAIL_PASSWORD + } + }); + + try { + await transporter.sendMail({ + from: process.env.EMAIL_USER, + to: 'sebastian.gonzalez@yale.edu', // PUT YOUR EMAIL HERE + subject: 'Test Email from YaleLabs', + text: 'If you receive this, the email service is working!' + }); + console.log('✅ Test email sent successfully!'); + } catch (error) { + console.error('❌ Error sending test email:', error); + } +} + +testEmail(); \ No newline at end of file diff --git a/server/src/types/express-session.d.ts b/server/src/types/express-session.d.ts new file mode 100644 index 0000000..e5e9f0c --- /dev/null +++ b/server/src/types/express-session.d.ts @@ -0,0 +1,7 @@ +import 'express-session'; + +declare module 'express-session' { + interface SessionData { + visitorLogged?: boolean; + } +} diff --git a/server/tsconfig.json b/server/tsconfig.json index 754dc67..98c10ac 100644 --- a/server/tsconfig.json +++ b/server/tsconfig.json @@ -3,7 +3,9 @@ "target": "es2017", "module": "commonjs", "moduleResolution": "node", - "lib": ["es2017"], + "lib": [ + "es2017" + ], "noImplicitAny": true, "removeComments": true, "preserveConstEnums": true, @@ -13,8 +15,16 @@ "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "outDir": "build", - "types": ["node"] + "typeRoots": [ + "./src/types", + "./node_modules/@types" + ] }, - "include": ["src/**/*"], - "exclude": ["node_modules/**/*", "build/**/*"] + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules/**/*", + "build/**/*" + ] } \ No newline at end of file diff --git a/server/yarn.lock b/server/yarn.lock index 736ca31..ac70663 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -5,6 +5,551 @@ __metadata: version: 8 cacheKey: 10c0 +"@aws-crypto/sha256-browser@npm:5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/sha256-browser@npm:5.2.0" + dependencies: + "@aws-crypto/sha256-js": "npm:^5.2.0" + "@aws-crypto/supports-web-crypto": "npm:^5.2.0" + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + "@aws-sdk/util-locate-window": "npm:^3.0.0" + "@smithy/util-utf8": "npm:^2.0.0" + tslib: "npm:^2.6.2" + checksum: 10c0/05f6d256794df800fe9aef5f52f2ac7415f7f3117d461f85a6aecaa4e29e91527b6fd503681a17136fa89e9dd3d916e9c7e4cfb5eba222875cb6c077bdc1d00d + languageName: node + linkType: hard + +"@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/sha256-js@npm:5.2.0" + dependencies: + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + tslib: "npm:^2.6.2" + checksum: 10c0/6c48701f8336341bb104dfde3d0050c89c288051f6b5e9bdfeb8091cf3ffc86efcd5c9e6ff2a4a134406b019c07aca9db608128f8d9267c952578a3108db9fd1 + languageName: node + linkType: hard + +"@aws-crypto/supports-web-crypto@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/supports-web-crypto@npm:5.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/4d2118e29d68ca3f5947f1e37ce1fbb3239a0c569cc938cdc8ab8390d595609b5caf51a07c9e0535105b17bf5c52ea256fed705a07e9681118120ab64ee73af2 + languageName: node + linkType: hard + +"@aws-crypto/util@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/util@npm:5.2.0" + dependencies: + "@aws-sdk/types": "npm:^3.222.0" + "@smithy/util-utf8": "npm:^2.0.0" + tslib: "npm:^2.6.2" + checksum: 10c0/0362d4c197b1fd64b423966945130207d1fe23e1bb2878a18e361f7743c8d339dad3f8729895a29aa34fff6a86c65f281cf5167c4bf253f21627ae80b6dd2951 + languageName: node + linkType: hard + +"@aws-sdk/client-sesv2@npm:^3.839.0": + version: 3.940.0 + resolution: "@aws-sdk/client-sesv2@npm:3.940.0" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/credential-provider-node": "npm:3.940.0" + "@aws-sdk/middleware-host-header": "npm:3.936.0" + "@aws-sdk/middleware-logger": "npm:3.936.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.936.0" + "@aws-sdk/middleware-user-agent": "npm:3.940.0" + "@aws-sdk/region-config-resolver": "npm:3.936.0" + "@aws-sdk/signature-v4-multi-region": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@aws-sdk/util-endpoints": "npm:3.936.0" + "@aws-sdk/util-user-agent-browser": "npm:3.936.0" + "@aws-sdk/util-user-agent-node": "npm:3.940.0" + "@smithy/config-resolver": "npm:^4.4.3" + "@smithy/core": "npm:^3.18.5" + "@smithy/fetch-http-handler": "npm:^5.3.6" + "@smithy/hash-node": "npm:^4.2.5" + "@smithy/invalid-dependency": "npm:^4.2.5" + "@smithy/middleware-content-length": "npm:^4.2.5" + "@smithy/middleware-endpoint": "npm:^4.3.12" + "@smithy/middleware-retry": "npm:^4.4.12" + "@smithy/middleware-serde": "npm:^4.2.6" + "@smithy/middleware-stack": "npm:^4.2.5" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/node-http-handler": "npm:^4.4.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + "@smithy/url-parser": "npm:^4.2.5" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.11" + "@smithy/util-defaults-mode-node": "npm:^4.2.14" + "@smithy/util-endpoints": "npm:^3.2.5" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-retry": "npm:^4.2.5" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/719d552b5255fe9f445c4bf30e106851473534e9ed9061055d24a5d0f423fece68a7857158803aa30a7e32041a7b73aba195719e5198db577f417432bbb06f7b + languageName: node + linkType: hard + +"@aws-sdk/client-sso@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/client-sso@npm:3.940.0" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/middleware-host-header": "npm:3.936.0" + "@aws-sdk/middleware-logger": "npm:3.936.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.936.0" + "@aws-sdk/middleware-user-agent": "npm:3.940.0" + "@aws-sdk/region-config-resolver": "npm:3.936.0" + "@aws-sdk/types": "npm:3.936.0" + "@aws-sdk/util-endpoints": "npm:3.936.0" + "@aws-sdk/util-user-agent-browser": "npm:3.936.0" + "@aws-sdk/util-user-agent-node": "npm:3.940.0" + "@smithy/config-resolver": "npm:^4.4.3" + "@smithy/core": "npm:^3.18.5" + "@smithy/fetch-http-handler": "npm:^5.3.6" + "@smithy/hash-node": "npm:^4.2.5" + "@smithy/invalid-dependency": "npm:^4.2.5" + "@smithy/middleware-content-length": "npm:^4.2.5" + "@smithy/middleware-endpoint": "npm:^4.3.12" + "@smithy/middleware-retry": "npm:^4.4.12" + "@smithy/middleware-serde": "npm:^4.2.6" + "@smithy/middleware-stack": "npm:^4.2.5" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/node-http-handler": "npm:^4.4.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + "@smithy/url-parser": "npm:^4.2.5" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.11" + "@smithy/util-defaults-mode-node": "npm:^4.2.14" + "@smithy/util-endpoints": "npm:^3.2.5" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-retry": "npm:^4.2.5" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/c0f6c8bc4ad55f2b573fbc40f472b974679c11c6e2bc224b1b9a4f4a9134895b37127eaaa588d56cb2e32522de4921dd813ae7229f5db4fedeeea1d06500e74c + languageName: node + linkType: hard + +"@aws-sdk/core@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/core@npm:3.940.0" + dependencies: + "@aws-sdk/types": "npm:3.936.0" + "@aws-sdk/xml-builder": "npm:3.930.0" + "@smithy/core": "npm:^3.18.5" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/signature-v4": "npm:^5.3.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/090b960007d3fe7a6f54d6e9a739f7de51c25d6e8f7519821ed94d8760508a9a1f034bc4ffc8b87a797eba485baf7024d45fc86556ce224b35da2530fe85af20 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-env@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/538ede72ad6357ccc613957b11bcd254789cd502e14938c26870c326ff1518df9bb5b23fd4d1139bac77b4394ea6a1a621ad025609d62f86d7b363636ca73e5e + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-http@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/fetch-http-handler": "npm:^5.3.6" + "@smithy/node-http-handler": "npm:^4.4.5" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-stream": "npm:^4.5.6" + tslib: "npm:^2.6.2" + checksum: 10c0/a3092b60041cb5be3d07891c1be959b14420a5d630372030877970c7d111c0ca8881daeb6740c16767c3a587a9a65d5e6aa8081a73a58a6cccefc98f9307a9e3 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/credential-provider-env": "npm:3.940.0" + "@aws-sdk/credential-provider-http": "npm:3.940.0" + "@aws-sdk/credential-provider-login": "npm:3.940.0" + "@aws-sdk/credential-provider-process": "npm:3.940.0" + "@aws-sdk/credential-provider-sso": "npm:3.940.0" + "@aws-sdk/credential-provider-web-identity": "npm:3.940.0" + "@aws-sdk/nested-clients": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/credential-provider-imds": "npm:^4.2.5" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/28b78575da447ea9a8f21c926fe0b1ef037e886a1676d60e168702abbeb070241a869b758bab1522e9e97ad7940376e30e7866c72201fab46a3dd67c4073af94 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-login@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-login@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/nested-clients": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/a408b413bf13c73c25bec80323e0cb59a86cf44b724156db6fd34cd8ae72b55af81a0c7c6325d1f99b85bd5f04aa64edadd06910c4f7ab0e5f8a714c54aad26e + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-node@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.940.0" + dependencies: + "@aws-sdk/credential-provider-env": "npm:3.940.0" + "@aws-sdk/credential-provider-http": "npm:3.940.0" + "@aws-sdk/credential-provider-ini": "npm:3.940.0" + "@aws-sdk/credential-provider-process": "npm:3.940.0" + "@aws-sdk/credential-provider-sso": "npm:3.940.0" + "@aws-sdk/credential-provider-web-identity": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/credential-provider-imds": "npm:^4.2.5" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/ecaa866d4cf9bce5cdf71e67d76e3e1b35e0f57b266f2b3447c08ccd5555c5b19d83a015cc153d2b6165ff6b1fce0c55d08eb306dcde909583741200ae287469 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-process@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/42aba573606be61f5d82120fa5379ff6eaf819be0972b20b08422a25b7f41c2113eaa762476590a08912ca248bd7eddf3504bd6620b18a98574450315b4962d0 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-sso@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.940.0" + dependencies: + "@aws-sdk/client-sso": "npm:3.940.0" + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/token-providers": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/fd6397d6df02ce23b1151a4453d35fd123b15a71322aab3e50885268ecac21cd441bc02063b0ad834d57ce57e70c3cf07f1e6ad75814e7baf74741a5919d3e9c + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-web-identity@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/nested-clients": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/9967bbde6603372b89a600cfed211caa769709e34b27f90f627ee5b60c5994b6db0f17b4bbd1ea4ac133092691dc94a0776ba82a187075e875005c864eb7e851 + languageName: node + linkType: hard + +"@aws-sdk/middleware-host-header@npm:3.936.0": + version: 3.936.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.936.0" + dependencies: + "@aws-sdk/types": "npm:3.936.0" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/524221650f88650c4a9cc60f7ed1bdd215f4112e120ad75807ee9b51358a1016c867e0b696cae91256aac084fa091cb230b2f579388c4b59e680b8a3e2bc7d29 + languageName: node + linkType: hard + +"@aws-sdk/middleware-logger@npm:3.936.0": + version: 3.936.0 + resolution: "@aws-sdk/middleware-logger@npm:3.936.0" + dependencies: + "@aws-sdk/types": "npm:3.936.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/9f94ae2f30a7b42d7423e3bee868e08d5ac1314e5ed9882fd5e457cb50ba87fcc7c859c0629210a64b1b9a595844988876a005c2a02f63c615ae19eee9baafba + languageName: node + linkType: hard + +"@aws-sdk/middleware-recursion-detection@npm:3.936.0": + version: 3.936.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.936.0" + dependencies: + "@aws-sdk/types": "npm:3.936.0" + "@aws/lambda-invoke-store": "npm:^0.2.0" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/3230f4868899d2c811231f1edf19c768feb2d250bace28644672a4ddf53c4fe1f7a88c3cbbafa2bade08cb685a60743fc8dfb70c893081a1805cc3e79e76244b + languageName: node + linkType: hard + +"@aws-sdk/middleware-sdk-s3@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@aws-sdk/util-arn-parser": "npm:3.893.0" + "@smithy/core": "npm:^3.18.5" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/signature-v4": "npm:^5.3.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-config-provider": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-stream": "npm:^4.5.6" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/ecd85d7c391f53d5dc26658289428c2444781b1e612d98c8d86dca4d8ff07ac473886cfd07f396592ab14abc59651d7954e2fa532e2efbb84e29f5ecbc69f00f + languageName: node + linkType: hard + +"@aws-sdk/middleware-user-agent@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@aws-sdk/util-endpoints": "npm:3.936.0" + "@smithy/core": "npm:^3.18.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/1756e35c96c5289857c65c8620d9e3afe5b14259fb0bb1290f8f08d879dd62a44569b28c505e2a56e641300df4e15fd7f29e788d1301ee2a0926caab6d2d0b9f + languageName: node + linkType: hard + +"@aws-sdk/nested-clients@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/nested-clients@npm:3.940.0" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/middleware-host-header": "npm:3.936.0" + "@aws-sdk/middleware-logger": "npm:3.936.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.936.0" + "@aws-sdk/middleware-user-agent": "npm:3.940.0" + "@aws-sdk/region-config-resolver": "npm:3.936.0" + "@aws-sdk/types": "npm:3.936.0" + "@aws-sdk/util-endpoints": "npm:3.936.0" + "@aws-sdk/util-user-agent-browser": "npm:3.936.0" + "@aws-sdk/util-user-agent-node": "npm:3.940.0" + "@smithy/config-resolver": "npm:^4.4.3" + "@smithy/core": "npm:^3.18.5" + "@smithy/fetch-http-handler": "npm:^5.3.6" + "@smithy/hash-node": "npm:^4.2.5" + "@smithy/invalid-dependency": "npm:^4.2.5" + "@smithy/middleware-content-length": "npm:^4.2.5" + "@smithy/middleware-endpoint": "npm:^4.3.12" + "@smithy/middleware-retry": "npm:^4.4.12" + "@smithy/middleware-serde": "npm:^4.2.6" + "@smithy/middleware-stack": "npm:^4.2.5" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/node-http-handler": "npm:^4.4.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + "@smithy/url-parser": "npm:^4.2.5" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-body-length-node": "npm:^4.2.1" + "@smithy/util-defaults-mode-browser": "npm:^4.3.11" + "@smithy/util-defaults-mode-node": "npm:^4.2.14" + "@smithy/util-endpoints": "npm:^3.2.5" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-retry": "npm:^4.2.5" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/6695cd044d5b43f26a6d2ae533dcd56f6a8780dc0a19e152af1dfb1017fa1a1813c1e742ca7ba608561f881f4cd4e18f957293698d880d857b460dd715b8ac50 + languageName: node + linkType: hard + +"@aws-sdk/region-config-resolver@npm:3.936.0": + version: 3.936.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.936.0" + dependencies: + "@aws-sdk/types": "npm:3.936.0" + "@smithy/config-resolver": "npm:^4.4.3" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/67ecf8f3575abe5c6b802afd6d8ba73ce54a97e6ff613eee36c4536a61ecfc732e2ac3a938829275122c4e645b40c0838c9a3904cebf6fc6d229c149e623a7f3 + languageName: node + linkType: hard + +"@aws-sdk/signature-v4-multi-region@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.940.0" + dependencies: + "@aws-sdk/middleware-sdk-s3": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/signature-v4": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/877127f4f3a64e62e110b80b7f1c0f6e99a670e2263d4efa2c46c5ae249ee9cf5081a1e38e1f8c3df2fedffb772f6a33f348f95b2301246c9b37b46c32aa055e + languageName: node + linkType: hard + +"@aws-sdk/token-providers@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/token-providers@npm:3.940.0" + dependencies: + "@aws-sdk/core": "npm:3.940.0" + "@aws-sdk/nested-clients": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/6dc90385d521521124eb65a1acdc28c792f5c353c15cc61ba08f7e2dae45f3ad81e02603eb0c244f453409becf73ec7c4e92a32048a464f07e85055a84faf0d7 + languageName: node + linkType: hard + +"@aws-sdk/types@npm:3.936.0, @aws-sdk/types@npm:^3.222.0": + version: 3.936.0 + resolution: "@aws-sdk/types@npm:3.936.0" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/6f7eeabd0ada675b3b8e969d512f7ce29602a1dd6af154e3d6977f0a6f03084ca3be9498d091142369636a7b7d9f1b22e58156c741d1d088c4939581848054bb + languageName: node + linkType: hard + +"@aws-sdk/util-arn-parser@npm:3.893.0": + version: 3.893.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.893.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/c8bbc1e258674e791929f1259a3f2422433c0b8c5470808a958ef4320bb9ca7c27783b617da3b9e04d9a1cd1d0b547da2858249dbec816f1098c02731b551aac + languageName: node + linkType: hard + +"@aws-sdk/util-endpoints@npm:3.936.0": + version: 3.936.0 + resolution: "@aws-sdk/util-endpoints@npm:3.936.0" + dependencies: + "@aws-sdk/types": "npm:3.936.0" + "@smithy/types": "npm:^4.9.0" + "@smithy/url-parser": "npm:^4.2.5" + "@smithy/util-endpoints": "npm:^3.2.5" + tslib: "npm:^2.6.2" + checksum: 10c0/13b1ae923ea8c09cb8ea91e7fec6d4c3138300140a23a437348dea826f50c00bf1331d4b1b1169232bedb311cbc3cc51284bd8d57820d9b028f928d06c61573f + languageName: node + linkType: hard + +"@aws-sdk/util-locate-window@npm:^3.0.0": + version: 3.893.0 + resolution: "@aws-sdk/util-locate-window@npm:3.893.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/ed2232d1eff567a7fa96bed87d56f03ac183dc20ba0ea262edb35f0b66aea201b987f447a5c383adc5694c80275700345946c0ad3183b30a6f9ec2f89be789d8 + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-browser@npm:3.936.0": + version: 3.936.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.936.0" + dependencies: + "@aws-sdk/types": "npm:3.936.0" + "@smithy/types": "npm:^4.9.0" + bowser: "npm:^2.11.0" + tslib: "npm:^2.6.2" + checksum: 10c0/5dec40c3ca7cfe0779cadcd8c67d8aa174a385bd38ebe0c54b01b2554c833519dd2714f68aa1809d5268d8614167f3187199f5f28559a2992cc5a5a816458e64 + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-node@npm:3.940.0": + version: 3.940.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.940.0" + dependencies: + "@aws-sdk/middleware-user-agent": "npm:3.940.0" + "@aws-sdk/types": "npm:3.936.0" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: 10c0/0287c87d3e4bb8f679c54123314ed164013b357ad7a8eefd1685ecef14c6fed062e31e9a689c6e761acc49a1f3eb1903a95d450f823c76fb89f49a4729a83a93 + languageName: node + linkType: hard + +"@aws-sdk/xml-builder@npm:3.930.0": + version: 3.930.0 + resolution: "@aws-sdk/xml-builder@npm:3.930.0" + dependencies: + "@smithy/types": "npm:^4.9.0" + fast-xml-parser: "npm:5.2.5" + tslib: "npm:^2.6.2" + checksum: 10c0/f46b8544ef54083944c179e85e3468023f5b960354f0c4e0c5261918c42d6a56a23807d3c88a73fe982b38f40e5d4e7e9e6885ebad7fec0df7be83dc7596abb6 + languageName: node + linkType: hard + +"@aws/lambda-invoke-store@npm:^0.2.0": + version: 0.2.1 + resolution: "@aws/lambda-invoke-store@npm:0.2.1" + checksum: 10c0/7fdfd6e4b175d36dae522556efc51b0f7445af3d55e516acee0f4e52946833ec9655be45cb3bdefec5974c0c6e5bcca3ad1bce7d397eb5f7a2393623867fb4b2 + languageName: node + linkType: hard + "@cspotcode/source-map-consumer@npm:0.8.0": version: 0.8.0 resolution: "@cspotcode/source-map-consumer@npm:0.8.0" @@ -89,6 +634,495 @@ __metadata: languageName: node linkType: hard +"@smithy/abort-controller@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/abort-controller@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/aaca4d8a87100f4b8805bb034cae9315b9bf813a029576d3417a1a1ecd5c1d9e92907349ffaf9d6606c4fc20483ac28864565c1e6dec6f2a7d8709522c8b5290 + languageName: node + linkType: hard + +"@smithy/config-resolver@npm:^4.4.3": + version: 4.4.3 + resolution: "@smithy/config-resolver@npm:4.4.3" + dependencies: + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-config-provider": "npm:^4.2.0" + "@smithy/util-endpoints": "npm:^3.2.5" + "@smithy/util-middleware": "npm:^4.2.5" + tslib: "npm:^2.6.2" + checksum: 10c0/e28844ea32776b2d2790e134bdfcb700f5a8f4bcd7aeac9869ddac635012eb2911d5abbddf36ae63703dff3af435015095b381b17a3cb4d2b1ba1c02cdc9f314 + languageName: node + linkType: hard + +"@smithy/core@npm:^3.18.5": + version: 3.18.5 + resolution: "@smithy/core@npm:3.18.5" + dependencies: + "@smithy/middleware-serde": "npm:^4.2.6" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-body-length-browser": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-stream": "npm:^4.5.6" + "@smithy/util-utf8": "npm:^4.2.0" + "@smithy/uuid": "npm:^1.1.0" + tslib: "npm:^2.6.2" + checksum: 10c0/c6ccaf4a0639524e0141905224cbbd0142a98ee4917bc0e3e914bcc887be5f7740f1baa2717dab131f5e185fa69002d3cb5cb1a40e5a1a31c5c2c30bd946060d + languageName: node + linkType: hard + +"@smithy/credential-provider-imds@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/credential-provider-imds@npm:4.2.5" + dependencies: + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/types": "npm:^4.9.0" + "@smithy/url-parser": "npm:^4.2.5" + tslib: "npm:^2.6.2" + checksum: 10c0/98efbb03e75d71392baac12755c677b72bbb239b84ff3e776aabc0d192f4501d35da8b81956b48e266501eeff37d3bde56ab188fefb5422bf107a0f20bfd7674 + languageName: node + linkType: hard + +"@smithy/fetch-http-handler@npm:^5.3.6": + version: 5.3.6 + resolution: "@smithy/fetch-http-handler@npm:5.3.6" + dependencies: + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/querystring-builder": "npm:^4.2.5" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-base64": "npm:^4.3.0" + tslib: "npm:^2.6.2" + checksum: 10c0/8ae0401c69cf941bc2716d0372fad715f7d80e23c5aba5e30ac3abc632a02de5895a417419064324c6853857c7bcffab45fc39393cc0b46d07a11b591015a68a + languageName: node + linkType: hard + +"@smithy/hash-node@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/hash-node@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + "@smithy/util-buffer-from": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/e0c24b8b93be02a491303a014ba57e2bb746f3f8905df330d8a480c94480803e0f93d76cdbc3d8229b7673a22e68b23ee6f5ce4d6db1ac2c427cc36e804fedcf + languageName: node + linkType: hard + +"@smithy/invalid-dependency@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/invalid-dependency@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/0b3e7608d3c145ad557c04eb5b0f7f10dd93f5eaf1d36b724b0e4ff3c3f500893e19b8ecf02ede4822bc36c049a4e03b69890a37e776a4ac6cfcc8e2f6fa843e + languageName: node + linkType: hard + +"@smithy/is-array-buffer@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/is-array-buffer@npm:2.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/2f2523cd8cc4538131e408eb31664983fecb0c8724956788b015aaf3ab85a0c976b50f4f09b176f1ed7bbe79f3edf80743be7a80a11f22cd9ce1285d77161aaf + languageName: node + linkType: hard + +"@smithy/is-array-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/is-array-buffer@npm:4.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/8e3e21cff5929d627bbf4a9beded28bd54555cfd37772226290964af6950cc10d700776a2ce7553f34ddf88a2e7e3d4681de58c94e9805592d901fc0f32cb597 + languageName: node + linkType: hard + +"@smithy/middleware-content-length@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/middleware-content-length@npm:4.2.5" + dependencies: + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/672a29ab57b80dcebd841624c6a762980b17dc658ca0f7c948c0739fedacf3c6a43d0c3f63e79f13aa4069d9fb1f52266bcd5980d9e6907b2f62b918c286b861 + languageName: node + linkType: hard + +"@smithy/middleware-endpoint@npm:^4.3.12": + version: 4.3.12 + resolution: "@smithy/middleware-endpoint@npm:4.3.12" + dependencies: + "@smithy/core": "npm:^3.18.5" + "@smithy/middleware-serde": "npm:^4.2.6" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + "@smithy/url-parser": "npm:^4.2.5" + "@smithy/util-middleware": "npm:^4.2.5" + tslib: "npm:^2.6.2" + checksum: 10c0/0bfb1d825d15eed389e603e547aab134c8064c3e82fad9241f721d0f896d2f3490516d8b0a845869c78a1d071040df26cd4e3234b171bab130f0da13cb4f2a94 + languageName: node + linkType: hard + +"@smithy/middleware-retry@npm:^4.4.12": + version: 4.4.12 + resolution: "@smithy/middleware-retry@npm:4.4.12" + dependencies: + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/service-error-classification": "npm:^4.2.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-retry": "npm:^4.2.5" + "@smithy/uuid": "npm:^1.1.0" + tslib: "npm:^2.6.2" + checksum: 10c0/3c958a58c6346b07d3d1231e4835754fe159f4697bb2b8d8a0e173ec9325e92d5e73a21b1f8f7854b390fc5a5715c44a44a50ea389c17edf95178a8173d819c4 + languageName: node + linkType: hard + +"@smithy/middleware-serde@npm:^4.2.6": + version: 4.2.6 + resolution: "@smithy/middleware-serde@npm:4.2.6" + dependencies: + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/c7b4f806f3664573f119b35b91f4adaa62ec2501bae37133ca5837b24a879514812c0820345340a3281374307bd4f468c0da058c2fe0b854baa5db114403326a + languageName: node + linkType: hard + +"@smithy/middleware-stack@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/middleware-stack@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/c88476053920bb54dbf0c407b22cf5e17f497def265ee6bbdacd559144acb3142082e9f5439745da3d96655aa0aafdbb33cab14ba02ec4c3b108eab512c612b8 + languageName: node + linkType: hard + +"@smithy/node-config-provider@npm:^4.3.5": + version: 4.3.5 + resolution: "@smithy/node-config-provider@npm:4.3.5" + dependencies: + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/shared-ini-file-loader": "npm:^4.4.0" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/433eb6cab0a96fc7391351925098954265f630986777a0443f8e05f1d22b5b5ebba62cb26c4d9d0989eb747a0c4921bfa833593872715810cabc3998cf5e2816 + languageName: node + linkType: hard + +"@smithy/node-http-handler@npm:^4.4.5": + version: 4.4.5 + resolution: "@smithy/node-http-handler@npm:4.4.5" + dependencies: + "@smithy/abort-controller": "npm:^4.2.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/querystring-builder": "npm:^4.2.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/5385f20466e4ecf7e7fd9b1309077820fa65e213b806fce4ec08191c9af216da03bae6e03c5860fedf6d87c5aeba660721e1c4e0114a1d1a5d8a1cf840c30604 + languageName: node + linkType: hard + +"@smithy/property-provider@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/property-provider@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/bea8cf1758e90779476b5a44d722a63a658bee27a00e2f4f2b0b6e96ee14e2e66e3a23674c51619eb00c0472592a1d658249d7ee79cf19847ac10c698b3b67af + languageName: node + linkType: hard + +"@smithy/protocol-http@npm:^5.3.5": + version: 5.3.5 + resolution: "@smithy/protocol-http@npm:5.3.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/15e6bfbf39a8740b5cce729b84d470835887442f0f662325eb55d1f02d8d790772595446bb7f776d2852ca6f6ff67d7a9f45a3eab0bc757997c82564a483f3dc + languageName: node + linkType: hard + +"@smithy/querystring-builder@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/querystring-builder@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + "@smithy/util-uri-escape": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/1dbbf4792a90c7f4c3948526200a61b83c0444d86da6b925501611c11c4a12bdfe7e1870e66c10353128821cf5f9fedb509af85deb6c2015be0ef298a6d03972 + languageName: node + linkType: hard + +"@smithy/querystring-parser@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/querystring-parser@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/83c4200282469791a3266d8f44c6ce9128b0adb42ee9f097bac31fafa5bb62eb1cfcab29ff0641fe48d2585089109633eb1d99151dc91e4879dae563898fecdc + languageName: node + linkType: hard + +"@smithy/service-error-classification@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/service-error-classification@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + checksum: 10c0/d1a3ef99b4474ad71cd6279e581e174fd5421646618360200350c4d346b2227ddae14a71a88c32442e88b1261ed080e87df6b3d34298833be6cf5db95d266db4 + languageName: node + linkType: hard + +"@smithy/shared-ini-file-loader@npm:^4.4.0": + version: 4.4.0 + resolution: "@smithy/shared-ini-file-loader@npm:4.4.0" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/a674622375df25685e793b0c777e856f439a79614240445b7f5982b263b5525f6f6f2c02ab4058db7e6a8988d9b1809181cc70bf4d06ea2a71608fecad6ea6d1 + languageName: node + linkType: hard + +"@smithy/signature-v4@npm:^5.3.5": + version: 5.3.5 + resolution: "@smithy/signature-v4@npm:5.3.5" + dependencies: + "@smithy/is-array-buffer": "npm:^4.2.0" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-hex-encoding": "npm:^4.2.0" + "@smithy/util-middleware": "npm:^4.2.5" + "@smithy/util-uri-escape": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/e4e8f28fc53f9609f5d290d2f94f0736713a5269061b959e6be6da3ed2ef58511ba56c2727b4557349ae5201c0879555a28df4bd717e6d1789a52a678deef876 + languageName: node + linkType: hard + +"@smithy/smithy-client@npm:^4.9.8": + version: 4.9.8 + resolution: "@smithy/smithy-client@npm:4.9.8" + dependencies: + "@smithy/core": "npm:^3.18.5" + "@smithy/middleware-endpoint": "npm:^4.3.12" + "@smithy/middleware-stack": "npm:^4.2.5" + "@smithy/protocol-http": "npm:^5.3.5" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-stream": "npm:^4.5.6" + tslib: "npm:^2.6.2" + checksum: 10c0/42752686da591865cea0f5f7379eb729bdba003ddf59cfc05368e4155b350d6499772426e66b32c9e9af003fe1eb812170652a5d0f996097df4411c722120852 + languageName: node + linkType: hard + +"@smithy/types@npm:^4.9.0": + version: 4.9.0 + resolution: "@smithy/types@npm:4.9.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/7068428d2e98eafb7f7e03d10f919ae0e7ea2f339b5afca1631be3d6a6cb3512d5dc57ca95d4dab533a3ad587eeba3a1c77305eb4e563fbc067abda170482ff5 + languageName: node + linkType: hard + +"@smithy/url-parser@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/url-parser@npm:4.2.5" + dependencies: + "@smithy/querystring-parser": "npm:^4.2.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/1d8241eeaaaa6401e1de670c2ebcd3992f9abb175f399c92aec1b30de81ce8023f66e0b7079be966b0a891c878a798d4cb08a09f410bcb795799e8ae9057e99a + languageName: node + linkType: hard + +"@smithy/util-base64@npm:^4.3.0": + version: 4.3.0 + resolution: "@smithy/util-base64@npm:4.3.0" + dependencies: + "@smithy/util-buffer-from": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/02dd536b9257914cc9a595a865faac64fc96db10468d52d0cba475df78764fc25ba255707ccd061ee197fca189d7859d70af8cf89b0b0c3e27c1c693676eb6e4 + languageName: node + linkType: hard + +"@smithy/util-body-length-browser@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-body-length-browser@npm:4.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/15553c249088d59406c6917c19ed19810c7dbcc0967c44e5f3fbb2cc870c004b35f388c082b77f370a2c440a69ec7e8336c7a066af904812a66944dd5cb4c8cc + languageName: node + linkType: hard + +"@smithy/util-body-length-node@npm:^4.2.1": + version: 4.2.1 + resolution: "@smithy/util-body-length-node@npm:4.2.1" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/3c32306735af5b62f75375e976a531ab45f171dfb0dc23ee035478d2132eaf21f244c31b0f3e861c514ff97d8112055e74c98ed44595ad24bd31434d5fdaf4bf + languageName: node + linkType: hard + +"@smithy/util-buffer-from@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/util-buffer-from@npm:2.2.0" + dependencies: + "@smithy/is-array-buffer": "npm:^2.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/223d6a508b52ff236eea01cddc062b7652d859dd01d457a4e50365af3de1e24a05f756e19433f6ccf1538544076b4215469e21a4ea83dc1d58d829725b0dbc5a + languageName: node + linkType: hard + +"@smithy/util-buffer-from@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-buffer-from@npm:4.2.0" + dependencies: + "@smithy/is-array-buffer": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/4842d5607240c11400db30762ef6cb4def8d13e3474c5a901a4e2a1783198f5b163ab6011cf24a7f0acbba9a4d7cc79db1d811dc8aa9da446448e52773223997 + languageName: node + linkType: hard + +"@smithy/util-config-provider@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-config-provider@npm:4.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/0699b9980ef94eac8f491c2ac557dc47e01c6ae71dabcb4464cc064f8dbf0855797461dbec8ba1925d45f076e968b0df02f0691c636cd1043e560f67541a1d27 + languageName: node + linkType: hard + +"@smithy/util-defaults-mode-browser@npm:^4.3.11": + version: 4.3.11 + resolution: "@smithy/util-defaults-mode-browser@npm:4.3.11" + dependencies: + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/ec5601922356a7249448007d03036e9ffc9ddede5f2567f5de2a826a2dc18c1f27c038543eae96a58837a248f412fbb67c965cc43e1029a2519e8440760e790f + languageName: node + linkType: hard + +"@smithy/util-defaults-mode-node@npm:^4.2.14": + version: 4.2.14 + resolution: "@smithy/util-defaults-mode-node@npm:4.2.14" + dependencies: + "@smithy/config-resolver": "npm:^4.4.3" + "@smithy/credential-provider-imds": "npm:^4.2.5" + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/property-provider": "npm:^4.2.5" + "@smithy/smithy-client": "npm:^4.9.8" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/965860eddf4f73de7574060bc717a8ca27591456ca0cd36f114ceab2ba5a05cb53931b40088642bc866e3bde9f812bb60b5a12ff04fe1820d059b362a9443a41 + languageName: node + linkType: hard + +"@smithy/util-endpoints@npm:^3.2.5": + version: 3.2.5 + resolution: "@smithy/util-endpoints@npm:3.2.5" + dependencies: + "@smithy/node-config-provider": "npm:^4.3.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/919767b499062d804938471ff02220b74662bf0fc9b7ecf7e7aa6c29f8a23bbc9c68c53718c4bc70c802f7917e4729a37a95c63a3990904047352e36183ddae3 + languageName: node + linkType: hard + +"@smithy/util-hex-encoding@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-hex-encoding@npm:4.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/aaa94a69f03d14d3f28125cc915ca421065735e2d05d7305f0958a50021b2fce4fc68a248328e6b5b612dbaa49e471d481ff513bf89554f659f0a49573e97312 + languageName: node + linkType: hard + +"@smithy/util-middleware@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/util-middleware@npm:4.2.5" + dependencies: + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/6b05a986ec2b992e3dc016148394e812064e33f0d70f30a57c9e2ae419cb7215a16430e2afff683abdf72cb686b06e43d0afa3a86abc72fbaa130976a7e2bbfb + languageName: node + linkType: hard + +"@smithy/util-retry@npm:^4.2.5": + version: 4.2.5 + resolution: "@smithy/util-retry@npm:4.2.5" + dependencies: + "@smithy/service-error-classification": "npm:^4.2.5" + "@smithy/types": "npm:^4.9.0" + tslib: "npm:^2.6.2" + checksum: 10c0/3b330df346de40bdc49356f3fdf7164adefbd2b45d4beed6fd7d655569c2dcb1f52a7fd77d7a9ace8f6eeed9f5612cb02a60f66463972f934fae347e20c97b14 + languageName: node + linkType: hard + +"@smithy/util-stream@npm:^4.5.6": + version: 4.5.6 + resolution: "@smithy/util-stream@npm:4.5.6" + dependencies: + "@smithy/fetch-http-handler": "npm:^5.3.6" + "@smithy/node-http-handler": "npm:^4.4.5" + "@smithy/types": "npm:^4.9.0" + "@smithy/util-base64": "npm:^4.3.0" + "@smithy/util-buffer-from": "npm:^4.2.0" + "@smithy/util-hex-encoding": "npm:^4.2.0" + "@smithy/util-utf8": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/42bb6f834b3f617cf2e421450cf43f7259c1cc4cd7c7ad230e4c929fed265ef7b9f3610977df497115978f3d7a80d569ea1abbbef8d595e6b2e1a4ccca3a37fa + languageName: node + linkType: hard + +"@smithy/util-uri-escape@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-uri-escape@npm:4.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/1933e8d939dc52e1ee5e7d2397f4c208a9eac0283397a19ee72078d04db997ebe3ad39709b56aac586ffce10d1cf5ab17dfc068ea6ab030098fc06fe3532e085 + languageName: node + linkType: hard + +"@smithy/util-utf8@npm:^2.0.0": + version: 2.3.0 + resolution: "@smithy/util-utf8@npm:2.3.0" + dependencies: + "@smithy/util-buffer-from": "npm:^2.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/e18840c58cc507ca57fdd624302aefd13337ee982754c9aa688463ffcae598c08461e8620e9852a424d662ffa948fc64919e852508028d09e89ced459bd506ab + languageName: node + linkType: hard + +"@smithy/util-utf8@npm:^4.2.0": + version: 4.2.0 + resolution: "@smithy/util-utf8@npm:4.2.0" + dependencies: + "@smithy/util-buffer-from": "npm:^4.2.0" + tslib: "npm:^2.6.2" + checksum: 10c0/689a1f2295d52bec0dde7215a075d79ef32ad8b146cb610a529b2cab747d96978401fd31469c225e31f3042830c54403e64d39b28033df013c8de27a84b405a2 + languageName: node + linkType: hard + +"@smithy/uuid@npm:^1.1.0": + version: 1.1.0 + resolution: "@smithy/uuid@npm:1.1.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10c0/f8a8bfcc0e241457636884e778e261d45d8a3aaad533775111170cac36ac666275b59ec6d86d3d5b8d470ff4b864202d2a1a188b3c0e0ed0c86a0b693acf1ecf + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^1.1.2": version: 1.1.2 resolution: "@szmarczak/http-timer@npm:1.1.2" @@ -217,6 +1251,15 @@ __metadata: languageName: node linkType: hard +"@types/multer@npm:^2.0.0": + version: 2.0.0 + resolution: "@types/multer@npm:2.0.0" + dependencies: + "@types/express": "npm:*" + checksum: 10c0/375b0e77c4675c2ff27d1170e469df48dced928cc9fcd077ead111a20d0f2c01921fd25e20e25426604d6d3e311b37da2bc03ce47523d06adafba5c4b8077b67 + languageName: node + linkType: hard + "@types/node@npm:*": version: 17.0.21 resolution: "@types/node@npm:17.0.21" @@ -240,6 +1283,16 @@ __metadata: languageName: node linkType: hard +"@types/nodemailer@npm:^7.0.4": + version: 7.0.4 + resolution: "@types/nodemailer@npm:7.0.4" + dependencies: + "@aws-sdk/client-sesv2": "npm:^3.839.0" + "@types/node": "npm:*" + checksum: 10c0/8c98d4fc33a84ab0ba82d6f5a79ad9f70ae9cd86da857ef16f7896fa78203ed66c2f9f2440a0eb04ea0ab3d69c03252c8b1e5bab9371871080d223cfbdef41a4 + languageName: node + linkType: hard + "@types/passport-strategy@npm:^0.2.35": version: 0.2.35 resolution: "@types/passport-strategy@npm:0.2.35" @@ -444,6 +1497,13 @@ __metadata: languageName: node linkType: hard +"append-field@npm:^1.0.0": + version: 1.0.0 + resolution: "append-field@npm:1.0.0" + checksum: 10c0/1b5abcc227e5179936a9e4f7e2af4769fa1f00eda85bbaed907f7964b0fd1f7d61f0f332b35337f391389ff13dd5310c2546ba670f8e5a743b23ec85185c73ef + languageName: node + linkType: hard + "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -538,6 +1598,13 @@ __metadata: languageName: node linkType: hard +"bowser@npm:^2.11.0": + version: 2.13.1 + resolution: "bowser@npm:2.13.1" + checksum: 10c0/a57ef440c68e80ce736b95017e13f65d1476cdfa3cae10e0958ab71a8ed3e804aad761c5809b98fbaeaacd8cd1986d46ee7c317937c601897c9b1d17971bc8d1 + languageName: node + linkType: hard + "boxen@npm:^5.0.0": version: 5.1.2 resolution: "boxen@npm:5.1.2" @@ -589,6 +1656,22 @@ __metadata: languageName: node linkType: hard +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 + languageName: node + linkType: hard + +"busboy@npm:^1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" + dependencies: + streamsearch: "npm:^1.1.0" + checksum: 10c0/fa7e836a2b82699b6e074393428b91ae579d4f9e21f5ac468e1b459a244341d722d2d22d10920cdd849743dbece6dca11d72de939fb75a7448825cf2babfba1f + languageName: node + linkType: hard + "bytes@npm:3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -739,6 +1822,18 @@ __metadata: languageName: node linkType: hard +"concat-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "concat-stream@npm:2.0.0" + dependencies: + buffer-from: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.0.2" + typedarray: "npm:^0.0.6" + checksum: 10c0/29565dd9198fe1d8cf57f6cc71527dbc6ad67e12e4ac9401feb389c53042b2dceedf47034cbe702dfc4fd8df3ae7e6bfeeebe732cc4fa2674e484c13f04c219a + languageName: node + linkType: hard + "configstore@npm:^5.0.1": version: 5.0.1 resolution: "configstore@npm:5.0.1" @@ -1191,6 +2286,17 @@ __metadata: languageName: node linkType: hard +"fast-xml-parser@npm:5.2.5": + version: 5.2.5 + resolution: "fast-xml-parser@npm:5.2.5" + dependencies: + strnum: "npm:^2.1.0" + bin: + fxparser: src/cli/cli.js + checksum: 10c0/d1057d2e790c327ccfc42b872b91786a4912a152d44f9507bf053f800102dfb07ece3da0a86b33ff6a0caa5a5cad86da3326744f6ae5efb0c6c571d754fe48cd + languageName: node + linkType: hard + "fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" @@ -1581,7 +2687,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2.0.4": +"inherits@npm:2.0.4, inherits@npm:^2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -1952,6 +3058,13 @@ __metadata: languageName: node linkType: hard +"minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + languageName: node + linkType: hard + "minipass-collect@npm:^2.0.1": version: 2.0.1 resolution: "minipass-collect@npm:2.0.1" @@ -2028,6 +3141,17 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^0.5.6": + version: 0.5.6 + resolution: "mkdirp@npm:0.5.6" + dependencies: + minimist: "npm:^1.2.6" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01 + languageName: node + linkType: hard + "mongodb-connection-string-url@npm:^2.6.0": version: 2.6.0 resolution: "mongodb-connection-string-url@npm:2.6.0" @@ -2124,6 +3248,21 @@ __metadata: languageName: node linkType: hard +"multer@npm:^2.0.2": + version: 2.0.2 + resolution: "multer@npm:2.0.2" + dependencies: + append-field: "npm:^1.0.0" + busboy: "npm:^1.6.0" + concat-stream: "npm:^2.0.0" + mkdirp: "npm:^0.5.6" + object-assign: "npm:^4.1.1" + type-is: "npm:^1.6.18" + xtend: "npm:^4.0.2" + checksum: 10c0/d3b99dd0512169bbabf15440e1bbb3ecdc000b761e5a3e4aaca40b5e5e213c6cdcc9b7dffebaa601b7691a84f6876aa87e0173ffcc47139253793cf5657819eb + languageName: node + linkType: hard + "negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" @@ -2158,6 +3297,13 @@ __metadata: languageName: node linkType: hard +"nodemailer@npm:^7.0.11": + version: 7.0.11 + resolution: "nodemailer@npm:7.0.11" + checksum: 10c0/208f108fdb4c5dd0e3a2f013578d53dad505cf1b9c7a084f6d22fc9d6f3912daafb4a23793ca568ff848afc35f15f4eb24382d3f6f9fb8ede4a8410d4ca63618 + languageName: node + linkType: hard + "nodemon@npm:^2.0.15": version: 2.0.15 resolution: "nodemon@npm:2.0.15" @@ -2214,7 +3360,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4": +"object-assign@npm:^4, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 @@ -2490,6 +3636,17 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^3.0.2": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -2533,7 +3690,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1": +"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -2642,7 +3799,9 @@ __metadata: "@types/cors": "npm:^2.8.12" "@types/express": "npm:4.17.13" "@types/express-session": "npm:^1.17.4" + "@types/multer": "npm:^2.0.0" "@types/node": "npm:20" + "@types/nodemailer": "npm:^7.0.4" "@types/passport": "npm:^1.0.7" "@types/passport-strategy": "npm:^0.2.35" axios: "npm:^1.13.2" @@ -2653,6 +3812,8 @@ __metadata: express: "npm:^4.17.3" express-session: "npm:^1.17.2" mongoose: "npm:^8.0.4" + multer: "npm:^2.0.2" + nodemailer: "npm:^7.0.11" nodemon: "npm:^2.0.15" passport: "npm:^0.5.2" passport-cas: "git+https://github.com/coursetable/passport-cas#79612f1" @@ -2759,6 +3920,13 @@ __metadata: languageName: node linkType: hard +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 10c0/fbd9aecc2621364384d157f7e59426f4bfd385e8b424b5aaa79c83a6f5a1c8fd2e4e3289e95de1eb3511cb96bb333d6281a9919fafce760e4edb35b2cd2facab + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.2": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -2781,6 +3949,15 @@ __metadata: languageName: node linkType: hard +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -2806,6 +3983,13 @@ __metadata: languageName: node linkType: hard +"strnum@npm:^2.1.0": + version: 2.1.1 + resolution: "strnum@npm:2.1.1" + checksum: 10c0/1f9bd1f9b4c68333f25c2b1f498ea529189f060cd50aa59f1876139c994d817056de3ce57c12c970f80568d75df2289725e218bd9e3cdf73cd1a876c9c102733 + languageName: node + linkType: hard + "supports-color@npm:^5.5.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -2927,6 +4111,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.6.2": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + "tsscmp@npm:1.0.6": version: 1.0.6 resolution: "tsscmp@npm:1.0.6" @@ -2941,7 +4132,7 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.18": +"type-is@npm:^1.6.18, type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -2960,6 +4151,13 @@ __metadata: languageName: node linkType: hard +"typedarray@npm:^0.0.6": + version: 0.0.6 + resolution: "typedarray@npm:0.0.6" + checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412 + languageName: node + linkType: hard + "typescript@npm:^5.3.0": version: 5.9.3 resolution: "typescript@npm:5.9.3" @@ -3075,6 +4273,13 @@ __metadata: languageName: node linkType: hard +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + "utils-merge@npm:1.0.1": version: 1.0.1 resolution: "utils-merge@npm:1.0.1" @@ -3229,6 +4434,13 @@ __metadata: languageName: node linkType: hard +"xtend@npm:^4.0.2": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e + languageName: node + linkType: hard + "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0"