PageSourceSearch

https://app.invisible.work/build/assets/CapabilityGrid-BKTcxKmS.js

js invisible.work collected 2026-10-02 02:13:01 UTC 29,858 bytes, 1 lines download raw bytes

1import{P as et,d as tt,k as h,B as st,z as at,o as xe,q as nt,l as ve,a as n,p as G,s as c,b as d,u as o,h as lt,e,n as f,f as u,g as b,c as l,F as m,t as r,m as ge,r as v,b9 as he,X as it,C as V,_ as ye,J as _e,G as we,H as ke,I as ze,K as Ce,i as k,D as rt}from"./app-pJIvYz1x.js";import{_ as y}from"./index-D0swD1Jb.js";import{_ as Se}from"./Checkbox.vue_vue_type_script_setup_true_lang-CMotMKBg.js";import{_ as ot}from"./Input.vue_vue_type_script_setup_true_lang-BjTNNMXv.js";import{_ as dt}from"./PageHeader.vue_vue_type_script_setup_true_lang-CbD8KhH2.js";import{_ as ut,a as ct,b as mt,c as pt}from"./SheetTitle.vue_vue_type_script_setup_true_lang-C1EvzjYv.js";import{_ as bt}from"./SheetHeader.vue_vue_type_script_setup_true_lang-DJdJpkeZ.js";import{_ as $e,a as Pe,b as Me}from"./TooltipTrigger.vue_vue_type_script_setup_true_lang-DnbPGrLB.js";import{_ as ft}from"./TooltipProvider.vue_vue_type_script_setup_true_lang-BcszF-wM.js";import{_ as xt}from"./AppLayout.vue_vue_type_style_index_0_lang-BZvoL21q.js";import{M as vt}from"./maximize-2-BXFTXOHJ.js";import{I as gt}from"./info-Cr5G2dFN.js";import{M as ht}from"./minimize-2-gb9VM6BW.js";import{S as yt}from"./search-DxW7CCyN.js";import{C as Le}from"./chevron-left-Bc-AwcUe.js";import{C as Ee}from"./chevron-right-B6PTkreT.js";import"./useFormControl-Dh5tJDAW.js";import"./Collection-ePvUSx1p.js";import"./VisuallyHidden-D87Ook-R.js";import"./RovingFocusGroup-ChrJVPEH.js";import"./useDirection-B8YYhy8E.js";import"./check-DaMxH4Ii.js";import"./index-CxnuG1RD.js";import"./PopperContent-BynxDe3F.js";import"./useTierCapabilities-CLeCjdOz.js";import"./DropdownMenuLabel.vue_vue_type_script_setup_true_lang-C6tuLUEl.js";import"./ProgramController-o-BbCpBy.js";import"./DropdownMenuTrigger.vue_vue_type_script_setup_true_lang-U1eMo4UY.js";import"./useTypeahead-D9cMqH7s.js";import"./DropdownMenuSeparator.vue_vue_type_script_setup_true_lang-CKY582d0.js";import"./chevron-down-CA0GrZXD.js";import"./bot-X10UKCec.js";import"./sparkles-DDgKOCbM.js";import"./eye-C0629zFa.js";import"./book-open-h7gxRD62.js";import"./useFocusTrap-_5aPGS5q.js";import"./target-00sP_A7O.js";import"./compass-DJ92siMT.js";import"./users-C5eS0DC5.js";import"./FlashAnnouncer.vue_vue_type_script_setup_true_lang-IRqDchO3.js";import"./FlashBanner.vue_vue_type_script_setup_true_lang-CSDRLGHg.js";import"./SkipToContentLink.vue_vue_type_script_setup_true_lang-Ddga2vIc.js";import"./markdown-BsePuLia.js";import"./useAgentThread-B6PBGCet.js";import"./rotate-ccw-BHMlDS2h.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const _t=et("Columns3Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),wt={class:"space-y-6"},kt={class:"flex flex-wrap items-center justify-between gap-4 text-xs text-brand-muted"},zt={class:"flex items-center gap-1 font-medium text-brand-subtle group-hover:text-brand-ink"},Ct={class:"overflow-hidden rounded-lg border border-brand-line bg-card"},St={class:"flex flex-wrap items-center justify-between gap-3 border-b border-brand-line px-4 py-3"},$t={class:"flex flex-wrap items-center gap-3"},Pt={class:"relative w-64"},Mt={class:"text-sm text-brand-muted"},Lt=["disabled"],Et=["value"],At=["disabled"],Nt=["value"],Ot={key:0,class:"ml-1 inline-flex items-center rounded-full bg-brand-secondary px-1.5 text-xs font-semibold text-brand-white tabular-nums"},Ut={key:0,class:"flex items-center gap-1"},It={key:0,class:"px-6 py-16 text-center text-sm text-brand-muted"},jt={key:1,class:"px-6 py-16 text-center text-sm text-brand-muted"},Dt={class:"border-collapse text-left"},Tt={key:0,class:"w-32 border-r border-brand-line"},Bt=["colspan"],Gt={class:"flex flex-col gap-1.5"},Vt={class:"text-xs font-semibold tracking-wide text-brand-subtle uppercase"},Ft={class:"flex cursor-help flex-wrap gap-x-3 gap-y-0.5 text-[11px] leading-tight text-brand-muted normal-case"},Ht={class:"font-semibold text-brand-body tabular-nums"},Xt={class:"font-medium"},Rt={class:"border-b border-brand-line"},Wt={key:0,class:"w-32 border-r border-brand-line px-4 pt-1 pb-3 text-xs font-semibold tracking-wide text-brand-subtle uppercase"},qt=["onClick"],Kt={class:"flex items-center gap-3"},Jt={class:"flex size-9 shrink-0 items-center justify-center rounded-full bg-brand-secondary text-xs font-semibold text-brand-white"},Qt={class:"min-w-0"},Yt={class:"block truncate text-sm font-medium text-brand-ink"},Zt={key:0,class:"block truncate text-xs text-brand-muted"},es={class:"flex items-center gap-2.5"},ts={class:"h-1.5 w-14 overflow-hidden rounded-full bg-brand-wash"},ss={class:"block truncate text-xs font-medium"},as={key:0,class:"mt-1.5 flex gap-1","aria-hidden":"true"},ns={class:"font-medium"},ls={class:"mt-0.5 opacity-80"},is={class:"mt-1 border-t border-brand-line pt-1 opacity-70"},rs={key:1,class:"mt-0.5 opacity-80"},os={key:0,class:"flex flex-wrap items-center justify-between gap-3"},ds={class:"text-sm text-brand-muted"},us={class:"text-brand-faint"},cs={class:"flex items-center gap-2"},ms={class:"space-y-1"},ps={class:"flex items-center gap-3 border-b border-brand-line py-2 text-sm font-medium text-brand-ink"},bs={class:"max-h-72 space-y-1 overflow-y-auto pt-1"},fs={class:"flex-1"},xs={class:"text-xs text-brand-faint"},vs={class:"space-y-6 py-1"},gs={class:"flex h-2 overflow-hidden rounded-full"},hs={class:"mt-3 space-y-2"},ys={class:"font-medium text-brand-ink"},_s={class:"text-brand-muted"},ws={key:0,class:"text-brand-faint"},ks={key:0,class:"animate-pulse space-y-3 p-8"},zs={class:"mt-4 flex items-center gap-3"},Cs={class:"flex size-11 shrink-0 items-center justify-center rounded-full bg-brand-secondary text-sm font-semibold text-brand-white"},Ss={class:"mt-6 flex items-start gap-5"},$s={class:"relative size-24 shrink-0"},Ps={viewBox:"0 0 100 100",class:"size-24 -rotate-90"},Ms=["stroke-dasharray"],Ls={class:"absolute inset-0 flex items-center justify-center text-xl font-semibold text-brand-ink tabular-nums"},Es={class:"min-w-0 flex-1"},As={class:"text-sm text-brand-body"},Ns={class:"font-semibold"},Os={key:0,class:"mt-2 flex h-2 overflow-hidden rounded-full bg-brand-wash"},Us={class:"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-brand-muted"},Is={class:"font-semibold text-brand-body"},js={key:0,class:"mt-6 font-accent text-base leading-relaxed text-brand-body italic"},Ds={class:"flex items-center justify-between border-b border-brand-line px-8 py-3"},Ts={class:"flex items-center gap-2 text-xs text-brand-muted"},Bs={class:"flex gap-0.5","aria-hidden":"true"},Gs={class:"px-8 pb-10"},Vs={class:"text-xs font-semibold tracking-wide text-brand-subtle uppercase"},Fs={class:"mt-2 divide-y divide-brand-line"},Hs={class:"min-w-0"},Xs={class:"text-sm font-semibold text-brand-ink"},Rs={key:0,class:"mt-0.5 line-clamp-2 text-xs text-brand-muted"},Ws={key:0,class:"mt-1.5 flex gap-1","aria-hidden":"true"},qs={class:"min-w-0"},Ks={class:"text-sm font-semibold text-brand-ink"},Js={class:"mt-1 flex h-1 w-24 overflow-hidden rounded-full bg-brand-wash"},Qs={class:"mt-1 text-xs text-brand-muted"},Ys={class:"text-right"},Ae=3,Z=4,Xa=tt({__name:"CapabilityGrid",props:{matrix:{},filters:{},groupOptions:{},outcomeOptions:{},indexUrl:{},personUrlTemplate:{}},setup(p){const g=p,F=k(()=>g.matrix.groups.flatMap(a=>a.capabilities)),E=h(g.filters.search??""),ee=k(()=>(g.matrix.search??"")!==""),H=h(g.filters.group??""),A=h(g.filters.outcome??""),$=h([...g.f
1ilters.parents??[]]),N=k(()=>g.matrix.selected_parents??[]),P=k(()=>N.value.length>0);function S(a){rt.get(g.indexUrl,{search:E.value||void 0,group:H.value||void 0,outcome:A.value||void 0,parents:$.value.length?$.value:void 0,page:a},{preserveState:!0,preserveScroll:!0,replace:!0,only:["matrix","filters"]})}const Ne=st(()=>S(1),300);at(E,Ne);function Oe(){S(1)}function te(){$.value=[],S(1)}function Ue(){A.value="",te()}const M=h(!1),_=h([]);function Ie(){_.value=N.value.length>0?[...N.value]:g.matrix.group_options.map(a=>a.key),M.value=!0}function je(a,t){const s=new Set(_.value);t?s.add(a):s.delete(a),_.value=[...s]}const De=k(()=>_.value.length===g.matrix.group_options.length);function Te(a){_.value=a?g.matrix.group_options.map(t=>t.key):[]}function Be(){const a=g.matrix.group_options.length;$.value=_.value.length===0||_.value.length===a?[]:[..._.value],M.value=!1,S(1)}function Ge(){$.value=[],S(1)}function se(a){const t=g.matrix.pagination.last_page;a<1||a>t||a===g.matrix.pagination.current_page||S(a)}const Ve=k(()=>new Set(g.matrix.groups.map(a=>a.capabilities[0]?.id).filter(a=>!!a)));function ae(a){return Ve.value.has(a)}const O={mastery:"bg-exp-content text-brand-sage-on",proficient:"bg-wash-positive text-on-positive",developing:"bg-wash-teal text-on-teal",emerging:"bg-wash-clay text-on-clay"};function Fe(a){return a.state==="measured"&&a.band&&O[a.band]?O[a.band]:"bg-brand-wash text-brand-muted"}function ne(a){return a.state==="measured"?a.band_label??"—":a.state==="unmeasured"?"Not measured":"No evidence"}function He(a){return a.state!=="measured"?0:Math.min(a.evidence_count,Ae)}function le(a){return a.strength===null?null:Math.round(a.strength*100)}const X={rising:{label:"Rising",glyph:"↑",class:"text-on-positive"},slipping:{label:"Slipping",glyph:"↓",class:"text-on-clay"},holding:{label:"Holding",glyph:"→",class:"text-brand-muted"},new:{label:"New",glyph:"·",class:"text-brand-muted"}};function Xe(a){return a===null?"text-brand-faint":a>=70?"text-on-positive":a>=40?"text-on-teal":"text-on-clay"}const w=h(null),x=h(null),R=h(!1),W=new Map;function ie(){w.value=null,x.value=null}function Re(a){a||ie()}async function We(a){if(D){D=!1;return}if(w.value===a.id){ie();return}if(w.value=a.id,W.has(a.id)){x.value=W.get(a.id)??null;return}R.value=!0,x.value=null;try{const t=g.personUrlTemplate.replace("__ID__",a.id),i=await(await fetch(t,{headers:{Accept:"application/json"}})).json();i&&(W.set(a.id,i),w.value===a.id&&(x.value=i))}finally{R.value=!1}}const re=2*Math.PI*42;function qe(a){return`${Math.max(0,Math.min(100,a??0))/100*re} ${re}`}function Ke(a){return Math.min(a.evidence_count,Z)}const L=["mastery","proficient","developing","emerging"],q={mastery:"bg-exp-content",proficient:"bg-wash-positive",developing:"bg-wash-teal",emerging:"bg-wash-clay"},K={mastery:"Mastery",proficient:"Proficient",developing:"Developing",emerging:"Emerging"};function Je(a,t){return a.measured>0?Math.round(a[t]/a.measured*100):0}const oe=k(()=>x.value?L.reduce((a,t)=>a+x.value.band_counts[t],0):0),Qe=k(()=>{if(!x.value)return[];const a=new Map;for(const t of x.value.rows){const s=a.get(t.group)??[];s.push(t),a.set(t.group,s)}return Array.from(a,([t,s])=>({name:t,rows:s}))}),z=h(null),U=h(!1),I=h(!1),Ye=k(()=>U.value||I.value);function j(){const a=z.value;if(!a){U.value=!1,I.value=!1;return}U.value=a.scrollLeft>4,I.value=a.scrollLeft+a.clientWidth<a.scrollWidth-4}function de(a){const t=z.value;t&&t.scrollBy({left:a*t.clientWidth*.8,behavior:"smooth"})}xe(()=>{nt(()=>{z.value&&(z.value.scrollLeft=0),j()}),window.addEventListener("resize",j)}),ve(()=>{window.removeEventListener("resize",j),window.removeEventListener("pointermove",Q),window.removeEventListener("pointerup",Y)});const J=h(!1);let ue=0,ce=0,D=!1;function Ze(a){const t=z.value;!t||a.button!==0||(ue=a.clientX,ce=t.scrollLeft,D=!1,J.value=!0,window.addEventListener("pointermove",Q),window.addEventListener("pointerup",Y))}function Q(a){const t=z.value;if(!t)return;const s=a.clientX-ue;Math.abs(s)>5&&(D=!0),t.scrollLeft=ce-s}function Y(){J.value=!1,window.removeEventListener("pointermove",Q),window.removeEventListener("pointerup",Y)}const T=h(!1),me=[{key:"emerging",label:"Emerging",range:"below 40%",swatch:"bg-wash-clay",width:40},{key:"developing",label:"Developing",range:"40–70%",swatch:"bg-wash-teal",width:30},{key:"proficient",label:"Proficient",range:"70–90%",swatch:"bg-wash-positive",width:20},{key:"mastery",label:"Mastery",range:"90% +",swatch:"bg-exp-content",width:10}],C=h(!1);function pe(){C.value=!C.value}function be(a){a.key==="Escape"&&C.value&&!w.value&&(C.value=!1)}return xe(()=>window.addEventListener("keydown",be)),ve(()=>window.removeEventListener("keydown",be)),(a,t)=>(n(),G(xt,null,{default:c(()=>[d(o(lt),{title:"Capability Grid"}),e("div",{class:f(["mx-auto w-full space-y-8 pb-24",C.value?"max-w-none px-4 pt-4 md:px-6":"max-w-[1440px] px-6 pt-10 md:px-14"])},[C.value?b("",!0):(n(),G(o(dt),{key:0,eyebrow:"The intelligence layer",title:"Capability Matrix",description:"A living picture of where every person stands against what matters."},{actions:c(()=>[d(o(y),{variant:"outline",size:"sm",onClick:pe},{default:c(()=>[d(o(vt),{class:"size-4"}),t[13]||(t[13]=u(" Focus ",-1))]),_:1})]),_:1})),e("div",wt,[e("div",kt,[e("button",{type:"button",class:"group flex flex-wrap items-center gap-4 roun
1ded-md text-left transition-colors hover:text-brand-ink",title:"How the bands are scored",onClick:t[0]||(t[0]=s=>T.value=!0)},[e("span",zt,[t[14]||(t[14]=u("Bands ",-1)),d(o(gt),{class:"size-3.5 text-brand-faint group-hover:text-brand-sage"})]),t[15]||(t[15]=e("span",{class:"flex items-center gap-1.5"},[e("span",{class:"size-3 rounded-sm bg-exp-content"}),u(" Mastery")],-1)),t[16]||(t[16]=e("span",{class:"flex items-center gap-1.5"},[e("span",{class:"size-3 rounded-sm bg-wash-positive"}),u(" Proficient")],-1)),t[17]||(t[17]=e("span",{class:"flex items-center gap-1.5"},[e("span",{class:"size-3 rounded-sm bg-wash-teal"}),u(" Developing")],-1)),t[18]||(t[18]=e("span",{class:"flex items-center gap-1.5"},[e("span",{class:"size-3 rounded-sm bg-wash-clay"}),u(" Emerging")],-1)),t[19]||(t[19]=e("span",{class:"flex items-center gap-1.5"},[e("span",{class:"size-3 rounded-sm bg-brand-wash"}),u(" Not measured")],-1)),t[20]||(t[20]=e("span",{class:"flex items-center gap-1.5 border-l border-brand-line pl-4"},[e("span",{class:"flex gap-1","aria-hidden":"true"},[e("span",{class:"size-1.5 rounded-full bg-brand-muted"}),e("span",{class:"size-1.5 rounded-full bg-brand-muted"}),e("span",{class:"size-1.5 rounded-full bg-brand-muted opacity-20"})]),u(" Signals behind the rating ")],-1))]),C.value?(n(),G(o(y),{key:0,variant:"outline",size:"sm",onClick:pe},{default:c(()=>[d(o(ht),{class:"size-4"}),t[21]||(t[21]=u(" Exit focus ",-1)),t[22]||(t[22]=e("span",{class:"text-brand-muted"},"Esc",-1))]),_:1})):b("",!0)]),e("div",Ct,[e("div",St,[e("div",$t,[e("div",Pt,[d(o(yt),{class:"pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-brand-faint"}),d(o(ot),{modelValue:E.value,"onUpdate:modelValue":t[1]||(t[1]=s=>E.value=s),type:"search",placeholder:"Search learners…",class:"pl-9"},null,8,["modelValue"])]),e("p",Mt,[ee.value?(n(),l(m,{key:0},[u(r(p.matrix.pagination.total)+" "+r(p.matrix.pagination.total===1?"match":"matches"),1)],64)):(n(),l(m,{key:1},[u(r(p.matrix.cohort.measured_total)+" learners",1)],64))]),e("label",{class:f(["inline-flex items-center gap-2 rounded-full border border-brand-line bg-card px-3 py-1.5 text-sm",p.groupOptions.length===0?"cursor-not-allowed":""])},[t[24]||(t[24]=e("span",{class:"text-brand-muted"},"Group",-1)),ge(e("select",{"onUpdate:modelValue":t[2]||(t[2]=s=>H.value=s),class:"max-w-[10rem] truncate bg-transparent font-medium text-brand-ink focus:outline-none disabled:text-brand-faint",disabled:p.groupOptions.length===0,onChange:Oe},[t[23]||(t[23]=e("option",{value:""},"All groups",-1)),(n(!0),l(m,null,v(p.groupOptions,s=>(n(),l("option",{key:s.id,value:s.id},r(s.name),9,Et))),128))],40,Lt),[[he,H.value]])],2),e("label",{class:f(["inline-flex items-center gap-2 rounded-full border border-brand-line bg-card px-3 py-1.5 text-sm",p.outcomeOptions.length===0?"cursor-not-allowed":""])},[t[26]||(t[26]=e("span",{class:"text-brand-muted"},"Outcome",-1)),ge(e("select",{"onUpdate:modelValue":t[3]||(t[3]=s=>A.value=s),class:"max-w-[12rem] truncate bg-transparent font-medium text-brand-ink focus:outline-none disabled:text-brand-faint",disabled:p.outcomeOptions.length===0,onChange:te},[t[25]||(t[25]=e("option",{value:""},"All outcomes",-1)),(n(!0),l(m,null,v(p.outcomeOptions,s=>(n(),l("option",{key:s.id,value:s.id},r(s.name),9,Nt))),128))],40,At),[[he,A.value]])],2),d(o(y),{variant:"outline",size:"sm",onClick:Ie},{default:c(()=>[d(o(_t),{class:"size-4"}),t[27]||(t[27]=u(" Areas ",-1)),P.value?(n(),l("span",Ot,r(N.value.length),1)):b("",!0)]),_:1}),P.value?(n(),l("button",{key:0,type:"button",class:"inline-flex items-center gap-1 text-sm text-brand-muted hover:text-brand-ink",onClick:Ge},[d(o(it),{class:"size-3.5"}),t[28]||(t[28]=u(" All areas ",-1))])):b("",!0)]),Ye.value?(n(),l("div",Ut,[d(o(y),{variant:"ghost",size:"icon-sm",disabled:!U.value,"aria-label":"Previous capabilities",onClick:t[4]||(t[4]=s=>de(-1))},{default:c(()=>[d(o(Le),{class:"size-4"})]),_:1},8,["disabled"]),d(o(y),{variant:"ghost",size:"icon-sm",disabled:!I.value,"aria-label":"Next capabilities",onClick:t[5]||(t[5]=s=>de(1))},{default:c(()=>[d(o(Ee),{class:"size-4"})]),_:1},8,["disabled"])])):b("",!0)]),p.filters.outcome&&F.value.length===0?(n(),l("div",It,[t[29]||(t[29]=u(" No measured capabilities ladder up to this outcome yet. ",-1)),e("button",{type:"button",class:"cursor-pointer font-medium text-brand-sage hover:underline",onClick:Ue}," Clear outcome ")])):p.matrix.people.length===0?(n(),l("div",jt,[ee.value?(n(),l(m,{key:0},[u(" No learners match “"+r(p.matrix.search)+"”. ",1)],64)):(n(),l(m,{key:1},[u(" No measured capabilities in this team yet — practice and rubric evaluations light up the grid. ")],64))])):(n(),l("div",{key:2,ref_key:"gridScroll",ref:z,class:f(["overflow-x-auto",J.value?"curs
1or-grabbing select-none":"cursor-grab"]),onScroll:j,onPointerdown:Ze},[d(o(ft),{"delay-duration":150},{default:c(()=>[e("table",Dt,[e("thead",null,[e("tr",null,[t[30]||(t[30]=e("th",{class:"sticky left-0 z-20 w-72 max-w-[18rem] min-w-[18rem] border-r border-brand-line bg-card"},null,-1)),P.value?b("",!0):(n(),l("th",Tt)),(n(!0),l(m,null,v(p.matrix.groups,s=>(n(),l("th",{key:s.id??"ungrouped",colspan:s.capabilities.length,class:"border-l border-brand-line px-4 pt-4 pb-2 align-bottom"},[e("div",Gt,[e("span",Vt,r(s.name??"Capabilities"),1),s.band_distribution.measured>0?(n(),G(o($e),{key:0},{default:c(()=>[d(o(Pe),{"as-child":""},{default:c(()=>[e("div",Ft,[(n(),l(m,null,v(L,i=>e("span",{key:i,class:"flex items-center gap-1"},[e("span",{class:f(["size-2 rounded-sm",q[i]])},null,2),u(" "+r(K[i])+" ",1),e("span",Ht,r(Je(s.band_distribution,i))+"%",1)])),64))])]),_:2},1024),d(o(Me),{class:"text-xs"},{default:c(()=>[e("p",Xt," Cohort band mix · "+r(s.band_distribution.measured)+" measured ",1),(n(),l(m,null,v(L,i=>e("p",{key:i,class:"mt-0.5"},r(K[i])+" — "+r(s.band_distribution[i])+" of "+r(s.band_distribution.measured),1)),64))]),_:2},1024)]),_:2},1024)):b("",!0)])],8,Bt))),128))]),e("tr",Rt,[t[31]||(t[31]=e("th",{class:"sticky left-0 z-20 w-72 max-w-[18rem] min-w-[18rem] border-r border-brand-line bg-card px-6 pt-1 pb-3 text-xs font-semibold tracking-wide text-brand-subtle uppercase"}," Person ",-1)),P.value?b("",!0):(n(),l("th",Wt," Overall ")),(n(!0),l(m,null,v(F.value,(s,i)=>(n(),l("th",{key:s.id,class:f(["min-w-32 px-3 pt-1 pb-3 align-bottom text-xs leading-snug font-medium text-brand-body",i===0||ae(s.id)?"border-l border-brand-line":""])},r(s.name),3))),128))])]),e("tbody",null,[(n(!0),l(m,null,v(p.matrix.people,s=>(n(),l("tr",{key:s.id,class:f(["cursor-pointer border-b border-brand-line transition-colors hover:bg-brand-surface-warm",w.value===s.id?"bg-brand-surface-warm":""]),onClick:i=>We(s)},[e("td",{class:f(["sticky left-0 z-20 w-72 max-w-[18rem] min-w-[18rem] border-r border-brand-line bg-card px-6 py-4",w.value===s.id?"!bg-brand-surface-warm":""])},[e("div",Kt,[e("span",Jt,r(s.initials),1),e("span",Qt,[e("span",Yt,r(s.name),1),s.job_title?(n(),l("span",Zt,r(s.job_title),1)):b("",!0)])])],2),P.value?b("",!0):(n(),l("td",{key:0,class:f(["w-32 border-r border-brand-line px-4 py-4",w.value===s.id?"!bg-brand-surface-warm":""])},[e("div",es,[e("span",{class:f(["text-lg font-semibold tabular-nums",Xe(s.overall_readiness)])},r(s.overall_readiness??"—"),3),e("span",ts,[e("span",{class:"block h-full rounded-full bg-brand-sage",style:V({width:`${s.overall_readiness??0}%`})},null,4)])])],2)),(n(!0),l(m,null,v(F.value,(i,B)=>(n(),l("td",{key:i.id,class:f(["px-3 py-2.5",B===0||ae(i.id)?"border-l border-brand-line":""])},[d(o($e),null,{default:c(()=>[d(o(Pe),{"as-child":""},{default:c(()=>[e("div",{class:f(["rounded-md px-2.5 py-2",Fe(s.cells[i.id])])},[e("span",ss,r(ne(s.cells[i.id])),1),s.cells[i.id]?.state==="measured"?(n(),l("span",as,[(n(),l(m,null,v(Ae,fe=>e("span",{key:fe,class:f(["size-1.5 rounded-full bg-current",fe<=He(s.cells[i.id])?"opacity-100":"opacity-20"])},null,2)),64))])):b("",!0)],2)]),_:2},1024),d(o(Me),{class:"max-w-xs text-xs"},{default:c(()=>[e("p",ns,r(i.name),1),s.cells[i.id]?.state==="measured"?(n(),l(m,{key:0},[e("p",ls,[u(r(s.cells[i.id].band_label)+" ",1),le(s.cells[i.id])!==null?(n(),l(m,{key:0},[u("· "+r(le(s.cells[i.id]))+"%",1)],64)):b("",!0)]),e("p",is,[u(r(s.cells[i.id].evidence_count)+" "+r(s.cells[i.id].evidence_count===1?"signal":"signals")+" ",1),s.cells[i.id].measurement_count?(n(),l(m,{key:0},[u("· "+r(s.cells[i.id].measurement_count)+" scored",1)],64)):b("",!0)])],64)):(n(),l("p",rs,r(ne(s.cells[i.id])),1))]),_:2},1024)]),_:2},1024)],2))),128))],10,qt))),128))])])]),_:1})],34))]),p.matrix.pagination.last_page>1?(n(),l("div",os,[e("p",ds,[u(" Page "+r(p.matrix.pagination.current_page)+" of "+r(p.matrix.pagination.last_page)+" ",1),e("span",us,"· "+r(p.matrix.pagination.total)+" learners",1)]),e("div",cs,[d(o(y),{variant:"outline",size:"sm",disabled:p.matrix.pagination.current_page<=1,onClick:t[6]||(t[6]=s=>se(p.matrix.pagination.current_page-1))},{default:c(()=>[d(o(Le),{class:"size-4"}),t[32]||(t[32]=u(" Prev ",-1))]),_:1},8,["disabled"]),d(o(y),{variant:"outline",size:"sm",disabled:p.matrix.pagination.current_page>=p.matrix.pagination.last_page,onClick:t[7]||(t[7]=s=>se(p.matrix.pagination.current_page+1))},{default:c(()=>[t[33]||(t[33]=u(" Next ",-1)),d(o(Ee),{class:"size-4"})]),_:1},8,["disabled"])])])):b("",!0),d(o(ye),{open:M.value,"onUpdate:open":t[10]||(t[10]=s=>M.value=s)},{default:c(()=>[d(o(_e),{class:"sm:max-w-md"},{default:c(()=>[d(o(we),null,{default:c(()=>[d(o(ke),null,{default:c(()=>[...t[34]||(t[34]=[u("Focus the grid",-1)])]),_:1}),d(o(ze),null,{default:c(()=>[...t[35]||(t[35]=[u(" Choose which capability areas to show. Focusing on specific areas hides the Overall column, which always reflects every measured capability. ",-1)])]),_:1})]),_:1}),e("div",ms,[e("label",ps,[d(o(Se),{"model-value":De.value,"onUpdate:modelValue":t[8]||(t[8]=s=>Te(s===!0))},null,8,["model-value"]),t[36]||(t[36]=u(" All areas ",-1))]),e("div",bs,[(n(!0),l(m,null,v(p.matrix.group_options,s=>(n(),l("label",{key:s.key,class:"flex cursor-pointer items-center gap-3 rounded-md px-1 py-2 text-sm text-brand-body hover:bg-brand-surface-warm"},[d(o(Se),{"model-value":_.value.includes(s.key),"onUpdate:modelValue":i=>je(s.key,i===!0)},null,8,["model-value","onUpdate:modelValue"]),e("span",fs,r(s.name),1),e("span",xs,r(s.count)+" "+r(s.count===1?"capability":"capabilities"),1)]))),128))])]),d(o(Ce),null,{default:c(()=>[d(o(y),{variant:"ghost",size:"sm",onClick:t[9]||(t[9]=s=>M.value=!1)},{default:c(()=>[...t[37]||(t[37]=[u(" Cancel ",-1)])]),_:1}),d(o(y),{size:"sm",onClick:Be},{default:c(()=>[...t[38]||(t[38]=[u(" Apply ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),d(o(ye),{open:T.value,"onUpdate:open":t[12]||(t[12]=s=>T.value=s)},{default:c(()=>[d(o(_e),{class:"sm:max-w-lg"},{default:c(()=>[d(o(we),null,{default:c(()=>[d(o(ke),null,{default:c(()=>[...t[39]||(t[39]=[u("How the bands are scored",-1)])]),_:1}),d(o(ze),null,{default:c(()=>[...t[40]||(t[40]=[u(" Every band comes from the person's most recent rubric evaluation for that capability — a real, criterion-referenced score, never activity or a self-rating. ",-1)])]),_:1})]),_:1}),e("div",vs,[e("div",null,[t[41]||(t[41]=e("p",{class:"mb-2 text-xs font-semibold tracking-wide text-brand-subtle uppercase"}," The scale ",-1)),t[42]||(t[42]=e("p",{class:"mb-3 text-sm text-brand-body"},[u(" The score is placed on that rubric's own range (its lowest to highest possible score) as a "),e("span",{class:"font-medium"},"0–100%"),u(" strength, then read against fixed cut scores: ")],-1)),e("div",gs,[(n(),l(m,null,v(me,s=>e("span",{key:s.key,class:f(["block h-full",s.swatch]),style:V({width:`${s.width}%`})},null,6)),64))]),e("div",hs,[(n(!0),l(m,null,v([...me].reverse(),s=>(n(),l("div",{key:s.key,class:"flex items-center gap-2.5 text-sm"},[e("span",{class:f(["size-3 shrink-0 rounded-sm",s.swatch])},null,2),e("span",ys,r(s.label),1),e("span",_s,r(s.range),1),s.key==="proficient"?(n(),l("span",ws,"· the passing / entrustable line")):b("",!0)]))),128))])]),t[43]||(t[43]=e("div",{class:"space-y-3 border-t border-brand-line pt-4 text-sm"},[e("p",null,[e("span",{class:"font-medium text-brand-ink"},"Signals (the dots)"),e("span",{class:"text-brand-body"}," — how many first-hand pieces of evidence back the reading. They show how well-evidenced a band is, not how high it is.")]),e("p",null,[e("span",{class:"font-medium text-brand-ink"},"Overall"),e("span",{class:"text-brand-body"}," — the average strength across every capability the person has been measured on.")]),e("p",null,[e("span",{class:"font-medium text-brand-ink"},"Trend"),e("span",{class:"text-brand-body"}," — whether the latest score moved up or down from the previous comparable evaluation.")]),e("p",null,[e("span",{class:"font-medium text-brand-ink"},"Not measured"),e("span",{class:"text-brand-body"}," — the person holds this capability but hasn't been scored on it yet.")])],-1)),t[44]||(t[44]=e("p",{class:"rounded-md bg-brand-surface-warm px-3 py-2 text-xs text-brand-muted"}," These band names and cut scores are the current defaults, applied to every rubric. Per-framework bands are coming. ",-1))]),d(o(Ce),null,{default:c(()=>[d(o(y),{size:"sm",onClick:t[11]||(t[11]=s=>T.value=!1)},{default:c(()=>
1[...t[45]||(t[45]=[u(" Got it ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),d(o(ut),{open:!!w.value,"onUpdate:open":Re},{default:c(()=>[d(o(ct),{side:"right",class:"flex w-full flex-col gap-0 overflow-y-auto p-0 sm:max-w-3xl"},{default:c(()=>[R.value?(n(),l("div",ks,[...t[46]||(t[46]=[e("div",{class:"h-5 w-40 rounded bg-brand-wash"},null,-1),e("div",{class:"h-28 w-full rounded bg-brand-wash"},null,-1)])])):x.value?(n(),l(m,{key:1},[d(o(bt),{class:"space-y-0 border-b border-brand-line bg-brand-surface-warm p-8 text-left"},{default:c(()=>[t[50]||(t[50]=e("p",{class:"text-xs font-semibold tracking-wide text-brand-subtle uppercase"}," Individual view ",-1)),e("div",zs,[e("span",Cs,r(x.value.initials),1),e("div",null,[d(o(mt),{class:"text-2xl font-semibold text-brand-ink"},{default:c(()=>[u(r(x.value.name),1)]),_:1}),d(o(pt),{class:"text-sm text-brand-muted"},{default:c(()=>[u(r(x.value.job_title??"Individual capability standing"),1)]),_:1})])]),e("div",Ss,[e("div",$s,[(n(),l("svg",Ps,[t[47]||(t[47]=e("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"currentColor","stroke-width":"7",class:"text-brand-wash"},null,-1)),e("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"currentColor","stroke-width":"7","stroke-linecap":"round",class:"text-brand-sage","stroke-dasharray":qe(x.value.overall_readiness)},null,8,Ms)])),e("span",Ls,[u(r(x.value.overall_readiness??"—"),1),t[48]||(t[48]=e("span",{class:"text-sm"},"%",-1))])]),e("div",Es,[e("p",As,[t[49]||(t[49]=u(" Overall readiness across ",-1)),e("span",Ns,r(x.value.rows.length)+" capabilities",1)]),oe.value>0?(n(),l("span",Os,[(n(),l(m,null,v(L,s=>e("span",{key:s,class:f(["block h-full",q[s]]),style:V({width:`${x.value.band_counts[s]/oe.value*100}%`})},null,6)),64))])):b("",!0),e("div",Us,[(n(),l(m,null,v(L,s=>e("span",{key:s,class:"flex items-center gap-1.5"},[e("span",{class:f(["size-2.5 rounded-sm",q[s]])},null,2),u(" "+r(K[s])+" ",1),e("span",Is,r(x.value.band_counts[s]),1)])),64))])])]),x.value.synthesis?(n(),l("p",js,r(x.value.synthesis),1)):b("",!0)]),_:1}),e("div",Ds,[t[52]||(t[52]=e("p",{class:"text-xs font-semibold tracking-wide text-brand-subtle uppercase"}," Capability · Level · Evidence · Trend ",-1)),e("span",Ts,[e("span",Bs,[(n(),l(m,null,v(Z,s=>e("span",{key:s,class:f(["size-1.5 rounded-full",s<=2?"bg-brand-muted":"bg-brand-line"])},null,2)),64))]),t[51]||(t[51]=u(" Signals behind the reading ",-1))])]),e("div",Gs,[(n(!0),l(m,null,v(Qe.value,s=>(n(),l("div",{key:s.name,class:"pt-6"},[e("p",Vs,r(s.name),1),e("div",Fs,[(n(!0),l(m,null,v(s.rows,i=>(n(),l("div",{key:i.capability_id,class:"grid grid-cols-[1.4fr_7rem_1fr_5rem] items-start gap-4 py-4"},[e("div",Hs,[e("p",Xs,r(i.capability_name),1),i.summary?(n(),l("p",Rs,r(i.summary),1)):b("",!0)]),e("div",null,[e("span",{class:f(["inline-flex items-center rounded-full px-2.5 py-1 text-xs font-medium",i.state==="measured"&&i.band&&O[i.band]?O[i.band]:"bg-brand-wash text-brand-muted"])},r(i.state==="measured"?i.band_label:"No evidence"),3),i.state==="measured"?(n(),l("span",Ws,[(n(),l(m,null,v(Z,B=>e("span",{key:B,class:f(["size-1.5 rounded-full bg-brand-muted",B<=Ke(i)?"opacity-100":"opacity-20"])},null,2)),64))])):b("",!0)]),e("div",qs,[e("p",Ks,r(i.evidence_count)+" "+r(i.evidence_count===1?"signal":"signals"),1),e("span",Js,[e("span",{class:"block h-full rounded-full bg-brand-sage",style:V({width:`${(i.strength??0)*100}%`})},null,4)]),e("p",Qs,[u(r(i.measurement_count)+" scored",1),i.suppressed?(n(),l(m,{key:0},[u(" · "+r(i.suppressed)+" private",1)],64)):b("",!0)])]),e("div",Ys,[i.trend?(n(),l("span",{key:0,class:f(["text-sm font-medium",X[i.trend]?.class])},r(X[i.trend]?.glyph)+" "+r(X[i.trend]?.label),3)):b("",!0)])]))),128))])]))),128))])],64)):b("",!0)]),_:1})]),_:1},8,["open"])])],2)]),_:1}))}});export{Xa as default};

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.