diff --git a/assets/cover_img-4c0efeb6.webp b/assets/cover_img-4c0efeb6.webp new file mode 100644 index 0000000..ad12f2c Binary files /dev/null and b/assets/cover_img-4c0efeb6.webp differ diff --git a/assets/cover_img-d3ab652c.png b/assets/cover_img-d3ab652c.png deleted file mode 100644 index 2da089d..0000000 Binary files a/assets/cover_img-d3ab652c.png and /dev/null differ diff --git a/assets/index-09d1c30d.js b/assets/index-cbd9865a.js similarity index 97% rename from assets/index-09d1c30d.js rename to assets/index-cbd9865a.js index 94f0475..fde72b7 100644 --- a/assets/index-09d1c30d.js +++ b/assets/index-cbd9865a.js @@ -45,7 +45,7 @@ Error generating stack: `+s.message+` top: ${a}px !important; left: ${c}px !important; } - `),()=>{document.head.removeChild(f)}},[e]),G.createElement(sz,{isPresent:e,childRef:i,sizeRef:r},G.cloneElement(n,{ref:i}))}const Hv=({children:n,initial:e,isPresent:t,onExitComplete:i,custom:r,presenceAffectsLayout:s,mode:o})=>{const a=CR(az),c=G.useId(),f=G.useMemo(()=>({id:c,initial:e,isPresent:t,custom:r,onExitComplete:h=>{a.set(h,!0);for(const d of a.values())if(!d)return;i&&i()},register:h=>(a.set(h,!1),()=>a.delete(h))}),s?void 0:[t]);return G.useMemo(()=>{a.forEach((h,d)=>a.set(d,!1))},[t]),G.useEffect(()=>{!t&&!a.size&&i&&i()},[t]),o==="popLayout"&&(n=G.createElement(oz,{isPresent:t},n)),G.createElement(dg.Provider,{value:f},n)};function az(){return new Map}function lz(n){return G.useEffect(()=>()=>n(),[])}const Sa=n=>n.key||"";function cz(n,e){n.forEach(t=>{const i=Sa(t);e.set(i,t)})}function uz(n){const e=[];return G.Children.forEach(n,t=>{G.isValidElement(t)&&e.push(t)}),e}const WE=({children:n,custom:e,initial:t=!0,onExitComplete:i,exitBeforeEnter:r,presenceAffectsLayout:s=!0,mode:o="sync"})=>{const a=G.useContext(zS).forceRender||rz()[0],c=I2(),f=uz(n);let h=f;const d=G.useRef(new Map).current,p=G.useRef(h),m=G.useRef(new Map).current,y=G.useRef(!0);if(OS(()=>{y.current=!1,cz(f,m),p.current=h}),lz(()=>{y.current=!0,m.clear(),d.clear()}),y.current)return G.createElement(G.Fragment,null,h.map(S=>G.createElement(Hv,{key:Sa(S),isPresent:!0,initial:t?void 0:!1,presenceAffectsLayout:s,mode:o},S)));h=[...h];const _=p.current.map(Sa),x=f.map(Sa),g=_.length;for(let S=0;S{if(x.indexOf(A)!==-1)return;const E=m.get(A);if(!E)return;const R=_.indexOf(A);let C=S;if(!C){const L=()=>{d.delete(A);const I=Array.from(m.keys()).filter(P=>!x.includes(P));if(I.forEach(P=>m.delete(P)),p.current=f.filter(P=>{const b=Sa(P);return b===A||I.includes(b)}),!d.size){if(c.current===!1)return;a(),i&&i()}};C=G.createElement(Hv,{key:Sa(E),isPresent:!1,onExitComplete:L,custom:e,presenceAffectsLayout:s,mode:o},E),d.set(A,C)}h.splice(R,0,C)}),h=h.map(S=>{const A=S.key;return d.has(A)?S:G.createElement(Hv,{key:Sa(S),isPresent:!0,presenceAffectsLayout:s,mode:o},S)}),G.createElement(G.Fragment,null,d.size?h:h.map(S=>G.cloneElement(S)))},Vc=n=>({hidden:{y:-50,opacity:0},show:{y:0,opacity:1,transition:{type:"spring",duration:1.25,delay:n}}}),il=(n,e,t,i)=>({hidden:{x:n==="left"?100:n==="right"?-100:0,y:n==="up"?100:n==="down"?-100:0,opacity:0},show:{x:0,y:0,opacity:1,transition:{type:e,delay:t,duration:i,ease:"easeOut"}}}),fz=(n,e,t,i)=>({hidden:{x:n==="left"?"-100%":n==="right"?"100%":0,y:n==="up"||n==="down"?"100%":0},show:{x:0,y:0,transition:{type:e,delay:t,duration:i,ease:"easeOut"}}}),hz=(n,e)=>({hidden:{},show:{transition:{staggerChildren:n,delayChildren:e||0}}}),rl=(n,e)=>function(){return j.jsxs(Nn.section,{variants:hz(),initial:"hidden",whileInView:"show",viewport:{once:!0,amount:0},exit:"hidden",className:`${vn.padding} max-w-7xl mx-auto relative z-0`,children:[j.jsx("span",{className:"hash-span",id:e,children:" "}),j.jsx(n,{})]})},dz=()=>{const n="Hi, I'm Satyam",e=Vc(0);return j.jsxs("section",{className:"relative w-full h-screen mx-auto overflow-hidden",children:[j.jsxs("div",{className:`${vn.paddingX} flex absolute z-10 inset-0 top-[120px] items-start gap-5`,children:[j.jsxs("div",{className:"flex flex-col justify-center items-center mt-5",children:[j.jsx("div",{className:"w-5 h-5 rounded-full bg-[#373737]"}),j.jsx("div",{className:"w-1 sm:h-80 h-40 violet-gradient"})]}),j.jsxs("div",{children:[j.jsx(Nn.h1,{variants:e,className:`${vn.heroHeadText} funky-text-outline-2`,children:n}),j.jsxs(Nn.div,{variants:il("","",.1,1),children:[j.jsx("p",{className:`${vn.heroSubText} funky-text-outline mt-2 text-black-100`,children:"I'm a computer science student with a simple and curious mind."}),j.jsx("p",{className:`${vn.sectionSubText} mt-2 text-gray-600`,children:"This is just a website showcasing some of my works and experiments. Have a look until you get bored 🥱"})]})]})]}),j.jsx("div",{className:"absolute z-10 xs:bottom-15 bottom-32 w-full flex justify-center items-center",children:j.jsx("a",{href:"#about",children:j.jsx("div",{className:"w-[35px] h-[64px] rounded-3xl border-4 border-[#373737] flex justify-center items-start p-2",children:j.jsx(Nn.div,{animate:{y:[0,24,0]},transition:{duration:1.5,repeat:1/0,repeatType:"loop"},className:"w-3 h-3 rounded-full bg-secondary mb-2"})})})})]})},pz=rl(dz,"HeroSection");var mz=Object.defineProperty,gz=Object.defineProperties,vz=Object.getOwnPropertyDescriptors,jE=Object.getOwnPropertySymbols,yz=Object.prototype.hasOwnProperty,xz=Object.prototype.propertyIsEnumerable,XE=(n,e,t)=>e in n?mz(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Mu=(n,e)=>{for(var t in e||(e={}))yz.call(e,t)&&XE(n,t,e[t]);if(jE)for(var t of jE(e))xz.call(e,t)&&XE(n,t,e[t]);return n},wu=(n,e)=>gz(n,vz(e)),_g=class extends G.Component{constructor(n){super(n),this.ref=Km.createRef(),this.state={style:{}};const e={reverse:!1,max:35,perspective:1e3,easing:"cubic-bezier(.03,.98,.52,.99)",scale:"1.1",speed:"1000",transition:!0,axis:null,reset:!0};this.width=null,this.height=null,this.left=null,this.top=null,this.transitionTimeout=null,this.updateCall=null,this.element=null,this.settings=Object.assign({},e,this.props.options),this.reverse=this.settings.reverse?-1:1,this.onMouseEnter=this.onMouseEnter.bind(this,this.props.onMouseEnter),this.onMouseMove=this.onMouseMove.bind(this,this.props.onMouseMove),this.onMouseLeave=this.onMouseLeave.bind(this,this.props.onMouseLeave)}componentDidMount(){this.element=this.ref.current,setTimeout(()=>{this.element.parentElement.querySelector(":hover")===this.element&&this.onMouseEnter()},0)}componentWillUnmount(){clearTimeout(this.transitionTimeout),cancelAnimationFrame(this.updateCall)}onMouseEnter(n=()=>{},e){return this.updateElementPosition(),this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{willChange:"transform"})})),this.setTransition(),n(e)}reset(){window.requestAnimationFrame(()=>{this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transform:`perspective(${this.settings.perspective}px) rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)`})}))})}onMouseMove(n=()=>{},e){return e.persist(),this.updateCall!==null&&window.cancelAnimationFrame(this.updateCall),this.event=e,this.updateCall=requestAnimationFrame(this.update.bind(this,e)),n(e)}setTransition(){clearTimeout(this.transitionTimeout),this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transition:`${this.settings.speed}ms ${this.settings.easing}`})})),this.transitionTimeout=setTimeout(()=>{this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transition:""})}))},this.settings.speed)}onMouseLeave(n=()=>{},e){return this.setTransition(),this.settings.reset&&this.reset(),n(e)}getValues(n){const e=(n.nativeEvent.clientX-this.left)/this.width,t=(n.nativeEvent.clientY-this.top)/this.height,i=Math.min(Math.max(e,0),1),r=Math.min(Math.max(t,0),1),s=(this.reverse*(this.settings.max/2-i*this.settings.max)).toFixed(2),o=(this.reverse*(r*this.settings.max-this.settings.max/2)).toFixed(2),a=i*100,c=r*100;return{tiltX:s,tiltY:o,percentageX:a,percentageY:c}}updateElementPosition(){const n=this.element.getBoundingClientRect();this.width=this.element.offsetWidth,this.height=this.element.offsetHeight,this.left=n.left,this.top=n.top}update(n){const e=this.getValues(n);this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transform:`perspective(${this.settings.perspective}px) rotateX(${this.settings.axis==="x"?0:e.tiltY}deg) rotateY(${this.settings.axis==="y"?0:e.tiltX}deg) scale3d(${this.settings.scale}, ${this.settings.scale}, ${this.settings.scale})`})})),this.updateCall=null}render(){const n=Object.assign({},this.props.style,this.state.style);return j.jsx("div",{style:n,ref:this.ref,className:this.props.className,onMouseEnter:this.onMouseEnter,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,children:this.props.children})}};const _z="/portfolio-react-threejs/assets/web-0c6824d5.webp",Sz="/portfolio-react-threejs/assets/mobile-84df6906.webp",Az="/portfolio-react-threejs/assets/creator-ab86683b.webp",Mz="/portfolio-react-threejs/assets/csi-1f769921.webp",wz="/portfolio-react-threejs/assets/msc-abe50c5d.webp",Ez="/portfolio-react-threejs/assets/nettv4u-35143e02.webp",Tz="/portfolio-react-threejs/assets/shapeout-d15c331a.webp",bz="/portfolio-react-threejs/assets/facedetection-65dc0246.webp",Cz="/portfolio-react-threejs/assets/Hi-783be2bb.webp",Pz="/portfolio-react-threejs/assets/langgo-41707292.webp",Rz="/portfolio-react-threejs/assets/lifeoverseas-fd137d40.webp",Lz="/portfolio-react-threejs/assets/velox-429d856c.webp",Iz="/portfolio-react-threejs/assets/yolo-9ff20b51.webp",Dz="/portfolio-react-threejs/assets/anon_exchange-3f3d612c.webp",Nz="/portfolio-react-threejs/assets/banana_class-8925bee5.webp",Uz="/portfolio-react-threejs/assets/convogen-ba953cbd.webp",Oz="/portfolio-react-threejs/assets/downloadtube-64b5de57.webp",YE=[{id:"HeroSection",title:"Home",type:"route"},{id:"AboutSection",title:"About",type:"route"},{id:"ExperienceSection",title:"Experience",type:"route"},{id:"TechSkillsSection",title:"Skills",type:"route"},{id:"ResumeSection",title:"Resume",type:"route"},{id:"ProjectsSection",title:"Projects",type:"route"},{id:"BlogsSections",title:"Blogs",type:"route"},{id:"ContactSection",title:"Contact",type:"route"},{id:"freetools",title:"Free Tools",type:"tools"}],kz=[{id:"downloadtube",title:"DownloadTube (Youtube Downloader)",type:"video",url:"https://downloadtube-iota.vercel.app/"}],Fz=[{title:"Full Stack Web Development",icon:_z},{title:"Designing",icon:Az},{title:"ML and DL Learner",icon:Sz}],Bz=[{title:"Technical Content Writer",company_name:"Nettv4u",icon:Ez,iconBg:"white",date:"October 2023 - December 2023 (2 Months)",points:["Writing Professional articles related to IT.","Ensuring use of no AI content in articles.","Creating articles on real facts and data."]},{title:"Technical member",company_name:"Microsoft Student Chapter",icon:wz,iconBg:"black",date:"October 2022 - March 2023 (6 Months)",points:["Maintaining the website and ensuring that it is up-to-date and functioning properly.","Collaborating with other members of the chapter to identify areas for improvement on the website.","Implementing changes and updates to the website using programming languages such as React.js, tailwind and JavaScript.","Debugging any issues or errors that arise on the website and working to resolve them."]},{title:"V open source member",company_name:"CSI Chapter",icon:Mz,iconBg:"white",date:"Augest 2021 - June 2022 (11 Months)",points:["Conducting regular meetings to discuss open source projects and new initiatives.","Conducting workshops and training sessions to help members learn more about open source technologies.","Coordinating with other teams within the CSI chapter to ensure smooth execution of events."]}],zz=[{name:"Downloadtube",description:"DownloadTube offers a fast, free, and easy way to download your favorite YouTube videos and music directly to your device. Enjoy high-quality video and audio downloads with no subscription required. Explore a variety of formats and resolutions to suit all your playback needs. ",tags:[{name:"next.js",color:"blue-text-gradient"},{name:"js",color:"green-text-gradient"},{name:"Youtube API",color:"pink-text-gradient"}],image:Oz,source_code_link:{Live:"https://downloadtube-iota.vercel.app/",Github:"https://downloadtube-iota.vercel.app/"},date:"February 2024"},{name:"ConvoGen AI",description:"'ConvoGen' is the virtual embodiment of me, a chatbot that offers lifelike insights and information about my experiences, interests, and personality. Engage in conversations that feel as real as speaking with me in person, as 'ConvoGen' shares a wealth of personal details and knowledge, creating a truly immersive and authentic chatbot experience.",tags:[{name:"T5 model",color:"blue-text-gradient"},{name:"Transformer",color:"green-text-gradient"},{name:"Colab",color:"pink-text-gradient"}],image:Uz,source_code_link:{Colab:"https://colab.research.google.com/drive/1a6LATySYKaS8qqfk_4maSaV4guvTRA-8?usp=sharing"},date:"October 2023"},{name:"Anon Exchange - Anonymous chatting app",description:"An innovative anonymous chatting app that redefines digital interactions. This project empowers strangers to connect seamlessly, engaging in candid conversations without the constraints of identity. What sets us apart is our commitment to privacy, allowing users to create exclusive private chat rooms for confidential discussions.",tags:[{name:"vitejs",color:"blue-text-gradient"},{name:"supabase",color:"green-text-gradient"},{name:"tailwind CSS",color:"pink-text-gradient"}],image:Dz,source_code_link:{Live:"https://anon-exchange-lyart.vercel.app/",Github:"https://github.com/bedead/Anon-Exchange-chatting"},date:"August 2023"},{name:"Banana disease classification",description:"Banana disease classification is a project that uses a YOLOv8 deep learning model to detect and identify various diseases affecting banana plants. The project is based on a custom dataset of images of banana leaves with different types of infections. The project aims to provide a fast and accurate diagnosis of banana diseases, which can help farmers and researchers to prevent crop losses and improve banana production.",tags:[{name:"YOLOv8",color:"green-text-gradient"},{name:"Colab",color:"pink-text-gradient"}],image:Nz,source_code_link:{Colab:"https://colab.research.google.com/drive/1TLumA28dCY-9_lzouIJtt2CsCjONGdNy?usp=sharing"},date:"August 2023"},{name:"PATENT - CLASSIFICATION OF LUNG CANCER USING DEEP LEARNING TECHNIQUES.",description:"Application No - 202341039647 The model is based on a YOLOv8 (Deep learning Neural network architecture) and is trained on the publicly available dataset, which consists of lung CT scans of patients with and without lung cancer.",tags:[{name:"Gradio",color:"blue-text-gradient"},{name:"YOLO",color:"green-text-gradient"},{name:"Roboflow",color:"pink-text-gradient"}],image:Iz,source_code_link:{Huggingface:"https://huggingface.co/spaces/bedead/Lung-cancer-classification",Github:"https://github.com/bedead/lung-cancer-classification-yoloV8---gradio.git"},date:"June 2023"},{name:"Face Detection",description:"'FACE-DETECTOR' is a GitHub repository showcasing an OpenCV project for detecting human faces using a cascade classifier. The project utilizes the OpenCV library, which is a popular computer vision library in Python, to detect human faces in images or video streams.",tags:[{name:"Cascade classifier",color:"blue-text-gradient"},{name:"Python",color:"green-text-gradient"},{name:"OpenCV",color:"pink-text-gradient"}],image:bz,source_code_link:{Github:"https://github.com/bedead/FACE-DETECTOR.git"},date:"Feb 2023"},{name:"Life Overseas",description:"Life Overseas is a concept website that aims to provide students with valuable resources and information to successfully clear entrance exams for foreign colleges.",tags:[{name:"Flask",color:"blue-text-gradient"},{name:"Python",color:"green-text-gradient"}],image:Rz,source_code_link:{Live:"https://full-dashing-age.glitch.me/",Github:"https://github.com/bedead/Life-Overseas-webiste.git"},date:"Jan 2023"},{name:"Velox Todo",description:"Velox Todo is a Windows application built using JavaFX and JSON files. It is a task management tool designed to help users organize and prioritize their daily tasks efficiently.",tags:[{name:"Java",color:"blue-text-gradient"},{name:"JavaFX",color:"green-text-gradient"},{name:"JSON",color:"pink-text-gradient"}],image:Lz,source_code_link:{Github:"https://github.com/bedead/Velox-Todo-Application.git"},date:"Sep 2022"},{name:"HI",description:"'HI' is a console-based conversational app written in Python. It utilizes various libraries such as pyinstaller, pyjokes, PyDictionary, platform, psutil, requests, getpass, pywhatkit, pyttsx3, speechrecognition, Wikipedia, Pyaudio, speedtest-cli, pyautogui, and py-cpuinfo to provide a wide range of functionalities.",tags:[{name:"Python",color:"blue-text-gradient"},{name:"JSON",color:"green-text-gradient"}],image:Cz,source_code_link:{Github:"https://github.com/bedead/HI_2021.12.22.4.git"},date:"Mar 2022"},{name:"Lang go",description:"'Lang Go' is a language translation app that is built using the Kivy and KivyMD frameworks in Python. The app utilizes the TextBlob library for translation capabilities. With 'Lang Go', users can input text in one language and translate it to another language seamlessly.",tags:[{name:"Kivy",color:"blue-text-gradient"},{name:"Kivymd",color:"green-text-gradient"},{name:"textBlob",color:"pink-text-gradient"}],image:Pz,source_code_link:{Github:"https://github.com/bedead/kivymd-language-translation-app.git"},date:"Mar 2022"},{name:"Shape out",description:"'Shape Out' is a 2D platformer game available on Amazon, created using the Godot game engine. The game features intuitive controls, colorful graphics, and engaging gameplay that requires players to jump, run, and solve puzzles to progress through the levels.",tags:[{name:"Godot engine",color:"blue-text-gradient"},{name:"GD-script",color:"green-text-gradient"}],image:Tz,source_code_link:{Appstore:"https://www.amazon.com/Bedead-Shape-Out-2d-platformer/dp/B0999LHBYN"},date:"Aug 2021"}],Vz=[{name:"React router deployment to gh-pages (issue fixed)",date:"Jan 8, 2024",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/0*KBr7PR6pMmxKnoOn",link:"https://medium.com/@Satyam_Mishra/react-router-deployment-to-gh-pages-issue-fixed-2024-bc7fd80946ad"},{name:"Vite website file not updating without restarting the development server.",date:"Oct 15, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/0*tvWtuvWK1j4r4c1V",link:"https://medium.com/@Satyam_Mishra/vite-website-file-not-updating-without-restarting-the-development-server-68a7a252186b"},{name:"Deploy your vite (react) app to GitHub pages",date:"Oct 5, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*Ndj_GnufQCzvRyT6454_-Q.png",link:"https://medium.com/@Satyam_Mishra/deploy-your-vite-react-app-to-github-pages-a6342dda470a"},{name:"Two of the best free resources for continuous learning",date:"May 6, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*E8m74KMwm304e_mdPI9g6Q.png",link:"https://medium.com/@Satyam_Mishra/two-of-the-best-free-resources-for-continuous-learning-665fdf52be9b"},{name:"How to set up Vite (react.js) application to have multiple endpoints",date:"Jan 20, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*BnZlZbw6_YmuZ_00h9TNrg.png",link:"https://medium.com/@Satyam_Mishra/how-to-set-up-vite-react-js-application-to-have-multiple-endpoints-a27a388cbbc3"},{name:"Structuring Flask application for multiple apps",date:"Dec 22, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*qNHflWY5VgqfzO35htz8Yw.png",link:"https://medium.com/@Satyam_Mishra/structuring-flask-application-for-multiple-apps-part-2-79eefca094de"},{name:"MUST HAVE DEVELOPER / PROGRAMMERS GEARS.",date:"Dec 17, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*tx9sts6K-tG2myM-OA69vg.png",link:"https://medium.com/@Satyam_Mishra/must-have-developer-programmers-gears-3fd5f805186"},{name:"Learn the basics of Python",date:"Aug 3, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/0*G9WB3cWh6SmHFA_2",link:"https://medium.com/@Satyam_Mishra/learn-basics-of-python-part-1-9919303c1b3a"},{name:"Create your first Flask application",date:"Jul 29, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*2fA099YHqxNlcxWOK9hMoA.png",link:"https://medium.com/@Satyam_Mishra/create-your-first-flask-application-48a698b524ca"},{name:"Java vs Python (The Ultimate Programming Language)",date:"Jul 22, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*Y_ycyItZ76XNpY9TM76JMg.jpeg",link:"https://medium.com/@Satyam_Mishra/java-vs-python-the-ultimate-programming-language-8c00a5b49cc"},{name:"Getting started with JavaFx in vscode (Beginner way)",date:"Jul 17, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*4PYrphm6D1qQ5GfRGLJllw.jpeg",link:"https://medium.com/@Satyam_Mishra/getting-started-with-javafx-in-vscode-beginner-way-9fed580fd4f"},{name:"A Simple guide to script your first movable car in Godot engine.",date:"Jan 10, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*S4dHJNkanZ_ZQ4-w8fT1nQ.png",link:"https://medium.com/@Satyam_Mishra/a-simple-guide-to-script-your-first-movable-car-in-godot-engine-93177db71472"}],Hz=({index:n,title:e,icon:t})=>j.jsx(_g,{className:"xs:w-[250px] w-full",children:j.jsx(Nn.div,{variants:il("right","spring",.5*n,.75),className:"w-full green-pink-gradient p-[1px] rounded-[20px] shadow-[#fcd4d4] shadow-card",children:j.jsxs("div",{options:{max:45,scale:1,speed:450},className:"bg-primary rounded-[20px] py-5 px-12 min-h-[280px] flex justify-evenly items-center flex-col",children:[j.jsx("img",{src:t,alt:e,className:"w-16 h-16 object-contain"}),j.jsx("h3",{className:"text-black text-[20px] font-bold text-center",children:e})]})})}),Gz=()=>j.jsxs("section",{children:[j.jsxs(Nn.div,{variants:Vc(0),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Overview."}),j.jsxs(Nn.p,{variants:il("","",.1,1),className:`${vn.sectionSubText} text-center`,children:["Introduction? Nahh",j.jsx("br",{}),"I do this 👇"]})]}),j.jsx("div",{className:"mt-20 flex flex-wrap justify-center gap-10",children:Fz.map((n,e)=>j.jsx(Hz,{index:e,...n},n.title))})]}),Wz=rl(Gz,"AboutSection");var Sg={},D2={exports:{}},jz="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Xz=jz,Yz=Xz;function N2(){}function U2(){}U2.resetWarningCache=N2;var qz=function(){function n(i,r,s,o,a,c){if(c!==Yz){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}n.isRequired=n;function e(){return n}var t={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:e,element:n,elementType:n,instanceOf:e,node:n,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:U2,resetWarningCache:N2};return t.PropTypes=t,t};D2.exports=qz();var O2=D2.exports,k2={exports:{}};/*! + `),()=>{document.head.removeChild(f)}},[e]),G.createElement(sz,{isPresent:e,childRef:i,sizeRef:r},G.cloneElement(n,{ref:i}))}const Hv=({children:n,initial:e,isPresent:t,onExitComplete:i,custom:r,presenceAffectsLayout:s,mode:o})=>{const a=CR(az),c=G.useId(),f=G.useMemo(()=>({id:c,initial:e,isPresent:t,custom:r,onExitComplete:h=>{a.set(h,!0);for(const d of a.values())if(!d)return;i&&i()},register:h=>(a.set(h,!1),()=>a.delete(h))}),s?void 0:[t]);return G.useMemo(()=>{a.forEach((h,d)=>a.set(d,!1))},[t]),G.useEffect(()=>{!t&&!a.size&&i&&i()},[t]),o==="popLayout"&&(n=G.createElement(oz,{isPresent:t},n)),G.createElement(dg.Provider,{value:f},n)};function az(){return new Map}function lz(n){return G.useEffect(()=>()=>n(),[])}const Sa=n=>n.key||"";function cz(n,e){n.forEach(t=>{const i=Sa(t);e.set(i,t)})}function uz(n){const e=[];return G.Children.forEach(n,t=>{G.isValidElement(t)&&e.push(t)}),e}const WE=({children:n,custom:e,initial:t=!0,onExitComplete:i,exitBeforeEnter:r,presenceAffectsLayout:s=!0,mode:o="sync"})=>{const a=G.useContext(zS).forceRender||rz()[0],c=I2(),f=uz(n);let h=f;const d=G.useRef(new Map).current,p=G.useRef(h),m=G.useRef(new Map).current,y=G.useRef(!0);if(OS(()=>{y.current=!1,cz(f,m),p.current=h}),lz(()=>{y.current=!0,m.clear(),d.clear()}),y.current)return G.createElement(G.Fragment,null,h.map(S=>G.createElement(Hv,{key:Sa(S),isPresent:!0,initial:t?void 0:!1,presenceAffectsLayout:s,mode:o},S)));h=[...h];const _=p.current.map(Sa),x=f.map(Sa),g=_.length;for(let S=0;S{if(x.indexOf(A)!==-1)return;const E=m.get(A);if(!E)return;const R=_.indexOf(A);let C=S;if(!C){const L=()=>{d.delete(A);const I=Array.from(m.keys()).filter(P=>!x.includes(P));if(I.forEach(P=>m.delete(P)),p.current=f.filter(P=>{const b=Sa(P);return b===A||I.includes(b)}),!d.size){if(c.current===!1)return;a(),i&&i()}};C=G.createElement(Hv,{key:Sa(E),isPresent:!1,onExitComplete:L,custom:e,presenceAffectsLayout:s,mode:o},E),d.set(A,C)}h.splice(R,0,C)}),h=h.map(S=>{const A=S.key;return d.has(A)?S:G.createElement(Hv,{key:Sa(S),isPresent:!0,presenceAffectsLayout:s,mode:o},S)}),G.createElement(G.Fragment,null,d.size?h:h.map(S=>G.cloneElement(S)))},Vc=n=>({hidden:{y:-50,opacity:0},show:{y:0,opacity:1,transition:{type:"spring",duration:1.25,delay:n}}}),il=(n,e,t,i)=>({hidden:{x:n==="left"?100:n==="right"?-100:0,y:n==="up"?100:n==="down"?-100:0,opacity:0},show:{x:0,y:0,opacity:1,transition:{type:e,delay:t,duration:i,ease:"easeOut"}}}),fz=(n,e,t,i)=>({hidden:{x:n==="left"?"-100%":n==="right"?"100%":0,y:n==="up"||n==="down"?"100%":0},show:{x:0,y:0,transition:{type:e,delay:t,duration:i,ease:"easeOut"}}}),hz=(n,e)=>({hidden:{},show:{transition:{staggerChildren:n,delayChildren:e||0}}}),rl=(n,e)=>function(){return j.jsxs(Nn.section,{variants:hz(),initial:"hidden",whileInView:"show",viewport:{once:!0,amount:0},exit:"hidden",className:`${vn.padding} max-w-7xl mx-auto relative z-0`,children:[j.jsx("span",{className:"hash-span",id:e,children:" "}),j.jsx(n,{})]})},dz=()=>{const n="Hi, I'm Satyam",e=Vc(0);return j.jsxs("section",{className:"relative w-full h-screen mx-auto overflow-hidden",children:[j.jsxs("div",{className:`${vn.paddingX} flex absolute z-10 inset-0 top-[120px] items-start gap-5`,children:[j.jsxs("div",{className:"flex flex-col justify-center items-center mt-5",children:[j.jsx("div",{className:"w-5 h-5 rounded-full bg-[#373737]"}),j.jsx("div",{className:"w-1 sm:h-80 h-40 violet-gradient"})]}),j.jsxs("div",{children:[j.jsx(Nn.h1,{variants:e,className:`${vn.heroHeadText} funky-text-outline-2`,children:n}),j.jsxs(Nn.div,{variants:il("","",.1,1),children:[j.jsx("p",{className:`${vn.heroSubText} funky-text-outline mt-2 text-black-100`,children:"I'm a computer science student with a simple and curious mind."}),j.jsx("p",{className:`${vn.sectionSubText} mt-2 text-gray-600`,children:"This is just a website showcasing some of my works and experiments. Have a look until you get bored 🥱"})]})]})]}),j.jsx("div",{className:"absolute z-10 xs:bottom-15 bottom-32 w-full flex justify-center items-center",children:j.jsx("a",{href:"#AboutSection",children:j.jsx("div",{className:"w-[35px] h-[64px] rounded-3xl border-4 border-[#373737] flex justify-center items-start p-2",children:j.jsx(Nn.div,{animate:{y:[0,24,0]},transition:{duration:1.5,repeat:1/0,repeatType:"loop"},className:"w-3 h-3 rounded-full bg-secondary mb-2"})})})})]})},pz=rl(dz,"HeroSection");var mz=Object.defineProperty,gz=Object.defineProperties,vz=Object.getOwnPropertyDescriptors,jE=Object.getOwnPropertySymbols,yz=Object.prototype.hasOwnProperty,xz=Object.prototype.propertyIsEnumerable,XE=(n,e,t)=>e in n?mz(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Mu=(n,e)=>{for(var t in e||(e={}))yz.call(e,t)&&XE(n,t,e[t]);if(jE)for(var t of jE(e))xz.call(e,t)&&XE(n,t,e[t]);return n},wu=(n,e)=>gz(n,vz(e)),_g=class extends G.Component{constructor(n){super(n),this.ref=Km.createRef(),this.state={style:{}};const e={reverse:!1,max:35,perspective:1e3,easing:"cubic-bezier(.03,.98,.52,.99)",scale:"1.1",speed:"1000",transition:!0,axis:null,reset:!0};this.width=null,this.height=null,this.left=null,this.top=null,this.transitionTimeout=null,this.updateCall=null,this.element=null,this.settings=Object.assign({},e,this.props.options),this.reverse=this.settings.reverse?-1:1,this.onMouseEnter=this.onMouseEnter.bind(this,this.props.onMouseEnter),this.onMouseMove=this.onMouseMove.bind(this,this.props.onMouseMove),this.onMouseLeave=this.onMouseLeave.bind(this,this.props.onMouseLeave)}componentDidMount(){this.element=this.ref.current,setTimeout(()=>{this.element.parentElement.querySelector(":hover")===this.element&&this.onMouseEnter()},0)}componentWillUnmount(){clearTimeout(this.transitionTimeout),cancelAnimationFrame(this.updateCall)}onMouseEnter(n=()=>{},e){return this.updateElementPosition(),this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{willChange:"transform"})})),this.setTransition(),n(e)}reset(){window.requestAnimationFrame(()=>{this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transform:`perspective(${this.settings.perspective}px) rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)`})}))})}onMouseMove(n=()=>{},e){return e.persist(),this.updateCall!==null&&window.cancelAnimationFrame(this.updateCall),this.event=e,this.updateCall=requestAnimationFrame(this.update.bind(this,e)),n(e)}setTransition(){clearTimeout(this.transitionTimeout),this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transition:`${this.settings.speed}ms ${this.settings.easing}`})})),this.transitionTimeout=setTimeout(()=>{this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transition:""})}))},this.settings.speed)}onMouseLeave(n=()=>{},e){return this.setTransition(),this.settings.reset&&this.reset(),n(e)}getValues(n){const e=(n.nativeEvent.clientX-this.left)/this.width,t=(n.nativeEvent.clientY-this.top)/this.height,i=Math.min(Math.max(e,0),1),r=Math.min(Math.max(t,0),1),s=(this.reverse*(this.settings.max/2-i*this.settings.max)).toFixed(2),o=(this.reverse*(r*this.settings.max-this.settings.max/2)).toFixed(2),a=i*100,c=r*100;return{tiltX:s,tiltY:o,percentageX:a,percentageY:c}}updateElementPosition(){const n=this.element.getBoundingClientRect();this.width=this.element.offsetWidth,this.height=this.element.offsetHeight,this.left=n.left,this.top=n.top}update(n){const e=this.getValues(n);this.setState(Object.assign({},this.state,{style:wu(Mu({},this.state.style),{transform:`perspective(${this.settings.perspective}px) rotateX(${this.settings.axis==="x"?0:e.tiltY}deg) rotateY(${this.settings.axis==="y"?0:e.tiltX}deg) scale3d(${this.settings.scale}, ${this.settings.scale}, ${this.settings.scale})`})})),this.updateCall=null}render(){const n=Object.assign({},this.props.style,this.state.style);return j.jsx("div",{style:n,ref:this.ref,className:this.props.className,onMouseEnter:this.onMouseEnter,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,children:this.props.children})}};const _z="/portfolio-react-threejs/assets/web-0c6824d5.webp",Sz="/portfolio-react-threejs/assets/mobile-84df6906.webp",Az="/portfolio-react-threejs/assets/creator-ab86683b.webp",Mz="/portfolio-react-threejs/assets/csi-1f769921.webp",wz="/portfolio-react-threejs/assets/msc-abe50c5d.webp",Ez="/portfolio-react-threejs/assets/nettv4u-35143e02.webp",Tz="/portfolio-react-threejs/assets/shapeout-d15c331a.webp",bz="/portfolio-react-threejs/assets/facedetection-65dc0246.webp",Cz="/portfolio-react-threejs/assets/Hi-783be2bb.webp",Pz="/portfolio-react-threejs/assets/langgo-41707292.webp",Rz="/portfolio-react-threejs/assets/lifeoverseas-fd137d40.webp",Lz="/portfolio-react-threejs/assets/velox-429d856c.webp",Iz="/portfolio-react-threejs/assets/yolo-9ff20b51.webp",Dz="/portfolio-react-threejs/assets/anon_exchange-3f3d612c.webp",Nz="/portfolio-react-threejs/assets/banana_class-8925bee5.webp",Uz="/portfolio-react-threejs/assets/convogen-ba953cbd.webp",Oz="/portfolio-react-threejs/assets/downloadtube-64b5de57.webp",YE=[{id:"HeroSection",title:"Home",type:"route"},{id:"AboutSection",title:"About",type:"route"},{id:"ExperienceSection",title:"Experience",type:"route"},{id:"TechSkillsSection",title:"Skills",type:"route"},{id:"ResumeSection",title:"Resume",type:"route"},{id:"ProjectsSection",title:"Projects",type:"route"},{id:"BlogsSections",title:"Blogs",type:"route"},{id:"ContactSection",title:"Contact",type:"route"},{id:"freetools",title:"Free Tools",type:"tools"}],kz=[{id:"DownloadTube",title:"DownloadTube (Youtube Downloader)",type:"video",url:"https://downloadtube-iota.vercel.app/"}],Fz=[{title:"Full Stack Web Development",icon:_z},{title:"Designing",icon:Az},{title:"ML and DL Learner",icon:Sz}],Bz=[{title:"Technical Content Writer",company_name:"Nettv4u",icon:Ez,iconBg:"white",date:"October 2023 - December 2023 (2 Months)",points:["Writing Professional articles related to IT.","Ensuring use of no AI content in articles.","Creating articles on real facts and data."]},{title:"Technical member",company_name:"Microsoft Student Chapter",icon:wz,iconBg:"black",date:"October 2022 - March 2023 (6 Months)",points:["Maintaining the website and ensuring that it is up-to-date and functioning properly.","Collaborating with other members of the chapter to identify areas for improvement on the website.","Implementing changes and updates to the website using programming languages such as React.js, tailwind and JavaScript.","Debugging any issues or errors that arise on the website and working to resolve them."]},{title:"V open source member",company_name:"CSI Chapter",icon:Mz,iconBg:"white",date:"Augest 2021 - June 2022 (11 Months)",points:["Conducting regular meetings to discuss open source projects and new initiatives.","Conducting workshops and training sessions to help members learn more about open source technologies.","Coordinating with other teams within the CSI chapter to ensure smooth execution of events."]}],zz=[{name:"Downloadtube",description:"DownloadTube offers a fast, free, and easy way to download your favorite YouTube videos and music directly to your device. Enjoy high-quality video and audio downloads with no subscription required. Explore a variety of formats and resolutions to suit all your playback needs. ",tags:[{name:"next.js",color:"blue-text-gradient"},{name:"js",color:"green-text-gradient"},{name:"Youtube API",color:"pink-text-gradient"}],image:Oz,source_code_link:{Live:"https://downloadtube-iota.vercel.app/",Github:"https://downloadtube-iota.vercel.app/"},date:"February 2024"},{name:"ConvoGen AI",description:"'ConvoGen' is the virtual embodiment of me, a chatbot that offers lifelike insights and information about my experiences, interests, and personality. Engage in conversations that feel as real as speaking with me in person, as 'ConvoGen' shares a wealth of personal details and knowledge, creating a truly immersive and authentic chatbot experience.",tags:[{name:"T5 model",color:"blue-text-gradient"},{name:"Transformer",color:"green-text-gradient"},{name:"Colab",color:"pink-text-gradient"}],image:Uz,source_code_link:{Colab:"https://colab.research.google.com/drive/1a6LATySYKaS8qqfk_4maSaV4guvTRA-8?usp=sharing"},date:"October 2023"},{name:"Anon Exchange - Anonymous chatting app",description:"An innovative anonymous chatting app that redefines digital interactions. This project empowers strangers to connect seamlessly, engaging in candid conversations without the constraints of identity. What sets us apart is our commitment to privacy, allowing users to create exclusive private chat rooms for confidential discussions.",tags:[{name:"vitejs",color:"blue-text-gradient"},{name:"supabase",color:"green-text-gradient"},{name:"tailwind CSS",color:"pink-text-gradient"}],image:Dz,source_code_link:{Live:"https://anon-exchange-lyart.vercel.app/",Github:"https://github.com/bedead/Anon-Exchange-chatting"},date:"August 2023"},{name:"Banana disease classification",description:"Banana disease classification is a project that uses a YOLOv8 deep learning model to detect and identify various diseases affecting banana plants. The project is based on a custom dataset of images of banana leaves with different types of infections. The project aims to provide a fast and accurate diagnosis of banana diseases, which can help farmers and researchers to prevent crop losses and improve banana production.",tags:[{name:"YOLOv8",color:"green-text-gradient"},{name:"Colab",color:"pink-text-gradient"}],image:Nz,source_code_link:{Colab:"https://colab.research.google.com/drive/1TLumA28dCY-9_lzouIJtt2CsCjONGdNy?usp=sharing"},date:"August 2023"},{name:"PATENT - CLASSIFICATION OF LUNG CANCER USING DEEP LEARNING TECHNIQUES.",description:"Application No - 202341039647 The model is based on a YOLOv8 (Deep learning Neural network architecture) and is trained on the publicly available dataset, which consists of lung CT scans of patients with and without lung cancer.",tags:[{name:"Gradio",color:"blue-text-gradient"},{name:"YOLO",color:"green-text-gradient"},{name:"Roboflow",color:"pink-text-gradient"}],image:Iz,source_code_link:{Huggingface:"https://huggingface.co/spaces/bedead/Lung-cancer-classification",Github:"https://github.com/bedead/lung-cancer-classification-yoloV8---gradio.git"},date:"June 2023"},{name:"Face Detection",description:"'FACE-DETECTOR' is a GitHub repository showcasing an OpenCV project for detecting human faces using a cascade classifier. The project utilizes the OpenCV library, which is a popular computer vision library in Python, to detect human faces in images or video streams.",tags:[{name:"Cascade classifier",color:"blue-text-gradient"},{name:"Python",color:"green-text-gradient"},{name:"OpenCV",color:"pink-text-gradient"}],image:bz,source_code_link:{Github:"https://github.com/bedead/FACE-DETECTOR.git"},date:"Feb 2023"},{name:"Life Overseas",description:"Life Overseas is a concept website that aims to provide students with valuable resources and information to successfully clear entrance exams for foreign colleges.",tags:[{name:"Flask",color:"blue-text-gradient"},{name:"Python",color:"green-text-gradient"}],image:Rz,source_code_link:{Live:"https://full-dashing-age.glitch.me/",Github:"https://github.com/bedead/Life-Overseas-webiste.git"},date:"Jan 2023"},{name:"Velox Todo",description:"Velox Todo is a Windows application built using JavaFX and JSON files. It is a task management tool designed to help users organize and prioritize their daily tasks efficiently.",tags:[{name:"Java",color:"blue-text-gradient"},{name:"JavaFX",color:"green-text-gradient"},{name:"JSON",color:"pink-text-gradient"}],image:Lz,source_code_link:{Github:"https://github.com/bedead/Velox-Todo-Application.git"},date:"Sep 2022"},{name:"HI",description:"'HI' is a console-based conversational app written in Python. It utilizes various libraries such as pyinstaller, pyjokes, PyDictionary, platform, psutil, requests, getpass, pywhatkit, pyttsx3, speechrecognition, Wikipedia, Pyaudio, speedtest-cli, pyautogui, and py-cpuinfo to provide a wide range of functionalities.",tags:[{name:"Python",color:"blue-text-gradient"},{name:"JSON",color:"green-text-gradient"}],image:Cz,source_code_link:{Github:"https://github.com/bedead/HI_2021.12.22.4.git"},date:"Mar 2022"},{name:"Lang go",description:"'Lang Go' is a language translation app that is built using the Kivy and KivyMD frameworks in Python. The app utilizes the TextBlob library for translation capabilities. With 'Lang Go', users can input text in one language and translate it to another language seamlessly.",tags:[{name:"Kivy",color:"blue-text-gradient"},{name:"Kivymd",color:"green-text-gradient"},{name:"textBlob",color:"pink-text-gradient"}],image:Pz,source_code_link:{Github:"https://github.com/bedead/kivymd-language-translation-app.git"},date:"Mar 2022"},{name:"Shape out",description:"'Shape Out' is a 2D platformer game available on Amazon, created using the Godot game engine. The game features intuitive controls, colorful graphics, and engaging gameplay that requires players to jump, run, and solve puzzles to progress through the levels.",tags:[{name:"Godot engine",color:"blue-text-gradient"},{name:"GD-script",color:"green-text-gradient"}],image:Tz,source_code_link:{Appstore:"https://www.amazon.com/Bedead-Shape-Out-2d-platformer/dp/B0999LHBYN"},date:"Aug 2021"}],Vz=[{name:"React router deployment to gh-pages (issue fixed)",date:"Jan 8, 2024",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/0*KBr7PR6pMmxKnoOn",link:"https://medium.com/@Satyam_Mishra/react-router-deployment-to-gh-pages-issue-fixed-2024-bc7fd80946ad"},{name:"Vite website file not updating without restarting the development server.",date:"Oct 15, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/0*tvWtuvWK1j4r4c1V",link:"https://medium.com/@Satyam_Mishra/vite-website-file-not-updating-without-restarting-the-development-server-68a7a252186b"},{name:"Deploy your vite (react) app to GitHub pages",date:"Oct 5, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*Ndj_GnufQCzvRyT6454_-Q.png",link:"https://medium.com/@Satyam_Mishra/deploy-your-vite-react-app-to-github-pages-a6342dda470a"},{name:"Two of the best free resources for continuous learning",date:"May 6, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*E8m74KMwm304e_mdPI9g6Q.png",link:"https://medium.com/@Satyam_Mishra/two-of-the-best-free-resources-for-continuous-learning-665fdf52be9b"},{name:"How to set up Vite (react.js) application to have multiple endpoints",date:"Jan 20, 2023",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*BnZlZbw6_YmuZ_00h9TNrg.png",link:"https://medium.com/@Satyam_Mishra/how-to-set-up-vite-react-js-application-to-have-multiple-endpoints-a27a388cbbc3"},{name:"Structuring Flask application for multiple apps",date:"Dec 22, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*qNHflWY5VgqfzO35htz8Yw.png",link:"https://medium.com/@Satyam_Mishra/structuring-flask-application-for-multiple-apps-part-2-79eefca094de"},{name:"MUST HAVE DEVELOPER / PROGRAMMERS GEARS.",date:"Dec 17, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*tx9sts6K-tG2myM-OA69vg.png",link:"https://medium.com/@Satyam_Mishra/must-have-developer-programmers-gears-3fd5f805186"},{name:"Learn the basics of Python",date:"Aug 3, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/0*G9WB3cWh6SmHFA_2",link:"https://medium.com/@Satyam_Mishra/learn-basics-of-python-part-1-9919303c1b3a"},{name:"Create your first Flask application",date:"Jul 29, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*2fA099YHqxNlcxWOK9hMoA.png",link:"https://medium.com/@Satyam_Mishra/create-your-first-flask-application-48a698b524ca"},{name:"Java vs Python (The Ultimate Programming Language)",date:"Jul 22, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*Y_ycyItZ76XNpY9TM76JMg.jpeg",link:"https://medium.com/@Satyam_Mishra/java-vs-python-the-ultimate-programming-language-8c00a5b49cc"},{name:"Getting started with JavaFx in vscode (Beginner way)",date:"Jul 17, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*4PYrphm6D1qQ5GfRGLJllw.jpeg",link:"https://medium.com/@Satyam_Mishra/getting-started-with-javafx-in-vscode-beginner-way-9fed580fd4f"},{name:"A Simple guide to script your first movable car in Godot engine.",date:"Jan 10, 2022",img:"https://miro.medium.com/v2/resize:fit:828/format:webp/1*S4dHJNkanZ_ZQ4-w8fT1nQ.png",link:"https://medium.com/@Satyam_Mishra/a-simple-guide-to-script-your-first-movable-car-in-godot-engine-93177db71472"}],Hz=({index:n,title:e,icon:t})=>j.jsx(_g,{className:"xs:w-[250px] w-full",children:j.jsx(Nn.div,{variants:il("right","spring",.5*n,.75),className:"w-full green-pink-gradient p-[1px] rounded-[20px] shadow-[#fcd4d4] shadow-card",children:j.jsxs("div",{options:{max:45,scale:1,speed:450},className:"bg-primary rounded-[20px] py-5 px-12 min-h-[280px] flex justify-evenly items-center flex-col",children:[j.jsx("img",{src:t,alt:e,className:"w-16 h-16 object-contain"}),j.jsx("h3",{className:"text-black text-[20px] font-bold text-center",children:e})]})})}),Gz=()=>j.jsxs("section",{children:[j.jsxs(Nn.div,{variants:Vc(0),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Overview."}),j.jsxs(Nn.p,{variants:il("","",.1,1),className:`${vn.sectionSubText} text-center`,children:["Introduction? Nahh",j.jsx("br",{}),"I do this 👇"]})]}),j.jsx("div",{className:"mt-20 flex flex-wrap justify-center gap-10",children:Fz.map((n,e)=>j.jsx(Hz,{index:e,...n},n.title))})]}),Wz=rl(Gz,"AboutSection");var Sg={},D2={exports:{}},jz="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Xz=jz,Yz=Xz;function N2(){}function U2(){}U2.resetWarningCache=N2;var qz=function(){function n(i,r,s,o,a,c){if(c!==Yz){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}n.isRequired=n;function e(){return n}var t={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:e,element:n,elementType:n,instanceOf:e,node:n,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:U2,resetWarningCache:N2};return t.PropTypes=t,t};D2.exports=qz();var O2=D2.exports,k2={exports:{}};/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames @@ -3924,4 +3924,4 @@ No matching component was found for: void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); } - `}),[h]);return G.createElement("group",th({},C,{ref:le}),d&&!ve&&G.createElement("mesh",{castShadow:m,receiveShadow:y,ref:Ne},x||G.createElement("planeGeometry",null),_||G.createElement("shaderMaterial",{side:Dr,vertexShader:it.vertexShader,fragmentShader:it.fragmentShader})))});let Bu=0;const S9=a3(n=>(gc.onStart=(e,t,i)=>{n({active:!0,item:e,loaded:t,total:i,progress:(t-Bu)/(i-Bu)*100})},gc.onLoad=()=>{n({active:!1})},gc.onError=e=>n(t=>({errors:[...t.errors,e]})),gc.onProgress=(e,t,i)=>{t===i&&(Bu=i),n({active:!0,item:e,loaded:t,total:i,progress:(t-Bu)/(i-Bu)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}));var A9=Object.defineProperty,M9=(n,e,t)=>e in n?A9(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,dt=(n,e,t)=>(M9(n,typeof e!="symbol"?e+"":e,t),t);const Bp=new sl,Yb=new Ts,w9=Math.cos(70*(Math.PI/180)),qb=(n,e)=>(n%e+e)%e;let E9=class extends cs{constructor(e,t){super(),dt(this,"object"),dt(this,"domElement"),dt(this,"enabled",!0),dt(this,"target",new O),dt(this,"minDistance",0),dt(this,"maxDistance",1/0),dt(this,"minZoom",0),dt(this,"maxZoom",1/0),dt(this,"minPolarAngle",0),dt(this,"maxPolarAngle",Math.PI),dt(this,"minAzimuthAngle",-1/0),dt(this,"maxAzimuthAngle",1/0),dt(this,"enableDamping",!1),dt(this,"dampingFactor",.05),dt(this,"enableZoom",!0),dt(this,"zoomSpeed",1),dt(this,"enableRotate",!0),dt(this,"rotateSpeed",1),dt(this,"enablePan",!0),dt(this,"panSpeed",1),dt(this,"screenSpacePanning",!0),dt(this,"keyPanSpeed",7),dt(this,"zoomToCursor",!1),dt(this,"autoRotate",!1),dt(this,"autoRotateSpeed",2),dt(this,"reverseOrbit",!1),dt(this,"reverseHorizontalOrbit",!1),dt(this,"reverseVerticalOrbit",!1),dt(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),dt(this,"mouseButtons",{LEFT:Aa.ROTATE,MIDDLE:Aa.DOLLY,RIGHT:Aa.PAN}),dt(this,"touches",{ONE:Ma.ROTATE,TWO:Ma.DOLLY_PAN}),dt(this,"target0"),dt(this,"position0"),dt(this,"zoom0"),dt(this,"_domElementKeyEvents",null),dt(this,"getPolarAngle"),dt(this,"getAzimuthalAngle"),dt(this,"setPolarAngle"),dt(this,"setAzimuthalAngle"),dt(this,"getDistance"),dt(this,"listenToKeyEvents"),dt(this,"stopListenToKeyEvents"),dt(this,"saveState"),dt(this,"reset"),dt(this,"update"),dt(this,"connect"),dt(this,"dispose"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>h.phi,this.getAzimuthalAngle=()=>h.theta,this.setPolarAngle=H=>{let me=qb(H,2*Math.PI),Ge=h.phi;Ge<0&&(Ge+=2*Math.PI),me<0&&(me+=2*Math.PI);let V=Math.abs(me-Ge);2*Math.PI-V{let me=qb(H,2*Math.PI),Ge=h.theta;Ge<0&&(Ge+=2*Math.PI),me<0&&(me+=2*Math.PI);let V=Math.abs(me-Ge);2*Math.PI-Vi.object.position.distanceTo(i.target),this.listenToKeyEvents=H=>{H.addEventListener("keydown",Pe),this._domElementKeyEvents=H},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",Pe),this._domElementKeyEvents=null},this.saveState=()=>{i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=()=>{i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(r),i.update(),c=a.NONE},this.update=(()=>{const H=new O,me=new O(0,1,0),Ge=new ai().setFromUnitVectors(e.up,me),V=Ge.clone().invert(),Re=new O,he=new ai,ge=2*Math.PI;return function(){const ft=i.object.position;Ge.setFromUnitVectors(e.up,me),V.copy(Ge).invert(),H.copy(ft).sub(i.target),H.applyQuaternion(Ge),h.setFromVector3(H),i.autoRotate&&c===a.NONE&&te(W()),i.enableDamping?(h.theta+=d.theta*i.dampingFactor,h.phi+=d.phi*i.dampingFactor):(h.theta+=d.theta,h.phi+=d.phi);let mt=i.minAzimuthAngle,Rt=i.maxAzimuthAngle;isFinite(mt)&&isFinite(Rt)&&(mt<-Math.PI?mt+=ge:mt>Math.PI&&(mt-=ge),Rt<-Math.PI?Rt+=ge:Rt>Math.PI&&(Rt-=ge),mt<=Rt?h.theta=Math.max(mt,Math.min(Rt,h.theta)):h.theta=h.theta>(mt+Rt)/2?Math.max(mt,h.theta):Math.min(Rt,h.theta)),h.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,h.phi)),h.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(m,i.dampingFactor):i.target.add(m),i.zoomToCursor&&P||i.object.isOrthographicCamera?h.radius=_e(h.radius):h.radius=_e(h.radius*p),H.setFromSpherical(h),H.applyQuaternion(V),ft.copy(i.target).add(H),i.object.matrixAutoUpdate||i.object.updateMatrix(),i.object.lookAt(i.target),i.enableDamping===!0?(d.theta*=1-i.dampingFactor,d.phi*=1-i.dampingFactor,m.multiplyScalar(1-i.dampingFactor)):(d.set(0,0,0),m.set(0,0,0));let Wt=!1;if(i.zoomToCursor&&P){let bt=null;if(i.object instanceof sn&&i.object.isPerspectiveCamera){const Pn=H.length();bt=_e(Pn*p);const kn=Pn-bt;i.object.position.addScaledVector(L,kn),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){const Pn=new O(I.x,I.y,0);Pn.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/p)),i.object.updateProjectionMatrix(),Wt=!0;const kn=new O(I.x,I.y,0);kn.unproject(i.object),i.object.position.sub(kn).add(Pn),i.object.updateMatrixWorld(),bt=H.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;bt!==null&&(i.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(bt).add(i.object.position):(Bp.origin.copy(i.object.position),Bp.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(Bp.direction))f||8*(1-he.dot(i.object.quaternion))>f?(i.dispatchEvent(r),Re.copy(i.object.position),he.copy(i.object.quaternion),Wt=!1,!0):!1}})(),this.connect=H=>{H===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),i.domElement=H,i.domElement.style.touchAction="none",i.domElement.addEventListener("contextmenu",Ce),i.domElement.addEventListener("pointerdown",D),i.domElement.addEventListener("pointercancel",xe),i.domElement.addEventListener("wheel",Qe)},this.dispose=()=>{var H,me,Ge,V,Re,he;i.domElement&&(i.domElement.style.touchAction="auto"),(H=i.domElement)==null||H.removeEventListener("contextmenu",Ce),(me=i.domElement)==null||me.removeEventListener("pointerdown",D),(Ge=i.domElement)==null||Ge.removeEventListener("pointercancel",xe),(V=i.domElement)==null||V.removeEventListener("wheel",Qe),(Re=i.domElement)==null||Re.ownerDocument.removeEventListener("pointermove",se),(he=i.domElement)==null||he.ownerDocument.removeEventListener("pointerup",xe),i._domElementKeyEvents!==null&&i._domElementKeyEvents.removeEventListener("keydown",Pe)};const i=this,r={type:"change"},s={type:"start"},o={type:"end"},a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let c=a.NONE;const f=1e-6,h=new U_,d=new U_;let p=1;const m=new O,y=new pe,_=new pe,x=new pe,g=new pe,S=new pe,A=new pe,E=new pe,R=new pe,C=new pe,L=new O,I=new pe;let P=!1;const b=[],N={};function W(){return 2*Math.PI/60/60*i.autoRotateSpeed}function X(){return Math.pow(.95,i.zoomSpeed)}function te(H){i.reverseOrbit||i.reverseHorizontalOrbit?d.theta+=H:d.theta-=H}function ne(H){i.reverseOrbit||i.reverseVerticalOrbit?d.phi+=H:d.phi-=H}const Q=(()=>{const H=new O;return function(Ge,V){H.setFromMatrixColumn(V,0),H.multiplyScalar(-Ge),m.add(H)}})(),le=(()=>{const H=new O;return function(Ge,V){i.screenSpacePanning===!0?H.setFromMatrixColumn(V,1):(H.setFromMatrixColumn(V,0),H.crossVectors(i.object.up,H)),H.multiplyScalar(Ge),m.add(H)}})(),k=(()=>{const H=new O;return function(Ge,V){const Re=i.domElement;if(Re&&i.object instanceof sn&&i.object.isPerspectiveCamera){const he=i.object.position;H.copy(he).sub(i.target);let ge=H.length();ge*=Math.tan(i.object.fov/2*Math.PI/180),Q(2*Ge*ge/Re.clientHeight,i.object.matrix),le(2*V*ge/Re.clientHeight,i.object.matrix)}else Re&&i.object instanceof Nr&&i.object.isOrthographicCamera?(Q(Ge*(i.object.right-i.object.left)/i.object.zoom/Re.clientWidth,i.object.matrix),le(V*(i.object.top-i.object.bottom)/i.object.zoom/Re.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}})();function q(H){i.object instanceof sn&&i.object.isPerspectiveCamera||i.object instanceof Nr&&i.object.isOrthographicCamera?p/=H:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function J(H){i.object instanceof sn&&i.object.isPerspectiveCamera||i.object instanceof Nr&&i.object.isOrthographicCamera?p*=H:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function $(H){if(!i.zoomToCursor||!i.domElement)return;P=!0;const me=i.domElement.getBoundingClientRect(),Ge=H.clientX-me.left,V=H.clientY-me.top,Re=me.width,he=me.height;I.x=Ge/Re*2-1,I.y=-(V/he)*2+1,L.set(I.x,I.y,1).unproject(i.object).sub(i.object.position).normalize()}function _e(H){return Math.max(i.minDistance,Math.min(i.maxDistance,H))}function Ne(H){y.set(H.clientX,H.clientY)}function oe(H){$(H),E.set(H.clientX,H.clientY)}function ve(H){g.set(H.clientX,H.clientY)}function Te(H){_.set(H.clientX,H.clientY),x.subVectors(_,y).multiplyScalar(i.rotateSpeed);const me=i.domElement;me&&(te(2*Math.PI*x.x/me.clientHeight),ne(2*Math.PI*x.y/me.clientHeight)),y.copy(_),i.update()}function Me(H){R.set(H.clientX,H.clientY),C.subVectors(R,E),C.y>0?q(X()):C.y<0&&J(X()),E.copy(R),i.update()}function nt(H){S.set(H.clientX,H.clientY),A.subVectors(S,g).multiplyScalar(i.panSpeed),k(A.x,A.y),g.copy(S),i.update()}function it(H){$(H),H.deltaY<0?J(X()):H.deltaY>0&&q(X()),i.update()}function Xe(H){let me=!1;switch(H.code){case i.keys.UP:k(0,i.keyPanSpeed),me=!0;break;case i.keys.BOTTOM:k(0,-i.keyPanSpeed),me=!0;break;case i.keys.LEFT:k(i.keyPanSpeed,0),me=!0;break;case i.keys.RIGHT:k(-i.keyPanSpeed,0),me=!0;break}me&&(H.preventDefault(),i.update())}function z(){if(b.length==1)y.set(b[0].pageX,b[0].pageY);else{const H=.5*(b[0].pageX+b[1].pageX),me=.5*(b[0].pageY+b[1].pageY);y.set(H,me)}}function de(){if(b.length==1)g.set(b[0].pageX,b[0].pageY);else{const H=.5*(b[0].pageX+b[1].pageX),me=.5*(b[0].pageY+b[1].pageY);g.set(H,me)}}function fe(){const H=b[0].pageX-b[1].pageX,me=b[0].pageY-b[1].pageY,Ge=Math.sqrt(H*H+me*me);E.set(0,Ge)}function we(){i.enableZoom&&fe(),i.enablePan&&de()}function Se(){i.enableZoom&&fe(),i.enableRotate&&z()}function Ee(H){if(b.length==1)_.set(H.pageX,H.pageY);else{const Ge=Be(H),V=.5*(H.pageX+Ge.x),Re=.5*(H.pageY+Ge.y);_.set(V,Re)}x.subVectors(_,y).multiplyScalar(i.rotateSpeed);const me=i.domElement;me&&(te(2*Math.PI*x.x/me.clientHeight),ne(2*Math.PI*x.y/me.clientHeight)),y.copy(_)}function Ue(H){if(b.length==1)S.set(H.pageX,H.pageY);else{const me=Be(H),Ge=.5*(H.pageX+me.x),V=.5*(H.pageY+me.y);S.set(Ge,V)}A.subVectors(S,g).multiplyScalar(i.panSpeed),k(A.x,A.y),g.copy(S)}function ke(H){const me=Be(H),Ge=H.pageX-me.x,V=H.pageY-me.y,Re=Math.sqrt(Ge*Ge+V*V);R.set(0,Re),C.set(0,Math.pow(R.y/E.y,i.zoomSpeed)),q(C.y),E.copy(R)}function lt(H){i.enableZoom&&ke(H),i.enablePan&&Ue(H)}function B(H){i.enableZoom&&ke(H),i.enableRotate&&Ee(H)}function D(H){var me,Ge;i.enabled!==!1&&(b.length===0&&((me=i.domElement)==null||me.ownerDocument.addEventListener("pointermove",se),(Ge=i.domElement)==null||Ge.ownerDocument.addEventListener("pointerup",xe)),Je(H),H.pointerType==="touch"?Fe(H):ye(H))}function se(H){i.enabled!==!1&&(H.pointerType==="touch"?pt(H):Ae(H))}function xe(H){var me,Ge,V;Mt(H),b.length===0&&((me=i.domElement)==null||me.releasePointerCapture(H.pointerId),(Ge=i.domElement)==null||Ge.ownerDocument.removeEventListener("pointermove",se),(V=i.domElement)==null||V.ownerDocument.removeEventListener("pointerup",xe)),i.dispatchEvent(o),c=a.NONE}function ye(H){let me;switch(H.button){case 0:me=i.mouseButtons.LEFT;break;case 1:me=i.mouseButtons.MIDDLE;break;case 2:me=i.mouseButtons.RIGHT;break;default:me=-1}switch(me){case Aa.DOLLY:if(i.enableZoom===!1)return;oe(H),c=a.DOLLY;break;case Aa.ROTATE:if(H.ctrlKey||H.metaKey||H.shiftKey){if(i.enablePan===!1)return;ve(H),c=a.PAN}else{if(i.enableRotate===!1)return;Ne(H),c=a.ROTATE}break;case Aa.PAN:if(H.ctrlKey||H.metaKey||H.shiftKey){if(i.enableRotate===!1)return;Ne(H),c=a.ROTATE}else{if(i.enablePan===!1)return;ve(H),c=a.PAN}break;default:c=a.NONE}c!==a.NONE&&i.dispatchEvent(s)}function Ae(H){if(i.enabled!==!1)switch(c){case a.ROTATE:if(i.enableRotate===!1)return;Te(H);break;case a.DOLLY:if(i.enableZoom===!1)return;Me(H);break;case a.PAN:if(i.enablePan===!1)return;nt(H);break}}function Qe(H){i.enabled===!1||i.enableZoom===!1||c!==a.NONE&&c!==a.ROTATE||(H.preventDefault(),i.dispatchEvent(s),it(H),i.dispatchEvent(o))}function Pe(H){i.enabled===!1||i.enablePan===!1||Xe(H)}function Fe(H){switch(ut(H),b.length){case 1:switch(i.touches.ONE){case Ma.ROTATE:if(i.enableRotate===!1)return;z(),c=a.TOUCH_ROTATE;break;case Ma.PAN:if(i.enablePan===!1)return;de(),c=a.TOUCH_PAN;break;default:c=a.NONE}break;case 2:switch(i.touches.TWO){case Ma.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;we(),c=a.TOUCH_DOLLY_PAN;break;case Ma.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;Se(),c=a.TOUCH_DOLLY_ROTATE;break;default:c=a.NONE}break;default:c=a.NONE}c!==a.NONE&&i.dispatchEvent(s)}function pt(H){switch(ut(H),c){case a.TOUCH_ROTATE:if(i.enableRotate===!1)return;Ee(H),i.update();break;case a.TOUCH_PAN:if(i.enablePan===!1)return;Ue(H),i.update();break;case a.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;lt(H),i.update();break;case a.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;B(H),i.update();break;default:c=a.NONE}}function Ce(H){i.enabled!==!1&&H.preventDefault()}function Je(H){b.push(H)}function Mt(H){delete N[H.pointerId];for(let me=0;me0,R=X>0,C=te>0,L=(E?1:0)+(R?1:0)+(C?1:0),L){case 0:{g.push(_[A]),g.push(_[A+1]),g.push(_[A+2]);break}case 1:{if(E&&(I=_[A+1],P=_[A+2],b=y(_[A],I,x,S),N=y(_[A],P,x,S)),R){I=_[A],P=_[A+2],b=y(_[A+1],I,x,S),N=y(_[A+1],P,x,S),g.push(b),g.push(P.clone()),g.push(I.clone()),g.push(P.clone()),g.push(b.clone()),g.push(N);break}C&&(I=_[A],P=_[A+1],b=y(_[A+2],I,x,S),N=y(_[A+2],P,x,S)),g.push(I.clone()),g.push(P.clone()),g.push(b),g.push(N),g.push(b.clone()),g.push(P.clone());break}case 2:{E||(I=_[A].clone(),P=y(I,_[A+1],x,S),b=y(I,_[A+2],x,S),g.push(I),g.push(P),g.push(b)),R||(I=_[A+1].clone(),P=y(I,_[A+2],x,S),b=y(I,_[A],x,S),g.push(I),g.push(P),g.push(b)),C||(I=_[A+2].clone(),P=y(I,_[A],x,S),b=y(I,_[A+1],x,S),g.push(I),g.push(P),g.push(b));break}}}return g}function y(_,x,g,S){const A=_.position.dot(g)-S,E=x.position.dot(g)-S,R=A/(A-E);return new Zb(new O(_.position.x+R*(x.position.x-_.position.x),_.position.y+R*(x.position.y-_.position.y),_.position.z+R*(x.position.z-_.position.z)),new O(_.normal.x+R*(x.normal.x-_.normal.x),_.normal.y+R*(x.normal.y-_.normal.y),_.normal.z+R*(x.normal.z-_.normal.z)))}}}class Zb{constructor(e,t){this.position=e,this.normal=t}clone(){return new this.constructor(this.position.clone(),this.normal.clone())}}const ky=n=>n===Object(n)&&!Array.isArray(n)&&typeof n!="function";function $1(n,e){const t=Yi(s=>s.gl),i=Mh(Zg,ky(n)?Object.values(n):n);return G.useLayoutEffect(()=>{e==null||e(i)},[e]),G.useEffect(()=>{if("initTexture"in t){let s=[];Array.isArray(i)?s=i:i instanceof $t?s=[i]:ky(i)&&(s=Object.values(i)),s.forEach(o=>{o instanceof $t&&t.initTexture(o)})}},[t,i]),G.useMemo(()=>{if(ky(n)){const s={};let o=0;for(const a in n)s[a]=i[o++];return console.log("keyed",s),s}else return i},[n,i])}$1.preload=n=>Mh.preload(Zg,n);$1.clear=n=>Mh.clear(Zg,n);function b9(n){return Array.isArray(n)}function Fy(n=[0,0,0]){return b9(n)?n:n instanceof O||n instanceof Mi?[n.x,n.y,n.z]:[n,n,n]}const C9=G.forwardRef(function({debug:e,depthTest:t=!1,polygonOffsetFactor:i=-10,map:r,mesh:s,children:o,position:a,rotation:c,scale:f,...h},d){const p=G.useRef(null);G.useImperativeHandle(d,()=>p.current);const m=G.useRef(null);return G.useLayoutEffect(()=>{const y=(s==null?void 0:s.current)||p.current.parent,_=p.current;if(!(y instanceof Sn))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');const x={position:new O,rotation:new Mi,scale:new O(1,1,1)};if(y){$r(x,{position:a,scale:f});const g=y.matrixWorld.clone();if(y.matrixWorld.identity(),!c||typeof c=="number"){const S=new Ut;S.position.copy(x.position),S.lookAt(y.position),typeof c=="number"&&S.rotateZ(c),$r(x,{rotation:S.rotation})}else $r(x,{rotation:c});return _.geometry=new T9(y,x.position,x.rotation,x.scale),m.current&&($r(m.current,x),m.current.traverse(S=>S.raycast=()=>null)),y.matrixWorld=g,()=>{_.geometry.dispose()}}},[s,...Fy(a),...Fy(f),...Fy(c)]),G.createElement("mesh",th({ref:p,"material-transparent":!0,"material-polygonOffset":!0,"material-polygonOffsetFactor":i,"material-depthTest":t,"material-map":r},h),o,e&&G.createElement("mesh",{ref:m},G.createElement("boxGeometry",null),G.createElement("meshNormalMaterial",{wireframe:!0}),G.createElement("axesHelper",null)))}),P9=G.forwardRef(({makeDefault:n,camera:e,regress:t,domElement:i,enableDamping:r=!0,keyEvents:s=!1,onChange:o,onStart:a,onEnd:c,...f},h)=>{const d=Yi(C=>C.invalidate),p=Yi(C=>C.camera),m=Yi(C=>C.gl),y=Yi(C=>C.events),_=Yi(C=>C.setEvents),x=Yi(C=>C.set),g=Yi(C=>C.get),S=Yi(C=>C.performance),A=e||p,E=i||y.connected||m.domElement,R=G.useMemo(()=>new E9(A),[A]);return K1(()=>{R.enabled&&R.update()},-1),G.useEffect(()=>(s&&R.connect(s===!0?E:s),R.connect(E),()=>void R.dispose()),[s,E,t,R,d]),G.useEffect(()=>{const C=P=>{d(),t&&S.regress(),o&&o(P)},L=P=>{a&&a(P)},I=P=>{c&&c(P)};return R.addEventListener("change",C),R.addEventListener("start",L),R.addEventListener("end",I),()=>{R.removeEventListener("start",L),R.removeEventListener("end",I),R.removeEventListener("change",C)}},[o,a,c,R,d,_]),G.useEffect(()=>{if(n){const C=g().controls;return x({controls:R}),()=>x({controls:C})}},[n,R]),G.createElement("primitive",th({ref:h,object:R,enableDamping:r},f))}),R9=G.forwardRef(({children:n,enabled:e=!0,speed:t=1,rotationIntensity:i=1,floatIntensity:r=1,floatingRange:s=[-.1,.1],...o},a)=>{const c=G.useRef(null);G.useImperativeHandle(a,()=>c.current,[]);const f=G.useRef(Math.random()*1e4);return K1(h=>{var d,p;if(!e||t===0)return;const m=f.current+h.clock.getElapsedTime();c.current.rotation.x=Math.cos(m/4*t)/8*i,c.current.rotation.y=Math.sin(m/4*t)/8*i,c.current.rotation.z=Math.sin(m/4*t)/20*i;let y=Math.sin(m/4*t)/10;y=KL.mapLinear(y,-.1,.1,(d=s==null?void 0:s[0])!==null&&d!==void 0?d:-.1,(p=s==null?void 0:s[1])!==null&&p!==void 0?p:.1),c.current.position.y=y*r,c.current.updateMatrix()}),G.createElement("group",o,G.createElement("group",{ref:c,matrixAutoUpdate:!1},n))});function L9({all:n,scene:e,camera:t}){const i=Yi(({gl:o})=>o),r=Yi(({camera:o})=>o),s=Yi(({scene:o})=>o);return G.useLayoutEffect(()=>{const o=[];n&&(e||s).traverse(f=>{f.visible===!1&&(o.push(f),f.visible=!0)}),i.compile(e||s,t||r);const a=new w1(128);new M1(.01,1e5,a).update(i,e||s),a.dispose(),o.forEach(f=>f.visible=!1)},[]),null}const I9=()=>{const{progress:n}=S9(),e={display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column"},t={fontSize:14,color:"#F1F1F1",fontWeight:800,marginTop:40};return j.jsxs(_9,{as:"div",center:!0,style:e,children:[j.jsx("span",{className:"canvas-loader"}),j.jsxs("p",{style:t,children:[n.toFixed(0),"%"]})]})},D9=n=>{const[e]=$1([n.imgUrl]);return j.jsxs(R9,{speed:1,rotationIntensity:0,floatIntensity:5,children:[j.jsx("ambientLight",{intensity:2.4}),j.jsx("directionalLight",{position:[0,0,.05]}),j.jsxs("mesh",{castShadow:!0,receiveShadow:!0,scale:2.75,children:[j.jsx("icosahedronGeometry",{args:[1,1]}),j.jsx("meshStandardMaterial",{color:"#fcd4d4",polygonOffset:!0,polygonOffsetFactor:-5,flatShading:!0}),j.jsx(C9,{position:[0,0,1],rotation:[2*Math.PI,0,6.25],scale:1,map:e,flatShading:!0})]})]})},N9=({icon:n})=>j.jsxs(u9,{frameloop:"demand",dpr:[1,2],gl:{preserveDrawingBuffer:!0},children:[j.jsxs(G.Suspense,{fallback:j.jsx(I9,{}),children:[j.jsx(P9,{enableZoom:!1}),j.jsx(D9,{imgUrl:n})]}),j.jsx(L9,{all:!0})]}),U9="/portfolio-react-threejs/assets/texture-5adaf7bf.webp",O9=()=>j.jsxs("section",{className:"xl:mt-6 flex flex-row flex-wrap justify-center items-center gap-10",children:[j.jsxs(Nn.div,{variants:Vc(),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Skills & Technologies."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"What have i learnd?"})]}),j.jsx("div",{className:"w-full lg:w-[400px] lg:h-[400px] ",children:j.jsx(N9,{icon:U9})},"skillsBall")]}),k9=rl(O9,"TechSkillsSection"),F9="/portfolio-react-threejs/assets/cover_img-d3ab652c.png",Kb="/portfolio-react-threejs/assets/resume-24caeb09.pdf",B9=()=>{const[n,e]=G.useState(!1),t=()=>e(!0),i=()=>e(!1),r=()=>{const s=document.createElement("a");s.href=Kb,s.download="Satyam_Mishra_Resume",s.click()};return j.jsxs("section",{className:"-m-5 md:-m-10 max-w-screen-xl mx-auto my-10 space-y-10 max",children:[j.jsxs(Nn.div,{variants:Vc(0),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Resume."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"Here's my Resume😁"})]}),j.jsx(Nn.div,{variants:il("right","spring",.5*0,.75),className:"md:flex justify-center items-center",children:j.jsxs(_g,{options:{max:45,scale:1,speed:450},className:"group bg-white shadow-[#fcd4d4] shadow-card rounded-2xl mx-auto w-[90%] md:min-w-1/3 md:max-w-3xl h-full",children:[j.jsx("div",{className:"group-hover:opacity-100 relative w-full h-full mb-5",children:j.jsx("img",{src:F9,loading:"lazy",alt:"Resume cover image",className:"w-full h-full object-cover rounded-2xl"})}),j.jsxs("div",{className:" flex items-center space-x-5 md:space-y-5 justify-center md:absolute md:top-10 md:-right-10 md:bottom-0 md:flex md:flex-col md:items-center md:justify-center transition-opacity duration-300",children:[j.jsx("button",{className:"bg-blue-600 text-white hover:text-white-100 hover:bg-blue-800 py-2 px-3 rounded-xl text-[15px] font-medium cursor-pointer mb-2 md:mb-0",onClick:r,children:"Download"}),j.jsx("button",{className:"bg-green-600 text-white hover:text-white-100 hover:bg-green-800 py-2 px-3 rounded-xl text-[15px] font-medium cursor-pointer mb-2 md:mb-0",onClick:t,children:"View"})]})]})}),n&&j.jsx("div",{className:"fixed inset-0 z-50 overflow-auto -top-10 bg-black bg-opacity-60 flex items-center justify-center",children:j.jsxs("div",{className:"bg-white p-2 rounded-2xl max-w-screen-lg w-[70%] relative",children:[j.jsx("button",{className:"absolute -top-12 right-0 md:top-2 md:-right-20 bg-black hover:bg-gray-800 py-2 px-3 rounded-xl text-white hover:text-gray-200",onClick:i,children:"Close"}),j.jsx("iframe",{title:"PDF Viewer",src:Kb,className:"w-full h-[400px]"})]})})]})},z9=rl(B9,"ResumeSection"),V9="data:image/webp;base64,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",H9="/portfolio-react-threejs/assets/appstore-0b8f390b.png",G9="/portfolio-react-threejs/assets/colab-9e4861eb.png",W9="/portfolio-react-threejs/assets/huggingface-720eadc9.png",Jb="/portfolio-react-threejs/assets/website-078d1216.gif",j9=({index:n,name:e,description:t,tags:i,image:r,source_code_link:s,date:o})=>j.jsx(_g,{className:"sm:w-[360px] w-full",children:j.jsx(Nn.div,{variants:il("right","spring",.5*n,.75),className:"shadow-[#fcd4d4] green-pink-gradient shadow-card p-[1px] rounded-2xl ",children:j.jsxs("div",{className:"bg-primary rounded-2xl py-5 px-8",options:{max:45,scale:1,speed:450},children:[j.jsxs("div",{className:"relative w-full h-[230px]",children:[j.jsx("img",{src:r,alt:"project_image",className:"w-full h-full object-cover rounded-2xl"}),j.jsx("div",{className:"absolute inset-0 z-10 space-y-3 flex-col justify-end m-3 card-img_hover",children:Object.entries(s).map(([a,c])=>j.jsx("div",{onClick:()=>window.open(c,"_blank"),className:"border-black border-2 white-gradient w-10 h-10 rounded-full flex justify-center items-center cursor-pointer",title:a==="Github"?"View in GitHub":a==="Appstore"?"View in App Store":a==="Colab"?"View in Google Colab":a==="Huggingface"?"View in Hugging Face":a==="Live"?"View Live Website":"View Now",children:j.jsx("img",{src:a==="Github"?V9:a==="Appstore"?H9:a==="Colab"?G9:a==="Huggingface"?W9:Jb,alt:`${a} link`,className:"w-1/2 h-1/2 object-contain"})},a))})]}),j.jsxs("div",{className:"mt-5",children:[j.jsx("h3",{className:"text-black font-bold text-[24px]",children:e}),j.jsx("p",{className:"mt-2 text-secondary text-[14px]",children:t})]}),j.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[i.map(a=>j.jsxs("p",{className:`text-[14px] ${a.color}`,children:["#",a.name," "]},`${e}-${a.name}`))," "]}),j.jsx("p",{children:o})]})})}),X9=()=>j.jsxs("section",{className:"-m-5 md:-m-10 ",children:[j.jsxs(Nn.div,{variants:Vc(0),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Projects."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"My works? Here they are."})]}),j.jsxs("div",{className:" mt-20 grid md:grid-cols-2 lg:grid-cols-3 gap-5",children:[zz.map((n,e)=>j.jsx(j9,{index:e,...n},`project-${e}`))," "]})]}),Y9=rl(X9,"ProjectsSection"),q9=({index:n,name:e,date:t,img:i,link:r})=>j.jsx("div",{children:j.jsx(Nn.div,{variants:il("right","spring",.5*n,.75),children:j.jsx(_g,{options:{max:45,scale:1,speed:450},className:"bg-white shadow-[#fcd4d4] shadow-card p-5 rounded-2xl sm:w-[360px] w-full",children:j.jsxs("a",{href:r,target:"_blank",children:[j.jsx("div",{className:"relative w-full ",children:j.jsx("img",{src:i,placeholder:e,loading:"lazy",alt:`${e} cover image`,className:"w-full h-full object-cover rounded-2xl"})}),j.jsx("p",{className:"mt-3 text-left",children:t}),j.jsx("h3",{className:"text-black font-bold text-[24px] text-center",children:e})]})})})});function Z9(){return j.jsxs("div",{className:"my-10",children:[j.jsxs("div",{children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Blogs."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"Blogs written by me"})]}),j.jsx("div",{className:"my-20 flex flex-wrap justify-center mx-auto space-x-5 gap-5 w-full",children:Vz.map((n,e)=>j.jsx(q9,{index:e,...n},`blog-${e}`))})]})}const K9=rl(Z9,"BlogsSections");function J9(){return j.jsxs("div",{className:"bg-gradient-to-b from-white to-primary",children:[j.jsx(A4,{}),j.jsx(d4,{}),j.jsx(k9,{}),j.jsx(z9,{}),j.jsx(Y9,{}),j.jsx(K9,{}),j.jsx(y4,{})]})}By.createRoot(document.getElementById("root")).render(j.jsx(Km.StrictMode,{children:j.jsx(J9,{})})); + `}),[h]);return G.createElement("group",th({},C,{ref:le}),d&&!ve&&G.createElement("mesh",{castShadow:m,receiveShadow:y,ref:Ne},x||G.createElement("planeGeometry",null),_||G.createElement("shaderMaterial",{side:Dr,vertexShader:it.vertexShader,fragmentShader:it.fragmentShader})))});let Bu=0;const S9=a3(n=>(gc.onStart=(e,t,i)=>{n({active:!0,item:e,loaded:t,total:i,progress:(t-Bu)/(i-Bu)*100})},gc.onLoad=()=>{n({active:!1})},gc.onError=e=>n(t=>({errors:[...t.errors,e]})),gc.onProgress=(e,t,i)=>{t===i&&(Bu=i),n({active:!0,item:e,loaded:t,total:i,progress:(t-Bu)/(i-Bu)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}));var A9=Object.defineProperty,M9=(n,e,t)=>e in n?A9(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,dt=(n,e,t)=>(M9(n,typeof e!="symbol"?e+"":e,t),t);const Bp=new sl,Yb=new Ts,w9=Math.cos(70*(Math.PI/180)),qb=(n,e)=>(n%e+e)%e;let E9=class extends cs{constructor(e,t){super(),dt(this,"object"),dt(this,"domElement"),dt(this,"enabled",!0),dt(this,"target",new O),dt(this,"minDistance",0),dt(this,"maxDistance",1/0),dt(this,"minZoom",0),dt(this,"maxZoom",1/0),dt(this,"minPolarAngle",0),dt(this,"maxPolarAngle",Math.PI),dt(this,"minAzimuthAngle",-1/0),dt(this,"maxAzimuthAngle",1/0),dt(this,"enableDamping",!1),dt(this,"dampingFactor",.05),dt(this,"enableZoom",!0),dt(this,"zoomSpeed",1),dt(this,"enableRotate",!0),dt(this,"rotateSpeed",1),dt(this,"enablePan",!0),dt(this,"panSpeed",1),dt(this,"screenSpacePanning",!0),dt(this,"keyPanSpeed",7),dt(this,"zoomToCursor",!1),dt(this,"autoRotate",!1),dt(this,"autoRotateSpeed",2),dt(this,"reverseOrbit",!1),dt(this,"reverseHorizontalOrbit",!1),dt(this,"reverseVerticalOrbit",!1),dt(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),dt(this,"mouseButtons",{LEFT:Aa.ROTATE,MIDDLE:Aa.DOLLY,RIGHT:Aa.PAN}),dt(this,"touches",{ONE:Ma.ROTATE,TWO:Ma.DOLLY_PAN}),dt(this,"target0"),dt(this,"position0"),dt(this,"zoom0"),dt(this,"_domElementKeyEvents",null),dt(this,"getPolarAngle"),dt(this,"getAzimuthalAngle"),dt(this,"setPolarAngle"),dt(this,"setAzimuthalAngle"),dt(this,"getDistance"),dt(this,"listenToKeyEvents"),dt(this,"stopListenToKeyEvents"),dt(this,"saveState"),dt(this,"reset"),dt(this,"update"),dt(this,"connect"),dt(this,"dispose"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>h.phi,this.getAzimuthalAngle=()=>h.theta,this.setPolarAngle=H=>{let me=qb(H,2*Math.PI),Ge=h.phi;Ge<0&&(Ge+=2*Math.PI),me<0&&(me+=2*Math.PI);let V=Math.abs(me-Ge);2*Math.PI-V{let me=qb(H,2*Math.PI),Ge=h.theta;Ge<0&&(Ge+=2*Math.PI),me<0&&(me+=2*Math.PI);let V=Math.abs(me-Ge);2*Math.PI-Vi.object.position.distanceTo(i.target),this.listenToKeyEvents=H=>{H.addEventListener("keydown",Pe),this._domElementKeyEvents=H},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",Pe),this._domElementKeyEvents=null},this.saveState=()=>{i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=()=>{i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(r),i.update(),c=a.NONE},this.update=(()=>{const H=new O,me=new O(0,1,0),Ge=new ai().setFromUnitVectors(e.up,me),V=Ge.clone().invert(),Re=new O,he=new ai,ge=2*Math.PI;return function(){const ft=i.object.position;Ge.setFromUnitVectors(e.up,me),V.copy(Ge).invert(),H.copy(ft).sub(i.target),H.applyQuaternion(Ge),h.setFromVector3(H),i.autoRotate&&c===a.NONE&&te(W()),i.enableDamping?(h.theta+=d.theta*i.dampingFactor,h.phi+=d.phi*i.dampingFactor):(h.theta+=d.theta,h.phi+=d.phi);let mt=i.minAzimuthAngle,Rt=i.maxAzimuthAngle;isFinite(mt)&&isFinite(Rt)&&(mt<-Math.PI?mt+=ge:mt>Math.PI&&(mt-=ge),Rt<-Math.PI?Rt+=ge:Rt>Math.PI&&(Rt-=ge),mt<=Rt?h.theta=Math.max(mt,Math.min(Rt,h.theta)):h.theta=h.theta>(mt+Rt)/2?Math.max(mt,h.theta):Math.min(Rt,h.theta)),h.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,h.phi)),h.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(m,i.dampingFactor):i.target.add(m),i.zoomToCursor&&P||i.object.isOrthographicCamera?h.radius=_e(h.radius):h.radius=_e(h.radius*p),H.setFromSpherical(h),H.applyQuaternion(V),ft.copy(i.target).add(H),i.object.matrixAutoUpdate||i.object.updateMatrix(),i.object.lookAt(i.target),i.enableDamping===!0?(d.theta*=1-i.dampingFactor,d.phi*=1-i.dampingFactor,m.multiplyScalar(1-i.dampingFactor)):(d.set(0,0,0),m.set(0,0,0));let Wt=!1;if(i.zoomToCursor&&P){let bt=null;if(i.object instanceof sn&&i.object.isPerspectiveCamera){const Pn=H.length();bt=_e(Pn*p);const kn=Pn-bt;i.object.position.addScaledVector(L,kn),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){const Pn=new O(I.x,I.y,0);Pn.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/p)),i.object.updateProjectionMatrix(),Wt=!0;const kn=new O(I.x,I.y,0);kn.unproject(i.object),i.object.position.sub(kn).add(Pn),i.object.updateMatrixWorld(),bt=H.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;bt!==null&&(i.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(bt).add(i.object.position):(Bp.origin.copy(i.object.position),Bp.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(Bp.direction))f||8*(1-he.dot(i.object.quaternion))>f?(i.dispatchEvent(r),Re.copy(i.object.position),he.copy(i.object.quaternion),Wt=!1,!0):!1}})(),this.connect=H=>{H===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),i.domElement=H,i.domElement.style.touchAction="none",i.domElement.addEventListener("contextmenu",Ce),i.domElement.addEventListener("pointerdown",D),i.domElement.addEventListener("pointercancel",xe),i.domElement.addEventListener("wheel",Qe)},this.dispose=()=>{var H,me,Ge,V,Re,he;i.domElement&&(i.domElement.style.touchAction="auto"),(H=i.domElement)==null||H.removeEventListener("contextmenu",Ce),(me=i.domElement)==null||me.removeEventListener("pointerdown",D),(Ge=i.domElement)==null||Ge.removeEventListener("pointercancel",xe),(V=i.domElement)==null||V.removeEventListener("wheel",Qe),(Re=i.domElement)==null||Re.ownerDocument.removeEventListener("pointermove",se),(he=i.domElement)==null||he.ownerDocument.removeEventListener("pointerup",xe),i._domElementKeyEvents!==null&&i._domElementKeyEvents.removeEventListener("keydown",Pe)};const i=this,r={type:"change"},s={type:"start"},o={type:"end"},a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let c=a.NONE;const f=1e-6,h=new U_,d=new U_;let p=1;const m=new O,y=new pe,_=new pe,x=new pe,g=new pe,S=new pe,A=new pe,E=new pe,R=new pe,C=new pe,L=new O,I=new pe;let P=!1;const b=[],N={};function W(){return 2*Math.PI/60/60*i.autoRotateSpeed}function X(){return Math.pow(.95,i.zoomSpeed)}function te(H){i.reverseOrbit||i.reverseHorizontalOrbit?d.theta+=H:d.theta-=H}function ne(H){i.reverseOrbit||i.reverseVerticalOrbit?d.phi+=H:d.phi-=H}const Q=(()=>{const H=new O;return function(Ge,V){H.setFromMatrixColumn(V,0),H.multiplyScalar(-Ge),m.add(H)}})(),le=(()=>{const H=new O;return function(Ge,V){i.screenSpacePanning===!0?H.setFromMatrixColumn(V,1):(H.setFromMatrixColumn(V,0),H.crossVectors(i.object.up,H)),H.multiplyScalar(Ge),m.add(H)}})(),k=(()=>{const H=new O;return function(Ge,V){const Re=i.domElement;if(Re&&i.object instanceof sn&&i.object.isPerspectiveCamera){const he=i.object.position;H.copy(he).sub(i.target);let ge=H.length();ge*=Math.tan(i.object.fov/2*Math.PI/180),Q(2*Ge*ge/Re.clientHeight,i.object.matrix),le(2*V*ge/Re.clientHeight,i.object.matrix)}else Re&&i.object instanceof Nr&&i.object.isOrthographicCamera?(Q(Ge*(i.object.right-i.object.left)/i.object.zoom/Re.clientWidth,i.object.matrix),le(V*(i.object.top-i.object.bottom)/i.object.zoom/Re.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}})();function q(H){i.object instanceof sn&&i.object.isPerspectiveCamera||i.object instanceof Nr&&i.object.isOrthographicCamera?p/=H:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function J(H){i.object instanceof sn&&i.object.isPerspectiveCamera||i.object instanceof Nr&&i.object.isOrthographicCamera?p*=H:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function $(H){if(!i.zoomToCursor||!i.domElement)return;P=!0;const me=i.domElement.getBoundingClientRect(),Ge=H.clientX-me.left,V=H.clientY-me.top,Re=me.width,he=me.height;I.x=Ge/Re*2-1,I.y=-(V/he)*2+1,L.set(I.x,I.y,1).unproject(i.object).sub(i.object.position).normalize()}function _e(H){return Math.max(i.minDistance,Math.min(i.maxDistance,H))}function Ne(H){y.set(H.clientX,H.clientY)}function oe(H){$(H),E.set(H.clientX,H.clientY)}function ve(H){g.set(H.clientX,H.clientY)}function Te(H){_.set(H.clientX,H.clientY),x.subVectors(_,y).multiplyScalar(i.rotateSpeed);const me=i.domElement;me&&(te(2*Math.PI*x.x/me.clientHeight),ne(2*Math.PI*x.y/me.clientHeight)),y.copy(_),i.update()}function Me(H){R.set(H.clientX,H.clientY),C.subVectors(R,E),C.y>0?q(X()):C.y<0&&J(X()),E.copy(R),i.update()}function nt(H){S.set(H.clientX,H.clientY),A.subVectors(S,g).multiplyScalar(i.panSpeed),k(A.x,A.y),g.copy(S),i.update()}function it(H){$(H),H.deltaY<0?J(X()):H.deltaY>0&&q(X()),i.update()}function Xe(H){let me=!1;switch(H.code){case i.keys.UP:k(0,i.keyPanSpeed),me=!0;break;case i.keys.BOTTOM:k(0,-i.keyPanSpeed),me=!0;break;case i.keys.LEFT:k(i.keyPanSpeed,0),me=!0;break;case i.keys.RIGHT:k(-i.keyPanSpeed,0),me=!0;break}me&&(H.preventDefault(),i.update())}function z(){if(b.length==1)y.set(b[0].pageX,b[0].pageY);else{const H=.5*(b[0].pageX+b[1].pageX),me=.5*(b[0].pageY+b[1].pageY);y.set(H,me)}}function de(){if(b.length==1)g.set(b[0].pageX,b[0].pageY);else{const H=.5*(b[0].pageX+b[1].pageX),me=.5*(b[0].pageY+b[1].pageY);g.set(H,me)}}function fe(){const H=b[0].pageX-b[1].pageX,me=b[0].pageY-b[1].pageY,Ge=Math.sqrt(H*H+me*me);E.set(0,Ge)}function we(){i.enableZoom&&fe(),i.enablePan&&de()}function Se(){i.enableZoom&&fe(),i.enableRotate&&z()}function Ee(H){if(b.length==1)_.set(H.pageX,H.pageY);else{const Ge=Be(H),V=.5*(H.pageX+Ge.x),Re=.5*(H.pageY+Ge.y);_.set(V,Re)}x.subVectors(_,y).multiplyScalar(i.rotateSpeed);const me=i.domElement;me&&(te(2*Math.PI*x.x/me.clientHeight),ne(2*Math.PI*x.y/me.clientHeight)),y.copy(_)}function Ue(H){if(b.length==1)S.set(H.pageX,H.pageY);else{const me=Be(H),Ge=.5*(H.pageX+me.x),V=.5*(H.pageY+me.y);S.set(Ge,V)}A.subVectors(S,g).multiplyScalar(i.panSpeed),k(A.x,A.y),g.copy(S)}function ke(H){const me=Be(H),Ge=H.pageX-me.x,V=H.pageY-me.y,Re=Math.sqrt(Ge*Ge+V*V);R.set(0,Re),C.set(0,Math.pow(R.y/E.y,i.zoomSpeed)),q(C.y),E.copy(R)}function lt(H){i.enableZoom&&ke(H),i.enablePan&&Ue(H)}function B(H){i.enableZoom&&ke(H),i.enableRotate&&Ee(H)}function D(H){var me,Ge;i.enabled!==!1&&(b.length===0&&((me=i.domElement)==null||me.ownerDocument.addEventListener("pointermove",se),(Ge=i.domElement)==null||Ge.ownerDocument.addEventListener("pointerup",xe)),Je(H),H.pointerType==="touch"?Fe(H):ye(H))}function se(H){i.enabled!==!1&&(H.pointerType==="touch"?pt(H):Ae(H))}function xe(H){var me,Ge,V;Mt(H),b.length===0&&((me=i.domElement)==null||me.releasePointerCapture(H.pointerId),(Ge=i.domElement)==null||Ge.ownerDocument.removeEventListener("pointermove",se),(V=i.domElement)==null||V.ownerDocument.removeEventListener("pointerup",xe)),i.dispatchEvent(o),c=a.NONE}function ye(H){let me;switch(H.button){case 0:me=i.mouseButtons.LEFT;break;case 1:me=i.mouseButtons.MIDDLE;break;case 2:me=i.mouseButtons.RIGHT;break;default:me=-1}switch(me){case Aa.DOLLY:if(i.enableZoom===!1)return;oe(H),c=a.DOLLY;break;case Aa.ROTATE:if(H.ctrlKey||H.metaKey||H.shiftKey){if(i.enablePan===!1)return;ve(H),c=a.PAN}else{if(i.enableRotate===!1)return;Ne(H),c=a.ROTATE}break;case Aa.PAN:if(H.ctrlKey||H.metaKey||H.shiftKey){if(i.enableRotate===!1)return;Ne(H),c=a.ROTATE}else{if(i.enablePan===!1)return;ve(H),c=a.PAN}break;default:c=a.NONE}c!==a.NONE&&i.dispatchEvent(s)}function Ae(H){if(i.enabled!==!1)switch(c){case a.ROTATE:if(i.enableRotate===!1)return;Te(H);break;case a.DOLLY:if(i.enableZoom===!1)return;Me(H);break;case a.PAN:if(i.enablePan===!1)return;nt(H);break}}function Qe(H){i.enabled===!1||i.enableZoom===!1||c!==a.NONE&&c!==a.ROTATE||(H.preventDefault(),i.dispatchEvent(s),it(H),i.dispatchEvent(o))}function Pe(H){i.enabled===!1||i.enablePan===!1||Xe(H)}function Fe(H){switch(ut(H),b.length){case 1:switch(i.touches.ONE){case Ma.ROTATE:if(i.enableRotate===!1)return;z(),c=a.TOUCH_ROTATE;break;case Ma.PAN:if(i.enablePan===!1)return;de(),c=a.TOUCH_PAN;break;default:c=a.NONE}break;case 2:switch(i.touches.TWO){case Ma.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;we(),c=a.TOUCH_DOLLY_PAN;break;case Ma.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;Se(),c=a.TOUCH_DOLLY_ROTATE;break;default:c=a.NONE}break;default:c=a.NONE}c!==a.NONE&&i.dispatchEvent(s)}function pt(H){switch(ut(H),c){case a.TOUCH_ROTATE:if(i.enableRotate===!1)return;Ee(H),i.update();break;case a.TOUCH_PAN:if(i.enablePan===!1)return;Ue(H),i.update();break;case a.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;lt(H),i.update();break;case a.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;B(H),i.update();break;default:c=a.NONE}}function Ce(H){i.enabled!==!1&&H.preventDefault()}function Je(H){b.push(H)}function Mt(H){delete N[H.pointerId];for(let me=0;me0,R=X>0,C=te>0,L=(E?1:0)+(R?1:0)+(C?1:0),L){case 0:{g.push(_[A]),g.push(_[A+1]),g.push(_[A+2]);break}case 1:{if(E&&(I=_[A+1],P=_[A+2],b=y(_[A],I,x,S),N=y(_[A],P,x,S)),R){I=_[A],P=_[A+2],b=y(_[A+1],I,x,S),N=y(_[A+1],P,x,S),g.push(b),g.push(P.clone()),g.push(I.clone()),g.push(P.clone()),g.push(b.clone()),g.push(N);break}C&&(I=_[A],P=_[A+1],b=y(_[A+2],I,x,S),N=y(_[A+2],P,x,S)),g.push(I.clone()),g.push(P.clone()),g.push(b),g.push(N),g.push(b.clone()),g.push(P.clone());break}case 2:{E||(I=_[A].clone(),P=y(I,_[A+1],x,S),b=y(I,_[A+2],x,S),g.push(I),g.push(P),g.push(b)),R||(I=_[A+1].clone(),P=y(I,_[A+2],x,S),b=y(I,_[A],x,S),g.push(I),g.push(P),g.push(b)),C||(I=_[A+2].clone(),P=y(I,_[A],x,S),b=y(I,_[A+1],x,S),g.push(I),g.push(P),g.push(b));break}}}return g}function y(_,x,g,S){const A=_.position.dot(g)-S,E=x.position.dot(g)-S,R=A/(A-E);return new Zb(new O(_.position.x+R*(x.position.x-_.position.x),_.position.y+R*(x.position.y-_.position.y),_.position.z+R*(x.position.z-_.position.z)),new O(_.normal.x+R*(x.normal.x-_.normal.x),_.normal.y+R*(x.normal.y-_.normal.y),_.normal.z+R*(x.normal.z-_.normal.z)))}}}class Zb{constructor(e,t){this.position=e,this.normal=t}clone(){return new this.constructor(this.position.clone(),this.normal.clone())}}const ky=n=>n===Object(n)&&!Array.isArray(n)&&typeof n!="function";function $1(n,e){const t=Yi(s=>s.gl),i=Mh(Zg,ky(n)?Object.values(n):n);return G.useLayoutEffect(()=>{e==null||e(i)},[e]),G.useEffect(()=>{if("initTexture"in t){let s=[];Array.isArray(i)?s=i:i instanceof $t?s=[i]:ky(i)&&(s=Object.values(i)),s.forEach(o=>{o instanceof $t&&t.initTexture(o)})}},[t,i]),G.useMemo(()=>{if(ky(n)){const s={};let o=0;for(const a in n)s[a]=i[o++];return console.log("keyed",s),s}else return i},[n,i])}$1.preload=n=>Mh.preload(Zg,n);$1.clear=n=>Mh.clear(Zg,n);function b9(n){return Array.isArray(n)}function Fy(n=[0,0,0]){return b9(n)?n:n instanceof O||n instanceof Mi?[n.x,n.y,n.z]:[n,n,n]}const C9=G.forwardRef(function({debug:e,depthTest:t=!1,polygonOffsetFactor:i=-10,map:r,mesh:s,children:o,position:a,rotation:c,scale:f,...h},d){const p=G.useRef(null);G.useImperativeHandle(d,()=>p.current);const m=G.useRef(null);return G.useLayoutEffect(()=>{const y=(s==null?void 0:s.current)||p.current.parent,_=p.current;if(!(y instanceof Sn))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');const x={position:new O,rotation:new Mi,scale:new O(1,1,1)};if(y){$r(x,{position:a,scale:f});const g=y.matrixWorld.clone();if(y.matrixWorld.identity(),!c||typeof c=="number"){const S=new Ut;S.position.copy(x.position),S.lookAt(y.position),typeof c=="number"&&S.rotateZ(c),$r(x,{rotation:S.rotation})}else $r(x,{rotation:c});return _.geometry=new T9(y,x.position,x.rotation,x.scale),m.current&&($r(m.current,x),m.current.traverse(S=>S.raycast=()=>null)),y.matrixWorld=g,()=>{_.geometry.dispose()}}},[s,...Fy(a),...Fy(f),...Fy(c)]),G.createElement("mesh",th({ref:p,"material-transparent":!0,"material-polygonOffset":!0,"material-polygonOffsetFactor":i,"material-depthTest":t,"material-map":r},h),o,e&&G.createElement("mesh",{ref:m},G.createElement("boxGeometry",null),G.createElement("meshNormalMaterial",{wireframe:!0}),G.createElement("axesHelper",null)))}),P9=G.forwardRef(({makeDefault:n,camera:e,regress:t,domElement:i,enableDamping:r=!0,keyEvents:s=!1,onChange:o,onStart:a,onEnd:c,...f},h)=>{const d=Yi(C=>C.invalidate),p=Yi(C=>C.camera),m=Yi(C=>C.gl),y=Yi(C=>C.events),_=Yi(C=>C.setEvents),x=Yi(C=>C.set),g=Yi(C=>C.get),S=Yi(C=>C.performance),A=e||p,E=i||y.connected||m.domElement,R=G.useMemo(()=>new E9(A),[A]);return K1(()=>{R.enabled&&R.update()},-1),G.useEffect(()=>(s&&R.connect(s===!0?E:s),R.connect(E),()=>void R.dispose()),[s,E,t,R,d]),G.useEffect(()=>{const C=P=>{d(),t&&S.regress(),o&&o(P)},L=P=>{a&&a(P)},I=P=>{c&&c(P)};return R.addEventListener("change",C),R.addEventListener("start",L),R.addEventListener("end",I),()=>{R.removeEventListener("start",L),R.removeEventListener("end",I),R.removeEventListener("change",C)}},[o,a,c,R,d,_]),G.useEffect(()=>{if(n){const C=g().controls;return x({controls:R}),()=>x({controls:C})}},[n,R]),G.createElement("primitive",th({ref:h,object:R,enableDamping:r},f))}),R9=G.forwardRef(({children:n,enabled:e=!0,speed:t=1,rotationIntensity:i=1,floatIntensity:r=1,floatingRange:s=[-.1,.1],...o},a)=>{const c=G.useRef(null);G.useImperativeHandle(a,()=>c.current,[]);const f=G.useRef(Math.random()*1e4);return K1(h=>{var d,p;if(!e||t===0)return;const m=f.current+h.clock.getElapsedTime();c.current.rotation.x=Math.cos(m/4*t)/8*i,c.current.rotation.y=Math.sin(m/4*t)/8*i,c.current.rotation.z=Math.sin(m/4*t)/20*i;let y=Math.sin(m/4*t)/10;y=KL.mapLinear(y,-.1,.1,(d=s==null?void 0:s[0])!==null&&d!==void 0?d:-.1,(p=s==null?void 0:s[1])!==null&&p!==void 0?p:.1),c.current.position.y=y*r,c.current.updateMatrix()}),G.createElement("group",o,G.createElement("group",{ref:c,matrixAutoUpdate:!1},n))});function L9({all:n,scene:e,camera:t}){const i=Yi(({gl:o})=>o),r=Yi(({camera:o})=>o),s=Yi(({scene:o})=>o);return G.useLayoutEffect(()=>{const o=[];n&&(e||s).traverse(f=>{f.visible===!1&&(o.push(f),f.visible=!0)}),i.compile(e||s,t||r);const a=new w1(128);new M1(.01,1e5,a).update(i,e||s),a.dispose(),o.forEach(f=>f.visible=!1)},[]),null}const I9=()=>{const{progress:n}=S9(),e={display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column"},t={fontSize:14,color:"#F1F1F1",fontWeight:800,marginTop:40};return j.jsxs(_9,{as:"div",center:!0,style:e,children:[j.jsx("span",{className:"canvas-loader"}),j.jsxs("p",{style:t,children:[n.toFixed(0),"%"]})]})},D9=n=>{const[e]=$1([n.imgUrl]);return j.jsxs(R9,{speed:1,rotationIntensity:0,floatIntensity:5,children:[j.jsx("ambientLight",{intensity:2.4}),j.jsx("directionalLight",{position:[0,0,.05]}),j.jsxs("mesh",{castShadow:!0,receiveShadow:!0,scale:2.75,children:[j.jsx("icosahedronGeometry",{args:[1,1]}),j.jsx("meshStandardMaterial",{color:"#fcd4d4",polygonOffset:!0,polygonOffsetFactor:-5,flatShading:!0}),j.jsx(C9,{position:[0,0,1],rotation:[2*Math.PI,0,6.25],scale:1,map:e,flatShading:!0})]})]})},N9=({icon:n})=>j.jsxs(u9,{frameloop:"demand",dpr:[1,2],gl:{preserveDrawingBuffer:!0},children:[j.jsxs(G.Suspense,{fallback:j.jsx(I9,{}),children:[j.jsx(P9,{enableZoom:!1}),j.jsx(D9,{imgUrl:n})]}),j.jsx(L9,{all:!0})]}),U9="/portfolio-react-threejs/assets/texture-5adaf7bf.webp",O9=()=>j.jsxs("section",{className:"xl:mt-6 flex flex-row flex-wrap justify-center items-center gap-10",children:[j.jsxs(Nn.div,{variants:Vc(),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Skills & Technologies."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"What have i learnd?"})]}),j.jsx("div",{className:"w-full lg:w-[400px] lg:h-[400px] ",children:j.jsx(N9,{icon:U9})},"skillsBall")]}),k9=rl(O9,"TechSkillsSection"),F9="/portfolio-react-threejs/assets/cover_img-4c0efeb6.webp",Kb="/portfolio-react-threejs/assets/resume-bb345e2c.pdf",B9=()=>{const[n,e]=G.useState(!1),t=()=>e(!0),i=()=>e(!1),r=()=>{const s=document.createElement("a");s.href=Kb,s.download="Satyam_Mishra_Resume",s.click()};return j.jsxs("section",{className:"-m-5 md:-m-10 max-w-screen-xl mx-auto my-10 space-y-10 max",children:[j.jsxs(Nn.div,{variants:Vc(0),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Resume."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"Here's my Resume😁"})]}),j.jsx(Nn.div,{variants:il("right","spring",.5*0,.75),className:"md:flex justify-center items-center",children:j.jsxs(_g,{options:{max:45,scale:1,speed:450},className:"group bg-white shadow-[#fcd4d4] shadow-card rounded-2xl mx-auto w-[90%] md:min-w-1/3 md:max-w-3xl h-full",children:[j.jsx("div",{className:"group-hover:opacity-100 relative w-full h-full mb-5",children:j.jsx("img",{src:F9,loading:"lazy",alt:"Resume cover image",className:"w-full h-full object-cover rounded-2xl"})}),j.jsxs("div",{className:"flex items-center space-x-5 md:space-y-5 justify-center md:absolute md:top-10 md:-right-10 md:bottom-0 md:flex-col md:items-center md:justify-center transition-opacity duration-300",children:[j.jsx("button",{className:"bg-blue-600 text-white hover:text-white-100 hover:bg-blue-800 py-2 px-3 rounded-xl text-[15px] font-medium cursor-pointer mb-2 md:mb-0",onClick:r,children:"Download"}),j.jsx("button",{className:"bg-green-600 text-white hover:text-white-100 hover:bg-green-800 py-2 px-3 rounded-xl text-[15px] font-medium cursor-pointer mb-2 md:mb-0",onClick:t,children:"View"})]})]})}),n&&j.jsx("div",{className:"fixed inset-0 z-50 overflow-auto -top-10 bg-black bg-opacity-60 flex items-center justify-center",children:j.jsxs("div",{className:"bg-white p-2 rounded-2xl max-w-screen-lg w-[70%] relative",children:[j.jsx("button",{className:"absolute -top-12 right-0 md:top-2 md:-right-20 bg-black hover:bg-gray-800 py-2 px-3 rounded-xl text-white hover:text-gray-200",onClick:i,children:"Close"}),j.jsx("iframe",{title:"PDF Viewer",src:Kb,className:"w-full h-[400px]"})]})})]})},z9=rl(B9,"ResumeSection"),V9="data:image/webp;base64,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",H9="/portfolio-react-threejs/assets/appstore-0b8f390b.png",G9="/portfolio-react-threejs/assets/colab-9e4861eb.png",W9="/portfolio-react-threejs/assets/huggingface-720eadc9.png",Jb="/portfolio-react-threejs/assets/website-078d1216.gif",j9=({index:n,name:e,description:t,tags:i,image:r,source_code_link:s,date:o})=>j.jsx(_g,{className:"sm:w-[360px] w-full",children:j.jsx(Nn.div,{variants:il("right","spring",.5*n,.75),className:"shadow-[#fcd4d4] green-pink-gradient shadow-card p-[1px] rounded-2xl ",children:j.jsxs("div",{className:"bg-primary rounded-2xl py-5 px-8",options:{max:45,scale:1,speed:450},children:[j.jsxs("div",{className:"relative w-full h-[230px]",children:[j.jsx("img",{src:r,alt:"project_image",className:"w-full h-full object-cover rounded-2xl"}),j.jsx("div",{className:"absolute inset-0 z-10 space-y-3 flex-col justify-end m-3 card-img_hover",children:Object.entries(s).map(([a,c])=>j.jsx("div",{onClick:()=>window.open(c,"_blank"),className:"border-black border-2 white-gradient w-10 h-10 rounded-full flex justify-center items-center cursor-pointer",title:a==="Github"?"View in GitHub":a==="Appstore"?"View in App Store":a==="Colab"?"View in Google Colab":a==="Huggingface"?"View in Hugging Face":a==="Live"?"View Live Website":"View Now",children:j.jsx("img",{src:a==="Github"?V9:a==="Appstore"?H9:a==="Colab"?G9:a==="Huggingface"?W9:Jb,alt:`${a} link`,className:"w-1/2 h-1/2 object-contain"})},a))})]}),j.jsxs("div",{className:"mt-5",children:[j.jsx("h3",{className:"text-black font-bold text-[24px]",children:e}),j.jsx("p",{className:"mt-2 text-secondary text-[14px]",children:t})]}),j.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[i.map(a=>j.jsxs("p",{className:`text-[14px] ${a.color}`,children:["#",a.name," "]},`${e}-${a.name}`))," "]}),j.jsx("p",{children:o})]})})}),X9=()=>j.jsxs("section",{className:"-m-5 md:-m-10 ",children:[j.jsxs(Nn.div,{variants:Vc(0),children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Projects."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"My works? Here they are."})]}),j.jsxs("div",{className:" mt-20 grid md:grid-cols-2 lg:grid-cols-3 gap-5",children:[zz.map((n,e)=>j.jsx(j9,{index:e,...n},`project-${e}`))," "]})]}),Y9=rl(X9,"ProjectsSection"),q9=({index:n,name:e,date:t,img:i,link:r})=>j.jsx("div",{children:j.jsx(Nn.div,{variants:il("right","spring",.5*n,.75),children:j.jsx(_g,{options:{max:45,scale:1,speed:450},className:"bg-white shadow-[#fcd4d4] shadow-card p-5 rounded-2xl sm:w-[360px] w-full",children:j.jsxs("a",{href:r,target:"_blank",children:[j.jsx("div",{className:"relative w-full ",children:j.jsx("img",{src:i,placeholder:e,loading:"lazy",alt:`${e} cover image`,className:"w-full h-full object-cover rounded-2xl"})}),j.jsx("p",{className:"mt-3 text-left",children:t}),j.jsx("h3",{className:"text-black font-bold text-[24px] text-center",children:e})]})})})});function Z9(){return j.jsxs("div",{className:"my-10",children:[j.jsxs("div",{children:[j.jsx("h2",{className:`${vn.sectionHeadText} text-center`,children:"Blogs."}),j.jsx("p",{className:`${vn.sectionSubText} text-center`,children:"Blogs written by me"})]}),j.jsx("div",{className:"my-20 flex flex-wrap justify-center mx-auto space-x-5 gap-5 w-full",children:Vz.map((n,e)=>j.jsx(q9,{index:e,...n},`blog-${e}`))})]})}const K9=rl(Z9,"BlogsSections");function J9(){return j.jsxs("div",{className:"bg-gradient-to-b from-white to-primary",children:[j.jsx(A4,{}),j.jsx(d4,{}),j.jsx(k9,{}),j.jsx(z9,{}),j.jsx(Y9,{}),j.jsx(K9,{}),j.jsx(y4,{})]})}By.createRoot(document.getElementById("root")).render(j.jsx(Km.StrictMode,{children:j.jsx(J9,{})})); diff --git a/assets/resume-24caeb09.pdf b/assets/resume-24caeb09.pdf deleted file mode 100644 index 995edfa..0000000 Binary files a/assets/resume-24caeb09.pdf and /dev/null differ diff --git a/assets/resume-bb345e2c.pdf b/assets/resume-bb345e2c.pdf new file mode 100644 index 0000000..8452bd9 Binary files /dev/null and b/assets/resume-bb345e2c.pdf differ diff --git a/index.html b/index.html index da272a9..f260e55 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@ gtag("config", "G-7KPH635EWM"); - +