1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[23441],{6454:(e,t,r)=>{r.d(t,{w:()=>g});var n=r(66477),a=r(820),o=r.n(a),l=r(68459);function s({href:e,children:t,className:r="",onClick:a,showExternalIcon:i=!1,...c}){if(!e)return(0,n.jsx)("span",{className:r,...c,children:t});let d=(0,l.B4)(e);if((0,l.q)(e))return(0,n.jsx)(o(),{href:e,className:r,onClick:a,...c,children:t});let u=d?(0,l.Do)():{};return(0,n.jsxs)("a",{href:e,className:r,onClick:a,...u,...c,children:[t,i&&d&&e.startsWith("http")&&(0,n.jsx)("svg",{className:"inline-block w-3 h-3 ml-1 opacity-50",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]})}var i=r(89085),c=r(50905),d=r(17923),u=r(12343);function m(){let[e,t]=(0,c.useState)(""),[r,a]=(0,c.useState)(!1),o=async r=>{if(r.preventDefault(),e){a(!0);try{(await fetch("/api/forms/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({formConfigId:"newsletter",formData:{email:e}})})).ok?(u.o.success("You're subscribed â thanks!"),t("")):u.o.error("Something went wrong. Please try again.")}catch{u.o.error("Something went wrong. Please try again.")}finally{a(!1)}}};return(0,n.jsxs)("form",{onSubmit:o,className:"flex w-full sm:max-w-[280px] items-center gap-2",children:[(0,n.jsx)("input",{type:"email",required:!0,placeholder:"[email protected]",value:e,onChange:e=>t(e.target.value),disabled:r,className:"h-9 min-w-0 flex-1 rounded-[var(--radius)] border border-primary-foreground/15 bg-primary-foreground/[0.06] px-3 text-base tracking-tight text-primary-foreground placeholder:text-primary-foreground/40 transition-colors focus:border-primary-foreground/40 focus:outline-none focus:ring-1 focus:ring-primary-foreground/50"}),(0,n.jsx)("button",{type:"submit",disabled:r,"aria-label":"Subscribe to newsletter",className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--radius)] bg-primary-foreground text-[var(--footer-bg)] transition-colors hover:bg-primary-foreground/90 disabled:opacity-50",children:(0,n.jsx)(d.A,{className:"h-3.5 w-3.5"})})]})}let f=[{heading:"Product",links:[{label:"Features",href:"/product/features"},{label:"Deployment",href:"/product/deployment"},{label:"Explore",href:"/product/explore"},{label:"Pricing",href:"/pricing"}]},{heading:"Solutions",links:[{label:"Environment",href:"/solutions/environment-management"},{label:"Multi-Project",href:"/solutions/multi-project-standardization"},{label:"Self-Service",href:"/solutions/developer-self-service"},{label:"Enterprise",href:"/solutions/enterprise"}]},{heading:"Resources",links:[{label:"Blog",href:"/blog"},{label:"Docs",href:"/docs"},{label:"Live",href:"/live"},{label:"Case Studies",href:"/case-study"}]},{heading:"Company",links:[{label:"About",href:"/company"},{label:"Reviews & Recognition",href:"/reviews"},{label:"Join us",href:"https://wellfound.com/company/facets-cloud/jobs"}]}],h=[{label:"X",href:"https://twitter.com/facetscloud",Icon:function({className:e}){return(0,n.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:e,fill:"
1currentColor",children:(0,n.jsx)("path",{d:"M18.9 1.15h3.68l-8.04 9.19L24 22.85h-7.41l-5.8-7.58-6.63 7.58H.47l8.6-9.83L0 1.15h7.59l5.24 6.93 6.07-6.93Zm-1.29 19.5h2.04L6.49 3.24H4.3l13.31 17.41Z"})})}},{label:"LinkedIn",href:"https://www.linkedin.com/company/facets-cloud/",Icon:function({className:e}){return(0,n.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:e,fill:"currentColor",children:(0,n.jsx)("path",{d:"M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12Zm1.78 13.02H3.56V9h3.56v11.45ZM22.22 0H1.77C.8 0 0 .78 0 1.74v20.52C0 23.22.8 24 1.77 24h20.45c.98 0 1.78-.78 1.78-1.74V1.74C24 .78 23.2 0 22.22 0Z"})})}},{label:"GitHub",href:"https://github.com/Facets-cloud",Icon:function({className:e}){return(0,n.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:e,fill:"currentColor",children:(0,n.jsx)("path",{d:"M12 .3a12 12 0 0 0-3.79 23.39c.6.11.82-.26.82-.58v-2.03c-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.09-.75.08-.73.08-.73 1.2.08 1.84 1.24 1.84 1.24 1.07 1.83 2.81 1.3 3.5.99.11-.78.42-1.3.76-1.6-2.67-.31-5.47-1.34-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.23a11.48 11.48 0 0 1 6 0c2.29-1.55 3.3-1.23 3.3-1.23.66 1.66.24 2.88.12 3.18.77.84 1.23 1.91 1.23 3.22 0 4.61-2.8 5.62-5.48 5.92.43.37.82 1.1.82 2.22v3.29c0 .32.21.69.83.57A12 12 0 0 0 12 .3Z"})})}},{label:"YouTube",href:"https://youtube.com/@facetscloud",Icon:function({className:e}){return(0,n.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:e,fill:"
1currentColor",children:(0,n.jsx)("path",{d:"M23.5 6.2a3.02 3.02 0 0 0-2.12-2.14C19.5 3.56 12 3.56 12 3.56s-7.5 0-9.38.5A3.02 3.02 0 0 0 .5 6.2C0 8.1 0 12 0 12s0 3.9.5 5.8a3.02 3.02 0 0 0 2.12 2.14c1.88.5 9.38.5 9.38.5s7.5 0 9.38-.5a3.02 3.02 0 0 0 2.12-2.14C24 15.9 24 12 24 12s0-3.9-.5-5.8ZM9.55 15.57V8.43L15.82 12l-6.27 3.57Z"})})}}],p=[{src:"/assets/partner%20images/64b63e4b1509df6af980739f_cncf-member-silver-white.svg",alt:"CNCF Member Silver",h:"h-12 md:h-20",cls:"basis-full md:basis-auto mx-auto md:mx-0"},{src:"/assets/partner%20images/65409cda37b5121d9320321b_ISO_27001_logo-removebg-preview%201.svg",alt:"ISO 27001",h:"h-12 md:h-20",cls:""},{src:"/assets/partner%20images/65af50bef1c551939d2eccd9_Google_Cloud_Partner_no_outline_vertical%20(1).png",alt:"Google Cloud Partner",h:"h-12 md:h-20",cls:""},{src:"/assets/partner%20images/65cf134d55e17e7fa1575d15_aicpa-soc-logo-freelogovectors.net_-400x400.png",alt:"AICPA SOC",h:"h-12 md:h-20",cls:""},{src:"/assets/partner%20images/65af50beb3c59d223b605745_badge.png",alt:"Partnership Badge",h:"h-12 md:h-20",cls:""}];function g(){return(0,n.jsx)("div",{className:"p-4 sm:p-6",children:(0,n.jsxs)("footer",{className:"relative overflow-hidden rounded-[24px]",style:{backgroundColor:"var(--footer-bg)",fontFamily:"'Plus Jakarta Sans', system-ui, sans-serif"},role:"contentinfo","aria-label":"Footer",children:[(0,n.jsx)(i.W,{}),(0,n.jsxs)("div",{className:"relative z-10 container-max px-6",children:[(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-x-10 gap-y-12 pt-12 pb-12 md:grid-cols-6 md:pt-16 lg:grid-cols-[minmax(280px,1.35fr)_repeat(4,minmax(112px,0.65fr))] lg:gap-x-14 lg:pt-20 xl:gap-x-20",children:[(0,n.jsxs)("div",{className:"col-span-2 md:col-span-3 lg:col-span-1",children:[(0,n.jsx)(o(),{href:"/","aria-label":"Facets home",children:(0,n.jsx)("img",{src:"/assets/logos/facets-logo-white.svg",alt:"Facets",className:"h-7 w-auto opacity-90"})}),(0,n.jsx)("p",{className:"mt-4 text-sm font-bold leading-tight text-primary-foreground",children:"AI-powered software delivery"}),(0,n.jsx)("p",{className:"mt-5 text-xs leading-relaxed text-primary-foreground/70",children:"Get our latest insights on platform engineering, DevOps practices, and industry trends delivered to your inbox."}),(0,n.jsx)("div",{className:"mt-5",children:(0,n.jsx)(m,{})}),(0,n.jsx)("div",{className:"mt-5 flex items-center gap-3",children:h.map(({label:e,href:t,Icon:r})=>(0,n.jsx)(s,{href:t,"aria-label":e,className:"inline-flex h-5 w-5 items-center justify-center text-primary-foreground/60 transition-colors duration-150 hover:text-primary-foreground",children:(0,n.jsx)(r,{className:"h-4 w-4"})},e))})]}),f.map(e=>(0,n.jsxs)("div",{className:"md:col-span-1 lg:pt-2",children:[(0,n.jsx)("p",{className:"mb-5 text-[10px] font-semibold uppercase tracking-widest text-primary-foreground/50",children:e.heading}),(0,n.jsx)("div",{className:"flex flex-col gap-4",children:e.links.map(e=>(0,n.jsx)(s,{href:e.href,className:"text-sm leading-none text-primary-foreground/70 transition-colors duration-150 hover:text-primary-foreground",children:e.label},e.label))})]},e.heading))]}),(0,n.jsx)("div",{className:"flex w-full flex-wrap items-center justify-center gap-x-6 gap-y-5 pb-12 md:flex-nowrap md:justify-between md:gap-x-10",children:p.map(e=>(0,n.jsx)("img",{src:e.src,alt:e.alt,className:`${e.h} w-auto flex-shrink-0 ${e.cls}`},e.alt))}),(0,n.jsxs)("div",{className:"flex flex-col items-center justify-between gap-4 pb-[calc(7rem+env(safe-area-inset-bottom))] md:flex-row md:pb-8",children:[(0,n.jsxs)("p",{className:"text-xs text-primary-foreground/50",children:["\xa9 ",new Date().getFullYear()," Facets.cloud, Inc."]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-5 text-xs",children:[["Privacy","/privacy-policy"],["Terms","/tos"],["Contact","/contact"],["Demo","/demo"],["Sign up","/signup"]].map(([e,t])=>(0,n.jsx)(s,{href:t,className:"text-primary-foreground/50 hover:text-primary-foreground transition-colors duration-150",children:e},e))})]})]})]})})}},40658:(e,t,r)=>{r.r(t),r.d(t,{Button:()=>c,buttonVariants:()=>i});var n=r(66477),a=r(50905),o=r(69234),l=r(85473),s=r(57089);let i=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[6px] text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 hover:shadow-[0_0_0_4px_hsl(var(--primary)/0.18)]",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90 hover:shadow-[0_0_0_4px_hsl(var(--destructive)/0.18)]",outline:"border border-input bg-background text-foreground hover:bg-muted hover:text-foreground hover:shadow-[0_0_0_4px_hsl(var(--border)/0.5)]",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80 hover:shadow-[0_0_0_4px_hsl(var(--border)/0.5)]",ghost:"text-foreground hover:bg-muted hover:text-foreground",link:"text-primary underline-offset-4 hover:underline",onPrimary:"bg-primary-foreground text-primary hover:bg-primary-foreground
1/90 hover:shadow-[0_0_0_4px_hsl(var(--primary-foreground)/0.18)] focus-visible:ring-primary-foreground focus-visible:ring-offset-primary",outlineOnPrimary:"border border-primary-foreground/40 text-primary-foreground hover:border-primary-foreground hover:bg-primary-foreground/10 focus-visible:ring-primary-foreground focus-visible:ring-offset-primary"},size:{default:"h-10 px-4 py-2",sm:"h-8 px-4 text-xs",lg:"h-11 px-8",icon:"h-10 w-10"},radius:{default:"",soft:"rounded-[10px]"}},defaultVariants:{variant:"default",size:"default",radius:"default"}}),c=a.forwardRef(({className:e,variant:t,size:r,radius:a,asChild:l=!1,...c},d)=>{let u=l?o.DX:"button";return(0,n.jsx)(u,{className:(0,s.cn)(i({variant:t,size:r,radius:a,className:e})),ref:d,...c})});c.displayName="Button"},57089:(e,t,r)=>{r.d(t,{cn:()=>o});var n=r(11433),a=r(66617);function o(...e){return(0,a.QP)((0,n.$)(e))}},68459:(e,t,r)=>{function n(e){return!!e&&(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/resources"))}function a(){return{target:"_blank",rel:"noopener noreferrer"}}function o(e){return!(!e||n(e)||e.startsWith("#")||e.includes(":"))}r.d(t,{B4:()=>n,Do:()=>a,oC:()=>s,q:()=>o,tb:()=>l});let l=n,s=e=>n(e)?a():{}},89085:(e,t,r)=>{r.d(t,{W:()=>s,b:()=>l});var n=r(66477),a=r(50905);let o="#645df6";function l({color:e=o,minOpacity:t=.04,maxOpacity:r=.35,className:s}){let i=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let n,a,o,l=i.current;if(!l)return;let s=l.getContext("2d");if(!s)return;let c=window.devicePixelRatio||1,d=0,u=0,m=0,f=0;function h(e,i){if(!e||!i)return;d=e,u=i,l.width=Math.round(e*c),l.height=Math.round(i*c),l.style.width=`${e}px`,l.style.height=`${i}px`,s.resetTransform(),s.scale(c,c);let h=(m=Math.ceil(e/5)+1)*(f=Math.ceil(i/5)+1);n=new Float32Array(h).map(()=>t+Math.random()*(r-t)),a=new Float32Array(h).map(()=>t+Math.random()*(r-t)),o=new Float32Array(h).map(()=>.012+.03*Math.random())}if(l.parentElement){let{width:e,height:t}=l.parentElement.getBoundingClientRect();e>0&&h(e,t)}let p=new ResizeObserver(e=>{for(let t of e){let{width:e,height:r}=t.contentRect;e>0&&r>0&&h(e,r)}});l.parentElement&&p.observe(l.parentElement);let g=null,v=!0;function x(){if(!v){g=null;return}if(!d&&l.parentElement){let{width:e,height:t}=l.parentElement.getBoundingClientRect();e>0&&h(e,t),g=requestAnimationFrame(x);return}s.clearRect(0,0,d,u),s.fillStyle=e;let i=m*f;for(let e=0;e<m;e++)for(let l=0;l<f;l++){let c=e*f+l;if(c>=i)continue;let d=a[c]-n[c];n[c]+=d*o[c],.004>Math.abs(d)&&(a[c]=.08>Math.random()?.1+.1*Math.random():t+Math.random()*(r-t),o[c]=.01+.025*Math.random()),s.globalAlpha=Math.min(Math.max(n[c],t),1),s.fillRect(5*e,5*l,2,2)}g=requestAnimationFrame(x)}g=requestAnimationFrame(x);let b=new IntersectionObserver(e=>{for(let t of e)(v=t.isIntersecting)&&!g&&(g=requestAnimationFrame(x))},{threshold:0});return l.parentElement&&b.observe(l.parentElement),()=>{p.disconnect(),b.disconnect(),g&&cancelAnimationFrame(g)}},[e,t,r]),(0,n.jsx)("canvas",{ref:i,"aria-hidden":"true",className:["absolute inset-0 w-full h-full pointer-events-none",s].filter(Boolean).join(" ")})}let s=({showWatermark:e=!0,fadeIn:t=!1}={})=>{let r=(0,a.useRef)(null),l=(0,a.useRef)(null),s=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let n,a,i,c,d=new Image;d.src="/assets/logos/facets-logo-white.svg",d.onload=()=>{s.current=d};let u=r.current;if(!u)return;let m=u.getContext("2d",{willReadFrequently:!0});if(!m)return;let f=window.devicePixelRatio||1,h=()=>{let e=u.closest(".dark, .light");return e?e.classList.contains("dark"):document.documentElement.classList.contains("dark")},p=()=>h()?"#09061a":"hsl(242 89% 67%)",g=()=>h()?o:"#ffffff",v=p(),x=g(),b=0,y=0,w=0,j=0,M=null,N=null,_=-9999,C=-9999,k=0,E=[];function F(){let e=E[0];if(!e)return;let t=(performance.now()-e.born)/1e3+.25;t<e.lifetime&&(e.lifetime=t)}function A(e,t){if(!e||!t)return;b=e,y=t,u.width=Math.round(e*f),u.height=Math.round(t*f),u.style.width=`${e}px`,u.style.height=`${t}px`,m.resetTransform(),m.scale(f,f);let r=(w=Math.ceil(e/5)+1)*(j=Math.ceil(t/5)+1),o=n;n=new Float32Array(r),a=new Float32Array(r),i=new Float32Array(r);for(let e=0;e<r;e++)n[e]=o?.[e]??.02+.16*Math.random(),a[e]=.02+.16*Math.random(),i[e]=.015+.035*Math.random();c=new Uint8Array(w*j);for(let e=0;e<r;e++)c[e]&&(a[e]=.3+.55*Math.random())}if(u.parentElement){let{width:e,height:t}=u.parentElement.getBoundingClientRect();e>0&&A(e,t)}let R=new ResizeObserver(e=>{for(let t of e){let{width:e,height:r}=t.contentRect;e>0&&r>0&&A(e,r)}});u.parentElement&&R.observe(u.parentElement);let S=new MutationObserver(()=>{let e=p(),t=g();e!==v&&(v=e,M=null),x=t});S.observe(document.documentElement,{attributeFilter:["class"]});let I=u.closest("footer")??u,B=e=>{let t=u.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top,a=r-_,o=n-C,l=performance.now();Math.sqrt(a*a+o*o)>32&&l-k>30&&(E.length>=20&&F(),E.push({x:r,y:n,born:l,strength:.55,lifetime:1.4}),k=l),_=r,C=n},L=()=>{_=-9999,C=-9999},P=e=>{let t=u.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;E.length>=20&&F(),E.push({x:r,y:n,born:performance.now(),strength:1,lifetime:2.4})};I.addEventListener("mousemove",B),I.addEventListener("mouseleave",L),I.addEventListener("click",P);let q=null,O=!0;function D(){if(!O){q=null;return}if(!b&&u.parentElement){let{width:e,height:t}=u.parentElement.getBoundingClientRect();e>0&&A(e,t),q=requestAnimationFrame(D);return}m.clearRect(0,0,b,y),m.fillStyle=x;let t=performance.now(),r=w*j;for(let e=E.length-1;e>=0;e--)(t-E[e].born)/1e3>E[e].lifetime&&E.splice(e,1);let o=_>-100,l=E.length>0;for(let e=0;e<w;e++)for(let s=0;s<j;s++){let d=e*j+s;if(d>=r)continue;let u=a[d]-n[d];if(n[d]+=u*i[d],.005>Math.abs(u)){let e=c?.[d]===1;a[d]=e?.3+.6*Math.random():.08>Math.random()?.1+.1*Math.random():.02+.16*Math.random(),i[d]=.012+.03*Math.random()}let f=5*e+1,h=5*s+1,p=0;if(o){let e=f-_,t=h-C,r=Math.sqrt(e*e+t*t);if(r<110){let e=1-r/110;p=Math.max(p,e*e*.2)}}if(l)for(let e of E){let r=(t-e.born)/1e3,n=160*r,a=f-e.x,o=h-e.y,l=Math.abs(Math.sqrt(a*a+o*o)-n);if(l<72){let t=Math.max(0,1-r/(.88*e.lifetime)),n=1-l/72;p=Math.max(p,n*n*(3-2*n)*t*e.strength*.9)}}m.globalAlpha=Math.min(n[d]+p,1),m.fillRect(5*e,5*s,2,2)}if(e&&s.current&&b>=768){let e=s.current,t=e.width/e.height,r=b,n=r/t;M&&M.width===Math.round(r*f)||((M=document.createElement("canvas")).width=Math.round(r*f),M.height=Math.round(n*f),N=M.getContext("2d")),N&&(N.resetTransform(),N.scale(f,f),N.clearRect(0,0,r,n),N.drawImage(e,0,0,r,n),N.globalCompositeOperation="source-in",N.fillStyle=v,N.fillRect(0,0,r,n),N.globalCompositeOperation="source-over",m.globalAlpha=h()?.82:.78,m.drawImage(M,0,0,r,n))}q=requestAnimationFrame(D)}q=requestAnimationFrame(D);let W=!1,Z=l.current,z=new IntersectionObserver(e=>{for(let r of e)(O=r.isIntersecting)&&!q&&(q=requestAnimationFrame(D)),t&&O&&!W&&Z&&(W=!0,Z.style.transition="opacity 1.2s ease",Z.style.opacity="1")},{threshold:0});return u.parentElement&&z.observe(u.parentElement),()=>{I.removeEventListener("mousemove",B),I.removeEventListener("mouseleave",L),I.removeEventListener("click",P),R.disconnect(),z.disconnect(),S.disconnect(),q&&cancelAnimationFrame(q)}},[e,t]),(0,n.jsx)("div",{className:"absolute inset-0 pointer-events-none z-0 overflow-hidden",children:(0,n.jsx)("div",{ref:l,className:"absolute inset-0 pointer-events-none",style:{opacity:+!t,maskImage:"linear-gradient(to bottom, transparent 0, #000 9rem)",WebkitMaskImage:"linear-gradient(to bottom, transparent 0, #000 9rem)"},children:(0,n.jsx)("canvas",{ref:r,className:"block w-full h-full",style:{pointerEvents:"auto"}})})})}}}]);
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.