@powerduck/tree 0.7.19 → 0.7.21

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.
package/README.md CHANGED
@@ -620,3 +620,7 @@ npm run benchmark # Build and compare the old/new sorting comparator
620
620
  The benchmark reports medians from seven runs over a deterministic shuffled input.
621
621
  It measures sorting, traversal, and filtering only, not end-to-end browser latency.
622
622
  See [QUALITY.md](./QUALITY.md) for findings, evidence, and remaining limitations.
623
+
624
+ ## 0.7.21 — Portable builds
625
+
626
+ The build no longer creates React/React DOM symlinks pointing into a hard-coded developer workspace. React remains a peer dependency supplied by the consuming application.
@@ -1 +1 @@
1
- "use strict";var We=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var Rt=Object.getOwnPropertyNames;var kt=Object.prototype.hasOwnProperty;var Dt=(t,e)=>{for(var a in e)We(t,a,{get:e[a],enumerable:!0})},Et=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Rt(e))!kt.call(t,n)&&n!==a&&We(t,n,{get:()=>e[n],enumerable:!(o=St(e,n))||o.enumerable});return t};var Ct=t=>Et(We({},"__esModule",{value:!0}),t);var $t={};Dt($t,{DEFAULT_TREE_LABELS:()=>He,METHOD_LABEL_MAP:()=>Fe,Tree:()=>pt,getMethodLabel:()=>De,useTreeExpansion:()=>Be,useTreeSearch:()=>ze});module.exports=Ct($t);var p=require("react");function*Qe(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 Ke(t,e){for(let{node:a}of Qe(t))if(a.id===e)return a}function Lt(t,e,a=[]){for(let o of Qe(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 Kt=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function Ue(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 b=n.get(c);b&&i.output.push(b)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let b=e(c);n.set(c,b),b&&i.output.push(b)}continue}l.pop();let T=i.source.length===i.output.length&&i.source.every((c,b)=>c===i.output[b])?i.source:i.output;if(!i.owner)return T;let h=i.owner,N=e(T===h.children?h:{...h,children:T});o.delete(h),n.set(h,N),N&&l[l.length-1].output.push(N)}return t}function tt(t,e){let a=e.query.trim().toLowerCase();return a?Ue(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Oe(t,e={}){let a=[];for(let{node:o,depth:n}of Qe(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function rt(t){return Oe(t)}function ot(t,e,a){return Ue(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Pt(t,e){return Ue(t,a=>a.id===e?null:a,a=>a.id!==e)}function nt(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function at(t,e,a){let o=Lt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=nt(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 h=[...n];return h.splice(l,1),h.splice(i,0,o.target),{...T,nodes:o.parent?ot(t,o.parent.id,N=>({...N,children:h})):h}}function Ve(t,e,a,o){let n=Ke(t,e);if(!n||a!==null&&(!Ke(t,a)||Ke([n],a)))return null;let l=Pt(t,e),i=T=>{let h=[...T];return h.splice(nt(o??h.length,h.length),0,n),h};return a===null?i(l):ot(l,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),dt=require("react-dom"),ae=require("react/jsx-runtime");function it({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,h]=(0,de.useState)({}),N=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,b=getComputedStyle(c),I={};for(let k=0;k<b.length;k++){let F=b.item(k);(F.startsWith("--tree-")||F.startsWith("--color-")||F.startsWith("--radius-")||F.startsWith("--font-")||F.startsWith("--shadow-"))&&(I[F]=b.getPropertyValue(F))}h(I);let v=a.current;if(!v)return;let P=()=>{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))})};P();let Y=typeof ResizeObserver>"u"?void 0:new ResizeObserver(P);Y?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},te=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",X),document.addEventListener("scroll",te,!0),window.addEventListener("resize",e),()=>{Y?.disconnect(),document.removeEventListener("pointerdown",X),document.removeEventListener("scroll",te,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,dt.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...l},role:"menu","aria-label":t.ariaLabel??`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let b=a.current;if(!b)return;let I=Array.from(b.querySelectorAll("button:not(:disabled)")),v=I.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let P;if(c.key==="ArrowDown")P=(v+1)%I.length;else if(c.key==="ArrowUp")P=(v-1+I.length)%I.length;else if(c.key==="Home")P=0;else if(c.key==="End")P=I.length-1;else return;c.preventDefault(),I[P]?.focus()},children:t.items.map((c,b)=>(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===b?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==b){n(b);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===b?c.confirmLabel??t.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${b}`))}),N)}var E=require("react");function Be(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,E.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Oe(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,E.useState)(l),h=(0,E.useRef)(new Map),N=(0,E.useMemo)(()=>rt(t),[t]),c=(0,E.useMemo)(()=>new Set(i),[i]),b=(0,E.useRef)(i);b.current=i;let I=(0,E.useMemo)(()=>N.length>0&&N.every(S=>c.has(S)),[N,c]),v=(0,E.useCallback)(S=>{b.current=S,T(S),n?.(S)},[n]),P=(0,E.useCallback)(S=>{let C=b.current,ie=C.includes(S)?C.filter(se=>se!==S):[...C,S];v(ie)},[v]),Y=(0,E.useCallback)(()=>{v([...N])},[N,v]),X=(0,E.useCallback)(()=>{v([])},[v]),te=(0,E.useCallback)(S=>{let C=Oe(t,{maxDepth:S,onlyWithChildren:!0});v(C)},[t,v]),k=(0,E.useCallback)((S,C)=>{C?h.current.set(S,C):h.current.delete(S)},[]),F=(0,E.useCallback)(S=>{let C=h.current.get(S);C&&C.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:P,expandAll:Y,collapseAll:X,expandToDepth:te,isAllExpanded:I,allBranchIds:N,setNodeElementRef:k,scrollToNode:F,nodeElementRefs:h}}var V=require("react");function ze(t){let[e,a]=(0,V.useState)(""),o=(0,V.useDeferredValue)(e),[n,l]=(0,V.useState)(null),i=o.trim().length>0,T=(0,V.useMemo)(()=>i?tt(t,{query:o,keepAncestors:!0}):t,[t,o,i]),h=(0,V.useCallback)((c,b)=>{let I=e.trim(),v=c.trim();!I&&v&&l(b),I&&!v&&l(null),a(c)},[e]),N=(0,V.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:h,clearSearch:N}}var He={search:"Search...",searchTree:"Search tree",expandAll:"Expand all",collapseAll:"Collapse all",refresh:"Refresh",dragToReorder:"Drag to reorder",required:"Required",moreActions:"More actions",moreActionsFor:"More actions for {{name}}",treeNavigation:"Tree navigation",contextMenuFor:"Actions for {{name}}",confirmAction:"Confirm?",noResults:"No matching results",noItems:"No items"};function st(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 h=e.get(T);if(!h)break;i.push(h.node),T=h.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(h=>h.id)}}}}var Fe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function De(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Fe,e)?Fe[e]:e.slice(0,4).toUpperCase()}var M=require("react-icons/lu"),Ge=require("react-icons/md"),s=require("react/jsx-runtime"),m={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 At({expanded:t}){return(0,s.jsx)("span",{className:m.expandIcon,children:t?(0,s.jsx)(M.LuChevronDown,{size:14}):(0,s.jsx)(M.LuChevronRight,{size:14})})}function Ot(){return(0,s.jsx)(M.LuSearch,{size:14,"aria-hidden":"true"})}function Bt(){return(0,s.jsx)(M.LuGripVertical,{size:14,"aria-hidden":"true"})}function zt(){return(0,s.jsx)(M.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function ct(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 Ht(t,e,a,o){let n=ct(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((T,h)=>{let N=ct(T);return N&&N[N.length-1]===h&&JSON.stringify(N.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ft({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:m.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var lt={get:m.methodGet,post:m.methodPost,put:m.methodPut,patch:m.methodPatch,delete:m.methodDelete};function Gt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(lt,e)?lt[e]:m.methodOther,o=De(t);return(0,s.jsx)("span",{className:`${m.methodBadge} ${a}`,children:o})}var J={draggedId:null,dragOverId:null,dragOverPosition:null};function qt(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||t.labels!==e.labels)}function jt(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:T,renderIcon:h,renderLabel:N,renderSuffix:c,renderNode:b,draggable:I,dragState:v,canDragNode:P,onDragStart:Y,onDragOver:X,onDragLeave:te,onDrop:k,onDragEnd:F,showContextMenuButton:S,activeMenuNodeId:C,onContextMenu:ie,onMoreClick:se,labels:ce}=t,{isExpanded:_,isSelected:xe}=t,fe=(e.children?.length??0)>0,A=fe,Ee=!fe,le=v.draggedId===e.id,Z=v.dragOverId===e.id,Q=Z?v.dragOverPosition:null,G=e.metadata,ee=typeof G?.method=="string"?G.method:void 0,be=G?.deprecated===!0,qe=G?.required===!0,q=typeof G?.kind=="string"?G.kind:void 0,R={node:e,depth:a,isExpanded:_,isSelected:xe,isBranch:A,isLeaf:Ee,isDragging:le,isDragOver:Z,dragOverPosition:Q},Te=(0,p.useCallback)(()=>{A?o(e.id):n(e)},[A,e,n,o]),he=(0,p.useCallback)(f=>{f.target===f.currentTarget&&(f.key==="Enter"||f.key===" "?(f.preventDefault(),Te()):(f.key==="ArrowRight"&&A&&!_||f.key==="ArrowLeft"&&A&&_)&&(f.preventDefault(),f.stopPropagation(),o(e.id)))},[Te,A,_,e.id,o]),Ce=h?h(R):ee?null:(0,s.jsx)("span",{className:m.nodeIcon,children:q==="section"&&G?.section==="components"?(0,s.jsx)(M.LuBraces,{size:14}):q==="section"&&G?.section==="webhooks"?(0,s.jsx)(M.LuZap,{size:14}):q==="schema"||q==="component"||q==="object"?(0,s.jsx)(M.LuBraces,{size:14}):q==="array"||q==="items"?(0,s.jsx)(M.LuList,{size:14}):A?_?(0,s.jsx)(M.LuFolderOpen,{size:14}):(0,s.jsx)(M.LuFolder,{size:14}):ee&&(0,s.jsx)(Gt,{method:ee})}),$=N?N(R):(0,s.jsx)("span",{className:`${m.nodeLabel} ${A?m.nodeLabelBranch:""} ${be?m.deprecatedLabel:""}`,children:(0,s.jsx)(Ft,{text:e.name,query:i})}),O=c?c(R):null,ge=[m.nodeRow,A?m.branchControl:m.leafItem,xe?m.nodeRowSelected:"",le?m.nodeDragging:"",Z&&Q==="before"?m.dropIndicatorBefore:"",Z&&Q==="after"?m.dropIndicatorAfter:"",Z&&Q==="child"?m.dropIndicatorChild:"",q?`pde-tree-kind-${q}`:""].filter(Boolean).join(" "),Le=(0,p.useCallback)(f=>l(e.id,f),[e.id,l]),re=(0,s.jsxs)("div",{ref:Le,className:ge,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":A?_:void 0,"aria-label":ee?`${De(ee)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":I&&P?le:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:Te,onKeyDown:he,onContextMenu:S?f=>ie(e,f):void 0,onDragOver:I?f=>X(e,f):void 0,onDragLeave:I?()=>te(e):void 0,onDrop:I?f=>k(e,f):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(f,ve)=>(0,s.jsx)("span",{className:m.indentGuide,style:{left:`${(ve+1)*12+11}px`}},`guide-${ve}`)),I&&P?(0,s.jsx)("span",{className:m.dragHandle,style:{left:`${Math.min(a,20)*12+4}px`},draggable:!0,onDragStart:f=>Y(e,f),onDragEnd:F,title:ce.dragToReorder,"aria-label":ce.dragToReorder,children:(0,s.jsx)(Bt,{})}):null,A?(0,s.jsx)(At,{expanded:_}):(0,s.jsx)("span",{className:m.expandIconPlaceholder}),Ce,$,qe&&(0,s.jsx)("span",{className:m.requiredDot,title:ce.required}),(0,s.jsx)("span",{className:m.nodeSuffix,children:O}),S&&(0,s.jsx)("button",{type:"button",className:[m.moreButton,C===e.id?m.moreButtonActive:""].filter(Boolean).join(" "),onClick:f=>se(e,f),title:ce.moreActions,"aria-label":ce.moreActionsFor.split("{{name}}").join(e.name),"aria-haspopup":"menu","aria-expanded":C===e.id,tabIndex:-1,children:(0,s.jsx)(zt,{})})]}),Pe=b?b(R,re):re;return(0,s.jsx)(s.Fragment,{children:Pe})}var _t=(0,p.memo)(jt,qt),pt=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:h=!1,searchPlaceholder:N,labels:c,showExpandAll:b=!1,showRefresh:I=!1,onRefresh:v,toolbar:P,searchRowExtra:Y,renderNode:X,renderIcon:te,renderLabel:k,renderSuffix:F,className:S,style:C,size:ie="sm",variant:se="default",showIndentGuides:ce=!0,maxHeight:_,rootRef:xe,draggable:fe=!1,dragGroupKey:A,onReorder:Ee,onMove:le,canDrag:Z,canDrop:Q,contextMenuItems:G,onContextMenuOpen:ee,onPatch:be,theme:qe,virtualized:q="auto"}=e,R=(0,p.useMemo)(()=>({...He,...c}),[c]),Te=N??R.search,[he,Ce]=(0,p.useState)(null),[$,O]=(0,p.useState)(J),[ge,Le]=(0,p.useState)(null),re=(0,p.useRef)(null),Pe=(0,p.useId)(),f=(0,p.useMemo)(()=>st(o),[o]),[ve,Ae]=(0,p.useState)({top:0,height:400}),[we,ye]=(0,p.useState)(null),[je,Je]=(0,p.useState)(null),y=Be(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:l}),L=ze(o),Ye=L.isSearching?y.allBranchIds:L.expandedBeforeSearch??y.expandedIds,Ne=(0,p.useMemo)(()=>new Set(Ye),[Ye]),D=(0,p.useMemo)(()=>{let r=[],d=new Set,u=L.filteredNodes.map((g,x,w)=>({node:g,depth:0,parentId:null,positionInSet:x+1,setSize:w.length})).reverse();for(;u.length;){let g=u.pop();if(!d.has(g.node.id)&&(d.add(g.node.id),r.push(g),Ne.has(g.node.id))){let x=g.node.children??[];for(let w=x.length-1;w>=0;w--)u.push({node:x[w],depth:g.depth+1,parentId:g.node.id,positionInSet:w+1,setSize:x.length})}}return r},[L.filteredNodes,Ne]),Ie=(0,p.useMemo)(()=>new Map(D.map((r,d)=>[r.node.id,d])),[D]),pe=ie==="xs"?24:ie==="md"?32:28,oe=q!==!1&&se!=="doc"&&!X&&(q===!0||D.length>500),me=oe?Math.max(0,Math.min(Math.floor(ve.top/pe)-8,D.length-1)):0,Me=oe?Math.min(D.length,me+Math.ceil(ve.height/pe)+16):D.length,Xe=D.slice(me,Me);(0,p.useEffect)(()=>{let r=re.current;if(!r)return;let d=()=>Ae({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(!we)return;let r=Ie.get(we.id);if(r===void 0){ye(null);return}let d=re.current;if(oe&&d&&(r<me||r>=Me)){let g=d.clientHeight||400,x=Math.min(r*pe,Math.max(0,D.length*pe-g));d.scrollTop=x,Ae(w=>({...w,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(we.id);we.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),ye(null)},[we,Ie,oe,pe,me,Me,D.length,y.nodeElementRefs]);let _e=je===null?void 0:Ie.get(je),ut=_e!==void 0&&_e>=me&&_e<Me?je:Xe[0]?.node.id,$e=(0,p.useRef)({query:"",time:0}),ft=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=Ie.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=D[d],g=d;if(r.key==="ArrowDown")g=Math.min(d+1,D.length-1);else if(r.key==="ArrowUp")g=Math.max(0,d-1);else if(r.key==="Home")g=0;else if(r.key==="End")g=D.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Ne.has(u.node.id))g=Math.min(d+1,D.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Ne.has(u.node.id)))g=Ie.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let w=r.target.getBoundingClientRect();r.preventDefault(),ke(u.node,w.left+24,w.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let w=Date.now(),W=w-$e.current.time<600?$e.current.query+r.key.toLowerCase():r.key.toLowerCase();$e.current={query:W,time:w};for(let B=1;B<=D.length;B++){let z=(d+B)%D.length;if(D[z].node.name.toLowerCase().startsWith(W)){g=z;break}}}else return;r.preventDefault();let x=D[g].node.id;Je(x),ye({id:x,focus:!0})};(0,p.useEffect)(()=>{re.current&&(re.current.scrollTop=0),Ae(r=>({...r,top:0}))},[L.deferredQuery]);let ht=(0,p.useCallback)(r=>{Ce(r.id),n?.(r)},[n]),gt=(0,p.useCallback)(r=>{!r.trim()&&L.expandedBeforeSearch&&y.setExpandedIds(L.expandedBeforeSearch),L.handleQueryChange(r,y.expandedIds)},[y.expandedIds,L]),Se=(0,p.useCallback)(r=>!fe||r.metadata?.kind==="section"?!1:Z?Z(r):!0,[Z,fe]),Re=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Se(r)||f.path(d.id)?.ancestorIds.includes(r.id))return!1;if(A){let x=B=>{let z=f.path(B)?.nodes??[];for(let U=z.length-1;U>=0;U--){let j=z[U]?.metadata;if(j&&typeof j=="object"&&Object.prototype.hasOwnProperty.call(j,A))return j[A]}},w=x(r.id),W=x(d.id);if(w!==void 0&&W!==void 0&&w!==W)return!1}return!Q||Q(r,d,u)},[Se,Q,A,f]),mt=(0,p.useCallback)((r,d)=>{if(!Se(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),O({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Se]),xt=(0,p.useCallback)((r,d)=>{if(!$.draggedId||$.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=f.byId.get($.draggedId)?.node;if(!u){O(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}let g=d.currentTarget.getBoundingClientRect(),x=(d.clientY-g.top)/g.height,w=(r.children?.length??0)>0,W=x<.5?"before":"after",B,z;x<.25?(B=["before","after"],z=1):x>.75?(B=["after","before"],z=1):(B=[W],z=0);let U=Q?Re(u,r,"child"):!1;(w||U)&&B.splice(z,0,"child");let j=B.find(H=>Re(u,r,H));if(!j){O(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",O(H=>H.dragOverId===r.id&&H.dragOverPosition===j?H:{...H,dragOverId:r.id,dragOverPosition:j})},[Re,Q,$.draggedId,f]),bt=(0,p.useCallback)(r=>{O(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),Tt=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=$.draggedId,g=$.dragOverPosition;if(!u||!g||u===r.id||$.dragOverId!==r.id){O(J);return}let x=f.byId.get(u)?.node;if(!x||!Re(x,r,g)){O(J);return}if(g==="child"){let ue=f.path(u)?.target;if(!ue){O(J);return}let et=Ve(o,u,r.id);et&&le?.(et,ue,r.id),O(J);return}let w=f.path(r.id);if(!w){O(J);return}let W=w.parent?.children??o,B=W.findIndex(K=>K.id===r.id);if(B===-1){O(J);return}let z=g==="before"?B:B+1,U=f.path(u),j=w.parent?.id??null;if((U?.parent?.id??null)!==j){let K=U?.target,ue=Ve(o,u,j,z);ue&&K&&le?.(ue,K,j),O(J);return}if(U&&U.parent===w.parent){let K=W.findIndex(ue=>ue.id===u);K!==-1&&K<z&&(z-=1)}let ne=at(o,u,z);if(ne&&ne.fromIndex!==ne.toIndex&&(Ee?.(ne),be)){let K=Ht(ne.moved,ne.fromIndex,ne.toIndex,W);K.length>0&&be(K,{node:ne.moved,type:"reorder"})}O(J)},[$,o,f,Re,le,be,Ee]),vt=(0,p.useCallback)(()=>{O(J)},[]),ke=(0,p.useCallback)((r,d,u)=>{if(G){let g=G(r);if(g.length===0)return;let x=y.nodeElementRefs.current.get(r.id);x&&Le({x:d,y:u,node:r,items:g,anchor:x,ariaLabel:R.contextMenuFor.split("{{name}}").join(r.name),confirmLabel:R.confirmAction});return}ee?.({node:r,x:d,y:u})},[G,ee,y.nodeElementRefs,R]),wt=(0,p.useCallback)(()=>{Le(null)},[]),yt=(0,p.useCallback)((r,d)=>{d.preventDefault(),ke(r,d.clientX,d.clientY)},[ke]),Nt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();ke(r,u.left,u.bottom+4)},[ke]),Ze=(0,p.useCallback)(r=>{let d=f.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),L.clearSearch(),ye({id:r,focus:!1})},[y,f,L.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>he?f.path(he)?.target:void 0,scrollToNode:Ze,locateNode:r=>{let d=[...o],u=new Set;for(let g=0;g<d.length;g++){let x=d[g];if(!(!x||u.has(x))){if(u.add(x),r(x)){let w=f.path(x.id);return w&&y.setExpandedIds([...new Set([...y.expandedIds,...w.ancestorIds])]),L.clearSearch(),Ce(x.id),ye({id:x.id,focus:!1}),x}if(x.children?.length)for(let w of x.children)d.push(w)}}}}),[y,Ze,he,o,f,L.clearSearch]);let It=(0,p.useMemo)(()=>({...C,..._!==void 0?{maxHeight:_}:{}}),[C,_]),Mt=[m.root,se!=="default"?`pde-tree-variant-${se}`:"",S].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:Mt,style:It,"data-size":ie,"data-theme":qe,children:[P&&(0,s.jsx)("div",{className:m.toolbar,children:P}),(h||b||I||Y)&&(0,s.jsxs)("div",{className:m.searchRow,children:[h&&(0,s.jsxs)("div",{className:m.searchInputWrap,children:[(0,s.jsx)("span",{className:m.searchIcon,children:(0,s.jsx)(Ot,{})}),(0,s.jsx)("input",{className:m.searchInput,type:"search","aria-controls":Pe,placeholder:Te,value:L.query,onChange:r=>gt(r.target.value),"aria-label":R.searchTree})]}),Y,b&&(0,s.jsx)("button",{type:"button",className:m.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?R.collapseAll:R.expandAll,"aria-label":y.isAllExpanded?R.collapseAll:R.expandAll,children:y.isAllExpanded?(0,s.jsx)(Ge.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Ge.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),I&&(0,s.jsx)("button",{type:"button",className:m.iconButton,onClick:v,title:R.refresh,"aria-label":R.refresh,children:(0,s.jsx)(M.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:re,className:m.treeContainer,"data-virtualized":oe||void 0,onScroll:r=>{oe&&Ae({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:Pe,role:"tree",onKeyDown:ft,"aria-label":R.treeNavigation,children:L.filteredNodes.length===0?(0,s.jsx)("div",{className:m.emptyState,children:L.isSearching?R.noResults:R.noItems}):(0,s.jsxs)(s.Fragment,{children:[oe&&(0,s.jsx)("div",{role:"presentation",style:{height:me*pe}}),Xe.map(({node:r,depth:d,positionInSet:u,setSize:g})=>(0,s.jsx)(_t,{node:r,depth:d,positionInSet:u,setSize:g,isFocused:r.id===ut,onFocusNode:Je,isExpanded:Ne.has(r.id),isSelected:he===r.id,onToggle:y.toggleNode,onSelect:ht,onNodeRef:y.setNodeElementRef,searchQuery:L.deferredQuery,showIndentGuides:ce,renderIcon:te,renderLabel:k,renderSuffix:F,renderNode:X,draggable:fe,dragState:$,canDragNode:Se(r),onDragStart:mt,onDragOver:xt,onDragLeave:bt,onDrop:Tt,onDragEnd:vt,showContextMenuButton:!!(G||ee),activeMenuNodeId:ge?.node.id??null,onContextMenu:yt,onMoreClick:Nt,labels:R},r.id)),oe&&(0,s.jsx)("div",{role:"presentation",style:{height:(D.length-Me)*pe}})]})}),ge&&(0,s.jsx)(it,{state:ge,onClose:wt},ge.node.id)]})});0&&(module.exports={DEFAULT_TREE_LABELS,METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
1
+ "use strict";var Ke=Object.defineProperty;var Ot=Object.getOwnPropertyDescriptor;var Bt=Object.getOwnPropertyNames;var zt=Object.prototype.hasOwnProperty;var Ht=(t,e)=>{for(var a in e)Ke(t,a,{get:e[a],enumerable:!0})},Ft=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Bt(e))!zt.call(t,n)&&n!==a&&Ke(t,n,{get:()=>e[n],enumerable:!(o=Ot(e,n))||o.enumerable});return t};var Gt=t=>Ft(Ke({},"__esModule",{value:!0}),t);var Zt={};Ht(Zt,{DEFAULT_TREE_LABELS:()=>Fe,METHOD_LABEL_MAP:()=>Ge,Tree:()=>ut,getMethodLabel:()=>Ee,useTreeExpansion:()=>ze,useTreeSearch:()=>He});module.exports=Gt(Zt);var c=require("react");function*Ue(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 p=n.node.children??[];for(let i=p.length-1;i>=0;i--)o.push({node:p[i],parent:n,depth:n.depth+1})}}function Qe(t,e){for(let{node:a}of Ue(t))if(a.id===e)return a}function qt(t,e,a=[]){for(let o of Ue(t)){if(o.node.id!==e)continue;let n=[],p=o;for(;p;)n.push(p.node),p=p.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 tr=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function Ve(t,e,a=()=>!0){let o=new Set,n=new Map,p=[{source:t,output:[],index:0}];for(;p.length;){let i=p[p.length-1];if(i.index<i.source.length){let l=i.source[i.index++];if(o.has(l))continue;if(n.has(l)){let x=n.get(l);x&&i.output.push(x)}else if(l.children?.length&&a(l))o.add(l),p.push({source:l.children,output:[],index:0,owner:l});else{let x=e(l);n.set(l,x),x&&i.output.push(x)}continue}p.pop();let T=i.source.length===i.output.length&&i.source.every((l,x)=>l===i.output[x])?i.source:i.output;if(!i.owner)return T;let h=i.owner,N=e(T===h.children?h:{...h,children:T});o.delete(h),n.set(h,N),N&&p[p.length-1].output.push(N)}return t}function rt(t,e){let a=e.query.trim().toLowerCase();return a?Ve(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Be(t,e={}){let a=[];for(let{node:o,depth:n}of Ue(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function ot(t){return Be(t)}function nt(t,e,a){return Ve(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function jt(t,e){return Ve(t,a=>a.id===e?null:a,a=>a.id!==e)}function at(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function dt(t,e,a){let o=qt(t,e);if(!o)return null;let n=o.parent?.children??t,p=n.indexOf(o.target),i=at(a,n.length-1),T={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:p,toIndex:i};if(i===p)return T;let h=[...n];return h.splice(p,1),h.splice(i,0,o.target),{...T,nodes:o.parent?nt(t,o.parent.id,N=>({...N,children:h})):h}}function Je(t,e,a,o){let n=Qe(t,e);if(!n||a!==null&&(!Qe(t,a)||Qe([n],a)))return null;let p=jt(t,e),i=T=>{let h=[...T];return h.splice(at(o??h.length,h.length),0,n),h};return a===null?i(p):nt(p,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),it=require("react-dom"),ae=require("react/jsx-runtime");function st({state:t,onClose:e}){let a=(0,de.useRef)(null),[o,n]=(0,de.useState)(null),[p,i]=(0,de.useState)({left:t.x,top:t.y}),[T,h]=(0,de.useState)({}),N=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let l=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(l),I={};for(let k=0;k<x.length;k++){let F=x.item(k);(F.startsWith("--tree-")||F.startsWith("--color-")||F.startsWith("--radius-")||F.startsWith("--font-")||F.startsWith("--shadow-"))&&(I[F]=x.getPropertyValue(F))}h(I);let v=a.current;if(!v)return;let P=()=>{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))})};P();let Y=typeof ResizeObserver>"u"?void 0:new ResizeObserver(P);Y?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},te=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",X),document.addEventListener("scroll",te,!0),window.addEventListener("resize",e),()=>{Y?.disconnect(),document.removeEventListener("pointerdown",X),document.removeEventListener("scroll",te,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,it.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...p},role:"menu","aria-label":t.ariaLabel??`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:l=>{let x=a.current;if(!x)return;let I=Array.from(x.querySelectorAll("button:not(:disabled)")),v=I.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),e();return}let P;if(l.key==="ArrowDown")P=(v+1)%I.length;else if(l.key==="ArrowUp")P=(v-1+I.length)%I.length;else if(l.key==="Home")P=0;else if(l.key==="End")P=I.length-1;else return;l.preventDefault(),I[P]?.focus()},children:t.items.map((l,x)=>(0,ae.jsxs)("div",{role:"presentation",children:[l.separator&&(0,ae.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,ae.jsxs)("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:l.disabled,className:`pde-tree-contextMenuItem${l.danger?" pde-tree-contextMenuItemDanger":""}${o===x?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(l.confirm&&o!==x){n(x);return}e(),l.onClick(t.node)},children:[l.icon&&(0,ae.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),(0,ae.jsx)("span",{children:l.confirm&&o===x?l.confirmLabel??t.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${x}`))}),N)}var E=require("react");function ze(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,p=(0,E.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Be(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,E.useState)(p),h=(0,E.useRef)(new Map),N=(0,E.useMemo)(()=>ot(t),[t]),l=(0,E.useMemo)(()=>new Set(i),[i]),x=(0,E.useRef)(i);x.current=i;let I=(0,E.useMemo)(()=>N.length>0&&N.every(S=>l.has(S)),[N,l]),v=(0,E.useCallback)(S=>{x.current=S,T(S),n?.(S)},[n]),P=(0,E.useCallback)(S=>{let C=x.current,se=C.includes(S)?C.filter(ce=>ce!==S):[...C,S];v(se)},[v]),Y=(0,E.useCallback)(()=>{v([...N])},[N,v]),X=(0,E.useCallback)(()=>{v([])},[v]),te=(0,E.useCallback)(S=>{let C=Be(t,{maxDepth:S,onlyWithChildren:!0});v(C)},[t,v]),k=(0,E.useCallback)((S,C)=>{C?h.current.set(S,C):h.current.delete(S)},[]),F=(0,E.useCallback)(S=>{let C=h.current.get(S);C&&C.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:P,expandAll:Y,collapseAll:X,expandToDepth:te,isAllExpanded:I,allBranchIds:N,setNodeElementRef:k,scrollToNode:F,nodeElementRefs:h}}var V=require("react");function He(t){let[e,a]=(0,V.useState)(""),o=(0,V.useDeferredValue)(e),[n,p]=(0,V.useState)(null),i=o.trim().length>0,T=(0,V.useMemo)(()=>i?rt(t,{query:o,keepAncestors:!0}):t,[t,o,i]),h=(0,V.useCallback)((l,x)=>{let I=e.trim(),v=l.trim();!I&&v&&p(x),I&&!v&&p(null),a(l)},[e]),N=(0,V.useCallback)(()=>{a(""),p(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:h,clearSearch:N}}var Fe={search:"Search...",searchTree:"Search tree",expandAll:"Expand all",collapseAll:"Collapse all",refresh:"Refresh",dragToReorder:"Drag to reorder",required:"Required",moreActions:"More actions",moreActionsFor:"More actions for {{name}}",treeNavigation:"Tree navigation",contextMenuFor:"Actions for {{name}}",confirmAction:"Confirm?",noResults:"No matching results",noItems:"No items"};function ct(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 p=n.node.children??[];for(let i=p.length-1;i>=0;i--)o.push({node:p[i],parentId:n.node.id})}return{byId:e,path(n){let p=e.get(n);if(!p)return null;let i=[p.node],T=p.parentId;for(;T!==null;){let h=e.get(T);if(!h)break;i.push(h.node),T=h.parentId}return i.reverse(),{nodes:i,target:p.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(h=>h.id)}}}}var Ge={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Ee(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Ge,e)?Ge[e]:e.slice(0,4).toUpperCase()}var M=require("react-icons/lu"),qe=require("react-icons/md"),s=require("react/jsx-runtime"),m={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 _t({expanded:t}){return(0,s.jsx)("span",{className:m.expandIcon,children:t?(0,s.jsx)(M.LuChevronDown,{size:14}):(0,s.jsx)(M.LuChevronRight,{size:14})})}function $t(){return(0,s.jsx)(M.LuSearch,{size:14,"aria-hidden":"true"})}function Wt(){return(0,s.jsx)(M.LuGripVertical,{size:14,"aria-hidden":"true"})}function Kt(){return(0,s.jsx)(M.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function lt(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 Qt(t,e,a,o){let n=lt(t);if(!n||n.length===0)return[];let p=JSON.stringify(n.slice(0,-1));if(!o.every((T,h)=>{let N=lt(T);return N&&N[N.length-1]===h&&JSON.stringify(N.slice(0,-1))===p}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ut({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:m.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var pt={get:m.methodGet,post:m.methodPost,put:m.methodPut,patch:m.methodPatch,delete:m.methodDelete};function Vt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(pt,e)?pt[e]:m.methodOther,o=Ee(t);return(0,s.jsx)("span",{className:`${m.methodBadge} ${a}`,children:o})}var J={draggedId:null,dragOverId:null,dragOverPosition:null};function ie(t){let e=(0,c.useRef)(t);return(0,c.useLayoutEffect)(()=>{e.current=t},[t]),(0,c.useCallback)(((...a)=>e.current(...a)),[])}function Jt(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,p=e.dragState.dragOverId===e.node.id;return!(n!==p||n&&p&&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||t.labels!==e.labels)}function Yt(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:p,searchQuery:i,showIndentGuides:T,renderIcon:h,renderLabel:N,renderSuffix:l,renderNode:x,draggable:I,dragState:v,canDragNode:P,onDragStart:Y,onDragOver:X,onDragLeave:te,onDrop:k,onDragEnd:F,showContextMenuButton:S,activeMenuNodeId:C,onContextMenu:se,onMoreClick:ce,labels:le}=t,{isExpanded:_,isSelected:xe}=t,he=(e.children?.length??0)>0,A=he,Ce=!he,pe=v.draggedId===e.id,Z=v.dragOverId===e.id,Q=Z?v.dragOverPosition:null,G=e.metadata,ee=typeof G?.method=="string"?G.method:void 0,Te=G?.deprecated===!0,je=G?.required===!0,q=typeof G?.kind=="string"?G.kind:void 0,R={node:e,depth:a,isExpanded:_,isSelected:xe,isBranch:A,isLeaf:Ce,isDragging:pe,isDragOver:Z,dragOverPosition:Q},ve=(0,c.useCallback)(()=>{A?o(e.id):n(e)},[A,e,n,o]),ge=(0,c.useCallback)(f=>{f.target===f.currentTarget&&(f.key==="Enter"||f.key===" "?(f.preventDefault(),ve()):(f.key==="ArrowRight"&&A&&!_||f.key==="ArrowLeft"&&A&&_)&&(f.preventDefault(),f.stopPropagation(),o(e.id)))},[ve,A,_,e.id,o]),Le=h?h(R):ee?null:(0,s.jsx)("span",{className:m.nodeIcon,children:q==="section"&&G?.section==="components"?(0,s.jsx)(M.LuBraces,{size:14}):q==="section"&&G?.section==="webhooks"?(0,s.jsx)(M.LuZap,{size:14}):q==="schema"||q==="component"||q==="object"?(0,s.jsx)(M.LuBraces,{size:14}):q==="array"||q==="items"?(0,s.jsx)(M.LuList,{size:14}):A?_?(0,s.jsx)(M.LuFolderOpen,{size:14}):(0,s.jsx)(M.LuFolder,{size:14}):ee&&(0,s.jsx)(Vt,{method:ee})}),$=N?N(R):(0,s.jsx)("span",{className:`${m.nodeLabel} ${A?m.nodeLabelBranch:""} ${Te?m.deprecatedLabel:""}`,children:(0,s.jsx)(Ut,{text:e.name,query:i})}),O=l?l(R):null,me=[m.nodeRow,A?m.branchControl:m.leafItem,xe?m.nodeRowSelected:"",pe?m.nodeDragging:"",Z&&Q==="before"?m.dropIndicatorBefore:"",Z&&Q==="after"?m.dropIndicatorAfter:"",Z&&Q==="child"?m.dropIndicatorChild:"",q?`pde-tree-kind-${q}`:""].filter(Boolean).join(" "),Pe=(0,c.useCallback)(f=>p(e.id,f),[e.id,p]),re=(0,s.jsxs)("div",{ref:Pe,className:me,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":A?_:void 0,"aria-label":ee?`${Ee(ee)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":I&&P?pe:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:ve,onKeyDown:ge,onContextMenu:S?f=>se(e,f):void 0,onDragOver:I?f=>X(e,f):void 0,onDragLeave:I?()=>te(e):void 0,onDrop:I?f=>k(e,f):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(f,we)=>(0,s.jsx)("span",{className:m.indentGuide,style:{left:`${(we+1)*12+11}px`}},`guide-${we}`)),I&&P?(0,s.jsx)("span",{className:m.dragHandle,style:{left:`${Math.min(a,20)*12+4}px`},draggable:!0,onDragStart:f=>Y(e,f),onDragEnd:F,title:le.dragToReorder,"aria-label":le.dragToReorder,children:(0,s.jsx)(Wt,{})}):null,A?(0,s.jsx)(_t,{expanded:_}):(0,s.jsx)("span",{className:m.expandIconPlaceholder}),Le,$,je&&(0,s.jsx)("span",{className:m.requiredDot,title:le.required}),(0,s.jsx)("span",{className:m.nodeSuffix,children:O}),S&&(0,s.jsx)("button",{type:"button",className:[m.moreButton,C===e.id?m.moreButtonActive:""].filter(Boolean).join(" "),onClick:f=>ce(e,f),title:le.moreActions,"aria-label":le.moreActionsFor.split("{{name}}").join(e.name),"aria-haspopup":"menu","aria-expanded":C===e.id,tabIndex:-1,children:(0,s.jsx)(Kt,{})})]}),Ae=x?x(R,re):re;return(0,s.jsx)(s.Fragment,{children:Ae})}var Xt=(0,c.memo)(Yt,Jt),ut=(0,c.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:p,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:h=!1,searchPlaceholder:N,labels:l,showExpandAll:x=!1,showRefresh:I=!1,onRefresh:v,toolbar:P,searchRowExtra:Y,renderNode:X,renderIcon:te,renderLabel:k,renderSuffix:F,className:S,style:C,size:se="sm",variant:ce="default",showIndentGuides:le=!0,maxHeight:_,rootRef:xe,draggable:he=!1,dragGroupKey:A,onReorder:Ce,onMove:pe,canDrag:Z,canDrop:Q,contextMenuItems:G,onContextMenuOpen:ee,onPatch:Te,theme:je,virtualized:q="auto"}=e,R=(0,c.useMemo)(()=>({...Fe,...l}),[l]),ve=N??R.search,[ge,Le]=(0,c.useState)(null),[$,O]=(0,c.useState)(J),[me,Pe]=(0,c.useState)(null),re=(0,c.useRef)(null),Ae=(0,c.useId)(),f=(0,c.useMemo)(()=>ct(o),[o]),[we,Oe]=(0,c.useState)({top:0,height:400}),[ye,Ne]=(0,c.useState)(null),[_e,Ye]=(0,c.useState)(null),y=ze(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:p}),L=He(o),Xe=L.isSearching?y.allBranchIds:L.expandedBeforeSearch??y.expandedIds,Ie=(0,c.useMemo)(()=>new Set(Xe),[Xe]),D=(0,c.useMemo)(()=>{let r=[],d=new Set,u=L.filteredNodes.map((g,b,w)=>({node:g,depth:0,parentId:null,positionInSet:b+1,setSize:w.length})).reverse();for(;u.length;){let g=u.pop();if(!d.has(g.node.id)&&(d.add(g.node.id),r.push(g),Ie.has(g.node.id))){let b=g.node.children??[];for(let w=b.length-1;w>=0;w--)u.push({node:b[w],depth:g.depth+1,parentId:g.node.id,positionInSet:w+1,setSize:b.length})}}return r},[L.filteredNodes,Ie]),Me=(0,c.useMemo)(()=>new Map(D.map((r,d)=>[r.node.id,d])),[D]),ue=se==="xs"?24:se==="md"?32:28,oe=q!==!1&&ce!=="doc"&&!X&&(q===!0||D.length>500),be=oe?Math.max(0,Math.min(Math.floor(we.top/ue)-8,D.length-1)):0,Se=oe?Math.min(D.length,be+Math.ceil(we.height/ue)+16):D.length,Ze=D.slice(be,Se);(0,c.useEffect)(()=>{let r=re.current;if(!r)return;let d=()=>Oe({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,c.useEffect)(()=>{if(!ye)return;let r=Me.get(ye.id);if(r===void 0){Ne(null);return}let d=re.current;if(oe&&d&&(r<be||r>=Se)){let g=d.clientHeight||400,b=Math.min(r*ue,Math.max(0,D.length*ue-g));d.scrollTop=b,Oe(w=>({...w,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(ye.id);ye.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),Ne(null)},[ye,Me,oe,ue,be,Se,D.length,y.nodeElementRefs]);let $e=_e===null?void 0:Me.get(_e),ft=$e!==void 0&&$e>=be&&$e<Se?_e:Ze[0]?.node.id,We=(0,c.useRef)({query:"",time:0}),ht=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=Me.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=D[d],g=d;if(r.key==="ArrowDown")g=Math.min(d+1,D.length-1);else if(r.key==="ArrowUp")g=Math.max(0,d-1);else if(r.key==="Home")g=0;else if(r.key==="End")g=D.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Ie.has(u.node.id))g=Math.min(d+1,D.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Ie.has(u.node.id)))g=Me.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let w=r.target.getBoundingClientRect();r.preventDefault(),De(u.node,w.left+24,w.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let w=Date.now(),W=w-We.current.time<600?We.current.query+r.key.toLowerCase():r.key.toLowerCase();We.current={query:W,time:w};for(let B=1;B<=D.length;B++){let z=(d+B)%D.length;if(D[z].node.name.toLowerCase().startsWith(W)){g=z;break}}}else return;r.preventDefault();let b=D[g].node.id;Ye(b),Ne({id:b,focus:!0})};(0,c.useEffect)(()=>{re.current&&(re.current.scrollTop=0),Oe(r=>({...r,top:0}))},[L.deferredQuery]);let gt=(0,c.useCallback)(r=>{Le(r.id),n?.(r)},[n]),mt=(0,c.useCallback)(r=>{!r.trim()&&L.expandedBeforeSearch&&y.setExpandedIds(L.expandedBeforeSearch),L.handleQueryChange(r,y.expandedIds)},[y.expandedIds,L]),Re=(0,c.useCallback)(r=>!he||r.metadata?.kind==="section"?!1:Z?Z(r):!0,[Z,he]),ke=(0,c.useCallback)((r,d,u)=>{if(r.id===d.id||!Re(r)||f.path(d.id)?.ancestorIds.includes(r.id))return!1;if(A){let b=B=>{let z=f.path(B)?.nodes??[];for(let U=z.length-1;U>=0;U--){let j=z[U]?.metadata;if(j&&typeof j=="object"&&Object.prototype.hasOwnProperty.call(j,A))return j[A]}},w=b(r.id),W=b(d.id);if(w!==void 0&&W!==void 0&&w!==W)return!1}return!Q||Q(r,d,u)},[Re,Q,A,f]),bt=(0,c.useCallback)((r,d)=>{if(!Re(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),O({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Re]),xt=(0,c.useCallback)((r,d)=>{if(!$.draggedId||$.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=f.byId.get($.draggedId)?.node;if(!u){O(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}let g=d.currentTarget.getBoundingClientRect(),b=(d.clientY-g.top)/g.height,w=(r.children?.length??0)>0,W=b<.5?"before":"after",B,z;b<.25?(B=["before","after"],z=1):b>.75?(B=["after","before"],z=1):(B=[W],z=0);let U=Q?ke(u,r,"child"):!1;(w||U)&&B.splice(z,0,"child");let j=B.find(H=>ke(u,r,H));if(!j){O(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",O(H=>H.dragOverId===r.id&&H.dragOverPosition===j?H:{...H,dragOverId:r.id,dragOverPosition:j})},[ke,Q,$.draggedId,f]),Tt=(0,c.useCallback)(r=>{O(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),vt=(0,c.useCallback)((r,d)=>{d.preventDefault();let u=$.draggedId,g=$.dragOverPosition;if(!u||!g||u===r.id||$.dragOverId!==r.id){O(J);return}let b=f.byId.get(u)?.node;if(!b||!ke(b,r,g)){O(J);return}if(g==="child"){let fe=f.path(u)?.target;if(!fe){O(J);return}let tt=Je(o,u,r.id);tt&&pe?.(tt,fe,r.id),O(J);return}let w=f.path(r.id);if(!w){O(J);return}let W=w.parent?.children??o,B=W.findIndex(K=>K.id===r.id);if(B===-1){O(J);return}let z=g==="before"?B:B+1,U=f.path(u),j=w.parent?.id??null;if((U?.parent?.id??null)!==j){let K=U?.target,fe=Je(o,u,j,z);fe&&K&&pe?.(fe,K,j),O(J);return}if(U&&U.parent===w.parent){let K=W.findIndex(fe=>fe.id===u);K!==-1&&K<z&&(z-=1)}let ne=dt(o,u,z);if(ne&&ne.fromIndex!==ne.toIndex&&(Ce?.(ne),Te)){let K=Qt(ne.moved,ne.fromIndex,ne.toIndex,W);K.length>0&&Te(K,{node:ne.moved,type:"reorder"})}O(J)},[$,o,f,ke,pe,Te,Ce]),wt=(0,c.useCallback)(()=>{O(J)},[]),De=(0,c.useCallback)((r,d,u)=>{if(G){let g=G(r);if(g.length===0)return;let b=y.nodeElementRefs.current.get(r.id);b&&Pe({x:d,y:u,node:r,items:g,anchor:b,ariaLabel:R.contextMenuFor.split("{{name}}").join(r.name),confirmLabel:R.confirmAction});return}ee?.({node:r,x:d,y:u})},[G,ee,y.nodeElementRefs,R]),yt=(0,c.useCallback)(()=>{Pe(null)},[]),Nt=(0,c.useCallback)((r,d)=>{d.preventDefault(),De(r,d.clientX,d.clientY)},[De]),It=(0,c.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();De(r,u.left,u.bottom+4)},[De]),et=(0,c.useCallback)(r=>{let d=f.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),L.clearSearch(),Ne({id:r,focus:!1})},[y,f,L.clearSearch]);(0,c.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>ge?f.path(ge)?.target:void 0,scrollToNode:et,locateNode:r=>{let d=[...o],u=new Set;for(let g=0;g<d.length;g++){let b=d[g];if(!(!b||u.has(b))){if(u.add(b),r(b)){let w=f.path(b.id);return w&&y.setExpandedIds([...new Set([...y.expandedIds,...w.ancestorIds])]),L.clearSearch(),Le(b.id),Ne({id:b.id,focus:!1}),b}if(b.children?.length)for(let w of b.children)d.push(w)}}}}),[y,et,ge,o,f,L.clearSearch]);let Mt=(0,c.useMemo)(()=>({...C,..._!==void 0?{maxHeight:_}:{}}),[C,_]),St=[m.root,ce!=="default"?`pde-tree-variant-${ce}`:"",S].filter(Boolean).join(" "),Rt=ie(gt),kt=ie(bt),Dt=ie(xt),Et=ie(Tt),Ct=ie(vt),Lt=ie(wt),Pt=ie(Nt),At=ie(It);return(0,s.jsxs)("div",{ref:xe,className:St,style:Mt,"data-size":se,"data-theme":je,children:[P&&(0,s.jsx)("div",{className:m.toolbar,children:P}),(h||x||I||Y)&&(0,s.jsxs)("div",{className:m.searchRow,children:[h&&(0,s.jsxs)("div",{className:m.searchInputWrap,children:[(0,s.jsx)("span",{className:m.searchIcon,children:(0,s.jsx)($t,{})}),(0,s.jsx)("input",{className:m.searchInput,type:"search","aria-controls":Ae,placeholder:ve,value:L.query,onChange:r=>mt(r.target.value),"aria-label":R.searchTree})]}),Y,x&&(0,s.jsx)("button",{type:"button",className:m.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?R.collapseAll:R.expandAll,"aria-label":y.isAllExpanded?R.collapseAll:R.expandAll,children:y.isAllExpanded?(0,s.jsx)(qe.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(qe.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),I&&(0,s.jsx)("button",{type:"button",className:m.iconButton,onClick:v,title:R.refresh,"aria-label":R.refresh,children:(0,s.jsx)(M.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:re,className:m.treeContainer,"data-virtualized":oe||void 0,onScroll:r=>{oe&&Oe({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:Ae,role:"tree",onKeyDown:ht,"aria-label":R.treeNavigation,children:L.filteredNodes.length===0?(0,s.jsx)("div",{className:m.emptyState,children:L.isSearching?R.noResults:R.noItems}):(0,s.jsxs)(s.Fragment,{children:[oe&&(0,s.jsx)("div",{role:"presentation",style:{height:be*ue}}),Ze.map(({node:r,depth:d,positionInSet:u,setSize:g})=>(0,s.jsx)(Xt,{node:r,depth:d,positionInSet:u,setSize:g,isFocused:r.id===ft,onFocusNode:Ye,isExpanded:Ie.has(r.id),isSelected:ge===r.id,onToggle:y.toggleNode,onSelect:Rt,onNodeRef:y.setNodeElementRef,searchQuery:L.deferredQuery,showIndentGuides:le,renderIcon:te,renderLabel:k,renderSuffix:F,renderNode:X,draggable:he,dragState:$,canDragNode:Re(r),onDragStart:kt,onDragOver:Dt,onDragLeave:Et,onDrop:Ct,onDragEnd:Lt,showContextMenuButton:!!(G||ee),activeMenuNodeId:me?.node.id??null,onContextMenu:Pt,onMoreClick:At,labels:R},r.id)),oe&&(0,s.jsx)("div",{role:"presentation",style:{height:(D.length-Se)*ue}})]})}),me&&(0,s.jsx)(st,{state:me,onClose:yt},me.node.id)]})});0&&(module.exports={DEFAULT_TREE_LABELS,METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
@@ -1 +1 @@
1
- import{i as et,j as Fe,k as tt,p as rt,q as je}from"../chunk-AHHDXXHL.js";import{forwardRef as Pt,memo as At,useCallback as D,useEffect as Ve,useImperativeHandle as Ot,useId as Bt,useMemo as fe,useRef as ct,useState as he}from"react";import{useLayoutEffect as kt,useRef as Rt,useState as $e}from"react";import{createPortal as Dt}from"react-dom";import{jsx as Ae,jsxs as ot}from"react/jsx-runtime";function nt({state:r,onClose:t}){let u=Rt(null),[n,s]=$e(null),[x,h]=$e({left:r.x,top:r.y}),[P,T]=$e({}),I=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return kt(()=>{let p=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(p),w={};for(let N=0;N<v.length;N++){let z=v.item(N);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(w[z]=v.getPropertyValue(z))}T(w);let g=u.current;if(!g)return;let C=()=>{let N=g.getBoundingClientRect();h({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-N.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-N.height-8))})};C();let V=typeof ResizeObserver>"u"?void 0:new ResizeObserver(C);V?.observe(g),g.querySelector("button:not(:disabled)")?.focus();let J=N=>{N.target instanceof Node&&!g.contains(N.target)&&t()},X=N=>{N.target instanceof Node&&!g.contains(N.target)&&t()};return document.addEventListener("pointerdown",J),document.addEventListener("scroll",X,!0),window.addEventListener("resize",t),()=>{V?.disconnect(),document.removeEventListener("pointerdown",J),document.removeEventListener("scroll",X,!0),window.removeEventListener("resize",t),g.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Dt(Ae("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...x},role:"menu","aria-label":r.ariaLabel??`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:p=>{let v=u.current;if(!v)return;let w=Array.from(v.querySelectorAll("button:not(:disabled)")),g=w.indexOf(document.activeElement);if(p.key==="Escape"||p.key==="Tab"){p.key==="Escape"&&p.preventDefault(),p.stopPropagation(),t();return}let C;if(p.key==="ArrowDown")C=(g+1)%w.length;else if(p.key==="ArrowUp")C=(g-1+w.length)%w.length;else if(p.key==="Home")C=0;else if(p.key==="End")C=w.length-1;else return;p.preventDefault(),w[C]?.focus()},children:r.items.map((p,v)=>ot("div",{role:"presentation",children:[p.separator&&Ae("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),ot("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:p.disabled,className:`pde-tree-contextMenuItem${p.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(p.confirm&&n!==v){s(v);return}t(),p.onClick(r.node)},children:[p.icon&&Ae("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:p.icon}),Ae("span",{children:p.confirm&&n===v?p.confirmLabel??r.confirmLabel??"Confirm?":p.label})]})]},`${p.label}-${v}`))}),I)}import{useCallback as se,useMemo as Oe,useRef as at,useState as Ct}from"react";function _e(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:s}=t,x=Oe(()=>u!==void 0?[...u]:n<=1?[]:Fe(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[h,P]=Ct(x),T=at(new Map),I=Oe(()=>tt(r),[r]),p=Oe(()=>new Set(h),[h]),v=at(h);v.current=h;let w=Oe(()=>I.length>0&&I.every(y=>p.has(y)),[I,p]),g=se(y=>{v.current=y,P(y),s?.(y)},[s]),C=se(y=>{let k=v.current,re=k.includes(y)?k.filter(oe=>oe!==y):[...k,y];g(re)},[g]),V=se(()=>{g([...I])},[I,g]),J=se(()=>{g([])},[g]),X=se(y=>{let k=Fe(r,{maxDepth:y,onlyWithChildren:!0});g(k)},[r,g]),N=se((y,k)=>{k?T.current.set(y,k):T.current.delete(y)},[]),z=se(y=>{let k=T.current.get(y);k&&k.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:h,setExpandedIds:g,toggleNode:C,expandAll:V,collapseAll:J,expandToDepth:X,isAllExpanded:w,allBranchIds:I,setNodeElementRef:N,scrollToNode:z,nodeElementRefs:T}}import{useCallback as dt,useDeferredValue as Et,useMemo as Lt,useState as it}from"react";function Ke(r){let[t,u]=it(""),n=Et(t),[s,x]=it(null),h=n.trim().length>0,P=Lt(()=>h?et(r,{query:n,keepAncestors:!0}):r,[r,n,h]),T=dt((p,v)=>{let w=t.trim(),g=p.trim();!w&&g&&x(v),w&&!g&&x(null),u(p)},[t]),I=dt(()=>{u(""),x(null)},[]);return{query:t,deferredQuery:n,isSearching:h,filteredNodes:P,expandedBeforeSearch:s,handleQueryChange:T,clearSearch:I}}var Qe={search:"Search...",searchTree:"Search tree",expandAll:"Expand all",collapseAll:"Collapse all",refresh:"Refresh",dragToReorder:"Drag to reorder",required:"Required",moreActions:"More actions",moreActionsFor:"More actions for {{name}}",treeNavigation:"Tree navigation",contextMenuFor:"Actions for {{name}}",confirmAction:"Confirm?",noResults:"No matching results",noItems:"No items"};function st(r){let t=new Map,u=new Set,n=r.map(s=>({node:s,parentId:null})).reverse();for(;n.length;){let s=n.pop();if(u.has(s.node)||t.has(s.node.id))continue;u.add(s.node),t.set(s.node.id,s);let x=s.node.children??[];for(let h=x.length-1;h>=0;h--)n.push({node:x[h],parentId:s.node.id})}return{byId:t,path(s){let x=t.get(s);if(!x)return null;let h=[x.node],P=x.parentId;for(;P!==null;){let T=t.get(P);if(!T)break;h.push(T.node),P=T.parentId}return h.reverse(),{nodes:h,target:x.node,parent:h[h.length-2],ancestorIds:h.slice(0,-1).map(T=>T.id)}}}}var We={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Be(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(We,t)?We[t]:t.slice(0,4).toUpperCase()}import{LuBraces as lt,LuChevronDown as zt,LuChevronRight as Ht,LuEllipsisVertical as Gt,LuFolder as qt,LuFolderOpen as Ft,LuGripVertical as jt,LuList as $t,LuRefreshCw as _t,LuSearch as Kt,LuZap as Qt}from"react-icons/lu";import{MdOutlineUnfoldMore as Wt,MdUnfoldLess as Vt}from"react-icons/md";import{Fragment as Re,jsx as d,jsxs as ge}from"react/jsx-runtime";var l={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 Jt({expanded:r}){return d("span",{className:l.expandIcon,children:r?d(zt,{size:14}):d(Ht,{size:14})})}function Ut(){return d(Kt,{size:14,"aria-hidden":"true"})}function Yt(){return d(jt,{size:14,"aria-hidden":"true"})}function Xt(){return d(Gt,{size:14,"aria-hidden":"true"})}function pt(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 Zt(r,t,u,n){let s=pt(r);if(!s||s.length===0)return[];let x=JSON.stringify(s.slice(0,-1));if(!n.every((P,T)=>{let I=pt(P);return I&&I[I.length-1]===T&&JSON.stringify(I.slice(0,-1))===x}))return[];let h=s.slice(0,-1);return[{op:"move",from:[...h,t],path:[...h,u]}]}function er({text:r,query:t}){if(!t)return d(Re,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),s=u.indexOf(n);return s===-1?d(Re,{children:r}):ge(Re,{children:[r.slice(0,s),d("span",{className:l.highlight,children:r.slice(s,s+t.length)}),r.slice(s+t.length)]})}var ut={get:l.methodGet,post:l.methodPost,put:l.methodPut,patch:l.methodPatch,delete:l.methodDelete};function tr({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(ut,t)?ut[t]:l.methodOther,n=Be(r);return d("span",{className:`${l.methodBadge} ${u}`,children:n})}var W={draggedId:null,dragOverId:null,dragOverPosition:null};function rr(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 s=r.dragState.dragOverId===r.node.id,x=t.dragState.dragOverId===t.node.id;return!(s!==x||s&&x&&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||r.labels!==t.labels)}function or(r){let{node:t,depth:u,onToggle:n,onSelect:s,onNodeRef:x,searchQuery:h,showIndentGuides:P,renderIcon:T,renderLabel:I,renderSuffix:p,renderNode:v,draggable:w,dragState:g,canDragNode:C,onDragStart:V,onDragOver:J,onDragLeave:X,onDrop:N,onDragEnd:z,showContextMenuButton:y,activeMenuNodeId:k,onContextMenu:re,onMoreClick:oe,labels:ne}=r,{isExpanded:F,isSelected:me}=r,ce=(t.children?.length??0)>0,E=ce,De=!ce,ae=g.draggedId===t.id,U=g.dragOverId===t.id,K=U?g.dragOverPosition:null,H=t.metadata,Y=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,M={node:t,depth:u,isExpanded:F,isSelected:me,isBranch:E,isLeaf:De,isDragging:ae,isDragOver:U,dragOverPosition:K},xe=D(()=>{E?n(t.id):s(t)},[E,t,s,n]),le=D(i=>{i.target===i.currentTarget&&(i.key==="Enter"||i.key===" "?(i.preventDefault(),xe()):(i.key==="ArrowRight"&&E&&!F||i.key==="ArrowLeft"&&E&&F)&&(i.preventDefault(),i.stopPropagation(),n(t.id)))},[xe,E,F,t.id,n]),Ce=T?T(M):Y?null:d("span",{className:l.nodeIcon,children:G==="section"&&H?.section==="components"?d(lt,{size:14}):G==="section"&&H?.section==="webhooks"?d(Qt,{size:14}):G==="schema"||G==="component"||G==="object"?d(lt,{size:14}):G==="array"||G==="items"?d($t,{size:14}):E?F?d(Ft,{size:14}):d(qt,{size:14}):Y&&d(tr,{method:Y})}),j=I?I(M):d("span",{className:`${l.nodeLabel} ${E?l.nodeLabelBranch:""} ${be?l.deprecatedLabel:""}`,children:d(er,{text:t.name,query:h})}),L=p?p(M):null,pe=[l.nodeRow,E?l.branchControl:l.leafItem,me?l.nodeRowSelected:"",ae?l.nodeDragging:"",U&&K==="before"?l.dropIndicatorBefore:"",U&&K==="after"?l.dropIndicatorAfter:"",U&&K==="child"?l.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),Ee=D(i=>x(t.id,i),[t.id,x]),Z=ge("div",{ref:Ee,className:pe,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":E?F:void 0,"aria-label":Y?`${Be(Y)} ${t.name}`:t.name,"aria-selected":me,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":w&&C?ae:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:xe,onKeyDown:le,onContextMenu:y?i=>re(t,i):void 0,onDragOver:w?i=>J(t,i):void 0,onDragLeave:w?()=>X(t):void 0,onDrop:w?i=>N(t,i):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(i,ve)=>d("span",{className:l.indentGuide,style:{left:`${(ve+1)*12+11}px`}},`guide-${ve}`)),w&&C?d("span",{className:l.dragHandle,style:{left:`${Math.min(u,20)*12+4}px`},draggable:!0,onDragStart:i=>V(t,i),onDragEnd:z,title:ne.dragToReorder,"aria-label":ne.dragToReorder,children:d(Yt,{})}):null,E?d(Jt,{expanded:F}):d("span",{className:l.expandIconPlaceholder}),Ce,j,ze&&d("span",{className:l.requiredDot,title:ne.required}),d("span",{className:l.nodeSuffix,children:L}),y&&d("button",{type:"button",className:[l.moreButton,k===t.id?l.moreButtonActive:""].filter(Boolean).join(" "),onClick:i=>oe(t,i),title:ne.moreActions,"aria-label":ne.moreActionsFor.split("{{name}}").join(t.name),"aria-haspopup":"menu","aria-expanded":k===t.id,tabIndex:-1,children:d(Xt,{})})]}),Le=v?v(M,Z):Z;return d(Re,{children:Le})}var nr=At(or,rr),ar=Pt(function(t,u){let{nodes:n,onSelect:s,onExpandedChange:x,defaultExpandedIds:h,defaultExpandDepth:P=1,searchable:T=!1,searchPlaceholder:I,labels:p,showExpandAll:v=!1,showRefresh:w=!1,onRefresh:g,toolbar:C,searchRowExtra:V,renderNode:J,renderIcon:X,renderLabel:N,renderSuffix:z,className:y,style:k,size:re="sm",variant:oe="default",showIndentGuides:ne=!0,maxHeight:F,rootRef:me,draggable:ce=!1,dragGroupKey:E,onReorder:De,onMove:ae,canDrag:U,canDrop:K,contextMenuItems:H,onContextMenuOpen:Y,onPatch:be,theme:ze,virtualized:G="auto"}=t,M=fe(()=>({...Qe,...p}),[p]),xe=I??M.search,[le,Ce]=he(null),[j,L]=he(W),[pe,Ee]=he(null),Z=ct(null),Le=Bt(),i=fe(()=>st(n),[n]),[ve,Pe]=he({top:0,height:400}),[we,Te]=he(null),[He,Je]=he(null),b=_e(n,{defaultExpandedIds:h,defaultExpandDepth:P,onExpandedChange:x}),R=Ke(n),Ue=R.isSearching?b.allBranchIds:R.expandedBeforeSearch??b.expandedIds,ye=fe(()=>new Set(Ue),[Ue]),S=fe(()=>{let e=[],o=new Set,a=R.filteredNodes.map((c,f,m)=>({node:c,depth:0,parentId:null,positionInSet:f+1,setSize:m.length})).reverse();for(;a.length;){let c=a.pop();if(!o.has(c.node.id)&&(o.add(c.node.id),e.push(c),ye.has(c.node.id))){let f=c.node.children??[];for(let m=f.length-1;m>=0;m--)a.push({node:f[m],depth:c.depth+1,parentId:c.node.id,positionInSet:m+1,setSize:f.length})}}return e},[R.filteredNodes,ye]),Ie=fe(()=>new Map(S.map((e,o)=>[e.node.id,o])),[S]),de=re==="xs"?24:re==="md"?32:28,ee=G!==!1&&oe!=="doc"&&!J&&(G===!0||S.length>500),ue=ee?Math.max(0,Math.min(Math.floor(ve.top/de)-8,S.length-1)):0,Me=ee?Math.min(S.length,ue+Math.ceil(ve.height/de)+16):S.length,Ye=S.slice(ue,Me);Ve(()=>{let e=Z.current;if(!e)return;let o=()=>Pe({top:e.scrollTop,height:e.clientHeight||400});o();let a=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return a?.observe(e),()=>a?.disconnect()},[]),Ve(()=>{if(!we)return;let e=Ie.get(we.id);if(e===void 0){Te(null);return}let o=Z.current;if(ee&&o&&(e<ue||e>=Me)){let c=o.clientHeight||400,f=Math.min(e*de,Math.max(0,S.length*de-c));o.scrollTop=f,Pe(m=>({...m,top:o.scrollTop}));return}let a=b.nodeElementRefs.current.get(we.id);we.focus&&a?.focus({preventScroll:!0}),a?.scrollIntoView?.({block:"nearest"}),Te(null)},[we,Ie,ee,de,ue,Me,S.length,b.nodeElementRefs]);let Ge=He===null?void 0:Ie.get(He),ft=Ge!==void 0&&Ge>=ue&&Ge<Me?He:Ye[0]?.node.id,qe=ct({query:"",time:0}),ht=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=Ie.get(e.target.dataset.nodeId??"");if(o===void 0)return;let a=S[o],c=o;if(e.key==="ArrowDown")c=Math.min(o+1,S.length-1);else if(e.key==="ArrowUp")c=Math.max(0,o-1);else if(e.key==="Home")c=0;else if(e.key==="End")c=S.length-1;else if(e.key==="ArrowRight"&&a.node.children?.length&&ye.has(a.node.id))c=Math.min(o+1,S.length-1);else if(e.key==="ArrowLeft"&&(!a.node.children?.length||!ye.has(a.node.id)))c=Ie.get(a.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let m=e.target.getBoundingClientRect();e.preventDefault(),ke(a.node,m.left+24,m.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let m=Date.now(),$=m-qe.current.time<600?qe.current.query+e.key.toLowerCase():e.key.toLowerCase();qe.current={query:$,time:m};for(let A=1;A<=S.length;A++){let O=(o+A)%S.length;if(S[O].node.name.toLowerCase().startsWith($)){c=O;break}}}else return;e.preventDefault();let f=S[c].node.id;Je(f),Te({id:f,focus:!0})};Ve(()=>{Z.current&&(Z.current.scrollTop=0),Pe(e=>({...e,top:0}))},[R.deferredQuery]);let gt=D(e=>{Ce(e.id),s?.(e)},[s]),mt=D(e=>{!e.trim()&&R.expandedBeforeSearch&&b.setExpandedIds(R.expandedBeforeSearch),R.handleQueryChange(e,b.expandedIds)},[b.expandedIds,R]),Ne=D(e=>!ce||e.metadata?.kind==="section"?!1:U?U(e):!0,[U,ce]),Se=D((e,o,a)=>{if(e.id===o.id||!Ne(e)||i.path(o.id)?.ancestorIds.includes(e.id))return!1;if(E){let f=A=>{let O=i.path(A)?.nodes??[];for(let Q=O.length-1;Q>=0;Q--){let q=O[Q]?.metadata;if(q&&typeof q=="object"&&Object.prototype.hasOwnProperty.call(q,E))return q[E]}},m=f(e.id),$=f(o.id);if(m!==void 0&&$!==void 0&&m!==$)return!1}return!K||K(e,o,a)},[Ne,K,E,i]),bt=D((e,o)=>{if(!Ne(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),L({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[Ne]),xt=D((e,o)=>{if(!j.draggedId||j.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let a=i.byId.get(j.draggedId)?.node;if(!a){L(B=>B.dragOverId===null?B:{...B,dragOverId:null,dragOverPosition:null});return}let c=o.currentTarget.getBoundingClientRect(),f=(o.clientY-c.top)/c.height,m=(e.children?.length??0)>0,$=f<.5?"before":"after",A,O;f<.25?(A=["before","after"],O=1):f>.75?(A=["after","before"],O=1):(A=[$],O=0);let Q=K?Se(a,e,"child"):!1;(m||Q)&&A.splice(O,0,"child");let q=A.find(B=>Se(a,e,B));if(!q){L(B=>B.dragOverId===null?B:{...B,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",L(B=>B.dragOverId===e.id&&B.dragOverPosition===q?B:{...B,dragOverId:e.id,dragOverPosition:q})},[Se,K,j.draggedId,i]),vt=D(e=>{L(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),wt=D((e,o)=>{o.preventDefault();let a=j.draggedId,c=j.dragOverPosition;if(!a||!c||a===e.id||j.dragOverId!==e.id){L(W);return}let f=i.byId.get(a)?.node;if(!f||!Se(f,e,c)){L(W);return}if(c==="child"){let ie=i.path(a)?.target;if(!ie){L(W);return}let Ze=je(n,a,e.id);Ze&&ae?.(Ze,ie,e.id),L(W);return}let m=i.path(e.id);if(!m){L(W);return}let $=m.parent?.children??n,A=$.findIndex(_=>_.id===e.id);if(A===-1){L(W);return}let O=c==="before"?A:A+1,Q=i.path(a),q=m.parent?.id??null;if((Q?.parent?.id??null)!==q){let _=Q?.target,ie=je(n,a,q,O);ie&&_&&ae?.(ie,_,q),L(W);return}if(Q&&Q.parent===m.parent){let _=$.findIndex(ie=>ie.id===a);_!==-1&&_<O&&(O-=1)}let te=rt(n,a,O);if(te&&te.fromIndex!==te.toIndex&&(De?.(te),be)){let _=Zt(te.moved,te.fromIndex,te.toIndex,$);_.length>0&&be(_,{node:te.moved,type:"reorder"})}L(W)},[j,n,i,Se,ae,be,De]),Tt=D(()=>{L(W)},[]),ke=D((e,o,a)=>{if(H){let c=H(e);if(c.length===0)return;let f=b.nodeElementRefs.current.get(e.id);f&&Ee({x:o,y:a,node:e,items:c,anchor:f,ariaLabel:M.contextMenuFor.split("{{name}}").join(e.name),confirmLabel:M.confirmAction});return}Y?.({node:e,x:o,y:a})},[H,Y,b.nodeElementRefs,M]),yt=D(()=>{Ee(null)},[]),It=D((e,o)=>{o.preventDefault(),ke(e,o.clientX,o.clientY)},[ke]),Mt=D((e,o)=>{o.stopPropagation();let a=o.currentTarget.getBoundingClientRect();ke(e,a.left,a.bottom+4)},[ke]),Xe=D(e=>{let o=i.path(e);if(!o)return;let a=o.ancestorIds;b.setExpandedIds([...new Set([...b.expandedIds,...a])]),R.clearSearch(),Te({id:e,focus:!1})},[b,i,R.clearSearch]);Ot(u,()=>({expandAll:b.expandAll,collapseAll:b.collapseAll,expandToDepth:b.expandToDepth,getExpandedIds:()=>b.expandedIds,getSelectedNode:()=>le?i.path(le)?.target:void 0,scrollToNode:Xe,locateNode:e=>{let o=[...n],a=new Set;for(let c=0;c<o.length;c++){let f=o[c];if(!(!f||a.has(f))){if(a.add(f),e(f)){let m=i.path(f.id);return m&&b.setExpandedIds([...new Set([...b.expandedIds,...m.ancestorIds])]),R.clearSearch(),Ce(f.id),Te({id:f.id,focus:!1}),f}if(f.children?.length)for(let m of f.children)o.push(m)}}}}),[b,Xe,le,n,i,R.clearSearch]);let Nt=fe(()=>({...k,...F!==void 0?{maxHeight:F}:{}}),[k,F]),St=[l.root,oe!=="default"?`pde-tree-variant-${oe}`:"",y].filter(Boolean).join(" ");return ge("div",{ref:me,className:St,style:Nt,"data-size":re,"data-theme":ze,children:[C&&d("div",{className:l.toolbar,children:C}),(T||v||w||V)&&ge("div",{className:l.searchRow,children:[T&&ge("div",{className:l.searchInputWrap,children:[d("span",{className:l.searchIcon,children:d(Ut,{})}),d("input",{className:l.searchInput,type:"search","aria-controls":Le,placeholder:xe,value:R.query,onChange:e=>mt(e.target.value),"aria-label":M.searchTree})]}),V,v&&d("button",{type:"button",className:l.iconButton,onClick:b.isAllExpanded?b.collapseAll:b.expandAll,title:b.isAllExpanded?M.collapseAll:M.expandAll,"aria-label":b.isAllExpanded?M.collapseAll:M.expandAll,children:b.isAllExpanded?d(Vt,{size:16,"aria-hidden":"true"}):d(Wt,{size:16,"aria-hidden":"true"})}),w&&d("button",{type:"button",className:l.iconButton,onClick:g,title:M.refresh,"aria-label":M.refresh,children:d(_t,{size:14,"aria-hidden":"true"})})]}),d("div",{ref:Z,className:l.treeContainer,"data-virtualized":ee||void 0,onScroll:e=>{ee&&Pe({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Le,role:"tree",onKeyDown:ht,"aria-label":M.treeNavigation,children:R.filteredNodes.length===0?d("div",{className:l.emptyState,children:R.isSearching?M.noResults:M.noItems}):ge(Re,{children:[ee&&d("div",{role:"presentation",style:{height:ue*de}}),Ye.map(({node:e,depth:o,positionInSet:a,setSize:c})=>d(nr,{node:e,depth:o,positionInSet:a,setSize:c,isFocused:e.id===ft,onFocusNode:Je,isExpanded:ye.has(e.id),isSelected:le===e.id,onToggle:b.toggleNode,onSelect:gt,onNodeRef:b.setNodeElementRef,searchQuery:R.deferredQuery,showIndentGuides:ne,renderIcon:X,renderLabel:N,renderSuffix:z,renderNode:J,draggable:ce,dragState:j,canDragNode:Ne(e),onDragStart:bt,onDragOver:xt,onDragLeave:vt,onDrop:wt,onDragEnd:Tt,showContextMenuButton:!!(H||Y),activeMenuNodeId:pe?.node.id??null,onContextMenu:It,onMoreClick:Mt,labels:M},e.id)),ee&&d("div",{role:"presentation",style:{height:(S.length-Me)*de}})]})}),pe&&d(nt,{state:pe,onClose:yt},pe.node.id)]})});export{Qe as DEFAULT_TREE_LABELS,We as METHOD_LABEL_MAP,ar as Tree,Be as getMethodLabel,_e as useTreeExpansion,Ke as useTreeSearch};
1
+ import{i as rt,j as je,k as ot,p as nt,q as $e}from"../chunk-AHHDXXHL.js";import{forwardRef as jt,memo as $t,useCallback as R,useEffect as Je,useLayoutEffect as _t,useImperativeHandle as Kt,useId as Qt,useMemo as he,useRef as Ue,useState as ge}from"react";import{useLayoutEffect as Bt,useRef as zt,useState as _e}from"react";import{createPortal as Ht}from"react-dom";import{jsx as Oe,jsxs as at}from"react/jsx-runtime";function dt({state:r,onClose:e}){let p=zt(null),[n,s]=_e(null),[x,h]=_e({left:r.x,top:r.y}),[P,T]=_e({}),I=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return Bt(()=>{let u=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(u),w={};for(let N=0;N<v.length;N++){let z=v.item(N);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(w[z]=v.getPropertyValue(z))}T(w);let g=p.current;if(!g)return;let C=()=>{let N=g.getBoundingClientRect();h({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-N.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-N.height-8))})};C();let V=typeof ResizeObserver>"u"?void 0:new ResizeObserver(C);V?.observe(g),g.querySelector("button:not(:disabled)")?.focus();let J=N=>{N.target instanceof Node&&!g.contains(N.target)&&e()},X=N=>{N.target instanceof Node&&!g.contains(N.target)&&e()};return document.addEventListener("pointerdown",J),document.addEventListener("scroll",X,!0),window.addEventListener("resize",e),()=>{V?.disconnect(),document.removeEventListener("pointerdown",J),document.removeEventListener("scroll",X,!0),window.removeEventListener("resize",e),g.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,e]),Ht(Oe("div",{ref:p,className:"pde-tree-contextMenu",style:{...P,...x},role:"menu","aria-label":r.ariaLabel??`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:u=>{let v=p.current;if(!v)return;let w=Array.from(v.querySelectorAll("button:not(:disabled)")),g=w.indexOf(document.activeElement);if(u.key==="Escape"||u.key==="Tab"){u.key==="Escape"&&u.preventDefault(),u.stopPropagation(),e();return}let C;if(u.key==="ArrowDown")C=(g+1)%w.length;else if(u.key==="ArrowUp")C=(g-1+w.length)%w.length;else if(u.key==="Home")C=0;else if(u.key==="End")C=w.length-1;else return;u.preventDefault(),w[C]?.focus()},children:r.items.map((u,v)=>at("div",{role:"presentation",children:[u.separator&&Oe("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),at("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:u.disabled,className:`pde-tree-contextMenuItem${u.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(u.confirm&&n!==v){s(v);return}e(),u.onClick(r.node)},children:[u.icon&&Oe("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:u.icon}),Oe("span",{children:u.confirm&&n===v?u.confirmLabel??r.confirmLabel??"Confirm?":u.label})]})]},`${u.label}-${v}`))}),I)}import{useCallback as ce,useMemo as Be,useRef as it,useState as Gt}from"react";function Ke(r,e={}){let{defaultExpandedIds:p,defaultExpandDepth:n=1,onExpandedChange:s}=e,x=Be(()=>p!==void 0?[...p]:n<=1?[]:je(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[h,P]=Gt(x),T=it(new Map),I=Be(()=>ot(r),[r]),u=Be(()=>new Set(h),[h]),v=it(h);v.current=h;let w=Be(()=>I.length>0&&I.every(y=>u.has(y)),[I,u]),g=ce(y=>{v.current=y,P(y),s?.(y)},[s]),C=ce(y=>{let k=v.current,oe=k.includes(y)?k.filter(ne=>ne!==y):[...k,y];g(oe)},[g]),V=ce(()=>{g([...I])},[I,g]),J=ce(()=>{g([])},[g]),X=ce(y=>{let k=je(r,{maxDepth:y,onlyWithChildren:!0});g(k)},[r,g]),N=ce((y,k)=>{k?T.current.set(y,k):T.current.delete(y)},[]),z=ce(y=>{let k=T.current.get(y);k&&k.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:h,setExpandedIds:g,toggleNode:C,expandAll:V,collapseAll:J,expandToDepth:X,isAllExpanded:w,allBranchIds:I,setNodeElementRef:N,scrollToNode:z,nodeElementRefs:T}}import{useCallback as st,useDeferredValue as qt,useMemo as Ft,useState as ct}from"react";function Qe(r){let[e,p]=ct(""),n=qt(e),[s,x]=ct(null),h=n.trim().length>0,P=Ft(()=>h?rt(r,{query:n,keepAncestors:!0}):r,[r,n,h]),T=st((u,v)=>{let w=e.trim(),g=u.trim();!w&&g&&x(v),w&&!g&&x(null),p(u)},[e]),I=st(()=>{p(""),x(null)},[]);return{query:e,deferredQuery:n,isSearching:h,filteredNodes:P,expandedBeforeSearch:s,handleQueryChange:T,clearSearch:I}}var We={search:"Search...",searchTree:"Search tree",expandAll:"Expand all",collapseAll:"Collapse all",refresh:"Refresh",dragToReorder:"Drag to reorder",required:"Required",moreActions:"More actions",moreActionsFor:"More actions for {{name}}",treeNavigation:"Tree navigation",contextMenuFor:"Actions for {{name}}",confirmAction:"Confirm?",noResults:"No matching results",noItems:"No items"};function lt(r){let e=new Map,p=new Set,n=r.map(s=>({node:s,parentId:null})).reverse();for(;n.length;){let s=n.pop();if(p.has(s.node)||e.has(s.node.id))continue;p.add(s.node),e.set(s.node.id,s);let x=s.node.children??[];for(let h=x.length-1;h>=0;h--)n.push({node:x[h],parentId:s.node.id})}return{byId:e,path(s){let x=e.get(s);if(!x)return null;let h=[x.node],P=x.parentId;for(;P!==null;){let T=e.get(P);if(!T)break;h.push(T.node),P=T.parentId}return h.reverse(),{nodes:h,target:x.node,parent:h[h.length-2],ancestorIds:h.slice(0,-1).map(T=>T.id)}}}}var Ve={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function ze(r){let e=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Ve,e)?Ve[e]:e.slice(0,4).toUpperCase()}import{LuBraces as pt,LuChevronDown as Wt,LuChevronRight as Vt,LuEllipsisVertical as Jt,LuFolder as Ut,LuFolderOpen as Yt,LuGripVertical as Xt,LuList as Zt,LuRefreshCw as er,LuSearch as tr,LuZap as rr}from"react-icons/lu";import{MdOutlineUnfoldMore as or,MdUnfoldLess as nr}from"react-icons/md";import{Fragment as De,jsx as d,jsxs as me}from"react/jsx-runtime";var l={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 ar({expanded:r}){return d("span",{className:l.expandIcon,children:r?d(Wt,{size:14}):d(Vt,{size:14})})}function dr(){return d(tr,{size:14,"aria-hidden":"true"})}function ir(){return d(Xt,{size:14,"aria-hidden":"true"})}function sr(){return d(Jt,{size:14,"aria-hidden":"true"})}function ut(r){let p=r.metadata?.jsonPath;if(Array.isArray(p)&&p.length>0&&p.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return p}function cr(r,e,p,n){let s=ut(r);if(!s||s.length===0)return[];let x=JSON.stringify(s.slice(0,-1));if(!n.every((P,T)=>{let I=ut(P);return I&&I[I.length-1]===T&&JSON.stringify(I.slice(0,-1))===x}))return[];let h=s.slice(0,-1);return[{op:"move",from:[...h,e],path:[...h,p]}]}function lr({text:r,query:e}){if(!e)return d(De,{children:r});let p=r.toLowerCase(),n=e.toLowerCase(),s=p.indexOf(n);return s===-1?d(De,{children:r}):me(De,{children:[r.slice(0,s),d("span",{className:l.highlight,children:r.slice(s,s+e.length)}),r.slice(s+e.length)]})}var ft={get:l.methodGet,post:l.methodPost,put:l.methodPut,patch:l.methodPatch,delete:l.methodDelete};function pr({method:r}){let e=r.toLowerCase(),p=Object.prototype.hasOwnProperty.call(ft,e)?ft[e]:l.methodOther,n=ze(r);return d("span",{className:`${l.methodBadge} ${p}`,children:n})}var W={draggedId:null,dragOverId:null,dragOverPosition:null};function re(r){let e=Ue(r);return _t(()=>{e.current=r},[r]),R(((...p)=>e.current(...p)),[])}function ur(r,e){if(r.isFocused!==e.isFocused||r.positionInSet!==e.positionInSet||r.setSize!==e.setSize||r.node!==e.node||r.depth!==e.depth||r.isExpanded!==e.isExpanded||r.isSelected!==e.isSelected||r.searchQuery!==e.searchQuery||r.showIndentGuides!==e.showIndentGuides||r.canDragNode!==e.canDragNode||r.draggable!==e.draggable||r.showContextMenuButton!==e.showContextMenuButton||r.activeMenuNodeId===r.node.id!=(e.activeMenuNodeId===e.node.id))return!1;let p=r.dragState.draggedId===r.node.id,n=e.dragState.draggedId===e.node.id;if(p!==n)return!1;let s=r.dragState.dragOverId===r.node.id,x=e.dragState.dragOverId===e.node.id;return!(s!==x||s&&x&&r.dragState.dragOverPosition!==e.dragState.dragOverPosition||r.renderIcon!==e.renderIcon||r.renderLabel!==e.renderLabel||r.renderSuffix!==e.renderSuffix||r.renderNode!==e.renderNode||r.onToggle!==e.onToggle||r.onSelect!==e.onSelect||r.onNodeRef!==e.onNodeRef||r.onDragStart!==e.onDragStart||r.onDragOver!==e.onDragOver||r.onDragLeave!==e.onDragLeave||r.onDrop!==e.onDrop||r.onDragEnd!==e.onDragEnd||r.onContextMenu!==e.onContextMenu||r.onMoreClick!==e.onMoreClick||r.labels!==e.labels)}function fr(r){let{node:e,depth:p,onToggle:n,onSelect:s,onNodeRef:x,searchQuery:h,showIndentGuides:P,renderIcon:T,renderLabel:I,renderSuffix:u,renderNode:v,draggable:w,dragState:g,canDragNode:C,onDragStart:V,onDragOver:J,onDragLeave:X,onDrop:N,onDragEnd:z,showContextMenuButton:y,activeMenuNodeId:k,onContextMenu:oe,onMoreClick:ne,labels:ae}=r,{isExpanded:F,isSelected:be}=r,le=(e.children?.length??0)>0,E=le,Ce=!le,de=g.draggedId===e.id,U=g.dragOverId===e.id,K=U?g.dragOverPosition:null,H=e.metadata,Y=typeof H?.method=="string"?H.method:void 0,xe=H?.deprecated===!0,He=H?.required===!0,G=typeof H?.kind=="string"?H.kind:void 0,M={node:e,depth:p,isExpanded:F,isSelected:be,isBranch:E,isLeaf:Ce,isDragging:de,isDragOver:U,dragOverPosition:K},ve=R(()=>{E?n(e.id):s(e)},[E,e,s,n]),pe=R(i=>{i.target===i.currentTarget&&(i.key==="Enter"||i.key===" "?(i.preventDefault(),ve()):(i.key==="ArrowRight"&&E&&!F||i.key==="ArrowLeft"&&E&&F)&&(i.preventDefault(),i.stopPropagation(),n(e.id)))},[ve,E,F,e.id,n]),Ee=T?T(M):Y?null:d("span",{className:l.nodeIcon,children:G==="section"&&H?.section==="components"?d(pt,{size:14}):G==="section"&&H?.section==="webhooks"?d(rr,{size:14}):G==="schema"||G==="component"||G==="object"?d(pt,{size:14}):G==="array"||G==="items"?d(Zt,{size:14}):E?F?d(Yt,{size:14}):d(Ut,{size:14}):Y&&d(pr,{method:Y})}),j=I?I(M):d("span",{className:`${l.nodeLabel} ${E?l.nodeLabelBranch:""} ${xe?l.deprecatedLabel:""}`,children:d(lr,{text:e.name,query:h})}),L=u?u(M):null,ue=[l.nodeRow,E?l.branchControl:l.leafItem,be?l.nodeRowSelected:"",de?l.nodeDragging:"",U&&K==="before"?l.dropIndicatorBefore:"",U&&K==="after"?l.dropIndicatorAfter:"",U&&K==="child"?l.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),Le=R(i=>x(e.id,i),[e.id,x]),Z=me("div",{ref:Le,className:ue,style:{paddingLeft:`${Math.min(p,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":E?F:void 0,"aria-label":Y?`${ze(Y)} ${e.name}`:e.name,"aria-selected":be,"aria-level":p+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":w&&C?de:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(e.id),onClick:ve,onKeyDown:pe,onContextMenu:y?i=>oe(e,i):void 0,onDragOver:w?i=>J(e,i):void 0,onDragLeave:w?()=>X(e):void 0,onDrop:w?i=>N(e,i):void 0,children:[P&&p>1&&Array.from({length:Math.min(p-1,20)},(i,we)=>d("span",{className:l.indentGuide,style:{left:`${(we+1)*12+11}px`}},`guide-${we}`)),w&&C?d("span",{className:l.dragHandle,style:{left:`${Math.min(p,20)*12+4}px`},draggable:!0,onDragStart:i=>V(e,i),onDragEnd:z,title:ae.dragToReorder,"aria-label":ae.dragToReorder,children:d(ir,{})}):null,E?d(ar,{expanded:F}):d("span",{className:l.expandIconPlaceholder}),Ee,j,He&&d("span",{className:l.requiredDot,title:ae.required}),d("span",{className:l.nodeSuffix,children:L}),y&&d("button",{type:"button",className:[l.moreButton,k===e.id?l.moreButtonActive:""].filter(Boolean).join(" "),onClick:i=>ne(e,i),title:ae.moreActions,"aria-label":ae.moreActionsFor.split("{{name}}").join(e.name),"aria-haspopup":"menu","aria-expanded":k===e.id,tabIndex:-1,children:d(sr,{})})]}),Pe=v?v(M,Z):Z;return d(De,{children:Pe})}var hr=$t(fr,ur),gr=jt(function(e,p){let{nodes:n,onSelect:s,onExpandedChange:x,defaultExpandedIds:h,defaultExpandDepth:P=1,searchable:T=!1,searchPlaceholder:I,labels:u,showExpandAll:v=!1,showRefresh:w=!1,onRefresh:g,toolbar:C,searchRowExtra:V,renderNode:J,renderIcon:X,renderLabel:N,renderSuffix:z,className:y,style:k,size:oe="sm",variant:ne="default",showIndentGuides:ae=!0,maxHeight:F,rootRef:be,draggable:le=!1,dragGroupKey:E,onReorder:Ce,onMove:de,canDrag:U,canDrop:K,contextMenuItems:H,onContextMenuOpen:Y,onPatch:xe,theme:He,virtualized:G="auto"}=e,M=he(()=>({...We,...u}),[u]),ve=I??M.search,[pe,Ee]=ge(null),[j,L]=ge(W),[ue,Le]=ge(null),Z=Ue(null),Pe=Qt(),i=he(()=>lt(n),[n]),[we,Ae]=ge({top:0,height:400}),[Te,ye]=ge(null),[Ge,Ye]=ge(null),b=Ke(n,{defaultExpandedIds:h,defaultExpandDepth:P,onExpandedChange:x}),D=Qe(n),Xe=D.isSearching?b.allBranchIds:D.expandedBeforeSearch??b.expandedIds,Ie=he(()=>new Set(Xe),[Xe]),S=he(()=>{let t=[],o=new Set,a=D.filteredNodes.map((c,f,m)=>({node:c,depth:0,parentId:null,positionInSet:f+1,setSize:m.length})).reverse();for(;a.length;){let c=a.pop();if(!o.has(c.node.id)&&(o.add(c.node.id),t.push(c),Ie.has(c.node.id))){let f=c.node.children??[];for(let m=f.length-1;m>=0;m--)a.push({node:f[m],depth:c.depth+1,parentId:c.node.id,positionInSet:m+1,setSize:f.length})}}return t},[D.filteredNodes,Ie]),Me=he(()=>new Map(S.map((t,o)=>[t.node.id,o])),[S]),ie=oe==="xs"?24:oe==="md"?32:28,ee=G!==!1&&ne!=="doc"&&!J&&(G===!0||S.length>500),fe=ee?Math.max(0,Math.min(Math.floor(we.top/ie)-8,S.length-1)):0,Ne=ee?Math.min(S.length,fe+Math.ceil(we.height/ie)+16):S.length,Ze=S.slice(fe,Ne);Je(()=>{let t=Z.current;if(!t)return;let o=()=>Ae({top:t.scrollTop,height:t.clientHeight||400});o();let a=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return a?.observe(t),()=>a?.disconnect()},[]),Je(()=>{if(!Te)return;let t=Me.get(Te.id);if(t===void 0){ye(null);return}let o=Z.current;if(ee&&o&&(t<fe||t>=Ne)){let c=o.clientHeight||400,f=Math.min(t*ie,Math.max(0,S.length*ie-c));o.scrollTop=f,Ae(m=>({...m,top:o.scrollTop}));return}let a=b.nodeElementRefs.current.get(Te.id);Te.focus&&a?.focus({preventScroll:!0}),a?.scrollIntoView?.({block:"nearest"}),ye(null)},[Te,Me,ee,ie,fe,Ne,S.length,b.nodeElementRefs]);let qe=Ge===null?void 0:Me.get(Ge),ht=qe!==void 0&&qe>=fe&&qe<Ne?Ge:Ze[0]?.node.id,Fe=Ue({query:"",time:0}),gt=t=>{if(!(t.target instanceof HTMLElement)||t.target.getAttribute("role")!=="treeitem")return;let o=Me.get(t.target.dataset.nodeId??"");if(o===void 0)return;let a=S[o],c=o;if(t.key==="ArrowDown")c=Math.min(o+1,S.length-1);else if(t.key==="ArrowUp")c=Math.max(0,o-1);else if(t.key==="Home")c=0;else if(t.key==="End")c=S.length-1;else if(t.key==="ArrowRight"&&a.node.children?.length&&Ie.has(a.node.id))c=Math.min(o+1,S.length-1);else if(t.key==="ArrowLeft"&&(!a.node.children?.length||!Ie.has(a.node.id)))c=Me.get(a.parentId??"")??o;else if(t.key==="ContextMenu"||t.shiftKey&&t.key==="F10"){let m=t.target.getBoundingClientRect();t.preventDefault(),ke(a.node,m.left+24,m.bottom);return}else if(t.key.length===1&&t.key!==" "&&!t.ctrlKey&&!t.metaKey&&!t.altKey){let m=Date.now(),$=m-Fe.current.time<600?Fe.current.query+t.key.toLowerCase():t.key.toLowerCase();Fe.current={query:$,time:m};for(let A=1;A<=S.length;A++){let O=(o+A)%S.length;if(S[O].node.name.toLowerCase().startsWith($)){c=O;break}}}else return;t.preventDefault();let f=S[c].node.id;Ye(f),ye({id:f,focus:!0})};Je(()=>{Z.current&&(Z.current.scrollTop=0),Ae(t=>({...t,top:0}))},[D.deferredQuery]);let mt=R(t=>{Ee(t.id),s?.(t)},[s]),bt=R(t=>{!t.trim()&&D.expandedBeforeSearch&&b.setExpandedIds(D.expandedBeforeSearch),D.handleQueryChange(t,b.expandedIds)},[b.expandedIds,D]),Se=R(t=>!le||t.metadata?.kind==="section"?!1:U?U(t):!0,[U,le]),Re=R((t,o,a)=>{if(t.id===o.id||!Se(t)||i.path(o.id)?.ancestorIds.includes(t.id))return!1;if(E){let f=A=>{let O=i.path(A)?.nodes??[];for(let Q=O.length-1;Q>=0;Q--){let q=O[Q]?.metadata;if(q&&typeof q=="object"&&Object.prototype.hasOwnProperty.call(q,E))return q[E]}},m=f(t.id),$=f(o.id);if(m!==void 0&&$!==void 0&&m!==$)return!1}return!K||K(t,o,a)},[Se,K,E,i]),xt=R((t,o)=>{if(!Se(t)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",t.id),L({draggedId:t.id,dragOverId:null,dragOverPosition:null})},[Se]),vt=R((t,o)=>{if(!j.draggedId||j.draggedId===t.id)return;o.dataTransfer.dropEffect="none";let a=i.byId.get(j.draggedId)?.node;if(!a){L(B=>B.dragOverId===null?B:{...B,dragOverId:null,dragOverPosition:null});return}let c=o.currentTarget.getBoundingClientRect(),f=(o.clientY-c.top)/c.height,m=(t.children?.length??0)>0,$=f<.5?"before":"after",A,O;f<.25?(A=["before","after"],O=1):f>.75?(A=["after","before"],O=1):(A=[$],O=0);let Q=K?Re(a,t,"child"):!1;(m||Q)&&A.splice(O,0,"child");let q=A.find(B=>Re(a,t,B));if(!q){L(B=>B.dragOverId===null?B:{...B,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",L(B=>B.dragOverId===t.id&&B.dragOverPosition===q?B:{...B,dragOverId:t.id,dragOverPosition:q})},[Re,K,j.draggedId,i]),wt=R(t=>{L(o=>o.dragOverId!==t.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),Tt=R((t,o)=>{o.preventDefault();let a=j.draggedId,c=j.dragOverPosition;if(!a||!c||a===t.id||j.dragOverId!==t.id){L(W);return}let f=i.byId.get(a)?.node;if(!f||!Re(f,t,c)){L(W);return}if(c==="child"){let se=i.path(a)?.target;if(!se){L(W);return}let tt=$e(n,a,t.id);tt&&de?.(tt,se,t.id),L(W);return}let m=i.path(t.id);if(!m){L(W);return}let $=m.parent?.children??n,A=$.findIndex(_=>_.id===t.id);if(A===-1){L(W);return}let O=c==="before"?A:A+1,Q=i.path(a),q=m.parent?.id??null;if((Q?.parent?.id??null)!==q){let _=Q?.target,se=$e(n,a,q,O);se&&_&&de?.(se,_,q),L(W);return}if(Q&&Q.parent===m.parent){let _=$.findIndex(se=>se.id===a);_!==-1&&_<O&&(O-=1)}let te=nt(n,a,O);if(te&&te.fromIndex!==te.toIndex&&(Ce?.(te),xe)){let _=cr(te.moved,te.fromIndex,te.toIndex,$);_.length>0&&xe(_,{node:te.moved,type:"reorder"})}L(W)},[j,n,i,Re,de,xe,Ce]),yt=R(()=>{L(W)},[]),ke=R((t,o,a)=>{if(H){let c=H(t);if(c.length===0)return;let f=b.nodeElementRefs.current.get(t.id);f&&Le({x:o,y:a,node:t,items:c,anchor:f,ariaLabel:M.contextMenuFor.split("{{name}}").join(t.name),confirmLabel:M.confirmAction});return}Y?.({node:t,x:o,y:a})},[H,Y,b.nodeElementRefs,M]),It=R(()=>{Le(null)},[]),Mt=R((t,o)=>{o.preventDefault(),ke(t,o.clientX,o.clientY)},[ke]),Nt=R((t,o)=>{o.stopPropagation();let a=o.currentTarget.getBoundingClientRect();ke(t,a.left,a.bottom+4)},[ke]),et=R(t=>{let o=i.path(t);if(!o)return;let a=o.ancestorIds;b.setExpandedIds([...new Set([...b.expandedIds,...a])]),D.clearSearch(),ye({id:t,focus:!1})},[b,i,D.clearSearch]);Kt(p,()=>({expandAll:b.expandAll,collapseAll:b.collapseAll,expandToDepth:b.expandToDepth,getExpandedIds:()=>b.expandedIds,getSelectedNode:()=>pe?i.path(pe)?.target:void 0,scrollToNode:et,locateNode:t=>{let o=[...n],a=new Set;for(let c=0;c<o.length;c++){let f=o[c];if(!(!f||a.has(f))){if(a.add(f),t(f)){let m=i.path(f.id);return m&&b.setExpandedIds([...new Set([...b.expandedIds,...m.ancestorIds])]),D.clearSearch(),Ee(f.id),ye({id:f.id,focus:!1}),f}if(f.children?.length)for(let m of f.children)o.push(m)}}}}),[b,et,pe,n,i,D.clearSearch]);let St=he(()=>({...k,...F!==void 0?{maxHeight:F}:{}}),[k,F]),Rt=[l.root,ne!=="default"?`pde-tree-variant-${ne}`:"",y].filter(Boolean).join(" "),kt=re(mt),Dt=re(xt),Ct=re(vt),Et=re(wt),Lt=re(Tt),Pt=re(yt),At=re(Mt),Ot=re(Nt);return me("div",{ref:be,className:Rt,style:St,"data-size":oe,"data-theme":He,children:[C&&d("div",{className:l.toolbar,children:C}),(T||v||w||V)&&me("div",{className:l.searchRow,children:[T&&me("div",{className:l.searchInputWrap,children:[d("span",{className:l.searchIcon,children:d(dr,{})}),d("input",{className:l.searchInput,type:"search","aria-controls":Pe,placeholder:ve,value:D.query,onChange:t=>bt(t.target.value),"aria-label":M.searchTree})]}),V,v&&d("button",{type:"button",className:l.iconButton,onClick:b.isAllExpanded?b.collapseAll:b.expandAll,title:b.isAllExpanded?M.collapseAll:M.expandAll,"aria-label":b.isAllExpanded?M.collapseAll:M.expandAll,children:b.isAllExpanded?d(nr,{size:16,"aria-hidden":"true"}):d(or,{size:16,"aria-hidden":"true"})}),w&&d("button",{type:"button",className:l.iconButton,onClick:g,title:M.refresh,"aria-label":M.refresh,children:d(er,{size:14,"aria-hidden":"true"})})]}),d("div",{ref:Z,className:l.treeContainer,"data-virtualized":ee||void 0,onScroll:t=>{ee&&Ae({top:t.currentTarget.scrollTop,height:t.currentTarget.clientHeight||400})},id:Pe,role:"tree",onKeyDown:gt,"aria-label":M.treeNavigation,children:D.filteredNodes.length===0?d("div",{className:l.emptyState,children:D.isSearching?M.noResults:M.noItems}):me(De,{children:[ee&&d("div",{role:"presentation",style:{height:fe*ie}}),Ze.map(({node:t,depth:o,positionInSet:a,setSize:c})=>d(hr,{node:t,depth:o,positionInSet:a,setSize:c,isFocused:t.id===ht,onFocusNode:Ye,isExpanded:Ie.has(t.id),isSelected:pe===t.id,onToggle:b.toggleNode,onSelect:kt,onNodeRef:b.setNodeElementRef,searchQuery:D.deferredQuery,showIndentGuides:ae,renderIcon:X,renderLabel:N,renderSuffix:z,renderNode:J,draggable:le,dragState:j,canDragNode:Se(t),onDragStart:Dt,onDragOver:Ct,onDragLeave:Et,onDrop:Lt,onDragEnd:Pt,showContextMenuButton:!!(H||Y),activeMenuNodeId:ue?.node.id??null,onContextMenu:At,onMoreClick:Ot,labels:M},t.id)),ee&&d("div",{role:"presentation",style:{height:(S.length-Ne)*ie}})]})}),ue&&d(dt,{state:ue,onClose:It},ue.node.id)]})});export{We as DEFAULT_TREE_LABELS,Ve as METHOD_LABEL_MAP,gr as Tree,ze as getMethodLabel,Ke as useTreeExpansion,Qe as useTreeSearch};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerduck/tree",
3
- "version": "0.7.19",
3
+ "version": "0.7.21",
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",
@@ -40,7 +40,6 @@
40
40
  ],
41
41
  "scripts": {
42
42
  "build": "tsup",
43
- "postbuild": "ln -sf /Users/electron/powerduck-react/node_modules/react node_modules/react && ln -sf /Users/electron/powerduck-react/node_modules/react-dom node_modules/react-dom",
44
43
  "test": "vitest run",
45
44
  "test:watch": "vitest",
46
45
  "typecheck": "tsc --noEmit",