PageSourceSearch

https://v0-ethical-ai-framework-explorer.vercel.app/_next/static/chunks/0yx9zejce9oy2.js

js v0-ethical-ai-framework-explorer.vercel.app collected 2026-10-03 07:57:53 UTC 27,446 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,71344,e=>{"use strict";var r=e.i(72673),t=e.i(47163);e.s(["FrameworkBadge",0,function({framework:e,className:s,size:a="md"}){return(0,r.jsx)("span",{className:(0,t.cn)("inline-flex items-center justify-center rounded font-mono font-medium border border-border shrink-0",{sm:"w-6 h-6 text-[10px]",md:"w-8 h-8 text-xs",lg:"w-10 h-10 text-sm"}[a],s),style:{backgroundColor:`color-mix(in oklch, ${e.accent} 18%, var(--background))`,color:`color-mix(in oklch, ${e.accent} 70%, var(--foreground))`},"aria-hidden":!0,children:e.initials})}])},6789,e=>{"use strict";let r=(0,e.i(31763).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,r],6789)},32578,e=>{"use strict";let r=(0,e.i(31763).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",0,r],32578)},35247,e=>{"use strict";var r=e.i(72673),t=e.i(73447),s=e.i(98202),a=e.i(71344),i=e.i(6789),o=e.i(31763);let n=(0,o.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),d=(0,o.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var c=e.i(32578),l=e.i(47163);let m=[{id:"purpose",label:"Purpose",description:"What is the framework for?",get:e=>e.purpose},{id:"audience",label:"Audience",description:"Who is it written for?",get:e=>e.audience},{id:"unitOfAnalysis",label:"Unit of analysis",description:"What does the framework analyze?",get:e=>e.unitOfAnalysis},{id:"lifecycle",label:"Lifecycle coverage",description:"Where in the AI lifecycle does it apply?",get:e=>e.lifecycleCoverage},{id:"outputs",label:"Outputs",description:"What does using it produce?",get:e=>e.outputs},{id:"cautions",label:"Cautions",description:"Limits to be honest about.",get:e=>e.cautions}];function u(){let[e,o]=(0,t.useState)(["unesco","oecd","nist-ai-rmf","ieee-certifaied"]),[u,p]=(0,t.useState)(["purpose","audience","unitOfAnalysis","lifecycle","outputs","cautions"]),[x,h]=(0,t.useState)(new Set),f=(0,t.useMemo)(()=>s.FRAMEWORK_LIST.filter(r=>e.includes(r.id)),[e]),g=(0,t.useMemo)(()=>m.filter(e=>u.includes(e.id)),[u]);return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-card p-5",children:[(0,r.jsxs)("div",{className:"grid md:grid-cols-2 gap-6",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs uppercase tracking-widest text-muted-foreground mb-3",children:"Frameworks · select 2 to 6"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2",children:s.FRAMEWORK_LIST.map(t=>{let s=e.includes(t.id);return(0,r.jsxs)("button",{type:"button",onClick:()=>{var e;return e=t.id,void o(r=>r.includes(e)?r.filter(r=>r!==e):r.length>=6?r:[...r,e])},"aria-pressed":s,className:(0,l.cn)("inline-flex items-center gap-2 px-2.5 py-1.5 rounded-md border text-sm transition-colors",s?"border-foreground
1/40 bg-secondary":"border-border text-muted-foreground hover:text-foreground"),children:[(0,r.jsx)(a.FrameworkBadge,{framework:t,size:"sm"}),(0,r.jsx)("span",{children:t.shortName}),s&&(0,r.jsx)(i.Check,{className:"w-3.5 h-3.5","aria-hidden":!0})]},t.id)})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs uppercase tracking-widest text-muted-foreground mb-3",children:"Comparison lenses"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2",children:m.map(e=>{let t=u.includes(e.id);return(0,r.jsx)("button",{type:"button",onClick:()=>{var r;return r=e.id,void p(e=>e.includes(r)?e.filter(e=>e!==r):[...e,r])},"aria-pressed":t,className:(0,l.cn)("px-2.5 py-1.5 rounded-md border text-xs transition-colors",t?"border-foreground/40 bg-secondary":"border-border text-muted-foreground hover:text-foreground"),title:e.description,children:e.label},e.id)})})]})]}),(0,r.jsxs)("div",{className:"border-t border-border mt-5 pt-4 flex flex-wrap items-center gap-3 justify-between",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground max-w-xl",children:"Cells show short summaries with citations; the matrix never asserts equivalence between frameworks. Pin cells you want to keep across re-renders."}),(0,r.jsxs)("button",{type:"button",onClick:function(){let e=new Blob([[["Lens",...f.map(e=>e.shortName)],...g.map(e=>[e.label,...f.map(r=>`"${e.get(r).replace(/"/g,'""')}"`)]),[],["Source",...["",...f.map(e=>`${e.sourceUrl} (${e.lastReviewedAt})`)].slice(1)]].map(e=>e.join(",")).join("\n")],{type:"text/csv;charset=utf-8"}),r=URL.createObjectURL(e),t=document.createElement("a");t.href=r,t.download="lattice-comparison.csv",t.click(),URL.revokeObjectURL(r)},className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-md border border-border text-xs font-medium hover:bg-secondary",children:[(0,r.jsx)(c.Download,{className:"w-3.5 h-3.5","aria-hidden":!0}),"Export CSV"]})]})]}),(0,r.jsx)("div",{className:"rounded-lg border border-border overflow-hidden bg-card",children:(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full border-collapse text-sm",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{className:"bg-secondary/40",children:[(0,r.jsx)("th",{scope:"col",className:"text-left p-3 border-b border-r border-border min-w-[160px] sticky left-0 bg-secondary/40 z-10",children:(0,r.jsx)("span",{className:"text-[10px] uppercase tracking-widest text-muted-foreground",children:"Lens"})}),f.map(e=>(0,r.jsx)("th",{scope:"col",className:"text-left p-3 border-b border-border min-w-[220px] align-top",children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)(a.FrameworkBadge,{framework:e,size:"sm"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"font-medium leading-tight",children:e.shortName}),(0,r.jsx)("div",{className:"text-[10px] text-muted-foreground mt-0.5",children:e.version})]})]})},e.id))]})}),(0,r.jsx)("tbody",{children:g.map(e=>(0,r.jsxs)("tr",{className:"align-top",children:[(0,r.jsxs)("th",{scope:"row",className:"text-left p-3 border-b border-r border-border bg-background sticky left-0",children:[(0,r.jsx)("div",{className:"font-medium",children:e.label}),(0,r.jsx)("div",{className:"text-[11px] text-muted-foreground mt-0.5 leading-snug max-w-[160px]",children:e.description})]}),f.map(t=>{let s=`${e.id}.${t.id}`,a=x.has(s);return(0,r.jsxs)("td",{className:(0,l.cn)("p-3 border-b border-l border-border align-top",a&&"bg-accent/10"),children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,r.jsx)("p",{className:"text-foreground/90 leading-relaxed",children:e.get(t)}),(0,r.jsx)("button",{type:"button",onClick:()=>{h(e=>{let r=new Set(e);return r.has(s)?r.delete(s):r.add(s),r})},"aria-pressed":a,"aria-label":a?"Unpin cell":"Pin cell",className:"text-muted-foreground hover:text-foreground shrink-0",children:a?(0,r.jsx)(n,{className:"w-3.5 h-3.5","aria-hidden":!0}):(0,r.jsx)(d,{className:"w-3.5 h-3.5","aria-hidden":!0})})]}),(0,r.jsxs)("a",{href:t.sourceUrl,target:"_blank",rel:"noopener noreferrer",className:"mt-2 inline-block text-[11px] text-muted-foreground underline decoration-dotted underline-offset-2 hover:text-foreground",children:[t.publisher," · ",t.lastReviewedAt]})]},t.id)})]},e.id))})]})})}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground max-w-2xl",children:"Lattice does not assert equivalence between cells. Where frameworks are silent on a lens, the cell shows scope honestly rather than manufacturing a match."})]})}var p=e.i(92892);let x=(0,o.default)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),h=["relates_to","informs","partially_addresses","out_of_scope"];function f(){let[e,i]=(0,t.useState)("unesco.p.human-oversight"),[o,n]=(0,t.useState)(""),d=(0,t.useMemo)(()=>(0,s.getItem)(e),[e]),c=(0,t.useMemo)(()=>d?s.RELATIONSHIPS.filter(e=>e.fromId===d.id||e.toId===d.id).map(e=>({rel:e,otherId:e.fromId===d.id?e.toId:e.fromId})):[],[d]),m=(0,t.useMemo)(()=>h.map(e=>({type:e,list:c.filter(r=>r.rel.type===e)})),[c]),u=(0,t.useMemo)(()=>
1{if(!o.trim())return s.ITEMS.slice(0,12);let e=o.toLowerCase();return s.ITEMS.filter(r=>r.title.toLowerCase().includes(e)||r.code.toLowerCase().includes(e)||s.FRAMEWORKS[r.frameworkId].shortName.toLowerCase().includes(e)).slice(0,30)},[o]);return(0,r.jsxs)("div",{className:"grid lg:grid-cols-12 gap-6",children:[(0,r.jsx)("aside",{className:"lg:col-span-4",children:(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 sticky top-20",children:[(0,r.jsx)("div",{className:"text-xs uppercase tracking-widest text-muted-foreground mb-2",children:"Anchor item"}),(0,r.jsxs)("div",{className:"relative mb-3",children:[(0,r.jsx)(p.Search,{className:"absolute left-2.5 top-2.5 w-4 h-4 text-muted-foreground","aria-hidden":!0}),(0,r.jsx)("input",{type:"search",value:o,onChange:e=>n(e.target.value),placeholder:"Search principles, controls, tactics...",className:"w-full pl-8 pr-3 py-2 text-sm rounded-md border border-border bg-background focus:outline-none focus:ring-2 focus:ring-ring","aria-label":"Search framework items"})]}),(0,r.jsxs)("ul",{className:"max-h-[440px] overflow-y-auto -mx-1",children:[u.map(t=>{let o=s.FRAMEWORKS[t.frameworkId],n=t.id===e;return(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>i(t.id),className:(0,l.cn)("w-full text-left flex items-start gap-2 px-2 py-2 rounded-md hover:bg-secondary",n&&"bg-secondary"),"aria-pressed":n,children:[(0,r.jsx)(a.FrameworkBadge,{framework:o,size:"sm"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-sm font-medium leading-tight truncate",children:t.title}),(0,r.jsxs)("div",{className:"text-[11px] text-muted-foreground truncate",children:[o.shortName," · ",t.code]})]})]})},t.id)}),0===u.length&&(0,r.jsx)("li",{className:"px-2 py-3 text-xs text-muted-foreground",children:"No items match."})]})]})}),(0,r.jsxs)("div",{className:"lg:col-span-8 space-y-6",children:[d&&(0,r.jsx)("div",{className:"rounded-lg border border-border bg-card p-6",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)(a.FrameworkBadge,{framework:s.FRAMEWORKS[d.frameworkId],size:"lg"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsxs)("div",{className:"text-xs uppercase tracking-widest text-muted-foreground",children:[s.FRAMEWORKS[d.frameworkId].shortName," · ",d.code]}),(0,r.jsx)("h2",{className:"font-serif text-2xl tracking-tight mt-1",children:d.title}),(0,r.jsxs)("p",{className:"text-sm text-foreground/80 mt-3 leading-relaxed",children:["“",d.excerpt,"”"]})]})]})}),(0,r.jsxs)("div",{className:"rounded-md border border-destructive/30 bg-destructive/5 p-3 text-xs text-foreground/80 flex items-start gap-2",children:[(0,r.jsx)(x,{className:"w-4 h-4 mt-0.5 text-destructive shrink-0","aria-hidden":!0}),(0,r.jsxs)("p",{children:[(0,r.jsx)("span",{className:"font-medium",children:"‘Equivalent’ is not an allowed relationship."})," ","Lattice uses four explicit types — relates_to, informs, partially_addresses, out_of_scope — each with a rationale and an editorial reviewer credit."]})]}),(0,r.jsx)(g,{}),(0,r.jsx)("div",{className:"space-y-6",children:m.map(({type:e,list:t})=>(0,r.jsxs)("section",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,r.jsx)("span",{className:"w-2.5 h-2.5 rounded-full",style:{backgroundColor:s.RELATIONSHIP_COLORS[e]},"aria-hidden":!0}),(0,r.jsx)("h3",{className:"text-sm font-medium",children:s.RELATIONSHIP_LABELS[e]}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground font-mono",children:t.length})]}),0===t.length?(0,r.jsx)("p",{className:"text-xs text-muted-foreground border border-dashed border-border rounded-md px-3 py-3",children:"No relationships of this type for the selected anchor."}):(0,r.jsx)("ul",{className:"space-y-2",children:t.map(({rel:e,otherId:t})=>{let o=(0,s.getItem)(t);if(!o)return null;let n=s.FRAMEWORKS[o.frameworkId];return(0,r.jsx)("li",{className:"rounded-md border border-border bg-card p-4",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)(a.FrameworkBadge,{framework:n,size:"sm"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-3 flex-wrap",children:[(0,r.jsx)("button",{type:"button",onClick:()=>i(o.id),className:"font-medium hover:underline underline-offset-4 decoration-dotted text-left",children:o.title}),(0,r.jsxs)("span",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:[n.shortName," · ",o.code]})]}
1),(0,r.jsx)("p",{className:"text-sm text-foreground/80 mt-2 leading-relaxed",children:e.rationale}),(0,r.jsxs)("div",{className:"text-[11px] text-muted-foreground mt-2",children:["Reviewer: ",e.reviewer," · Reviewed"," ",e.reviewedAt]})]})]})},`${e.fromId}-${e.toId}`)})})]},e))})]})]})}function g(){return(0,r.jsxs)("div",{className:"rounded-md border border-border bg-secondary/30 p-4",children:[(0,r.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground mb-2",children:"Relationship vocabulary"}),(0,r.jsxs)("dl",{className:"grid sm:grid-cols-2 gap-x-6 gap-y-2 text-xs",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("dt",{className:"font-medium",children:"relates_to"}),(0,r.jsx)("dd",{className:"text-muted-foreground",children:"Both items address an overlapping concern; not a substitute for one another."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("dt",{className:"font-medium",children:"informs"}),(0,r.jsx)("dd",{className:"text-muted-foreground",children:"One item shapes the design intent of the other."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("dt",{className:"font-medium",children:"partially_addresses"}),(0,r.jsx)("dd",{className:"text-muted-foreground",children:"One item covers part of the other's concern; remaining gaps are explicit."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("dt",{className:"font-medium",children:"out_of_scope"}),(0,r.jsx)("dd",{className:"text-muted-foreground",children:"Treating the items as overlapping would flatten distinct authorities or domains."})]})]})]})}var b=e.i(61946);let v={deep:"Direct & detailed",addresses:"Addresses",indirect:"Indirect / informs",out_of_scope:"Out of scope"},y={deep:"bg-chart-1/15 border-chart-1/40 text-foreground",addresses:"bg-chart-2/15 border-chart-2/40 text-foreground",indirect:"bg-secondary/70 border-border text-foreground/80",out_of_scope:"bg-background border-dashed border-border text-muted-foreground"},j=[{id:"fairness",label:"Fairness & non-discrimination",description:"Disparate impact, equity of access, social-justice considerations.",matrix:{unesco:{coverage:"deep",itemId:"unesco.p.fairness",note:"Principle grounded in international human rights law; broad social scope."},"ieee-certifaied":{coverage:"deep",itemId:"ieee.c.algorithmic-bias",note:"Operational criterion with measurement and mitigation evidence."},"nist-ai-rmf":{coverage:"addresses",itemId:"nist.sc.measure-2.11",note:"Trustworthiness characteristic measured under MEASURE 2.11."},oecd:{coverage:"indirect",itemId:"oecd.d.people-planet.rights",note:"Classification dimensions surface affected populations and rights."},"mitre-atlas":{coverage:"out_of_scope",note:"Security-scoped; does not address fairness."},ocap:{coverage:"out_of_scope",note:"Anchored in self-determination, not a generic fairness regime."}}},{id:"transparency",label:"Transparency & explainability",description:"Disclosure of system behavior, capabilities, and limits to stakeholders.",matrix:{unesco:{coverage:"deep",itemId:"unesco.p.transparency",note:"Treats transparency as a precondition for human-rights protection."},"ieee-certifaied":{coverage:"deep",itemId:"ieee.c.transparency",note:"Stakeholder-tailored disclosure with traceability sub-criteria."},"nist-ai-rmf":{coverage:"addresses",itemId:"nist.c.measure-2",note:"Trustworthiness characteristic; explainability evaluated."},oecd:{coverage:"addresses",itemId:"oecd.d.ai-model.explainability",note:"Explainability is one of the AI Model dimension attributes."},"mitre-atlas":{coverage:"indirect",note:"Disclosure discipline appears as a mitigation against reconnaissance."},ocap:{coverage:"out_of_scope",note:"Not a transparency framework in the CertifAIEd sense."}}},{id:"privacy",label:"Privacy & data protection",description:"Lawful basis, minimization, individual control over data uses.",matrix:{unesco:{coverage:"deep",itemId:"unesco.p.privacy",note:"Privacy is a stand-alone principle."},"ieee-certifaied":{coverage:"deep",itemId:"ieee.c.privacy",note:"Operational criterion with minimization and consent sub-criteria."},oecd:{coverage:"addresses",itemId:"oecd.d.data-input",note:"Data & Input dimension surfaces rights status of data."},"nist-ai-rmf":{coverage:"addresses",itemId:"nist.c.measure-2",note:"Privacy-enhanced is a trustworthiness characteristic in MEASURE 2."},"mitre-atlas":{coverage:"indirect",itemId:"atlas.tech.member-inference",note:"Adversarial threats to privacy are mapped (e.g. membership inference)."},ocap:{coverage:"out_of_scope",note:"OCAP® is data sovereignty, not a privacy regime."}}},{id:"security",label:"Security & adversarial robustness",description:"Resilience to adversarial behavior; protection of model and data assets.",matrix:{"mitre-atlas":{coverage:"deep",note:"ATLAS is the most concrete reference for ML adversary behaviors."},"nist-ai-rmf":{coverage:"deep",itemId:"nist.sc.measure-2.7",note:"Security and resilience evaluated under MEASURE 2.7."},unesco:{coverage:"addresses",itemId:"unesco.p.safety",note:"Safety and security as a principle."},"ieee-certifaied":{coverage:"indirect",note:"Security appears as a context for accountability and transparency."},oecd:{coverage:"indirect",note:"Surfaced through Economic Context (criticality) and AI Model attributes."},ocap:{coverage:"out_of_scope",note:"Not a security framework."}}},{id:"accountability",label:"Accountability & recourse",description:"Defined roles, redress for affected 
1individuals, incident response.",matrix:{"ieee-certifaied":{coverage:"deep",itemId:"ieee.c.accountability",note:"Defined roles + recourse criteria with sub-criteria."},"nist-ai-rmf":{coverage:"deep",itemId:"nist.c.govern-2",note:"Accountability structures across GOVERN 1 / 2."},unesco:{coverage:"deep",itemId:"unesco.p.responsibility",note:"Responsibility & accountability principle, traceable to persons or entities."},oecd:{coverage:"indirect",note:"Surfaces accountability through OECD AI Principles, not the Classification Framework directly."},"mitre-atlas":{coverage:"out_of_scope",note:"Not a governance framework."},ocap:{coverage:"addresses",itemId:"ocap.p.control",note:"Community authority is the relevant locus of accountability for First Nations data."}}},{id:"data-sovereignty",label:"Indigenous data sovereignty",description:"First Nations authority over data about themselves, their lands, and resources.",matrix:{ocap:{coverage:"deep",itemId:"ocap.p.ownership",note:"OCAP® is the canonical reference. Engagement with the relevant First Nation(s) is required."},unesco:{coverage:"indirect",note:"References Indigenous peoples in policy areas; not a sovereignty framework."},"nist-ai-rmf":{coverage:"out_of_scope",note:"Not addressed; engaging with this concern is a precondition external to NIST."},"ieee-certifaied":{coverage:"out_of_scope",note:"Not addressed by CertifAIEd."},oecd:{coverage:"out_of_scope",note:"Classification taxonomy does not encode community authority."},"mitre-atlas":{coverage:"out_of_scope",note:"Out of scope."}}},{id:"environment",label:"Environmental impact",description:"Energy and ecosystem footprint of AI training, deployment, and disposal.",matrix:{unesco:{coverage:"deep",itemId:"unesco.p.environment",note:"Environment & ecosystem flourishing principle + Policy Area 8."},"nist-ai-rmf":{coverage:"addresses",itemId:"nist.sc.measure-2.12",note:"Environmental impact assessed under MEASURE 2.12."},oecd:{coverage:"indirect",itemId:"oecd.d.people-planet",note:"People & Planet dimension surfaces environmental considerations."},"ieee-certifaied":{coverage:"out_of_scope",note:"Environmental impact is not a CertifAIEd criterion."},ocap:{coverage:"indirect",note:"Lands and resources are core to the OCAP® lens, but framed as community authority, not environment management."},"mitre-atlas":{coverage:"out_of_scope",note:"Not in scope."}}},{id:"governance",label:"Risk governance & process",description:"Policies, roles, escalation paths, and ongoing risk-management practice.",matrix:{"nist-ai-rmf":{coverage:"deep",itemId:"nist.f.govern",note:"Govern function — the operational anchor of the framework."},"ieee-certifaied":{coverage:"addresses",itemId:"ieee.c.accountability.roles",note:"Required as evidence under Accountability A-2."},unesco:{coverage:"addresses",itemId:"unesco.pa.governance",note:"Policy Action Area 2 — ethical governance and stewardship."},oecd:{coverage:"indirect",note:"Governance is treated in the OECD AI Principles, not the Classification Framework itself."},"mitre-atlas":{coverage:"out_of_scope",note:"Threat-informed reference; not a governance framework."},ocap:{coverage:"out_of_scope",note:"Community authority is not organizational risk governance."}}}];function N(){let[e,i]=(0,t.useState)(null),o=s.FRAMEWORK_LIST,n=(0,t.useMemo)(()=>{let e={};for(let r of o)e[r.id]={deep:0,addresses:0,indirect:0,out_of_scope:0};for(let r of j)for(let t of o){let s=r.matrix[t.id];s&&e[t.id][s.coverage]++}return e},[o]);return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(w,{}),(0,r.jsx)("div",{className:"rounded-lg border border-border overflow-hidden bg-card",children:(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm",children:[(0,r.jsx)("thead",{className:"bg-secondary/40",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{scope:"col",className:"text-left p-3 border-b border-r border-border min-w-[220px] sticky left-0 bg-secondary/40 z-10",children:(0,r.jsx)("span",{className:"text-[10px] uppercase tracking-widest text-muted-foreground",children:"Concern / Framework"})}),o.map(e=>(0,r.jsx)("th",{scope:"col",className:"text-left p-3 border-b border-border min-w-[180px] align-top",children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)(a.FrameworkBadge,{framework:e,size:"sm"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"font-medium leading-tight",children:e.shortName}),(0,r.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-0.5 font-mono",children:["deep ",n[e.id].deep," ·"," ",n[e.id].out_of_scope," oos"]})]})]})},e.id))]})}),(0,r.jsx)("tbody",{children:j.map(t=>(0,r.jsxs)("tr",{className:"align-top",children:[(0,r.jsxs)("th",{scope:"row",className:"text-left p-3 border-b border-r border-border bg-background sticky left-0",children:[(0,r.jsx)("div",{className:"font-medium",children:t.label}),(0,r.jsx)("div",{className:"text-[11px] text-muted-foreground mt-0.5 leading-snug max-w-[200px]",children:t.description})]}),o.map(a=>{let o=t.matrix[a.id];if(!o)return(0,r.jsx)("td",{className:"p-3 border-b border-l border-border align-top text-[11px] text-muted-foreground",children:"—"},a.id);let n=`${t.id}.${a.id}`,d=o.itemId?s.ITEMS.find(e=>e.id===o.itemId):null;return(0,r.jsxs)("td",{className:(0,l.cn)("p-3 border-b border-l border-border align-top transition-colors",y[o.coverage],e===n&&"outline outline-1 outline-foreground
1/30"),onMouseEnter:()=>i(n),onMouseLeave:()=>i(null),children:[(0,r.jsx)("div",{className:"text-[10px] uppercase tracking-widest font-mono mb-1.5",children:v[o.coverage]}),(0,r.jsx)("p",{className:"text-xs leading-relaxed",children:o.note}),d&&(0,r.jsxs)(b.default,{href:`/explore/${a.id}/${encodeURIComponent(d.id)}`,className:"mt-2 inline-block text-[11px] underline decoration-dotted underline-offset-2",children:[s.FRAMEWORKS[a.id].shortName," · ",d.code]})]},a.id)})]},t.id))})]})})}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground max-w-3xl",children:"‘Out of scope’ cells are deliberate. Lattice does not paper over a framework's silence by upgrading it to ‘addresses.’      Use these cells to spot which framework you actually need for a given concern."})]})}function w(){return(0,r.jsx)("div",{className:"rounded-md border border-border bg-card p-4 grid sm:grid-cols-2 lg:grid-cols-4 gap-3 text-xs",children:Object.keys(v).map(e=>(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)("span",{className:(0,l.cn)("mt-0.5 inline-block w-4 h-4 rounded-sm border",y[e]),"aria-hidden":!0}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"font-medium",children:v[e]}),(0,r.jsx)("div",{className:"text-muted-foreground leading-snug",children:function(e){switch(e){case"deep":return"Framework treats this concern as a primary subject with operational depth.";case"addresses":return"Framework names the concern and provides at least one structural item.";case"indirect":return"Framework touches the concern through related items, but it is not the focus.";case"out_of_scope":return"Framework is silent or explicitly out of scope. Lattice does not stretch it."}}(e)})]})]},e))})}let k=[{id:"matrix",label:"Comparison matrix",description:"Side-by-side, lens by lens."},{id:"mapping",label:"Principle & control mapping",description:"Anchor on one item; see explicit relationships."},{id:"coverage",label:"Coverage map",description:"Where each framework speaks across shared concerns."}];e.s(["default",0,function(){let[e,s]=(0,t.useState)("matrix");return(0,r.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 py-12",children:[(0,r.jsxs)("div",{className:"max-w-2xl mb-8",children:[(0,r.jsx)("div",{className:"text-xs uppercase tracking-widest text-muted-foreground mb-2",children:"Compare"}),(0,r.jsx)("h1",{className:"font-serif text-4xl tracking-tight mb-3",children:"Map relationships, not equivalences."}),(0,r.jsx)("p",{className:"text-muted-foreground leading-relaxed",children:"Compare frameworks across consistent lenses, anchor on a single item and see how it relates to others, or step back and look at coverage of shared concerns. Lattice uses four explicit relationship types and refuses the string ‘equivalent.’"})]}),(0,r.jsx)("div",{className:"border-b border-border mb-8 flex gap-1 overflow-x-auto",role:"tablist",children:k.map(t=>(0,r.jsx)("button",{type:"button",role:"tab","aria-selected":e===t.id,onClick:()=>s(t.id),className:(0,l.cn)("px-4 py-2.5 text-sm font-medium -mb-px border-b-2 transition-colors whitespace-nowrap",e===t.id?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:t.label},t.id))}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground mb-6 max-w-2xl",children:k.find(r=>r.id===e)?.description}),"matrix"===e&&(0,r.jsx)(u,{}),"mapping"===e&&(0,r.jsx)(f,{}),"coverage"===e&&(0,r.jsx)(N,{})]})}],35247)}]);

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.