1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,4764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},82338,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return v},NormalizeError:function(){return g},PageNotFoundError:function(){return C},SP:function(){return m},ST:function(){return b},WEB_VITALS:function(){return a},execOnce:function(){return i},getDisplayName:function(){return f},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return d},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return x}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,b=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class g extends Error{}class C extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function x(e){return JSON.stringify({message:e.message,stack:e.stack})}},86738,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},29531,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(44066)._(e.r(4764)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",l=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${o}${c}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return l(e)}},81522,(e,t,r)=>{"use strict";
1Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(94189);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27065,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(82338),o=e.r(9101);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},94824,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},26747,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return C}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(44066),i=e.r(53286),l=a._(e.r(94189)),s=e.r(29531),u=e.r(31534),c=e.r(81522),f=e.r(82338),d=e.r(50584);e.r(86738);let p=e.r(52855),h=e.r(1224),m=e.r(27065),b=e.r(48788);function y(t){var r,n;let o,a,y,[C,v]=(0,l.useOptimistic)(h.IDLE_LINK_STATUS),j=(0,l.useRef)(null),{href:x,as:w,children:P,prefetch:L=null,passHref:S,replace:N,shallow:_,scroll:E,onClick:O,onMouseEnter:A,onTouchStart:k,legacyBehavior:T=!1,onNavigate:R,transitionTypes:M,ref:U,unstable_dynamicOnHover:I,...$}=t;o=P,T&&("string"==typeof o||"number"==typeof o)&&(o=(0,i.jsx)("a",{children:o}));let F=l.default.useContext(u.AppRouterContext),B=!1!==L,D=!1!==L?null===(n=L)||"auto"===n?b.FetchStrategy.PPR:b.FetchStrategy.Full:b.FetchStrategy.PPR,K="string"==typeof(r=w||x)?r:(0,s.formatUrl)(r);if(T){if(o?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=l.default.Children.only(o)}let z=T?a&&"object"==typeof a&&a.ref:U,W=l.default.useCallback(e=>(null!==F&&(j.current=(0,h.mountLinkInstance)(e,K,F,D,B,v)),()=>{j.current&&((0,h.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,h.unmountPrefetchableInstance)(e)}),[B,K,F,D,v]),Z={ref:(0,c.useMergedRef)(W,z),onClick(t){T||"function"!=typeof O||O(t),T&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!F||t.defaultPrevented||function(t,r,n,o,a,i,s){if("u">typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(84470);l.default.startTransition(()=>{f(r,o?"replace":"push",!1===a?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,s)})}}(t,K,j,N,E,R,M)},onMouseEnter(e){T||"function"!=typeof A||A(e),T&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),F&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){T||"function"!=typeof k||k(e),T&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),F&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,f.isAbsoluteUrl)(K)?Z.href=K:T&&!S&&("a"!==a.type||"href"in a.props)||(Z.href=(0,d.addBasePath)(K)),y=T?l.default.cloneElement(a,Z):(0,i.jsx)("a",{...$,...Z,children:o}),(0,i.jsx)(g.Provider,{value:C,children:y})}e.r(94824);let g=(0,l.createContext)(h.IDLE_LINK_STATUS),C=()=>(0,l.useContext)(g);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
1dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},31338,e=>{"use strict";e.s(["mainNav",0,[{label:"Services",href:"/services"},{label:"Work",href:"/work"},{label:"Hire Developers",href:"/hire-developers"},{label:"About",href:"/about"},{label:"Blog",href:"/blog"}],"site",0,{name:"FAB Web Studio",shortName:"FAB",url:"https://fabwebstudio.com",tagline:"Engineering digital systems that scale.",description:"FAB Web Studio is a full-lifecycle web & software studio (India + USA) that designs, builds, and scales websites, e-commerce stores, and apps â trusted by universities, government, healthcare, and national brands â and provides dedicated development teams on demand.",yearsInBusiness:"12+",foundingYear:2013,email:"[email protected]",overview:"FAB Web Studio is a full-service development agency with 12+ years of experience delivering secure, scalable, and high-performing digital solutions. We're not just developersâwe're your technical partners, dedicated to transforming ideas into powerful digital products. From CMS-driven websites and e-commerce platforms to AI-powered tools, DevOps, and mobile apps, we bring precision, passion, and reliability to every project.",credentials:{upworkBadge:"Top Rated Plus",jobSuccess:"100%",hourlyRate:"$20â$50/hr",minProject:"$5K+",agencySize:"11â50",languages:["English (Fluent)","Hindi (Native)","Punjabi (Fluent)"]},offices:[{label:"India",streetAddress:"SCO 44, Second Floor, Sector-11",locality:"Panchkula",region:"Haryana",postalCode:"134109",country:"IN",phone:"+91-7986045476",phoneHref:"tel:+917986045476"},{label:"USA",streetAddress:"9921 S. Albury Road",locality:"Sandy",region:"Utah",postalCode:"84092",country:"US",phone:"+1 (801) 633-4262",ph
1oneHref:"tel:+18016334262"}],socials:{linkedin:"https://www.linkedin.com/company/fabwebstudio/",x:"https://x.com/fabwebstudio",facebook:"https://www.facebook.com/fabwebstudio",upwork:"https://www.upwork.com/agencies/fabwebstudio/",clutch:"https://clutch.co/profile/fab-web-studio"}}])},3020,e=>{"use strict";var t=e.i(53286),r=e.i(26747),n=e.i(94189);function o({className:e,width:r,height:n}){return(0,t.jsxs)("svg",{viewBox:"0 0 503 198",className:e,width:r,height:n,"aria-hidden":!0,focusable:"false",fillRule:"nonzero",children:[(0,t.jsx)("path",{fill:"#1DAA2E",d:"M7.805,197.68 C5.906,197.68 4.292,197.022 2.963,195.706 C1.634,194.39 0.969,192.792 0.969,190.912 L0.969,7.32908 C0.969,5.26107 1.539,3.56905 2.678,2.25306 C4.007,0.937048 5.716,0.279046 7.805,0.279046 L131.707,0.279046 C133.796,0.279046 135.505,0.937048 136.834,2.25306 C138.163,3.56905 138.828,5.26107 138.828,7.32908 L138.828,27.6331 C138.828,29.5131 138.163,31.1111 136.834,32.4271 C135.505,33.7431 133.796,34.4011 131.707,34.4011 L48.607,34.4011 C44.163,34.4011 40.561,38.0035 40.561,42.4473 L40.561,79.3711 C40.561,83.8149 44.163,87.4173 48.607,87.4173 L126.01,87.4173 C128.099,87.4173 129.808,88.0753 131.137,89.3913 C132.466,90.7073 133.131,92.3053 133.131,94.1853 L133.131,114.489 C133.131,116.369 132.466,117.967 131.137,119.283 C129.808,120.599 128.099,121.257 126.01,121.257 L48.607,121.257 C44.163,121.257 40.561,124.86 40.561,129.304 L40.561,190.912 C40.561,192.792 39.896,194.39 38.567,195.706 C37.238,197.022 35.529,197.68 33.44,197.68 L7.805,197.68 Z"}),(0,t.jsx)("path",{fill:"#4A473F",d:"M291.186,197.68 C286.985,197.68 283.231,195.053 281.792,191.106 L269.812,158.265 C269.798,158.226 269.76,158.199 269.718,158.199 L269.718,158.199 C269.677,158.199 269.64,158.174 269.625,158.136 L240.318,83.2622 C237.003,74.7924 225.019,74.7877 221.697,83.255 L179.296,191.332 C177.794,195.161 174.1,197.68 169.987,197.68 L146.144,197.68 C139.054,197.68 134.216,190.507 136.872,183.933 L208.55,6.53281 C210.077,2.75332 213.746,0.279046 217.822,0.279046 L244.211,0.279046 C248.288,0.279046 251.956,2.75332 253.483,6.53282 L325.161,183.933 C327.817,190.507 322.979,197.68 315.89,197.68 L291.186,197.68 Z"}),(0,t.jsx)("path",{fill:"#1DAA2E",d:"M226.423,108.973 C228.158,104.94 233.875,104.94 235.61,108.973 L244.23,129.016 C245.65,132.316 243.23,135.992 239.637,135.992 L222.396,135.992 C218.804,135.992 216.384,132.316 217.803,129.016 L226.423,108.973 Z"}),(0,t.jsx)("path",{fill:"#1DAA2E",d:"M349.469,197.68 C347.579,197.68 345.972,197.022 344.65,195.706 C343.327,194.39 342.665,192.792 342.665,190.912 L342.665,7.32908 C342.665,5.26107 343.232,3.56905 344.366,2.25306 C345.689,0.937048 347.39,0.279046 349.469,0.279046 L431.677,0.279046 C453.789,0.279046 470.325,5.16706 481.286,14.9431 C492.247,24.5311 497.728,37.6912 497.728,54.4232 C497.728,64.1992 495.271,72.5652 490.358,79.5212 C487.683,83.3523 484.736,86.581 481.517,89.2073 C478.674,91.5267 478.733,96.7188 481.689,98.8921 C486.218,102.222 490.242,106.481 493.759,111.669 C499.24,119.753 501.98,128.965 501.98,139.305 C501.98,156.789 496.027,170.889 484.121,181.606 C472.215,192.322 455.584,197.68 434.229,197.68 L349.469,197.68 Z M426.575,81.2133 C436.213,81.2133 443.584,78.8633 448.686,74.1632 C453.978,69.4632 456.624,63.1652 456.624,55.2692 C456.624,47.3732 454.072,41.2631 448.97,36.9391 C443.867,32.6151 436.402,30.4531 426.575,30.4531 L386.927,30.4531 C384.557,30.4531 382.636,32.3744 382.636,34.7444 L382.636,76.9219 C382.636,79.292 384.557,81.2133 386.927,81.2133 L426.575,81.2133 Z M429.41,167.505 C439.237,167.505 446.891,164.873 452.371,159.609 C457.852,154.157 460.592,147.295 460.592,139.023 C460.592,130.751 457.758,123.983 452.088,118.719 C446.607,113.267 439.048,110.541 429.41,110.541 L386.927,110.541 C384.557,110.541 382.636,112.463 382.636,114.833 L382.636,163.214 C382.636,165.584 384.557,167.505 386.927,167.505 L429.41,167.505 Z"})]})}var a=e.i(31338);e.s(["SiteHeader",0,function(){let[e,i]=(0,n.useState)(!1);return(0,t.jsxs)("header",{className:"frame line-x sticky top-0 z-50 bg-bg/90 backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"gutter",children:(0,t.jsxs)("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center py-4",children:[(0,t.jsx)(r.default,{href:"/",className:"inline-flex w-fit items-center","aria-label":`${a.site.name} home`,children:(0,t.jsx)(o,{className:"h-7 w-auto md:h-8"})}),(0,t.jsx)("nav",{"aria-label":"Primary",className:"hidden md:block",children:(0,t.jsx)("ul",{className:"flex items-center gap-7",children:a.mainNav.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(r.default,{href:e.href,className:"meta hover:text-accent-ink transition-colors",children:e.label})},e.href))})}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,t.jsx)(r.default,{href:"/contact",className:"btn btn-primary hidden md:inline-flex",children:"Start a Project"}),(0,t.jsx)("button",{type:"button",className:"md:hidden meta inline-flex min-h-11 min-w-11 items-center justify-center border border-ink px-3","aria-expanded":e,"aria-controls":"mobile-nav",onClick:()=>i(e=>
1!e),children:e?"Close":"Menu"})]})]})}),e&&(0,t.jsxs)("nav",{id:"mobile-nav","aria-label":"Mobile",className:"md:hidden gutter line-x border-t border-border pb-6",children:[(0,t.jsx)("ul",{className:"flex flex-col",children:a.mainNav.map((e,n)=>(0,t.jsx)("li",{className:n<a.mainNav.length-1?"line-x":"",children:(0,t.jsx)(r.default,{href:e.href,className:"block py-4 text-lg font-bold",onClick:()=>i(!1),children:e.label})},e.href))}),(0,t.jsx)(r.default,{href:"/contact",className:"btn btn-primary mt-6 w-full justify-center",onClick:()=>i(!1),children:"Start a Project"})]})]})}],3020)}]);
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.