1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7452],{6439:(e,t,r)=>{r.d(t,{Dz:()=>c,an:()=>u,bW:()=>d,gb:()=>i});var a=r(5704);let n="https://api.mrobles.work/api/v1",s=a.env.BLOG_DIRECT_URL||"https://mroblesbackendapi-production.up.railway.app/api/v1";async function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,a=0;for(;a<=r;)try{return await fetch(e,t)}catch(t){if(a>=r)throw t;let e=1e3*Math.pow(2,++a-1);await new Promise(t=>setTimeout(t,e))}throw Error("Unreachable")}function o(e){var t,r,a;return{id:e.id,title:e.title,slug:e.slug,brief:e.excerpt||e.brief||"",excerpt:e.excerpt||e.brief||"",content:e.content||"",url:"/blog/".concat(e.slug),coverImage:(null==(t=e.coverImage)?void 0:t.url)?{url:e.coverImage.url}:null,publishedAt:e.publishedAt||e.createdAt||new Date().toISOString(),updatedAt:e.updatedAt,authorName:e.authorName,category:e.category,readTime:e.readTime,tags:Array.isArray(e.tags)?e.tags.map(e=>"string"==typeof e?{name:e}:e):[],status:e.status||"published",seriesId:null!=(r=e.seriesId)?r:null,seriesOrder:null!=(a=e.seriesOrder)?a:null}}let i=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,r=arguments.length>2?arguments[2]:void 0;try{var a,s,i,c;let d=new URLSearchParams;d.set("page",e.toString()),d.set("limit",t.toString()),d.set("status","published"),(null==r?void 0:r.category)&&d.set("category",r.category),(null==r?void 0:r.search)&&d.set("search",r.search),(null==r?void 0:r.sortBy)&&d.set("sortBy",r.sortBy),(null==r?void 0:r.sortOrder)&&d.set("sortOrder",r.sortOrder);let u=await l("".concat(n,"/blogs?").concat(d.toString()),{next:{revalidate:3600}});if(!u.ok)return{articles:[],totalCount:0};let m=await u.json(),x=m.items||m.data||m.articles||[],h=null!=(c=null!=(i=null!=(s=null==(a=m.pagination)?void 0:a.totalCount)?s:m.total)?i:m.totalCount)?c:x.length;return{articles:x.map(o),totalCount:h}}catch(e){return console.error("Error fetching blogs:",e),{articles:[],totalCount:0}}},c=async()=>{try{let e=await l("".concat(n,"/recommendations"),{next:{revalidate:3600}});if(!e.ok)return[];let t=await e.json();return Array.isArray(t)?t:t.items||t.data||[]}catch(e){return console.error("Error fetching recommendations:",e),[]}},d=async()=>{try{let e=await l("".concat(n,"/categories"),{next:{revalidate:3600}});if(!e.ok)return[];let t=await e.json();return Array.isArray(t)?t:t.items||t.data||[]}catch(e){return console.error("Error fetching categories:",e),[]}},u=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:12,r=arguments.length>2?arguments[2]:void 0;try{let a=new URLSearchParams({page:e.toString(),limit:t.toString(),...(null==r?void 0:r.status)&&{status:r.status},...(null==r?void 0:r.sortBy)&&{sortBy:r.sortBy},...(null==r?void 0:r.sortOrder)&&{sortOrder:r.sortOrder}}),n=await l("".concat(s,"/series?").concat(a.toString()),{next:{revalidate:300}});if(!n.ok)throw Error("Failed to fetch series: ".concat(n.statusText));return await n.json()}catch(r){return console.error("Error fetching series list:",r),{items:[],pagination:{totalCount:0,totalPages:0,currentPage:e,limit:t}}}}},7452:(e,t,r)=>{r.r(t),r.d(t,{default:()=>m});var a=r(5155),n=r(2115),s=r(5239),l=r(2619),o=r.n(l),i=r(6553),c=r(4551),d=r(5380);r(4062),r(1878),r(8068);var u=r(6439);let m=()=>{let[e,t]=(0,n.useState)([]),[r,l]=(0,n.useState)(!0),[m,x]=(0,n.useState)(!1),[h,p]=(0,n.useState)(null),g=(0,n.useRef)({}),[f,w]=(0,n.useState)({});(0,n.useEffect)(()=>{(async()=>{l(!0);try{let e=await (0,u.Dz)();t(e)}catch(e){console.error("Error fetching recommendations:",e)}finally{l(!1)}})();let e=()=>{x(window.innerWidth>768)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,n.useEffect)(()=>{let e=()=>{x(window.innerWidth>768)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let v=e=>{let t=!1;Object.values(g.current).forEach(r=>{r&&r.contains(e.target)&&(t=!0)}),t||p(null)},b=(0,n.useCallback)(()=>
1{m&&Object.entries(g.current).forEach(e=>{let[t,r]=e;if(r){let e=r.getBoundingClientRect(),t=e.top+e.height/2,a=window.innerHeight,n=Math.min(Math.max(0,(a-t)/a),1);r.style.transform="perspective(1000px) rotateX(".concat(20*n,"deg) rotateY(").concat(20*n,"deg) scale(1.05)")}})},[m]);return(0,n.useEffect)(()=>(document.addEventListener("mousedown",v),window.addEventListener("scroll",b),()=>{document.removeEventListener("mousedown",v),window.removeEventListener("scroll",b)}),[h,m,b]),(0,a.jsx)("section",{className:"py-40 text-white overflow-visible w-full",children:(0,a.jsxs)("div",{className:"w-full text-center",children:[(0,a.jsx)("h2",{className:"text-3xl sm:text-4xl font-bold mb-8 px-4",children:"What People Say About Me"}),r?(0,a.jsx)("div",{className:"text-center py-12 px-4",children:(0,a.jsx)(i.default,{type:"recommendations"})}):0===e.length?(0,a.jsx)("div",{className:"text-center py-12 px-4",children:(0,a.jsx)("p",{className:"text-gray-400 text-sm",children:"No recommendations found."})}):(0,a.jsxs)("div",{className:"relative w-full",children:[(0,a.jsx)(c.RC,{modules:[d.Vx,d.dK,d.Ij],spaceBetween:20,slidesPerView:1,loop:!0,breakpoints:{640:{slidesPerView:2,spaceBetween:20},1024:{slidesPerView:3,spaceBetween:30},1536:{slidesPerView:4,spaceBetween:40}},navigation:{prevEl:".rec-prev-btn",nextEl:".rec-next-btn"},pagination:{clickable:!0,el:".rec-pagination",bulletClass:"swiper-pagination-bullet !bg-gray-400 hover:!bg-gray-300 transition-all duration-300",bulletActiveClass:"!bg-emerald-500 !scale-125"},autoplay:!1,className:"w-full pb-[60px]",children:e.map((e,t)=>{var r,n,l,o;let[i]=e.text.split("<br/><br/>"),d=h===e.id;return(0,a.jsx)(c.qr,{className:"!flex !flex-col !h-auto",children:(0,a.jsxs)("div",{className:"my-5 bg-gray-700 p-6 rounded-lg shadow-lg text-left relative overflow-hidden border border-gray-700 transition-transform duration-200 ease-out flex-grow w-full flex flex-col justify-between ".concat(m?"gentle-sway-active":""),onMouseMove:t=>((e,t)=>{if(!m)return;let r=g.current[t];if(!r||h===t)return;let a=r.getBoundingClientRect(),n=e.clientX-a.left,s=e.clientY-a.top,l=a.width/2,o=a.height/2,i=-((s-o)/o*25),c=(n-l)/l*25;w(e=>({...e,[t]:{rotateX:i,rotateY:c}})),r.style.transform="perspective(1000px) rotateX(".concat(i,"deg) rotateY(").concat(c,"deg) scale(1.05)"),r.style.boxShadow="".concat(c/25*20,"px ").concat(-(i/25*20),"px 30px rgba(0, 0, 0, 0.5)")})(t,e.id),onMouseLeave:()=>(e=>{let t=g.current[e];if(!t)return;let r=f[e];h===e&&r?(t.style.transform="perspective(1000px) rotateX(".concat(r.rotateX,"deg) rotateY(").concat(r.rotateY,"deg) scale(1.05)"),t.style.boxShadow="".concat(r.rotateY/25*20,"px ").concat(-(20*(r.rotateX/25)),"px 30px rgba(0, 0, 0, 0.5)")):(t.style.transform="",t.style.boxShadow="")})(e.id),ref:t=>{g.current[e.id]=t},style:{transformStyle:"preserve-3d",transform:h===e.id?"perspective(1000px) rotateX(".concat((null==(r=f[e.id])?void 0:r.rotateX)||0,"deg) rotateY(").concat((null==(n=f[e.id])?void 0:n.rotateY)||0,"deg) scale(1.05)"):"none",animationDelay:"".concat(1.5*t,"s"),animationDuration:"".concat(10+t%3*2,"s")},children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"transition-all duration-500 ease-in-out ".concat(d?"max-h-[500px]":"max-h-[150px]"," overflow-hidden relative"),children:[(0,a.jsx)("div",{className:"text-gray-300 text-sm sm:text-base whitespace-pre-wrap",children:d?e.text:i}),!d&&(0,a.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-16 bg-gradient-to-t from-gray-700 to-transparent pointer-events-none"})]}),(0,a.jsx)("button",{onClick:()=>(e=>{p(h===e?null:e)})(e.id),className:"text-emerald-100 hover:text-emerald-200 transition duration-300 mt-4 block text-sm font-semibold",children:d?"Show Less":"Show More"})]}),(0,a.jsxs)("footer",{className:"text-gray-400 mt-6 flex items-center gap-3 border-t border-gray-600/50 pt-4",children:[(0,a.jsx)("div",{className:"w-[50px] h-[50px] flex-shrink-0 relative rounded-full overflow-hidden bg-gray-600",children:e.image?(0,a.jsx)(s.default,{src:e.image.startsWith("https://mrobles.work")?e.image.replace("https://mrobles.work",""):e.image,alt:e.name,fill:!0,sizes:"50px",className:"w-full h-full object-cover",onError:e=>{e.target.style.display="none"}}):(0,a.jsx)("div",{className:"w-full h-full flex items-center justify-center text-gray-400 text-lg font-bold",children:null!=(o=null==(l=e.name)?void 0:l.charAt(0))?o:"?"})}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("b",{className:"text-white text-sm",children:[e.name,","]})," ",(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"text-gray-300 italic text-xs",children:e.position})]})]})]})},e.id)})},e.length),(0,a.jsx)("button",{className:"rec-prev-btn absolute left-1 sm:left-2 top-1/2 transform -translate-y-1/2 bg-emerald-600 hover:bg-emerald-700 text-white w-10 h-10 sm:w-12 sm:h-12 flex items-center justify-center rounded-full shadow-lg transition duration-300 z-10 hover:scale-110","aria-label":"Previous",children:"â"}),(0,a.jsx)("button",{className:"rec-next-btn absolute right-1 sm:right-2 top-1/2 transform -translate-y-1/2 bg-emerald-600 hover:bg-emerald-700 text-white w-10 h-10 sm:w-12 sm:h-12 flex items-center justify-center rounded-full shadow-lg transition duration-300 z-10 hover:scale-110","aria-label":"Next",children:"â"}),(0,a.jsx)("div",{className:"rec-pagination flex justify-center mt-6 space-x-3"})]}),(0,a.jsxs)("div",{className:"mt-8 flex flex-col sm:flex-row items-center gap-4 justify-between max-w-4xl mx-auto px-4",children:[(0,a.jsx)(o(),{href:"https://www.linkedin.com/in/mark-oliver-robles/",className:"text-emerald-500 hover:text-emerald-400 transition duration-300",target:"_blank",rel:"noopener noreferrer",children:"See more recommendations on LinkedIn â"}),(0,a.jsxs)("div",{className:"flex items-center relative group",children:[(0,a.jsx)("span",{className:"mr-2 text-white text-sm",children:"Effects"}),(0,a.jsxs)("label",{className:"inline-flex items-center cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:m,onChange:()=>{x(e=>{let t=!e;return t||w({}),t})},className:"toggle-checkbox hidden"}),(0,a.jsxs)("span",{className:"relative",children:[(0,a.jsx)("span",{className:"block w-14 h-8 bg-gray-400 rounded-full"}),(0,a.jsx)("span",{className:"absolute left-1 top-1 w-6 h-6 bg-white rounded-full transition-all duration-300 ease-in-out ".concat(m?"transform translate-x-6":"")}
1)]})]}),(0,a.jsx)("span",{className:"ml-2 text-white text-sm",children:m?"On":"Off"})]})]}),(0,a.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n .swiper-wrapper { display: flex !important; align-items: stretch !important; }\n .swiper-slide { height: auto !important; display: flex !important; flex-direction: column !important; }\n @keyframes gentle-sway {\n 0%, 100% { transform: perspective(1000px) rotateX(0deg) rotateY(0deg) scale(1); box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.4); }\n 25% { transform: perspective(1000px) rotateX(6deg) rotateY(-8deg) scale(1.025); box-shadow: 10px 20px 35px rgba(0, 0, 0, 0.5); }\n 50% { transform: perspective(1000px) rotateX(-7deg) rotateY(6deg) scale(1.01); box-shadow: -10px 15px 30px rgba(0, 0, 0, 0.4); }\n 75% { transform: perspective(1000px) rotateX(5deg) rotateY(8deg) scale(1.025); box-shadow: -8px 25px 40px rgba(0, 0, 0, 0.48); }\n }\n .gentle-sway-active { animation: gentle-sway infinite ease-in-out; animation-duration: inherit; animation-delay: inherit; }\n .gentle-sway-active:hover { animation-play-state: paused; }\n "}})]})})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.