modviz 0.1.2

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.
Files changed (109) hide show
  1. package/README.md +261 -0
  2. package/dist/client/_shell.html +0 -0
  3. package/dist/client/android-chrome-192x192.png +0 -0
  4. package/dist/client/android-chrome-512x512.png +0 -0
  5. package/dist/client/apple-touch-icon.png +0 -0
  6. package/dist/client/assets/app-Sjrldkrg.css +2 -0
  7. package/dist/client/assets/button-aOWckyNs.js +1 -0
  8. package/dist/client/assets/check-C0EQe2S8.js +1 -0
  9. package/dist/client/assets/chevron-down-DrspihmT.js +1 -0
  10. package/dist/client/assets/chevron-right-DIJHr8AN.js +1 -0
  11. package/dist/client/assets/colors-CQoWjU5E.js +1 -0
  12. package/dist/client/assets/command-kkF7_wdz.js +45 -0
  13. package/dist/client/assets/compare-K6jVFsiI.js +1 -0
  14. package/dist/client/assets/compare-TOnoe1EP.js +2 -0
  15. package/dist/client/assets/configure-DnlSnhtN.js +1 -0
  16. package/dist/client/assets/explorer-C7NclVKg.js +2 -0
  17. package/dist/client/assets/explorer-Xu2X6XXF.js +1 -0
  18. package/dist/client/assets/external-link-B9eNA-li.js +1 -0
  19. package/dist/client/assets/flamegraph-CRVZSAlj.js +13 -0
  20. package/dist/client/assets/floating-ui.dom-DLIT5tPE.js +1 -0
  21. package/dist/client/assets/formatting-CiC0SYI8.js +1 -0
  22. package/dist/client/assets/graph-6Vr74V1k.js +2 -0
  23. package/dist/client/assets/graph-CVzypIGU.js +2 -0
  24. package/dist/client/assets/graph-command-menu-D2MoVT2B.js +4 -0
  25. package/dist/client/assets/graph-command-menu-VWiiW3qy.css +1 -0
  26. package/dist/client/assets/hierarchy-C8xxGb_u.js +2 -0
  27. package/dist/client/assets/hierarchy-iO7d4oSK.js +2 -0
  28. package/dist/client/assets/import-display-D-jRyyjM.js +5 -0
  29. package/dist/client/assets/imports-CPggnrs-.js +2 -0
  30. package/dist/client/assets/imports-CodbPyUJ.js +1 -0
  31. package/dist/client/assets/index-Dj_rhLdR.js +12 -0
  32. package/dist/client/assets/input-BCFMF0aR.js +1 -0
  33. package/dist/client/assets/jsx-runtime-DWSWI4JT.js +1 -0
  34. package/dist/client/assets/lazyRouteComponent-PTSyFp1J.js +1 -0
  35. package/dist/client/assets/loading-state-CyC_hrTF.js +1 -0
  36. package/dist/client/assets/modviz-data-BiRqoDI5.js +1 -0
  37. package/dist/client/assets/modviz-layout-Do93E-IB.js +1 -0
  38. package/dist/client/assets/modviz-sigma-Xl8qHaxK.js +312 -0
  39. package/dist/client/assets/portal-BgAm3V3j.js +1 -0
  40. package/dist/client/assets/routes-DBtN8hrZ.js +1 -0
  41. package/dist/client/assets/schemas-B4zfTepZ.js +39 -0
  42. package/dist/client/assets/search-BYHxNrYn.js +1 -0
  43. package/dist/client/assets/search-params-BaZRBvGI.js +1 -0
  44. package/dist/client/assets/setup-view-j1o0TuZz.js +1 -0
  45. package/dist/client/assets/summary-D703Zh3x.js +1 -0
  46. package/dist/client/assets/tooltip-B1VDU9HG.js +1 -0
  47. package/dist/client/assets/trace-B67CM5s2.js +2 -0
  48. package/dist/client/assets/trace-Bwwdw3AM.js +1 -0
  49. package/dist/client/assets/treemap-BZf2shzY.js +5 -0
  50. package/dist/client/assets/treemap-Csroy8Gy.js +2 -0
  51. package/dist/client/assets/utils-DkkZd0ys.js +1 -0
  52. package/dist/client/favicon-16x16.png +0 -0
  53. package/dist/client/favicon-32x32.png +0 -0
  54. package/dist/client/favicon.ico +0 -0
  55. package/dist/client/favicon.png +0 -0
  56. package/dist/client/site.webmanifest +19 -0
  57. package/dist/mod/cli-options.js +225 -0
  58. package/dist/mod/cli.js +519 -0
  59. package/dist/mod/index.js +3 -0
  60. package/dist/mod/llm-analysis.js +29 -0
  61. package/dist/mod/llm-output.js +742 -0
  62. package/dist/mod/module-graph-plugins.js +60 -0
  63. package/dist/mod/production-server.js +103 -0
  64. package/dist/mod/runtime-host.js +217 -0
  65. package/dist/mod/snapshot-history.js +73 -0
  66. package/dist/mod/types.js +3 -0
  67. package/dist/server/assets/__23tanstack-start-plugin-adapters-3QxJs4a0.js +5 -0
  68. package/dist/server/assets/_tanstack-start-manifest_v-DMytuIue.js +188 -0
  69. package/dist/server/assets/button-Bqnnid5i.js +41 -0
  70. package/dist/server/assets/colors-DhAxrYua.js +100 -0
  71. package/dist/server/assets/command-SdxShIbL.js +138 -0
  72. package/dist/server/assets/compare-BFMiiUsB.js +562 -0
  73. package/dist/server/assets/compare-CpOqTpYu.js +10 -0
  74. package/dist/server/assets/configure-Bvd45DTI.js +288 -0
  75. package/dist/server/assets/explorer-C7dODpSv.js +379 -0
  76. package/dist/server/assets/explorer-CpSb0JTa.js +20 -0
  77. package/dist/server/assets/flamegraph-CdW-VG6I.js +198 -0
  78. package/dist/server/assets/formatting-iDlL4tA-.js +4 -0
  79. package/dist/server/assets/graph-C1G9H5O4.js +438 -0
  80. package/dist/server/assets/graph-DAGFGioS.js +45 -0
  81. package/dist/server/assets/graph-command-menu-BV5GtOWx.js +249 -0
  82. package/dist/server/assets/hierarchy-B4K-Zfn9.js +16 -0
  83. package/dist/server/assets/hierarchy-BGpWSG-f.js +104 -0
  84. package/dist/server/assets/import-display-BVIOWcsm.js +124 -0
  85. package/dist/server/assets/imports-B6JBDl_h.js +379 -0
  86. package/dist/server/assets/imports-BGe5tZJT.js +28 -0
  87. package/dist/server/assets/input-C5r-hBix.js +19 -0
  88. package/dist/server/assets/loading-state-CrvCWTtw.js +23 -0
  89. package/dist/server/assets/modviz-data-CUyTorv0.js +197 -0
  90. package/dist/server/assets/modviz-layout-BAH2ogse.js +253 -0
  91. package/dist/server/assets/modviz-server-DoMlAyFW.js +195 -0
  92. package/dist/server/assets/modviz-sigma-XYxARWqd.js +1441 -0
  93. package/dist/server/assets/rolldown-runtime-rSIU-vHC.js +13 -0
  94. package/dist/server/assets/router-DYJ-zDbU.js +353 -0
  95. package/dist/server/assets/routes-DInCacpY.js +244 -0
  96. package/dist/server/assets/search-params-BNApPgkX.js +26 -0
  97. package/dist/server/assets/setup-view-DjI49Iqr.js +91 -0
  98. package/dist/server/assets/start-Ba3KII43.js +4 -0
  99. package/dist/server/assets/summary-z3lXkLCQ.js +208 -0
  100. package/dist/server/assets/tooltip-Ck0DDfF7.js +24 -0
  101. package/dist/server/assets/trace-ColKOf9g.js +16 -0
  102. package/dist/server/assets/trace-eVs-hIZO.js +578 -0
  103. package/dist/server/assets/treemap-BbZ9M4GF.js +17 -0
  104. package/dist/server/assets/treemap-CrgWFoCF.js +912 -0
  105. package/dist/server/assets/utils-BQZm0uva.js +8 -0
  106. package/dist/server/server.js +5259 -0
  107. package/dist/shared/modviz-compare.js +120 -0
  108. package/dist/shared/modviz-trace.js +244 -0
  109. package/package.json +135 -0
