1import{a9 as J,j as L,e as te,ab as oe,aa as Y,o as q,L as M,w as P,b as V,l as r,ad as ae,af as F,aH as j,M as ne,aL as ue,C as B,S as de,aJ as U,ae as ce,aK as fe,aj as re,aM as Q,a4 as pe,a0 as ve,a1 as me,aN as he,B as O,a5 as ge,c as $,F as X,r as ye,n as _,a as D,f as Z,t as be,m as ee,a6 as xe,a3 as le}from"./DpOjZA94.js";import{u as ke}from"./CanAxKd6.js";import{u as Ce}from"./DGLUIRlU.js";import{R as Te,M as Ke,a as Ie}from"./BhLwtFvM.js";import Se from"./BStigZ7R.js";import"./3FvxUMvf.js";function G(s,C,l){const m=s.findIndex(b=>J(b,C)),A=s.findIndex(b=>J(b,l));if(m===-1||A===-1)return[];const[e,T]=[m,A].sort((b,v)=>b-v);return s.slice(e,T+1)}function Ae(s,C){const l=L(),m=(e,T)=>{if(C.multiple&&Array.isArray(s.value))if(C.selectionBehavior==="replace")s.value=[e],l.value=e;else{const b=s.value.findIndex(v=>T(v));b!==-1?s.value=s.value.filter((v,p)=>p!==b):s.value=[...s.value,e]}else C.selectionBehavior==="replace"?s.value={...e}:!Array.isArray(s.value)&&T(s.value)?s.value=void 0:s.value={...e};return s.value};function A(e,T,b,v){if(!l?.value||!C.multiple||!Array.isArray(s.value))return;const E=b().filter(S=>S.ref.dataset.disabled!=="").find(S=>S.ref===T)?.value;if(!E)return;let x=null;switch(e){case"prev":case"next":{x=G(v,l.value,E);break}case"first":{x=G(v,l.value,v?.[0]);break}case"last":{x=G(v,l.value,v.at(-1));break}}s.value=x}return{firstValue:l,onSelectItem:m,handleMultipleReplace:A}}function W(s){return s.reduce((C,l)=>(C.push(l),l.children&&C.push(...W(l.children)),C),[])}const[Ee,_e]=ce("TreeRoot");var qe=te({__name:"TreeRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},items:{type:Array,required:!1},expanded:{type:Array,required:!1},defaultExpanded:{type:Array,required:!1},getKey:{type:Function,required:!0},getChildren:{type:Function,required:!1,default:s=>s.children},selectionBehavior:{type:String,required:!1,default:"toggle"},multiple:{type:Boolean,required:!1,skipCheck:!0},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},propagateSelect:{type:Boolean,required:!1},bubbleSelect:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"ul"}}
1,emits:["update:modelValue","update:expanded"],setup(s,{emit:C}){const l=s,m=C,{items:A,multiple:e,disabled:T,propagateSelect:b,dir:v,bubbleSelect:p}=oe(l),{handleTypeaheadSearch:E}=Ce(),x=ke(v),S=L(),R=L(!1),w=ue(),c=Y(l,"modelValue",m,{defaultValue:l.defaultValue??(e.value?[]:void 0),passive:!0,deep:!0}),K=Y(l,"expanded",m,{defaultValue:l.defaultExpanded??[],passive:l.expanded===void 0,deep:!0}),{onSelectItem:a,handleMultipleReplace:o}=Ae(c,l),f=B(()=>e.value&&Array.isArray(c.value)?c.value.map(t=>l.getKey(t)):[l.getKey(c.value??{})]);function i(t,n=1,k){return t.reduce((y,I,N)=>{const H=l.getKey(I),z=l.getChildren(I),ie=K.value.includes(H),se={_id:H,value:I,index:N,level:n,parentItem:k,hasChildren:!!z,bind:{value:I,level:n,"aria-setsize":t.length,"aria-posinset":N+1}};return y.push(se),z&&ie&&y.push(...i(z,n+1,I)),y},[])}const d=B(()=>{const t=l.items;return K.value.map(n=>n),i(t??[])});function u(t){if(R.value)w.trigger(t);else{const n=S.value?.getItems()??[];E(t.key,n)}}function h(t){if(R.value)return;const n=Ke[t.key];de(()=>{o(n,U(),S.value?.getItems,d.value.map(k=>k.value))})}function g(t){if(t.parentItem!=null&&Array.isArray(c.value)&&l.multiple){const n=d.value.find(k=>t.parentItem!=null&&l.getKey(k.value)===l.getKey(t.parentItem));n!=null&&(l.getChildren(n.value)?.every(y=>c.value.find(I=>l.getKey(I)===l.getKey(y)))?c.value=[...c.value,n.value]:c.value=c.value.filter(y=>l.getKey(y)!==l.getKey(n.value)),g(n))}}return _e({modelValue:c,selectedKeys:f,onSelect:t=>{const n=y=>l.getKey(y??{})===l.getKey(t),k=l.multiple&&Array.isArray(c.value)?c.value?.findIndex(n)!==-1:void 0;if(a(t,n),l.bubbleSelect&&l.multiple&&Array.isArray(c.value)){const y=d.value.find(I=>l.getKey(I.value)===l.getKey(t));y!=null&&g(y)}if(l.propagateSelect&&l.multiple&&Array.isArray(c.value)){const y=W(l.getChildren(t)??[]);k?c.value=[...c.value].filter(I=>!y.some(N=>l.getKey(I??{})===l.getKey(N))):c.value=[...c.value,...y]}},expanded:K,onToggle(t){if(!(t?l.getChildren(t):void 0))return;const k=l.getKey(t)??t;K.value.includes(k)?K.value=K.value.filter(y=>y!==k):K.value=[...K.value,k]},getKey:l.getKey,getChildren:l.getChildren,items:A,expandedItems:d,disabled:T,multiple:e,dir:x,propagateSelect:b,bubbleSelect:p,isVirtual:R,virtualKeydownHook:w,handleMultipleReplace:o}),(t,n)=>(q(),M(r(Te),{ref_key:"rovingFocusGroupRef",ref:S,"as-child":"",orientation:"vertical",dir:r(x)},{default:P(()=>[V(r(ae),{role:"tree",as:t.as,"as-child":t.asChild,"aria-multiselectable":r(e)?!0:void 0,onKeydown:[u,F(j(h,["shift"]),["up","down"])]},{default:P(()=>[ne(t.$slots,"default",{flattenItems:d.value,modelValue:r(c),expanded:r(K)})]),_:3},8,["as","as-child","aria-multiselectable","onKeydown"])]),_:3},8,["dir"]))}}),we=qe;const Be="tree.select",Re="tree.toggle";var Ve=te({inheritAttrs:!1,__name:"TreeItem",props:{value:{type:null,required:!0},level:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},emits:["select","toggle"],setup(s,{expose:C,emit:l}){const m=s,A=l,e=Ee(),{getItems:T}=fe(),b=B(()=>!!e.getChildren(m.value)),v=B(()=>{const a=e.getKey(m.value);return e.expanded.value.includes(a)}),p=B(()=>{const a=e.getKey(m.value);return e.selectedKeys.value.includes(a)}),E=B(()=>{if(e.bubbleSelect.value&&b.value&&Array.isArray(e.modelValue.value)){const a=W(e.getChildren(m.value)||[]);return a.some(o=>e.modelValue.value.find(f=>e.getKey(f)===e.getKey(o)))&&!a.every(o=>e.modelValue.value.find(f=>e.getKey(f)===e.getKey(o)))}else return e.propagateSelect.value&&p.value&&b.value&&Array.isArray(e.modelValue.value)?!W(e.getChildren(m.value)||[]).every(o=>e.modelValue.value.find(f=>e.getKey(f)===e.getKey(o))):void 0});function x(a){if(b.value)if(v.value){const o=T().map(h=>h.ref),f=U(),i=o.indexOf(f),u=[...o].slice(i).find(h=>Number(h.getAttribute("data-indent"))===m.level+1);u&&u.focus()}else K(a)}function S(a){if(v.value)K(a);else{const o=T().map(h=>h.ref),f=U(),i=o.indexOf(f),u=[...o].slice(0,i).reverse().find(h=>Number(h.getAttribute("data-indent"))===m.level-1);u&&u.focus()}}async function R(a){A("select",a),!a?.defaultPrevented&&e.onSelect(m.value)}async function w(a){A("toggle",a),!a?.defaultPrevented&&e.onToggle(m.value)}async function c(a){if(!a)return;const o={originalEvent:a,value:m.value,isExpanded:v.value,isSelected:p.value};Q(Be,R,o)}async function K(a){if(!a)return;const o={originalEvent:a,value:m.value,isExpanded:v.value,isSelected:p.value};Q(Re,w,o)}return C({isExpanded:v,isSelected:p,isIndeterminate:E,handleToggle:()=>e.onToggle(m.value),handleSelect:()=>e.onSelect(m.value)}),(a,o)=>(q(),M(r(Ie),{"as-child":"",value:a.value,"allow-shift-key":""},{default:P(()=>[V(r(ae),re(a.$attrs,{role:"treeitem",as:a.as,"as-child":a.asChild,"aria-selected":p.value,"aria-expanded":b.value?v.value:void 0,"aria-level":a.level,"data-indent":a.level,"data-selected":p.value?"":void 0,"data-expanded":v.value?"":void 0,onKeydown:[F(j(c,["self","prevent"]),["enter","space"]),o[0]||(o[0]=F(j(f=>r(e).dir.value==="ltr"?x(f):S(f),["prevent"]),["right"])),o[1]||(o[1]=F(j(f=>r(e).dir.value==="ltr"?S(f):x(f),["prevent"]),["left"]))],onClick:o[2]||(o[2]=j(f=>{c(f),K(f)},["stop"]))}),{default:P(()=>[ne(a.$slots,"default",{isExpanded:v.value,isSelected:p.value,isIndeterminate:E.value,handleSelect:()=>r(e).onSelect(a.value),handleToggle:()=>r(e).onToggle(a.value)})]),_:3},16,["as","as-child","aria-selected","aria-expanded","aria-level","data-indent","data-selected","data-expanded","onKeydown"])]),_:3},8,["value"]))}}),Le=Ve;const Pe={slots:{root:"relative lg:h-[450px] my-5 grid lg:grid-cols-3 border border-muted rounded-md",list:"isolate relative p-2 border-b lg:border-b-0 lg:border-e border-muted overflow-y-auto",item:"",listWithChildren:"ms-4.5 border-s border-default",itemWithChildren:"ps-1.5 -ms-px",link:"relative group peer w-full px-2.5 py-1.5 before:inset-y-px before:inset-x-0 flex items-center gap-1.5 text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",linkLeadingIcon:"size-4 shrink-0",linkLabel:"truncate",linkTrailing:"ms-auto inline-flex gap-1.5 items-center",linkTrailingIcon:"size-5 transform transition-transform duration-200 shrink-0 group-data-expanded:rotate-180",content:"overflow-hidden lg:col-span-2 flex flex-col [&>div]:my-0 [&>div]:flex-1 [&>div]:flex [&>div]:flex-col [&>div>div]:border-0 [&>div>pre]:border-b-0 [&>div>pre]:border-s-0 [&>div>pre]:border-e-0 [&>div>pre]:rounded-l-none [&>div>pre]:flex-1 [&>div]:overflow-y-auto"},variants:{active:{true:{link:"text-highlighted before:bg-elevated"},false:{link:["hover:text-highlighted hover:before:bg-elevated/50","transition-colors before:transition-colors"]}}}},Fe=Object.assign({inheritAttrs:!1},{__name:"ProseCodeTree",props:{items:{type:Array,required:!1},modelValue:{type:String,required:!1},defaultValue:{type:String,required:!1},expandAll:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},emits:["update:modelValue"],setup(s,{emit:C}){const l=s,m=C,A=pe(),e=ve("prose.codeTree",l),T=me(),[b,v]=he(),p=B(()=>le({extend:le(Pe),...T.ui?.prose?.codeTree||{}})()),E=e.modelValue??e.defaultValue,x=L(E?{path:E}:void 0),S=L();O(x,i=>{i?.path!==e.modelValue&&m("update:modelValue",i?.path)}),O(()=>e.modelValue,i=>{if(i===x.value?.path)return;x.value=i?{path:i}:void 0;const d=o(i);for(const u of d)f.value.includes(u)||f.value.push(u)});const R=L(1),w=B(()=>
1(R.value,e.items||A.default?.()?.flatMap(a).filter(Boolean)||[])),c=B(()=>K(w.value));function K(i){const d=new Map,u=[];i.forEach(g=>{const t=g.label.split("/");let n="";t.forEach((k,y)=>{if(n=n?`${n}/${k}`:k,!d.has(n)){const I={label:k,path:n,...y<t.length-1&&{children:[]}};d.set(n,I),y===0?u.push(I):d.get(t.slice(0,y).join("/"))?.children?.push(I)}})});const h=g=>g.sort((t,n)=>!!t.children==!!n.children?t.label.localeCompare(n.label):n.children?1:-1).map(t=>({...t,children:t.children&&h(t.children)}));return h(u)}function a(i,d){return typeof i.type=="symbol"?i.children?.map(a):{label:i.props?.filename||i.props?.label||`${d}`,icon:i.props?.icon,component:i}}function o(i){if(e.expandAll){const u=new Set;return w.value.forEach(h=>{const g=h.label.split("/");for(let t=1;t<g.length;t++)u.add(g.slice(0,t).join("/"))}),Array.from(u)}if(!i)return[];const d=i.split("/");return d.slice(0,-1).map((u,h)=>d.slice(0,h+1).join("/"))}const f=L(o(x.value?.path));return O(w,(i,d)=>{if(!e.expandAll)return;const u=i.map(g=>g.label).join(` 2`),h=d?.map(g=>g.label).join(` 3`)??"";u!==h&&(f.value=o())}),O(x,i=>{const d=w.value.find(u=>i?.path===u.label);d?.component&&(S.value=d)},{immediate:!0}),ge(()=>R.value++),(i,d)=>(q(),$(X,null,[V(r(b),null,{default:P(({items:u,level:h})=>[(q(!0),$(X,null,ye(u,(g,t)=>(q(),$("li",{key:`${h}-${t}`,role:"presentation",class:_(h>1?p.value.itemWithChildren({class:r(e).ui?.itemWithChildren}):p.value.item({class:r(e).ui?.item}))}
3,[V(r(Le),{level:h,value:g,"as-child":""},{default:P(({isExpanded:n,isSelected:k})=>[D("button",{type:"button",class:_(p.value.link({class:r(e).ui?.link,active:k}))},[g.children?.length?(q(),M(Z,{key:0,name:n?r(T).ui.icons.folderOpen:r(T).ui.icons.folder,class:_(p.value.linkLeadingIcon({class:r(e).ui?.linkLeadingIcon}))},null,8,["name","class"])):(q(),M(Se,{key:1,filename:g.label,class:_(p.value.linkLeadingIcon({class:r(e).ui?.linkLeadingIcon}))},null,8,["filename","class"])),D("span",{class:_(p.value.linkLabel({class:r(e).ui?.linkLabel}))},be(g.label),3),g.children?.length?(q(),$("span",{key:2,class:_(p.value.linkTrailing({class:r(e).ui?.linkTrailing}))},[V(Z,{name:r(T).ui.icons.chevronDown,class:_(p.value.linkTrailingIcon({class:r(e).ui?.linkTrailingIcon}))},null,8,["name","class"])],2)):ee("",!0)],2),g.children?.length&&n?(q(),$("ul",{key:0,role:"group",class:_(p.value.listWithChildren({class:r(e).ui?.listWithChildren}))},[V(r(v),{items:g.children,level:h+1},null,8,["items","level"])],2)):ee("",!0)]),_:2},1032,["level","value"])],2))),128))]),_:1}),D("div",re(i.$attrs,{class:p.value.root({class:[r(e).ui?.root,r(e).class]})}),[V(r(we),{modelValue:x.value,"onUpdate:modelValue":d[0]||(d[0]=u=>x.value=u),expanded:f.value,"onUpdate:expanded":d[1]||(d[1]=u=>f.value=u),class:_(p.value.list({class:r(e).ui?.list})),items:c.value,"get-key":u=>u.path},{default:P(()=>[V(r(v),{items:c.value,level:1},null,8,["items"])]),_:1},8,["modelValue","expanded","class","items","get-key"]),D("div",{class:_(p.value.content({class:r(e).ui?.content}))},[(q(),M(xe(S.value?.component)))],2)],16)],64))}});export{Fe 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.