PageSourceSearch

https://noir-lang.org/assets/index-sH0YS9wt.js

js noir-lang.org collected 2026-09-25 19:44:11 UTC 57,687 bytes, 49 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Newsletter-Cj3GZl75.js","assets/radix-ui-CkTEeIsQ.js","assets/react-vendor-BtP0CW_r.js","assets/utils-BTGVH9Kg.js"])))=>i.map(i=>d[i]);
2import{r as d,R as Ze,j as t,V as Ne,a as Ce,A as Ee,C as ke,T as Ae,D as Se,P as _e,S as He}from"./radix-ui-CkTEeIsQ.js";import{a as Xe,r as Je}from"./react-vendor-BtP0CW_r.js";import{c as Ie,t as $e}from"./utils-BTGVH9Kg.js";(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function s(o){if(o.ep)return;o.ep=!0;const a=n(o);fetch(o.href,a)}})();var S={},oe;function et(){if(oe)return S;oe=1;var e=Xe();return S.createRoot=e.createRoot,S.hydrateRoot=e.hydrateRoot,S}var ae=et();function tt(e,r){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,s,o,a,i=[],f="",p=e.split("/");for(p[0]||p.shift();o=p.shift();)n=o[0],n==="*"?(i.push(n),f+=o[1]==="?"?"(?:/(.*))?":"/(.*)"):n===":"?(s=o.indexOf("?",1),a=o.indexOf(".",1),i.push(o.substring(1,~s?s:~a?a:o.length)),f+=~s&&!~a?"(?:/([^/]+?))?":"/([^/]+?)",~a&&(f+=(~s?"?":"")+"\\"+o.substring(a))):f+="/"+o;return{keys:i,pattern:new RegExp("^"+f+(r?"(?=$|/)":"/?$"),"i")}}var F={exports:{}},P={};/**
3 * @license React
4 * use-sync-external-store-shim.production.min.js
5 *
6 * Copyright (c) Facebook, Inc. and its affiliates.
7 *
8 * This source code is licensed under the MIT license found in the
9 * LICENSE file in the root directory of this source tree.
10 */var ie;function rt(){if(ie)return P;ie=1;var e=Je();function r(u,l){return u===l&&(u!==0||1/u===1/l)||u!==u&&l!==l}var n=typeof Object.is=="function"?Object.is:r,s=e.useState,o=e.useEffect,a=e.useLayoutEffect,i=e.useDebugValue;function f(u,l){var g=l(),w=s({inst:{value:g,getSnapshot:l}}),v=w[0].inst,b=w[1];return a(function(){v.value=g,v.getSnapshot=l,p(v)&&b({inst:v})},[u,g,l]),o(function(){return p(v)&&b({inst:v}),u(function(){p(v)&&b({inst:v})})},[u]),i(g),g}function p(u){var l=u.getSnapshot;u=u.value;try{var g=l();return!n(u,g)}catch{return!0}}function m(u,l){return l()}var c=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:f;return P.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:c,P}var le;function nt(){return le||(le=1,F.exports=rt()),F.exports}var st=nt();const ot=Ze.useInsertionEffect,at=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",it=at?d.useLayoutEffect:d.useEffect,lt=ot||it,Re=e=>{const r=d.useRef([e,(...n)=>r[0](...n)]).current;return lt(()=>{r[0]=e}),r[1]},ct="popstate",V="pushState",G="replaceState",dt="hashchange",ce=[ct,V,G,dt],ft=e=>{for(const r of ce)addEventListener(r,e);return()=>{for(const r of ce)removeEventListener(r,e)}},Le=(e,r)=>st.useSyncExternalStore(ft,e,r),mt=()=>location.search,ut=({ssrSearch:e=""}={})=>Le(mt,()=>e),de=()=>location.pathname,xt=({ssrPath:e}={})=>Le(de,e?()=>e:de),pt=(e,{replace:r=!1,state:n=null}={})=>history[r?G:V](n,"",e),ht=(e={})=>[xt(e),pt],fe=Symbol.for("wouter_v3");if(typeof history<"u"&&typeof window[fe]>"u"){for(const e of[V,G]){const r=history[e];history[e]=function(){const n=r.apply(this,arguments),s=new Event(e);return s.arguments=arguments,dispatchEvent(s),n}}Object.defineProperty(window,fe,{value:!0})}const gt=(e,r)=>r.toLowerCase().indexOf(e.toLowerCase())?"~"+r:r.slice(e.length)||"/",Te=(e="")=>e==="/"?"":e,bt=(e,r)=>e[0]==="~"?e.slice(1):Te(r)+e,vt=(e="",r)=>gt(me(Te(e)),me(r)),me=e=>{try{return decodeURI(e)}catch{return e}},Be={hook:ht,searchHook:ut,parser:tt,base:"",ssrPath:void 0,ssrSearch:void 0,ssrContext:void 0,hrefs:e=>e},ze=d.createContext(Be),B=()=>d.useContext(ze),Fe={},Pe=d.createContext(Fe),wt=()=>d.useContext(Pe),U=e=>{const[r,n]=e.hook(e);return[vt(e.base,r),Re((s,o)=>n(bt(s,e.base),o))]},De=(e,r,n,s)=>{const{pattern:o,keys:a}=r instanceof RegExp?{keys:!1,pattern:r}:e(r||"*",s),i=o.exec(n)||[],[f,...p]=i;return f!==void 0?[!0,(()=>{const m=a!==!1?Object.fromEntries(a.map((u,l)=>[u,p[l]])):i.groups;let c={...p};return m&&Object.assign(c,m),c})(),...s?[f]:[]]:[!1,null]},Qe=({children:e,...r})=>{var c,u;const n=B(),s=r.hook?Be:n;let o=s;const[a,i]=((c=r.ssrPath)==null?void 0:c.split("?"))??[];i&&(r.ssrSearch=i,r.ssrPath=a),r.hrefs=r.hrefs??((u=r.hook)==null?void 0:u.hrefs);let f=d.useRef({}),p=f.current,m=p;for(let l in s){const g=l==="base"?s[l]+(r[l]||""):r[l]||s[l];p===m&&g!==m[l]&&(f.current=m={...m}),m[l]=g,(g!==s[l]||g!==o[l])&&(o=m)}return d.createElement(ze.Provider,{value:o,children:e})},ue=({children:e,component:r},n)=>r?d.createElement(r,{params:n}):typeof e=="function"?e(n):e,yt=e=>{let r=d.useRef(Fe);const n=r.current;return r.current=Object.keys(e).length!==Object.keys(n).length||Object.entries(e).some(([s,o])=>o!==n[s])?e:n},xe=({path:e,nest:r,match:n,...s})=>{const o=B(),[a]=U(o),[i,f,p]=n??De(o.parser,e,a,r),m=yt({...wt(),...f});if(!i)return null;const c=p?d.createElement(Qe,{base:p},ue(s,m)):ue(s,m);return d.createElement(Pe.Provider,{value:m,children:c})},R=d.forwardRef((e,r)=>{const n=B(),[s,o]=U(n),{to:a="",href:i=a,onClick:f,asChild:p,children:m,className:c,replace:u,state:l,...g}=e,w=Re(b=>{b.ctrlKey||b.metaKey||b.altKey||b.shiftKey||b.button!==0||(f==null||f(b),b.defaultPrevented||(b.preventDefault(),o(i,e)))}),v=n.hrefs(i[0]==="~"?i.slice(1):n.base+i,n);return p&&d.isValidElement(m)?d.cloneElement(m,{onClick:w,href:v}):d.createElement("a",{...g,onClick:w,href:v,className:c!=null&&c.call?c(s===i):c,children:m,ref:r})}),Oe=e=>Array.isArray(e)?e.flatMap(r=>Oe(r&&r.type===d.Fragment?r.props.children:r)):[e],jt=({children:e,location:r})=>{const n=B(),[s]=U(n);for(const o of Oe(e)){let a=0;if(d.isValidElement(o)&&(a=De(n.parser,o.props.path,r||s,o.props.nest))[0])return d.cloneElement(o,{match:a})}return null},Nt=1,Ct=1e6;let D=0;function Et(){return D=(D+1)%Number.MAX_SAFE_INTEGER,D.toString()}const Q=new Map,pe=e=>{if(Q.has(e))return;const r=setTimeout(()=>{Q.delete(e),C({type:"REMOVE_TOAST",toastId:e})},Ct);Q.set(e,r)},kt=(e,r)=>{switch(r.type){case"ADD_TOAST":return{...e,toasts:[r.toast,...e.toasts].slice(0,Nt)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===r.toast.id?{...n,...r.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=r;
10return n?pe(n):e.toasts.forEach(s=>{pe(s.id)}),{...e,toasts:e.toasts.map(s=>s.id===n||n===void 0?{...s,open:!1}:s)}}case"REMOVE_TOAST":return r.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==r.toastId)}}},L=[];let T={toasts:[]};function C(e){T=kt(T,e),L.forEach(r=>{r(T)})}function At({...e}){const r=Et(),n=o=>C({type:"UPDATE_TOAST",toast:{...o,id:r}}),s=()=>C({type:"DISMISS_TOAST",toastId:r});return C({type:"ADD_TOAST",toast:{...e,id:r,open:!0,onOpenChange:o=>{o||s()}}}),{id:r,dismiss:s,update:n}}function St(){const[e,r]=d.useState(T);return d.useEffect(()=>(L.push(r),()=>{const n=L.indexOf(r);n>-1&&L.splice(n,1)}),[e]),{...e,toast:At,dismiss:n=>C({type:"DISMISS_TOAST",toastId:n})}}const he=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,ge=Ie,Ve=(e,r)=>n=>{var s;if((r==null?void 0:r.variants)==null)return ge(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:o,defaultVariants:a}=r,i=Object.keys(o).map(m=>{const c=n==null?void 0:n[m],u=a==null?void 0:a[m];if(c===null)return null;const l=he(c)||he(u);return o[m][l]}),f=n&&Object.entries(n).reduce((m,c)=>{let[u,l]=c;return l===void 0||(m[u]=l),m},{}),p=r==null||(s=r.compoundVariants)===null||s===void 0?void 0:s.reduce((m,c)=>{let{class:u,className:l,...g}=c;return Object.entries(g).every(w=>{let[v,b]=w;return Array.isArray(b)?b.includes({...a,...f}[v]):{...a,...f}[v]===b})?[...m,u,l]:m},[]);return ge(e,i,p,n==null?void 0:n.class,n==null?void 0:n.className)};/**
11 * @license lucide-react v0.453.0 - ISC
12 *
13 * This source code is licensed under the ISC license.
14 * See the LICENSE file in the root directory of this source tree.
15 */const It=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ge=(...e)=>e.filter((r,n,s)=>!!r&&s.indexOf(r)===n).join(" ");/**
16 * @license lucide-react v0.453.0 - ISC
17 *
18 * This source code is licensed under the ISC license.
19 * See the LICENSE file in the root directory of this source tree.
20 */var Rt={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
21 * @license lucide-react v0.453.0 - ISC
22 *
23 * This source code is licensed under the ISC license.
24 * See the LICENSE file in the root directory of this source tree.
25 */const Lt=d.forwardRef(({color:e="currentColor",size:r=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:o="",children:a,iconNode:i,...f},p)=>d.createElement("svg",{ref:p,...Rt,width:r,height:r,stroke:e,strokeWidth:s?Number(n)*24/Number(r):n,className:Ge("lucide",o),...f},[...i.map(([m,c])=>d.createElement(m,c)),...Array.isArray(a)?a:[a]]));/**
26 * @license lucide-react v0.453.0 - ISC
27 *
28 * This source code is licensed under the ISC license.
29 * See the LICENSE file in the root directory of this source tree.
30 */const Y=(e,r)=>{const n=d.forwardRef(({className:s,...o},a)=>d.createElement(Lt,{ref:a,iconNode:r,className:Ge(`lucide-${It(e)}`,s),...o}));return n.displayName=`${e}`,n};/**
31 * @license lucide-react v0.453.0 - ISC
32 *
33 * This source code is licensed under the ISC license.
34 * See the LICENSE file in the root directory of this source tree.
35 */const Tt=Y("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/**
36 * @license lucide-react v0.453.0 - ISC
37 *
38 * This source code is licensed under the ISC license.
39 * See the LICENSE file in the root directory of this source tree.
40 */const Bt=Y("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/**
41 * @license lucide-react v0.453.0 - ISC
42 *
43 * This source code is licensed under the ISC license.
44 * See the LICENSE file in the root directory of this source tree.
45 */const W=Y("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function y(...e){return $e(Ie(e))}const zt=_e,Ue=d.forwardRef(({className:e,...r},n)=>t.jsx(Ne,{ref:n,className:y("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...r}));Ue.displayName=Ne.displayName;const Ft=Ve("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),Ye=d.forwardRef(({className:e,variant:r,...n},s)=>t.jsx(Ce,{ref:s,className:y(Ft({variant:r}),e),...n}));Ye.displayName=Ce.displayName;const Pt=d.forwardRef(({className:e,...r},n)=>t.jsx(Ee,{ref:n,className:y("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...r}));Pt.displayName=Ee.displayName;const We=d.forwardRef(({className:e,...r},n)=>t.jsx(ke,{ref:n,className:y("absolute right-2 top-2 rounded-md p-1 text-foreground
45/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...r,children:t.jsx(W,{className:"h-4 w-4"})}));We.displayName=ke.displayName;const Me=d.forwardRef(({className:e,...r},n)=>t.jsx(Ae,{ref:n,className:y("text-sm font-semibold",e),...r}));Me.displayName=Ae.displayName;const qe=d.forwardRef(({className:e,...r},n)=>t.jsx(Se,{ref:n,className:y("text-sm opacity-90",e),...r}));qe.displayName=Se.displayName;function Dt(){const{toasts:e}=St();return t.jsxs(zt,{children:[e.map(function({id:r,title:n,description:s,action:o,...a}){return t.jsxs(Ye,{...a,children:[t.jsxs("div",{className:"grid gap-1",children:[n&&t.jsx(Me,{children:n}),s&&t.jsx(qe,{children:s})]}),o,t.jsx(We,{})]},r)}),t.jsx(Ue,{})]})}const Qt="/assets/noir-square-logo-BzirMu8K.png",Ot=[{label:"X",href:"https://twitter.com/NoirLang",icon:t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"w-8 h-8","aria-hidden":"true",children:t.jsx("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})})},{label:"Discord",href:"https://discord.com/invite/JtqzkdeQ6G",icon:t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"w-8 h-8","aria-hidden":"true",children:t.jsx("path",{d:"M20.317 4.369a19.79 19.79 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.211.375-.444.864-.608 1.249a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.036A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.1 13.1 0 0 1-1.872-.892.077.077 0 0 1-.008-.128c.126-.094.252-.192.372-.291a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.009c.12.099.246.198.373.292a.077.077 0 0 1-.006.127 12.3 12.3 0 0 1-1.873.891.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.84 19.84 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.028zM8.02 15.331c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"})})},{label:"GitHub",href:"https://github.com/noir-lang/noir",icon:t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"w-8 h-8","aria-hidden":"true",children:t.jsx("path",{d:"M12 .5C5.37.5 0 5.78 0 12.29c0 5.21 3.44 9.63 8.21 11.19.6.11.82-.25.82-.56 0-.28-.01-1.02-.02-2-3.34.71-4.04-1.58-4.04-1.58-.55-1.36-1.34-1.73-1.34-1.73-1.09-.73.08-.72.08-.72 1.2.08 1.84 1.21 1.84 1.21 1.07 1.8 2.81 1.28 3.5.98.11-.76.42-1.28.76-1.58-2.67-.3-5.47-1.31-5.47-5.83 0-1.29.47-2.34 1.24-3.17-.12-.3-.54-1.51.12-3.15 0 0 1.01-.32 3.3 1.21a11.6 11.6 0 0 1 3-.4c1.02 0 2.05.13 3 .4 2.29-1.53 3.3-1.21 3.3-1.21.66 1.64.24 2.85.12 3.15.77.83 1.24 1.88 1.24 3.17 0 4.53-2.81 5.53-5.49 5.82.43.36.81 1.08.81 2.18 0 1.58-.01 2.85-.01 3.24 0 .31.21.68.83.56A12.01 12.01 0 0 0 24 12.29C24 5.78 18.63.5 12 .5z"})})}],Vt=()=>t.jsx("footer",{className:"bg-[#191919] border-t border-[#ffffff10] mt-20",children:t.jsx("div",{className:"max-w-[1200px] mx-auto px-4 md:px-8 py-12 md:py-16",children:t.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8 md:gap-12 mb-8 items-end",children:[t.jsx("div",{className:"flex items-center justify-center lg:justify-start",children:t.jsx("img",{src:Qt,alt:"Noir - The Programming Language for Private Apps",className:"w-full max-w-[250px] h-auto",width:337,height:403,loading:"lazy",decoding:"async"})}),t.jsx("ul",{className:"flex justify-center lg:justify-end items-end gap-6",children:Ot.map((e,r)=>t.jsx("li",{children:t.jsx("a",{href:e.href,target:"_blank",rel:"noopener noreferrer","aria-label":`${e.label} (opens in new tab)`,className:"text-[#ffffff80] hover:text-white transition-colors duration-200 inline-flex",children:e.icon})},r))})]})})}),Gt="data:image/png;base64,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",Ut=({children:e})=>
45{const[r,n]=d.useState(!1),s=[],o=()=>{window.scrollTo({top:0,behavior:"auto"})};return t.jsx("div",{className:"bg-[#191919] min-h-screen flex flex-col justify-center w-full",children:t.jsxs("div",{className:"bg-[#191919] overflow-hidden w-full relative",children:[t.jsx("a",{href:"#main-content",className:"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-[100] focus:px-4 focus:py-2 focus:rounded-md focus:bg-white focus:text-black focus:font-semibold",children:"Skip to main content"}),t.jsxs("header",{className:"fixed top-0 left-0 right-0 z-50 bg-[#191919]/90 backdrop-blur-md border-b border-[#ffffff10]",children:[t.jsxs("nav",{"aria-label":"Primary",className:"flex items-center justify-between px-4 md:px-16 py-4 h-16 md:h-20 max-w-[1440px] mx-auto",children:[t.jsx("div",{className:"flex items-center",children:t.jsx(R,{href:"/",children:t.jsx("img",{className:"w-[86px] h-[32px] md:w-[105px] md:h-[39px] object-contain cursor-pointer",alt:"Noir logo",src:Gt,onClick:o})})}),t.jsxs("div",{className:"hidden md:flex items-center gap-8",children:[t.jsx("div",{className:"flex gap-8",children:s.map((a,i)=>t.jsx("div",{children:a.href.startsWith("#")?t.jsx("a",{href:a.href,className:"font-semibold text-white text-lg tracking-[0.36px] leading-[21.6px] hover:text-gray-300 transition-colors duration-200",onClick:o,children:a.label}):a.href.startsWith("http")?t.jsxs("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:"font-semibold text-white text-lg tracking-[0.36px] leading-[21.6px] hover:text-gray-300 transition-colors duration-200",children:[a.label,t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]}):t.jsx(R,{href:a.href,children:t.jsx("span",{className:"font-semibold text-white text-lg tracking-[0.36px] leading-[21.6px] hover:text-gray-300 transition-colors duration-200 cursor-pointer",onClick:o,children:a.label})})},i))}),t.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"h-[40px] md:h-[50px] px-6 md:px-[34.37px] py-4 md:py-[20.42px] bg-white rounded-[165.33px] font-normal text-black hover:bg-[#ffffff90] text-lg md:text-xl tracking-[0.40px] leading-[24.0px] flex items-center justify-center transition-colors duration-200",children:["Go to Docs",t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]})]}),t.jsx("button",{className:"md:hidden text-white p-2",onClick:()=>n(!r),"aria-label":"Toggle menu","aria-expanded":r,"aria-controls":"mobile-menu",children:r?t.jsx(W,{size:24}):t.jsx(Bt,{size:24})})]}),r&&t.jsx("div",{id:"mobile-menu",className:"md:hidden bg-[#191919]/95 backdrop-blur-md border-t border-[#ffffff10] flex justify-center",children:t.jsx("nav",{"aria-label":"Mobile",className:"w-full",children:t.jsxs("div",{className:"flex flex-col items-center gap-4 py-6 text-center",children:[s.map((a,i)=>t.jsx("div",{className:"text-center",children:a.href.startsWith("#")?t.jsx("a",{href:a.href,className:"font-semibold text-white text-lg tracking-[0.36px] leading-[21.6px] hover:text-gray-300 transition-colors duration-200 text-center block",onClick:()=>{o(),n(!1)},children:a.label}):a.href.startsWith("http")?t.jsxs("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:"font-semibold text-white text-lg tracking-[0.36px] leading-[21.6px] hover:text-gray-300 transition-colors duration-200 text-center block",onClick:()=>n(!1),children:[a.label,t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]}):t.jsx(R,{href:a.href,children:t.jsx("span",{className:"font-semibold text-white text-lg tracking-[0.36px] leading-[21.6px] hover:text-gray-300 transition-colors duration-200 cursor-pointer text-center block",onClick:()=>{o(),n(!1)},children:a.label})})},i)),t.jsx("div",{className:"text-center mt-2",children:t.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",onClick:()=>n(!1),className:"h-[40px] md:h-[50px] px-6 md:px-[34.37px] py-4 md:py-[20.42px] bg-white rounded-[165.33px] font-normal text-black hover:bg-[#ffffff90] text-lg md:text-xl tracking-[0.40px] leading-[24.0px] w-full sm:w-auto flex items-center justify-center transition-colors duration-200",children:["Go to Docs",t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]})})]})})})]}),t.jsxs("div",{className:"pt-16 md:pt-20 min-h-screen flex flex-col",children:[t.jsx("main",{id:"main-content",tabIndex:-1,
45className:"flex-1 focus:outline-none",children:e}),t.jsx(Vt,{})]})]})})};function I(e,...r){window._paq=window._paq||[],window._paq.push([e,...r])}function Yt(){const[e,r]=d.useState(!1);d.useEffect(()=>{const o=localStorage.getItem("matomoConsent");if(o===null){const a=setTimeout(()=>{r(!0)},1e3);return()=>clearTimeout(a)}else I(o==="true"?"rememberConsentGiven":"forgetConsentGiven")},[]);const n=()=>{I("rememberConsentGiven"),localStorage.setItem("matomoConsent","true"),r(!1)},s=()=>{I("forgetConsentGiven"),localStorage.setItem("matomoConsent","false"),r(!1)};return e?t.jsx("div",{className:"fixed bottom-0 left-0 right-0 bg-[#191919] border-t border-[#ffffff20] p-4 md:p-6 z-50","data-testid":"matomo-consent-banner",children:t.jsxs("div",{className:"max-w-7xl mx-auto flex flex-col md:flex-row items-start md:items-center justify-between gap-4",children:[t.jsx("div",{className:"flex-1 text-sm md:text-base text-white leading-relaxed",children:t.jsx("p",{children:"We use cookies to collect analytics and improve your experience."})}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("button",{onClick:s,className:"bg-transparent border border-[#ffffff40] text-white hover:bg-[#ffffff10] hover:border-[#ffffff60] transition-colors px-4 py-2 rounded-lg text-sm","data-testid":"button-decline-cookies",children:"Decline"}),t.jsx("button",{onClick:n,className:"bg-[#8019B8] hover:bg-[#6B1396] text-white border-none transition-colors px-4 py-2 rounded-lg text-sm","data-testid":"button-accept-cookies",children:"Accept"}),t.jsx("button",{onClick:s,className:"p-1 text-[#ffffff80] hover:text-white transition-colors","aria-label":"Close consent banner","data-testid":"button-close-consent",children:t.jsx(W,{size:20})})]})]})}):null}const E=d.forwardRef(({className:e,...r},n)=>t.jsx("div",{ref:n,className:y("rounded-xl border bg-card text-card-foreground shadow",e),...r}));E.displayName="Card";const Wt=d.forwardRef(({className:e,...r},n)=>t.jsx("div",{ref:n,className:y("flex flex-col space-y-1.5 p-6",e),...r}));Wt.displayName="CardHeader";const Mt=d.forwardRef(({className:e,...r},n)=>t.jsx("div",{ref:n,className:y("font-semibold leading-none tracking-tight",e),...r}));Mt.displayName="CardTitle";const qt=d.forwardRef(({className:e,...r},n)=>t.jsx("div",{ref:n,className:y("text-sm text-muted-foreground",e),...r}));qt.displayName="CardDescription";const k=d.forwardRef(({className:e,...r},n)=>t.jsx("div",{ref:n,className:y("p-6 pt-0",e),...r}));k.displayName="CardContent";const Kt=d.forwardRef(({className:e,...r},n)=>t.jsx("div",{ref:n,className:y("flex items-center p-6 pt-0",e),...r}));Kt.displayName="CardFooter";function Zt(){return d.useEffect(()=>{const e=document.title;return document.title="Page not found - Noir",()=>{document.title=e}},[]),t.jsx("div",{className:"min-h-screen w-full flex items-center justify-center bg-gray-50",children:t.jsx(E,{className:"w-full max-w-md mx-4",children:t.jsxs(k,{className:"pt-6",children:[t.jsxs("div",{className:"flex mb-4 gap-2",children:[t.jsx(Tt,{className:"h-8 w-8 text-red-500","aria-hidden":"true"}),t.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"404 Page Not Found"})]}),t.jsx("p",{className:"mt-4 text-sm text-gray-600",children:"Sorry, we couldn't find the page you were looking for."}),t.jsx(R,{href:"/",className:"mt-6 inline-flex items-center justify-center rounded-md bg-gray-900 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-gray-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-900 focus-visible:ring-offset-2",children:"Back to home"})]})})})}const _t="modulepreload",Ht=function(e){return"/"+e},be={},Xt=function(r,n,s){let o=Promise.resolve();if(n&&n.length>0){let i=function(m){return Promise.all(m.map(c=>Promise.resolve(c).then(u=>({status:"fulfilled",value:u}),u=>({status:"rejected",reason:u}))))};document.getElementsByTagName("link");const f=document.querySelector("meta[property=csp-nonce]"),p=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));o=i(n.map(m=>{if(m=Ht(m),m in be)return;be[m]=!0;const c=m.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${u}`))return;const l=document.createElement("link");if(l.rel=c?"stylesheet":_t,c||(l.as="script"),l.crossOrigin="",l.href=m,p&&l.setAttribute("nonce",p),document.head.appendChild(l),c)return new Promise((g,w)=>{l.addEventListener("load",g),l.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${m}`)))})}))}function a(i){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=i,window.dispatchEvent(f),!f.defaultPrevented)throw i}return o.then(i=>{for(const f of i||[])f.status==="rejected"&&a(f.reason);return r().catch(a)})},Jt="data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%2
450www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20stroke='%23000000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-arrow-up-right'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cline%20x1='7'%20y1='17'%20x2='17'%20y2='7'/%3e%3cpolyline%20points='7%207%2017%207%2017%2017'/%3e%3c/g%3e%3c/svg%3e",$t="data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20stroke='%23ffffff'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-arrow-up-right'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cline%20x1='7'%20y1='17'%20x2='17'%20y2='7'/%3e%3cpolyline%20points='7%207%2017%207%2017%2017'/%3e%3c/g%3e%3c/svg%3e";function er(){const[e,r]=d.useState(!1);return t.jsx("section",{"aria-labelledby":"hero-heading",className:"hero-background min-h-screen flex items-end",children:t.jsxs("div",{className:"hero-content flex flex-col items-left w-full max-w-[1440px] mx-auto",children:[t.jsx("h1",{id:"hero-heading",className:"w-full max-w-[953px] px-4 font-bold text-white text-5xl md:text-6xl lg:text-[64px] text-left tracking-[1.28px] leading-tight md:leading-[70.4px] mb-6 md:mb-8",children:"The Programming Language for Private Apps"}),t.jsx("p",{className:"w-full max-w-[741px] px-4 font-normal text-white text-xl md:text-2xl lg:text-2xl text-left tracking-[0.48px] leading-relaxed md:leading-[28.8px] mb-8 md:mb-16",children:"Noir is an open-source, zero-knowledge programming language that makes it easy to add privacy to Web2 and Web3 apps alike."}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 md:gap-6 px-4 mb-8 md:mb-3",children:[t.jsxs("a",{href:"/docs/",target:"_blank",rel:"noopener noreferrer",className:"h-[50px] md:h-[60px] px-6 md:px-[34.37px] py-4 md:py-[20.42px] bg-white rounded-[165.33px] font-normal text-black hover:bg-[#ffffff90] text-lg md:text-xl tracking-[0.40px] leading-[24.0px] w-full sm:w-auto flex items-center justify-center transition-colors duration-200",children:["Go to Docs",t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]}),t.jsxs("a",{href:"https://github.com/noir-lang/noir",target:"_blank",rel:"noopener noreferrer",className:"h-[50px] md:h-[60px] px-6 md:px-[34.37px] py-4 md:py-[20.42px] bg-[#191919] rounded-[165.33px] border border-solid border-[#ffffff80] font-normal text-white text-lg md:text-xl tracking-[0.40px] leading-[24.0px] hover:bg-white hover:text-black transition-colors duration-200 flex items-center justify-center gap-2",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:["View on Github",t.jsx("span",{className:"sr-only",children:"(opens in new tab)"}),t.jsx("img",{className:"w-6 md:w-[36.82px] h-6 md:h-[36.2px]",alt:"","aria-hidden":"true",src:e?Jt:$t})]})]})]})})}const tr=new Set(["fn","impl","trait","type","mod","use","struct","if","else","for","loop","while","enum","match","break","continue"]),rr=new Set(["global","comptime","quote","unsafe","unconstrained","pub","crate","mut","self","in","as","let"]),j={comment:"#6a9955",controlKeyword:"#c586c0",keyword:"#569cd6",type:"#4ec9b0",function:"#dcdcaa",number:"#b5cea8",constant:"#569cd6",string:"#ce9178"},nr=/^(?:(?:u|i)\d+|str|bool|field|Field)$|^_*[A-Z][a-zA-Z0-9_]*$/;function sr(e){const r=[];let n=0,s=!1;const o=(a,i)=>r.push({text:a,color:i});for(;n<e.length;){const a=e.slice(n),i=e[n],f=a.match(/^\s+/);if(f){o(f[0]),n+=f[0].length;continue}if(a.startsWith("//")){const c=a.indexOf(`
46`),u=c===-1?a:a.slice(0,c);o(u,j.comment),n+=u.length;continue}if(a.startsWith("/*")){const c=a.indexOf("*/"),u=c===-1?a:a.slice(0,c+2);o(u,j.comment),n+=u.length;continue}if(i==='"'){const c=a.match(/^"(?:\\.|[^"\\])*"?/);if(c){o(c[0],j.string),n+=c[0].length;continue}}const p=a.match(/^(?:0x[0-9a-fA-F]+|\d+(?:\.\d+)?)/);if(p){o(p[0],j.number),n+=p[0].length;continue}const m=a.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(m){const c=m[0],u=e.slice(n+c.length);let l;s?l=j.function:tr.has(c)?l=j.controlKeyword:rr.has(c)?l=j.keyword:c==="true"||c==="false"?l=j.constant:nr.test(c)?l=j.type:/^\s*(::<[^>
46]*>\s*)?\(/.test(u)&&(l=j.function),s=c==="fn",o(c,l),n+=c.length;continue}o(i),n+=1}return r}function ve({code:e,className:r}){const n=sr(e);return t.jsx("code",{className:r,children:n.map((s,o)=>t.jsx(d.Fragment,{children:s.color?t.jsx("span",{style:{color:s.color},children:s.text}):s.text},o))})}const we=`fn main(age: u8) -> pub bool {
47    // Check is user an adult without revealing their real age
48    age >= 18
49}`;function or(){return t.jsxs("section",{"aria-label":"Simple. Powerful. Private.",className:"mt-[100px] md:mt-[130px] px-4",children:[t.jsxs("div",{className:"flex flex-col items-center xl:hidden",children:[t.jsx("h2",{className:"font-bold text-white text-3xl md:text-4xl lg:text-5xl text-center tracking-[0.96px] leading-tight md:leading-[57.6px] mb-4 md:mb-5",children:"Simple. Powerful. Private."}),t.jsx("p",{className:"w-full max-w-[700px] font-normal text-white text-lg md:text-xl lg:text-2xl text-center tracking-[0.48px] leading-relaxed md:leading-[28.8px] mb-8 md:mb-10",children:"A zero-knowledge proof in just a few lines of code"}),t.jsx("div",{className:"w-full flex justify-center",children:t.jsxs(E,{className:"w-fit h-auto bg-[#1e1e1e] rounded-[12px] border border-solid border-[#333333] shadow-2xl overflow-hidden",children:[t.jsxs("div",{className:"flex items-center justify-between bg-[#2d2d2d] px-4 py-3 border-b border-[#404040]",children:[t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("div",{className:"w-3 h-3 bg-[#ff5f57] rounded-full"}),t.jsx("div",{className:"w-3 h-3 bg-[#ffbd2e] rounded-full"}),t.jsx("div",{className:"w-3 h-3 bg-[#28ca42] rounded-full"})]}),t.jsx("div",{className:"text-[#cccccc] text-sm font-medium",children:"main.nr"}),t.jsx("div",{className:"w-[54px]"})]}),t.jsx(k,{className:"p-6 bg-[#1e1e1e]",children:t.jsx("pre",{className:"text-left text-sm md:text-lg font-mono leading-relaxed overflow-x-auto",children:t.jsx(ve,{code:we,className:"text-[#d4d4d4]"})})})]})})]}),t.jsxs("div",{className:"hidden xl:flex items-center justify-center gap-16 2xl:gap-24 max-w-7xl mx-auto",children:[t.jsx("div",{className:"flex-shrink-0",children:t.jsxs(E,{className:"w-fit h-auto bg-[#1e1e1e] rounded-[12px] border border-solid border-[#333333] shadow-2xl overflow-hidden",children:[t.jsxs("div",{className:"flex items-center justify-between bg-[#2d2d2d] px-4 py-3 border-b border-[#404040]",children:[t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("div",{className:"w-3 h-3 bg-[#ff5f57] rounded-full"}),t.jsx("div",{className:"w-3 h-3 bg-[#ffbd2e] rounded-full"}),t.jsx("div",{className:"w-3 h-3 bg-[#28ca42] rounded-full"})]}),t.jsx("div",{className:"text-[#cccccc] text-sm font-medium",children:"main.nr"}),t.jsx("div",{className:"w-[54px]"})]}),t.jsx(k,{className:"p-6 bg-[#1e1e1e]",children:t.jsx("pre",{className:"text-left text-sm md:text-lg font-mono leading-relaxed overflow-x-auto",children:t.jsx(ve,{code:we,className:"text-[#d4d4d4]"})})})]})}),t.jsxs("div",{className:"flex flex-col justify-center items-center",children:[t.jsx("h2",{className:"font-bold text-white text-4xl xl:text-5xl text-center tracking-[0.96px] leading-tight mb-4 whitespace-nowrap",children:"Simple. Powerful. Private."}),t.jsx("p",{className:"font-normal text-white text-lg xl:text-xl text-center tracking-[0.48px] leading-relaxed whitespace-nowrap",children:"A zero-knowledge proof in just a few lines of code"})]})]})]})}const ar="/assets/Planets-Djxk1imu.png",ir="/assets/Shooting-Star-DpkJY71e.png",lr="/assets/Computer-Dq0YrJTY.png",cr="/assets/Noir-Face-DPguC35_.png",dr=[{icon:cr,title:"Simple",description:"Familiar syntax inspired by Rust, with accessible documentations and intuitive tooling."},{icon:lr,title:"Performant",description:"Optimized with best-in-class efficiency and minimal overhead for your ZK applications."},{icon:ir,title:"Versatile",description:"Deployable anywhere: blockchains, servers, browsers, mobile phones, or purely CLI if you wish."},{icon:ar,title:"Backend Agnostic",description:"Works with any proving backend. Access different proving technologies using the same code."}];function fr(){return t.jsx("section",{"aria-labelledby":"features-heading",className:"hero-gradient flex flex-col items-center mt-[100px] px-4 py-16 md:py-24",children:t.jsxs("div",{className:"w-full max-w-[1440px] mx-auto flex flex-col items-center",children:[t.jsx("h2",{id:"features-heading",className:"font-bold text-white text-3xl md:text-4xl lg:text-5xl text-center tracking-[0.96px] leading-tight md:leading-[57.6px] mb-4 md:mb-5",children:"Why Choose Noir?"}),t.jsx("p",{className:"w-full max-w-[700px] font-normal text-white text-lg md:text-xl lg:text-2xl text-center tracking-[0.48px] leading-relaxed md:leading-[28.8px] mb-8 md:mb-10",children:"Noir combines the best of modern programming languages with the power of zero-knowledge proofs"}),t.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 md:gap-6 w-full max-w-7xl [&>*]:h-full",children:dr.map((e,r)=>t.jsx(E,{className:"bg-[#191919] rounded-[16.33px] border border-solid border-[#ffffff80] flex flex-col h-full",children:t.jsxs(k,{className:"p-4 md:p-6 flex flex-col flex-grow",children:[t.jsx("div",{className:"w-[100px] h-[100px] bg-[#191919] mb-6 md:mb-8 flex items-center justify-center flex-shrink-0",children:t.jsx("img",{className:"w-full h-full object-contain",alt:"",src:e.icon,loading:"lazy",decoding:"async"})}
49),t.jsx("div",{className:"min-h-[3.5rem] md:min-h-[4rem] mb-4 md:mb-6 flex items-end",children:t.jsx("h3",{className:"font-bold text-white text-xl md:text-[26px] tracking-[0] leading-tight md:leading-[28.6px] break-words",children:e.title})}),t.jsx("p",{className:"font-normal text-[#cccccc] text-sm md:text-base tracking-[0] leading-relaxed md:leading-[19.2px] break-words overflow-wrap-anywhere flex-grow",children:e.description})]})},r))})]})})}const mr=Ve("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring 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 shadow hover:bg-primary/0 hover:border hover:background-transparent hover:text-primary-foreground",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),M=d.forwardRef(({className:e,variant:r,size:n,asChild:s=!1,...o},a)=>{const i=s?He:"button";return t.jsx(i,{className:y(mr({variant:r,size:n,className:e})),ref:a,...o})});M.displayName="Button";const ur="https://github.com/noir-lang/awesome-noir",xr=[{name:"Payy",url:"https://payy.network/",sourceUrl:"https://github.com/polybase/payy",description:"private stablecoin payments",logo:"https://www.google.com/s2/favicons?domain=payy.network&sz=128",section:"Applications",category:"Finance"},{name:"Stellar Confidential Tokens",url:"https://developers.stellar.org/docs/build/apps/privacy#confidential-tokens",sourceUrl:"https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/confidential",description:"Stellar token standard with private balances and transfer amounts",logo:"https://www.google.com/s2/favicons?domain=developers.stellar.org&sz=128",section:"Applications",category:"Finance"},{name:"Zerosats",url:"https://github.com/zerosats/zerosats",sourceUrl:"https://github.com/zerosats/zerosats",description:"private Bitcoin payments",logo:"https://github.com/zerosats.png?size=200",section:"Applications",category:"Finance"},{name:"anoncast",url:"https://anoncast.org/",sourceUrl:"https://github.com/Slokh/anoncast",description:"anonymous X and Farcaster posting",logo:"https://www.google.com/s2/favicons?domain=anoncast.org&sz=128",section:"Applications",category:"Social"},{name:"Aztec",url:"https://aztec.network/",sourceUrl:"https://github.com/AztecProtocol/aztec-packages",description:"privacy-first blockchain supporting smart contracts in Noir",logo:"https://www.google.com/s2/favicons?domain=aztec.network&sz=128",section:"Applications",category:"Infrastructure"},{name:"Interfold",url:"https://www.theinterfold.com/",sourceUrl:"https://github.com/gnosisguild/interfold",description:"private shared state protocol",logo:"https://www.google.com/s2/favicons?domain=theinterfold.com&sz=128",section:"Applications",category:"Infrastructure"},{name:"ZKPassport",url:"https://zkpassport.id/",sourceUrl:null,description:"proving information in national passports",logo:"https://www.google.com/s2/favicons?domain=zkpassport.id&sz=128",section:"SDK",category:"SDK"},{name:"ZKProofport",url:"https://zkproofport.app",sourceUrl:null,description:"proving Coinbase attestations, Google Workspace and Microsoft 365 memberships",logo:"https://www.google.com/s2/favicons?domain=zkproofport.app&sz=128",section:"SDK",category:"SDK"},{name:"ZK Email",url:"https://zk.email/",sourceUrl:null,description:"proving email senders and/or contents",logo:"https://www.google.com/s2/favicons?domain=zk.email&sz=128",section:"SDK",category:"SDK"}],Ke={sourceUrl:ur,projects:xr},pr=Ke.projects,hr=90,gr=6,ye=3e3,br={Finance:"#C77DFF",Social:"#FF8401",Infrastru
49cture:"#5B9DFF",SDK:"#5EE7FF"},vr=e=>br[e]??"#C77DFF",wr=e=>e&&e.replace("sz=128","sz=256").replace("size=200","size=400"),yr=e=>{if(e)try{const{protocol:r}=new URL(e,window.location.origin);return r==="https:"||r==="http:"?e:void 0}catch{return}};function jr({project:e,ring:r}){return t.jsxs("div",{className:"w-16 h-16 rounded-[12px] overflow-hidden border bg-white flex items-center justify-center shrink-0 p-1.5",style:{borderColor:r??"#ffffff20"},children:[e.logo?t.jsx("img",{src:wr(e.logo)??void 0,alt:`${e.name} logo`,className:"w-full h-full object-contain pointer-events-none",draggable:!1,loading:"lazy",decoding:"async",onError:n=>{const s=n.target;s.style.display="none";const o=s.nextElementSibling;o&&(o.style.display="flex")}}):null,t.jsx("span",{className:"w-full h-full items-center justify-center font-bold text-[#191919] text-2xl",style:{display:e.logo?"none":"flex"},children:e.name.charAt(0).toUpperCase()})]})}function Nr({project:e,clone:r=!1}){const n=vr(e.category);return t.jsxs("a",{href:yr(e.url),target:"_blank",rel:"noopener noreferrer",draggable:!1,"aria-hidden":r||void 0,tabIndex:r?-1:void 0,className:"group block w-[82vw] max-w-[300px] md:w-[330px] shrink-0 h-full bg-[#191919] rounded-[16px] border border-[#ffffff26] overflow-hidden select-none transition-transform duration-300 hover:-translate-y-1 focus-visible:outline-none focus-visible:ring-0 focus-visible:[outline:2px_solid_white] focus-visible:[outline-offset:2px]",style:{boxShadow:"0 8px 24px rgba(0,0,0,0.35)"},children:[t.jsx("div",{className:"relative h-[110px] flex items-center justify-center",style:{background:`linear-gradient(135deg, ${n}40 0%, #191919 85%)`},children:t.jsx(jr,{project:e,ring:`${n}80`})}),t.jsxs("div",{className:"p-6 flex flex-col",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2 mb-2",children:[t.jsx("h3",{className:"font-bold text-white text-lg md:text-xl truncate",children:e.name}),t.jsx("span",{className:"font-medium text-xs shrink-0",style:{color:n},children:e.category})]}),t.jsx("p",{className:"font-normal text-[#cccccc] text-sm md:text-base leading-relaxed line-clamp-2 min-h-[3.25em]",children:e.description})]}),t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]})}function Cr(){const e=d.useRef(null),r=d.useRef(null),n=d.useRef({pointerDown:!1,dragging:!1,startX:0,startScroll:0,hovering:!1,focused:!1,pausedUntil:0});return d.useEffect(()=>{const s=e.current,o=r.current;if(!s||!o)return;const a=window.matchMedia("(prefers-reduced-motion: reduce)").matches;let i=o.scrollWidth/3,f=i;const p=x=>i<=0?x:x>=2*i?x-i:x<i?x+i:x,m=()=>{const x=p(s.scrollLeft);x!==s.scrollLeft&&(s.scrollLeft=x)};s.scrollLeft=i;const c=new ResizeObserver(()=>{const x=i,h=o.scrollWidth/3;h<=0||(i=h,x>0&&(f=p(f/x*h),s.scrollLeft=f))});c.observe(o);const u=x=>{n.current.pausedUntil=x+ye};let l=0,g=0,w=!1;const v=x=>{g||(g=x);const h=(x-g)/1e3;g=x;const N=n.current;x>=N.pausedUntil&&!N.dragging&&!N.hovering&&!N.focused?(f=p(f+i/hr*h),s.scrollLeft=f):(m(),f=s.scrollLeft),l=requestAnimationFrame(v)},b=()=>{w||a||(w=!0,g=0,f=s.scrollLeft,l=requestAnimationFrame(v))},q=()=>{w&&(w=!1,cancelAnimationFrame(l))};let z=!1;const K=new IntersectionObserver(x=>{var h;z=((h=x[0])==null?void 0:h.isIntersecting)??!1,z&&!document.hidden?b():q()},{threshold:0});K.observe(s);const Z=()=>{!document.hidden&&z?b():q()};document.addEventListener("visibilitychange",Z);const _=()=>{w||m()};s.addEventListener("scroll",_,{passive:!0});const H=x=>u(x.timeStamp),X=x=>u(x.timeStamp),J=x=>{if(u(x.timeStamp),x.pointerType!=="mouse")return;const h=n.current;h.pointerDown=!0,h.dragging=!1,h.startX=x.clientX,h.startScroll=s.scrollLeft},$=x=>{const h=n.current;if(!h.pointerDown||x.pointerType!=="mouse")return;const N=x.clientX-h.startX;!h.dragging&&Math.abs(N)<gr||(h.dragging||(h.dragging=!0,s.setPointerCapture(x.pointerId),s.style.cursor="grabbing"),s.scrollLeft=h.startScroll-N,m())},A=x=>{const h=n.current;h.pointerDown&&(h.pointerDown=!1,h.pausedUntil=x.timeStamp+ye,s.style.cursor="",s.hasPointerCapture(x.pointerId)&&s.releasePointerCapture(x.pointerId),h.dragging&&requestAnimationFrame(()=>{h.dragging=!1}))},ee=x=>{n.current.dragging&&(x.stopPropagation(),x.preventDefault())},te=x=>{x.pointerType==="mouse"&&(n.current.hovering=!0)},re=x=>{x.pointerType==="mouse"&&(n.current.hovering=!1)},ne=()=>{n.current.focused=!0},se=()=>{n.current.focused=!1};return s.addEventListener("wheel",H,{passive:!0}),s.addEventListener("touchmove",X,{passive:!0}),s.addEventListener("pointerdown",J),s.addEventListener("pointermove",$),s.addEventListener("pointerup",A),s.addEventListener("pointercancel",A),s.addEventListener("click",ee,!0),s.addEventListener("pointerenter",te),s.addEventListener("pointerleave",re),s.addEventListener("focusin",ne),s.addEventListener("focusout",se),()=>{cancelAnimationFrame(l),K.disconnect(),c.disconnect(),document.removeEventListener("visibilitychange",Z),s.removeEventListener("scroll",_),s.removeEventListener("wheel",H),s.removeEventListener("touchmove",X),s.removeEventListener("pointerdown",J),s.removeEventListener("pointermove",$),s.removeEventListener("pointerup",A),s.removeEventListener("pointercancel",A),s.removeEventListener("click",ee,!0),s.removeEventListener("pointerenter",te),s.removeEventListener("pointerleave",re),s.removeEventListener("focusin",ne),s.removeEventListener("focusout",se)}},[]),t.jsxs("section",{"aria-labelledby":"ecosystem-heading",className:"flex flex-col items-center mt-[100px] md:mt-[130px] mb-16",children:[t.jsx("h2",{id:"ecosystem-heading",className:"font-bold text-white text-3xl md:text-4xl lg:text-5xl text-center tracking-[0.96px] leading-tight md:leading-[57.6px] mb-6 md:mb-8 px-4",children:"Ecosystem"}),t.jsx("p",{className:"font-normal text-white text-lg md:text-xl lg:text-2xl text-center tracking-[0.48px] leading-relaxed md:leading-[28.8px] max-w-[800px] mx-auto mb-12 md:mb-16 px-4",children:"Projects building with Noir."}),t.jsx("div",{ref:e,className:"w-full overflow-x-auto overscroll-x-contain cursor-grab select-none py-4 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",style:{maskImage:"linear-gradient(to right, transparent, black 5%, black 95%, transparent)",WebkitMaskImage:"linear-gradient(to right, transparent, black 5%, black 95%, transparent)"},children:t.jsx("div",{ref:r,className:"flex w-max gap-4 md:gap-5 items-stretch px-4",children:[0,1,2].map(s=>t.jsx(d.Fragment,{children:pr.map((o,a)=>t.jsx(Nr,{project:o,clone:s!==1},`${o.section}-${o.name}-${a}`))},s))})}),t.jsx("div",{className:"mt-12 md:mt-16 px-4",children:t.jsx(M,{asChild:!0,variant:"outline",className:"h-[50px] md:h-[60px] px-6 md:px-[34.37px] py-4 md:py-[20.42px] bg-[#191919] rounded-[165.33px] border border-solid border-[#ffffff80] hover:border-[#ffffff] font-normal text-white text-lg md:text-xl tracking-[0.40px] leading-[24.0px] transition-all duration-200",children:t.jsxs("a",{href:Ke.sourceUrl,target:"_blank",rel:"noopener noreferrer",children:["View on Awesome Noir",t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]})})})]})}const Er=[{rank:1,login:"TomAFrench",id:15848336,avatar_url:"https://avatars.githubusercontent.com/u/15848336?v=4",html_url:"https://github.com/TomAFrench",commits:2420,dataType:"commit counts"},{rank:2,login:"kevaundray",id:37423678,avatar_url:"https://avatars.githubusercontent.com/u/37423678?v=4",html_url:"https://github.com/kevaundray",commits:1496,dataType:"commit counts"},{rank:3,login:"asterite",id:209371,avatar_url:"https://avatars.githubusercontent.com/u/209371?v=4",html_url:"https://github.com/asterite",commits:1311,dataType:"commit counts"},{rank:4,login:"vezenovm",id:43554004,avatar_url:"https://avatars.githubusercontent.com/u/43554004?v=4",html_url:"https://github.com/vezenovm",commits:780,dataType:"commit counts"},{rank:5,login:"guipublic",id:47281315,avatar_url:"https://avatars.githubusercontent.com/u/47281315?v=4",html_url:"https://github.com/guipublic",commits:637,dataType:"commit counts"}],kr={contributors:Er},Ar=e=>{if(e)try{const{protocol:r}=new URL(e,window.location.origin);return r==="https:"||r==="http:"?e:void 0}catch{return}};function Sr(){const e=kr.contributors;
49return t.jsxs("section",{"aria-labelledby":"contributors-heading",className:"flex flex-col items-center mt-[100px] md:mt-[130px] mb-16 px-4",children:[t.jsx("h2",{id:"contributors-heading",className:"font-bold text-white text-3xl md:text-4xl lg:text-5xl text-center tracking-[0.96px] leading-tight mb-12 md:mb-8",children:"Our Top Contributors"}),t.jsx("p",{className:"font-normal text-white text-lg md:text-xl lg:text-2xl text-center tracking-[0.48px] leading-relaxed md:leading-[28.8px] max-w-[800px] mx-auto mb-16 md:mb-20",children:"Noir is fully open sourced with a 100+ contributor community. We believe in building cryptographic tools that are transparent, auditable, and accessible to everyone."}),t.jsx("div",{className:"flex flex-wrap justify-center gap-8 md:gap-12 w-full max-w-4xl",children:e.map(r=>t.jsxs("div",{className:"flex flex-col items-center group cursor-pointer",children:[t.jsxs("a",{href:Ar(r.html_url),target:"_blank",rel:"noopener noreferrer",className:"transition-transform duration-200 group-hover:scale-110",children:[t.jsx("div",{className:"w-20 h-20 md:w-24 md:h-24 lg:w-28 lg:h-28 rounded-full overflow-hidden border-4 border-[#ffffff20] group-hover:border-[#ffffff60] transition-colors duration-200 bg-[#191919]",children:t.jsx("img",{src:r.avatar_url,alt:"",className:"w-full h-full object-cover",loading:"lazy",decoding:"async",onError:n=>{const s=n.target;s.src=`https://via.placeholder.com/100x100/333333/ffffff?text=${r.login.charAt(0).toUpperCase()}`}})}),t.jsxs("span",{className:"sr-only",children:[r.login,"'s GitHub profile (opens in new tab)"]})]}),t.jsxs("p",{className:"mt-3 font-medium text-white text-sm md:text-base tracking-[0.32px] leading-4",children:[r.commits.toLocaleString()," commits"]}),t.jsxs("p",{className:"mt-1 font-normal text-[#ffffff80] text-xs md:text-sm tracking-[0.24px] leading-4",children:["@",r.login]})]},r.id))}),t.jsx("div",{className:"mt-8 md:mt-12",children:t.jsx(M,{asChild:!0,variant:"outline",className:"h-[50px] md:h-[60px] px-6 md:px-[34.37px] py-4 md:py-[20.42px] bg-[#191919] rounded-[165.33px] border border-solid border-[#ffffff80] hover:border-[#ffffff] font-normal text-white text-lg md:text-xl tracking-[0.40px] leading-[24.0px] transition-all duration-200",children:t.jsxs("a",{href:"https://github.com/noir-lang/noir/graphs/contributors?all=1",target:"_blank",rel:"noopener noreferrer",children:["View on GitHub",t.jsx("span",{className:"sr-only",children:"(opens in new tab)"})]})})})]})}const Ir=d.lazy(()=>Xt(()=>import("./Newsletter-Cj3GZl75.js"),__vite__mapDeps([0,1,2,3])).then(e=>({default:e.Newsletter})));function Rr(){return t.jsxs("div",{className:"overflow-hidden w-full relative bg-[#191919]",children:[t.jsx(er,{}),t.jsx("div",{className:"bg-[#191919] max-w-[1440px] mx-auto",children:t.jsx(or,{})}),t.jsx(fr,{}),t.jsxs("div",{className:"bg-[#191919] max-w-[1440px] mx-auto",children:[t.jsx(Cr,{}),t.jsx(Sr,{}),t.jsx(d.Suspense,{fallback:t.jsx("div",{className:"min-h-[420px]","aria-hidden":"true"}),children:t.jsx(Ir,{})})]})]})}function Lr(){return t.jsx(Ut,{children:t.jsxs(jt,{children:[t.jsx(xe,{path:"/",component:Rr}),t.jsx(xe,{component:Zt})]})})}function Tr(){return t.jsxs(t.Fragment,{children:[t.jsx(Dt,{}),t.jsx(Lr,{}),t.jsx(Yt,{})]})}const O=document.getElementById("root"),je=t.jsx(Qe,{children:t.jsx(Tr,{})});O.hasChildNodes()?ae.hydrateRoot(O,je):ae.createRoot(O).render(je);export{M as B,Ve as a,y as c,St as u};

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.