@@ -0,0 +1,4 @@
1
+ import{a as e,n as t,t as n}from"./jsx-runtime-DWSWI4JT.js";import{ct as r,s as i}from"./modviz-data-BiRqoDI5.js";import{t as a}from"./utils-DkkZd0ys.js";import{C as o,O as s,S as c,T as l,_ as u,a as d,b as f,c as p,d as m,f as ee,g as h,h as g,l as _,m as v,n as y,o as b,p as x,r as S,s as C,u as w,v as T,w as E,x as D,y as O}from"./command-kkF7_wdz.js";import{Y as k,a as A,c as j,i as M,l as te,n as ne,o as re,r as N,s as P,t as F}from"./floating-ui.dom-DLIT5tPE.js";import{i as I,t as ie}from"./button-aOWckyNs.js";var{floor:ae,abs:oe,round:se,min:ce,max:le,pow:ue,sign:de}=Math,fe=e=>Number.isNaN(e),pe=e=>fe(e)?0:e,me=(e,t,n)=>ce(le(pe(e),t),n),he=e=>typeof e==`number`?`${e}px`:e;function ge(e){let t=new WeakMap,n,r=new WeakMap,i=e=>n||(n=new e.ResizeObserver(e=>{for(let n of e){r.set(n.target,n);let e=t.get(n.target);if(e)for(let t of e)t(n)}}),n);return{observe:(n,r)=>{let a=t.get(n)||new Set;a.add(r),t.set(n,a);let o=k(n);return i(o).observe(n,e),()=>{let e=t.get(n);e&&(e.delete(r),e.size===0&&(t.delete(n),i(o).unobserve(n)))}},unobserve:e=>{t.delete(e),n?.unobserve(e)}}}var _e=ge({box:`border-box`}),L=e(t()),ve=e(r(),1),R=function(e){return e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e}({});function ye({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&(R.RecursedCheck|R.Recursed|R.Dirty|R.Pending)?a&(R.RecursedCheck|R.Recursed)?a&R.RecursedCheck?!(a&(R.Dirty|R.Pending))&&c(e,i)?(i.flags=a|(R.Recursed|R.Pending),a&=R.Mutable):a=R.None:i.flags=a&~R.Recursed|R.Pending:a=R.None:i.flags=a|R.Pending,a&R.Watching&&t(i),a&R.Mutable){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&R.Dirty)a=!0;else if((c&(R.Mutable|R.Dirty))===(R.Mutable|R.Dirty)){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&(R.Mutable|R.Pending))===(R.Mutable|R.Pending)){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=~R.Pending;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&(R.Pending|R.Dirty))===R.Pending&&(n.flags=r|R.Dirty,(r&(R.Watching|R.RecursedCheck))===R.Watching&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function be(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var z=[],B=0,{link:xe,unlink:Se,propagate:Ce,checkDirty:we,shallowPropagate:Te}=ye({update(e){return e._update()},notify(e){z[H++]=e,e.flags&=~R.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=R.Mutable|R.Dirty,W(e))}}),V=0,H=0,U;function W(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Se(n,e)}function Ee(){for(;V<H;){let e=z[V];z[V++]=void 0,e.notify()}V=0,H=0}function G(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?R.None:R.Mutable,get(){return U!==void 0&&xe(i,U,B),i._snapshot},subscribe(e){let t=be(e),n={current:!1},r=De(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=U,o=t?.compare??Object.is;U=i,++B,i.depsTail=void 0,n&&(i.flags=R.Mutable|R.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(e=>e.get(),t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{U=a,n&&(i.flags&=~R.RecursedCheck),W(i)}}};return n?(i.flags=R.Mutable|R.Dirty,i.get=function(){let e=i.flags;if(e&R.Dirty||e&R.Pending&&we(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Te(e)}}else e&R.Pending&&(i.flags=e&~R.Pending);return U!==void 0&&xe(i,U,B),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Ce(e),Te(e),Ee())}},i}function De(e){let t=()=>{let t=U;U=n,++B,n.depsTail=void 0,n.flags=R.Watching|R.RecursedCheck;try{return e()}finally{U=t,n.flags&=~R.RecursedCheck,W(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:R.Watching|R.RecursedCheck,notify(){let e=this.flags;e&R.Dirty||e&R.Pending&&we(this.deps,this)?t():this.flags=R.Watching},stop(){this.flags=R.None,this.depsTail=void 0,W(this)}};return t(),n}typeof Symbol==`function`&&Symbol.observable;function Oe(e,t){return e===t}function ke(e){return e}function Ae(e,t){let n=(0,L.useRef)(void 0);return r=>{let i=e(r);return n.current&&t(n.current,i)?n.current:n.current=i}}function je(e,t=ke,n=Oe){let r=Ae(t,n);return(0,L.useSyncExternalStore)((0,L.useCallback)(t=>e.subscribe(t).unsubscribe,[e]),()=>r(e.get()),()=>r(e.get()))}function Me(e,t=ke,n=Oe){return je(e,t,n)}var Ne=G(null),Pe=G(!1),Fe=G(null),Ie=G(null),Le=G([]);function K(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o;n.key&&n.debug?.call(n)&&(o=Date.now());let s=e();if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug?.call(n)&&(c=Date.now()),i=t(...s),n.key&&n.debug?.call(n)){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
2
+ font-size: .6rem;
3
+ font-weight: bold;
4
+ color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return o.updateDeps=e=>{r=e},o}function Re(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var ze=(e,t)=>Math.abs(e-t)<1.01,Be=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},Ve=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},He=e=>e,Ue=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},We=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(Ve(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(Ve(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},Ge={passive:!0},Ke=typeof window>`u`?!0:`onscrollend`in window,qe=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=0,a=e.options.useScrollendEvent&&Ke?()=>void 0:Be(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),o=r=>()=>{let{horizontal:o,isRtl:s}=e.options;i=o?n.scrollLeft*(s&&-1||1):n.scrollTop,a(),t(i,r)},s=o(!0),c=o(!1);n.addEventListener(`scroll`,s,Ge);let l=e.options.useScrollendEvent&&Ke;return l&&n.addEventListener(`scrollend`,c,Ge),()=>{n.removeEventListener(`scroll`,s),l&&n.removeEventListener(`scrollend`,c)}},Je=(e,t,n)=>{if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},Ye=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},Xe=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{n===void 0&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:He,rangeExtractor:Ue,onChange:()=>{},measureElement:Je,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=K(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=K(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,t,n,r,i,a)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a}),{key:!1}),this.getMeasurements=K(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a},o)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let c=this.measurementsCache.slice(0,s),l=Array(a).fill(void 0);for(let e=0;e<s;e++){let t=c[e];t&&(l[t.lane]=e)}for(let i=s;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,u;if(a!==void 0&&this.options.lanes>1){s=a;let e=l[s],r=e===void 0?void 0:c[e];u=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?c[i-1]:this.getFurthestMeasurement(c,i);u=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(i,s)}let d=o.get(e),f=typeof d==`number`?d:this.options.estimateSize(i),p=u+f;c[i]={index:i,start:u,size:f,end:p,key:e,lane:s},l[s]=i}return this.measurementsCache=c,c},{key:!1,debug:()=>this.options.debug}),this.calculateRange=K(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?Qe({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=K(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&(this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this))&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=K(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length!==0)return Re(t[Ze(0,t.length-1,e=>Re(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t);this.scrollState={index:null,align:t,behavior:n,startedAt:this.now(),lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e;this.scrollState={index:null,align:`start`,behavior:t,startedAt:this.now(),lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=e[e.length-1]?.end??0;else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&ze(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,n&&(this.scrollState.lastTargetOffset=t,this.scrollState.behavior=`auto`,this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}));this.scheduleScrollReconcile()}},Ze=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function Qe({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){let i=e.length-1,a=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:i};let o=Ze(0,i,a,n),s=o;if(r===1)for(;s<i&&e[s].end<n+t;)s++;else if(r>1){let a=Array(r).fill(0);for(;s<i&&a.some(e=>e<n+t);){let t=e[s];a[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(i,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var $e=typeof document<`u`?L.useLayoutEffect:L.useEffect;function et({useFlushSync:e=!0,...t}){let n=L.useReducer(()=>({}),{})[1],r={...t,onChange:(r,i)=>{var a;e&&i?(0,ve.flushSync)(n):n(),(a=t.onChange)==null||a.call(t,r,i)}},[i]=L.useState(()=>new Xe(r));return i.setOptions(r),$e(()=>i._didMount(),[]),$e(()=>i._willUpdate()),i}function tt(e){return et({observeElementRect:We,observeElementOffset:qe,scrollToFn:Ye,...e})}var q=typeof document<`u`?L.useLayoutEffect:function(){};function J(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!J(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!J(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function nt(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rt(e,t){let n=nt(e);return Math.round(t*n)/n}function it(e){let t=L.useRef(e);return q(()=>{t.current=e}),t}function at(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=L.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=L.useState(r);J(f,r)||p(r);let[m,ee]=L.useState(null),[h,g]=L.useState(null),_=L.useCallback(e=>{e!==x.current&&(x.current=e,ee(e))},[]),v=L.useCallback(e=>{e!==S.current&&(S.current=e,g(e))},[]),y=a||m,b=o||h,x=L.useRef(null),S=L.useRef(null),C=L.useRef(u),w=c!=null,T=it(c),E=it(i),D=it(l),O=L.useCallback(()=>{if(!x.current||!S.current)return;let e={placement:t,strategy:n,middleware:f};E.current&&(e.platform=E.current),N(x.current,S.current,e).then(e=>{let t={...e,isPositioned:D.current!==!1};k.current&&!J(C.current,t)&&(C.current=t,ve.flushSync(()=>{d(t)}))})},[f,t,n,E,D]);q(()=>{l===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let k=L.useRef(!1);q(()=>(k.current=!0,()=>{k.current=!1}),[]),q(()=>{if(y&&(x.current=y),b&&(S.current=b),y&&b){if(T.current)return T.current(y,b,O);O()}},[y,b,O,T,w]);let A=L.useMemo(()=>({reference:x,floating:S,setReference:_,setFloating:v}),[_,v]),j=L.useMemo(()=>({reference:y,floating:b}),[y,b]),M=L.useMemo(()=>{let e={position:n,left:0,top:0};if(!j.floating)return e;let t=rt(j.floating,u.x),r=rt(j.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...nt(j.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,j.floating,u.x,u.y]);return L.useMemo(()=>({...u,update:O,refs:A,elements:j,floatingStyles:M}),[u,O,A,j,M])}var ot=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:F({element:r.current,padding:i}).fn(n):r?F({element:r,padding:i}).fn(n):{}}}},st=(e,t)=>{let n=P(e);return{name:n.name,fn:n.fn,options:[e,t]}},ct=(e,t)=>{let n=j(e);return{name:n.name,fn:n.fn,options:[e,t]}},lt=(e,t)=>({fn:re(e).fn,options:[e,t]}),ut=(e,t)=>{let n=M(e);return{name:n.name,fn:n.fn,options:[e,t]}},dt=(e,t)=>{let n=te(e);return{name:n.name,fn:n.fn,options:[e,t]}},ft=(e,t)=>{let n=A(e);return{name:n.name,fn:n.fn,options:[e,t]}},pt=(e,t)=>{let n=ot(e);return{name:n.name,fn:n.fn,options:[e,t]}},Y=n(),mt=`Arrow`,ht=L.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,Y.jsx)(O.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,Y.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});ht.displayName=mt;var gt=ht;function _t(e){let[t,n]=L.useState(void 0);return o(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var vt=`Popper`,[yt,bt]=E(vt),[xt,St]=yt(vt),Ct=e=>{let{__scopePopper:t,children:n}=e,[r,i]=L.useState(null);return(0,Y.jsx)(xt,{scope:t,anchor:r,onAnchorChange:i,children:n})};Ct.displayName=vt;var wt=`PopperAnchor`,Tt=L.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=St(wt,n),o=L.useRef(null),s=I(t,o),c=L.useRef(null);return L.useEffect(()=>{let e=c.current;c.current=r?.current||o.current,e!==c.current&&a.onAnchorChange(c.current)}),r?null:(0,Y.jsx)(O.div,{...i,ref:s})});Tt.displayName=wt;var Et=`PopperContent`,[Dt,Ot]=yt(Et),kt=L.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:d=0,sticky:f=`partial`,hideWhenDetached:p=!1,updatePositionStrategy:m=`optimized`,onPlaced:ee,...h}=e,g=St(Et,n),[_,v]=L.useState(null),y=I(t,e=>v(e)),[b,x]=L.useState(null),S=_t(b),C=S?.width??0,w=S?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof d==`number`?d:{top:0,right:0,bottom:0,left:0,...d},k=Array.isArray(u)?u:[u],A=k.length>0,j={padding:D,boundary:k.filter(Nt),altBoundary:A},{refs:M,floatingStyles:te,placement:re,isPositioned:N,middlewareData:P}=at({strategy:`fixed`,placement:E,whileElementsMounted:(...e)=>ne(...e,{animationFrame:m===`always`}),elements:{reference:g.anchor},middleware:[st({mainAxis:i+w,alignmentAxis:s}),l&&ct({mainAxis:!0,crossAxis:!1,limiter:f===`partial`?lt():void 0,...j}),l&&ut({...j}),dt({...j,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),b&&pt({element:b,padding:c}),Pt({arrowWidth:C,arrowHeight:w}),p&&ft({strategy:`referenceHidden`,...j})]}),[F,ie]=Ft(re),ae=T(ee);o(()=>{N&&ae?.()},[N,ae]);let oe=P.arrow?.x,se=P.arrow?.y,ce=P.arrow?.centerOffset!==0,[le,ue]=L.useState();return o(()=>{_&&ue(window.getComputedStyle(_).zIndex)},[_]),(0,Y.jsx)(`div`,{ref:M.setFloating,"data-radix-popper-content-wrapper":``,style:{...te,transform:N?te.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:le,"--radix-popper-transform-origin":[P.transformOrigin?.x,P.transformOrigin?.y].join(` `),...P.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,Y.jsx)(Dt,{scope:n,placedSide:F,onArrowChange:x,arrowX:oe,arrowY:se,shouldHideArrow:ce,children:(0,Y.jsx)(O.div,{"data-side":F,"data-align":ie,...h,ref:y,style:{...h.style,animation:N?void 0:`none`}})})})});kt.displayName=Et;var At=`PopperArrow`,jt={top:`bottom`,right:`left`,bottom:`top`,left:`right`},Mt=L.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=Ot(At,n),a=jt[i.placedSide];return(0,Y.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,Y.jsx)(gt,{...r,ref:t,style:{...r.style,display:`block`}})})});Mt.displayName=At;function Nt(e){return e!==null}var Pt=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=Ft(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function Ft(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var It=Ct,Lt=Tt,Rt=kt,zt=Mt,X=`Popover`,[Bt,Vt]=E(X,[bt]),Z=bt(),[Ht,Q]=Bt(X),Ut=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=Z(t),l=L.useRef(null),[u,d]=L.useState(!1),[f,p]=D({prop:r,defaultProp:i??!1,onChange:a,caller:X});return(0,Y.jsx)(It,{...s,children:(0,Y.jsx)(Ht,{scope:t,contentId:c(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:L.useCallback(()=>p(e=>!e),[p]),hasCustomAnchor:u,onCustomAnchorAdd:L.useCallback(()=>d(!0),[]),onCustomAnchorRemove:L.useCallback(()=>d(!1),[]),modal:o,children:n})})};Ut.displayName=X;var Wt=`PopoverAnchor`,Gt=L.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=Q(Wt,n),a=Z(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return L.useEffect(()=>(o(),()=>s()),[o,s]),(0,Y.jsx)(Lt,{...a,...r,ref:t})});Gt.displayName=Wt;var Kt=`PopoverTrigger`,qt=L.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=Q(Kt,n),a=Z(n),o=I(t,i.triggerRef),s=(0,Y.jsx)(O.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":cn(i.open),...r,ref:o,onClick:l(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,Y.jsx)(Lt,{asChild:!0,...a,children:s})});qt.displayName=Kt;var Jt=`PopoverPortal`,[Yt,Xt]=Bt(Jt,{forceMount:void 0}),Zt=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=Q(Jt,t);return(0,Y.jsx)(Yt,{scope:t,forceMount:n,children:(0,Y.jsx)(v,{present:n||a.open,children:(0,Y.jsx)(g,{asChild:!0,container:i,children:r})})})};Zt.displayName=Jt;var $=`PopoverContent`,Qt=L.forwardRef((e,t)=>{let n=Xt($,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=Q($,e.__scopePopover);return(0,Y.jsx)(v,{present:r||a.open,children:a.modal?(0,Y.jsx)(en,{...i,ref:t}):(0,Y.jsx)(tn,{...i,ref:t})})});Qt.displayName=$;var $t=f(`PopoverContent.RemoveScroll`),en=L.forwardRef((e,t)=>{let n=Q($,e.__scopePopover),r=L.useRef(null),i=I(t,r),a=L.useRef(!1);return L.useEffect(()=>{let e=r.current;if(e)return m(e)},[]),(0,Y.jsx)(ee,{as:$t,allowPinchZoom:!0,children:(0,Y.jsx)(nn,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:l(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:l(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.current=t.button===2||n},{checkForDefaultPrevented:!1}),onFocusOutside:l(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),tn=L.forwardRef((e,t)=>{let n=Q($,e.__scopePopover),r=L.useRef(!1),i=L.useRef(!1);return(0,Y.jsx)(nn,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),nn=L.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:d,...f}=e,p=Q($,n),m=Z(n);return x(),(0,Y.jsx)(h,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,Y.jsx)(u,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>p.onOpenChange(!1),children:(0,Y.jsx)(Rt,{"data-state":cn(p.open),role:`dialog`,id:p.contentId,...m,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),rn=`PopoverClose`,an=L.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=Q(rn,n);return(0,Y.jsx)(O.button,{type:`button`,...r,ref:t,onClick:l(e.onClick,()=>i.onOpenChange(!1))})});an.displayName=rn;var on=`PopoverArrow`,sn=L.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=Z(n);return(0,Y.jsx)(zt,{...i,...r,ref:t})});sn.displayName=on;function cn(e){return e?`open`:`closed`}var ln=Ut,un=qt,dn=Zt,fn=Qt;function pn({...e}){return(0,Y.jsx)(ln,{"data-slot":`popover`,...e})}function mn({...e}){return(0,Y.jsx)(un,{"data-slot":`popover-trigger`,...e})}function hn({className:e,align:t=`center`,sideOffset:n=4,...r}){return(0,Y.jsx)(dn,{children:(0,Y.jsx)(fn,{"data-slot":`popover-content`,align:t,sideOffset:n,className:a(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden`,e),...r})})}var gn=e=>[e.name,e.package?.name,e.cluster,e.path,...e.path.split(`/`)].filter(Boolean),_n=(e,t)=>{let n=t.trim(),r=Array.from(e.entries()).map(([e,t])=>{let r=t.map(e=>{let t=gn(e);return{keywords:t,node:e,score:n?_(e.path,n,t):1}}).filter(e=>e.score>0);return n&&r.sort((e,t)=>t.score-e.score||e.node.path.localeCompare(t.node.path)),{cluster:e,filteredNodes:r,maxScore:Math.max(...r.map(e=>e.score),0)}}).filter(e=>e.filteredNodes.length>0);return n&&r.sort((e,t)=>t.maxScore-e.maxScore||e.cluster.localeCompare(t.cluster)),r.flatMap(({cluster:e,filteredNodes:t})=>t.map((n,r)=>({cluster:e,keywords:n.keywords,node:n.node,showClusterHeading:r===0,showSeparator:r===t.length-1})))},vn=({event:e,filteredRows:t,selectedValue:n})=>{if(t.length===0)return;let r=t.findIndex(e=>e.node.path===n);switch(e.key){case`ArrowDown`:return t[r>=0?(r+1)%t.length:0]?.node.path;case`ArrowUp`:return t[r>=0?(r-1+t.length)%t.length:t.length-1]?.node.path;case`Home`:return t[0]?.node.path;case`End`:return t.at(-1)?.node.path;default:return}};function yn(e){let t=Sn(e.nodes),[n,r]=(0,L.useState)(``),[i,a]=(0,L.useState)(void 0),o=(0,L.useRef)(null),s=(0,L.useMemo)(()=>_n(t,n),[t,n]),c=(0,L.useMemo)(()=>s.findIndex(e=>e.node.path===i),[s,i]),l=tt({count:s.length,estimateSize:()=>68,getItemKey:e=>s[e]?.node.path??e,getScrollElement:()=>o.current,overscan:10});(0,L.useEffect)(()=>{if(s.length===0){a(void 0),e.onHighlight(void 0);return}i&&s.some(e=>e.node.path===i)||a(s[0]?.node.path)},[s,e.onHighlight,i]),(0,L.useEffect)(()=>{c<0||l.scrollToIndex(c,{align:`auto`})},[l,c]);let u=l.getVirtualItems();return(0,Y.jsxs)(w,{loop:!0,shouldFilter:!1,value:i,onValueChange:a,children:[(0,Y.jsx)(d,{placeholder:`Type a command or search...`,value:n,onValueChange:r,onKeyDown:t=>{let n=vn({event:t,filteredRows:s,selectedValue:i});n&&(t.preventDefault(),a(n),e.onHighlight(n))}}),(0,Y.jsxs)(C,{ref:o,children:[(0,Y.jsx)(S,{children:`No results found.`}),s.length===0?null:(0,Y.jsx)(`div`,{className:`relative`,style:{height:`${l.getTotalSize()}px`},children:u.map(t=>{let n=s[t.index];return n?(0,Y.jsxs)(`div`,{"data-index":t.index,ref:l.measureElement,className:`absolute left-0 top-0 w-full`,style:{transform:`translateY(${t.start}px)`},children:[n.showClusterHeading?(0,Y.jsx)(`div`,{className:`text-muted-foreground px-2 py-1.5 text-xs font-medium`,children:n.cluster}):null,(0,Y.jsx)(b,{value:n.node.path,keywords:n.keywords,onMouseEnter:()=>{a(n.node.path),e.onHighlight(n.node.path)},onSelect:t=>{e.onSelect(t),e.onClose?.()},children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:n.node.name}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-slate-500`,children:n.node.path})]})}),n.showSeparator?(0,Y.jsx)(p,{alwaysRender:!0}):null]},t.key):null})})]})]})}function bn(e){let[t,n]=(0,L.useState)(!1);return(0,L.useEffect)(()=>{let e=e=>{e.key===`k`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),n(e=>!e))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),t?(0,Y.jsx)(y,{open:t,onOpenChange:n,children:(0,Y.jsx)(yn,{...e,onClose:()=>n(!1)})}):null}function xn(e){let[t,n]=(0,L.useState)(!1),r=Me(Ne);return(0,Y.jsxs)(pn,{open:t,onOpenChange:n,children:[(0,Y.jsx)(mn,{asChild:!0,children:(0,Y.jsxs)(ie,{variant:`outline`,role:`combobox`,"aria-expanded":t,className:`max-w-100 w-full justify-between`,children:[e.nodes.find(e=>e.path===r)?.name??`Find or change current node...`,(0,Y.jsx)(s,{className:`opacity-50`})]})}),(0,Y.jsx)(hn,{className:`w-full p-0`,children:(0,Y.jsx)(yn,{...e,onClose:()=>n(!1)})})]})}var Sn=e=>(0,L.useMemo)(()=>{let t=new Map;e.forEach(e=>{let n=e.path.includes(`node_modules`)?`node_modules/${i(e)}`:e.cluster??e.package?.name??`workspace`,r=t.get(n)??[];r.push(e),t.set(n,r)});for(let[,e]of t)e.sort((e,t)=>e.path.localeCompare(t.path));return new Map(Array.from(t.entries()).sort((e,t)=>e[0].localeCompare(t[0])))},[e]);export{mn as a,Ie as c,Me as d,_e as f,hn as i,Pe as l,he as m,bn as n,Ne as o,me as p,pn as r,Fe as s,xn as t,Le as u};
@@ -0,0 +1 @@
1
+ :root{--sigma-background-color:#fff;--sigma-controls-background-color:#fff;--sigma-controls-background-color-hover:#0003;--sigma-controls-border-color:#0003;--sigma-controls-color:#000;--sigma-controls-zindex:100;--sigma-controls-margin:5px;--sigma-controls-size:30px}div.react-sigma{background:var(--sigma-background-color);width:100%;height:100%;position:relative}div.sigma-container{width:100%;height:100%}.react-sigma-controls{z-index:var(--sigma-controls-zindex);border:2px solid var(--sigma-controls-border-color);color:var(--sigma-controls-color);background-color:var(--sigma-controls-background-color);border-radius:4px;position:absolute}.react-sigma-controls.bottom-right{bottom:var(--sigma-controls-margin);right:var(--sigma-controls-margin)}.react-sigma-controls.bottom-left{bottom:var(--sigma-controls-margin);left:var(--sigma-controls-margin)}.react-sigma-controls.top-right{top:var(--sigma-controls-margin);right:var(--sigma-controls-margin)}.react-sigma-controls.top-left{top:var(--sigma-controls-margin);left:var(--sigma-controls-margin)}.react-sigma-controls:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.react-sigma-controls:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.react-sigma-control{width:var(--sigma-controls-size);height:var(--sigma-controls-size);line-height:var(--sigma-controls-size);background-color:var(--sigma-controls-background-color);border-bottom:1px solid var(--sigma-controls-border-color)}.react-sigma-control:last-child{border-bottom:none}.react-sigma-control>*{box-sizing:border-box}.react-sigma-control>button{width:var(--sigma-controls-size);height:var(--sigma-controls-size);line-height:var(--sigma-controls-size);background-position:50%;background-repeat:no-repeat;background-size:50%;background-color:var(--sigma-controls-background-color);clip:rect(0,0,0,0);border:none;margin:0;padding:0;display:block}.react-sigma-control>button:hover{background-color:var(--sigma-controls-background-color-hover)}.react-sigma-search{background-color:var(--sigma-controls-background-color)}.react-sigma-search label{visibility:hidden}.react-sigma-search input{color:var(--sigma-controls-color);background-color:var(--sigma-controls-background-color);width:100%;padding:var(--sigma-controls-margin);box-sizing:border-box;border:none;margin:0;font-size:1em}:root{--sigma-grey-color:#ccc}.react-sigma .option.hoverable{cursor:pointer!important}.react-sigma .text-ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.react-sigma .react-select__clear-indicator{cursor:pointer!important}.react-sigma .text-muted{color:var(--sigma-grey-color)}.react-sigma .text-italic{font-style:italic}.react-sigma .text-center{text-align:center}.react-sigma .graph-search{min-width:250px}.react-sigma .graph-search .option{padding:2px 8px}.react-sigma .graph-search .dropdown-indicator{padding:4px;font-size:1.25em}.react-sigma .graph-search .option.selected{background-color:var(--sigma-grey-color)}.react-sigma .node .render{background-color:var(--sigma-grey-color);border-radius:1em;width:1em;height:1em;margin-right:8px;display:inline-block;position:relative}.react-sigma .node{flex-direction:row;align-items:center;display:flex}.react-sigma .node .render{margin-right:0 .25em;flex-grow:0;flex-shrink:0}.react-sigma .node .label{flex-grow:1;flex-shrink:1}.react-sigma .edge{flex-flow:column;flex-grow:0;flex-shrink:0;align-items:flex-start;display:flex}.react-sigma .edge .node{font-size:.7em}.react-sigma .edge .body{flex-direction:row;flex-grow:1;flex-shrink:1;min-height:.6em;display:flex}.react-sigma .edge .body .render{flex-direction:column;margin:0 2px;display:flex}.react-sigma .edge .body .render .dash,.react-sigma .edge .body .render .dotted{border:2px solid #ccc;flex-grow:1;flex-shrink:1;width:0;margin:0 2px;display:inline-block}.react-sigma .edge .body .render .dotted{border-style:dotted}.react-sigma .edge .body .render .arrow{border-top:.6em solid red;border-left:.3em solid #0000;border-right:.3em solid #0000;flex-grow:0;flex-shrink:0;width:0;height:0}.react-sigma .edge .body .label{text-align:center;flex-grow:1;flex-shrink:1}
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flamegraph-CRVZSAlj.js","assets/jsx-runtime-DWSWI4JT.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,n as t,t as n}from"./jsx-runtime-DWSWI4JT.js";import{d as r,m as i,p as a}from"./modviz-data-BiRqoDI5.js";import{t as o}from"./hierarchy-iO7d4oSK.js";import{t as s}from"./modviz-layout-Do93E-IB.js";import{t as c}from"./setup-view-j1o0TuZz.js";import{t as l}from"./loading-state-CyC_hrTF.js";var u=e(t()),d=n(),f=(0,u.lazy)(()=>i(()=>import(`./flamegraph-CRVZSAlj.js`).then(e=>e.n).then(e=>({default:e.Flamegraph})),__vite__mapDeps([0,1])));function p(){let e=a(),t=o.useSearch(),n=o.useNavigate();if(!r(e))return(0,d.jsx)(s,{projectTitle:e.projectTitle,title:`Hierarchy`,description:`Pruned flamegraph for reading dependency hierarchy without freezing the browser.`,children:(0,d.jsx)(c,{bundle:e})});let i=t.entryNodeId||e.graph.metadata.entrypoints[0]||e.graph.nodes[0]?.path||``,p=e=>n({replace:!0,search:t=>({...t,...e})});return(0,d.jsx)(s,{projectTitle:e.projectTitle,title:`Hierarchy`,description:`Pruned flamegraph for reading dependency hierarchy without freezing the browser. Depth and child limits are URL-backed so you can tune them per investigation.`,children:(0,d.jsxs)(`div`,{className:`flex h-[calc(100vh-14rem)] min-h-[680px] flex-col gap-4`,children:[(0,d.jsxs)(`section`,{className:`rounded-[24px] border border-slate-200/70 bg-white/90 p-4 shadow-[0_16px_50px_-32px_rgba(15,23,42,0.55)] dark:border-slate-800 dark:bg-slate-950/70`,children:[(0,d.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-4`,children:[(0,d.jsxs)(`label`,{className:`space-y-2 text-sm font-medium text-slate-700 dark:text-slate-200 lg:col-span-2`,children:[(0,d.jsx)(`span`,{children:`Entrypoint or focus node`}),(0,d.jsx)(`select`,{className:`flex h-10 w-full rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,value:i,onChange:e=>p({entryNodeId:e.currentTarget.value}),children:e.graph.metadata.entrypoints.map(e=>(0,d.jsx)(`option`,{value:e,children:e},e))})]}),(0,d.jsxs)(`label`,{className:`space-y-2 text-sm font-medium text-slate-700 dark:text-slate-200`,children:[(0,d.jsx)(`span`,{children:`Max depth`}),(0,d.jsx)(`input`,{type:`number`,min:2,max:12,value:t.maxDepth,onChange:e=>p({maxDepth:Number(e.currentTarget.value)||6}),className:`flex h-10 w-full rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`})]}),(0,d.jsxs)(`label`,{className:`space-y-2 text-sm font-medium text-slate-700 dark:text-slate-200`,children:[(0,d.jsx)(`span`,{children:`Max children per node`}),(0,d.jsx)(`input`,{type:`number`,min:4,max:80,value:t.maxChildren,onChange:e=>p({maxChildren:Number(e.currentTarget.value)||24}),className:`flex h-10 w-full rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`})]})]}),(0,d.jsxs)(`label`,{className:`mt-4 inline-flex items-center gap-3 text-sm text-slate-700 dark:text-slate-200`,children:[(0,d.jsx)(`input`,{type:`checkbox`,checked:t.includeExternal,onChange:e=>p({includeExternal:e.currentTarget.checked})}),(0,d.jsx)(`span`,{children:`Include node_modules in the hierarchy slice`})]})]}),(0,d.jsx)(`section`,{className:`min-h-0 flex-1 overflow-hidden rounded-[28px] border border-slate-200/70 bg-white/90 shadow-[0_20px_70px_-36px_rgba(15,23,42,0.55)] dark:border-slate-800 dark:bg-slate-950/70`,children:(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(l,{label:`Loading hierarchy…`,description:`Building a pruned dependency slice for the selected entrypoint.`}),children:(0,d.jsx)(f,{output:e.graph,entryNodeId:i,options:{includeExternal:t.includeExternal,maxChildren:t.maxChildren,maxDepth:t.maxDepth}})})})]})})}export{p as component};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/hierarchy-C8xxGb_u.js","assets/jsx-runtime-DWSWI4JT.js","assets/modviz-data-BiRqoDI5.js","assets/modviz-layout-Do93E-IB.js","assets/utils-DkkZd0ys.js","assets/setup-view-j1o0TuZz.js","assets/loading-state-CyC_hrTF.js"])))=>i.map(i=>d[i]);
2
+ import{m as e}from"./modviz-data-BiRqoDI5.js";import{n as t,t as n}from"./lazyRouteComponent-PTSyFp1J.js";var r=t(`/hierarchy`)({validateSearch:e=>({entryNodeId:typeof e.entryNodeId==`string`?e.entryNodeId:``,includeExternal:e.includeExternal===void 0?!0:e.includeExternal===!0||e.includeExternal===`true`,maxChildren:Number.isFinite(Number(e.maxChildren))?Math.round(Number(e.maxChildren)):24,maxDepth:Number.isFinite(Number(e.maxDepth))?Math.round(Number(e.maxDepth)):6}),component:n(()=>e(()=>import(`./hierarchy-C8xxGb_u.js`),__vite__mapDeps([0,1,2,3,4,5,6])),`component`)});export{r as t};
@@ -0,0 +1,5 @@
1
+ import{a as e,n as t,t as n}from"./jsx-runtime-DWSWI4JT.js";import{r}from"./utils-DkkZd0ys.js";import{t as i}from"./button-aOWckyNs.js";var a=r(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),o=r(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),s=e(t(),1),c=n();function l(e){let[t,n]=(0,s.useState)(`code`),r=Array.isArray(e.imports)&&e.imports.length>0&&`code`in e.imports[0],l=(0,s.useMemo)(()=>r?e.imports:u(e.imports),[e.imports,r]),f=(0,s.useMemo)(()=>{let e=[];for(let t of l){let n=d(t.code);for(let r of n)e.push({module:t.module,name:r})}return e.sort((e,t)=>e.module.localeCompare(t.module)||e.name.localeCompare(t.name))},[l]);return l.length===0?(0,c.jsx)(`p`,{className:`rounded-2xl bg-white px-4 py-6 text-sm text-slate-500 dark:bg-slate-950/80 dark:text-slate-400`,children:e.emptyMessage||`No imports found.`}):(0,c.jsxs)(`div`,{className:`space-y-3`,children:[e.showViewToggle!==!1&&(0,c.jsxs)(`div`,{className:`flex gap-2`,children:[(0,c.jsxs)(i,{size:`sm`,variant:t===`code`?`default`:`outline`,onClick:()=>n(`code`),className:`gap-2`,children:[(0,c.jsx)(a,{className:`size-3`}),`Code`]}),(0,c.jsxs)(i,{size:`sm`,variant:t===`table`?`default`:`outline`,onClick:()=>n(`table`),className:`gap-2`,children:[(0,c.jsx)(o,{className:`size-3`}),`Table`]})]}),t===`code`?(0,c.jsx)(`div`,{className:`space-y-3`,children:l.map((e,t)=>(0,c.jsxs)(`div`,{className:`rounded-2xl border border-slate-200/70 bg-white/80 p-4 dark:border-slate-800 dark:bg-slate-950/60`,children:[l.length>1&&(0,c.jsx)(`p`,{className:`mb-2 text-xs font-medium text-slate-500 dark:text-slate-400`,children:e.module}),(0,c.jsx)(`pre`,{className:`overflow-x-auto text-sm leading-6 text-slate-800 dark:text-slate-100`,children:(0,c.jsx)(`code`,{children:e.code})})]},t))}):(0,c.jsx)(`div`,{className:`overflow-x-auto rounded-2xl border border-slate-200/70 dark:border-slate-800`,children:(0,c.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,c.jsx)(`thead`,{className:`border-b border-slate-200/70 bg-slate-50/80 dark:border-slate-800 dark:bg-slate-900/80`,children:(0,c.jsxs)(`tr`,{children:[(0,c.jsx)(`th`,{className:`px-4 py-3 text-left font-semibold text-slate-700 dark:text-slate-300`,children:`Module`}),(0,c.jsx)(`th`,{className:`px-4 py-3 text-left font-semibold text-slate-700 dark:text-slate-300`,children:`Name`})]})}),(0,c.jsx)(`tbody`,{className:`divide-y divide-slate-200/70 dark:divide-slate-800`,children:f.map((e,t)=>(0,c.jsxs)(`tr`,{className:`hover:bg-sky-50/30 dark:hover:bg-sky-500/10`,children:[(0,c.jsx)(`td`,{className:`px-4 py-3 font-mono text-slate-600 dark:text-slate-400`,children:e.module}),(0,c.jsx)(`td`,{className:`px-4 py-3 font-mono text-slate-800 dark:text-slate-100`,children:e.name})]},`${t}`))})]})})]})}function u(e){let t=new Map;for(let n of e){let e=t.get(n.module)??{names:new Set,hasBareImport:!1},r=n.name||n.declaration;r?e.names.add(r):e.hasBareImport=!0,t.set(n.module,e)}let n=[];return Array.from(t.entries()).sort(([e],[t])=>e.localeCompare(t)).forEach(([e,t])=>{let r=Array.from(t.names).sort((e,t)=>e.localeCompare(t));if(!r.length){n.push(`import ${JSON.stringify(e)};`);return}let i=r.length===1?`{ ${r[0]} }`:`{
2
+ ${r.join(`,
3
+ `)}
4
+ }`;n.push(`import ${i} from ${JSON.stringify(e)};`),t.hasBareImport&&n.push(`import ${JSON.stringify(e)};`)}),[{module:`imports`,code:n.join(`
5
+ `)}]}function d(e){let t=[],n=e.matchAll(/import\s+(?:\{([^}]+)\})?[^;]*;/g);for(let e of n)e[1]&&t.push(...e[1].split(`,`).map(e=>e.trim()).filter(Boolean));return[...new Set(t)]}export{l as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/imports-CodbPyUJ.js","assets/jsx-runtime-DWSWI4JT.js","assets/modviz-data-BiRqoDI5.js","assets/button-aOWckyNs.js","assets/utils-DkkZd0ys.js","assets/modviz-layout-Do93E-IB.js","assets/chevron-down-DrspihmT.js","assets/import-display-D-jRyyjM.js","assets/setup-view-j1o0TuZz.js","assets/input-BCFMF0aR.js"])))=>i.map(i=>d[i]);
2
+ import{m as e}from"./modviz-data-BiRqoDI5.js";import{n as t,t as n}from"./lazyRouteComponent-PTSyFp1J.js";import{i as r,n as i,r as a}from"./schemas-B4zfTepZ.js";var o=()=>e(()=>import(`./imports-CodbPyUJ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),s=a({module:r().catch(``),symbol:r().catch(``),include:r().catch(``),exclude:r().catch(``),mode:i([`contains`,`exact`,`regex`]).catch(`contains`),scope:i([`all`,`workspace`,`external`]).catch(`all`),preset:r().catch(``)}),c=t(`/imports`)({validateSearch:e=>s.parse(e),component:n(o,`component`)});export{c as t};
@@ -0,0 +1 @@
1
+ import{a as e,n as t,t as n}from"./jsx-runtime-DWSWI4JT.js";import{d as r,p as i}from"./modviz-data-BiRqoDI5.js";import{t as a}from"./imports-CPggnrs-.js";import{t as o}from"./modviz-layout-Do93E-IB.js";import{t as s}from"./chevron-down-DrspihmT.js";import{t as c}from"./import-display-D-jRyyjM.js";import{t as l}from"./setup-view-j1o0TuZz.js";import{t as u}from"./button-aOWckyNs.js";import{t as d}from"./input-BCFMF0aR.js";var f=e(t(),1),p=n(),m=new Intl.NumberFormat(`en-US`),h=e=>e.split(/[\n,]+/).map(e=>e.trim()).filter(Boolean),g=(e,t)=>{if(!e.trim())return()=>!0;if(t===`regex`){let t=new RegExp(e,`i`);return e=>t.test(e)}if(t===`exact`){let t=e.trim().toLowerCase();return e=>e.trim().toLowerCase()===t}let n=e.trim().toLowerCase();return e=>e.toLowerCase().includes(n)},_=(e,t,n)=>{let r=g(t,n);return[e.path,e.name,e.cluster,e.package?.name,e.package?.path].filter(Boolean).some(e=>r(String(e)))},v=(e,t)=>{if(e.module.startsWith(`.`)||e.module.startsWith(`/`))return!0;for(let n of t)if(e.module===n||e.module.startsWith(`${n}/`))return!0;return!1};function y(e){let{graph:t}=e.bundle,{exclude:n,include:r,mode:i,module:a,preset:o,scope:l,symbol:y}=e.search,b=(0,f.useMemo)(()=>new Set(t.metadata.packages.map(e=>e.name)),[t.metadata.packages]),x=t=>(0,f.startTransition)(()=>e.onSearchChange(t)),S=(0,f.useMemo)(()=>{try{let e=g(a,i),o=g(y,i),s=h(r),c=h(n),u=t.nodes.map(t=>{let n=t.imports.filter(t=>{let n=e(t.module),r=y.trim()?[t.name,t.declaration].filter(Boolean).some(e=>o(String(e))):!0,i=v(t,b);return n&&r&&(l===`all`||l===`workspace`&&i||l===`external`&&!i)});return!n.length||s.length&&!s.every(e=>_(t,e,i))||c.some(e=>_(t,e,i))?null:{node:t,matches:n}}).filter(Boolean);return u.sort((e,t)=>{let n=t.matches.length-e.matches.length;return n===0?e.node.path.localeCompare(t.node.path):n}),{results:u,error:null}}catch(e){return{results:[],error:e instanceof Error?e.message:`Invalid search expression`}}},[n,t.nodes,r,i,a,y,l,b]);return(0,p.jsxs)(`div`,{className:`space-y-6`,children:[(0,p.jsxs)(`details`,{open:!0,className:`group sticky top-0 z-10 rounded-[24px] border border-slate-200/70 bg-white/90 shadow-[0_16px_50px_-32px_rgba(15,23,42,0.55)] transition-all dark:border-slate-800 dark:bg-slate-950/70`,children:[(0,p.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center justify-between p-5`,children:[(0,p.jsx)(`h3`,{className:`text-sm font-semibold text-slate-900 dark:text-slate-100`,children:`Filter options`}),(0,p.jsx)(`span`,{className:`rounded p-1 hover:bg-slate-100 dark:hover:bg-slate-800`,children:(0,p.jsx)(s,{className:`size-4 -rotate-90 transition-transform group-open:rotate-0`})})]}),(0,p.jsxs)(`div`,{className:`border-t border-slate-200/70 px-5 py-4 dark:border-slate-800`,children:[(0,p.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-2 xl:grid-cols-3`,children:[(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`label`,{className:`text-sm font-medium text-slate-700 dark:text-slate-200`,children:`Imported module`}),(0,p.jsx)(d,{placeholder:`lodash-es, ./router, @weliihq/backend...`,value:a,onChange:e=>x({module:e.currentTarget.value,preset:``})})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`label`,{className:`text-sm font-medium text-slate-700 dark:text-slate-200`,children:`Imported symbol`}),(0,p.jsx)(d,{placeholder:`omit, mapValues, OrganizationRouter...`,value:y,onChange:e=>x({symbol:e.currentTarget.value,preset:``})})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`label`,{className:`text-sm font-medium text-slate-700 dark:text-slate-200`,children:`Match mode`}),(0,p.jsxs)(`select`,{className:`flex h-9 w-full rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,value:i,onChange:e=>x({mode:e.currentTarget.value,preset:``}),children:[(0,p.jsx)(`option`,{value:`contains`,children:`contains`}),(0,p.jsx)(`option`,{value:`exact`,children:`exact`}),(0,p.jsx)(`option`,{value:`regex`,children:`regex`})]})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`label`,{className:`text-sm font-medium text-slate-700 dark:text-slate-200`,children:`Target scope`}),(0,p.jsxs)(`select`,{className:`flex h-9 w-full rounded-md border border-input bg-transparent px-3 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,value:l,onChange:e=>x({scope:e.currentTarget.value,preset:``}),children:[(0,p.jsx)(`option`,{value:`all`,children:`all imports`}),(0,p.jsx)(`option`,{value:`workspace`,children:`workspace or monorepo imports`}),(0,p.jsx)(`option`,{value:`external`,children:`external package imports`})]})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`label`,{className:`text-sm font-medium text-slate-700 dark:text-slate-200`,children:`Only imported from`}),(0,p.jsx)(`textarea`,{className:`min-h-24 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,placeholder:`@weliihq/backend\\nrouters/organization`,value:r,onChange:e=>x({include:e.currentTarget.value,preset:``})}),(0,p.jsxs)(`p`,{className:`text-xs leading-5 text-slate-500 dark:text-slate-400`,children:[`Regex helpers: use `,(0,p.jsx)(`code`,{children:`routers/organization`}),`, `,(0,p.jsx)(`code`,{children:`(router|service)`}),`, or `,(0,p.jsx)(`code`,{children:`^apps/backend/`}),` when match mode is regex.`]})]}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`label`,{className:`text-sm font-medium text-slate-700 dark:text-slate-200`,children:`Exclude imported from`}),(0,p.jsx)(`textarea`,{className:`min-h-24 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,placeholder:`test, stories, generated`,value:n,onChange:e=>x({exclude:e.currentTarget.value,preset:``})})]})]}),(0,p.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-2`,children:[{id:`external-hunt`,label:`External package hunt`,apply:()=>x({preset:`external-hunt`,scope:`external`,mode:`contains`})},{id:`workspace-path-regex`,label:`Workspace path regex`,apply:()=>x({preset:`workspace-path-regex`,scope:`workspace`,mode:`regex`,include:r||`(@weliihq/backend|apps/backend).*(routers|organization)`})},{id:`lodash-omit`,label:`Find lodash omit`,apply:()=>x({preset:`lodash-omit`,module:`lodash-es`,symbol:`omit`,scope:`external`,mode:`contains`})}].map(e=>(0,p.jsx)(u,{variant:o===e.id?`default`:`outline`,size:`sm`,onClick:e.apply,children:e.label},e.id))}),(0,p.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-3 text-sm text-slate-500 dark:text-slate-400`,children:[(0,p.jsx)(u,{variant:`outline`,onClick:()=>{x({module:``,symbol:``,include:``,exclude:``,mode:`contains`,scope:`all`,preset:``})},children:`Reset filters`}),(0,p.jsx)(`span`,{children:`Try: module = lodash-es, symbol = omit, include = @weliihq/backend and routers/organization.`})]})]})]}),(0,p.jsxs)(`section`,{className:`rounded-[24px] border border-slate-200/70 bg-white/90 p-5 shadow-[0_16px_50px_-32px_rgba(15,23,42,0.55)] dark:border-slate-800 dark:bg-slate-950/70`,children:[(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-4`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`h2`,{className:`text-lg font-semibold text-slate-900 dark:text-slate-100`,children:`Matches`}),(0,p.jsx)(`p`,{className:`mt-1 text-sm text-slate-500 dark:text-slate-400`,children:`Importer files or modules whose import list matches the current filters.`})]}),(0,p.jsxs)(`div`,{className:`rounded-full bg-slate-950 px-4 py-2 text-sm font-semibold text-white dark:bg-slate-100 dark:text-slate-950`,children:[m.format(S.results.length),` result(s)`]})]}),S.error?(0,p.jsx)(`p`,{className:`mt-4 rounded-2xl border border-red-300 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300`,children:S.error}):null,(0,p.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[S.results.map(e=>(0,p.jsxs)(`article`,{className:`rounded-[22px] border border-slate-200/80 bg-slate-50/90 p-4 dark:border-slate-800 dark:bg-slate-900/70`,children:[(0,p.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`h3`,{className:`text-sm font-semibold text-slate-900 dark:text-slate-100`,children:e.node.path}),(0,p.jsxs)(`p`,{className:`mt-1 text-xs text-slate-500 dark:text-slate-400`,children:[e.node.package?.name?`${e.node.package.name} • `:``,e.node.cluster??e.node.type]})]}),(0,p.jsxs)(`div`,{className:`rounded-full bg-white px-3 py-1 text-xs font-semibold text-slate-700 shadow-sm dark:bg-slate-950 dark:text-slate-200`,children:[m.format(e.matches.length),` matching import(s)`]})]}),(0,p.jsx)(`div`,{className:`mt-3`,children:(0,p.jsx)(c,{imports:e.matches,showViewToggle:!1})})]},e.node.path)),!S.error&&!S.results.length?(0,p.jsx)(`p`,{className:`rounded-2xl border border-dashed border-slate-300 px-4 py-6 text-sm text-slate-500 dark:border-slate-700 dark:text-slate-400`,children:`No imports matched the current query.`}):null]})]})]})}function b(){let e=i(),t=a.useSearch(),n=a.useNavigate();return(0,p.jsx)(o,{projectTitle:e.projectTitle,title:`Import Search`,description:`Search by imported module or symbol, then scope the results to monorepo packages, folders, or specific files with include and exclude filters.`,children:r(e)?(0,p.jsx)(y,{bundle:e,search:t,onSearchChange:e=>n({replace:!0,search:t=>({...t,...e})})}):(0,p.jsx)(l,{bundle:e})})}export{b as component};