@powerduck/tree 0.7.9 → 0.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var Ge=Object.defineProperty;var Tt=Object.getOwnPropertyDescriptor;var wt=Object.getOwnPropertyNames;var yt=Object.prototype.hasOwnProperty;var It=(t,e)=>{for(var a in e)Ge(t,a,{get:e[a],enumerable:!0})},Nt=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of wt(e))!yt.call(t,n)&&n!==a&&Ge(t,n,{get:()=>e[n],enumerable:!(o=Tt(e,n))||o.enumerable});return t};var Mt=t=>Nt(Ge({},"__esModule",{value:!0}),t);var Ht={};It(Ht,{METHOD_LABEL_MAP:()=>Pe,Tree:()=>at,getMethodLabel:()=>Ne,useTreeExpansion:()=>Ee,useTreeSearch:()=>Le});module.exports=Mt(Ht);var p=require("react");function*Fe(t,e=1/0){let a=new Set,o=[];for(let n=t.length-1;n>=0;n--)o.push({node:t[n],depth:1});for(;o.length;){let n=o.pop();if(a.has(n.node)||n.depth>e)continue;a.add(n.node),yield n;let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parent:n,depth:n.depth+1})}}function qe(t,e){for(let{node:a}of Fe(t))if(a.id===e)return a}function St(t,e,a=[]){for(let o of Fe(t)){if(o.node.id!==e)continue;let n=[],l=o;for(;l;)n.push(l.node),l=l.parent;n.reverse();let i=[...a,...n];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(w=>w.id)}}return null}var Ft=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function je(t,e,a=()=>!0){let o=new Set,n=new Map,l=[{source:t,output:[],index:0}];for(;l.length;){let i=l[l.length-1];if(i.index<i.source.length){let c=i.source[i.index++];if(o.has(c))continue;if(n.has(c)){let x=n.get(c);x&&i.output.push(x)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let x=e(c);n.set(c,x),x&&i.output.push(x)}continue}l.pop();let w=i.source.length===i.output.length&&i.source.every((c,x)=>c===i.output[x])?i.source:i.output;if(!i.owner)return w;let g=i.owner,I=e(w===g.children?g:{...g,children:w});o.delete(g),n.set(g,I),I&&l[l.length-1].output.push(I)}return t}function Je(t,e){let a=e.query.trim().toLowerCase();return a?je(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Re(t,e={}){let a=[];for(let{node:o,depth:n}of Fe(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function Ue(t){return Re(t)}function Xe(t,e,a){return je(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function kt(t,e){return je(t,a=>a.id===e?null:a,a=>a.id!==e)}function Ye(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function Ze(t,e,a){let o=St(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=Ye(a,n.length-1),w={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:l,toIndex:i};if(i===l)return w;let g=[...n];return g.splice(l,1),g.splice(i,0,o.target),{...w,nodes:o.parent?Xe(t,o.parent.id,I=>({...I,children:g})):g}}function $e(t,e,a,o){let n=qe(t,e);if(!n||a!==null&&(!qe(t,a)||qe([n],a)))return null;let l=kt(t,e),i=w=>{let g=[...w];return g.splice(Ye(o??g.length,g.length),0,n),g};return a===null?i(l):Xe(l,a,w=>({...w,children:i(w.children??[])}))}var ae=require("react"),et=require("react-dom"),ne=require("react/jsx-runtime");function tt({state:t,onClose:e}){let a=(0,ae.useRef)(null),[o,n]=(0,ae.useState)(null),[l,i]=(0,ae.useState)({left:t.x,top:t.y}),[w,g]=(0,ae.useState)({}),I=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,ae.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(c),M={};for(let k=0;k<x.length;k++){let H=x.item(k);(H.startsWith("--tree-")||H.startsWith("--color-")||H.startsWith("--radius-")||H.startsWith("--font-")||H.startsWith("--shadow-"))&&(M[H]=x.getPropertyValue(H))}g(M);let v=a.current;if(!v)return;let O=()=>{let k=v.getBoundingClientRect();i({left:Math.max(8,Math.min(t.x,document.documentElement.clientWidth-k.width-8)),top:Math.max(8,Math.min(t.y,document.documentElement.clientHeight-k.height-8))})};O();let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(O);K?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let U=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",U),document.addEventListener("scroll",X,!0),window.addEventListener("resize",e),()=>{K?.disconnect(),document.removeEventListener("pointerdown",U),document.removeEventListener("scroll",X,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,et.createPortal)((0,ne.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...w,...l},role:"menu","aria-label":`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let x=a.current;if(!x)return;let M=Array.from(x.querySelectorAll("button:not(:disabled)")),v=M.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let O;if(c.key==="ArrowDown")O=(v+1)%M.length;else if(c.key==="ArrowUp")O=(v-1+M.length)%M.length;else if(c.key==="Home")O=0;else if(c.key==="End")O=M.length-1;else return;c.preventDefault(),M[O]?.focus()},children:t.items.map((c,x)=>(0,ne.jsxs)("div",{role:"presentation",children:[c.separator&&(0,ne.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,ne.jsxs)("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:c.disabled,className:`pde-tree-contextMenuItem${c.danger?" pde-tree-contextMenuItemDanger":""}${o===x?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==x){n(x);return}e(),c.onClick(t.node)},children:[c.icon&&(0,ne.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:c.icon}),(0,ne.jsx)("span",{children:c.confirm&&o===x?c.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${x}`))}),I)}var E=require("react");function Ee(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,E.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Re(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,w]=(0,E.useState)(l),g=(0,E.useRef)(new Map),I=(0,E.useMemo)(()=>Ue(t),[t]),c=(0,E.useMemo)(()=>new Set(i),[i]),x=(0,E.useRef)(i);x.current=i;let M=(0,E.useMemo)(()=>I.length>0&&I.every(S=>c.has(S)),[I,c]),v=(0,E.useCallback)(S=>{x.current=S,w(S),n?.(S)},[n]),O=(0,E.useCallback)(S=>{let D=x.current,de=D.includes(S)?D.filter(me=>me!==S):[...D,S];v(de)},[v]),K=(0,E.useCallback)(()=>{v([...I])},[I,v]),U=(0,E.useCallback)(()=>{v([])},[v]),X=(0,E.useCallback)(S=>{let D=Re(t,{maxDepth:S,onlyWithChildren:!0});v(D)},[t,v]),k=(0,E.useCallback)((S,D)=>{D?g.current.set(S,D):g.current.delete(S)},[]),H=(0,E.useCallback)(S=>{let D=g.current.get(S);D&&D.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:O,expandAll:K,collapseAll:U,expandToDepth:X,isAllExpanded:M,allBranchIds:I,setNodeElementRef:k,scrollToNode:H,nodeElementRefs:g}}var Q=require("react");function Le(t){let[e,a]=(0,Q.useState)(""),o=(0,Q.useDeferredValue)(e),[n,l]=(0,Q.useState)(null),i=o.trim().length>0,w=(0,Q.useMemo)(()=>i?Je(t,{query:o,keepAncestors:!0}):t,[t,o,i]),g=(0,Q.useCallback)((c,x)=>{let M=e.trim(),v=c.trim();!M&&v&&l(x),M&&!v&&l(null),a(c)},[e]),I=(0,Q.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:w,expandedBeforeSearch:n,handleQueryChange:g,clearSearch:I}}function rt(t){let e=new Map,a=new Set,o=t.map(n=>({node:n,parentId:null})).reverse();for(;o.length;){let n=o.pop();if(a.has(n.node)||e.has(n.node.id))continue;a.add(n.node),e.set(n.node.id,n);let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parentId:n.node.id})}return{byId:e,path(n){let l=e.get(n);if(!l)return null;let i=[l.node],w=l.parentId;for(;w!==null;){let g=e.get(w);if(!g)break;i.push(g.node),w=g.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(g=>g.id)}}}}var Pe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PATCH",head:"HEAD",options:"OPT",trace:"TRA",connect:"CONN"};function Ne(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Pe,e)?Pe[e]:e.slice(0,4).toUpperCase()}var N=require("react-icons/lu"),Oe=require("react-icons/md"),s=require("react/jsx-runtime"),h={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Dt({expanded:t}){return(0,s.jsx)("span",{className:h.expandIcon,children:t?(0,s.jsx)(N.LuChevronDown,{size:14}):(0,s.jsx)(N.LuChevronRight,{size:14})})}function Ct(){return(0,s.jsx)(N.LuSearch,{size:14,"aria-hidden":"true"})}function Rt(){return(0,s.jsx)(N.LuGripVertical,{size:14,"aria-hidden":"true"})}function Et(){return(0,s.jsx)(N.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function ot(t){let a=t.metadata?.jsonPath;if(Array.isArray(a)&&a.length>0&&a.every(o=>typeof o=="string"||typeof o=="number"&&Number.isInteger(o)&&o>=0))return a}function Lt(t,e,a,o){let n=ot(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((w,g)=>{let I=ot(w);return I&&I[I.length-1]===g&&JSON.stringify(I.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Pt({text:t,query:e}){if(!e)return(0,s.jsx)(s.Fragment,{children:t});let a=t.toLowerCase(),o=e.toLowerCase(),n=a.indexOf(o);return n===-1?(0,s.jsx)(s.Fragment,{children:t}):(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),(0,s.jsx)("span",{className:h.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var nt={get:h.methodGet,post:h.methodPost,put:h.methodPut,patch:h.methodPatch,delete:h.methodDelete};function Ot({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(nt,e)?nt[e]:h.methodOther,o=Ne(t);return(0,s.jsx)("span",{className:`${h.methodBadge} ${a}`,children:o})}var _={draggedId:null,dragOverId:null,dragOverPosition:null};function Bt(t,e){if(t.isFocused!==e.isFocused||t.positionInSet!==e.positionInSet||t.setSize!==e.setSize||t.node!==e.node||t.depth!==e.depth||t.isExpanded!==e.isExpanded||t.isSelected!==e.isSelected||t.searchQuery!==e.searchQuery||t.showIndentGuides!==e.showIndentGuides||t.canDragNode!==e.canDragNode||t.draggable!==e.draggable||t.showContextMenuButton!==e.showContextMenuButton||t.activeMenuNodeId===t.node.id!=(e.activeMenuNodeId===e.node.id))return!1;let a=t.dragState.draggedId===t.node.id,o=e.dragState.draggedId===e.node.id;if(a!==o)return!1;let n=t.dragState.dragOverId===t.node.id,l=e.dragState.dragOverId===e.node.id;return!(n!==l||n&&l&&t.dragState.dragOverPosition!==e.dragState.dragOverPosition||t.renderIcon!==e.renderIcon||t.renderLabel!==e.renderLabel||t.renderSuffix!==e.renderSuffix||t.renderNode!==e.renderNode||t.onToggle!==e.onToggle||t.onSelect!==e.onSelect||t.onNodeRef!==e.onNodeRef||t.onDragStart!==e.onDragStart||t.onDragOver!==e.onDragOver||t.onDragLeave!==e.onDragLeave||t.onDrop!==e.onDrop||t.onDragEnd!==e.onDragEnd||t.onContextMenu!==e.onContextMenu||t.onMoreClick!==e.onMoreClick)}function zt(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:w,renderIcon:g,renderLabel:I,renderSuffix:c,renderNode:x,draggable:M,dragState:v,canDragNode:O,onDragStart:K,onDragOver:U,onDragLeave:X,onDrop:k,onDragEnd:H,showContextMenuButton:S,activeMenuNodeId:D,onContextMenu:de,onMoreClick:me}=t,{isExpanded:j,isSelected:xe}=t,ue=(e.children?.length??0)>0,B=ue,Me=!ue,ie=v.draggedId===e.id,V=v.dragOverId===e.id,Y=V?v.dragOverPosition:null,G=e.metadata,J=typeof G?.method=="string"?G.method:void 0,Be=G?.deprecated===!0,Se=G?.required===!0,A=typeof G?.kind=="string"?G.kind:void 0,se={node:e,depth:a,isExpanded:j,isSelected:xe,isBranch:B,isLeaf:Me,isDragging:ie,isDragOver:V,dragOverPosition:Y},q=(0,p.useCallback)(()=>{B?o(e.id):n(e)},[B,e,n,o]),z=(0,p.useCallback)(T=>{T.target===T.currentTarget&&(T.key==="Enter"||T.key===" "?(T.preventDefault(),q()):(T.key==="ArrowRight"&&B&&!j||T.key==="ArrowLeft"&&B&&j)&&(T.preventDefault(),T.stopPropagation(),o(e.id)))},[q,B,j,e.id,o]),fe=g?g(se):J?null:(0,s.jsx)("span",{className:h.nodeIcon,children:A==="section"&&G?.section==="components"?(0,s.jsx)(N.LuBraces,{size:14}):A==="section"&&G?.section==="webhooks"?(0,s.jsx)(N.LuZap,{size:14}):A==="schema"||A==="component"||A==="object"?(0,s.jsx)(N.LuBraces,{size:14}):A==="array"||A==="items"?(0,s.jsx)(N.LuList,{size:14}):B?j?(0,s.jsx)(N.LuFolderOpen,{size:14}):(0,s.jsx)(N.LuFolder,{size:14}):(0,s.jsx)("span",{className:h.primitiveDot})}),ke=I?I(se):(0,s.jsx)("span",{className:`${h.nodeLabel} ${B?h.nodeLabelBranch:""} ${Be?h.deprecatedLabel:""}`,children:(0,s.jsx)(Pt,{text:e.name,query:i})}),ce=c?c(se):null,De=[h.nodeRow,B?h.branchControl:h.leafItem,xe?h.nodeRowSelected:"",ie?h.nodeDragging:"",V&&Y==="before"?h.dropIndicatorBefore:"",V&&Y==="after"?h.dropIndicatorAfter:"",V&&Y==="child"?h.dropIndicatorChild:"",A?`pde-tree-kind-${A}`:""].filter(Boolean).join(" "),L=(0,p.useCallback)(T=>l(e.id,T),[e.id,l]),be=(0,s.jsxs)("div",{ref:L,className:De,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":B?j:void 0,"aria-label":J?`${Ne(J)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":M&&O?ie:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:q,onKeyDown:z,onContextMenu:S?T=>de(e,T):void 0,onDragOver:M?T=>U(e,T):void 0,onDragLeave:M?()=>X(e):void 0,onDrop:M?T=>k(e,T):void 0,children:[w&&a>1&&Array.from({length:Math.min(a-1,20)},(T,Z)=>(0,s.jsx)("span",{className:h.indentGuide,style:{left:`${(Z+1)*12+29}px`}},`guide-${Z}`)),M&&O&&(0,s.jsx)("span",{className:h.dragHandle,draggable:!0,onDragStart:T=>K(e,T),onDragEnd:H,title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,s.jsx)(Rt,{})}),B?(0,s.jsx)(Dt,{expanded:j}):(0,s.jsx)("span",{className:h.expandIconPlaceholder}),fe,J&&(0,s.jsx)(Ot,{method:J}),ke,Se&&(0,s.jsx)("span",{className:h.requiredDot,title:"Required"}),(0,s.jsx)("span",{className:h.nodeSuffix,children:ce}),S&&(0,s.jsx)("button",{type:"button",className:[h.moreButton,D===e.id?h.moreButtonActive:""].filter(Boolean).join(" "),onClick:T=>me(e,T),title:"More actions","aria-label":`More actions for ${e.name}`,"aria-haspopup":"menu","aria-expanded":D===e.id,tabIndex:-1,children:(0,s.jsx)(Et,{})})]}),he=x?x(se,be):be;return(0,s.jsx)(s.Fragment,{children:he})}var At=(0,p.memo)(zt,Bt),at=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:w=1,searchable:g=!1,searchPlaceholder:I="Search...",showExpandAll:c=!1,showRefresh:x=!1,onRefresh:M,toolbar:v,searchRowExtra:O,renderNode:K,renderIcon:U,renderLabel:X,renderSuffix:k,className:H,style:S,size:D="sm",variant:de="default",showIndentGuides:me=!0,maxHeight:j,rootRef:xe,draggable:ue=!1,dragGroupKey:B,onReorder:Me,onMove:ie,canDrag:V,canDrop:Y,contextMenuItems:G,onPatch:J,theme:Be,virtualized:Se="auto"}=e,[A,se]=(0,p.useState)(null),[q,z]=(0,p.useState)(_),[fe,ke]=(0,p.useState)(null),ce=(0,p.useRef)(null),De=(0,p.useId)(),L=(0,p.useMemo)(()=>rt(o),[o]),[be,he]=(0,p.useState)({top:0,height:400}),[T,Z]=(0,p.useState)(null),[ze,We]=(0,p.useState)(null),y=Ee(o,{defaultExpandedIds:i,defaultExpandDepth:w,onExpandedChange:l}),P=Le(o),Qe=P.isSearching?y.allBranchIds:P.expandedBeforeSearch??y.expandedIds,ve=(0,p.useMemo)(()=>new Set(Qe),[Qe]),C=(0,p.useMemo)(()=>{let r=[],d=new Set,u=P.filteredNodes.map((f,b,m)=>({node:f,depth:0,parentId:null,positionInSet:b+1,setSize:m.length})).reverse();for(;u.length;){let f=u.pop();if(!d.has(f.node.id)&&(d.add(f.node.id),r.push(f),ve.has(f.node.id))){let b=f.node.children??[];for(let m=b.length-1;m>=0;m--)u.push({node:b[m],depth:f.depth+1,parentId:f.node.id,positionInSet:m+1,setSize:b.length})}}return r},[P.filteredNodes,ve]),Te=(0,p.useMemo)(()=>new Map(C.map((r,d)=>[r.node.id,d])),[C]),le=D==="xs"?24:D==="md"?32:28,ee=Se!==!1&&de!=="doc"&&!K&&(Se===!0||C.length>500),ge=ee?Math.max(0,Math.min(Math.floor(be.top/le)-8,C.length-1)):0,we=ee?Math.min(C.length,ge+Math.ceil(be.height/le)+16):C.length,_e=C.slice(ge,we);(0,p.useEffect)(()=>{let r=ce.current;if(!r)return;let d=()=>he({top:r.scrollTop,height:r.clientHeight||400});d();let u=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return u?.observe(r),()=>u?.disconnect()},[]),(0,p.useEffect)(()=>{if(!T)return;let r=Te.get(T.id);if(r===void 0){Z(null);return}let d=ce.current;if(ee&&d&&(r<ge||r>=we)){let f=d.clientHeight||400,b=Math.min(r*le,Math.max(0,C.length*le-f));d.scrollTop=b,he(m=>({...m,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(T.id);T.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),Z(null)},[T,Te,ee,le,ge,we,C.length,y.nodeElementRefs]);let Ae=ze===null?void 0:Te.get(ze),dt=Ae!==void 0&&Ae>=ge&&Ae<we?ze:_e[0]?.node.id,He=(0,p.useRef)({query:"",time:0}),it=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=Te.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=C[d],f=d;if(r.key==="ArrowDown")f=Math.min(d+1,C.length-1);else if(r.key==="ArrowUp")f=Math.max(0,d-1);else if(r.key==="Home")f=0;else if(r.key==="End")f=C.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&ve.has(u.node.id))f=Math.min(d+1,C.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!ve.has(u.node.id)))f=Te.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let m=r.target.getBoundingClientRect();r.preventDefault(),Ie(u.node,m.left+24,m.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let m=Date.now(),F=m-He.current.time<600?He.current.query+r.key.toLowerCase():r.key.toLowerCase();He.current={query:F,time:m};for(let R=1;R<=C.length;R++){let W=(d+R)%C.length;if(C[W].node.name.toLowerCase().startsWith(F)){f=W;break}}}else return;r.preventDefault();let b=C[f].node.id;We(b),Z({id:b,focus:!0})};(0,p.useEffect)(()=>{ce.current&&(ce.current.scrollTop=0),he(r=>({...r,top:0}))},[P.deferredQuery]);let st=(0,p.useCallback)(r=>{se(r.id),n?.(r)},[n]),ct=(0,p.useCallback)(r=>{!r.trim()&&P.expandedBeforeSearch&&y.setExpandedIds(P.expandedBeforeSearch),P.handleQueryChange(r,y.expandedIds)},[y.expandedIds,P]),ye=(0,p.useCallback)(r=>!ue||r.metadata?.kind==="section"?!1:V?V(r):!0,[V,ue]),Ce=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!ye(r)||L.path(d.id)?.ancestorIds.includes(r.id))return!1;if(B){let b=R=>{let W=L.path(R)?.nodes??[];for(let te=W.length-1;te>=0;te--){let re=W[te]?.metadata;if(re&&typeof re=="object"&&Object.prototype.hasOwnProperty.call(re,B))return re[B]}},m=b(r.id),F=b(d.id);if(m!==void 0&&F!==void 0&&m!==F)return!1}return!Y||Y(r,d,u)},[ye,Y,B,L]),lt=(0,p.useCallback)((r,d)=>{if(!ye(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),z({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[ye]),pt=(0,p.useCallback)((r,d)=>{if(!q.draggedId||q.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=d.currentTarget.getBoundingClientRect(),f=(d.clientY-u.top)/u.height,b=(r.children?.length??0)>0,m;b?f<.25?m="before":f>.75?m="after":m="child":m=f<.5?"before":"after";let F=L.byId.get(q.draggedId)?.node;if(!F||!Ce(F,r,m)){z(R=>R.dragOverId===null?R:{...R,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",z(R=>R.dragOverId===r.id&&R.dragOverPosition===m?R:{...R,dragOverId:r.id,dragOverPosition:m})},[Ce,q.draggedId,L]),ut=(0,p.useCallback)(r=>{z(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),ft=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=q.draggedId,f=q.dragOverPosition;if(!u||!f||u===r.id||q.dragOverId!==r.id){z(_);return}let b=L.byId.get(u)?.node;if(!b||!Ce(b,r,f)){z(_);return}if(f==="child"){let pe=L.path(u)?.target;if(!pe){z(_);return}let Ve=$e(o,u,r.id);Ve&&ie?.(Ve,pe,r.id),z(_);return}let m=L.path(r.id);if(!m){z(_);return}let F=m.parent?.children??o,R=F.findIndex($=>$.id===r.id);if(R===-1){z(_);return}let W=f==="before"?R:R+1,te=L.path(u),re=m.parent?.id??null;if((te?.parent?.id??null)!==re){let $=te?.target,pe=$e(o,u,re,W);pe&&$&&ie?.(pe,$,re),z(_);return}if(te&&te.parent===m.parent){let $=F.findIndex(pe=>pe.id===u);$!==-1&&$<W&&(W-=1)}let oe=Ze(o,u,W);if(oe&&oe.fromIndex!==oe.toIndex&&(Me?.(oe),J)){let $=Lt(oe.moved,oe.fromIndex,oe.toIndex,F);$.length>0&&J($,{node:oe.moved,type:"reorder"})}z(_)},[q,o,L,Ce,ie,J,Me]),ht=(0,p.useCallback)(()=>{z(_)},[]),Ie=(0,p.useCallback)((r,d,u)=>{if(!G)return;let f=G(r);if(f.length===0)return;let b=y.nodeElementRefs.current.get(r.id);b&&ke({x:d,y:u,node:r,items:f,anchor:b})},[G,y.nodeElementRefs]),gt=(0,p.useCallback)(()=>{ke(null)},[]),mt=(0,p.useCallback)((r,d)=>{d.preventDefault(),Ie(r,d.clientX,d.clientY)},[Ie]),xt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();Ie(r,u.left,u.bottom+4)},[Ie]),Ke=(0,p.useCallback)(r=>{let d=L.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),P.clearSearch(),Z({id:r,focus:!1})},[y,L,P.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>A?L.path(A)?.target:void 0,scrollToNode:Ke,locateNode:r=>{let d=[...o],u=new Set;for(let f=0;f<d.length;f++){let b=d[f];if(!(!b||u.has(b))){if(u.add(b),r(b)){let m=L.path(b.id);return m&&y.setExpandedIds([...new Set([...y.expandedIds,...m.ancestorIds])]),P.clearSearch(),se(b.id),Z({id:b.id,focus:!1}),b}if(b.children?.length)for(let m of b.children)d.push(m)}}}}),[y,Ke,A,o,L,P.clearSearch]);let bt=(0,p.useMemo)(()=>({...S,...j!==void 0?{maxHeight:j}:{}}),[S,j]),vt=[h.root,de!=="default"?`pde-tree-variant-${de}`:"",H].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:vt,style:bt,"data-size":D,"data-theme":Be,children:[v&&(0,s.jsx)("div",{className:h.toolbar,children:v}),(g||c||x||O)&&(0,s.jsxs)("div",{className:h.searchRow,children:[g&&(0,s.jsxs)("div",{className:h.searchInputWrap,children:[(0,s.jsx)("span",{className:h.searchIcon,children:(0,s.jsx)(Ct,{})}),(0,s.jsx)("input",{className:h.searchInput,type:"search","aria-controls":De,placeholder:I,value:P.query,onChange:r=>ct(r.target.value),"aria-label":"Search tree"})]}),O,c&&(0,s.jsx)("button",{type:"button",className:h.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?"Collapse all":"Expand all","aria-label":y.isAllExpanded?"Collapse all":"Expand all",children:y.isAllExpanded?(0,s.jsx)(Oe.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Oe.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),x&&(0,s.jsx)("button",{type:"button",className:h.iconButton,onClick:M,title:"Refresh","aria-label":"Refresh",children:(0,s.jsx)(N.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:ce,className:h.treeContainer,"data-virtualized":ee||void 0,onScroll:r=>{ee&&he({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:De,role:"tree",onKeyDown:it,"aria-label":"Tree navigation",children:P.filteredNodes.length===0?(0,s.jsx)("div",{className:h.emptyState,children:P.isSearching?"No matching results":"No items"}):(0,s.jsxs)(s.Fragment,{children:[ee&&(0,s.jsx)("div",{role:"presentation",style:{height:ge*le}}),_e.map(({node:r,depth:d,positionInSet:u,setSize:f})=>(0,s.jsx)(At,{node:r,depth:d,positionInSet:u,setSize:f,isFocused:r.id===dt,onFocusNode:We,isExpanded:ve.has(r.id),isSelected:A===r.id,onToggle:y.toggleNode,onSelect:st,onNodeRef:y.setNodeElementRef,searchQuery:P.deferredQuery,showIndentGuides:me,renderIcon:U,renderLabel:X,renderSuffix:k,renderNode:K,draggable:ue,dragState:q,canDragNode:ye(r),onDragStart:lt,onDragOver:pt,onDragLeave:ut,onDrop:ft,onDragEnd:ht,showContextMenuButton:!!G,activeMenuNodeId:fe?.node.id??null,onContextMenu:mt,onMoreClick:xt},r.id)),ee&&(0,s.jsx)("div",{role:"presentation",style:{height:(C.length-we)*le}})]})}),fe&&(0,s.jsx)(tt,{state:fe,onClose:gt},fe.node.id)]})});0&&(module.exports={METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
1
+ "use strict";var qe=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var It=Object.prototype.hasOwnProperty;var Nt=(t,e)=>{for(var a in e)qe(t,a,{get:e[a],enumerable:!0})},Mt=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yt(e))!It.call(t,n)&&n!==a&&qe(t,n,{get:()=>e[n],enumerable:!(o=wt(e,n))||o.enumerable});return t};var St=t=>Mt(qe({},"__esModule",{value:!0}),t);var Gt={};Nt(Gt,{METHOD_LABEL_MAP:()=>Oe,Tree:()=>dt,getMethodLabel:()=>Me,useTreeExpansion:()=>Le,useTreeSearch:()=>Pe});module.exports=St(Gt);var p=require("react");function*je(t,e=1/0){let a=new Set,o=[];for(let n=t.length-1;n>=0;n--)o.push({node:t[n],depth:1});for(;o.length;){let n=o.pop();if(a.has(n.node)||n.depth>e)continue;a.add(n.node),yield n;let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parent:n,depth:n.depth+1})}}function Fe(t,e){for(let{node:a}of je(t))if(a.id===e)return a}function kt(t,e,a=[]){for(let o of je(t)){if(o.node.id!==e)continue;let n=[],l=o;for(;l;)n.push(l.node),l=l.parent;n.reverse();let i=[...a,...n];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(T=>T.id)}}return null}var jt=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function $e(t,e,a=()=>!0){let o=new Set,n=new Map,l=[{source:t,output:[],index:0}];for(;l.length;){let i=l[l.length-1];if(i.index<i.source.length){let c=i.source[i.index++];if(o.has(c))continue;if(n.has(c)){let x=n.get(c);x&&i.output.push(x)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let x=e(c);n.set(c,x),x&&i.output.push(x)}continue}l.pop();let T=i.source.length===i.output.length&&i.source.every((c,x)=>c===i.output[x])?i.source:i.output;if(!i.owner)return T;let g=i.owner,I=e(T===g.children?g:{...g,children:T});o.delete(g),n.set(g,I),I&&l[l.length-1].output.push(I)}return t}function Ue(t,e){let a=e.query.trim().toLowerCase();return a?$e(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Ee(t,e={}){let a=[];for(let{node:o,depth:n}of je(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function Xe(t){return Ee(t)}function Ye(t,e,a){return $e(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Dt(t,e){return $e(t,a=>a.id===e?null:a,a=>a.id!==e)}function Ze(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function et(t,e,a){let o=kt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=Ze(a,n.length-1),T={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:l,toIndex:i};if(i===l)return T;let g=[...n];return g.splice(l,1),g.splice(i,0,o.target),{...T,nodes:o.parent?Ye(t,o.parent.id,I=>({...I,children:g})):g}}function We(t,e,a,o){let n=Fe(t,e);if(!n||a!==null&&(!Fe(t,a)||Fe([n],a)))return null;let l=Dt(t,e),i=T=>{let g=[...T];return g.splice(Ze(o??g.length,g.length),0,n),g};return a===null?i(l):Ye(l,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),tt=require("react-dom"),ae=require("react/jsx-runtime");function rt({state:t,onClose:e}){let a=(0,de.useRef)(null),[o,n]=(0,de.useState)(null),[l,i]=(0,de.useState)({left:t.x,top:t.y}),[T,g]=(0,de.useState)({}),I=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(c),M={};for(let k=0;k<x.length;k++){let A=x.item(k);(A.startsWith("--tree-")||A.startsWith("--color-")||A.startsWith("--radius-")||A.startsWith("--font-")||A.startsWith("--shadow-"))&&(M[A]=x.getPropertyValue(A))}g(M);let v=a.current;if(!v)return;let O=()=>{let k=v.getBoundingClientRect();i({left:Math.max(8,Math.min(t.x,document.documentElement.clientWidth-k.width-8)),top:Math.max(8,Math.min(t.y,document.documentElement.clientHeight-k.height-8))})};O();let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(O);K?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},Y=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",X),document.addEventListener("scroll",Y,!0),window.addEventListener("resize",e),()=>{K?.disconnect(),document.removeEventListener("pointerdown",X),document.removeEventListener("scroll",Y,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,tt.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...l},role:"menu","aria-label":`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let x=a.current;if(!x)return;let M=Array.from(x.querySelectorAll("button:not(:disabled)")),v=M.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let O;if(c.key==="ArrowDown")O=(v+1)%M.length;else if(c.key==="ArrowUp")O=(v-1+M.length)%M.length;else if(c.key==="Home")O=0;else if(c.key==="End")O=M.length-1;else return;c.preventDefault(),M[O]?.focus()},children:t.items.map((c,x)=>(0,ae.jsxs)("div",{role:"presentation",children:[c.separator&&(0,ae.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,ae.jsxs)("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:c.disabled,className:`pde-tree-contextMenuItem${c.danger?" pde-tree-contextMenuItemDanger":""}${o===x?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==x){n(x);return}e(),c.onClick(t.node)},children:[c.icon&&(0,ae.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:c.icon}),(0,ae.jsx)("span",{children:c.confirm&&o===x?c.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${x}`))}),I)}var L=require("react");function Le(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,L.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Ee(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,L.useState)(l),g=(0,L.useRef)(new Map),I=(0,L.useMemo)(()=>Xe(t),[t]),c=(0,L.useMemo)(()=>new Set(i),[i]),x=(0,L.useRef)(i);x.current=i;let M=(0,L.useMemo)(()=>I.length>0&&I.every(S=>c.has(S)),[I,c]),v=(0,L.useCallback)(S=>{x.current=S,T(S),n?.(S)},[n]),O=(0,L.useCallback)(S=>{let D=x.current,ie=D.includes(S)?D.filter(me=>me!==S):[...D,S];v(ie)},[v]),K=(0,L.useCallback)(()=>{v([...I])},[I,v]),X=(0,L.useCallback)(()=>{v([])},[v]),Y=(0,L.useCallback)(S=>{let D=Ee(t,{maxDepth:S,onlyWithChildren:!0});v(D)},[t,v]),k=(0,L.useCallback)((S,D)=>{D?g.current.set(S,D):g.current.delete(S)},[]),A=(0,L.useCallback)(S=>{let D=g.current.get(S);D&&D.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:O,expandAll:K,collapseAll:X,expandToDepth:Y,isAllExpanded:M,allBranchIds:I,setNodeElementRef:k,scrollToNode:A,nodeElementRefs:g}}var Q=require("react");function Pe(t){let[e,a]=(0,Q.useState)(""),o=(0,Q.useDeferredValue)(e),[n,l]=(0,Q.useState)(null),i=o.trim().length>0,T=(0,Q.useMemo)(()=>i?Ue(t,{query:o,keepAncestors:!0}):t,[t,o,i]),g=(0,Q.useCallback)((c,x)=>{let M=e.trim(),v=c.trim();!M&&v&&l(x),M&&!v&&l(null),a(c)},[e]),I=(0,Q.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:g,clearSearch:I}}function ot(t){let e=new Map,a=new Set,o=t.map(n=>({node:n,parentId:null})).reverse();for(;o.length;){let n=o.pop();if(a.has(n.node)||e.has(n.node.id))continue;a.add(n.node),e.set(n.node.id,n);let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parentId:n.node.id})}return{byId:e,path(n){let l=e.get(n);if(!l)return null;let i=[l.node],T=l.parentId;for(;T!==null;){let g=e.get(T);if(!g)break;i.push(g.node),T=g.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(g=>g.id)}}}}var Oe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PATCH",head:"HEAD",options:"OPT",trace:"TRA",connect:"CONN"};function Me(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Oe,e)?Oe[e]:e.slice(0,4).toUpperCase()}var N=require("react-icons/lu"),Be=require("react-icons/md"),s=require("react/jsx-runtime"),h={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Ct({expanded:t}){return(0,s.jsx)("span",{className:h.expandIcon,children:t?(0,s.jsx)(N.LuChevronDown,{size:14}):(0,s.jsx)(N.LuChevronRight,{size:14})})}function Rt(){return(0,s.jsx)(N.LuSearch,{size:14,"aria-hidden":"true"})}function Et(){return(0,s.jsx)(N.LuGripVertical,{size:14,"aria-hidden":"true"})}function Lt(){return(0,s.jsx)(N.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function nt(t){let a=t.metadata?.jsonPath;if(Array.isArray(a)&&a.length>0&&a.every(o=>typeof o=="string"||typeof o=="number"&&Number.isInteger(o)&&o>=0))return a}function Pt(t,e,a,o){let n=nt(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((T,g)=>{let I=nt(T);return I&&I[I.length-1]===g&&JSON.stringify(I.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ot({text:t,query:e}){if(!e)return(0,s.jsx)(s.Fragment,{children:t});let a=t.toLowerCase(),o=e.toLowerCase(),n=a.indexOf(o);return n===-1?(0,s.jsx)(s.Fragment,{children:t}):(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),(0,s.jsx)("span",{className:h.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var at={get:h.methodGet,post:h.methodPost,put:h.methodPut,patch:h.methodPatch,delete:h.methodDelete};function Bt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(at,e)?at[e]:h.methodOther,o=Me(t);return(0,s.jsx)("span",{className:`${h.methodBadge} ${a}`,children:o})}var _={draggedId:null,dragOverId:null,dragOverPosition:null};function zt(t,e){if(t.isFocused!==e.isFocused||t.positionInSet!==e.positionInSet||t.setSize!==e.setSize||t.node!==e.node||t.depth!==e.depth||t.isExpanded!==e.isExpanded||t.isSelected!==e.isSelected||t.searchQuery!==e.searchQuery||t.showIndentGuides!==e.showIndentGuides||t.canDragNode!==e.canDragNode||t.draggable!==e.draggable||t.showContextMenuButton!==e.showContextMenuButton||t.activeMenuNodeId===t.node.id!=(e.activeMenuNodeId===e.node.id))return!1;let a=t.dragState.draggedId===t.node.id,o=e.dragState.draggedId===e.node.id;if(a!==o)return!1;let n=t.dragState.dragOverId===t.node.id,l=e.dragState.dragOverId===e.node.id;return!(n!==l||n&&l&&t.dragState.dragOverPosition!==e.dragState.dragOverPosition||t.renderIcon!==e.renderIcon||t.renderLabel!==e.renderLabel||t.renderSuffix!==e.renderSuffix||t.renderNode!==e.renderNode||t.onToggle!==e.onToggle||t.onSelect!==e.onSelect||t.onNodeRef!==e.onNodeRef||t.onDragStart!==e.onDragStart||t.onDragOver!==e.onDragOver||t.onDragLeave!==e.onDragLeave||t.onDrop!==e.onDrop||t.onDragEnd!==e.onDragEnd||t.onContextMenu!==e.onContextMenu||t.onMoreClick!==e.onMoreClick)}function At(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:T,renderIcon:g,renderLabel:I,renderSuffix:c,renderNode:x,draggable:M,dragState:v,canDragNode:O,onDragStart:K,onDragOver:X,onDragLeave:Y,onDrop:k,onDragEnd:A,showContextMenuButton:S,activeMenuNodeId:D,onContextMenu:ie,onMoreClick:me}=t,{isExpanded:F,isSelected:xe}=t,ue=(e.children?.length??0)>0,B=ue,Se=!ue,se=v.draggedId===e.id,V=v.dragOverId===e.id,Z=V?v.dragOverPosition:null,H=e.metadata,J=typeof H?.method=="string"?H.method:void 0,be=H?.deprecated===!0,ze=H?.required===!0,G=typeof H?.kind=="string"?H.kind:void 0,U={node:e,depth:a,isExpanded:F,isSelected:xe,isBranch:B,isLeaf:Se,isDragging:se,isDragOver:V,dragOverPosition:Z},fe=(0,p.useCallback)(()=>{B?o(e.id):n(e)},[B,e,n,o]),j=(0,p.useCallback)(w=>{w.target===w.currentTarget&&(w.key==="Enter"||w.key===" "?(w.preventDefault(),fe()):(w.key==="ArrowRight"&&B&&!F||w.key==="ArrowLeft"&&B&&F)&&(w.preventDefault(),w.stopPropagation(),o(e.id)))},[fe,B,F,e.id,o]),z=g?g(U):J?null:(0,s.jsx)("span",{className:h.nodeIcon,children:G==="section"&&H?.section==="components"?(0,s.jsx)(N.LuBraces,{size:14}):G==="section"&&H?.section==="webhooks"?(0,s.jsx)(N.LuZap,{size:14}):G==="schema"||G==="component"||G==="object"?(0,s.jsx)(N.LuBraces,{size:14}):G==="array"||G==="items"?(0,s.jsx)(N.LuList,{size:14}):B?F?(0,s.jsx)(N.LuFolderOpen,{size:14}):(0,s.jsx)(N.LuFolder,{size:14}):(0,s.jsx)("span",{className:h.primitiveDot})}),he=I?I(U):(0,s.jsx)("span",{className:`${h.nodeLabel} ${B?h.nodeLabelBranch:""} ${be?h.deprecatedLabel:""}`,children:(0,s.jsx)(Ot,{text:e.name,query:i})}),ke=c?c(U):null,ce=[h.nodeRow,B?h.branchControl:h.leafItem,xe?h.nodeRowSelected:"",se?h.nodeDragging:"",V&&Z==="before"?h.dropIndicatorBefore:"",V&&Z==="after"?h.dropIndicatorAfter:"",V&&Z==="child"?h.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),De=(0,p.useCallback)(w=>l(e.id,w),[e.id,l]),C=(0,s.jsxs)("div",{ref:De,className:ce,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":B?F:void 0,"aria-label":J?`${Me(J)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":M&&O?se:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:fe,onKeyDown:j,onContextMenu:S?w=>ie(e,w):void 0,onDragOver:M?w=>X(e,w):void 0,onDragLeave:M?()=>Y(e):void 0,onDrop:M?w=>k(e,w):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(w,ee)=>(0,s.jsx)("span",{className:h.indentGuide,style:{left:`${(ee+1)*12+29}px`}},`guide-${ee}`)),M&&O&&(0,s.jsx)("span",{className:h.dragHandle,draggable:!0,onDragStart:w=>K(e,w),onDragEnd:A,title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,s.jsx)(Et,{})}),B?(0,s.jsx)(Ct,{expanded:F}):(0,s.jsx)("span",{className:h.expandIconPlaceholder}),z,J&&(0,s.jsx)(Bt,{method:J}),he,ze&&(0,s.jsx)("span",{className:h.requiredDot,title:"Required"}),(0,s.jsx)("span",{className:h.nodeSuffix,children:ke}),S&&(0,s.jsx)("button",{type:"button",className:[h.moreButton,D===e.id?h.moreButtonActive:""].filter(Boolean).join(" "),onClick:w=>me(e,w),title:"More actions","aria-label":`More actions for ${e.name}`,"aria-haspopup":"menu","aria-expanded":D===e.id,tabIndex:-1,children:(0,s.jsx)(Lt,{})})]}),Ce=x?x(U,C):C;return(0,s.jsx)(s.Fragment,{children:Ce})}var Ht=(0,p.memo)(At,zt),dt=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:g=!1,searchPlaceholder:I="Search...",showExpandAll:c=!1,showRefresh:x=!1,onRefresh:M,toolbar:v,searchRowExtra:O,renderNode:K,renderIcon:X,renderLabel:Y,renderSuffix:k,className:A,style:S,size:D="sm",variant:ie="default",showIndentGuides:me=!0,maxHeight:F,rootRef:xe,draggable:ue=!1,dragGroupKey:B,onReorder:Se,onMove:se,canDrag:V,canDrop:Z,contextMenuItems:H,onContextMenuOpen:J,onPatch:be,theme:ze,virtualized:G="auto"}=e,[U,fe]=(0,p.useState)(null),[j,z]=(0,p.useState)(_),[he,ke]=(0,p.useState)(null),ce=(0,p.useRef)(null),De=(0,p.useId)(),C=(0,p.useMemo)(()=>ot(o),[o]),[Ce,w]=(0,p.useState)({top:0,height:400}),[ee,ve]=(0,p.useState)(null),[Ae,Qe]=(0,p.useState)(null),y=Le(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:l}),P=Pe(o),_e=P.isSearching?y.allBranchIds:P.expandedBeforeSearch??y.expandedIds,Te=(0,p.useMemo)(()=>new Set(_e),[_e]),R=(0,p.useMemo)(()=>{let r=[],d=new Set,u=P.filteredNodes.map((f,b,m)=>({node:f,depth:0,parentId:null,positionInSet:b+1,setSize:m.length})).reverse();for(;u.length;){let f=u.pop();if(!d.has(f.node.id)&&(d.add(f.node.id),r.push(f),Te.has(f.node.id))){let b=f.node.children??[];for(let m=b.length-1;m>=0;m--)u.push({node:b[m],depth:f.depth+1,parentId:f.node.id,positionInSet:m+1,setSize:b.length})}}return r},[P.filteredNodes,Te]),we=(0,p.useMemo)(()=>new Map(R.map((r,d)=>[r.node.id,d])),[R]),le=D==="xs"?24:D==="md"?32:28,te=G!==!1&&ie!=="doc"&&!K&&(G===!0||R.length>500),ge=te?Math.max(0,Math.min(Math.floor(Ce.top/le)-8,R.length-1)):0,ye=te?Math.min(R.length,ge+Math.ceil(Ce.height/le)+16):R.length,Ke=R.slice(ge,ye);(0,p.useEffect)(()=>{let r=ce.current;if(!r)return;let d=()=>w({top:r.scrollTop,height:r.clientHeight||400});d();let u=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return u?.observe(r),()=>u?.disconnect()},[]),(0,p.useEffect)(()=>{if(!ee)return;let r=we.get(ee.id);if(r===void 0){ve(null);return}let d=ce.current;if(te&&d&&(r<ge||r>=ye)){let f=d.clientHeight||400,b=Math.min(r*le,Math.max(0,R.length*le-f));d.scrollTop=b,w(m=>({...m,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(ee.id);ee.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),ve(null)},[ee,we,te,le,ge,ye,R.length,y.nodeElementRefs]);let He=Ae===null?void 0:we.get(Ae),it=He!==void 0&&He>=ge&&He<ye?Ae:Ke[0]?.node.id,Ge=(0,p.useRef)({query:"",time:0}),st=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=we.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=R[d],f=d;if(r.key==="ArrowDown")f=Math.min(d+1,R.length-1);else if(r.key==="ArrowUp")f=Math.max(0,d-1);else if(r.key==="Home")f=0;else if(r.key==="End")f=R.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Te.has(u.node.id))f=Math.min(d+1,R.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Te.has(u.node.id)))f=we.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let m=r.target.getBoundingClientRect();r.preventDefault(),Ne(u.node,m.left+24,m.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let m=Date.now(),q=m-Ge.current.time<600?Ge.current.query+r.key.toLowerCase():r.key.toLowerCase();Ge.current={query:q,time:m};for(let E=1;E<=R.length;E++){let W=(d+E)%R.length;if(R[W].node.name.toLowerCase().startsWith(q)){f=W;break}}}else return;r.preventDefault();let b=R[f].node.id;Qe(b),ve({id:b,focus:!0})};(0,p.useEffect)(()=>{ce.current&&(ce.current.scrollTop=0),w(r=>({...r,top:0}))},[P.deferredQuery]);let ct=(0,p.useCallback)(r=>{fe(r.id),n?.(r)},[n]),lt=(0,p.useCallback)(r=>{!r.trim()&&P.expandedBeforeSearch&&y.setExpandedIds(P.expandedBeforeSearch),P.handleQueryChange(r,y.expandedIds)},[y.expandedIds,P]),Ie=(0,p.useCallback)(r=>!ue||r.metadata?.kind==="section"?!1:V?V(r):!0,[V,ue]),Re=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Ie(r)||C.path(d.id)?.ancestorIds.includes(r.id))return!1;if(B){let b=E=>{let W=C.path(E)?.nodes??[];for(let re=W.length-1;re>=0;re--){let oe=W[re]?.metadata;if(oe&&typeof oe=="object"&&Object.prototype.hasOwnProperty.call(oe,B))return oe[B]}},m=b(r.id),q=b(d.id);if(m!==void 0&&q!==void 0&&m!==q)return!1}return!Z||Z(r,d,u)},[Ie,Z,B,C]),pt=(0,p.useCallback)((r,d)=>{if(!Ie(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),z({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Ie]),ut=(0,p.useCallback)((r,d)=>{if(!j.draggedId||j.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=d.currentTarget.getBoundingClientRect(),f=(d.clientY-u.top)/u.height,b=(r.children?.length??0)>0,m;b?f<.25?m="before":f>.75?m="after":m="child":m=f<.5?"before":"after";let q=C.byId.get(j.draggedId)?.node;if(!q||!Re(q,r,m)){z(E=>E.dragOverId===null?E:{...E,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",z(E=>E.dragOverId===r.id&&E.dragOverPosition===m?E:{...E,dragOverId:r.id,dragOverPosition:m})},[Re,j.draggedId,C]),ft=(0,p.useCallback)(r=>{z(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),ht=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=j.draggedId,f=j.dragOverPosition;if(!u||!f||u===r.id||j.dragOverId!==r.id){z(_);return}let b=C.byId.get(u)?.node;if(!b||!Re(b,r,f)){z(_);return}if(f==="child"){let pe=C.path(u)?.target;if(!pe){z(_);return}let Je=We(o,u,r.id);Je&&se?.(Je,pe,r.id),z(_);return}let m=C.path(r.id);if(!m){z(_);return}let q=m.parent?.children??o,E=q.findIndex($=>$.id===r.id);if(E===-1){z(_);return}let W=f==="before"?E:E+1,re=C.path(u),oe=m.parent?.id??null;if((re?.parent?.id??null)!==oe){let $=re?.target,pe=We(o,u,oe,W);pe&&$&&se?.(pe,$,oe),z(_);return}if(re&&re.parent===m.parent){let $=q.findIndex(pe=>pe.id===u);$!==-1&&$<W&&(W-=1)}let ne=et(o,u,W);if(ne&&ne.fromIndex!==ne.toIndex&&(Se?.(ne),be)){let $=Pt(ne.moved,ne.fromIndex,ne.toIndex,q);$.length>0&&be($,{node:ne.moved,type:"reorder"})}z(_)},[j,o,C,Re,se,be,Se]),gt=(0,p.useCallback)(()=>{z(_)},[]),Ne=(0,p.useCallback)((r,d,u)=>{if(H){let f=H(r);if(f.length===0)return;let b=y.nodeElementRefs.current.get(r.id);b&&ke({x:d,y:u,node:r,items:f,anchor:b});return}J?.({node:r,x:d,y:u})},[H,J,y.nodeElementRefs]),mt=(0,p.useCallback)(()=>{ke(null)},[]),xt=(0,p.useCallback)((r,d)=>{d.preventDefault(),Ne(r,d.clientX,d.clientY)},[Ne]),bt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();Ne(r,u.left,u.bottom+4)},[Ne]),Ve=(0,p.useCallback)(r=>{let d=C.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),P.clearSearch(),ve({id:r,focus:!1})},[y,C,P.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>U?C.path(U)?.target:void 0,scrollToNode:Ve,locateNode:r=>{let d=[...o],u=new Set;for(let f=0;f<d.length;f++){let b=d[f];if(!(!b||u.has(b))){if(u.add(b),r(b)){let m=C.path(b.id);return m&&y.setExpandedIds([...new Set([...y.expandedIds,...m.ancestorIds])]),P.clearSearch(),fe(b.id),ve({id:b.id,focus:!1}),b}if(b.children?.length)for(let m of b.children)d.push(m)}}}}),[y,Ve,U,o,C,P.clearSearch]);let vt=(0,p.useMemo)(()=>({...S,...F!==void 0?{maxHeight:F}:{}}),[S,F]),Tt=[h.root,ie!=="default"?`pde-tree-variant-${ie}`:"",A].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:Tt,style:vt,"data-size":D,"data-theme":ze,children:[v&&(0,s.jsx)("div",{className:h.toolbar,children:v}),(g||c||x||O)&&(0,s.jsxs)("div",{className:h.searchRow,children:[g&&(0,s.jsxs)("div",{className:h.searchInputWrap,children:[(0,s.jsx)("span",{className:h.searchIcon,children:(0,s.jsx)(Rt,{})}),(0,s.jsx)("input",{className:h.searchInput,type:"search","aria-controls":De,placeholder:I,value:P.query,onChange:r=>lt(r.target.value),"aria-label":"Search tree"})]}),O,c&&(0,s.jsx)("button",{type:"button",className:h.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?"Collapse all":"Expand all","aria-label":y.isAllExpanded?"Collapse all":"Expand all",children:y.isAllExpanded?(0,s.jsx)(Be.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Be.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),x&&(0,s.jsx)("button",{type:"button",className:h.iconButton,onClick:M,title:"Refresh","aria-label":"Refresh",children:(0,s.jsx)(N.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:ce,className:h.treeContainer,"data-virtualized":te||void 0,onScroll:r=>{te&&w({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:De,role:"tree",onKeyDown:st,"aria-label":"Tree navigation",children:P.filteredNodes.length===0?(0,s.jsx)("div",{className:h.emptyState,children:P.isSearching?"No matching results":"No items"}):(0,s.jsxs)(s.Fragment,{children:[te&&(0,s.jsx)("div",{role:"presentation",style:{height:ge*le}}),Ke.map(({node:r,depth:d,positionInSet:u,setSize:f})=>(0,s.jsx)(Ht,{node:r,depth:d,positionInSet:u,setSize:f,isFocused:r.id===it,onFocusNode:Qe,isExpanded:Te.has(r.id),isSelected:U===r.id,onToggle:y.toggleNode,onSelect:ct,onNodeRef:y.setNodeElementRef,searchQuery:P.deferredQuery,showIndentGuides:me,renderIcon:X,renderLabel:Y,renderSuffix:k,renderNode:K,draggable:ue,dragState:j,canDragNode:Ie(r),onDragStart:pt,onDragOver:ut,onDragLeave:ft,onDrop:ht,onDragEnd:gt,showContextMenuButton:!!(H||J),activeMenuNodeId:he?.node.id??null,onContextMenu:xt,onMoreClick:bt},r.id)),te&&(0,s.jsx)("div",{role:"presentation",style:{height:(R.length-ye)*le}})]})}),he&&(0,s.jsx)(rt,{state:he,onClose:mt},he.node.id)]})});0&&(module.exports={METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
@@ -128,6 +128,18 @@ interface TreeProps<TMetadata = unknown> {
128
128
  * When provided, a more button appears on row hover and right-click opens the menu.
129
129
  */
130
130
  contextMenuItems?: (node: TreeNode<TMetadata>) => ContextMenuItem<TMetadata>[];
131
+ /**
132
+ * Host-rendered context menu hook. When provided without `contextMenuItems`,
133
+ * the tree skips its built-in menu and reports each right-click / more-button
134
+ * request together with viewport coordinates. The host then renders its own
135
+ * menu system (for example a design-system menu with cascading submenus) and
136
+ * fully owns open state and dismissal.
137
+ */
138
+ onContextMenuOpen?: (request: {
139
+ node: TreeNode<TMetadata>;
140
+ x: number;
141
+ y: number;
142
+ }) => void;
131
143
  /**
132
144
  * Called when a mutation (reorder, move, delete via context menu) produces JSON Patch operations.
133
145
  * Only fires when the affected node has a `jsonPath` in its metadata.
@@ -128,6 +128,18 @@ interface TreeProps<TMetadata = unknown> {
128
128
  * When provided, a more button appears on row hover and right-click opens the menu.
129
129
  */
130
130
  contextMenuItems?: (node: TreeNode<TMetadata>) => ContextMenuItem<TMetadata>[];
131
+ /**
132
+ * Host-rendered context menu hook. When provided without `contextMenuItems`,
133
+ * the tree skips its built-in menu and reports each right-click / more-button
134
+ * request together with viewport coordinates. The host then renders its own
135
+ * menu system (for example a design-system menu with cascading submenus) and
136
+ * fully owns open state and dismissal.
137
+ */
138
+ onContextMenuOpen?: (request: {
139
+ node: TreeNode<TMetadata>;
140
+ x: number;
141
+ y: number;
142
+ }) => void;
131
143
  /**
132
144
  * Called when a mutation (reorder, move, delete via context menu) produces JSON Patch operations.
133
145
  * Only fires when the affected node has a `jsonPath` in its metadata.
@@ -1 +1 @@
1
- import{i as _e,j as Oe,k as Je,p as Ue,q as Ae}from"../chunk-AHHDXXHL.js";import{forwardRef as Nt,memo as Dt,useCallback as R,useEffect as $e,useImperativeHandle as Ct,useId as Rt,useMemo as Ie,useRef as ot,useState as ue}from"react";import{useLayoutEffect as yt,useRef as It,useState as He}from"react";import{createPortal as Tt}from"react-dom";import{jsx as Ce,jsxs as Ye}from"react/jsx-runtime";function Xe({state:r,onClose:t}){let u=It(null),[n,c]=He(null),[b,m]=He({left:r.x,top:r.y}),[P,w]=He({}),T=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return yt(()=>{let l=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(l),y={};for(let M=0;M<v.length;M++){let O=v.item(M);(O.startsWith("--tree-")||O.startsWith("--color-")||O.startsWith("--radius-")||O.startsWith("--font-")||O.startsWith("--shadow-"))&&(y[O]=v.getPropertyValue(O))}w(y);let h=u.current;if(!h)return;let E=()=>{let M=h.getBoundingClientRect();m({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-M.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-M.height-8))})};E();let Q=typeof ResizeObserver>"u"?void 0:new ResizeObserver(E);Q?.observe(h),h.querySelector("button:not(:disabled)")?.focus();let V=M=>{M.target instanceof Node&&!h.contains(M.target)&&t()},_=M=>{M.target instanceof Node&&!h.contains(M.target)&&t()};return document.addEventListener("pointerdown",V),document.addEventListener("scroll",_,!0),window.addEventListener("resize",t),()=>{Q?.disconnect(),document.removeEventListener("pointerdown",V),document.removeEventListener("scroll",_,!0),window.removeEventListener("resize",t),h.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Tt(Ce("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...b},role:"menu","aria-label":`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:l=>{let v=u.current;if(!v)return;let y=Array.from(v.querySelectorAll("button:not(:disabled)")),h=y.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),t();return}let E;if(l.key==="ArrowDown")E=(h+1)%y.length;else if(l.key==="ArrowUp")E=(h-1+y.length)%y.length;else if(l.key==="Home")E=0;else if(l.key==="End")E=y.length-1;else return;l.preventDefault(),y[E]?.focus()},children:r.items.map((l,v)=>Ye("div",{role:"presentation",children:[l.separator&&Ce("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),Ye("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:l.disabled,className:`pde-tree-contextMenuItem${l.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(l.confirm&&n!==v){c(v);return}t(),l.onClick(r.node)},children:[l.icon&&Ce("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),Ce("span",{children:l.confirm&&n===v?l.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${v}`))}),T)}import{useCallback as ie,useMemo as Re,useRef as Ze,useState as Mt}from"react";function Ge(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:c}=t,b=Re(()=>u!==void 0?[...u]:n<=1?[]:Oe(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[m,P]=Mt(b),w=Ze(new Map),T=Re(()=>Je(r),[r]),l=Re(()=>new Set(m),[m]),v=Ze(m);v.current=m;let y=Re(()=>T.length>0&&T.every(I=>l.has(I)),[T,l]),h=ie(I=>{v.current=I,P(I),c?.(I)},[c]),E=ie(I=>{let S=v.current,te=S.includes(I)?S.filter(he=>he!==I):[...S,I];h(te)},[h]),Q=ie(()=>{h([...T])},[T,h]),V=ie(()=>{h([])},[h]),_=ie(I=>{let S=Oe(r,{maxDepth:I,onlyWithChildren:!0});h(S)},[r,h]),M=ie((I,S)=>{S?w.current.set(I,S):w.current.delete(I)},[]),O=ie(I=>{let S=w.current.get(I);S&&S.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:m,setExpandedIds:h,toggleNode:E,expandAll:Q,collapseAll:V,expandToDepth:_,isAllExpanded:y,allBranchIds:T,setNodeElementRef:M,scrollToNode:O,nodeElementRefs:w}}import{useCallback as et,useDeferredValue as St,useMemo as kt,useState as tt}from"react";function qe(r){let[t,u]=tt(""),n=St(t),[c,b]=tt(null),m=n.trim().length>0,P=kt(()=>m?_e(r,{query:n,keepAncestors:!0}):r,[r,n,m]),w=et((l,v)=>{let y=t.trim(),h=l.trim();!y&&h&&b(v),y&&!h&&b(null),u(l)},[t]),T=et(()=>{u(""),b(null)},[]);return{query:t,deferredQuery:n,isSearching:m,filteredNodes:P,expandedBeforeSearch:c,handleQueryChange:w,clearSearch:T}}function rt(r){let t=new Map,u=new Set,n=r.map(c=>({node:c,parentId:null})).reverse();for(;n.length;){let c=n.pop();if(u.has(c.node)||t.has(c.node.id))continue;u.add(c.node),t.set(c.node.id,c);let b=c.node.children??[];for(let m=b.length-1;m>=0;m--)n.push({node:b[m],parentId:c.node.id})}return{byId:t,path(c){let b=t.get(c);if(!b)return null;let m=[b.node],P=b.parentId;for(;P!==null;){let w=t.get(P);if(!w)break;m.push(w.node),P=w.parentId}return m.reverse(),{nodes:m,target:b.node,parent:m[m.length-2],ancestorIds:m.slice(0,-1).map(w=>w.id)}}}}var je={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PATCH",head:"HEAD",options:"OPT",trace:"TRA",connect:"CONN"};function Ee(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(je,t)?je[t]:t.slice(0,4).toUpperCase()}import{LuBraces as nt,LuChevronDown as Et,LuChevronRight as Lt,LuEllipsisVertical as Pt,LuFolder as Bt,LuFolderOpen as zt,LuGripVertical as Ot,LuList as At,LuRefreshCw as Ht,LuSearch as Gt,LuZap as qt}from"react-icons/lu";import{MdOutlineUnfoldMore as jt,MdUnfoldLess as $t}from"react-icons/md";import{Fragment as Te,jsx as a,jsxs as fe}from"react/jsx-runtime";var s={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Ft({expanded:r}){return a("span",{className:s.expandIcon,children:r?a(Et,{size:14}):a(Lt,{size:14})})}function Qt(){return a(Gt,{size:14,"aria-hidden":"true"})}function Wt(){return a(Ot,{size:14,"aria-hidden":"true"})}function Kt(){return a(Pt,{size:14,"aria-hidden":"true"})}function at(r){let u=r.metadata?.jsonPath;if(Array.isArray(u)&&u.length>0&&u.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return u}function Vt(r,t,u,n){let c=at(r);if(!c||c.length===0)return[];let b=JSON.stringify(c.slice(0,-1));if(!n.every((P,w)=>{let T=at(P);return T&&T[T.length-1]===w&&JSON.stringify(T.slice(0,-1))===b}))return[];let m=c.slice(0,-1);return[{op:"move",from:[...m,t],path:[...m,u]}]}function _t({text:r,query:t}){if(!t)return a(Te,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),c=u.indexOf(n);return c===-1?a(Te,{children:r}):fe(Te,{children:[r.slice(0,c),a("span",{className:s.highlight,children:r.slice(c,c+t.length)}),r.slice(c+t.length)]})}var dt={get:s.methodGet,post:s.methodPost,put:s.methodPut,patch:s.methodPatch,delete:s.methodDelete};function Jt({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(dt,t)?dt[t]:s.methodOther,n=Ee(r);return a("span",{className:`${s.methodBadge} ${u}`,children:n})}var F={draggedId:null,dragOverId:null,dragOverPosition:null};function Ut(r,t){if(r.isFocused!==t.isFocused||r.positionInSet!==t.positionInSet||r.setSize!==t.setSize||r.node!==t.node||r.depth!==t.depth||r.isExpanded!==t.isExpanded||r.isSelected!==t.isSelected||r.searchQuery!==t.searchQuery||r.showIndentGuides!==t.showIndentGuides||r.canDragNode!==t.canDragNode||r.draggable!==t.draggable||r.showContextMenuButton!==t.showContextMenuButton||r.activeMenuNodeId===r.node.id!=(t.activeMenuNodeId===t.node.id))return!1;let u=r.dragState.draggedId===r.node.id,n=t.dragState.draggedId===t.node.id;if(u!==n)return!1;let c=r.dragState.dragOverId===r.node.id,b=t.dragState.dragOverId===t.node.id;return!(c!==b||c&&b&&r.dragState.dragOverPosition!==t.dragState.dragOverPosition||r.renderIcon!==t.renderIcon||r.renderLabel!==t.renderLabel||r.renderSuffix!==t.renderSuffix||r.renderNode!==t.renderNode||r.onToggle!==t.onToggle||r.onSelect!==t.onSelect||r.onNodeRef!==t.onNodeRef||r.onDragStart!==t.onDragStart||r.onDragOver!==t.onDragOver||r.onDragLeave!==t.onDragLeave||r.onDrop!==t.onDrop||r.onDragEnd!==t.onDragEnd||r.onContextMenu!==t.onContextMenu||r.onMoreClick!==t.onMoreClick)}function Yt(r){let{node:t,depth:u,onToggle:n,onSelect:c,onNodeRef:b,searchQuery:m,showIndentGuides:P,renderIcon:w,renderLabel:T,renderSuffix:l,renderNode:v,draggable:y,dragState:h,canDragNode:E,onDragStart:Q,onDragOver:V,onDragLeave:_,onDrop:M,onDragEnd:O,showContextMenuButton:I,activeMenuNodeId:S,onContextMenu:te,onMoreClick:he}=r,{isExpanded:q,isSelected:ge}=r,se=(t.children?.length??0)>0,L=se,Me=!se,re=h.draggedId===t.id,W=h.dragOverId===t.id,J=W?h.dragOverPosition:null,A=t.metadata,K=typeof A?.method=="string"?A.method:void 0,Le=A?.deprecated===!0,Se=A?.required===!0,z=typeof A?.kind=="string"?A.kind:void 0,oe={node:t,depth:u,isExpanded:q,isSelected:ge,isBranch:L,isLeaf:Me,isDragging:re,isDragOver:W,dragOverPosition:J},H=R(()=>{L?n(t.id):c(t)},[L,t,c,n]),B=R(g=>{g.target===g.currentTarget&&(g.key==="Enter"||g.key===" "?(g.preventDefault(),H()):(g.key==="ArrowRight"&&L&&!q||g.key==="ArrowLeft"&&L&&q)&&(g.preventDefault(),g.stopPropagation(),n(t.id)))},[H,L,q,t.id,n]),ce=w?w(oe):K?null:a("span",{className:s.nodeIcon,children:z==="section"&&A?.section==="components"?a(nt,{size:14}):z==="section"&&A?.section==="webhooks"?a(qt,{size:14}):z==="schema"||z==="component"||z==="object"?a(nt,{size:14}):z==="array"||z==="items"?a(At,{size:14}):L?q?a(zt,{size:14}):a(Bt,{size:14}):a("span",{className:s.primitiveDot})}),ke=T?T(oe):a("span",{className:`${s.nodeLabel} ${L?s.nodeLabelBranch:""} ${Le?s.deprecatedLabel:""}`,children:a(_t,{text:t.name,query:m})}),ne=l?l(oe):null,Ne=[s.nodeRow,L?s.branchControl:s.leafItem,ge?s.nodeRowSelected:"",re?s.nodeDragging:"",W&&J==="before"?s.dropIndicatorBefore:"",W&&J==="after"?s.dropIndicatorAfter:"",W&&J==="child"?s.dropIndicatorChild:"",z?`pde-tree-kind-${z}`:""].filter(Boolean).join(" "),D=R(g=>b(t.id,g),[t.id,b]),me=fe("div",{ref:D,className:Ne,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":L?q:void 0,"aria-label":K?`${Ee(K)} ${t.name}`:t.name,"aria-selected":ge,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":y&&E?re:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:H,onKeyDown:B,onContextMenu:I?g=>te(t,g):void 0,onDragOver:y?g=>V(t,g):void 0,onDragLeave:y?()=>_(t):void 0,onDrop:y?g=>M(t,g):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(g,U)=>a("span",{className:s.indentGuide,style:{left:`${(U+1)*12+29}px`}},`guide-${U}`)),y&&E&&a("span",{className:s.dragHandle,draggable:!0,onDragStart:g=>Q(t,g),onDragEnd:O,title:"Drag to reorder","aria-label":"Drag to reorder",children:a(Wt,{})}),L?a(Ft,{expanded:q}):a("span",{className:s.expandIconPlaceholder}),ce,K&&a(Jt,{method:K}),ke,Se&&a("span",{className:s.requiredDot,title:"Required"}),a("span",{className:s.nodeSuffix,children:ne}),I&&a("button",{type:"button",className:[s.moreButton,S===t.id?s.moreButtonActive:""].filter(Boolean).join(" "),onClick:g=>he(t,g),title:"More actions","aria-label":`More actions for ${t.name}`,"aria-haspopup":"menu","aria-expanded":S===t.id,tabIndex:-1,children:a(Kt,{})})]}),le=v?v(oe,me):me;return a(Te,{children:le})}var Xt=Dt(Yt,Ut),Zt=Nt(function(t,u){let{nodes:n,onSelect:c,onExpandedChange:b,defaultExpandedIds:m,defaultExpandDepth:P=1,searchable:w=!1,searchPlaceholder:T="Search...",showExpandAll:l=!1,showRefresh:v=!1,onRefresh:y,toolbar:h,searchRowExtra:E,renderNode:Q,renderIcon:V,renderLabel:_,renderSuffix:M,className:O,style:I,size:S="sm",variant:te="default",showIndentGuides:he=!0,maxHeight:q,rootRef:ge,draggable:se=!1,dragGroupKey:L,onReorder:Me,onMove:re,canDrag:W,canDrop:J,contextMenuItems:A,onPatch:K,theme:Le,virtualized:Se="auto"}=t,[z,oe]=ue(null),[H,B]=ue(F),[ce,ke]=ue(null),ne=ot(null),Ne=Rt(),D=Ie(()=>rt(n),[n]),[me,le]=ue({top:0,height:400}),[g,U]=ue(null),[Pe,Fe]=ue(null),x=Ge(n,{defaultExpandedIds:m,defaultExpandDepth:P,onExpandedChange:b}),C=qe(n),Qe=C.isSearching?x.allBranchIds:C.expandedBeforeSearch??x.expandedIds,xe=Ie(()=>new Set(Qe),[Qe]),k=Ie(()=>{let e=[],o=new Set,d=C.filteredNodes.map((i,f,p)=>({node:i,depth:0,parentId:null,positionInSet:f+1,setSize:p.length})).reverse();for(;d.length;){let i=d.pop();if(!o.has(i.node.id)&&(o.add(i.node.id),e.push(i),xe.has(i.node.id))){let f=i.node.children??[];for(let p=f.length-1;p>=0;p--)d.push({node:f[p],depth:i.depth+1,parentId:i.node.id,positionInSet:p+1,setSize:f.length})}}return e},[C.filteredNodes,xe]),be=Ie(()=>new Map(k.map((e,o)=>[e.node.id,o])),[k]),ae=S==="xs"?24:S==="md"?32:28,Y=Se!==!1&&te!=="doc"&&!Q&&(Se===!0||k.length>500),pe=Y?Math.max(0,Math.min(Math.floor(me.top/ae)-8,k.length-1)):0,ve=Y?Math.min(k.length,pe+Math.ceil(me.height/ae)+16):k.length,We=k.slice(pe,ve);$e(()=>{let e=ne.current;if(!e)return;let o=()=>le({top:e.scrollTop,height:e.clientHeight||400});o();let d=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return d?.observe(e),()=>d?.disconnect()},[]),$e(()=>{if(!g)return;let e=be.get(g.id);if(e===void 0){U(null);return}let o=ne.current;if(Y&&o&&(e<pe||e>=ve)){let i=o.clientHeight||400,f=Math.min(e*ae,Math.max(0,k.length*ae-i));o.scrollTop=f,le(p=>({...p,top:o.scrollTop}));return}let d=x.nodeElementRefs.current.get(g.id);g.focus&&d?.focus({preventScroll:!0}),d?.scrollIntoView?.({block:"nearest"}),U(null)},[g,be,Y,ae,pe,ve,k.length,x.nodeElementRefs]);let Be=Pe===null?void 0:be.get(Pe),it=Be!==void 0&&Be>=pe&&Be<ve?Pe:We[0]?.node.id,ze=ot({query:"",time:0}),st=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=be.get(e.target.dataset.nodeId??"");if(o===void 0)return;let d=k[o],i=o;if(e.key==="ArrowDown")i=Math.min(o+1,k.length-1);else if(e.key==="ArrowUp")i=Math.max(0,o-1);else if(e.key==="Home")i=0;else if(e.key==="End")i=k.length-1;else if(e.key==="ArrowRight"&&d.node.children?.length&&xe.has(d.node.id))i=Math.min(o+1,k.length-1);else if(e.key==="ArrowLeft"&&(!d.node.children?.length||!xe.has(d.node.id)))i=be.get(d.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let p=e.target.getBoundingClientRect();e.preventDefault(),ye(d.node,p.left+24,p.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let p=Date.now(),G=p-ze.current.time<600?ze.current.query+e.key.toLowerCase():e.key.toLowerCase();ze.current={query:G,time:p};for(let N=1;N<=k.length;N++){let $=(o+N)%k.length;if(k[$].node.name.toLowerCase().startsWith(G)){i=$;break}}}else return;e.preventDefault();let f=k[i].node.id;Fe(f),U({id:f,focus:!0})};$e(()=>{ne.current&&(ne.current.scrollTop=0),le(e=>({...e,top:0}))},[C.deferredQuery]);let ct=R(e=>{oe(e.id),c?.(e)},[c]),lt=R(e=>{!e.trim()&&C.expandedBeforeSearch&&x.setExpandedIds(C.expandedBeforeSearch),C.handleQueryChange(e,x.expandedIds)},[x.expandedIds,C]),we=R(e=>!se||e.metadata?.kind==="section"?!1:W?W(e):!0,[W,se]),De=R((e,o,d)=>{if(e.id===o.id||!we(e)||D.path(o.id)?.ancestorIds.includes(e.id))return!1;if(L){let f=N=>{let $=D.path(N)?.nodes??[];for(let X=$.length-1;X>=0;X--){let Z=$[X]?.metadata;if(Z&&typeof Z=="object"&&Object.prototype.hasOwnProperty.call(Z,L))return Z[L]}},p=f(e.id),G=f(o.id);if(p!==void 0&&G!==void 0&&p!==G)return!1}return!J||J(e,o,d)},[we,J,L,D]),pt=R((e,o)=>{if(!we(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),B({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[we]),ut=R((e,o)=>{if(!H.draggedId||H.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let d=o.currentTarget.getBoundingClientRect(),i=(o.clientY-d.top)/d.height,f=(e.children?.length??0)>0,p;f?i<.25?p="before":i>.75?p="after":p="child":p=i<.5?"before":"after";let G=D.byId.get(H.draggedId)?.node;if(!G||!De(G,e,p)){B(N=>N.dragOverId===null?N:{...N,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",B(N=>N.dragOverId===e.id&&N.dragOverPosition===p?N:{...N,dragOverId:e.id,dragOverPosition:p})},[De,H.draggedId,D]),ft=R(e=>{B(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),ht=R((e,o)=>{o.preventDefault();let d=H.draggedId,i=H.dragOverPosition;if(!d||!i||d===e.id||H.dragOverId!==e.id){B(F);return}let f=D.byId.get(d)?.node;if(!f||!De(f,e,i)){B(F);return}if(i==="child"){let de=D.path(d)?.target;if(!de){B(F);return}let Ve=Ae(n,d,e.id);Ve&&re?.(Ve,de,e.id),B(F);return}let p=D.path(e.id);if(!p){B(F);return}let G=p.parent?.children??n,N=G.findIndex(j=>j.id===e.id);if(N===-1){B(F);return}let $=i==="before"?N:N+1,X=D.path(d),Z=p.parent?.id??null;if((X?.parent?.id??null)!==Z){let j=X?.target,de=Ae(n,d,Z,$);de&&j&&re?.(de,j,Z),B(F);return}if(X&&X.parent===p.parent){let j=G.findIndex(de=>de.id===d);j!==-1&&j<$&&($-=1)}let ee=Ue(n,d,$);if(ee&&ee.fromIndex!==ee.toIndex&&(Me?.(ee),K)){let j=Vt(ee.moved,ee.fromIndex,ee.toIndex,G);j.length>0&&K(j,{node:ee.moved,type:"reorder"})}B(F)},[H,n,D,De,re,K,Me]),gt=R(()=>{B(F)},[]),ye=R((e,o,d)=>{if(!A)return;let i=A(e);if(i.length===0)return;let f=x.nodeElementRefs.current.get(e.id);f&&ke({x:o,y:d,node:e,items:i,anchor:f})},[A,x.nodeElementRefs]),mt=R(()=>{ke(null)},[]),xt=R((e,o)=>{o.preventDefault(),ye(e,o.clientX,o.clientY)},[ye]),bt=R((e,o)=>{o.stopPropagation();let d=o.currentTarget.getBoundingClientRect();ye(e,d.left,d.bottom+4)},[ye]),Ke=R(e=>{let o=D.path(e);if(!o)return;let d=o.ancestorIds;x.setExpandedIds([...new Set([...x.expandedIds,...d])]),C.clearSearch(),U({id:e,focus:!1})},[x,D,C.clearSearch]);Ct(u,()=>({expandAll:x.expandAll,collapseAll:x.collapseAll,expandToDepth:x.expandToDepth,getExpandedIds:()=>x.expandedIds,getSelectedNode:()=>z?D.path(z)?.target:void 0,scrollToNode:Ke,locateNode:e=>{let o=[...n],d=new Set;for(let i=0;i<o.length;i++){let f=o[i];if(!(!f||d.has(f))){if(d.add(f),e(f)){let p=D.path(f.id);return p&&x.setExpandedIds([...new Set([...x.expandedIds,...p.ancestorIds])]),C.clearSearch(),oe(f.id),U({id:f.id,focus:!1}),f}if(f.children?.length)for(let p of f.children)o.push(p)}}}}),[x,Ke,z,n,D,C.clearSearch]);let vt=Ie(()=>({...I,...q!==void 0?{maxHeight:q}:{}}),[I,q]),wt=[s.root,te!=="default"?`pde-tree-variant-${te}`:"",O].filter(Boolean).join(" ");return fe("div",{ref:ge,className:wt,style:vt,"data-size":S,"data-theme":Le,children:[h&&a("div",{className:s.toolbar,children:h}),(w||l||v||E)&&fe("div",{className:s.searchRow,children:[w&&fe("div",{className:s.searchInputWrap,children:[a("span",{className:s.searchIcon,children:a(Qt,{})}),a("input",{className:s.searchInput,type:"search","aria-controls":Ne,placeholder:T,value:C.query,onChange:e=>lt(e.target.value),"aria-label":"Search tree"})]}),E,l&&a("button",{type:"button",className:s.iconButton,onClick:x.isAllExpanded?x.collapseAll:x.expandAll,title:x.isAllExpanded?"Collapse all":"Expand all","aria-label":x.isAllExpanded?"Collapse all":"Expand all",children:x.isAllExpanded?a($t,{size:16,"aria-hidden":"true"}):a(jt,{size:16,"aria-hidden":"true"})}),v&&a("button",{type:"button",className:s.iconButton,onClick:y,title:"Refresh","aria-label":"Refresh",children:a(Ht,{size:14,"aria-hidden":"true"})})]}),a("div",{ref:ne,className:s.treeContainer,"data-virtualized":Y||void 0,onScroll:e=>{Y&&le({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Ne,role:"tree",onKeyDown:st,"aria-label":"Tree navigation",children:C.filteredNodes.length===0?a("div",{className:s.emptyState,children:C.isSearching?"No matching results":"No items"}):fe(Te,{children:[Y&&a("div",{role:"presentation",style:{height:pe*ae}}),We.map(({node:e,depth:o,positionInSet:d,setSize:i})=>a(Xt,{node:e,depth:o,positionInSet:d,setSize:i,isFocused:e.id===it,onFocusNode:Fe,isExpanded:xe.has(e.id),isSelected:z===e.id,onToggle:x.toggleNode,onSelect:ct,onNodeRef:x.setNodeElementRef,searchQuery:C.deferredQuery,showIndentGuides:he,renderIcon:V,renderLabel:_,renderSuffix:M,renderNode:Q,draggable:se,dragState:H,canDragNode:we(e),onDragStart:pt,onDragOver:ut,onDragLeave:ft,onDrop:ht,onDragEnd:gt,showContextMenuButton:!!A,activeMenuNodeId:ce?.node.id??null,onContextMenu:xt,onMoreClick:bt},e.id)),Y&&a("div",{role:"presentation",style:{height:(k.length-ve)*ae}})]})}),ce&&a(Xe,{state:ce,onClose:mt},ce.node.id)]})});export{je as METHOD_LABEL_MAP,Zt as Tree,Ee as getMethodLabel,Ge as useTreeExpansion,qe as useTreeSearch};
1
+ import{i as Je,j as Ae,k as Ue,p as Ye,q as He}from"../chunk-AHHDXXHL.js";import{forwardRef as Dt,memo as Ct,useCallback as R,useEffect as Fe,useImperativeHandle as Rt,useId as Et,useMemo as Me,useRef as nt,useState as ue}from"react";import{useLayoutEffect as It,useRef as Mt,useState as Ge}from"react";import{createPortal as Tt}from"react-dom";import{jsx as Re,jsxs as Xe}from"react/jsx-runtime";function Ze({state:r,onClose:t}){let u=Mt(null),[n,c]=Ge(null),[b,g]=Ge({left:r.x,top:r.y}),[P,w]=Ge({}),M=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return It(()=>{let l=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(l),y={};for(let T=0;T<v.length;T++){let z=v.item(T);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(y[z]=v.getPropertyValue(z))}w(y);let h=u.current;if(!h)return;let E=()=>{let T=h.getBoundingClientRect();g({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-T.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-T.height-8))})};E();let Q=typeof ResizeObserver>"u"?void 0:new ResizeObserver(E);Q?.observe(h),h.querySelector("button:not(:disabled)")?.focus();let _=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()},J=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()};return document.addEventListener("pointerdown",_),document.addEventListener("scroll",J,!0),window.addEventListener("resize",t),()=>{Q?.disconnect(),document.removeEventListener("pointerdown",_),document.removeEventListener("scroll",J,!0),window.removeEventListener("resize",t),h.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Tt(Re("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...b},role:"menu","aria-label":`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:l=>{let v=u.current;if(!v)return;let y=Array.from(v.querySelectorAll("button:not(:disabled)")),h=y.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),t();return}let E;if(l.key==="ArrowDown")E=(h+1)%y.length;else if(l.key==="ArrowUp")E=(h-1+y.length)%y.length;else if(l.key==="Home")E=0;else if(l.key==="End")E=y.length-1;else return;l.preventDefault(),y[E]?.focus()},children:r.items.map((l,v)=>Xe("div",{role:"presentation",children:[l.separator&&Re("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),Xe("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:l.disabled,className:`pde-tree-contextMenuItem${l.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(l.confirm&&n!==v){c(v);return}t(),l.onClick(r.node)},children:[l.icon&&Re("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),Re("span",{children:l.confirm&&n===v?l.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${v}`))}),M)}import{useCallback as ie,useMemo as Ee,useRef as et,useState as St}from"react";function qe(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:c}=t,b=Ee(()=>u!==void 0?[...u]:n<=1?[]:Ae(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[g,P]=St(b),w=et(new Map),M=Ee(()=>Ue(r),[r]),l=Ee(()=>new Set(g),[g]),v=et(g);v.current=g;let y=Ee(()=>M.length>0&&M.every(I=>l.has(I)),[M,l]),h=ie(I=>{v.current=I,P(I),c?.(I)},[c]),E=ie(I=>{let S=v.current,re=S.includes(I)?S.filter(he=>he!==I):[...S,I];h(re)},[h]),Q=ie(()=>{h([...M])},[M,h]),_=ie(()=>{h([])},[h]),J=ie(I=>{let S=Ae(r,{maxDepth:I,onlyWithChildren:!0});h(S)},[r,h]),T=ie((I,S)=>{S?w.current.set(I,S):w.current.delete(I)},[]),z=ie(I=>{let S=w.current.get(I);S&&S.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:g,setExpandedIds:h,toggleNode:E,expandAll:Q,collapseAll:_,expandToDepth:J,isAllExpanded:y,allBranchIds:M,setNodeElementRef:T,scrollToNode:z,nodeElementRefs:w}}import{useCallback as tt,useDeferredValue as kt,useMemo as Nt,useState as rt}from"react";function je(r){let[t,u]=rt(""),n=kt(t),[c,b]=rt(null),g=n.trim().length>0,P=Nt(()=>g?Je(r,{query:n,keepAncestors:!0}):r,[r,n,g]),w=tt((l,v)=>{let y=t.trim(),h=l.trim();!y&&h&&b(v),y&&!h&&b(null),u(l)},[t]),M=tt(()=>{u(""),b(null)},[]);return{query:t,deferredQuery:n,isSearching:g,filteredNodes:P,expandedBeforeSearch:c,handleQueryChange:w,clearSearch:M}}function ot(r){let t=new Map,u=new Set,n=r.map(c=>({node:c,parentId:null})).reverse();for(;n.length;){let c=n.pop();if(u.has(c.node)||t.has(c.node.id))continue;u.add(c.node),t.set(c.node.id,c);let b=c.node.children??[];for(let g=b.length-1;g>=0;g--)n.push({node:b[g],parentId:c.node.id})}return{byId:t,path(c){let b=t.get(c);if(!b)return null;let g=[b.node],P=b.parentId;for(;P!==null;){let w=t.get(P);if(!w)break;g.push(w.node),P=w.parentId}return g.reverse(),{nodes:g,target:b.node,parent:g[g.length-2],ancestorIds:g.slice(0,-1).map(w=>w.id)}}}}var $e={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PATCH",head:"HEAD",options:"OPT",trace:"TRA",connect:"CONN"};function Le(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call($e,t)?$e[t]:t.slice(0,4).toUpperCase()}import{LuBraces as at,LuChevronDown as Lt,LuChevronRight as Pt,LuEllipsisVertical as Bt,LuFolder as zt,LuFolderOpen as Ot,LuGripVertical as At,LuList as Ht,LuRefreshCw as Gt,LuSearch as qt,LuZap as jt}from"react-icons/lu";import{MdOutlineUnfoldMore as $t,MdUnfoldLess as Ft}from"react-icons/md";import{Fragment as Te,jsx as a,jsxs as fe}from"react/jsx-runtime";var s={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Qt({expanded:r}){return a("span",{className:s.expandIcon,children:r?a(Lt,{size:14}):a(Pt,{size:14})})}function Wt(){return a(qt,{size:14,"aria-hidden":"true"})}function Kt(){return a(At,{size:14,"aria-hidden":"true"})}function Vt(){return a(Bt,{size:14,"aria-hidden":"true"})}function dt(r){let u=r.metadata?.jsonPath;if(Array.isArray(u)&&u.length>0&&u.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return u}function _t(r,t,u,n){let c=dt(r);if(!c||c.length===0)return[];let b=JSON.stringify(c.slice(0,-1));if(!n.every((P,w)=>{let M=dt(P);return M&&M[M.length-1]===w&&JSON.stringify(M.slice(0,-1))===b}))return[];let g=c.slice(0,-1);return[{op:"move",from:[...g,t],path:[...g,u]}]}function Jt({text:r,query:t}){if(!t)return a(Te,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),c=u.indexOf(n);return c===-1?a(Te,{children:r}):fe(Te,{children:[r.slice(0,c),a("span",{className:s.highlight,children:r.slice(c,c+t.length)}),r.slice(c+t.length)]})}var it={get:s.methodGet,post:s.methodPost,put:s.methodPut,patch:s.methodPatch,delete:s.methodDelete};function Ut({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(it,t)?it[t]:s.methodOther,n=Le(r);return a("span",{className:`${s.methodBadge} ${u}`,children:n})}var F={draggedId:null,dragOverId:null,dragOverPosition:null};function Yt(r,t){if(r.isFocused!==t.isFocused||r.positionInSet!==t.positionInSet||r.setSize!==t.setSize||r.node!==t.node||r.depth!==t.depth||r.isExpanded!==t.isExpanded||r.isSelected!==t.isSelected||r.searchQuery!==t.searchQuery||r.showIndentGuides!==t.showIndentGuides||r.canDragNode!==t.canDragNode||r.draggable!==t.draggable||r.showContextMenuButton!==t.showContextMenuButton||r.activeMenuNodeId===r.node.id!=(t.activeMenuNodeId===t.node.id))return!1;let u=r.dragState.draggedId===r.node.id,n=t.dragState.draggedId===t.node.id;if(u!==n)return!1;let c=r.dragState.dragOverId===r.node.id,b=t.dragState.dragOverId===t.node.id;return!(c!==b||c&&b&&r.dragState.dragOverPosition!==t.dragState.dragOverPosition||r.renderIcon!==t.renderIcon||r.renderLabel!==t.renderLabel||r.renderSuffix!==t.renderSuffix||r.renderNode!==t.renderNode||r.onToggle!==t.onToggle||r.onSelect!==t.onSelect||r.onNodeRef!==t.onNodeRef||r.onDragStart!==t.onDragStart||r.onDragOver!==t.onDragOver||r.onDragLeave!==t.onDragLeave||r.onDrop!==t.onDrop||r.onDragEnd!==t.onDragEnd||r.onContextMenu!==t.onContextMenu||r.onMoreClick!==t.onMoreClick)}function Xt(r){let{node:t,depth:u,onToggle:n,onSelect:c,onNodeRef:b,searchQuery:g,showIndentGuides:P,renderIcon:w,renderLabel:M,renderSuffix:l,renderNode:v,draggable:y,dragState:h,canDragNode:E,onDragStart:Q,onDragOver:_,onDragLeave:J,onDrop:T,onDragEnd:z,showContextMenuButton:I,activeMenuNodeId:S,onContextMenu:re,onMoreClick:he}=r,{isExpanded:G,isSelected:ge}=r,se=(t.children?.length??0)>0,L=se,Se=!se,oe=h.draggedId===t.id,W=h.dragOverId===t.id,U=W?h.dragOverPosition:null,O=t.metadata,K=typeof O?.method=="string"?O.method:void 0,me=O?.deprecated===!0,Pe=O?.required===!0,A=typeof O?.kind=="string"?O.kind:void 0,V={node:t,depth:u,isExpanded:G,isSelected:ge,isBranch:L,isLeaf:Se,isDragging:oe,isDragOver:W,dragOverPosition:U},ce=R(()=>{L?n(t.id):c(t)},[L,t,c,n]),q=R(m=>{m.target===m.currentTarget&&(m.key==="Enter"||m.key===" "?(m.preventDefault(),ce()):(m.key==="ArrowRight"&&L&&!G||m.key==="ArrowLeft"&&L&&G)&&(m.preventDefault(),m.stopPropagation(),n(t.id)))},[ce,L,G,t.id,n]),B=w?w(V):K?null:a("span",{className:s.nodeIcon,children:A==="section"&&O?.section==="components"?a(at,{size:14}):A==="section"&&O?.section==="webhooks"?a(jt,{size:14}):A==="schema"||A==="component"||A==="object"?a(at,{size:14}):A==="array"||A==="items"?a(Ht,{size:14}):L?G?a(Ot,{size:14}):a(zt,{size:14}):a("span",{className:s.primitiveDot})}),le=M?M(V):a("span",{className:`${s.nodeLabel} ${L?s.nodeLabelBranch:""} ${me?s.deprecatedLabel:""}`,children:a(Jt,{text:t.name,query:g})}),ke=l?l(V):null,ne=[s.nodeRow,L?s.branchControl:s.leafItem,ge?s.nodeRowSelected:"",oe?s.nodeDragging:"",W&&U==="before"?s.dropIndicatorBefore:"",W&&U==="after"?s.dropIndicatorAfter:"",W&&U==="child"?s.dropIndicatorChild:"",A?`pde-tree-kind-${A}`:""].filter(Boolean).join(" "),Ne=R(m=>b(t.id,m),[t.id,b]),k=fe("div",{ref:Ne,className:ne,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":L?G:void 0,"aria-label":K?`${Le(K)} ${t.name}`:t.name,"aria-selected":ge,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":y&&E?oe:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:ce,onKeyDown:q,onContextMenu:I?m=>re(t,m):void 0,onDragOver:y?m=>_(t,m):void 0,onDragLeave:y?()=>J(t):void 0,onDrop:y?m=>T(t,m):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(m,Y)=>a("span",{className:s.indentGuide,style:{left:`${(Y+1)*12+29}px`}},`guide-${Y}`)),y&&E&&a("span",{className:s.dragHandle,draggable:!0,onDragStart:m=>Q(t,m),onDragEnd:z,title:"Drag to reorder","aria-label":"Drag to reorder",children:a(Kt,{})}),L?a(Qt,{expanded:G}):a("span",{className:s.expandIconPlaceholder}),B,K&&a(Ut,{method:K}),le,Pe&&a("span",{className:s.requiredDot,title:"Required"}),a("span",{className:s.nodeSuffix,children:ke}),I&&a("button",{type:"button",className:[s.moreButton,S===t.id?s.moreButtonActive:""].filter(Boolean).join(" "),onClick:m=>he(t,m),title:"More actions","aria-label":`More actions for ${t.name}`,"aria-haspopup":"menu","aria-expanded":S===t.id,tabIndex:-1,children:a(Vt,{})})]}),De=v?v(V,k):k;return a(Te,{children:De})}var Zt=Ct(Xt,Yt),er=Dt(function(t,u){let{nodes:n,onSelect:c,onExpandedChange:b,defaultExpandedIds:g,defaultExpandDepth:P=1,searchable:w=!1,searchPlaceholder:M="Search...",showExpandAll:l=!1,showRefresh:v=!1,onRefresh:y,toolbar:h,searchRowExtra:E,renderNode:Q,renderIcon:_,renderLabel:J,renderSuffix:T,className:z,style:I,size:S="sm",variant:re="default",showIndentGuides:he=!0,maxHeight:G,rootRef:ge,draggable:se=!1,dragGroupKey:L,onReorder:Se,onMove:oe,canDrag:W,canDrop:U,contextMenuItems:O,onContextMenuOpen:K,onPatch:me,theme:Pe,virtualized:A="auto"}=t,[V,ce]=ue(null),[q,B]=ue(F),[le,ke]=ue(null),ne=nt(null),Ne=Et(),k=Me(()=>ot(n),[n]),[De,m]=ue({top:0,height:400}),[Y,xe]=ue(null),[Be,Qe]=ue(null),x=qe(n,{defaultExpandedIds:g,defaultExpandDepth:P,onExpandedChange:b}),C=je(n),We=C.isSearching?x.allBranchIds:C.expandedBeforeSearch??x.expandedIds,be=Me(()=>new Set(We),[We]),N=Me(()=>{let e=[],o=new Set,d=C.filteredNodes.map((i,f,p)=>({node:i,depth:0,parentId:null,positionInSet:f+1,setSize:p.length})).reverse();for(;d.length;){let i=d.pop();if(!o.has(i.node.id)&&(o.add(i.node.id),e.push(i),be.has(i.node.id))){let f=i.node.children??[];for(let p=f.length-1;p>=0;p--)d.push({node:f[p],depth:i.depth+1,parentId:i.node.id,positionInSet:p+1,setSize:f.length})}}return e},[C.filteredNodes,be]),ve=Me(()=>new Map(N.map((e,o)=>[e.node.id,o])),[N]),ae=S==="xs"?24:S==="md"?32:28,X=A!==!1&&re!=="doc"&&!Q&&(A===!0||N.length>500),pe=X?Math.max(0,Math.min(Math.floor(De.top/ae)-8,N.length-1)):0,we=X?Math.min(N.length,pe+Math.ceil(De.height/ae)+16):N.length,Ke=N.slice(pe,we);Fe(()=>{let e=ne.current;if(!e)return;let o=()=>m({top:e.scrollTop,height:e.clientHeight||400});o();let d=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return d?.observe(e),()=>d?.disconnect()},[]),Fe(()=>{if(!Y)return;let e=ve.get(Y.id);if(e===void 0){xe(null);return}let o=ne.current;if(X&&o&&(e<pe||e>=we)){let i=o.clientHeight||400,f=Math.min(e*ae,Math.max(0,N.length*ae-i));o.scrollTop=f,m(p=>({...p,top:o.scrollTop}));return}let d=x.nodeElementRefs.current.get(Y.id);Y.focus&&d?.focus({preventScroll:!0}),d?.scrollIntoView?.({block:"nearest"}),xe(null)},[Y,ve,X,ae,pe,we,N.length,x.nodeElementRefs]);let ze=Be===null?void 0:ve.get(Be),st=ze!==void 0&&ze>=pe&&ze<we?Be:Ke[0]?.node.id,Oe=nt({query:"",time:0}),ct=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=ve.get(e.target.dataset.nodeId??"");if(o===void 0)return;let d=N[o],i=o;if(e.key==="ArrowDown")i=Math.min(o+1,N.length-1);else if(e.key==="ArrowUp")i=Math.max(0,o-1);else if(e.key==="Home")i=0;else if(e.key==="End")i=N.length-1;else if(e.key==="ArrowRight"&&d.node.children?.length&&be.has(d.node.id))i=Math.min(o+1,N.length-1);else if(e.key==="ArrowLeft"&&(!d.node.children?.length||!be.has(d.node.id)))i=ve.get(d.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let p=e.target.getBoundingClientRect();e.preventDefault(),Ie(d.node,p.left+24,p.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let p=Date.now(),H=p-Oe.current.time<600?Oe.current.query+e.key.toLowerCase():e.key.toLowerCase();Oe.current={query:H,time:p};for(let D=1;D<=N.length;D++){let $=(o+D)%N.length;if(N[$].node.name.toLowerCase().startsWith(H)){i=$;break}}}else return;e.preventDefault();let f=N[i].node.id;Qe(f),xe({id:f,focus:!0})};Fe(()=>{ne.current&&(ne.current.scrollTop=0),m(e=>({...e,top:0}))},[C.deferredQuery]);let lt=R(e=>{ce(e.id),c?.(e)},[c]),pt=R(e=>{!e.trim()&&C.expandedBeforeSearch&&x.setExpandedIds(C.expandedBeforeSearch),C.handleQueryChange(e,x.expandedIds)},[x.expandedIds,C]),ye=R(e=>!se||e.metadata?.kind==="section"?!1:W?W(e):!0,[W,se]),Ce=R((e,o,d)=>{if(e.id===o.id||!ye(e)||k.path(o.id)?.ancestorIds.includes(e.id))return!1;if(L){let f=D=>{let $=k.path(D)?.nodes??[];for(let Z=$.length-1;Z>=0;Z--){let ee=$[Z]?.metadata;if(ee&&typeof ee=="object"&&Object.prototype.hasOwnProperty.call(ee,L))return ee[L]}},p=f(e.id),H=f(o.id);if(p!==void 0&&H!==void 0&&p!==H)return!1}return!U||U(e,o,d)},[ye,U,L,k]),ut=R((e,o)=>{if(!ye(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),B({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[ye]),ft=R((e,o)=>{if(!q.draggedId||q.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let d=o.currentTarget.getBoundingClientRect(),i=(o.clientY-d.top)/d.height,f=(e.children?.length??0)>0,p;f?i<.25?p="before":i>.75?p="after":p="child":p=i<.5?"before":"after";let H=k.byId.get(q.draggedId)?.node;if(!H||!Ce(H,e,p)){B(D=>D.dragOverId===null?D:{...D,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",B(D=>D.dragOverId===e.id&&D.dragOverPosition===p?D:{...D,dragOverId:e.id,dragOverPosition:p})},[Ce,q.draggedId,k]),ht=R(e=>{B(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),gt=R((e,o)=>{o.preventDefault();let d=q.draggedId,i=q.dragOverPosition;if(!d||!i||d===e.id||q.dragOverId!==e.id){B(F);return}let f=k.byId.get(d)?.node;if(!f||!Ce(f,e,i)){B(F);return}if(i==="child"){let de=k.path(d)?.target;if(!de){B(F);return}let _e=He(n,d,e.id);_e&&oe?.(_e,de,e.id),B(F);return}let p=k.path(e.id);if(!p){B(F);return}let H=p.parent?.children??n,D=H.findIndex(j=>j.id===e.id);if(D===-1){B(F);return}let $=i==="before"?D:D+1,Z=k.path(d),ee=p.parent?.id??null;if((Z?.parent?.id??null)!==ee){let j=Z?.target,de=He(n,d,ee,$);de&&j&&oe?.(de,j,ee),B(F);return}if(Z&&Z.parent===p.parent){let j=H.findIndex(de=>de.id===d);j!==-1&&j<$&&($-=1)}let te=Ye(n,d,$);if(te&&te.fromIndex!==te.toIndex&&(Se?.(te),me)){let j=_t(te.moved,te.fromIndex,te.toIndex,H);j.length>0&&me(j,{node:te.moved,type:"reorder"})}B(F)},[q,n,k,Ce,oe,me,Se]),mt=R(()=>{B(F)},[]),Ie=R((e,o,d)=>{if(O){let i=O(e);if(i.length===0)return;let f=x.nodeElementRefs.current.get(e.id);f&&ke({x:o,y:d,node:e,items:i,anchor:f});return}K?.({node:e,x:o,y:d})},[O,K,x.nodeElementRefs]),xt=R(()=>{ke(null)},[]),bt=R((e,o)=>{o.preventDefault(),Ie(e,o.clientX,o.clientY)},[Ie]),vt=R((e,o)=>{o.stopPropagation();let d=o.currentTarget.getBoundingClientRect();Ie(e,d.left,d.bottom+4)},[Ie]),Ve=R(e=>{let o=k.path(e);if(!o)return;let d=o.ancestorIds;x.setExpandedIds([...new Set([...x.expandedIds,...d])]),C.clearSearch(),xe({id:e,focus:!1})},[x,k,C.clearSearch]);Rt(u,()=>({expandAll:x.expandAll,collapseAll:x.collapseAll,expandToDepth:x.expandToDepth,getExpandedIds:()=>x.expandedIds,getSelectedNode:()=>V?k.path(V)?.target:void 0,scrollToNode:Ve,locateNode:e=>{let o=[...n],d=new Set;for(let i=0;i<o.length;i++){let f=o[i];if(!(!f||d.has(f))){if(d.add(f),e(f)){let p=k.path(f.id);return p&&x.setExpandedIds([...new Set([...x.expandedIds,...p.ancestorIds])]),C.clearSearch(),ce(f.id),xe({id:f.id,focus:!1}),f}if(f.children?.length)for(let p of f.children)o.push(p)}}}}),[x,Ve,V,n,k,C.clearSearch]);let wt=Me(()=>({...I,...G!==void 0?{maxHeight:G}:{}}),[I,G]),yt=[s.root,re!=="default"?`pde-tree-variant-${re}`:"",z].filter(Boolean).join(" ");return fe("div",{ref:ge,className:yt,style:wt,"data-size":S,"data-theme":Pe,children:[h&&a("div",{className:s.toolbar,children:h}),(w||l||v||E)&&fe("div",{className:s.searchRow,children:[w&&fe("div",{className:s.searchInputWrap,children:[a("span",{className:s.searchIcon,children:a(Wt,{})}),a("input",{className:s.searchInput,type:"search","aria-controls":Ne,placeholder:M,value:C.query,onChange:e=>pt(e.target.value),"aria-label":"Search tree"})]}),E,l&&a("button",{type:"button",className:s.iconButton,onClick:x.isAllExpanded?x.collapseAll:x.expandAll,title:x.isAllExpanded?"Collapse all":"Expand all","aria-label":x.isAllExpanded?"Collapse all":"Expand all",children:x.isAllExpanded?a(Ft,{size:16,"aria-hidden":"true"}):a($t,{size:16,"aria-hidden":"true"})}),v&&a("button",{type:"button",className:s.iconButton,onClick:y,title:"Refresh","aria-label":"Refresh",children:a(Gt,{size:14,"aria-hidden":"true"})})]}),a("div",{ref:ne,className:s.treeContainer,"data-virtualized":X||void 0,onScroll:e=>{X&&m({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Ne,role:"tree",onKeyDown:ct,"aria-label":"Tree navigation",children:C.filteredNodes.length===0?a("div",{className:s.emptyState,children:C.isSearching?"No matching results":"No items"}):fe(Te,{children:[X&&a("div",{role:"presentation",style:{height:pe*ae}}),Ke.map(({node:e,depth:o,positionInSet:d,setSize:i})=>a(Zt,{node:e,depth:o,positionInSet:d,setSize:i,isFocused:e.id===st,onFocusNode:Qe,isExpanded:be.has(e.id),isSelected:V===e.id,onToggle:x.toggleNode,onSelect:lt,onNodeRef:x.setNodeElementRef,searchQuery:C.deferredQuery,showIndentGuides:he,renderIcon:_,renderLabel:J,renderSuffix:T,renderNode:Q,draggable:se,dragState:q,canDragNode:ye(e),onDragStart:ut,onDragOver:ft,onDragLeave:ht,onDrop:gt,onDragEnd:mt,showContextMenuButton:!!(O||K),activeMenuNodeId:le?.node.id??null,onContextMenu:bt,onMoreClick:vt},e.id)),X&&a("div",{role:"presentation",style:{height:(N.length-we)*ae}})]})}),le&&a(Ze,{state:le,onClose:xt},le.node.id)]})});export{$e as METHOD_LABEL_MAP,er as Tree,Le as getMethodLabel,qe as useTreeExpansion,je as useTreeSearch};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerduck/tree",
3
- "version": "0.7.9",
3
+ "version": "0.7.10",
4
4
  "description": "Extensible tree component for API navigation, schema exploration, and documentation. Supports OpenAPI 3.2 nested tags, x-tagGroups, and custom data sources.",
5
5
  "license": "MIT",
6
6
  "author": "powerduck",