@rushstack/lockfile-explorer 0.2.0 → 0.2.1

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.
@@ -0,0 +1 @@
1
+ !function(){var e,t={354:function(e,t,n){"use strict";var r,o,a=n(823),l=n(998),c="HK80a6ZVkdxoTKzrP9Eq",s="HqAzbQwu1zc9yH8ZQESI",i=n(201);!function(e){e[e.DEPENDENCY=0]="DEPENDENCY",e[e.DEV_DEPENDENCY=1]="DEV_DEPENDENCY",e[e.PEER_DEPENDENCY=2]="PEER_DEPENDENCY"}(r||(r={}));class d{constructor(e,t,n,o,a){if(this.entryId="",this.name=e,this.version=t,this.dependencyType=n,this.containingEntry=o,this.peerDependencyMeta={},this.version.startsWith("link:")){const t=this.version.substring("link:".length),n=new i.y(".").relative(new i.y(o.packageJsonFolderPath).concat(t));if(!n)return void console.error("No root relative path for dependency!",e);this.entryId="project:"+n.toString()}else this.version.startsWith("/")?this.entryId=this.version:this.dependencyType===r.PEER_DEPENDENCY?(null==a?void 0:a.peerDependencies)?(this.peerDependencyMeta={name:this.name,version:a.peerDependencies[this.name],optional:!(!a.peerDependenciesMeta||!a.peerDependenciesMeta[this.name])&&a.peerDependenciesMeta[this.name].optional},this.entryId="Peer: "+this.name):console.error("Peer dependencies info missing!",a):this.entryId="/"+this.name+"/"+this.version}static parseDependencies(e,t,n){if(n.dependencies)for(const[o,a]of Object.entries(n.dependencies))e.push(new d(o,a,r.DEPENDENCY,t));if(n.devDependencies)for(const[o,a]of Object.entries(n.devDependencies))e.push(new d(o,a,r.DEV_DEPENDENCY,t));if(n.peerDependencies)for(const[o,a]of Object.entries(n.peerDependencies))e.push(new d(o,a,r.PEER_DEPENDENCY,t,n));if(n.transitivePeerDependencies)for(const e of n.transitivePeerDependencies)t.transitivePeerDependencies.add(e)}}!function(e){e[e.Project=0]="Project",e[e.Package=1]="Package",e[e.SideBySide=2]="SideBySide",e[e.Doppelganger=3]="Doppelganger"}(o||(o={}));class u{constructor(e){this.entryId="",this.packageJsonFolderPath="",this.entryPackageName="",this.displayText="",this.dependencies=[],this.transitivePeerDependencies=new Set,this.referrers=[],this.entryPackageVersion="",this.entrySuffix="";const{rawEntryId:t,kind:n,rawYamlData:r}=e;if(this.rawEntryId=t,this.kind=n,"."!==t){if(n===o.Project){const e=new i.y("common/temp/package.json").dirname()||"",n=new i.y(".").relative(new i.y(e).concat(t)),r=new i.y(t).basename();if(!n||!r)return void console.error("Could not construct path for entry: ",t);this.packageJsonFolderPath=n.toString(),this.entryId="project:"+this.packageJsonFolderPath,this.entryPackageName=r.toString(),this.displayText="Project: "+this.entryPackageName}else{this.displayText=t;const e=u._packageEntryIdRegex.exec(t);if(e){const[,t,n]=e;this.entryPackageName=t;const r=n.indexOf("_");if(r>=0){const e=n.substring(0,r),o=n.substring(r+1);this.entryPackageVersion=e,this.entrySuffix=o,this.displayText=t+" "+e+" ("+o+")"}else this.entryPackageVersion=n,this.displayText=t+" "+n}this.packageJsonFolderPath="common/temp/node_modules/.pnpm/"+this.entryPackageName.replace("/","+")+"@"+this.entryPackageVersion+(this.entrySuffix?`_${this.entrySuffix}`:"")+"/node_modules/"+this.entryPackageName}d.parseDependencies(this.dependencies,this,r)}}}u._packageEntryIdRegex=new RegExp("/(.*)/([^/]+)$");const p=window.appContext.serviceUrl;var f="OcndyDBetZor3ptzTnTX",m="Wg5pG3RVf6SQ51i0tVkd",h="NBIr3yosJ9gX6LZcnC7T";const E=null;var v=n(775);const y=v.I0,g=v.v9;var b=n(608);const w="LOCKFILE_EXPLORER_BOOKMARKS",S="LOCKFILE_EXPLORER_PROJECT_FILTER",k="LOCKFILE_EXPLORER_PACKAGE_FILTER",x=e=>e===o.Project?localStorage.getItem(S)||"":localStorage.getItem(k)||"",C={allEntries:[],filters:{[o.Project]:!1,[o.Package]:!0,[o.SideBySide]:!1,[o.Doppelganger]:!1},selectedEntryStack:[],selectedEntryForwardStack:[],bookmarkedEntries:[]},P=(0,b.oM)({name:"entry",initialState:C,reducers:{loadEntries:(e,t)=>{e.allEntries=t.payload;const n=(()=>{const e=JSON.parse(localStorage.getItem(w)||"{}"),t=new Set;for(const n of Object.keys(e))t.add(n);return t})();for(const r of t.payload)n.has(r.rawEntryId)&&e.bookmarkedEntries.push(r)},setFilter:(e,t)=>{e.filters[t.payload.filter]=t.payload.state},clearStackAndPush:(e,t)=>{e.selectedEntryStack=[t.payload],e.selectedEntryForwardStack=[]},pushToStack:(e,t)=>{e.selectedEntryStack.push(t.payload),e.selectedEntryForwardStack=[],t.payload.kind===o.Package?(e.filters[o.Project]=!1,e.filters[o.Package]=!0):(e.filters[o.Project]=!0,e.filters[o.Package]=!1)},popStack:e=>{if(e.selectedEntryStack.length>1){const t=e.selectedEntryStack.pop();e.selectedEntryForwardStack.push(t),e.selectedEntryStack.length>=1&&(e.selectedEntryStack[e.selectedEntryStack.length-1].kind===o.Package?(e.filters[o.Project]=!1,e.filters[o.Package]=!0):(e.filters[o.Project]=!0,e.filters[o.Package]=!1))}},forwardStack:e=>{if(e.selectedEntryForwardStack.length>0){const t=e.selectedEntryForwardStack.pop();e.selectedEntryStack.push(t),t.kind===o.Package?(e.filters[o.Project]=!1,e.filters[o.Package]=!0):(e.filters[o.Project]=!0,e.filters[o.Package]=!1)}},addBookmark:(e,t)=>{e.bookmarkedEntries.includes(t.payload)||(e.bookmarkedEntries.push(t.payload),(e=>{const t=e.rawEntryId,n=JSON.parse(localStorage.getItem(w)||"{}");n[t]=!0,localStorage.setItem(w,JSON.stringify(n))})(t.payload))},removeBookmark:(e,t)=>{e.bookmarkedEntries=e.bookmarkedEntries.filter((e=>e.rawEntryId!==t.payload.rawEntryId)),(e=>{const t=e.rawEntryId,n=JSON.parse(localStorage.getItem(w)||"{}");delete n[t],localStorage.setItem(w,JSON.stringify(n))})(t.payload)}}}),N=e=>e.entry.selectedEntryStack.length?e.entry.selectedEntryStack[e.entry.selectedEntryStack.length-1]:void 0,T=e=>{const t=[];return e.entry.filters[o.Package]?t.push(...e.entry.allEntries.filter((e=>e.kind===o.Package))):e.entry.filters[o.Project]&&t.push(...e.entry.allEntries.filter((e=>e.kind===o.Project))),t},{loadEntries:D,setFilter:R,clearStackAndPush:A,pushToStack:I,popStack:O,forwardStack:_,addBookmark:j,removeBookmark:M}=P.actions,F=P.reducer;var L=n(581);const B=({group:e})=>{const t=g(N),n=g((e=>e.entry.filters)),r=y(),l=(0,a.useRef)(),c=(0,a.useCallback)((e=>()=>{r(I(e))}),[]);return(0,a.useEffect)((()=>{t&&t.entryPackageName===e.entryName&&l.current.scrollIntoView({behavior:"smooth"})}),[t,e]),n[o.Project]?a.createElement("div",{className:f,ref:l},e.versions.map((e=>a.createElement("div",{key:e.rawEntryId,onClick:c(e),className:`${m} ${(null==t?void 0:t.rawEntryId)===e.rawEntryId?h:""}`},a.createElement(L.Text,{type:"h5"},e.entryPackageName))))):a.createElement("div",{className:f,ref:l},a.createElement(L.Text,{type:"h5",bold:!0},e.entryName),e.versions.map((e=>a.createElement("div",{key:e.rawEntryId,onClick:c(e),className:`${m} ${(null==t?void 0:t.rawEntryId)===e.rawEntryId?h:""}`},a.createElement(L.Text,{type:"p"},e.entryPackageVersion," ",e.entrySuffix&&`[${e.entrySuffix}]`)))))},z=()=>{const e=y(),[t,n]=(0,a.useState)(""),[r,l]=(0,a.useState)(""),c=g(T),s=g((e=>e.entry.filters)),i=(0,a.useCallback)((e=>t=>{e===o.Project?n(t.target.value):l(t.target.value),((e,t)=>{t===o.Project?localStorage.setItem(S,e):localStorage.setItem(k,e)})(t.target.value,e)}),[]);if((0,a.useEffect)((()=>{n(x(o.Project)),l(x(o.Package))}),[]),!c)return E;const d=(0,a.useCallback)(((t,n)=>()=>{e(R({filter:t,state:n}))}),[]),u=(0,a.useCallback)((t=>{"Projects"===t?(e(R({filter:o.Project,state:!0})),e(R({filter:o.Package,state:!1}))):(e(R({filter:o.Package,state:!0})),e(R({filter:o.Project,state:!1})))}),[s]);return a.createElement("div",{className:"yk7wrFMnnNyYLABMBhz_"},a.createElement("div",{className:"X00sOTmx1ir4Oc41DIvM"},a.createElement(L.Tabs,{items:[{header:"Projects"},{header:"Packages"}],value:s[o.Project]?"Projects":"Packages",onChange:u}),a.createElement(L.Input,{type:"search",placeholder:"Filter...",value:s[o.Project]?t:r,onChange:i(s[o.Project]?o.Project:o.Package)}),a.createElement(L.ScrollArea,null,(()=>{let e=c;t&&s[o.Project]?e=c.filter((e=>-1!==e.entryPackageName.indexOf(t))):r&&s[o.Package]&&(e=c.filter((e=>-1!==e.entryPackageName.indexOf(r))));const n=e.reduce(((e,t)=>{const n=e[t.entryPackageName]||[];return n.push(t),e[t.entryPackageName]=n,e}),{});let a=[];for(const[e,t]of Object.entries(n))a.push({entryName:e,versions:t});return s[o.SideBySide]&&(a=a.filter((e=>e.versions.length>1))),s[o.Doppelganger]&&(a=a.filter((e=>(e=>{const t=new Set;for(const n of e){if(t.has(n.entryPackageVersion))return!0;t.add(n.entryPackageVersion)}return!1})(e.versions)))),a})().map((e=>a.createElement(B,{group:e,key:e.entryName})))),s[o.Package]?a.createElement("div",{className:"K6dDN5KzjLkbPPFWUaly"},a.createElement(L.Text,{type:"h5",bold:!0},"Filters"),a.createElement(L.Checkbox,{label:"Must have side-by-side versions",isChecked:s[o.SideBySide],onChecked:d(o.SideBySide,!s[o.SideBySide])}),a.createElement(L.Checkbox,{label:"Must have doppelgangers",isChecked:s[o.Doppelganger],onChecked:d(o.Doppelganger,!s[o.Doppelganger])})):null))},H=`${window.appContext.serviceUrl}/api`;var Z="rXOH6AJQU2eYrNAXbp4V";const U={specChanges:new Map},Y=(0,b.oM)({name:"workspace",initialState:U,reducers:{loadSpecChanges:(e,t)=>{e.specChanges=t.payload}}}),{loadSpecChanges:$}=Y.actions,V=Y.reducer,W=(e,t)=>{var n;switch(null===(n=e.get(t))||void 0===n?void 0:n.type){case"add":return"[Added by .pnpmfile.cjs]";case"diff":return"[Changed from {specChanges.get(dep)?.from}]";case"remove":return"[Deleted by .pnpmfile.cjs]";default:return"No Change"}},K=(e,t)=>{if(!e)return!1;for(const n of e.dependencies)if(t.has(n.name))return!0;return!1};var G;!function(e){e[e.PACKAGE_JSON=0]="PACKAGE_JSON",e[e.PACKAGE_SPEC=1]="PACKAGE_SPEC",e[e.PARSED_PACKAGE_JSON=2]="PARSED_PACKAGE_JSON"}(G||(G={}));const X=()=>{const e=y(),[t,n]=(0,a.useState)(void 0),[r,o]=(0,a.useState)(void 0),[l,c]=(0,a.useState)(""),s=g(N),i=g((e=>e.workspace.specChanges)),[d,u]=(0,a.useState)(G.PARSED_PACKAGE_JSON),p=(0,a.useCallback)((e=>u(e)),[]);(0,a.useEffect)((()=>{(async function(){const e=await async function(){try{const e=await fetch(`${H}/pnpmfile`);return await e.text()}catch(e){return console.error("Could not load cjs file: ",e),"Missing CJS"}}();c(e)})().catch((e=>{console.error(`Failed to load project's pnpm file: ${e}`)}))}),[]),(0,a.useEffect)((()=>{s&&(s.entryPackageName?async function(t){const r=await async function(e){try{const t=await fetch(`${H}/package-json`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load package json file: ",e)}}(t);n(r);const a=await async function(e){try{const t=await fetch(`${H}/package-spec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load cjs file: ",e)}}(t);if(o(a),r&&a){const t=((e,t)=>{const n=new Map,r=new Map;for(const[t,r]of Object.entries(Object.assign(Object.assign(Object.assign({},e.dependencies),e.devDependencies),e.peerDependencies)))n.set(t,r);for(const[e,n]of Object.entries(Object.assign(Object.assign(Object.assign({},t.dependencies),t.devDependencies),t.peerDependencies)))r.set(e,n);const o=new Map;for(const e of n.keys())r.has(e)?r.get(e)!==n.get(e)&&o.set(e,{type:"diff",packageName:e,from:n.get(e),to:r.get(e)}):o.set(e,{type:"remove",packageName:e});for(const e of r.keys())n.has(e)||o.set(e,{type:"add",packageName:e});return o})(r,a);e($(t))}}(s.packageJsonFolderPath).catch((e=>{console.error(`Failed to load project information: ${e}`)})):console.log("The selected entry has no entry name: ",s.entryPackageName))}),[s]);const f=e=>t=>{var n;const[r,o]=t;if(!i.has(r))return e?a.createElement(L.Text,{type:"p",key:r},r,":"):a.createElement(L.Text,{type:"p",key:r},o);switch(null===(n=i.get(r))||void 0===n?void 0:n.type){case"add":return e?a.createElement(L.Text,{type:"p",key:r},a.createElement("span",{className:"nTIc62ACgp5xMWIvZ4cn"},r)):a.createElement(L.Text,{type:"p",key:r},o," ",W(i,r));case"diff":return e?a.createElement(L.Text,{type:"p",key:r},a.createElement("span",{className:"I4A8ZZlpCL3Op0c53VjN"},r)):a.createElement(L.Text,{type:"p",key:r},o," ",W(i,r));case"remove":return e?a.createElement(L.Text,{type:"p",key:r},a.createElement("span",{className:"iavWjvHy9s5MhCZ_ncgb"},r)):a.createElement(L.Text,{type:"p",key:r},o," ",W(i,r));default:return e?a.createElement(L.Text,{type:"p",key:r},r,":"):a.createElement(L.Text,{type:"p",key:r},o)}};return a.createElement("div",{className:"kzgyQkswpx6xUEo4zOa8"},a.createElement(L.Tabs,{items:[{header:"package spec "+(K(s,i)?"*":""),value:G.PARSED_PACKAGE_JSON},{header:"package.json",value:G.PACKAGE_JSON},{header:".pnpmfile.cjs",value:G.PACKAGE_SPEC}],value:d,onChange:p}),a.createElement("div",{className:"e2KEBfZCHwEMeH4j6wS7"},a.createElement(L.ScrollArea,null,a.createElement("div",{className:"zjGuydlDBdLj1kQnKe4V"},(()=>{switch(d){case G.PACKAGE_JSON:return t?a.createElement("pre",null,JSON.stringify(t,null,2)):a.createElement(L.Text,{type:"h5",bold:!0},"Please select a Project or Package to view it's package.json");case G.PACKAGE_SPEC:return l?a.createElement("pre",null,l):a.createElement(L.Text,{type:"h5",bold:!0},"Couldn't load the pnpmfile.cjs file - does it exist in the expected location? (/common/config/rush/.pnpmfile.cjs)");case G.PARSED_PACKAGE_JSON:return r?a.createElement("div",{className:"Ko0YQxSlY0hCIDTfmNlr"},a.createElement("div",{className:Z},a.createElement(L.Text,{type:"h5",bold:!0},"Package Name:"),a.createElement(L.Text,{type:"p"},null==s?void 0:s.displayText)),a.createElement("div",{className:Z},a.createElement(L.Text,{type:"h5",bold:!0},"Version:"),a.createElement(L.Text,{type:"p"},null==s?void 0:s.entryPackageVersion)),a.createElement("div",{className:"hqNteMkwhYXuZqHE_8MJ"},a.createElement("div",null,a.createElement(L.Text,{type:"h5",bold:!0},"Dependencies"),r.dependencies&&Object.entries(r.dependencies).map(f(!0)),a.createElement(L.Text,{type:"h5",bold:!0},"Dev Dependencies"),r.devDependencies&&Object.entries(r.devDependencies).map(f(!0)),a.createElement(L.Text,{type:"h5",bold:!0},"Peer Dependencies"),r.peerDependencies&&Object.entries(r.peerDependencies).map(f(!0))),a.createElement("div",null,a.createElement(L.Text,{type:"h5",bold:!0}," "),r.dependencies&&Object.entries(r.dependencies).map(f(!1)),a.createElement(L.Text,{type:"h5",bold:!0}," "),r.devDependencies&&Object.entries(r.devDependencies).map(f(!1)),a.createElement(L.Text,{type:"h5",bold:!0}," "),r.peerDependencies&&Object.entries(r.peerDependencies).map(f(!1))))):a.createElement(L.Text,{type:"h5",bold:!0},"Please select a Project or Package to view the parsed package.json");default:return null}})()))))};var J,Q="_R50_3JsFs2FC9kVffQL",q="mRQWdzXzOM1NpFUpYnhP",ee="rIv2KvSZ0CKMbctSHL04",te="wzeVrHi3oyOhEe6qD3PX",ne="lGp34XdOFjHfZNwiilgC";!function(e){e[e.Determinant=0]="Determinant",e[e.TransitiveReferrer=1]="TransitiveReferrer"}(J||(J={}));const re=()=>{var e,t;const n=g(N),o=g((e=>e.workspace.specChanges)),l=y(),[s,i]=(0,a.useState)(null),[d,u]=(0,a.useState)([]);(0,a.useEffect)((()=>{n&&i(null)}),[n]);const p=(0,a.useCallback)((e=>()=>{if(s&&s.entryId===e.entryId)e.resolvedEntry?l(I(e.resolvedEntry)):((...e)=>{window.appContext.debugMode&&console.log("Diagnostic: ",...e)})("No resolved entry for dependency:",e);else if(n){if(console.log("dependency to trace: ",e),i(e),e.dependencyType!==r.PEER_DEPENDENCY)return;const t=[n],o=new Set,a=new Set,l=new Set;for(l.add(n);t.length;){const n=t.pop();if(n)for(const r of n.referrers){let c=!1;for(const t of r.dependencies)if(t.name===e.name){o.add(r),c=!0;break}if(!c){r.transitivePeerDependencies.has(e.name)?a.add(r):console.error('Error analyzing influencers: A referrer appears to be missing its "transitivePeerDependencies" field in the YAML file: ',e,r,n);for(const e of n.referrers)l.has(e)||(t.push(e),l.add(e))}}}const c=[];for(const e of o.values())c.push({entry:e,type:J.Determinant});for(const e of a.values())c.push({entry:e,type:J.TransitiveReferrer});u(c)}}),[n,s]),f=(0,a.useCallback)((e=>()=>{l(I(e))}),[n]);return n?a.createElement(a.Fragment,null,a.createElement("div",{className:"KWDuEbG1GmwLxFmPPppw"},a.createElement("div",{className:c},a.createElement(L.Text,{type:"h4",bold:!0},"Direct Referrers"),a.createElement("div",{className:Q},a.createElement(L.ScrollArea,null,null===(e=n.referrers)||void 0===e?void 0:e.map((e=>a.createElement("div",{className:q,key:e.rawEntryId,onClick:f(e)},a.createElement(L.Text,{type:"h5",bold:!0},"Name: ",e.displayText),a.createElement("div",null,a.createElement(L.Text,{type:"p"},"Entry ID: ",e.rawEntryId)))))))),a.createElement("div",{className:c},a.createElement(L.Text,{type:"h4",bold:!0},"Direct Dependencies"),a.createElement("div",{className:Q},a.createElement(L.ScrollArea,null,null===(t=n.dependencies)||void 0===t?void 0:t.map((e=>a.createElement("div",{className:`${q} ${(null==s?void 0:s.entryId)===e.entryId&&"GbZbP1wHbcReGrxpZ3Ra"}`,key:e.entryId||e.name,onClick:p(e)},a.createElement(L.Text,{type:"h5",bold:!0},"Name: ",e.name," ",e.dependencyType===r.PEER_DEPENDENCY?(e.peerDependencyMeta.optional?"(Optional)":"(Non-optional)")+" Peer Dependency":""),a.createElement("div",null,a.createElement(L.Text,{type:"p"},"Version: ",e.version),a.createElement(L.Text,{type:"p"},"Entry ID: ",e.entryId))))))))),s?a.createElement("div",{className:"xSxHmjxIXTOSskLhma3A"},a.createElement(L.ScrollArea,null,a.createElement("div",{className:ne},a.createElement(L.Text,{type:"h5",bold:!0},"Selected Dependency:"," "),a.createElement(L.Text,{type:"span"},s.name,": ",s.version)),a.createElement("div",{className:ne},a.createElement(L.Text,{type:"h5",bold:!0},"package.json spec:"," "),a.createElement(L.Text,{type:"span"},s.dependencyType===r.PEER_DEPENDENCY?`"${s.peerDependencyMeta.version}" ${s.peerDependencyMeta.optional?"Optional":"Required"} Peer`:s.version)),a.createElement("div",{className:ne},a.createElement(L.Text,{type:"h5",bold:!0},".pnpmfile.cjs:"," "),a.createElement(L.Text,{type:"span"},o.has(s.name)?W(o,s.name):"No Effect")))):E,(()=>{if(!n)return E;if(!n.dependencies.filter((e=>e.dependencyType===r.PEER_DEPENDENCY)).length)return a.createElement("div",{className:`${c} ${ee}`},a.createElement(L.Text,{type:"h5"},"No peer dependencies."));if(!s||s.dependencyType!==r.PEER_DEPENDENCY)return a.createElement("div",{className:`${c} ${ee}`},a.createElement(L.Text,{type:"h5"},"Select a peer dependency to view its influencers"));const e=d.filter((e=>e.type===J.Determinant)),t=d.filter((e=>e.type===J.TransitiveReferrer));return a.createElement("div",{className:`${c} ${ee}`},a.createElement(L.ScrollArea,null,a.createElement(L.Text,{type:"h5",bold:!0},"Determinants:"),e.length?e.map((({entry:e})=>a.createElement("a",{className:te,key:e.rawEntryId,onClick:f(e)},e.displayText))):a.createElement(L.Text,{type:"p"},"(none)"),a.createElement(L.Text,{type:"h5",bold:!0,className:"aKaZTElUypfUGQWhNJON"},"Transitive Referencers:"),t.length?t.map((({entry:e})=>a.createElement("a",{className:te,key:e.rawEntryId,onClick:f(e)},e.displayText))):a.createElement(L.Text,{type:"p"},"(none)")))})()):a.createElement("div",{className:`${c} ${ee}`},a.createElement(L.Text,{type:"h5",bold:!0},"Select an entry to view its details"))};const oe=()=>{const e=g((e=>e.entry.bookmarkedEntries)),t=y(),n=(0,a.useCallback)((e=>()=>{t(A(e))}),[]),r=(0,a.useCallback)((e=>()=>{t(M(e))}),[]);return a.createElement("div",{className:`${c} aM5oGgiHs9rRHcHdAqFh`},a.createElement(L.ScrollArea,null,a.createElement(L.Text,{type:"h5"},"Bookmarks"),a.createElement("hr",null),e.map((e=>a.createElement("div",{key:e.rawEntryId,className:"Ci1rEoM4eR29ZJcnvJJE"},a.createElement("div",{onClick:n(e),className:"RNRBHB_iXGOnzVd_Ry9b"},a.createElement(L.Text,{type:"p"},e.displayText)),a.createElement(L.Button,{onClick:r(e)},"Remove"))))))};var ae="dklLbMzvzbuzLd2XJh3W",le="vJvmAdZ2VafvyXjc16Mz";const ce=()=>{const e=g(N),t=g((t=>!!e&&t.entry.bookmarkedEntries.includes(e))),n=g((e=>e.entry.selectedEntryStack)),r=g((e=>e.entry.selectedEntryForwardStack)),o=y(),l=(0,a.useCallback)((()=>{e&&o(j(e))}),[e]),c=(0,a.useCallback)((()=>{e&&o(M(e))}),[e]),s=(0,a.useCallback)((()=>{o(O())}),[]),i=(0,a.useCallback)((()=>{o(_())}),[]),d=()=>a.createElement("div",{className:"LkGUkEuAC1lrNLYWXZAB"},a.createElement(L.Button,{disabled:n.length<=1,onClick:s},"Back"),a.createElement(L.Button,{disabled:0===r.length,onClick:i},"Forward"),t?a.createElement(L.Button,{onClick:c,disabled:!e},"Remove Bookmark"):a.createElement(L.Button,{onClick:l,disabled:!e},"Add Bookmark"));return e?a.createElement("div",{className:ae},a.createElement(L.ScrollArea,null,a.createElement("div",{className:le},a.createElement("div",{className:"Hd2WYHIwrFrldD0I8qDj"},a.createElement(L.Text,{type:"h5",bold:!0},"Selected entry:"),a.createElement("span",null,e.displayText)),d()),a.createElement("div",null,a.createElement(L.Text,{type:"p"},"Package Entry: ",e.rawEntryId),a.createElement(L.Text,{type:"p"},"Package JSON path: ",e.packageJsonFolderPath)))):a.createElement("div",{className:ae},a.createElement("div",{className:le},a.createElement(L.Text,{type:"h5",bold:!0},"No Entry Selected"),d()))};var se="wR2C2OTixe7QR738j44h",ie="Oo_rkIqOkO0j8slDAm5V";const de=()=>{const e=window.appContext.appVersion;return a.createElement("div",{className:"mqcpXwTQfD4A2eS4QRMa"},a.createElement("div",{className:"gxAXHLK7j_oYpFDmIJLR"},a.createElement("img",{className:se,src:n(769)})),a.createElement("div",null,a.createElement("a",{href:"https://lfx.rushstack.io/",target:"_blank",rel:"noreferrer"},a.createElement("div",{className:"rHArsuIMBTbIFs5o2cuw"},a.createElement("img",{className:se,src:n(500)})),a.createElement("div",{className:"P6XzPBuW8Osze59RSui1"},a.createElement("img",{className:se,src:n(126)})),a.createElement("div",{className:ie},e)),a.createElement("a",{href:"https://rushstack.io/",target:"_blank",rel:"noreferrer"},a.createElement("div",{className:ie},"rushstack.io"))))};const ue=()=>{const[e,t]=(0,a.useState)(!0),[n,r]=(0,a.useState)(!1),[o,l]=(0,a.useState)(!1);async function s(){await async function(){try{return await fetch(`${H}/health`),!0}catch(e){return!1}}()?t(!0):t(!1),r(!1)}(0,a.useEffect)((()=>{window.setInterval(s,2e3)}),[]);const i=(0,a.useCallback)((()=>{r(!0),l(!0),s().catch((e=>{console.error(`Unexpected exception: ${e}`)}))}),[]);return e?null:a.createElement("div",{className:"uVMB4BjTN3pGKpcO9hFB"},a.createElement("div",{className:`gyz87hLRy_DyMUyraMaM ${c}`},a.createElement(L.Text,{type:"h5",bold:!0},"The Lockfile Explorer server has disconnected!"),o?a.createElement(L.Text,{type:"p"},'We were still not able to connect to the server. Are you sure the "lockfile-explorer" shell command is running?'):a.createElement(L.Text,{type:"p"},'Please restart the "lockfile-explorer" shell command to continue using this application.'),a.createElement("div",{className:"UkJzWedRWYeVMPCVDmCS"},a.createElement(L.Button,{disabled:n,onClick:i},"Check Again"),n?a.createElement(L.Text,{type:"p"},"Checking..."):null)))},pe=(0,b.xC)({reducer:{entry:F,workspace:V},middleware:e=>e({serializableCheck:!1})}),fe=document.getElementById("root");l.render(a.createElement(v.zt,{store:pe},a.createElement((()=>{const e=y();return(0,a.useEffect)((()=>{(async function(){const t=await async function(){const e=await fetch(`${p}/api/lockfile`);return function(e){const t=[],n={},a=[];if(e.importers)for(const[r,l]of Object.entries(e.importers)){const e=new u({rawEntryId:r,kind:o.Project,rawYamlData:l});a.push(e),t.push(e),n[e.entryId]=e}const l=[];if(e.packages)for(const[r,a]of Object.entries(e.packages)){const e=new u({rawEntryId:r,kind:o.Package,rawYamlData:a});l.push(e),t.push(e),n[r]=e}for(const e of t)for(const t of e.dependencies){if(t.dependencyType===r.PEER_DEPENDENCY)continue;const o=n[t.entryId];o?(t.resolvedEntry=o,o.referrers.push(e)):console.error("Could not resolve dependency entryId: ",t.entryId)}return t}(await e.json())}();e(D(t))})().catch((e=>{console.log(`Failed to read lockfile: ${e}`)}))}),[]),a.createElement(a.Fragment,null,a.createElement(ue,null),a.createElement("div",{className:"uXEYthi0e8fjYu_FisVm"},a.createElement("div",{className:"ms-Grid",dir:"ltr"},a.createElement("div",{className:"ms-Grid-row"},a.createElement("div",{className:`ms-Grid-col ms-sm3 ${s}`},a.createElement(z,null)),a.createElement("div",{className:`ms-Grid-col ms-sm7 ${s}`},a.createElement(ce,null),a.createElement(X,null),a.createElement(re,null)),a.createElement("div",{className:`ms-Grid-col ms-sm2 ${s}`},a.createElement(de,null),a.createElement(oe,null))))))}),null)),fe)},581:function(e,t,n){var r,o;e.exports=(r=n(823),o=n(998),function(){"use strict";var e={714:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,".dVadg6u2kwiGWhobva5n{padding:4px 8px;border:1px solid #107c10;border-radius:2px}.dVadg6u2kwiGWhobva5n:hover{cursor:pointer;background-color:#dff6dd}",""]),l.locals={ButtonWrapper:"dVadg6u2kwiGWhobva5n"},t.Z=l},343:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,"button{all:unset}.i8BZVdjUfbst7_tarHzS{background-color:#fff;width:25px;min-width:25px;height:25px;border-radius:4px;display:flex;align-items:center;justify-content:center;border:1px solid #000;cursor:pointer}.i8BZVdjUfbst7_tarHzS:hover{background-color:#dff6dd}.l0YazbYK7P8YQSDvX2o0{color:#107c10}.w9I3BjE7cnjsfBLB3UyI{padding-left:15px;font-size:15px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}",""]),l.locals={CheckboxRoot:"i8BZVdjUfbst7_tarHzS",CheckboxIndicator:"l0YazbYK7P8YQSDvX2o0",Label:"w9I3BjE7cnjsfBLB3UyI"},t.Z=l},594:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,".FYuNNcaXqlTXB7M6DHBZ{border:solid 1px #666;border-radius:4px;padding:.4em}",""]),l.locals={InputWrapper:"FYuNNcaXqlTXB7M6DHBZ"},t.Z=l},517:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,'.gQUln75LgrNAv33iEQhx{border-radius:4px;overflow:hidden;--scrollbar-size: 6px;height:100%}.YABN5ZbWRfbX8Bbj41KF{width:100%;height:100%;border-radius:inherit}.YABN5ZbWRfbX8Bbj41KF>*{padding-right:8px}.ICjBreoW5ZAqZ9txdiH9{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;padding:2px;background:#f3f2f1;transition:background 160ms ease-out}.ICjBreoW5ZAqZ9txdiH9:hover{background:#f3f2f1}.ICjBreoW5ZAqZ9txdiH9[data-orientation=vertical]{width:var(--scrollbar-size)}.ICjBreoW5ZAqZ9txdiH9[data-orientation=horizontal]{flex-direction:column;height:var(--scrollbar-size)}.SNDfMaHFMf5swwou75WQ{flex:1;background:#107c10;border-radius:var(--scrollbar-size);position:relative}.SNDfMaHFMf5swwou75WQ::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:100%;height:100%;min-width:44px;min-height:44px}.KxOpf0j2WwULFJnM_2Up{background:#f3f2f1}',""]),l.locals={ScrollAreaRoot:"gQUln75LgrNAv33iEQhx",ScrollAreaViewport:"YABN5ZbWRfbX8Bbj41KF",ScrollAreaScrollbar:"ICjBreoW5ZAqZ9txdiH9",ScrollAreaThumb:"SNDfMaHFMf5swwou75WQ",ScrollAreaCorner:"KxOpf0j2WwULFJnM_2Up"},t.Z=l},861:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,"button,fieldset,input{all:unset}.YhXMGBOKBRuKAvsx8mwk{display:flex;flex-direction:column;width:100%}.t08yVQir831gIp_A2xsP{flex-shrink:0;display:flex;border-bottom:1px solid #107c10}.L7_6rMInDO6tBxFRFiuO{font-family:inherit;padding:0 20px;height:45px;flex:1;display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:#000;-webkit-user-select:none;-moz-user-select:none;user-select:none}.L7_6rMInDO6tBxFRFiuO:hover{color:#107c10;cursor:pointer}.L7_6rMInDO6tBxFRFiuO[data-state=active]{color:#107c10;box-shadow:inset 0 -1px 0 0 currentColor,0 1px 0 0 currentColor}.L7_6rMInDO6tBxFRFiuO:focus{position:relative;box-shadow:0 0 0 2px #107c10}.kLJtm9LC8LxOdvGhZdw_{flex-grow:1;padding:12px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;outline:none}.kLJtm9LC8LxOdvGhZdw_:focus{box-shadow:0 0 0 2px #000}",""]),l.locals={TabsRoot:"YhXMGBOKBRuKAvsx8mwk",TabsList:"t08yVQir831gIp_A2xsP",TabsTrigger:"L7_6rMInDO6tBxFRFiuO",TabsContent:"kLJtm9LC8LxOdvGhZdw_"},t.Z=l},47:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,'.EEW4moi09VKPLYf_QQjc{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:24px}.J7ir6XIWo7jdiI2ntfcg{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:21px}.SWvmPuRvIE0SV9q04VZG{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:19px}.QHCu9OO40pSJaXahbkYF{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:16px}.oK4n_cRPbdF5MN5Ed_h2{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:14px}.odUGt__AQTdr_z7W6Fk7{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:12px}.f_gEnP5sMtd6eYNOiYQQ{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;margin:0;font-weight:normal;line-height:1.5;font-size:14px}.aLGFzKvQOPA_BfQw5vqO{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:12px}',""]),l.locals={H1:"EEW4moi09VKPLYf_QQjc",H2:"J7ir6XIWo7jdiI2ntfcg",H3:"SWvmPuRvIE0SV9q04VZG",H4:"QHCu9OO40pSJaXahbkYF",H5:"oK4n_cRPbdF5MN5Ed_h2",H6:"odUGt__AQTdr_z7W6Fk7",ParagraphStyles:"f_gEnP5sMtd6eYNOiYQQ",SpanStyles:"aLGFzKvQOPA_BfQw5vqO"},t.Z=l},762:function(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var l={};if(r)for(var c=0;c<this.length;c++){var s=this[c][0];null!=s&&(l[s]=!0)}for(var i=0;i<e.length;i++){var d=[].concat(e[i]);r&&l[d[0]]||(void 0!==a&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=a),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},901:function(e){e.exports=function(e){return e[1]}},337:function(e){var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},l=[],c=0;c<e.length;c++){var s=e[c],i=r.base?s[0]+r.base:s[0],d=a[i]||0,u="".concat(i," ").concat(d);a[i]=d+1;var p=n(u),f={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==p)t[p].references++,t[p].updater(f);else{var m=o(f,r);r.byIndex=c,t.splice(c,0,{identifier:u,updater:m,references:1})}l.push(u)}return l}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var l=0;l<a.length;l++){var c=n(a[l]);t[c].references--}for(var s=r(e,o),i=0;i<a.length;i++){var d=n(a[i]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}a=s}}},67:function(e){var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},702:function(e){e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},266:function(e,t,n){e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},433:function(e){e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},767:function(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},156:function(e){e.exports=r},111:function(e){e.exports=o}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={id:r,exports:{}};return e[r](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return function(){n.r(a),n.d(a,{Button:function(){return k},Checkbox:function(){return Rt},Input:function(){return _t},ScrollArea:function(){return Re},Tabs:function(){return ft},Text:function(){return g}});var e=n(156),t=n.n(e),r=n(337),o=n.n(r),l=n(433),c=n.n(l),s=n(67),i=n.n(s),d=n(266),u=n.n(d),p=n(702),f=n.n(p),m=n(767),h=n.n(m),E=n(47),v={};v.styleTagTransform=h(),v.setAttributes=u(),v.insert=i().bind(null,"head"),v.domAPI=c(),v.insertStyleElement=f(),o()(E.Z,v);var y=E.Z&&E.Z.locals?E.Z.locals:void 0;const g=({type:e,bold:n=!1,children:r,className:o,size:a})=>{const l=Object.assign({fontWeight:n?"bold":"normal"},a?{fontSize:a}:{});switch(e){case"h1":return t().createElement("h1",{className:`${y.H1} ${o||""}`,style:l},r);case"h2":return t().createElement("h2",{className:`${y.H2} ${o||""}`,style:l},r);case"h3":return t().createElement("h3",{className:`${y.H3} ${o||""}`,style:l},r);case"h4":return t().createElement("h4",{className:`${y.H4} ${o||""}`,style:l},r);case"h5":return t().createElement("h5",{className:`${y.H5} ${o||""}`,style:l},r);case"h6":return t().createElement("h6",{className:`${y.H6} ${o||""}`,style:l},r);case"p":default:return t().createElement("p",{className:`${y.ParagraphStyles} ${o||""}`,style:l},r);case"span":return t().createElement("span",{className:`${y.SpanStyles} ${o||""}`,style:l},r)}};var b=n(714),w={};w.styleTagTransform=h(),w.setAttributes=u(),w.insert=i().bind(null,"head"),w.domAPI=c(),w.insertStyleElement=f(),o()(b.Z,w);var S=b.Z&&b.Z.locals?b.Z.locals:void 0;const k=({children:e,disabled:n=!1,onClick:r})=>t().createElement("button",{disabled:n,className:S.ButtonWrapper,onClick:r},t().createElement(g,{type:"span",size:14},e));function x(){return x=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},x.apply(this,arguments)}var C=n(111);function P(...e){return t=>e.forEach((e=>function(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}(e,t)))}function N(...t){return(0,e.useCallback)(P(...t),t)}const T=(0,e.forwardRef)(((t,n)=>{const{children:r,...o}=t,a=e.Children.toArray(r),l=a.find(A);if(l){const t=l.props.children,r=a.map((n=>n===l?e.Children.count(t)>1?e.Children.only(null):(0,e.isValidElement)(t)?t.props.children:null:n));return(0,e.createElement)(D,x({},o,{ref:n}),(0,e.isValidElement)(t)?(0,e.cloneElement)(t,void 0,r):null)}return(0,e.createElement)(D,x({},o,{ref:n}),r)}));T.displayName="Slot";const D=(0,e.forwardRef)(((t,n)=>{const{children:r,...o}=t;return(0,e.isValidElement)(r)?(0,e.cloneElement)(r,{...I(o,r.props),ref:P(n,r.ref)}):e.Children.count(r)>1?e.Children.only(null):null}));D.displayName="SlotClone";const R=({children:t})=>(0,e.createElement)(e.Fragment,null,t);function A(t){return(0,e.isValidElement)(t)&&t.type===R}function I(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{a(...e),o(...e)}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}const O=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"].reduce(((t,n)=>{const r=(0,e.forwardRef)(((t,r)=>{const{asChild:o,...a}=t,l=o?T:n;return(0,e.useEffect)((()=>{window[Symbol.for("radix-ui")]=!0}),[]),(0,e.createElement)(l,x({},a,{ref:r}))}));return r.displayName=`Primitive.${n}`,{...t,[n]:r}}),{}),_=Boolean(null===globalThis||void 0===globalThis?void 0:globalThis.document)?e.useLayoutEffect:()=>{},j=t=>{const{present:n,children:r}=t,o=function(t){const[n,r]=(0,e.useState)(),o=(0,e.useRef)({}),a=(0,e.useRef)(t),l=(0,e.useRef)("none"),c=t?"mounted":"unmounted",[s,i]=function(t,n){return(0,e.useReducer)(((e,t)=>{const r=n[e][t];return null!=r?r:e}),t)}(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,e.useEffect)((()=>{const e=M(o.current);l.current="mounted"===s?e:"none"}),[s]),_((()=>{const e=o.current,n=a.current;if(n!==t){const r=l.current,o=M(e);t?i("MOUNT"):"none"===o||"none"===(null==e?void 0:e.display)?i("UNMOUNT"):i(n&&r!==o?"ANIMATION_OUT":"UNMOUNT"),a.current=t}}),[t,i]),_((()=>{if(n){const e=e=>{const t=M(o.current).includes(e.animationName);e.target===n&&t&&(0,C.flushSync)((()=>i("ANIMATION_END")))},t=e=>{e.target===n&&(l.current=M(o.current))};return n.addEventListener("animationstart",t),n.addEventListener("animationcancel",e),n.addEventListener("animationend",e),()=>{n.removeEventListener("animationstart",t),n.removeEventListener("animationcancel",e),n.removeEventListener("animationend",e)}}i("ANIMATION_END")}),[n,i]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:(0,e.useCallback)((e=>{e&&(o.current=getComputedStyle(e)),r(e)}),[])}}(n),a="function"==typeof r?r({present:o.isPresent}):e.Children.only(r),l=N(o.ref,a.ref);return"function"==typeof r||o.isPresent?(0,e.cloneElement)(a,{ref:l}):null};function M(e){return(null==e?void 0:e.animationName)||"none"}function F(t,n=[]){let r=[];const o=()=>{const n=r.map((t=>(0,e.createContext)(t)));return function(r){const o=(null==r?void 0:r[t])||n;return(0,e.useMemo)((()=>({[`__scope${t}`]:{...r,[t]:o}})),[r,o])}};return o.scopeName=t,[function(n,o){const a=(0,e.createContext)(o),l=r.length;function c(n){const{scope:r,children:o,...c}=n,s=(null==r?void 0:r[t][l])||a,i=(0,e.useMemo)((()=>c),Object.values(c));return(0,e.createElement)(s.Provider,{value:i},o)}return r=[...r,o],c.displayName=n+"Provider",[c,function(r,c){const s=(null==c?void 0:c[t][l])||a,i=(0,e.useContext)(s);if(i)return i;if(void 0!==o)return o;throw new Error(`\`${r}\` must be used within \`${n}\``)}]},L(o,...n)]}function L(...t){const n=t[0];if(1===t.length)return n;const r=()=>{const r=t.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(t){const o=r.reduce(((e,{useScope:n,scopeName:r})=>({...e,...n(t)[`__scope${r}`]})),{});return(0,e.useMemo)((()=>({[`__scope${n.scopeName}`]:o})),[o])}};return r.scopeName=n.scopeName,r}function B(t){const n=(0,e.useRef)(t);return(0,e.useEffect)((()=>{n.current=t})),(0,e.useMemo)((()=>(...e)=>{var t;return null===(t=n.current)||void 0===t?void 0:t.call(n,...e)}),[])}j.displayName="Presence";const z=(0,e.createContext)(void 0);function H(t){const n=(0,e.useContext)(z);return t||n||"ltr"}function Z(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(null==e||e(r),!1===n||!r.defaultPrevented)return null==t?void 0:t(r)}}const U="ScrollArea",[Y,$]=F(U),[V,W]=Y(U),K=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,type:o="hover",dir:a,scrollHideDelay:l=600,...c}=t,[s,i]=(0,e.useState)(null),[d,u]=(0,e.useState)(null),[p,f]=(0,e.useState)(null),[m,h]=(0,e.useState)(null),[E,v]=(0,e.useState)(null),[y,g]=(0,e.useState)(0),[b,w]=(0,e.useState)(0),[S,k]=(0,e.useState)(!1),[C,P]=(0,e.useState)(!1),T=N(n,(e=>i(e))),D=H(a);return(0,e.createElement)(V,{scope:r,type:o,dir:D,scrollHideDelay:l,scrollArea:s,viewport:d,onViewportChange:u,content:p,onContentChange:f,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:S,onScrollbarXEnabledChange:k,scrollbarY:E,onScrollbarYChange:v,scrollbarYEnabled:C,onScrollbarYEnabledChange:P,onCornerWidthChange:g,onCornerHeightChange:w},(0,e.createElement)(O.div,x({dir:D},c,{ref:T,style:{position:"relative","--radix-scroll-area-corner-width":y+"px","--radix-scroll-area-corner-height":b+"px",...t.style}})))})),G=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,children:o,...a}=t,l=W("ScrollAreaViewport",r),c=N(n,(0,e.useRef)(null),l.onViewportChange);return(0,e.createElement)(e.Fragment,null,(0,e.createElement)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"}}),(0,e.createElement)(O.div,x({"data-radix-scroll-area-viewport":""},a,{ref:c,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...t.style}}),(0,e.createElement)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"}},o)))})),X="ScrollAreaScrollbar",J=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=W(X,t.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:c}=a,s="horizontal"===t.orientation;return(0,e.useEffect)((()=>(s?l(!0):c(!0),()=>{s?l(!1):c(!1)})),[s,l,c]),"hover"===a.type?(0,e.createElement)(Q,x({},o,{ref:n,forceMount:r})):"scroll"===a.type?(0,e.createElement)(q,x({},o,{ref:n,forceMount:r})):"auto"===a.type?(0,e.createElement)(ee,x({},o,{ref:n,forceMount:r})):"always"===a.type?(0,e.createElement)(te,x({},o,{ref:n})):null})),Q=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=W(X,t.__scopeScrollArea),[l,c]=(0,e.useState)(!1);return(0,e.useEffect)((()=>{const e=a.scrollArea;let t=0;if(e){const n=()=>{window.clearTimeout(t),c(!0)},r=()=>{t=window.setTimeout((()=>c(!1)),a.scrollHideDelay)};return e.addEventListener("pointerenter",n),e.addEventListener("pointerleave",r),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",n),e.removeEventListener("pointerleave",r)}}}),[a.scrollArea,a.scrollHideDelay]),(0,e.createElement)(j,{present:r||l},(0,e.createElement)(ee,x({"data-state":l?"visible":"hidden"},o,{ref:n})))})),q=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=W(X,t.__scopeScrollArea),l="horizontal"===t.orientation,c=be((()=>i("SCROLL_END")),100),[s,i]=(d={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},(0,e.useReducer)(((e,t)=>{const n=d[e][t];return null!=n?n:e}),"hidden"));var d;return(0,e.useEffect)((()=>{if("idle"===s){const e=window.setTimeout((()=>i("HIDE")),a.scrollHideDelay);return()=>window.clearTimeout(e)}}),[s,a.scrollHideDelay,i]),(0,e.useEffect)((()=>{const e=a.viewport,t=l?"scrollLeft":"scrollTop";if(e){let n=e[t];const r=()=>{const r=e[t];n!==r&&(i("SCROLL"),c()),n=r};return e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}}),[a.viewport,l,i,c]),(0,e.createElement)(j,{present:r||"hidden"!==s},(0,e.createElement)(te,x({"data-state":"hidden"===s?"hidden":"visible"},o,{ref:n,onPointerEnter:Z(t.onPointerEnter,(()=>i("POINTER_ENTER"))),onPointerLeave:Z(t.onPointerLeave,(()=>i("POINTER_LEAVE")))})))})),ee=(0,e.forwardRef)(((t,n)=>{const r=W(X,t.__scopeScrollArea),{forceMount:o,...a}=t,[l,c]=(0,e.useState)(!1),s="horizontal"===t.orientation,i=be((()=>{if(r.viewport){const e=r.viewport.offsetWidth<r.viewport.scrollWidth,t=r.viewport.offsetHeight<r.viewport.scrollHeight;c(s?e:t)}}),10);return we(r.viewport,i),we(r.content,i),(0,e.createElement)(j,{present:o||l},(0,e.createElement)(te,x({"data-state":l?"visible":"hidden"},a,{ref:n})))})),te=(0,e.forwardRef)(((t,n)=>{const{orientation:r="vertical",...o}=t,a=W(X,t.__scopeScrollArea),l=(0,e.useRef)(null),c=(0,e.useRef)(0),[s,i]=(0,e.useState)({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=me(s.viewport,s.content),u={...o,sizes:s,onSizesChange:i,hasThumb:Boolean(d>0&&d<1),onThumbChange:e=>l.current=e,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:e=>c.current=e};function p(e,t){return function(e,t,n,r="ltr"){const o=he(n),a=t||o/2,l=o-a,c=n.scrollbar.paddingStart+a,s=n.scrollbar.size-n.scrollbar.paddingEnd-l,i=n.content-n.viewport;return ve([c,s],"ltr"===r?[0,i]:[-1*i,0])(e)}(e,c.current,s,t)}return"horizontal"===r?(0,e.createElement)(ne,x({},u,{ref:n,onThumbPositionChange:()=>{if(a.viewport&&l.current){const e=Ee(a.viewport.scrollLeft,s,a.dir);l.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollLeft=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollLeft=p(e,a.dir))}})):"vertical"===r?(0,e.createElement)(re,x({},u,{ref:n,onThumbPositionChange:()=>{if(a.viewport&&l.current){const e=Ee(a.viewport.scrollTop,s);l.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollTop=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollTop=p(e))}})):null})),ne=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:o,...a}=t,l=W(X,t.__scopeScrollArea),[c,s]=(0,e.useState)(),i=(0,e.useRef)(null),d=N(n,i,l.onScrollbarXChange);return(0,e.useEffect)((()=>{i.current&&s(getComputedStyle(i.current))}),[i]),(0,e.createElement)(le,x({"data-orientation":"horizontal"},a,{ref:d,sizes:r,style:{bottom:0,left:"rtl"===l.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===l.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":he(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.x),onDragScroll:e=>t.onDragScroll(e.x),onWheelScroll:(e,n)=>{if(l.viewport){const r=l.viewport.scrollLeft+e.deltaX;t.onWheelScroll(r),ye(r,n)&&e.preventDefault()}},onResize:()=>{i.current&&l.viewport&&c&&o({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:fe(c.paddingLeft),paddingEnd:fe(c.paddingRight)}})}}))})),re=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:o,...a}=t,l=W(X,t.__scopeScrollArea),[c,s]=(0,e.useState)(),i=(0,e.useRef)(null),d=N(n,i,l.onScrollbarYChange);return(0,e.useEffect)((()=>{i.current&&s(getComputedStyle(i.current))}),[i]),(0,e.createElement)(le,x({"data-orientation":"vertical"},a,{ref:d,sizes:r,style:{top:0,right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":he(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.y),onDragScroll:e=>t.onDragScroll(e.y),onWheelScroll:(e,n)=>{if(l.viewport){const r=l.viewport.scrollTop+e.deltaY;t.onWheelScroll(r),ye(r,n)&&e.preventDefault()}},onResize:()=>{i.current&&l.viewport&&c&&o({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:fe(c.paddingTop),paddingEnd:fe(c.paddingBottom)}})}}))})),[oe,ae]=Y(X),le=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,sizes:o,hasThumb:a,onThumbChange:l,onThumbPointerUp:c,onThumbPointerDown:s,onThumbPositionChange:i,onDragScroll:d,onWheelScroll:u,onResize:p,...f}=t,m=W(X,r),[h,E]=(0,e.useState)(null),v=N(n,(e=>E(e))),y=(0,e.useRef)(null),g=(0,e.useRef)(""),b=m.viewport,w=o.content-o.viewport,S=B(u),k=B(i),C=be(p,10);function P(e){if(y.current){const t=e.clientX-y.current.left,n=e.clientY-y.current.top;d({x:t,y:n})}}return(0,e.useEffect)((()=>{const e=e=>{const t=e.target;(null==h?void 0:h.contains(t))&&S(e,w)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})}),[b,h,w,S]),(0,e.useEffect)(k,[o,k]),we(h,C),we(m.content,C),(0,e.createElement)(oe,{scope:r,scrollbar:h,hasThumb:a,onThumbChange:B(l),onThumbPointerUp:B(c),onThumbPositionChange:k,onThumbPointerDown:B(s)},(0,e.createElement)(O.div,x({},f,{ref:v,style:{position:"absolute",...f.style},onPointerDown:Z(t.onPointerDown,(e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),y.current=h.getBoundingClientRect(),g.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",P(e))})),onPointerMove:Z(t.onPointerMove,P),onPointerUp:Z(t.onPointerUp,(e=>{const t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=g.current,y.current=null}))})))})),ce="ScrollAreaThumb",se=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=ae(ce,t.__scopeScrollArea);return(0,e.createElement)(j,{present:r||a.hasThumb},(0,e.createElement)(ie,x({ref:n},o)))})),ie=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,style:o,...a}=t,l=W(ce,r),c=ae(ce,r),{onThumbPositionChange:s}=c,i=N(n,(e=>c.onThumbChange(e))),d=(0,e.useRef)(),u=be((()=>{d.current&&(d.current(),d.current=void 0)}),100);return(0,e.useEffect)((()=>{const e=l.viewport;if(e){const t=()=>{if(u(),!d.current){const t=ge(e,s);d.current=t,s()}};return s(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}}),[l.viewport,u,s]),(0,e.createElement)(O.div,x({"data-state":c.hasThumb?"visible":"hidden"},a,{ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:Z(t.onPointerDownCapture,(e=>{const t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;c.onThumbPointerDown({x:n,y:r})})),onPointerUp:Z(t.onPointerUp,c.onThumbPointerUp)}))})),de="ScrollAreaCorner",ue=(0,e.forwardRef)(((t,n)=>{const r=W(de,t.__scopeScrollArea),o=Boolean(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&o?(0,e.createElement)(pe,x({},t,{ref:n})):null})),pe=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,...o}=t,a=W(de,r),[l,c]=(0,e.useState)(0),[s,i]=(0,e.useState)(0),d=Boolean(l&&s);return we(a.scrollbarX,(()=>{var e;const t=(null===(e=a.scrollbarX)||void 0===e?void 0:e.offsetHeight)||0;a.onCornerHeightChange(t),i(t)})),we(a.scrollbarY,(()=>{var e;const t=(null===(e=a.scrollbarY)||void 0===e?void 0:e.offsetWidth)||0;a.onCornerWidthChange(t),c(t)})),d?(0,e.createElement)(O.div,x({},o,{ref:n,style:{width:l,height:s,position:"absolute",right:"ltr"===a.dir?0:void 0,left:"rtl"===a.dir?0:void 0,bottom:0,...t.style}})):null}));function fe(e){return e?parseInt(e,10):0}function me(e,t){const n=e/t;return isNaN(n)?0:n}function he(e){const t=me(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Ee(e,t,n="ltr"){const r=he(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-o,l=t.content-t.viewport,c=a-r,s=function(e,[t,n]){return Math.min(n,Math.max(t,e))}(e,"ltr"===n?[0,l]:[-1*l,0]);return ve([0,l],[0,c])(s)}function ve(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ye(e,t){return e>0&&e<t}const ge=(e,t=(()=>{}))=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function o(){const a={left:e.scrollLeft,top:e.scrollTop},l=n.left!==a.left,c=n.top!==a.top;(l||c)&&t(),n=a,r=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(r)};function be(t,n){const r=B(t),o=(0,e.useRef)(0);return(0,e.useEffect)((()=>()=>window.clearTimeout(o.current)),[]),(0,e.useCallback)((()=>{window.clearTimeout(o.current),o.current=window.setTimeout(r,n)}),[r,n])}function we(e,t){const n=B(t);_((()=>{let t=0;if(e){const r=new ResizeObserver((()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)}));return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}}),[e,n])}const Se=K,ke=G,xe=J,Ce=se,Pe=ue;var Ne=n(517),Te={};Te.styleTagTransform=h(),Te.setAttributes=u(),Te.insert=i().bind(null,"head"),Te.domAPI=c(),Te.insertStyleElement=f(),o()(Ne.Z,Te);var De=Ne.Z&&Ne.Z.locals?Ne.Z.locals:void 0;const Re=({children:e})=>t().createElement(Se,{className:De.ScrollAreaRoot},t().createElement(ke,{className:De.ScrollAreaViewport},e),t().createElement(xe,{className:De.ScrollAreaScrollbar,orientation:"vertical"},t().createElement(Ce,{className:De.ScrollAreaThumb})),t().createElement(xe,{className:De.ScrollAreaScrollbar,orientation:"horizontal"},t().createElement(Ce,{className:De.ScrollAreaThumb})),t().createElement(Pe,{className:De.ScrollAreaCorner})),Ae=e["useId".toString()]||(()=>{});let Ie=0;function Oe(t){const[n,r]=e.useState(Ae());return _((()=>{t||r((e=>null!=e?e:String(Ie++)))}),[t]),t||(n?`radix-${n}`:"")}function _e({prop:t,defaultProp:n,onChange:r=(()=>{})}){const[o,a]=function({defaultProp:t,onChange:n}){const r=(0,e.useState)(t),[o]=r,a=(0,e.useRef)(o),l=B(n);return(0,e.useEffect)((()=>{a.current!==o&&(l(o),a.current=o)}),[o,a,l]),r}({defaultProp:n,onChange:r}),l=void 0!==t,c=l?t:o,s=B(r);return[c,(0,e.useCallback)((e=>{if(l){const n="function"==typeof e?e(t):e;n!==t&&s(n)}else a(e)}),[l,t,a,s])]}const je="rovingFocusGroup.onEntryFocus",Me={bubbles:!1,cancelable:!0},Fe="RovingFocusGroup",[Le,Be,ze]=function(e){const n=e+"CollectionProvider",[r,o]=F(n),[a,l]=r(n,{collectionRef:{current:null},itemMap:new Map}),c=e+"CollectionSlot",s=e+"CollectionItemSlot",i="data-radix-collection-item";return[{Provider:e=>{const{scope:n,children:r}=e,o=t().useRef(null),l=t().useRef(new Map).current;return t().createElement(a,{scope:n,itemMap:l,collectionRef:o},r)},Slot:t().forwardRef(((e,n)=>{const{scope:r,children:o}=e,a=N(n,l(c,r).collectionRef);return t().createElement(T,{ref:a},o)})),ItemSlot:t().forwardRef(((e,n)=>{const{scope:r,children:o,...a}=e,c=t().useRef(null),d=N(n,c),u=l(s,r);return t().useEffect((()=>(u.itemMap.set(c,{ref:c,...a}),()=>{u.itemMap.delete(c)}))),t().createElement(T,{[i]:"",ref:d},o)}))},function(n){const r=l(e+"CollectionConsumer",n);return t().useCallback((()=>{const e=r.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${i}]`));return Array.from(r.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[r.collectionRef,r.itemMap])},o]}(Fe),[He,Ze]=F(Fe,[ze]),[Ue,Ye]=He(Fe),$e=(0,e.forwardRef)(((t,n)=>(0,e.createElement)(Le.Provider,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(Le.Slot,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(Ve,x({},t,{ref:n})))))),Ve=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,orientation:o,loop:a=!1,dir:l,currentTabStopId:c,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:i,onEntryFocus:d,...u}=t,p=(0,e.useRef)(null),f=N(n,p),m=H(l),[h=null,E]=_e({prop:c,defaultProp:s,onChange:i}),[v,y]=(0,e.useState)(!1),g=B(d),b=Be(r),w=(0,e.useRef)(!1),[S,k]=(0,e.useState)(0);return(0,e.useEffect)((()=>{const e=p.current;if(e)return e.addEventListener(je,g),()=>e.removeEventListener(je,g)}),[g]),(0,e.createElement)(Ue,{scope:r,orientation:o,dir:m,loop:a,currentTabStopId:h,onItemFocus:(0,e.useCallback)((e=>E(e)),[E]),onItemShiftTab:(0,e.useCallback)((()=>y(!0)),[]),onFocusableItemAdd:(0,e.useCallback)((()=>k((e=>e+1))),[]),onFocusableItemRemove:(0,e.useCallback)((()=>k((e=>e-1))),[])},(0,e.createElement)(O.div,x({tabIndex:v||0===S?-1:0,"data-orientation":o},u,{ref:f,style:{outline:"none",...t.style},onMouseDown:Z(t.onMouseDown,(()=>{w.current=!0})),onFocus:Z(t.onFocus,(e=>{const t=!w.current;if(e.target===e.currentTarget&&t&&!v){const t=new CustomEvent(je,Me);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=b().filter((e=>e.focusable));Ge([e.find((e=>e.active)),e.find((e=>e.id===h)),...e].filter(Boolean).map((e=>e.ref.current)))}}w.current=!1})),onBlur:Z(t.onBlur,(()=>y(!1)))})))})),We=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,focusable:o=!0,active:a=!1,tabStopId:l,...c}=t,s=Oe(),i=l||s,d=Ye("RovingFocusGroupItem",r),u=d.currentTabStopId===i,p=Be(r),{onFocusableItemAdd:f,onFocusableItemRemove:m}=d;return(0,e.useEffect)((()=>{if(o)return f(),()=>m()}),[o,f,m]),(0,e.createElement)(Le.ItemSlot,{scope:r,id:i,focusable:o,active:a},(0,e.createElement)(O.span,x({tabIndex:u?0:-1,"data-orientation":d.orientation},c,{ref:n,onMouseDown:Z(t.onMouseDown,(e=>{o?d.onItemFocus(i):e.preventDefault()})),onFocus:Z(t.onFocus,(()=>d.onItemFocus(i))),onKeyDown:Z(t.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const r=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)?void 0:Ke[r]}(e,d.orientation,d.dir);if(void 0!==t){e.preventDefault();let o=p().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)o.reverse();else if("prev"===t||"next"===t){"prev"===t&&o.reverse();const a=o.indexOf(e.currentTarget);o=d.loop?(r=a+1,(n=o).map(((e,t)=>n[(r+t)%n.length]))):o.slice(a+1)}setTimeout((()=>Ge(o)))}var n,r}))})))})),Ke={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Ge(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}const Xe=$e,Je=We,Qe="Tabs",[qe,et]=F(Qe,[Ze]),tt=Ze(),[nt,rt]=qe(Qe);function ot(e,t){return`${e}-trigger-${t}`}function at(e,t){return`${e}-content-${t}`}const lt=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,onValueChange:a,defaultValue:l,orientation:c="horizontal",dir:s,activationMode:i="automatic",...d}=t,u=H(s),[p,f]=_e({prop:o,onChange:a,defaultProp:l});return(0,e.createElement)(nt,{scope:r,baseId:Oe(),value:p,onValueChange:f,orientation:c,dir:u,activationMode:i},(0,e.createElement)(O.div,x({dir:u,"data-orientation":c},d,{ref:n})))})),ct=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,loop:o=!0,...a}=t,l=rt("TabsList",r),c=tt(r);return(0,e.createElement)(Xe,x({asChild:!0},c,{orientation:l.orientation,dir:l.dir,loop:o}),(0,e.createElement)(O.div,x({role:"tablist","aria-orientation":l.orientation},a,{ref:n})))})),st=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,disabled:a=!1,...l}=t,c=rt("TabsTrigger",r),s=tt(r),i=ot(c.baseId,o),d=at(c.baseId,o),u=o===c.value;return(0,e.createElement)(Je,x({asChild:!0},s,{focusable:!a,active:u}),(0,e.createElement)(O.button,x({type:"button",role:"tab","aria-selected":u,"aria-controls":d,"data-state":u?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:i},l,{ref:n,onMouseDown:Z(t.onMouseDown,(e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(o)})),onKeyDown:Z(t.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(o)})),onFocus:Z(t.onFocus,(()=>{const e="manual"!==c.activationMode;u||a||!e||c.onValueChange(o)}))})))})),it=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,forceMount:a,children:l,...c}=t,s=rt("TabsContent",r),i=ot(s.baseId,o),d=at(s.baseId,o),u=o===s.value,p=(0,e.useRef)(u);return(0,e.useEffect)((()=>{const e=requestAnimationFrame((()=>p.current=!1));return()=>cancelAnimationFrame(e)}),[]),(0,e.createElement)(j,{present:a||u},(({present:r})=>(0,e.createElement)(O.div,x({"data-state":u?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":i,hidden:!r,id:d,tabIndex:0},c,{ref:n,style:{...t.style,animationDuration:p.current?"0s":void 0}}),r&&l)))}));var dt=n(861),ut={};ut.styleTagTransform=h(),ut.setAttributes=u(),ut.insert=i().bind(null,"head"),ut.domAPI=c(),ut.insertStyleElement=f(),o()(dt.Z,ut);var pt=dt.Z&&dt.Z.locals?dt.Z.locals:void 0;const ft=({items:e,def:n,value:r,onChange:o,renderChildren:a})=>{const l=e=>void 0===e.value?e.header:e.value.toString();return t().createElement(lt,{className:pt.TabsRoot,defaultValue:n||e[0].header,value:r.toString(),onValueChange:o},t().createElement(ct,{className:pt.TabsList,"aria-label":"Manage your account"},e.map((e=>t().createElement(st,{key:e.header,className:pt.TabsTrigger,value:l(e)},e.header)))),a?a():e.map((e=>e.body?t().createElement(it,{className:pt.TabsContent,value:l(e)},e.body):null)))},mt="Checkbox",[ht,Et]=F(mt),[vt,yt]=ht(mt),gt=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,name:o,checked:a,defaultChecked:l,required:c,disabled:s,value:i="on",onCheckedChange:d,...u}=t,[p,f]=(0,e.useState)(null),m=N(n,(e=>f(e))),h=(0,e.useRef)(!1),E=!p||Boolean(p.closest("form")),[v=!1,y]=_e({prop:a,defaultProp:l,onChange:d});return(0,e.createElement)(vt,{scope:r,state:v,disabled:s},(0,e.createElement)(O.button,x({type:"button",role:"checkbox","aria-checked":wt(v)?"mixed":v,"aria-required":c,"data-state":St(v),"data-disabled":s?"":void 0,disabled:s,value:i},u,{ref:m,onKeyDown:Z(t.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:Z(t.onClick,(e=>{y((e=>!!wt(e)||!e)),E&&(h.current=e.isPropagationStopped(),h.current||e.stopPropagation())}))})),E&&(0,e.createElement)(bt,{control:p,bubbles:!h.current,name:o,value:i,checked:v,required:c,disabled:s,style:{transform:"translateX(-100%)"}}))})),bt=t=>{const{control:n,checked:r,bubbles:o=!0,...a}=t,l=(0,e.useRef)(null),c=function(t){const n=(0,e.useRef)({value:t,previous:t});return(0,e.useMemo)((()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous)),[t])}(r),s=function(t){const[n,r]=(0,e.useState)(void 0);return _((()=>{if(t){r({width:t.offsetWidth,height:t.offsetHeight});const e=new ResizeObserver((e=>{if(!Array.isArray(e))return;if(!e.length)return;const n=e[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,a=t.blockSize}else o=t.offsetWidth,a=t.offsetHeight;r({width:o,height:a})}));return e.observe(t,{box:"border-box"}),()=>e.unobserve(t)}r(void 0)}),[t]),n}(n);return(0,e.useEffect)((()=>{const e=l.current,t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(c!==r&&n){const t=new Event("click",{bubbles:o});e.indeterminate=wt(r),n.call(e,!wt(r)&&r),e.dispatchEvent(t)}}),[c,r,o]),(0,e.createElement)("input",x({type:"checkbox","aria-hidden":!0,defaultChecked:!wt(r)&&r},a,{tabIndex:-1,ref:l,style:{...t.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function wt(e){return"indeterminate"===e}function St(e){return wt(e)?"indeterminate":e?"checked":"unchecked"}const kt=gt,xt=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,forceMount:o,...a}=t,l=yt("CheckboxIndicator",r);return(0,e.createElement)(j,{present:o||wt(l.state)||!0===l.state},(0,e.createElement)(O.span,x({"data-state":St(l.state),"data-disabled":l.disabled?"":void 0},a,{ref:n,style:{pointerEvents:"none",...t.style}})))}));var Ct=["color"],Pt=(0,e.forwardRef)((function(t,n){var r=t.color,o=void 0===r?"currentColor":r,a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,Ct);return(0,e.createElement)("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a,{ref:n}),(0,e.createElement)("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:o,fillRule:"evenodd",clipRule:"evenodd"}))})),Nt=n(343),Tt={};Tt.styleTagTransform=h(),Tt.setAttributes=u(),Tt.insert=i().bind(null,"head"),Tt.domAPI=c(),Tt.insertStyleElement=f(),o()(Nt.Z,Tt);var Dt=Nt.Z&&Nt.Z.locals?Nt.Z.locals:void 0;const Rt=({label:e,isChecked:n,onChecked:r})=>t().createElement("form",null,t().createElement("div",{style:{display:"flex",alignItems:"center"}},t().createElement(kt,{className:Dt.CheckboxRoot,defaultChecked:!0,checked:n,onCheckedChange:r,id:e},t().createElement(xt,{className:Dt.CheckboxIndicator},t().createElement(Pt,null))),t().createElement("label",{className:Dt.Label,htmlFor:e},e)));var At=n(594),It={};It.styleTagTransform=h(),It.setAttributes=u(),It.insert=i().bind(null,"head"),It.domAPI=c(),It.insertStyleElement=f(),o()(At.Z,It);var Ot=At.Z&&At.Z.locals?At.Z.locals:void 0;const _t=({value:e,placeholder:n,onChange:r,type:o="text"})=>t().createElement("input",{type:o,value:e,placeholder:n,onChange:r,className:Ot.InputWrapper})}(),a}())},769:function(e,t,n){"use strict";e.exports=n.p+"d39919ddc699d58b84ba.svg"},500:function(e,t,n){"use strict";e.exports=n.p+"d13d30e9b42faf842d2f.svg"},126:function(e,t,n){"use strict";e.exports=n.p+"510f03f81080fd3cfd63.svg"}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}};return t[e].call(a.exports,a,a.exports,r),a.exports}r.m=t,e=[],r.O=function(t,n,o,a){if(!n){var l=1/0;for(d=0;d<e.length;d++){n=e[d][0],o=e[d][1],a=e[d][2];for(var c=!0,s=0;s<n.length;s++)(!1&a||l>=a)&&Object.keys(r.O).every((function(e){return r.O[e](n[s])}))?n.splice(s--,1):(c=!1,a<l&&(l=a));if(c){e.splice(d--,1);var i=o();void 0!==i&&(t=i)}}return t}a=a||0;for(var d=e.length;d>0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[n,o,a]},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e}(),function(){var e={143:0};r.O.j=function(t){return 0===e[t]};var t=function(t,n){var o,a,l=n[0],c=n[1],s=n[2],i=0;if(l.some((function(t){return 0!==e[t]}))){for(o in c)r.o(c,o)&&(r.m[o]=c[o]);if(s)var d=s(r)}for(t&&t(n);i<l.length;i++)a=l[i],r.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return r.O(d)},n=self.webpackChunk_rushstack_lockfile_explorer_web=self.webpackChunk_rushstack_lockfile_explorer_web||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var o=r.O(void 0,[714],(function(){return r(354)}));o=r.O(o)}();
package/dist/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Lockfile Explorer</title><link rel="stylesheet" href="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-core/11.0.0/css/fabric.min.css"/><script defer="defer" src="initappcontext.js"></script><script defer="defer" src="714.039cce649b76617abe19.js"></script><script defer="defer" src="app.bd5d10e51ec1391e96d9.js"></script><link href="app.631c08041cc6ac4d8695.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Lockfile Explorer</title><link rel="stylesheet" href="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-core/11.0.0/css/fabric.min.css"/><script defer="defer" src="initappcontext.js"></script><script defer="defer" src="714.039cce649b76617abe19.js"></script><script defer="defer" src="app.885644ef8b2a5e4ad56a.js"></script><link href="app.631c08041cc6ac4d8695.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"),require("react-dom"));else if("function"==typeof define&&define.amd)define("@rushstack/rush-themed-ui",["react","react-dom"],t);else{var n="object"==typeof exports?t(require("react"),require("react-dom")):t(e.react,e["react-dom"]);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,(function(e,t){return function(){"use strict";var n={156:function(t){t.exports=e},111:function(e){e.exports=t}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return n[e](a,a.exports,o),a.exports}o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return function(){o.r(a),o.d(a,{Button:function(){return r},Checkbox:function(){return at},Input:function(){return lt},ScrollArea:function(){return de},Tabs:function(){return Ve},Text:function(){return n}});var e=o(156),t=o.n(e);const n=({type:e,bold:n=!1,children:r,className:o,size:a})=>{const l=Object.assign({fontWeight:n?"bold":"normal"},a?{fontSize:a}:{});switch(e){case"h1":return t().createElement("h1",{className:`EEW4moi09VKPLYf_QQjc ${o||""}`,style:l},r);case"h2":return t().createElement("h2",{className:`J7ir6XIWo7jdiI2ntfcg ${o||""}`,style:l},r);case"h3":return t().createElement("h3",{className:`SWvmPuRvIE0SV9q04VZG ${o||""}`,style:l},r);case"h4":return t().createElement("h4",{className:`QHCu9OO40pSJaXahbkYF ${o||""}`,style:l},r);case"h5":return t().createElement("h5",{className:`oK4n_cRPbdF5MN5Ed_h2 ${o||""}`,style:l},r);case"h6":return t().createElement("h6",{className:`odUGt__AQTdr_z7W6Fk7 ${o||""}`,style:l},r);case"p":default:return t().createElement("p",{className:`f_gEnP5sMtd6eYNOiYQQ ${o||""}`,style:l},r);case"span":return t().createElement("span",{className:`aLGFzKvQOPA_BfQw5vqO ${o||""}`,style:l},r)}};const r=({children:e,disabled:r=!1,onClick:o})=>t().createElement("button",{disabled:r,className:"dVadg6u2kwiGWhobva5n",onClick:o},t().createElement(n,{type:"span",size:14},e));function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=o(111);function i(...e){return t=>e.forEach((e=>function(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}(e,t)))}function s(...t){return(0,e.useCallback)(i(...t),t)}const u=(0,e.forwardRef)(((t,n)=>{const{children:r,...o}=t,a=e.Children.toArray(r),c=a.find(p);if(c){const t=c.props.children,r=a.map((n=>n===c?e.Children.count(t)>1?e.Children.only(null):(0,e.isValidElement)(t)?t.props.children:null:n));return(0,e.createElement)(d,l({},o,{ref:n}),(0,e.isValidElement)(t)?(0,e.cloneElement)(t,void 0,r):null)}return(0,e.createElement)(d,l({},o,{ref:n}),r)}));u.displayName="Slot";const d=(0,e.forwardRef)(((t,n)=>{const{children:r,...o}=t;return(0,e.isValidElement)(r)?(0,e.cloneElement)(r,{...m(o,r.props),ref:i(n,r.ref)}):e.Children.count(r)>1?e.Children.only(null):null}));d.displayName="SlotClone";const f=({children:t})=>(0,e.createElement)(e.Fragment,null,t);function p(t){return(0,e.isValidElement)(t)&&t.type===f}function m(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{a(...e),o(...e)}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}const h=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"].reduce(((t,n)=>{const r=(0,e.forwardRef)(((t,r)=>{const{asChild:o,...a}=t,c=o?u:n;return(0,e.useEffect)((()=>{window[Symbol.for("radix-ui")]=!0}),[]),(0,e.createElement)(c,l({},a,{ref:r}))}));return r.displayName=`Primitive.${n}`,{...t,[n]:r}}),{}),v=Boolean(null===globalThis||void 0===globalThis?void 0:globalThis.document)?e.useLayoutEffect:()=>{},b=t=>{const{present:n,children:r}=t,o=function(t){const[n,r]=(0,e.useState)(),o=(0,e.useRef)({}),a=(0,e.useRef)(t),l=(0,e.useRef)("none"),i=t?"mounted":"unmounted",[s,u]=function(t,n){return(0,e.useReducer)(((e,t)=>{const r=n[e][t];return null!=r?r:e}),t)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,e.useEffect)((()=>{const e=w(o.current);l.current="mounted"===s?e:"none"}),[s]),v((()=>{const e=o.current,n=a.current;if(n!==t){const r=l.current,o=w(e);t?u("MOUNT"):"none"===o||"none"===(null==e?void 0:e.display)?u("UNMOUNT"):u(n&&r!==o?"ANIMATION_OUT":"UNMOUNT"),a.current=t}}),[t,u]),v((()=>{if(n){const e=e=>{const t=w(o.current).includes(e.animationName);e.target===n&&t&&(0,c.flushSync)((()=>u("ANIMATION_END")))},t=e=>{e.target===n&&(l.current=w(o.current))};return n.addEventListener("animationstart",t),n.addEventListener("animationcancel",e),n.addEventListener("animationend",e),()=>{n.removeEventListener("animationstart",t),n.removeEventListener("animationcancel",e),n.removeEventListener("animationend",e)}}u("ANIMATION_END")}),[n,u]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:(0,e.useCallback)((e=>{e&&(o.current=getComputedStyle(e)),r(e)}),[])}}(n),a="function"==typeof r?r({present:o.isPresent}):e.Children.only(r),l=s(o.ref,a.ref);return"function"==typeof r||o.isPresent?(0,e.cloneElement)(a,{ref:l}):null};function w(e){return(null==e?void 0:e.animationName)||"none"}function E(t,n=[]){let r=[];const o=()=>{const n=r.map((t=>(0,e.createContext)(t)));return function(r){const o=(null==r?void 0:r[t])||n;return(0,e.useMemo)((()=>({[`__scope${t}`]:{...r,[t]:o}})),[r,o])}};return o.scopeName=t,[function(n,o){const a=(0,e.createContext)(o),l=r.length;function c(n){const{scope:r,children:o,...c}=n,i=(null==r?void 0:r[t][l])||a,s=(0,e.useMemo)((()=>c),Object.values(c));return(0,e.createElement)(i.Provider,{value:s},o)}return r=[...r,o],c.displayName=n+"Provider",[c,function(r,c){const i=(null==c?void 0:c[t][l])||a,s=(0,e.useContext)(i);if(s)return s;if(void 0!==o)return o;throw new Error(`\`${r}\` must be used within \`${n}\``)}]},g(o,...n)]}function g(...t){const n=t[0];if(1===t.length)return n;const r=()=>{const r=t.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(t){const o=r.reduce(((e,{useScope:n,scopeName:r})=>({...e,...n(t)[`__scope${r}`]})),{});return(0,e.useMemo)((()=>({[`__scope${n.scopeName}`]:o})),[o])}};return r.scopeName=n.scopeName,r}function y(t){const n=(0,e.useRef)(t);return(0,e.useEffect)((()=>{n.current=t})),(0,e.useMemo)((()=>(...e)=>{var t;return null===(t=n.current)||void 0===t?void 0:t.call(n,...e)}),[])}b.displayName="Presence";const S=(0,e.createContext)(void 0);function C(t){const n=(0,e.useContext)(S);return t||n||"ltr"}function R(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(null==e||e(r),!1===n||!r.defaultPrevented)return null==t?void 0:t(r)}}const T="ScrollArea",[_,N]=E(T),[x,P]=_(T),A=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,type:o="hover",dir:a,scrollHideDelay:c=600,...i}=t,[u,d]=(0,e.useState)(null),[f,p]=(0,e.useState)(null),[m,v]=(0,e.useState)(null),[b,w]=(0,e.useState)(null),[E,g]=(0,e.useState)(null),[y,S]=(0,e.useState)(0),[R,T]=(0,e.useState)(0),[_,N]=(0,e.useState)(!1),[P,A]=(0,e.useState)(!1),I=s(n,(e=>d(e))),L=C(a);return(0,e.createElement)(x,{scope:r,type:o,dir:L,scrollHideDelay:c,scrollArea:u,viewport:f,onViewportChange:p,content:m,onContentChange:v,scrollbarX:b,onScrollbarXChange:w,scrollbarXEnabled:_,onScrollbarXEnabledChange:N,scrollbarY:E,onScrollbarYChange:g,scrollbarYEnabled:P,onScrollbarYEnabledChange:A,onCornerWidthChange:S,onCornerHeightChange:T},(0,e.createElement)(h.div,l({dir:L},i,{ref:I,style:{position:"relative","--radix-scroll-area-corner-width":y+"px","--radix-scroll-area-corner-height":R+"px",...t.style}})))})),I=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,children:o,...a}=t,c=P("ScrollAreaViewport",r),i=s(n,(0,e.useRef)(null),c.onViewportChange);return(0,e.createElement)(e.Fragment,null,(0,e.createElement)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"}}),(0,e.createElement)(h.div,l({"data-radix-scroll-area-viewport":""},a,{ref:i,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...t.style}}),(0,e.createElement)("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"}},o)))})),L="ScrollAreaScrollbar",M=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=P(L,t.__scopeScrollArea),{onScrollbarXEnabledChange:c,onScrollbarYEnabledChange:i}=a,s="horizontal"===t.orientation;return(0,e.useEffect)((()=>(s?c(!0):i(!0),()=>{s?c(!1):i(!1)})),[s,c,i]),"hover"===a.type?(0,e.createElement)(D,l({},o,{ref:n,forceMount:r})):"scroll"===a.type?(0,e.createElement)(k,l({},o,{ref:n,forceMount:r})):"auto"===a.type?(0,e.createElement)(O,l({},o,{ref:n,forceMount:r})):"always"===a.type?(0,e.createElement)(F,l({},o,{ref:n})):null})),D=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=P(L,t.__scopeScrollArea),[c,i]=(0,e.useState)(!1);return(0,e.useEffect)((()=>{const e=a.scrollArea;let t=0;if(e){const n=()=>{window.clearTimeout(t),i(!0)},r=()=>{t=window.setTimeout((()=>i(!1)),a.scrollHideDelay)};return e.addEventListener("pointerenter",n),e.addEventListener("pointerleave",r),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",n),e.removeEventListener("pointerleave",r)}}}),[a.scrollArea,a.scrollHideDelay]),(0,e.createElement)(b,{present:r||c},(0,e.createElement)(O,l({"data-state":c?"visible":"hidden"},o,{ref:n})))})),k=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=P(L,t.__scopeScrollArea),c="horizontal"===t.orientation,i=ne((()=>u("SCROLL_END")),100),[s,u]=("hidden",d={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},(0,e.useReducer)(((e,t)=>{const n=d[e][t];return null!=n?n:e}),"hidden"));var d;return(0,e.useEffect)((()=>{if("idle"===s){const e=window.setTimeout((()=>u("HIDE")),a.scrollHideDelay);return()=>window.clearTimeout(e)}}),[s,a.scrollHideDelay,u]),(0,e.useEffect)((()=>{const e=a.viewport,t=c?"scrollLeft":"scrollTop";if(e){let n=e[t];const r=()=>{const r=e[t];n!==r&&(u("SCROLL"),i()),n=r};return e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}}),[a.viewport,c,u,i]),(0,e.createElement)(b,{present:r||"hidden"!==s},(0,e.createElement)(F,l({"data-state":"hidden"===s?"hidden":"visible"},o,{ref:n,onPointerEnter:R(t.onPointerEnter,(()=>u("POINTER_ENTER"))),onPointerLeave:R(t.onPointerLeave,(()=>u("POINTER_LEAVE")))})))})),O=(0,e.forwardRef)(((t,n)=>{const r=P(L,t.__scopeScrollArea),{forceMount:o,...a}=t,[c,i]=(0,e.useState)(!1),s="horizontal"===t.orientation,u=ne((()=>{if(r.viewport){const e=r.viewport.offsetWidth<r.viewport.scrollWidth,t=r.viewport.offsetHeight<r.viewport.scrollHeight;i(s?e:t)}}),10);return re(r.viewport,u),re(r.content,u),(0,e.createElement)(b,{present:o||c},(0,e.createElement)(F,l({"data-state":c?"visible":"hidden"},a,{ref:n})))})),F=(0,e.forwardRef)(((t,n)=>{const{orientation:r="vertical",...o}=t,a=P(L,t.__scopeScrollArea),c=(0,e.useRef)(null),i=(0,e.useRef)(0),[s,u]=(0,e.useState)({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=G(s.viewport,s.content),f={...o,sizes:s,onSizesChange:u,hasThumb:Boolean(d>0&&d<1),onThumbChange:e=>c.current=e,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:e=>i.current=e};function p(e,t){return function(e,t,n,r="ltr"){const o=Q(n),a=t||o/2,l=o-a,c=n.scrollbar.paddingStart+a,i=n.scrollbar.size-n.scrollbar.paddingEnd-l,s=n.content-n.viewport;return J([c,i],"ltr"===r?[0,s]:[-1*s,0])(e)}(e,i.current,s,t)}return"horizontal"===r?(0,e.createElement)(z,l({},f,{ref:n,onThumbPositionChange:()=>{if(a.viewport&&c.current){const e=Z(a.viewport.scrollLeft,s,a.dir);c.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollLeft=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollLeft=p(e,a.dir))}})):"vertical"===r?(0,e.createElement)(U,l({},f,{ref:n,onThumbPositionChange:()=>{if(a.viewport&&c.current){const e=Z(a.viewport.scrollTop,s);c.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollTop=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollTop=p(e))}})):null})),z=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:o,...a}=t,c=P(L,t.__scopeScrollArea),[i,u]=(0,e.useState)(),d=(0,e.useRef)(null),f=s(n,d,c.onScrollbarXChange);return(0,e.useEffect)((()=>{d.current&&u(getComputedStyle(d.current))}),[d]),(0,e.createElement)(H,l({"data-orientation":"horizontal"},a,{ref:f,sizes:r,style:{bottom:0,left:"rtl"===c.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===c.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Q(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.x),onDragScroll:e=>t.onDragScroll(e.x),onWheelScroll:(e,n)=>{if(c.viewport){const r=c.viewport.scrollLeft+e.deltaX;t.onWheelScroll(r),ee(r,n)&&e.preventDefault()}},onResize:()=>{d.current&&c.viewport&&i&&o({content:c.viewport.scrollWidth,viewport:c.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:q(i.paddingLeft),paddingEnd:q(i.paddingRight)}})}}))})),U=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:o,...a}=t,c=P(L,t.__scopeScrollArea),[i,u]=(0,e.useState)(),d=(0,e.useRef)(null),f=s(n,d,c.onScrollbarYChange);return(0,e.useEffect)((()=>{d.current&&u(getComputedStyle(d.current))}),[d]),(0,e.createElement)(H,l({"data-orientation":"vertical"},a,{ref:f,sizes:r,style:{top:0,right:"ltr"===c.dir?0:void 0,left:"rtl"===c.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Q(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.y),onDragScroll:e=>t.onDragScroll(e.y),onWheelScroll:(e,n)=>{if(c.viewport){const r=c.viewport.scrollTop+e.deltaY;t.onWheelScroll(r),ee(r,n)&&e.preventDefault()}},onResize:()=>{d.current&&c.viewport&&i&&o({content:c.viewport.scrollHeight,viewport:c.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:q(i.paddingTop),paddingEnd:q(i.paddingBottom)}})}}))})),[B,W]=_(L),H=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,sizes:o,hasThumb:a,onThumbChange:c,onThumbPointerUp:i,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:p,onResize:m,...v}=t,b=P(L,r),[w,E]=(0,e.useState)(null),g=s(n,(e=>E(e))),S=(0,e.useRef)(null),C=(0,e.useRef)(""),T=b.viewport,_=o.content-o.viewport,N=y(p),x=y(d),A=ne(m,10);function I(e){if(S.current){const t=e.clientX-S.current.left,n=e.clientY-S.current.top;f({x:t,y:n})}}return(0,e.useEffect)((()=>{const e=e=>{const t=e.target;(null==w?void 0:w.contains(t))&&N(e,_)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})}),[T,w,_,N]),(0,e.useEffect)(x,[o,x]),re(w,A),re(b.content,A),(0,e.createElement)(B,{scope:r,scrollbar:w,hasThumb:a,onThumbChange:y(c),onThumbPointerUp:y(i),onThumbPositionChange:x,onThumbPointerDown:y(u)},(0,e.createElement)(h.div,l({},v,{ref:g,style:{position:"absolute",...v.style},onPointerDown:R(t.onPointerDown,(e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),S.current=w.getBoundingClientRect(),C.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",I(e))})),onPointerMove:R(t.onPointerMove,I),onPointerUp:R(t.onPointerUp,(e=>{const t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=C.current,S.current=null}))})))})),j="ScrollAreaThumb",Y=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=W(j,t.__scopeScrollArea);return(0,e.createElement)(b,{present:r||a.hasThumb},(0,e.createElement)(V,l({ref:n},o)))})),V=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,style:o,...a}=t,c=P(j,r),i=W(j,r),{onThumbPositionChange:u}=i,d=s(n,(e=>i.onThumbChange(e))),f=(0,e.useRef)(),p=ne((()=>{f.current&&(f.current(),f.current=void 0)}),100);return(0,e.useEffect)((()=>{const e=c.viewport;if(e){const t=()=>{if(p(),!f.current){const t=te(e,u);f.current=t,u()}};return u(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}}),[c.viewport,p,u]),(0,e.createElement)(h.div,l({"data-state":i.hasThumb?"visible":"hidden"},a,{ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:R(t.onPointerDownCapture,(e=>{const t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;i.onThumbPointerDown({x:n,y:r})})),onPointerUp:R(t.onPointerUp,i.onThumbPointerUp)}))})),X="ScrollAreaCorner",$=(0,e.forwardRef)(((t,n)=>{const r=P(X,t.__scopeScrollArea),o=Boolean(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&o?(0,e.createElement)(K,l({},t,{ref:n})):null})),K=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,...o}=t,a=P(X,r),[c,i]=(0,e.useState)(0),[s,u]=(0,e.useState)(0),d=Boolean(c&&s);return re(a.scrollbarX,(()=>{var e;const t=(null===(e=a.scrollbarX)||void 0===e?void 0:e.offsetHeight)||0;a.onCornerHeightChange(t),u(t)})),re(a.scrollbarY,(()=>{var e;const t=(null===(e=a.scrollbarY)||void 0===e?void 0:e.offsetWidth)||0;a.onCornerWidthChange(t),i(t)})),d?(0,e.createElement)(h.div,l({},o,{ref:n,style:{width:c,height:s,position:"absolute",right:"ltr"===a.dir?0:void 0,left:"rtl"===a.dir?0:void 0,bottom:0,...t.style}})):null}));function q(e){return e?parseInt(e,10):0}function G(e,t){const n=e/t;return isNaN(n)?0:n}function Q(e){const t=G(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Z(e,t,n="ltr"){const r=Q(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-o,l=t.content-t.viewport,c=a-r,i=function(e,[t,n]){return Math.min(n,Math.max(t,e))}(e,"ltr"===n?[0,l]:[-1*l,0]);return J([0,l],[0,c])(i)}function J(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ee(e,t){return e>0&&e<t}const te=(e,t=(()=>{}))=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function o(){const a={left:e.scrollLeft,top:e.scrollTop},l=n.left!==a.left,c=n.top!==a.top;(l||c)&&t(),n=a,r=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(r)};function ne(t,n){const r=y(t),o=(0,e.useRef)(0);return(0,e.useEffect)((()=>()=>window.clearTimeout(o.current)),[]),(0,e.useCallback)((()=>{window.clearTimeout(o.current),o.current=window.setTimeout(r,n)}),[r,n])}function re(e,t){const n=y(t);v((()=>{let t=0;if(e){const r=new ResizeObserver((()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)}));return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}}),[e,n])}const oe=A,ae=I,le=M,ce=Y,ie=$;var se="ICjBreoW5ZAqZ9txdiH9",ue="SNDfMaHFMf5swwou75WQ";const de=({children:e})=>t().createElement(oe,{className:"gQUln75LgrNAv33iEQhx"},t().createElement(ae,{className:"YABN5ZbWRfbX8Bbj41KF"},e),t().createElement(le,{className:se,orientation:"vertical"},t().createElement(ce,{className:ue})),t().createElement(le,{className:se,orientation:"horizontal"},t().createElement(ce,{className:ue})),t().createElement(ie,{className:"KxOpf0j2WwULFJnM_2Up"})),fe=e["useId".toString()]||(()=>{});let pe=0;function me(t){const[n,r]=e.useState(fe());return v((()=>{t||r((e=>null!=e?e:String(pe++)))}),[t]),t||(n?`radix-${n}`:"")}function he({prop:t,defaultProp:n,onChange:r=(()=>{})}){const[o,a]=function({defaultProp:t,onChange:n}){const r=(0,e.useState)(t),[o]=r,a=(0,e.useRef)(o),l=y(n);return(0,e.useEffect)((()=>{a.current!==o&&(l(o),a.current=o)}),[o,a,l]),r}({defaultProp:n,onChange:r}),l=void 0!==t,c=l?t:o,i=y(r);return[c,(0,e.useCallback)((e=>{if(l){const n="function"==typeof e?e(t):e;n!==t&&i(n)}else a(e)}),[l,t,a,i])]}const ve="rovingFocusGroup.onEntryFocus",be={bubbles:!1,cancelable:!0},we="RovingFocusGroup",[Ee,ge,ye]=function(e){const n=e+"CollectionProvider",[r,o]=E(n),[a,l]=r(n,{collectionRef:{current:null},itemMap:new Map}),c=e+"CollectionSlot",i=e+"CollectionItemSlot",d="data-radix-collection-item";return[{Provider:e=>{const{scope:n,children:r}=e,o=t().useRef(null),l=t().useRef(new Map).current;return t().createElement(a,{scope:n,itemMap:l,collectionRef:o},r)},Slot:t().forwardRef(((e,n)=>{const{scope:r,children:o}=e,a=s(n,l(c,r).collectionRef);return t().createElement(u,{ref:a},o)})),ItemSlot:t().forwardRef(((e,n)=>{const{scope:r,children:o,...a}=e,c=t().useRef(null),f=s(n,c),p=l(i,r);return t().useEffect((()=>(p.itemMap.set(c,{ref:c,...a}),()=>{p.itemMap.delete(c)}))),t().createElement(u,{[d]:"",ref:f},o)}))},function(n){const r=l(e+"CollectionConsumer",n);return t().useCallback((()=>{const e=r.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(r.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[r.collectionRef,r.itemMap])},o]}(we),[Se,Ce]=E(we,[ye]),[Re,Te]=Se(we),_e=(0,e.forwardRef)(((t,n)=>(0,e.createElement)(Ee.Provider,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(Ee.Slot,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(Ne,l({},t,{ref:n})))))),Ne=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,orientation:o,loop:a=!1,dir:c,currentTabStopId:i,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,...p}=t,m=(0,e.useRef)(null),v=s(n,m),b=C(c),[w=null,E]=he({prop:i,defaultProp:u,onChange:d}),[g,S]=(0,e.useState)(!1),T=y(f),_=ge(r),N=(0,e.useRef)(!1),[x,P]=(0,e.useState)(0);return(0,e.useEffect)((()=>{const e=m.current;if(e)return e.addEventListener(ve,T),()=>e.removeEventListener(ve,T)}),[T]),(0,e.createElement)(Re,{scope:r,orientation:o,dir:b,loop:a,currentTabStopId:w,onItemFocus:(0,e.useCallback)((e=>E(e)),[E]),onItemShiftTab:(0,e.useCallback)((()=>S(!0)),[]),onFocusableItemAdd:(0,e.useCallback)((()=>P((e=>e+1))),[]),onFocusableItemRemove:(0,e.useCallback)((()=>P((e=>e-1))),[])},(0,e.createElement)(h.div,l({tabIndex:g||0===x?-1:0,"data-orientation":o},p,{ref:v,style:{outline:"none",...t.style},onMouseDown:R(t.onMouseDown,(()=>{N.current=!0})),onFocus:R(t.onFocus,(e=>{const t=!N.current;if(e.target===e.currentTarget&&t&&!g){const t=new CustomEvent(ve,be);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=_().filter((e=>e.focusable));Ae([e.find((e=>e.active)),e.find((e=>e.id===w)),...e].filter(Boolean).map((e=>e.ref.current)))}}N.current=!1})),onBlur:R(t.onBlur,(()=>S(!1)))})))})),xe=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,focusable:o=!0,active:a=!1,tabStopId:c,...i}=t,s=me(),u=c||s,d=Te("RovingFocusGroupItem",r),f=d.currentTabStopId===u,p=ge(r),{onFocusableItemAdd:m,onFocusableItemRemove:v}=d;return(0,e.useEffect)((()=>{if(o)return m(),()=>v()}),[o,m,v]),(0,e.createElement)(Ee.ItemSlot,{scope:r,id:u,focusable:o,active:a},(0,e.createElement)(h.span,l({tabIndex:f?0:-1,"data-orientation":d.orientation},i,{ref:n,onMouseDown:R(t.onMouseDown,(e=>{o?d.onItemFocus(u):e.preventDefault()})),onFocus:R(t.onFocus,(()=>d.onItemFocus(u))),onKeyDown:R(t.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const r=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)?void 0:Pe[r]}(e,d.orientation,d.dir);if(void 0!==t){e.preventDefault();let o=p().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)o.reverse();else if("prev"===t||"next"===t){"prev"===t&&o.reverse();const a=o.indexOf(e.currentTarget);o=d.loop?(r=a+1,(n=o).map(((e,t)=>n[(r+t)%n.length]))):o.slice(a+1)}setTimeout((()=>Ae(o)))}var n,r}))})))})),Pe={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Ae(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}const Ie=_e,Le=xe,Me="Tabs",[De,ke]=E(Me,[Ce]),Oe=Ce(),[Fe,ze]=De(Me);function Ue(e,t){return`${e}-trigger-${t}`}function Be(e,t){return`${e}-content-${t}`}const We=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,onValueChange:a,defaultValue:c,orientation:i="horizontal",dir:s,activationMode:u="automatic",...d}=t,f=C(s),[p,m]=he({prop:o,onChange:a,defaultProp:c});return(0,e.createElement)(Fe,{scope:r,baseId:me(),value:p,onValueChange:m,orientation:i,dir:f,activationMode:u},(0,e.createElement)(h.div,l({dir:f,"data-orientation":i},d,{ref:n})))})),He=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,loop:o=!0,...a}=t,c=ze("TabsList",r),i=Oe(r);return(0,e.createElement)(Ie,l({asChild:!0},i,{orientation:c.orientation,dir:c.dir,loop:o}),(0,e.createElement)(h.div,l({role:"tablist","aria-orientation":c.orientation},a,{ref:n})))})),je=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,disabled:a=!1,...c}=t,i=ze("TabsTrigger",r),s=Oe(r),u=Ue(i.baseId,o),d=Be(i.baseId,o),f=o===i.value;return(0,e.createElement)(Le,l({asChild:!0},s,{focusable:!a,active:f}),(0,e.createElement)(h.button,l({type:"button",role:"tab","aria-selected":f,"aria-controls":d,"data-state":f?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:u},c,{ref:n,onMouseDown:R(t.onMouseDown,(e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():i.onValueChange(o)})),onKeyDown:R(t.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&i.onValueChange(o)})),onFocus:R(t.onFocus,(()=>{const e="manual"!==i.activationMode;f||a||!e||i.onValueChange(o)}))})))})),Ye=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,forceMount:a,children:c,...i}=t,s=ze("TabsContent",r),u=Ue(s.baseId,o),d=Be(s.baseId,o),f=o===s.value,p=(0,e.useRef)(f);return(0,e.useEffect)((()=>{const e=requestAnimationFrame((()=>p.current=!1));return()=>cancelAnimationFrame(e)}),[]),(0,e.createElement)(b,{present:a||f},(({present:r})=>(0,e.createElement)(h.div,l({"data-state":f?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":u,hidden:!r,id:d,tabIndex:0},i,{ref:n,style:{...t.style,animationDuration:p.current?"0s":void 0}}),r&&c)))}));const Ve=({items:e,def:n,value:r,onChange:o,renderChildren:a})=>{const l=e=>void 0===e.value?e.header:e.value.toString();return t().createElement(We,{className:"YhXMGBOKBRuKAvsx8mwk",defaultValue:n||e[0].header,value:r.toString(),onValueChange:o},t().createElement(He,{className:"t08yVQir831gIp_A2xsP","aria-label":"Manage your account"},e.map((e=>t().createElement(je,{key:e.header,className:"L7_6rMInDO6tBxFRFiuO",value:l(e)},e.header)))),a?a():e.map((e=>e.body?t().createElement(Ye,{className:"kLJtm9LC8LxOdvGhZdw_",value:l(e)},e.body):null)))},Xe="Checkbox",[$e,Ke]=E(Xe),[qe,Ge]=$e(Xe),Qe=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,name:o,checked:a,defaultChecked:c,required:i,disabled:u,value:d="on",onCheckedChange:f,...p}=t,[m,v]=(0,e.useState)(null),b=s(n,(e=>v(e))),w=(0,e.useRef)(!1),E=!m||Boolean(m.closest("form")),[g=!1,y]=he({prop:a,defaultProp:c,onChange:f});return(0,e.createElement)(qe,{scope:r,state:g,disabled:u},(0,e.createElement)(h.button,l({type:"button",role:"checkbox","aria-checked":Je(g)?"mixed":g,"aria-required":i,"data-state":et(g),"data-disabled":u?"":void 0,disabled:u,value:d},p,{ref:b,onKeyDown:R(t.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:R(t.onClick,(e=>{y((e=>!!Je(e)||!e)),E&&(w.current=e.isPropagationStopped(),w.current||e.stopPropagation())}))})),E&&(0,e.createElement)(Ze,{control:m,bubbles:!w.current,name:o,value:d,checked:g,required:i,disabled:u,style:{transform:"translateX(-100%)"}}))})),Ze=t=>{const{control:n,checked:r,bubbles:o=!0,...a}=t,c=(0,e.useRef)(null),i=function(t){const n=(0,e.useRef)({value:t,previous:t});return(0,e.useMemo)((()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous)),[t])}(r),s=function(t){const[n,r]=(0,e.useState)(void 0);return v((()=>{if(t){r({width:t.offsetWidth,height:t.offsetHeight});const e=new ResizeObserver((e=>{if(!Array.isArray(e))return;if(!e.length)return;const n=e[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,a=t.blockSize}else o=t.offsetWidth,a=t.offsetHeight;r({width:o,height:a})}));return e.observe(t,{box:"border-box"}),()=>e.unobserve(t)}r(void 0)}),[t]),n}(n);return(0,e.useEffect)((()=>{const e=c.current,t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(i!==r&&n){const t=new Event("click",{bubbles:o});e.indeterminate=Je(r),n.call(e,!Je(r)&&r),e.dispatchEvent(t)}}),[i,r,o]),(0,e.createElement)("input",l({type:"checkbox","aria-hidden":!0,defaultChecked:!Je(r)&&r},a,{tabIndex:-1,ref:c,style:{...t.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function Je(e){return"indeterminate"===e}function et(e){return Je(e)?"indeterminate":e?"checked":"unchecked"}const tt=Qe,nt=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,forceMount:o,...a}=t,c=Ge("CheckboxIndicator",r);return(0,e.createElement)(b,{present:o||Je(c.state)||!0===c.state},(0,e.createElement)(h.span,l({"data-state":et(c.state),"data-disabled":c.disabled?"":void 0},a,{ref:n,style:{pointerEvents:"none",...t.style}})))}));var rt=["color"],ot=(0,e.forwardRef)((function(t,n){var r=t.color,o=void 0===r?"currentColor":r,a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,rt);return(0,e.createElement)("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a,{ref:n}),(0,e.createElement)("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:o,fillRule:"evenodd",clipRule:"evenodd"}))}));const at=({label:e,isChecked:n,onChecked:r})=>t().createElement("form",null,t().createElement("div",{style:{display:"flex",alignItems:"center"}},t().createElement(tt,{className:"i8BZVdjUfbst7_tarHzS",defaultChecked:!0,checked:n,onCheckedChange:r,id:e},t().createElement(nt,{className:"l0YazbYK7P8YQSDvX2o0"},t().createElement(ot,null))),t().createElement("label",{className:"w9I3BjE7cnjsfBLB3UyI",htmlFor:e},e)));const lt=({value:e,placeholder:n,onChange:r,type:o="text"})=>t().createElement("input",{type:o,value:e,placeholder:n,onChange:r,className:"FYuNNcaXqlTXB7M6DHBZ"})}(),a}()}));
2
- //# sourceMappingURL=rush-themed-ui.f8c233a94ae3b52111a138b2ba61ad04.js.map
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"),require("react-dom"));else if("function"==typeof define&&define.amd)define("@rushstack/rush-themed-ui",["react","react-dom"],t);else{var n="object"==typeof exports?t(require("react"),require("react-dom")):t(e.react,e["react-dom"]);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,(function(e,t){return function(){"use strict";var n={714:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,".dVadg6u2kwiGWhobva5n{padding:4px 8px;border:1px solid #107c10;border-radius:2px}.dVadg6u2kwiGWhobva5n:hover{cursor:pointer;background-color:#dff6dd}",""]),l.locals={ButtonWrapper:"dVadg6u2kwiGWhobva5n"},t.Z=l},343:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,"button{all:unset}.i8BZVdjUfbst7_tarHzS{background-color:#fff;width:25px;min-width:25px;height:25px;border-radius:4px;display:flex;align-items:center;justify-content:center;border:1px solid #000;cursor:pointer}.i8BZVdjUfbst7_tarHzS:hover{background-color:#dff6dd}.l0YazbYK7P8YQSDvX2o0{color:#107c10}.w9I3BjE7cnjsfBLB3UyI{padding-left:15px;font-size:15px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}",""]),l.locals={CheckboxRoot:"i8BZVdjUfbst7_tarHzS",CheckboxIndicator:"l0YazbYK7P8YQSDvX2o0",Label:"w9I3BjE7cnjsfBLB3UyI"},t.Z=l},594:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,".FYuNNcaXqlTXB7M6DHBZ{border:solid 1px #666;border-radius:4px;padding:.4em}",""]),l.locals={InputWrapper:"FYuNNcaXqlTXB7M6DHBZ"},t.Z=l},517:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,'.gQUln75LgrNAv33iEQhx{border-radius:4px;overflow:hidden;--scrollbar-size: 6px;height:100%}.YABN5ZbWRfbX8Bbj41KF{width:100%;height:100%;border-radius:inherit}.YABN5ZbWRfbX8Bbj41KF>*{padding-right:8px}.ICjBreoW5ZAqZ9txdiH9{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;padding:2px;background:#f3f2f1;transition:background 160ms ease-out}.ICjBreoW5ZAqZ9txdiH9:hover{background:#f3f2f1}.ICjBreoW5ZAqZ9txdiH9[data-orientation=vertical]{width:var(--scrollbar-size)}.ICjBreoW5ZAqZ9txdiH9[data-orientation=horizontal]{flex-direction:column;height:var(--scrollbar-size)}.SNDfMaHFMf5swwou75WQ{flex:1;background:#107c10;border-radius:var(--scrollbar-size);position:relative}.SNDfMaHFMf5swwou75WQ::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:100%;height:100%;min-width:44px;min-height:44px}.KxOpf0j2WwULFJnM_2Up{background:#f3f2f1}',""]),l.locals={ScrollAreaRoot:"gQUln75LgrNAv33iEQhx",ScrollAreaViewport:"YABN5ZbWRfbX8Bbj41KF",ScrollAreaScrollbar:"ICjBreoW5ZAqZ9txdiH9",ScrollAreaThumb:"SNDfMaHFMf5swwou75WQ",ScrollAreaCorner:"KxOpf0j2WwULFJnM_2Up"},t.Z=l},861:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,"button,fieldset,input{all:unset}.YhXMGBOKBRuKAvsx8mwk{display:flex;flex-direction:column;width:100%}.t08yVQir831gIp_A2xsP{flex-shrink:0;display:flex;border-bottom:1px solid #107c10}.L7_6rMInDO6tBxFRFiuO{font-family:inherit;padding:0 20px;height:45px;flex:1;display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:#000;-webkit-user-select:none;-moz-user-select:none;user-select:none}.L7_6rMInDO6tBxFRFiuO:hover{color:#107c10;cursor:pointer}.L7_6rMInDO6tBxFRFiuO[data-state=active]{color:#107c10;box-shadow:inset 0 -1px 0 0 currentColor,0 1px 0 0 currentColor}.L7_6rMInDO6tBxFRFiuO:focus{position:relative;box-shadow:0 0 0 2px #107c10}.kLJtm9LC8LxOdvGhZdw_{flex-grow:1;padding:12px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;outline:none}.kLJtm9LC8LxOdvGhZdw_:focus{box-shadow:0 0 0 2px #000}",""]),l.locals={TabsRoot:"YhXMGBOKBRuKAvsx8mwk",TabsList:"t08yVQir831gIp_A2xsP",TabsTrigger:"L7_6rMInDO6tBxFRFiuO",TabsContent:"kLJtm9LC8LxOdvGhZdw_"},t.Z=l},47:function(e,t,n){var r=n(901),o=n.n(r),a=n(762),l=n.n(a)()(o());l.push([e.id,'.EEW4moi09VKPLYf_QQjc{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:24px}.J7ir6XIWo7jdiI2ntfcg{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:21px}.SWvmPuRvIE0SV9q04VZG{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:19px}.QHCu9OO40pSJaXahbkYF{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:16px}.oK4n_cRPbdF5MN5Ed_h2{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:14px}.odUGt__AQTdr_z7W6Fk7{font-weight:bold;line-height:1.2;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:12px}.f_gEnP5sMtd6eYNOiYQQ{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;margin:0;font-weight:normal;line-height:1.5;font-size:14px}.aLGFzKvQOPA_BfQw5vqO{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-size:12px}',""]),l.locals={H1:"EEW4moi09VKPLYf_QQjc",H2:"J7ir6XIWo7jdiI2ntfcg",H3:"SWvmPuRvIE0SV9q04VZG",H4:"QHCu9OO40pSJaXahbkYF",H5:"oK4n_cRPbdF5MN5Ed_h2",H6:"odUGt__AQTdr_z7W6Fk7",ParagraphStyles:"f_gEnP5sMtd6eYNOiYQQ",SpanStyles:"aLGFzKvQOPA_BfQw5vqO"},t.Z=l},762:function(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var l={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(l[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&l[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},901:function(e){e.exports=function(e){return e[1]}},337:function(e){var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},l=[],i=0;i<e.length;i++){var s=e[i],c=r.base?s[0]+r.base:s[0],u=a[c]||0,d="".concat(c," ").concat(u);a[c]=u+1;var f=n(d),p={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==f)t[f].references++,t[f].updater(p);else{var m=o(p,r);r.byIndex=i,t.splice(i,0,{identifier:d,updater:m,references:1})}l.push(d)}return l}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var l=0;l<a.length;l++){var i=n(a[l]);t[i].references--}for(var s=r(e,o),c=0;c<a.length;c++){var u=n(a[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}a=s}}},67:function(e){var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},702:function(e){e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},266:function(e,t,n){e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},433:function(e){e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},767:function(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},156:function(t){t.exports=e},111:function(e){e.exports=t}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,exports:{}};return n[e](a,a.exports,o),a.exports}o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return function(){o.r(a),o.d(a,{Button:function(){return x},Checkbox:function(){return It},Input:function(){return kt},ScrollArea:function(){return Ie},Tabs:function(){return pt},Text:function(){return w}});var e=o(156),t=o.n(e),n=o(337),r=o.n(n),l=o(433),i=o.n(l),s=o(67),c=o.n(s),u=o(266),d=o.n(u),f=o(702),p=o.n(f),m=o(767),h=o.n(m),v=o(47),b={};b.styleTagTransform=h(),b.setAttributes=d(),b.insert=c().bind(null,"head"),b.domAPI=i(),b.insertStyleElement=p(),r()(v.Z,b);var g=v.Z&&v.Z.locals?v.Z.locals:void 0;const w=({type:e,bold:n=!1,children:r,className:o,size:a})=>{const l=Object.assign({fontWeight:n?"bold":"normal"},a?{fontSize:a}:{});switch(e){case"h1":return t().createElement("h1",{className:`${g.H1} ${o||""}`,style:l},r);case"h2":return t().createElement("h2",{className:`${g.H2} ${o||""}`,style:l},r);case"h3":return t().createElement("h3",{className:`${g.H3} ${o||""}`,style:l},r);case"h4":return t().createElement("h4",{className:`${g.H4} ${o||""}`,style:l},r);case"h5":return t().createElement("h5",{className:`${g.H5} ${o||""}`,style:l},r);case"h6":return t().createElement("h6",{className:`${g.H6} ${o||""}`,style:l},r);case"p":default:return t().createElement("p",{className:`${g.ParagraphStyles} ${o||""}`,style:l},r);case"span":return t().createElement("span",{className:`${g.SpanStyles} ${o||""}`,style:l},r)}};var y=o(714),E={};E.styleTagTransform=h(),E.setAttributes=d(),E.insert=c().bind(null,"head"),E.domAPI=i(),E.insertStyleElement=p(),r()(y.Z,E);var S=y.Z&&y.Z.locals?y.Z.locals:void 0;const x=({children:e,disabled:n=!1,onClick:r})=>t().createElement("button",{disabled:n,className:S.ButtonWrapper,onClick:r},t().createElement(w,{type:"span",size:14},e));function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},C.apply(this,arguments)}var T=o(111);function R(...e){return t=>e.forEach((e=>function(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}(e,t)))}function A(...t){return(0,e.useCallback)(R(...t),t)}const _=(0,e.forwardRef)(((t,n)=>{const{children:r,...o}=t,a=e.Children.toArray(r),l=a.find(M);if(l){const t=l.props.children,r=a.map((n=>n===l?e.Children.count(t)>1?e.Children.only(null):(0,e.isValidElement)(t)?t.props.children:null:n));return(0,e.createElement)(N,C({},o,{ref:n}),(0,e.isValidElement)(t)?(0,e.cloneElement)(t,void 0,r):null)}return(0,e.createElement)(N,C({},o,{ref:n}),r)}));_.displayName="Slot";const N=(0,e.forwardRef)(((t,n)=>{const{children:r,...o}=t;return(0,e.isValidElement)(r)?(0,e.cloneElement)(r,{...P(o,r.props),ref:R(n,r.ref)}):e.Children.count(r)>1?e.Children.only(null):null}));N.displayName="SlotClone";const I=({children:t})=>(0,e.createElement)(e.Fragment,null,t);function M(t){return(0,e.isValidElement)(t)&&t.type===I}function P(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{a(...e),o(...e)}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}const O=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"].reduce(((t,n)=>{const r=(0,e.forwardRef)(((t,r)=>{const{asChild:o,...a}=t,l=o?_:n;return(0,e.useEffect)((()=>{window[Symbol.for("radix-ui")]=!0}),[]),(0,e.createElement)(l,C({},a,{ref:r}))}));return r.displayName=`Primitive.${n}`,{...t,[n]:r}}),{}),k=Boolean(null===globalThis||void 0===globalThis?void 0:globalThis.document)?e.useLayoutEffect:()=>{},L=t=>{const{present:n,children:r}=t,o=function(t){const[n,r]=(0,e.useState)(),o=(0,e.useRef)({}),a=(0,e.useRef)(t),l=(0,e.useRef)("none"),i=t?"mounted":"unmounted",[s,c]=function(t,n){return(0,e.useReducer)(((e,t)=>{const r=n[e][t];return null!=r?r:e}),t)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,e.useEffect)((()=>{const e=F(o.current);l.current="mounted"===s?e:"none"}),[s]),k((()=>{const e=o.current,n=a.current;if(n!==t){const r=l.current,o=F(e);t?c("MOUNT"):"none"===o||"none"===(null==e?void 0:e.display)?c("UNMOUNT"):c(n&&r!==o?"ANIMATION_OUT":"UNMOUNT"),a.current=t}}),[t,c]),k((()=>{if(n){const e=e=>{const t=F(o.current).includes(e.animationName);e.target===n&&t&&(0,T.flushSync)((()=>c("ANIMATION_END")))},t=e=>{e.target===n&&(l.current=F(o.current))};return n.addEventListener("animationstart",t),n.addEventListener("animationcancel",e),n.addEventListener("animationend",e),()=>{n.removeEventListener("animationstart",t),n.removeEventListener("animationcancel",e),n.removeEventListener("animationend",e)}}c("ANIMATION_END")}),[n,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:(0,e.useCallback)((e=>{e&&(o.current=getComputedStyle(e)),r(e)}),[])}}(n),a="function"==typeof r?r({present:o.isPresent}):e.Children.only(r),l=A(o.ref,a.ref);return"function"==typeof r||o.isPresent?(0,e.cloneElement)(a,{ref:l}):null};function F(e){return(null==e?void 0:e.animationName)||"none"}function D(t,n=[]){let r=[];const o=()=>{const n=r.map((t=>(0,e.createContext)(t)));return function(r){const o=(null==r?void 0:r[t])||n;return(0,e.useMemo)((()=>({[`__scope${t}`]:{...r,[t]:o}})),[r,o])}};return o.scopeName=t,[function(n,o){const a=(0,e.createContext)(o),l=r.length;function i(n){const{scope:r,children:o,...i}=n,s=(null==r?void 0:r[t][l])||a,c=(0,e.useMemo)((()=>i),Object.values(i));return(0,e.createElement)(s.Provider,{value:c},o)}return r=[...r,o],i.displayName=n+"Provider",[i,function(r,i){const s=(null==i?void 0:i[t][l])||a,c=(0,e.useContext)(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${r}\` must be used within \`${n}\``)}]},z(o,...n)]}function z(...t){const n=t[0];if(1===t.length)return n;const r=()=>{const r=t.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(t){const o=r.reduce(((e,{useScope:n,scopeName:r})=>({...e,...n(t)[`__scope${r}`]})),{});return(0,e.useMemo)((()=>({[`__scope${n.scopeName}`]:o})),[o])}};return r.scopeName=n.scopeName,r}function B(t){const n=(0,e.useRef)(t);return(0,e.useEffect)((()=>{n.current=t})),(0,e.useMemo)((()=>(...e)=>{var t;return null===(t=n.current)||void 0===t?void 0:t.call(n,...e)}),[])}L.displayName="Presence";const H=(0,e.createContext)(void 0);function U(t){const n=(0,e.useContext)(H);return t||n||"ltr"}function Z(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(null==e||e(r),!1===n||!r.defaultPrevented)return null==t?void 0:t(r)}}const W="ScrollArea",[j,Y]=D(W),[V,X]=j(W),$=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,type:o="hover",dir:a,scrollHideDelay:l=600,...i}=t,[s,c]=(0,e.useState)(null),[u,d]=(0,e.useState)(null),[f,p]=(0,e.useState)(null),[m,h]=(0,e.useState)(null),[v,b]=(0,e.useState)(null),[g,w]=(0,e.useState)(0),[y,E]=(0,e.useState)(0),[S,x]=(0,e.useState)(!1),[T,R]=(0,e.useState)(!1),_=A(n,(e=>c(e))),N=U(a);return(0,e.createElement)(V,{scope:r,type:o,dir:N,scrollHideDelay:l,scrollArea:s,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:S,onScrollbarXEnabledChange:x,scrollbarY:v,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:R,onCornerWidthChange:w,onCornerHeightChange:E},(0,e.createElement)(O.div,C({dir:N},i,{ref:_,style:{position:"relative","--radix-scroll-area-corner-width":g+"px","--radix-scroll-area-corner-height":y+"px",...t.style}})))})),Q=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,children:o,...a}=t,l=X("ScrollAreaViewport",r),i=A(n,(0,e.useRef)(null),l.onViewportChange);return(0,e.createElement)(e.Fragment,null,(0,e.createElement)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"}}),(0,e.createElement)(O.div,C({"data-radix-scroll-area-viewport":""},a,{ref:i,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...t.style}}),(0,e.createElement)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"}},o)))})),K="ScrollAreaScrollbar",q=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=X(K,t.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:i}=a,s="horizontal"===t.orientation;return(0,e.useEffect)((()=>(s?l(!0):i(!0),()=>{s?l(!1):i(!1)})),[s,l,i]),"hover"===a.type?(0,e.createElement)(G,C({},o,{ref:n,forceMount:r})):"scroll"===a.type?(0,e.createElement)(J,C({},o,{ref:n,forceMount:r})):"auto"===a.type?(0,e.createElement)(ee,C({},o,{ref:n,forceMount:r})):"always"===a.type?(0,e.createElement)(te,C({},o,{ref:n})):null})),G=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=X(K,t.__scopeScrollArea),[l,i]=(0,e.useState)(!1);return(0,e.useEffect)((()=>{const e=a.scrollArea;let t=0;if(e){const n=()=>{window.clearTimeout(t),i(!0)},r=()=>{t=window.setTimeout((()=>i(!1)),a.scrollHideDelay)};return e.addEventListener("pointerenter",n),e.addEventListener("pointerleave",r),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",n),e.removeEventListener("pointerleave",r)}}}),[a.scrollArea,a.scrollHideDelay]),(0,e.createElement)(L,{present:r||l},(0,e.createElement)(ee,C({"data-state":l?"visible":"hidden"},o,{ref:n})))})),J=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=X(K,t.__scopeScrollArea),l="horizontal"===t.orientation,i=ye((()=>c("SCROLL_END")),100),[s,c]=("hidden",u={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},(0,e.useReducer)(((e,t)=>{const n=u[e][t];return null!=n?n:e}),"hidden"));var u;return(0,e.useEffect)((()=>{if("idle"===s){const e=window.setTimeout((()=>c("HIDE")),a.scrollHideDelay);return()=>window.clearTimeout(e)}}),[s,a.scrollHideDelay,c]),(0,e.useEffect)((()=>{const e=a.viewport,t=l?"scrollLeft":"scrollTop";if(e){let n=e[t];const r=()=>{const r=e[t];n!==r&&(c("SCROLL"),i()),n=r};return e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}}),[a.viewport,l,c,i]),(0,e.createElement)(L,{present:r||"hidden"!==s},(0,e.createElement)(te,C({"data-state":"hidden"===s?"hidden":"visible"},o,{ref:n,onPointerEnter:Z(t.onPointerEnter,(()=>c("POINTER_ENTER"))),onPointerLeave:Z(t.onPointerLeave,(()=>c("POINTER_LEAVE")))})))})),ee=(0,e.forwardRef)(((t,n)=>{const r=X(K,t.__scopeScrollArea),{forceMount:o,...a}=t,[l,i]=(0,e.useState)(!1),s="horizontal"===t.orientation,c=ye((()=>{if(r.viewport){const e=r.viewport.offsetWidth<r.viewport.scrollWidth,t=r.viewport.offsetHeight<r.viewport.scrollHeight;i(s?e:t)}}),10);return Ee(r.viewport,c),Ee(r.content,c),(0,e.createElement)(L,{present:o||l},(0,e.createElement)(te,C({"data-state":l?"visible":"hidden"},a,{ref:n})))})),te=(0,e.forwardRef)(((t,n)=>{const{orientation:r="vertical",...o}=t,a=X(K,t.__scopeScrollArea),l=(0,e.useRef)(null),i=(0,e.useRef)(0),[s,c]=(0,e.useState)({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=me(s.viewport,s.content),d={...o,sizes:s,onSizesChange:c,hasThumb:Boolean(u>0&&u<1),onThumbChange:e=>l.current=e,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:e=>i.current=e};function f(e,t){return function(e,t,n,r="ltr"){const o=he(n),a=t||o/2,l=o-a,i=n.scrollbar.paddingStart+a,s=n.scrollbar.size-n.scrollbar.paddingEnd-l,c=n.content-n.viewport;return be([i,s],"ltr"===r?[0,c]:[-1*c,0])(e)}(e,i.current,s,t)}return"horizontal"===r?(0,e.createElement)(ne,C({},d,{ref:n,onThumbPositionChange:()=>{if(a.viewport&&l.current){const e=ve(a.viewport.scrollLeft,s,a.dir);l.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollLeft=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollLeft=f(e,a.dir))}})):"vertical"===r?(0,e.createElement)(re,C({},d,{ref:n,onThumbPositionChange:()=>{if(a.viewport&&l.current){const e=ve(a.viewport.scrollTop,s);l.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollTop=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollTop=f(e))}})):null})),ne=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:o,...a}=t,l=X(K,t.__scopeScrollArea),[i,s]=(0,e.useState)(),c=(0,e.useRef)(null),u=A(n,c,l.onScrollbarXChange);return(0,e.useEffect)((()=>{c.current&&s(getComputedStyle(c.current))}),[c]),(0,e.createElement)(le,C({"data-orientation":"horizontal"},a,{ref:u,sizes:r,style:{bottom:0,left:"rtl"===l.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===l.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":he(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.x),onDragScroll:e=>t.onDragScroll(e.x),onWheelScroll:(e,n)=>{if(l.viewport){const r=l.viewport.scrollLeft+e.deltaX;t.onWheelScroll(r),ge(r,n)&&e.preventDefault()}},onResize:()=>{c.current&&l.viewport&&i&&o({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:pe(i.paddingLeft),paddingEnd:pe(i.paddingRight)}})}}))})),re=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:o,...a}=t,l=X(K,t.__scopeScrollArea),[i,s]=(0,e.useState)(),c=(0,e.useRef)(null),u=A(n,c,l.onScrollbarYChange);return(0,e.useEffect)((()=>{c.current&&s(getComputedStyle(c.current))}),[c]),(0,e.createElement)(le,C({"data-orientation":"vertical"},a,{ref:u,sizes:r,style:{top:0,right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":he(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.y),onDragScroll:e=>t.onDragScroll(e.y),onWheelScroll:(e,n)=>{if(l.viewport){const r=l.viewport.scrollTop+e.deltaY;t.onWheelScroll(r),ge(r,n)&&e.preventDefault()}},onResize:()=>{c.current&&l.viewport&&i&&o({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:pe(i.paddingTop),paddingEnd:pe(i.paddingBottom)}})}}))})),[oe,ae]=j(K),le=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,sizes:o,hasThumb:a,onThumbChange:l,onThumbPointerUp:i,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=t,m=X(K,r),[h,v]=(0,e.useState)(null),b=A(n,(e=>v(e))),g=(0,e.useRef)(null),w=(0,e.useRef)(""),y=m.viewport,E=o.content-o.viewport,S=B(d),x=B(c),T=ye(f,10);function R(e){if(g.current){const t=e.clientX-g.current.left,n=e.clientY-g.current.top;u({x:t,y:n})}}return(0,e.useEffect)((()=>{const e=e=>{const t=e.target;(null==h?void 0:h.contains(t))&&S(e,E)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})}),[y,h,E,S]),(0,e.useEffect)(x,[o,x]),Ee(h,T),Ee(m.content,T),(0,e.createElement)(oe,{scope:r,scrollbar:h,hasThumb:a,onThumbChange:B(l),onThumbPointerUp:B(i),onThumbPositionChange:x,onThumbPointerDown:B(s)},(0,e.createElement)(O.div,C({},p,{ref:b,style:{position:"absolute",...p.style},onPointerDown:Z(t.onPointerDown,(e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),g.current=h.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",R(e))})),onPointerMove:Z(t.onPointerMove,R),onPointerUp:Z(t.onPointerUp,(e=>{const t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=w.current,g.current=null}))})))})),ie="ScrollAreaThumb",se=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...o}=t,a=ae(ie,t.__scopeScrollArea);return(0,e.createElement)(L,{present:r||a.hasThumb},(0,e.createElement)(ce,C({ref:n},o)))})),ce=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,style:o,...a}=t,l=X(ie,r),i=ae(ie,r),{onThumbPositionChange:s}=i,c=A(n,(e=>i.onThumbChange(e))),u=(0,e.useRef)(),d=ye((()=>{u.current&&(u.current(),u.current=void 0)}),100);return(0,e.useEffect)((()=>{const e=l.viewport;if(e){const t=()=>{if(d(),!u.current){const t=we(e,s);u.current=t,s()}};return s(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}}),[l.viewport,d,s]),(0,e.createElement)(O.div,C({"data-state":i.hasThumb?"visible":"hidden"},a,{ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:Z(t.onPointerDownCapture,(e=>{const t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;i.onThumbPointerDown({x:n,y:r})})),onPointerUp:Z(t.onPointerUp,i.onThumbPointerUp)}))})),ue="ScrollAreaCorner",de=(0,e.forwardRef)(((t,n)=>{const r=X(ue,t.__scopeScrollArea),o=Boolean(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&o?(0,e.createElement)(fe,C({},t,{ref:n})):null})),fe=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,...o}=t,a=X(ue,r),[l,i]=(0,e.useState)(0),[s,c]=(0,e.useState)(0),u=Boolean(l&&s);return Ee(a.scrollbarX,(()=>{var e;const t=(null===(e=a.scrollbarX)||void 0===e?void 0:e.offsetHeight)||0;a.onCornerHeightChange(t),c(t)})),Ee(a.scrollbarY,(()=>{var e;const t=(null===(e=a.scrollbarY)||void 0===e?void 0:e.offsetWidth)||0;a.onCornerWidthChange(t),i(t)})),u?(0,e.createElement)(O.div,C({},o,{ref:n,style:{width:l,height:s,position:"absolute",right:"ltr"===a.dir?0:void 0,left:"rtl"===a.dir?0:void 0,bottom:0,...t.style}})):null}));function pe(e){return e?parseInt(e,10):0}function me(e,t){const n=e/t;return isNaN(n)?0:n}function he(e){const t=me(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function ve(e,t,n="ltr"){const r=he(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-o,l=t.content-t.viewport,i=a-r,s=function(e,[t,n]){return Math.min(n,Math.max(t,e))}(e,"ltr"===n?[0,l]:[-1*l,0]);return be([0,l],[0,i])(s)}function be(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ge(e,t){return e>0&&e<t}const we=(e,t=(()=>{}))=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function o(){const a={left:e.scrollLeft,top:e.scrollTop},l=n.left!==a.left,i=n.top!==a.top;(l||i)&&t(),n=a,r=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(r)};function ye(t,n){const r=B(t),o=(0,e.useRef)(0);return(0,e.useEffect)((()=>()=>window.clearTimeout(o.current)),[]),(0,e.useCallback)((()=>{window.clearTimeout(o.current),o.current=window.setTimeout(r,n)}),[r,n])}function Ee(e,t){const n=B(t);k((()=>{let t=0;if(e){const r=new ResizeObserver((()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)}));return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}}),[e,n])}const Se=$,xe=Q,Ce=q,Te=se,Re=de;var Ae=o(517),_e={};_e.styleTagTransform=h(),_e.setAttributes=d(),_e.insert=c().bind(null,"head"),_e.domAPI=i(),_e.insertStyleElement=p(),r()(Ae.Z,_e);var Ne=Ae.Z&&Ae.Z.locals?Ae.Z.locals:void 0;const Ie=({children:e})=>t().createElement(Se,{className:Ne.ScrollAreaRoot},t().createElement(xe,{className:Ne.ScrollAreaViewport},e),t().createElement(Ce,{className:Ne.ScrollAreaScrollbar,orientation:"vertical"},t().createElement(Te,{className:Ne.ScrollAreaThumb})),t().createElement(Ce,{className:Ne.ScrollAreaScrollbar,orientation:"horizontal"},t().createElement(Te,{className:Ne.ScrollAreaThumb})),t().createElement(Re,{className:Ne.ScrollAreaCorner})),Me=e["useId".toString()]||(()=>{});let Pe=0;function Oe(t){const[n,r]=e.useState(Me());return k((()=>{t||r((e=>null!=e?e:String(Pe++)))}),[t]),t||(n?`radix-${n}`:"")}function ke({prop:t,defaultProp:n,onChange:r=(()=>{})}){const[o,a]=function({defaultProp:t,onChange:n}){const r=(0,e.useState)(t),[o]=r,a=(0,e.useRef)(o),l=B(n);return(0,e.useEffect)((()=>{a.current!==o&&(l(o),a.current=o)}),[o,a,l]),r}({defaultProp:n,onChange:r}),l=void 0!==t,i=l?t:o,s=B(r);return[i,(0,e.useCallback)((e=>{if(l){const n="function"==typeof e?e(t):e;n!==t&&s(n)}else a(e)}),[l,t,a,s])]}const Le="rovingFocusGroup.onEntryFocus",Fe={bubbles:!1,cancelable:!0},De="RovingFocusGroup",[ze,Be,He]=function(e){const n=e+"CollectionProvider",[r,o]=D(n),[a,l]=r(n,{collectionRef:{current:null},itemMap:new Map}),i=e+"CollectionSlot",s=e+"CollectionItemSlot",c="data-radix-collection-item";return[{Provider:e=>{const{scope:n,children:r}=e,o=t().useRef(null),l=t().useRef(new Map).current;return t().createElement(a,{scope:n,itemMap:l,collectionRef:o},r)},Slot:t().forwardRef(((e,n)=>{const{scope:r,children:o}=e,a=A(n,l(i,r).collectionRef);return t().createElement(_,{ref:a},o)})),ItemSlot:t().forwardRef(((e,n)=>{const{scope:r,children:o,...a}=e,i=t().useRef(null),u=A(n,i),d=l(s,r);return t().useEffect((()=>(d.itemMap.set(i,{ref:i,...a}),()=>{d.itemMap.delete(i)}))),t().createElement(_,{[c]:"",ref:u},o)}))},function(n){const r=l(e+"CollectionConsumer",n);return t().useCallback((()=>{const e=r.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${c}]`));return Array.from(r.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[r.collectionRef,r.itemMap])},o]}(De),[Ue,Ze]=D(De,[He]),[We,je]=Ue(De),Ye=(0,e.forwardRef)(((t,n)=>(0,e.createElement)(ze.Provider,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(ze.Slot,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(Ve,C({},t,{ref:n})))))),Ve=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,orientation:o,loop:a=!1,dir:l,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:u,...d}=t,f=(0,e.useRef)(null),p=A(n,f),m=U(l),[h=null,v]=ke({prop:i,defaultProp:s,onChange:c}),[b,g]=(0,e.useState)(!1),w=B(u),y=Be(r),E=(0,e.useRef)(!1),[S,x]=(0,e.useState)(0);return(0,e.useEffect)((()=>{const e=f.current;if(e)return e.addEventListener(Le,w),()=>e.removeEventListener(Le,w)}),[w]),(0,e.createElement)(We,{scope:r,orientation:o,dir:m,loop:a,currentTabStopId:h,onItemFocus:(0,e.useCallback)((e=>v(e)),[v]),onItemShiftTab:(0,e.useCallback)((()=>g(!0)),[]),onFocusableItemAdd:(0,e.useCallback)((()=>x((e=>e+1))),[]),onFocusableItemRemove:(0,e.useCallback)((()=>x((e=>e-1))),[])},(0,e.createElement)(O.div,C({tabIndex:b||0===S?-1:0,"data-orientation":o},d,{ref:p,style:{outline:"none",...t.style},onMouseDown:Z(t.onMouseDown,(()=>{E.current=!0})),onFocus:Z(t.onFocus,(e=>{const t=!E.current;if(e.target===e.currentTarget&&t&&!b){const t=new CustomEvent(Le,Fe);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=y().filter((e=>e.focusable));Qe([e.find((e=>e.active)),e.find((e=>e.id===h)),...e].filter(Boolean).map((e=>e.ref.current)))}}E.current=!1})),onBlur:Z(t.onBlur,(()=>g(!1)))})))})),Xe=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,focusable:o=!0,active:a=!1,tabStopId:l,...i}=t,s=Oe(),c=l||s,u=je("RovingFocusGroupItem",r),d=u.currentTabStopId===c,f=Be(r),{onFocusableItemAdd:p,onFocusableItemRemove:m}=u;return(0,e.useEffect)((()=>{if(o)return p(),()=>m()}),[o,p,m]),(0,e.createElement)(ze.ItemSlot,{scope:r,id:c,focusable:o,active:a},(0,e.createElement)(O.span,C({tabIndex:d?0:-1,"data-orientation":u.orientation},i,{ref:n,onMouseDown:Z(t.onMouseDown,(e=>{o?u.onItemFocus(c):e.preventDefault()})),onFocus:Z(t.onFocus,(()=>u.onItemFocus(c))),onKeyDown:Z(t.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void u.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const r=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)?void 0:$e[r]}(e,u.orientation,u.dir);if(void 0!==t){e.preventDefault();let o=f().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)o.reverse();else if("prev"===t||"next"===t){"prev"===t&&o.reverse();const a=o.indexOf(e.currentTarget);o=u.loop?(r=a+1,(n=o).map(((e,t)=>n[(r+t)%n.length]))):o.slice(a+1)}setTimeout((()=>Qe(o)))}var n,r}))})))})),$e={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Qe(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}const Ke=Ye,qe=Xe,Ge="Tabs",[Je,et]=D(Ge,[Ze]),tt=Ze(),[nt,rt]=Je(Ge);function ot(e,t){return`${e}-trigger-${t}`}function at(e,t){return`${e}-content-${t}`}const lt=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,onValueChange:a,defaultValue:l,orientation:i="horizontal",dir:s,activationMode:c="automatic",...u}=t,d=U(s),[f,p]=ke({prop:o,onChange:a,defaultProp:l});return(0,e.createElement)(nt,{scope:r,baseId:Oe(),value:f,onValueChange:p,orientation:i,dir:d,activationMode:c},(0,e.createElement)(O.div,C({dir:d,"data-orientation":i},u,{ref:n})))})),it=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,loop:o=!0,...a}=t,l=rt("TabsList",r),i=tt(r);return(0,e.createElement)(Ke,C({asChild:!0},i,{orientation:l.orientation,dir:l.dir,loop:o}),(0,e.createElement)(O.div,C({role:"tablist","aria-orientation":l.orientation},a,{ref:n})))})),st=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,disabled:a=!1,...l}=t,i=rt("TabsTrigger",r),s=tt(r),c=ot(i.baseId,o),u=at(i.baseId,o),d=o===i.value;return(0,e.createElement)(qe,C({asChild:!0},s,{focusable:!a,active:d}),(0,e.createElement)(O.button,C({type:"button",role:"tab","aria-selected":d,"aria-controls":u,"data-state":d?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:c},l,{ref:n,onMouseDown:Z(t.onMouseDown,(e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():i.onValueChange(o)})),onKeyDown:Z(t.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&i.onValueChange(o)})),onFocus:Z(t.onFocus,(()=>{const e="manual"!==i.activationMode;d||a||!e||i.onValueChange(o)}))})))})),ct=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:o,forceMount:a,children:l,...i}=t,s=rt("TabsContent",r),c=ot(s.baseId,o),u=at(s.baseId,o),d=o===s.value,f=(0,e.useRef)(d);return(0,e.useEffect)((()=>{const e=requestAnimationFrame((()=>f.current=!1));return()=>cancelAnimationFrame(e)}),[]),(0,e.createElement)(L,{present:a||d},(({present:r})=>(0,e.createElement)(O.div,C({"data-state":d?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":c,hidden:!r,id:u,tabIndex:0},i,{ref:n,style:{...t.style,animationDuration:f.current?"0s":void 0}}),r&&l)))}));var ut=o(861),dt={};dt.styleTagTransform=h(),dt.setAttributes=d(),dt.insert=c().bind(null,"head"),dt.domAPI=i(),dt.insertStyleElement=p(),r()(ut.Z,dt);var ft=ut.Z&&ut.Z.locals?ut.Z.locals:void 0;const pt=({items:e,def:n,value:r,onChange:o,renderChildren:a})=>{const l=e=>void 0===e.value?e.header:e.value.toString();return t().createElement(lt,{className:ft.TabsRoot,defaultValue:n||e[0].header,value:r.toString(),onValueChange:o},t().createElement(it,{className:ft.TabsList,"aria-label":"Manage your account"},e.map((e=>t().createElement(st,{key:e.header,className:ft.TabsTrigger,value:l(e)},e.header)))),a?a():e.map((e=>e.body?t().createElement(ct,{className:ft.TabsContent,value:l(e)},e.body):null)))},mt="Checkbox",[ht,vt]=D(mt),[bt,gt]=ht(mt),wt=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,name:o,checked:a,defaultChecked:l,required:i,disabled:s,value:c="on",onCheckedChange:u,...d}=t,[f,p]=(0,e.useState)(null),m=A(n,(e=>p(e))),h=(0,e.useRef)(!1),v=!f||Boolean(f.closest("form")),[b=!1,g]=ke({prop:a,defaultProp:l,onChange:u});return(0,e.createElement)(bt,{scope:r,state:b,disabled:s},(0,e.createElement)(O.button,C({type:"button",role:"checkbox","aria-checked":Et(b)?"mixed":b,"aria-required":i,"data-state":St(b),"data-disabled":s?"":void 0,disabled:s,value:c},d,{ref:m,onKeyDown:Z(t.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:Z(t.onClick,(e=>{g((e=>!!Et(e)||!e)),v&&(h.current=e.isPropagationStopped(),h.current||e.stopPropagation())}))})),v&&(0,e.createElement)(yt,{control:f,bubbles:!h.current,name:o,value:c,checked:b,required:i,disabled:s,style:{transform:"translateX(-100%)"}}))})),yt=t=>{const{control:n,checked:r,bubbles:o=!0,...a}=t,l=(0,e.useRef)(null),i=function(t){const n=(0,e.useRef)({value:t,previous:t});return(0,e.useMemo)((()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous)),[t])}(r),s=function(t){const[n,r]=(0,e.useState)(void 0);return k((()=>{if(t){r({width:t.offsetWidth,height:t.offsetHeight});const e=new ResizeObserver((e=>{if(!Array.isArray(e))return;if(!e.length)return;const n=e[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,a=t.blockSize}else o=t.offsetWidth,a=t.offsetHeight;r({width:o,height:a})}));return e.observe(t,{box:"border-box"}),()=>e.unobserve(t)}r(void 0)}),[t]),n}(n);return(0,e.useEffect)((()=>{const e=l.current,t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(i!==r&&n){const t=new Event("click",{bubbles:o});e.indeterminate=Et(r),n.call(e,!Et(r)&&r),e.dispatchEvent(t)}}),[i,r,o]),(0,e.createElement)("input",C({type:"checkbox","aria-hidden":!0,defaultChecked:!Et(r)&&r},a,{tabIndex:-1,ref:l,style:{...t.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function Et(e){return"indeterminate"===e}function St(e){return Et(e)?"indeterminate":e?"checked":"unchecked"}const xt=wt,Ct=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,forceMount:o,...a}=t,l=gt("CheckboxIndicator",r);return(0,e.createElement)(L,{present:o||Et(l.state)||!0===l.state},(0,e.createElement)(O.span,C({"data-state":St(l.state),"data-disabled":l.disabled?"":void 0},a,{ref:n,style:{pointerEvents:"none",...t.style}})))}));var Tt=["color"],Rt=(0,e.forwardRef)((function(t,n){var r=t.color,o=void 0===r?"currentColor":r,a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,Tt);return(0,e.createElement)("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a,{ref:n}),(0,e.createElement)("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:o,fillRule:"evenodd",clipRule:"evenodd"}))})),At=o(343),_t={};_t.styleTagTransform=h(),_t.setAttributes=d(),_t.insert=c().bind(null,"head"),_t.domAPI=i(),_t.insertStyleElement=p(),r()(At.Z,_t);var Nt=At.Z&&At.Z.locals?At.Z.locals:void 0;const It=({label:e,isChecked:n,onChecked:r})=>t().createElement("form",null,t().createElement("div",{style:{display:"flex",alignItems:"center"}},t().createElement(xt,{className:Nt.CheckboxRoot,defaultChecked:!0,checked:n,onCheckedChange:r,id:e},t().createElement(Ct,{className:Nt.CheckboxIndicator},t().createElement(Rt,null))),t().createElement("label",{className:Nt.Label,htmlFor:e},e)));var Mt=o(594),Pt={};Pt.styleTagTransform=h(),Pt.setAttributes=d(),Pt.insert=c().bind(null,"head"),Pt.domAPI=i(),Pt.insertStyleElement=p(),r()(Mt.Z,Pt);var Ot=Mt.Z&&Mt.Z.locals?Mt.Z.locals:void 0;const kt=({value:e,placeholder:n,onChange:r,type:o="text"})=>t().createElement("input",{type:o,value:e,placeholder:n,onChange:r,className:Ot.InputWrapper})}(),a}()}));
2
+ //# sourceMappingURL=rush-themed-ui.5126d217a7d3c73f946bfb1052b226d4.js.map
package/lib/init.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  import { type IAppState } from './state';
2
- export declare const init: () => IAppState;
2
+ export declare const init: (options: {
3
+ lockfileExplorerProjectRoot: string;
4
+ appVersion: string;
5
+ debugMode: boolean;
6
+ }) => IAppState;
3
7
  //# sourceMappingURL=init.d.ts.map
package/lib/init.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,SAAS,CAAC;AAE3E,eAAO,MAAM,IAAI,QAAO,SA2DvB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,SAAS,CAAC;AAE3E,eAAO,MAAM,IAAI,YAAa;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,KAAG,SA4DH,CAAC"}
package/lib/init.js CHANGED
@@ -7,10 +7,9 @@ exports.init = void 0;
7
7
  // Currently it will throw error if neither can be determined
8
8
  const node_core_library_1 = require("@rushstack/node-core-library");
9
9
  const state_1 = require("./state");
10
- const init = () => {
10
+ const init = (options) => {
11
+ const { lockfileExplorerProjectRoot, appVersion, debugMode } = options;
11
12
  const currDir = process.cwd();
12
- const lockfileExplorerProjectRoot = node_core_library_1.PackageJsonLookup.instance.tryGetPackageFolderFor(__dirname);
13
- const appVersion = node_core_library_1.JsonFile.load(`${lockfileExplorerProjectRoot}/package.json`).version;
14
13
  let appState;
15
14
  let currExploredDir = node_core_library_1.Path.convertToSlashes(currDir);
16
15
  while (currExploredDir.includes('/')) {
@@ -31,6 +30,7 @@ const init = () => {
31
30
  appState = {
32
31
  currDir,
33
32
  appVersion,
33
+ debugMode,
34
34
  lockfileExplorerProjectRoot,
35
35
  projectType: state_1.ProjectType.RUSH_PROJECT,
36
36
  pnpmLockfileLocation: `${currExploredDir}/common/config/rush/pnpm-lock.yaml`,
@@ -47,6 +47,7 @@ const init = () => {
47
47
  appState = {
48
48
  currDir,
49
49
  appVersion,
50
+ debugMode,
50
51
  lockfileExplorerProjectRoot,
51
52
  projectType: state_1.ProjectType.PNPM_WORKSPACE,
52
53
  pnpmLockfileLocation: `${currExploredDir}/pnpm-lock.yaml`,
package/lib/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,uHAAuH;AACvH,6DAA6D;AAE7D,oEAA6F;AAG7F,mCAA2E;AAEpE,MAAM,IAAI,GAAG,GAAc,EAAE;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,2BAA2B,GAAW,qCAAiB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAE,CAAC;IAC1G,MAAM,UAAU,GAAW,4BAAQ,CAAC,IAAI,CAAC,GAAG,2BAA2B,eAAe,CAAC,CAAC,OAAO,CAAC;IAEhG,IAAI,QAA+B,CAAC;IACpC,IAAI,eAAe,GAAG,wBAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpC,sFAAsF;QACtF,MAAM,YAAY,GAAW,GAAG,eAAe,YAAY,CAAC;QAC5D,MAAM,YAAY,GAAW,GAAG,eAAe,iBAAiB,CAAC;QACjE,IAAI,8BAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC;YACtD,yBAAyB;YACzB,MAAM,QAAQ,GAA2B,4BAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrE,MAAM,uBAAuB,GAAqC,IAAI,GAAG,EAAE,CAAC;YAC5E,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACvC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;oBACjD,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC,CAAC,CAAC;aACJ;YAED,QAAQ,GAAG;gBACT,OAAO;gBACP,UAAU;gBACV,2BAA2B;gBAC3B,WAAW,EAAE,mBAAW,CAAC,YAAY;gBACrC,oBAAoB,EAAE,GAAG,eAAe,oCAAoC;gBAC5E,gBAAgB,EAAE,GAAG,eAAe,mCAAmC;gBACvE,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE;oBACJ,YAAY;oBACZ,uBAAuB;iBACxB;aACF,CAAC;YACF,MAAM;SACP;aAAM,IAAI,8BAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YAC1C,QAAQ,GAAG;gBACT,OAAO;gBACP,UAAU;gBACV,2BAA2B;gBAC3B,WAAW,EAAE,mBAAW,CAAC,cAAc;gBACvC,oBAAoB,EAAE,GAAG,eAAe,iBAAiB;gBACzD,gBAAgB,EAAE,GAAG,eAAe,gBAAgB;gBACpD,WAAW,EAAE,eAAe;aAC7B,CAAC;YAEF,MAAM;SACP;QAED,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;KAClF;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AA3DW,QAAA,IAAI,QA2Df","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n// This function will read the current directory and try to figure out if it's a rush project or regular pnpm workspace\n// Currently it will throw error if neither can be determined\n\nimport { FileSystem, JsonFile, PackageJsonLookup, Path } from '@rushstack/node-core-library';\nimport type { IRushConfigurationJson } from '@microsoft/rush-lib/lib/api/RushConfiguration';\n\nimport { type IAppState, IRushProjectDetails, ProjectType } from './state';\n\nexport const init = (): IAppState => {\n const currDir = process.cwd();\n const lockfileExplorerProjectRoot: string = PackageJsonLookup.instance.tryGetPackageFolderFor(__dirname)!;\n const appVersion: string = JsonFile.load(`${lockfileExplorerProjectRoot}/package.json`).version;\n\n let appState: IAppState | undefined;\n let currExploredDir = Path.convertToSlashes(currDir);\n while (currExploredDir.includes('/')) {\n // Look for a rush.json [rush project] or pnpm-lock.yaml file [regular pnpm workspace]\n const rushJsonPath: string = `${currExploredDir}/rush.json`;\n const pnpmLockPath: string = `${currExploredDir}/pnpm-lock.yaml`;\n if (FileSystem.exists(rushJsonPath)) {\n console.log('Found a Rush workspace: ', rushJsonPath);\n // Load the rush projects\n const rushJson: IRushConfigurationJson = JsonFile.load(rushJsonPath);\n const projectsByProjectFolder: Map<string, IRushProjectDetails> = new Map();\n for (const project of rushJson.projects) {\n projectsByProjectFolder.set(project.projectFolder, {\n projectName: project.packageName,\n projectFolder: project.projectFolder\n });\n }\n\n appState = {\n currDir,\n appVersion,\n lockfileExplorerProjectRoot,\n projectType: ProjectType.RUSH_PROJECT,\n pnpmLockfileLocation: `${currExploredDir}/common/config/rush/pnpm-lock.yaml`,\n pnpmfileLocation: `${currExploredDir}/common/config/rush/.pnpmfile.cjs`,\n projectRoot: currExploredDir,\n rush: {\n rushJsonPath,\n projectsByProjectFolder\n }\n };\n break;\n } else if (FileSystem.exists(pnpmLockPath)) {\n appState = {\n currDir,\n appVersion,\n lockfileExplorerProjectRoot,\n projectType: ProjectType.PNPM_WORKSPACE,\n pnpmLockfileLocation: `${currExploredDir}/pnpm-lock.yaml`,\n pnpmfileLocation: `${currExploredDir}/.pnpmfile.cjs`,\n projectRoot: currExploredDir\n };\n\n break;\n }\n\n currExploredDir = currExploredDir.substring(0, currExploredDir.lastIndexOf('/'));\n }\n\n if (!appState) {\n throw new Error('Could not find a Rush or PNPM workspace!');\n }\n\n return appState;\n};\n"]}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,uHAAuH;AACvH,6DAA6D;AAE7D,oEAA0E;AAG1E,mCAA2E;AAEpE,MAAM,IAAI,GAAG,CAAC,OAIpB,EAAa,EAAE;IACd,MAAM,EAAE,2BAA2B,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,IAAI,QAA+B,CAAC;IACpC,IAAI,eAAe,GAAG,wBAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpC,sFAAsF;QACtF,MAAM,YAAY,GAAW,GAAG,eAAe,YAAY,CAAC;QAC5D,MAAM,YAAY,GAAW,GAAG,eAAe,iBAAiB,CAAC;QACjE,IAAI,8BAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC;YACtD,yBAAyB;YACzB,MAAM,QAAQ,GAA2B,4BAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrE,MAAM,uBAAuB,GAAqC,IAAI,GAAG,EAAE,CAAC;YAC5E,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACvC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;oBACjD,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC,CAAC,CAAC;aACJ;YAED,QAAQ,GAAG;gBACT,OAAO;gBACP,UAAU;gBACV,SAAS;gBACT,2BAA2B;gBAC3B,WAAW,EAAE,mBAAW,CAAC,YAAY;gBACrC,oBAAoB,EAAE,GAAG,eAAe,oCAAoC;gBAC5E,gBAAgB,EAAE,GAAG,eAAe,mCAAmC;gBACvE,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE;oBACJ,YAAY;oBACZ,uBAAuB;iBACxB;aACF,CAAC;YACF,MAAM;SACP;aAAM,IAAI,8BAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YAC1C,QAAQ,GAAG;gBACT,OAAO;gBACP,UAAU;gBACV,SAAS;gBACT,2BAA2B;gBAC3B,WAAW,EAAE,mBAAW,CAAC,cAAc;gBACvC,oBAAoB,EAAE,GAAG,eAAe,iBAAiB;gBACzD,gBAAgB,EAAE,GAAG,eAAe,gBAAgB;gBACpD,WAAW,EAAE,eAAe;aAC7B,CAAC;YAEF,MAAM;SACP;QAED,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;KAClF;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAhEW,QAAA,IAAI,QAgEf","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\n// This function will read the current directory and try to figure out if it's a rush project or regular pnpm workspace\n// Currently it will throw error if neither can be determined\n\nimport { FileSystem, JsonFile, Path } from '@rushstack/node-core-library';\nimport type { IRushConfigurationJson } from '@microsoft/rush-lib/lib/api/RushConfiguration';\n\nimport { type IAppState, IRushProjectDetails, ProjectType } from './state';\n\nexport const init = (options: {\n lockfileExplorerProjectRoot: string;\n appVersion: string;\n debugMode: boolean;\n}): IAppState => {\n const { lockfileExplorerProjectRoot, appVersion, debugMode } = options;\n const currDir = process.cwd();\n\n let appState: IAppState | undefined;\n let currExploredDir = Path.convertToSlashes(currDir);\n while (currExploredDir.includes('/')) {\n // Look for a rush.json [rush project] or pnpm-lock.yaml file [regular pnpm workspace]\n const rushJsonPath: string = `${currExploredDir}/rush.json`;\n const pnpmLockPath: string = `${currExploredDir}/pnpm-lock.yaml`;\n if (FileSystem.exists(rushJsonPath)) {\n console.log('Found a Rush workspace: ', rushJsonPath);\n // Load the rush projects\n const rushJson: IRushConfigurationJson = JsonFile.load(rushJsonPath);\n const projectsByProjectFolder: Map<string, IRushProjectDetails> = new Map();\n for (const project of rushJson.projects) {\n projectsByProjectFolder.set(project.projectFolder, {\n projectName: project.packageName,\n projectFolder: project.projectFolder\n });\n }\n\n appState = {\n currDir,\n appVersion,\n debugMode,\n lockfileExplorerProjectRoot,\n projectType: ProjectType.RUSH_PROJECT,\n pnpmLockfileLocation: `${currExploredDir}/common/config/rush/pnpm-lock.yaml`,\n pnpmfileLocation: `${currExploredDir}/common/config/rush/.pnpmfile.cjs`,\n projectRoot: currExploredDir,\n rush: {\n rushJsonPath,\n projectsByProjectFolder\n }\n };\n break;\n } else if (FileSystem.exists(pnpmLockPath)) {\n appState = {\n currDir,\n appVersion,\n debugMode,\n lockfileExplorerProjectRoot,\n projectType: ProjectType.PNPM_WORKSPACE,\n pnpmLockfileLocation: `${currExploredDir}/pnpm-lock.yaml`,\n pnpmfileLocation: `${currExploredDir}/.pnpmfile.cjs`,\n projectRoot: currExploredDir\n };\n\n break;\n }\n\n currExploredDir = currExploredDir.substring(0, currExploredDir.lastIndexOf('/'));\n }\n\n if (!appState) {\n throw new Error('Could not find a Rush or PNPM workspace!');\n }\n\n return appState;\n};\n"]}
package/lib/start.js CHANGED
@@ -15,138 +15,168 @@ const update_notifier_1 = __importDefault(require("update-notifier"));
15
15
  const node_core_library_1 = require("@rushstack/node-core-library");
16
16
  const package_json_1 = __importDefault(require("../package.json"));
17
17
  const init_1 = require("./init");
18
- const PORT = 8091;
19
- // Must not have a trailing slash
20
- const SERVICE_URL = `http://localhost:${PORT}`;
21
- const appState = (0, init_1.init)();
22
- console.log(safe_1.default.bold(`\nRush Lockfile Explorer ${appState.appVersion}`) +
23
- safe_1.default.cyan(' - https://lfx.rushstack.io/\n'));
24
- // TODO: Later if we introduce more CLI parameters, switch to a proper CLI parser
25
- const args = process_1.default.argv.slice(2);
26
- if (args.length > 0 && args[0] !== '--debug') {
27
- console.log('Usage: lockfile-explorer [--debug]\n');
28
- console.log('The "lfx" command is a shorthand alias for "lockfile-explorer".');
29
- console.log('See the project website for documentation and support.\n');
30
- process_1.default.exit(1);
31
- }
32
- (0, update_notifier_1.default)({ pkg: package_json_1.default }).notify();
33
- process_1.default.chdir(appState.lockfileExplorerProjectRoot);
34
- const distFolderPath = `${appState.lockfileExplorerProjectRoot}/dist`;
35
- const app = (0, express_1.default)();
36
- app.use(express_1.default.json());
37
- app.use((0, cors_1.default)());
38
- // Variable used to check if the front-end client is still connected
39
- let awaitingFirstConnect = true;
40
- let isClientConnected = false;
41
- let disconnected = false;
42
- setInterval(() => {
43
- if (!isClientConnected && !awaitingFirstConnect && !disconnected) {
44
- console.log(safe_1.default.red('The client has disconnected!'));
45
- console.log(`Please open a browser window at http://localhost:${PORT}/app`);
46
- disconnected = true;
47
- }
48
- else if (!awaitingFirstConnect) {
49
- isClientConnected = false;
18
+ const node_core_library_2 = require("@rushstack/node-core-library");
19
+ function startApp(debugMode) {
20
+ const lockfileExplorerProjectRoot = node_core_library_1.PackageJsonLookup.instance.tryGetPackageFolderFor(__dirname);
21
+ const appVersion = node_core_library_1.JsonFile.load(`${lockfileExplorerProjectRoot}/package.json`).version;
22
+ console.log(safe_1.default.bold(`\nRush Lockfile Explorer ${appVersion}`) + safe_1.default.cyan(' - https://lfx.rushstack.io/\n'));
23
+ (0, update_notifier_1.default)({
24
+ pkg: package_json_1.default,
25
+ // Normally update-notifier waits a day or so before it starts displaying upgrade notices.
26
+ // In debug mode, show the notice right away.
27
+ updateCheckInterval: debugMode ? 0 : undefined
28
+ }).notify({
29
+ // Make sure it says "-g" in the "npm install" example command line
30
+ isGlobal: true,
31
+ // Show the notice immediately, rather than waiting for process.onExit()
32
+ defer: false
33
+ });
34
+ const PORT = 8091;
35
+ // Must not have a trailing slash
36
+ const SERVICE_URL = `http://localhost:${PORT}`;
37
+ // TODO: Later if we introduce more CLI parameters, switch to a proper CLI parser
38
+ const args = process_1.default.argv.slice(2);
39
+ if (args.length > 0 && args[0] !== '--debug') {
40
+ console.log('Usage: lockfile-explorer [--debug]\n');
41
+ console.log('The "lfx" command is a shorthand alias for "lockfile-explorer".');
42
+ console.log('See the project website for documentation and support.\n');
43
+ throw new node_core_library_2.AlreadyReportedError();
50
44
  }
51
- }, 4000);
52
- // This takes precedence over the `/app` static route, which also has an `initappcontext.js` file.
53
- app.get('/initappcontext.js', (req, res) => {
54
- const appContext = {
55
- serviceUrl: SERVICE_URL,
56
- appVersion: appState.appVersion,
57
- debugMode: process_1.default.argv.indexOf('--debug') >= 0
58
- };
59
- const sourceCode = [
60
- `console.log('Loaded initappcontext.js');`,
61
- `appContext = ${JSON.stringify(appContext)}`
62
- ].join('\n');
63
- res.type('application/javascript').send(sourceCode);
64
- });
65
- app.use('/', express_1.default.static(distFolderPath));
66
- app.use('/favicon.ico', express_1.default.static(distFolderPath, { index: 'favicon.ico' }));
67
- app.get('/api/lockfile', async (req, res) => {
68
- const pnpmLockfileText = await node_core_library_1.FileSystem.readFileAsync(appState.pnpmLockfileLocation);
69
- const doc = js_yaml_1.default.load(pnpmLockfileText);
70
- res.send(doc);
71
- });
72
- app.get('/api/health', (req, res) => {
73
- awaitingFirstConnect = false;
74
- isClientConnected = true;
75
- if (disconnected) {
76
- disconnected = false;
77
- console.log(safe_1.default.green('The client has reconnected!'));
78
- }
79
- res.status(200).send();
80
- });
81
- app.post('/api/package-json', async (req, res) => {
82
- const { projectPath } = req.body;
83
- const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;
84
- let packageJsonText;
85
- try {
86
- packageJsonText = await node_core_library_1.FileSystem.readFileAsync(fileLocation);
87
- }
88
- catch (e) {
89
- if (node_core_library_1.FileSystem.isNotExistError(e)) {
90
- return res.status(404).send({
91
- message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`,
92
- error: `No package.json in location: ${projectPath}`
93
- });
45
+ const appState = (0, init_1.init)({ lockfileExplorerProjectRoot, appVersion, debugMode });
46
+ // Important: This must happen after init() reads the current working directory
47
+ process_1.default.chdir(appState.lockfileExplorerProjectRoot);
48
+ const distFolderPath = `${appState.lockfileExplorerProjectRoot}/dist`;
49
+ const app = (0, express_1.default)();
50
+ app.use(express_1.default.json());
51
+ app.use((0, cors_1.default)());
52
+ // Variable used to check if the front-end client is still connected
53
+ let awaitingFirstConnect = true;
54
+ let isClientConnected = false;
55
+ let disconnected = false;
56
+ setInterval(() => {
57
+ if (!isClientConnected && !awaitingFirstConnect && !disconnected) {
58
+ console.log(safe_1.default.red('The client has disconnected!'));
59
+ console.log(`Please open a browser window at http://localhost:${PORT}/app`);
60
+ disconnected = true;
94
61
  }
95
- else {
96
- throw e;
62
+ else if (!awaitingFirstConnect) {
63
+ isClientConnected = false;
97
64
  }
98
- }
99
- res.send(packageJsonText);
100
- });
101
- app.get('/api/pnpmfile', async (req, res) => {
102
- let pnpmfile;
103
- try {
104
- pnpmfile = await node_core_library_1.FileSystem.readFileAsync(appState.pnpmfileLocation);
105
- }
106
- catch (e) {
107
- if (node_core_library_1.FileSystem.isNotExistError(e)) {
108
- return res.status(404).send({
109
- message: `Could not load pnpmfile file in this repo.`,
110
- error: `No .pnpmifile.cjs found.`
111
- });
65
+ }, 4000);
66
+ // This takes precedence over the `/app` static route, which also has an `initappcontext.js` file.
67
+ app.get('/initappcontext.js', (req, res) => {
68
+ const appContext = {
69
+ serviceUrl: SERVICE_URL,
70
+ appVersion: appState.appVersion,
71
+ debugMode: process_1.default.argv.indexOf('--debug') >= 0
72
+ };
73
+ const sourceCode = [
74
+ `console.log('Loaded initappcontext.js');`,
75
+ `appContext = ${JSON.stringify(appContext)}`
76
+ ].join('\n');
77
+ res.type('application/javascript').send(sourceCode);
78
+ });
79
+ app.use('/', express_1.default.static(distFolderPath));
80
+ app.use('/favicon.ico', express_1.default.static(distFolderPath, { index: 'favicon.ico' }));
81
+ app.get('/api/lockfile', async (req, res) => {
82
+ const pnpmLockfileText = await node_core_library_1.FileSystem.readFileAsync(appState.pnpmLockfileLocation);
83
+ const doc = js_yaml_1.default.load(pnpmLockfileText);
84
+ res.send(doc);
85
+ });
86
+ app.get('/api/health', (req, res) => {
87
+ awaitingFirstConnect = false;
88
+ isClientConnected = true;
89
+ if (disconnected) {
90
+ disconnected = false;
91
+ console.log(safe_1.default.green('The client has reconnected!'));
112
92
  }
113
- else {
114
- throw e;
93
+ res.status(200).send();
94
+ });
95
+ app.post('/api/package-json', async (req, res) => {
96
+ const { projectPath } = req.body;
97
+ const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;
98
+ let packageJsonText;
99
+ try {
100
+ packageJsonText = await node_core_library_1.FileSystem.readFileAsync(fileLocation);
115
101
  }
116
- }
117
- res.send(pnpmfile);
118
- });
119
- app.post('/api/package-spec', async (req, res) => {
120
- const { projectPath } = req.body;
121
- const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;
122
- let packageJson;
123
- try {
124
- packageJson = await node_core_library_1.JsonFile.loadAsync(fileLocation);
125
- }
126
- catch (e) {
127
- if (node_core_library_1.FileSystem.isNotExistError(e)) {
128
- return res.status(404).send({
129
- message: `Could not load package.json file in location: ${projectPath}`
130
- });
102
+ catch (e) {
103
+ if (node_core_library_1.FileSystem.isNotExistError(e)) {
104
+ return res.status(404).send({
105
+ message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`,
106
+ error: `No package.json in location: ${projectPath}`
107
+ });
108
+ }
109
+ else {
110
+ throw e;
111
+ }
131
112
  }
132
- else {
133
- throw e;
113
+ res.send(packageJsonText);
114
+ });
115
+ app.get('/api/pnpmfile', async (req, res) => {
116
+ let pnpmfile;
117
+ try {
118
+ pnpmfile = await node_core_library_1.FileSystem.readFileAsync(appState.pnpmfileLocation);
134
119
  }
135
- }
136
- const { hooks: { readPackage } } = require(appState.pnpmfileLocation);
137
- const parsedPackage = readPackage(packageJson);
138
- res.send(parsedPackage);
139
- });
140
- app.listen(PORT, async () => {
141
- console.log(`App launched on ${SERVICE_URL}`);
142
- if (!process_1.default.argv.includes('--debug')) {
120
+ catch (e) {
121
+ if (node_core_library_1.FileSystem.isNotExistError(e)) {
122
+ return res.status(404).send({
123
+ message: `Could not load pnpmfile file in this repo.`,
124
+ error: `No .pnpmifile.cjs found.`
125
+ });
126
+ }
127
+ else {
128
+ throw e;
129
+ }
130
+ }
131
+ res.send(pnpmfile);
132
+ });
133
+ app.post('/api/package-spec', async (req, res) => {
134
+ const { projectPath } = req.body;
135
+ const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;
136
+ let packageJson;
143
137
  try {
144
- // Launch the web browser
145
- await (0, open_1.default)(SERVICE_URL);
138
+ packageJson = await node_core_library_1.JsonFile.loadAsync(fileLocation);
146
139
  }
147
140
  catch (e) {
148
- console.error('Error launching browser: ' + e.toString());
141
+ if (node_core_library_1.FileSystem.isNotExistError(e)) {
142
+ return res.status(404).send({
143
+ message: `Could not load package.json file in location: ${projectPath}`
144
+ });
145
+ }
146
+ else {
147
+ throw e;
148
+ }
149
+ }
150
+ const { hooks: { readPackage } } = require(appState.pnpmfileLocation);
151
+ const parsedPackage = readPackage(packageJson);
152
+ res.send(parsedPackage);
153
+ });
154
+ app.listen(PORT, async () => {
155
+ console.log(`App launched on ${SERVICE_URL}`);
156
+ if (!appState.debugMode) {
157
+ try {
158
+ // Launch the web browser
159
+ await (0, open_1.default)(SERVICE_URL);
160
+ }
161
+ catch (e) {
162
+ console.error('Error launching browser: ' + e.toString());
163
+ }
149
164
  }
165
+ });
166
+ }
167
+ const debugMode = process_1.default.argv.indexOf('--debug') >= 0;
168
+ if (debugMode) {
169
+ // Display the full callstack for errors
170
+ startApp(debugMode);
171
+ }
172
+ else {
173
+ // Catch exceptions and report them nicely
174
+ try {
175
+ startApp(debugMode);
150
176
  }
151
- });
177
+ catch (e) {
178
+ console.error();
179
+ console.error(safe_1.default.red('ERROR: ' + e.message));
180
+ }
181
+ }
152
182
  //# sourceMappingURL=start.js.map
package/lib/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport express from 'express';\nimport yaml from 'js-yaml';\nimport cors from 'cors';\nimport process from 'process';\nimport colors from 'colors/safe';\nimport open from 'open';\nimport updateNotifier from 'update-notifier';\nimport { FileSystem, type IPackageJson, JsonFile } from '@rushstack/node-core-library';\nimport type { IAppContext } from '@rushstack/lockfile-explorer-web/lib/AppContext';\nimport packageJSON from '../package.json';\nimport { init } from './init';\nimport type { IAppState } from './state';\n\nconst PORT: number = 8091;\n// Must not have a trailing slash\nconst SERVICE_URL: string = `http://localhost:${PORT}`;\n\nconst appState: IAppState = init();\n\nconsole.log(\n colors.bold(`\\nRush Lockfile Explorer ${appState.appVersion}`) +\n colors.cyan(' - https://lfx.rushstack.io/\\n')\n);\n\n// TODO: Later if we introduce more CLI parameters, switch to a proper CLI parser\nconst args: string[] = process.argv.slice(2);\nif (args.length > 0 && args[0] !== '--debug') {\n console.log('Usage: lockfile-explorer [--debug]\\n');\n console.log('The \"lfx\" command is a shorthand alias for \"lockfile-explorer\".');\n console.log('See the project website for documentation and support.\\n');\n process.exit(1);\n}\n\nupdateNotifier({ pkg: packageJSON }).notify();\n\nprocess.chdir(appState.lockfileExplorerProjectRoot);\nconst distFolderPath: string = `${appState.lockfileExplorerProjectRoot}/dist`;\nconst app: express.Application = express();\napp.use(express.json());\napp.use(cors());\n\n// Variable used to check if the front-end client is still connected\nlet awaitingFirstConnect: boolean = true;\nlet isClientConnected: boolean = false;\nlet disconnected: boolean = false;\nsetInterval(() => {\n if (!isClientConnected && !awaitingFirstConnect && !disconnected) {\n console.log(colors.red('The client has disconnected!'));\n console.log(`Please open a browser window at http://localhost:${PORT}/app`);\n disconnected = true;\n } else if (!awaitingFirstConnect) {\n isClientConnected = false;\n }\n}, 4000);\n\n// This takes precedence over the `/app` static route, which also has an `initappcontext.js` file.\napp.get('/initappcontext.js', (req: express.Request, res: express.Response) => {\n const appContext: IAppContext = {\n serviceUrl: SERVICE_URL,\n appVersion: appState.appVersion,\n debugMode: process.argv.indexOf('--debug') >= 0\n };\n const sourceCode: string = [\n `console.log('Loaded initappcontext.js');`,\n `appContext = ${JSON.stringify(appContext)}`\n ].join('\\n');\n\n res.type('application/javascript').send(sourceCode);\n});\n\napp.use('/', express.static(distFolderPath));\n\napp.use('/favicon.ico', express.static(distFolderPath, { index: 'favicon.ico' }));\n\napp.get('/api/lockfile', async (req: express.Request, res: express.Response) => {\n const pnpmLockfileText: string = await FileSystem.readFileAsync(appState.pnpmLockfileLocation);\n const doc = yaml.load(pnpmLockfileText);\n res.send(doc);\n});\n\napp.get('/api/health', (req: express.Request, res: express.Response) => {\n awaitingFirstConnect = false;\n isClientConnected = true;\n if (disconnected) {\n disconnected = false;\n console.log(colors.green('The client has reconnected!'));\n }\n res.status(200).send();\n});\n\napp.post(\n '/api/package-json',\n async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => {\n const { projectPath } = req.body;\n const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;\n let packageJsonText: string;\n try {\n packageJsonText = await FileSystem.readFileAsync(fileLocation);\n } catch (e) {\n if (FileSystem.isNotExistError(e)) {\n return res.status(404).send({\n message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`,\n error: `No package.json in location: ${projectPath}`\n });\n } else {\n throw e;\n }\n }\n\n res.send(packageJsonText);\n }\n);\n\napp.get('/api/pnpmfile', async (req: express.Request, res: express.Response) => {\n let pnpmfile: string;\n try {\n pnpmfile = await FileSystem.readFileAsync(appState.pnpmfileLocation);\n } catch (e) {\n if (FileSystem.isNotExistError(e)) {\n return res.status(404).send({\n message: `Could not load pnpmfile file in this repo.`,\n error: `No .pnpmifile.cjs found.`\n });\n } else {\n throw e;\n }\n }\n\n res.send(pnpmfile);\n});\n\napp.post(\n '/api/package-spec',\n async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => {\n const { projectPath } = req.body;\n const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;\n let packageJson: IPackageJson;\n try {\n packageJson = await JsonFile.loadAsync(fileLocation);\n } catch (e) {\n if (FileSystem.isNotExistError(e)) {\n return res.status(404).send({\n message: `Could not load package.json file in location: ${projectPath}`\n });\n } else {\n throw e;\n }\n }\n\n const {\n hooks: { readPackage }\n } = require(appState.pnpmfileLocation);\n const parsedPackage = readPackage(packageJson);\n res.send(parsedPackage);\n }\n);\n\napp.listen(PORT, async () => {\n console.log(`App launched on ${SERVICE_URL}`);\n\n if (!process.argv.includes('--debug')) {\n try {\n // Launch the web browser\n await open(SERVICE_URL);\n } catch (e) {\n console.error('Error launching browser: ' + e.toString());\n }\n }\n});\n"]}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;AAE3D,sDAA8B;AAC9B,sDAA2B;AAC3B,gDAAwB;AACxB,sDAA8B;AAC9B,uDAAiC;AACjC,gDAAwB;AACxB,sEAA6C;AAC7C,oEAA0G;AAE1G,mEAA0C;AAC1C,iCAA8B;AAE9B,oEAAoE;AAEpE,SAAS,QAAQ,CAAC,SAAkB;IAClC,MAAM,2BAA2B,GAAW,qCAAiB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAE,CAAC;IAC1G,MAAM,UAAU,GAAW,4BAAQ,CAAC,IAAI,CAAC,GAAG,2BAA2B,eAAe,CAAC,CAAC,OAAO,CAAC;IAEhG,OAAO,CAAC,GAAG,CACT,cAAM,CAAC,IAAI,CAAC,4BAA4B,UAAU,EAAE,CAAC,GAAG,cAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CACtG,CAAC;IAEF,IAAA,yBAAc,EAAC;QACb,GAAG,EAAE,sBAAW;QAChB,0FAA0F;QAC1F,6CAA6C;QAC7C,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/C,CAAC,CAAC,MAAM,CAAC;QACR,mEAAmE;QACnE,QAAQ,EAAE,IAAI;QACd,wEAAwE;QACxE,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,MAAM,IAAI,GAAW,IAAI,CAAC;IAC1B,iCAAiC;IACjC,MAAM,WAAW,GAAW,oBAAoB,IAAI,EAAE,CAAC;IAEvD,iFAAiF;IACjF,MAAM,IAAI,GAAa,iBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,MAAM,IAAI,wCAAoB,EAAE,CAAC;KAClC;IAED,MAAM,QAAQ,GAAc,IAAA,WAAI,EAAC,EAAE,2BAA2B,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAEzF,+EAA+E;IAC/E,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAW,GAAG,QAAQ,CAAC,2BAA2B,OAAO,CAAC;IAC9E,MAAM,GAAG,GAAwB,IAAA,iBAAO,GAAE,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAEhB,oEAAoE;IACpE,IAAI,oBAAoB,GAAY,IAAI,CAAC;IACzC,IAAI,iBAAiB,GAAY,KAAK,CAAC;IACvC,IAAI,YAAY,GAAY,KAAK,CAAC;IAClC,WAAW,CAAC,GAAG,EAAE;QACf,IAAI,CAAC,iBAAiB,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,EAAE;YAChE,OAAO,CAAC,GAAG,CAAC,cAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,MAAM,CAAC,CAAC;YAC5E,YAAY,GAAG,IAAI,CAAC;SACrB;aAAM,IAAI,CAAC,oBAAoB,EAAE;YAChC,iBAAiB,GAAG,KAAK,CAAC;SAC3B;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,kGAAkG;IAClG,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;QAC5E,MAAM,UAAU,GAAgB;YAC9B,UAAU,EAAE,WAAW;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;SAChD,CAAC;QACF,MAAM,UAAU,GAAW;YACzB,0CAA0C;YAC1C,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;SAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAE7C,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAElF,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;QAC7E,MAAM,gBAAgB,GAAW,MAAM,8BAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC/F,MAAM,GAAG,GAAG,iBAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;QACrE,oBAAoB,GAAG,KAAK,CAAC;QAC7B,iBAAiB,GAAG,IAAI,CAAC;QACzB,IAAI,YAAY,EAAE;YAChB,YAAY,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,cAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;SAC1D;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CACN,mBAAmB,EACnB,KAAK,EAAE,GAAyD,EAAE,GAAqB,EAAE,EAAE;QACzF,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACjC,MAAM,YAAY,GAAG,GAAG,QAAQ,CAAC,WAAW,IAAI,WAAW,eAAe,CAAC;QAC3E,IAAI,eAAuB,CAAC;QAC5B,IAAI;YACF,eAAe,GAAG,MAAM,8BAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;SAChE;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,8BAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;gBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC1B,OAAO,EAAE,gHAAgH;oBACzH,KAAK,EAAE,gCAAgC,WAAW,EAAE;iBACrD,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QAED,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;QAC7E,IAAI,QAAgB,CAAC;QACrB,IAAI;YACF,QAAQ,GAAG,MAAM,8BAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SACtE;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,8BAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;gBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC1B,OAAO,EAAE,4CAA4C;oBACrD,KAAK,EAAE,0BAA0B;iBAClC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QAED,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CACN,mBAAmB,EACnB,KAAK,EAAE,GAAyD,EAAE,GAAqB,EAAE,EAAE;QACzF,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACjC,MAAM,YAAY,GAAG,GAAG,QAAQ,CAAC,WAAW,IAAI,WAAW,eAAe,CAAC;QAC3E,IAAI,WAAyB,CAAC;QAC9B,IAAI;YACF,WAAW,GAAG,MAAM,4BAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SACtD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,8BAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;gBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC1B,OAAO,EAAE,iDAAiD,WAAW,EAAE;iBACxE,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QAED,MAAM,EACJ,KAAK,EAAE,EAAE,WAAW,EAAE,EACvB,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACvB,IAAI;gBACF,yBAAyB;gBACzB,MAAM,IAAA,cAAI,EAAC,WAAW,CAAC,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC3D;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAY,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChE,IAAI,SAAS,EAAE;IACb,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,CAAC;CACrB;KAAM;IACL,0CAA0C;IAC1C,IAAI;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC;KACrB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,cAAM,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;KAClD;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport express from 'express';\nimport yaml from 'js-yaml';\nimport cors from 'cors';\nimport process from 'process';\nimport colors from 'colors/safe';\nimport open from 'open';\nimport updateNotifier from 'update-notifier';\nimport { FileSystem, type IPackageJson, JsonFile, PackageJsonLookup } from '@rushstack/node-core-library';\nimport type { IAppContext } from '@rushstack/lockfile-explorer-web/lib/AppContext';\nimport packageJSON from '../package.json';\nimport { init } from './init';\nimport type { IAppState } from './state';\nimport { AlreadyReportedError } from '@rushstack/node-core-library';\n\nfunction startApp(debugMode: boolean): void {\n const lockfileExplorerProjectRoot: string = PackageJsonLookup.instance.tryGetPackageFolderFor(__dirname)!;\n const appVersion: string = JsonFile.load(`${lockfileExplorerProjectRoot}/package.json`).version;\n\n console.log(\n colors.bold(`\\nRush Lockfile Explorer ${appVersion}`) + colors.cyan(' - https://lfx.rushstack.io/\\n')\n );\n\n updateNotifier({\n pkg: packageJSON,\n // Normally update-notifier waits a day or so before it starts displaying upgrade notices.\n // In debug mode, show the notice right away.\n updateCheckInterval: debugMode ? 0 : undefined\n }).notify({\n // Make sure it says \"-g\" in the \"npm install\" example command line\n isGlobal: true,\n // Show the notice immediately, rather than waiting for process.onExit()\n defer: false\n });\n\n const PORT: number = 8091;\n // Must not have a trailing slash\n const SERVICE_URL: string = `http://localhost:${PORT}`;\n\n // TODO: Later if we introduce more CLI parameters, switch to a proper CLI parser\n const args: string[] = process.argv.slice(2);\n if (args.length > 0 && args[0] !== '--debug') {\n console.log('Usage: lockfile-explorer [--debug]\\n');\n console.log('The \"lfx\" command is a shorthand alias for \"lockfile-explorer\".');\n console.log('See the project website for documentation and support.\\n');\n throw new AlreadyReportedError();\n }\n\n const appState: IAppState = init({ lockfileExplorerProjectRoot, appVersion, debugMode });\n\n // Important: This must happen after init() reads the current working directory\n process.chdir(appState.lockfileExplorerProjectRoot);\n\n const distFolderPath: string = `${appState.lockfileExplorerProjectRoot}/dist`;\n const app: express.Application = express();\n app.use(express.json());\n app.use(cors());\n\n // Variable used to check if the front-end client is still connected\n let awaitingFirstConnect: boolean = true;\n let isClientConnected: boolean = false;\n let disconnected: boolean = false;\n setInterval(() => {\n if (!isClientConnected && !awaitingFirstConnect && !disconnected) {\n console.log(colors.red('The client has disconnected!'));\n console.log(`Please open a browser window at http://localhost:${PORT}/app`);\n disconnected = true;\n } else if (!awaitingFirstConnect) {\n isClientConnected = false;\n }\n }, 4000);\n\n // This takes precedence over the `/app` static route, which also has an `initappcontext.js` file.\n app.get('/initappcontext.js', (req: express.Request, res: express.Response) => {\n const appContext: IAppContext = {\n serviceUrl: SERVICE_URL,\n appVersion: appState.appVersion,\n debugMode: process.argv.indexOf('--debug') >= 0\n };\n const sourceCode: string = [\n `console.log('Loaded initappcontext.js');`,\n `appContext = ${JSON.stringify(appContext)}`\n ].join('\\n');\n\n res.type('application/javascript').send(sourceCode);\n });\n\n app.use('/', express.static(distFolderPath));\n\n app.use('/favicon.ico', express.static(distFolderPath, { index: 'favicon.ico' }));\n\n app.get('/api/lockfile', async (req: express.Request, res: express.Response) => {\n const pnpmLockfileText: string = await FileSystem.readFileAsync(appState.pnpmLockfileLocation);\n const doc = yaml.load(pnpmLockfileText);\n res.send(doc);\n });\n\n app.get('/api/health', (req: express.Request, res: express.Response) => {\n awaitingFirstConnect = false;\n isClientConnected = true;\n if (disconnected) {\n disconnected = false;\n console.log(colors.green('The client has reconnected!'));\n }\n res.status(200).send();\n });\n\n app.post(\n '/api/package-json',\n async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => {\n const { projectPath } = req.body;\n const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;\n let packageJsonText: string;\n try {\n packageJsonText = await FileSystem.readFileAsync(fileLocation);\n } catch (e) {\n if (FileSystem.isNotExistError(e)) {\n return res.status(404).send({\n message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`,\n error: `No package.json in location: ${projectPath}`\n });\n } else {\n throw e;\n }\n }\n\n res.send(packageJsonText);\n }\n );\n\n app.get('/api/pnpmfile', async (req: express.Request, res: express.Response) => {\n let pnpmfile: string;\n try {\n pnpmfile = await FileSystem.readFileAsync(appState.pnpmfileLocation);\n } catch (e) {\n if (FileSystem.isNotExistError(e)) {\n return res.status(404).send({\n message: `Could not load pnpmfile file in this repo.`,\n error: `No .pnpmifile.cjs found.`\n });\n } else {\n throw e;\n }\n }\n\n res.send(pnpmfile);\n });\n\n app.post(\n '/api/package-spec',\n async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => {\n const { projectPath } = req.body;\n const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`;\n let packageJson: IPackageJson;\n try {\n packageJson = await JsonFile.loadAsync(fileLocation);\n } catch (e) {\n if (FileSystem.isNotExistError(e)) {\n return res.status(404).send({\n message: `Could not load package.json file in location: ${projectPath}`\n });\n } else {\n throw e;\n }\n }\n\n const {\n hooks: { readPackage }\n } = require(appState.pnpmfileLocation);\n const parsedPackage = readPackage(packageJson);\n res.send(parsedPackage);\n }\n );\n\n app.listen(PORT, async () => {\n console.log(`App launched on ${SERVICE_URL}`);\n\n if (!appState.debugMode) {\n try {\n // Launch the web browser\n await open(SERVICE_URL);\n } catch (e) {\n console.error('Error launching browser: ' + e.toString());\n }\n }\n });\n}\n\nconst debugMode: boolean = process.argv.indexOf('--debug') >= 0;\nif (debugMode) {\n // Display the full callstack for errors\n startApp(debugMode);\n} else {\n // Catch exceptions and report them nicely\n try {\n startApp(debugMode);\n } catch (e) {\n console.error();\n console.error(colors.red('ERROR: ' + e.message));\n }\n}\n"]}
@@ -14,6 +14,7 @@ export interface IAppStateBase {
14
14
  pnpmLockfileLocation: string;
15
15
  pnpmfileLocation: string;
16
16
  appVersion: string;
17
+ debugMode: boolean;
17
18
  }
18
19
  export interface IRushAppState extends IAppStateBase {
19
20
  projectType: ProjectType.RUSH_PROJECT;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAGA,oBAAY,WAAW;IACrB,YAAY,IAAA;IACZ,cAAc,IAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;IACtC,IAAI,EAAE;QACJ,YAAY,EAAE,MAAM,CAAC;QACrB,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;KAC3D,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC;CACzC;AAED,oBAAY,SAAS,GAAG,aAAa,GAAG,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAGA,oBAAY,WAAW;IACrB,YAAY,IAAA;IACZ,cAAc,IAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;IACtC,IAAI,EAAE;QACJ,YAAY,EAAE,MAAM,CAAC;QACrB,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;KAC3D,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC;CACzC;AAED,oBAAY,SAAS,GAAG,aAAa,GAAG,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,6DAAY,CAAA;IACZ,iEAAc,CAAA;AAChB,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nexport enum ProjectType {\n RUSH_PROJECT,\n PNPM_WORKSPACE\n}\n\nexport interface IRushProjectDetails {\n projectName: string;\n projectFolder: string;\n}\n\nexport interface IAppStateBase {\n lockfileExplorerProjectRoot: string;\n currDir: string;\n projectRoot: string;\n projectType: ProjectType;\n pnpmLockfileLocation: string;\n pnpmfileLocation: string;\n appVersion: string;\n}\n\nexport interface IRushAppState extends IAppStateBase {\n projectType: ProjectType.RUSH_PROJECT;\n rush: {\n rushJsonPath: string;\n projectsByProjectFolder: Map<string, IRushProjectDetails>;\n };\n}\n\nexport interface IPnpmWorkspaceAppState extends IAppStateBase {\n projectType: ProjectType.PNPM_WORKSPACE;\n}\n\nexport type IAppState = IRushAppState | IPnpmWorkspaceAppState;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,6DAAY,CAAA;IACZ,iEAAc,CAAA;AAChB,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nexport enum ProjectType {\n RUSH_PROJECT,\n PNPM_WORKSPACE\n}\n\nexport interface IRushProjectDetails {\n projectName: string;\n projectFolder: string;\n}\n\nexport interface IAppStateBase {\n lockfileExplorerProjectRoot: string;\n currDir: string;\n projectRoot: string;\n projectType: ProjectType;\n pnpmLockfileLocation: string;\n pnpmfileLocation: string;\n appVersion: string;\n debugMode: boolean;\n}\n\nexport interface IRushAppState extends IAppStateBase {\n projectType: ProjectType.RUSH_PROJECT;\n rush: {\n rushJsonPath: string;\n projectsByProjectFolder: Map<string, IRushProjectDetails>;\n };\n}\n\nexport interface IPnpmWorkspaceAppState extends IAppStateBase {\n projectType: ProjectType.PNPM_WORKSPACE;\n}\n\nexport type IAppState = IRushAppState | IPnpmWorkspaceAppState;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/lockfile-explorer",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Rush Lockfile Explorer: The UI for solving version conflicts quickly in a large monorepo",
5
5
  "keywords": [
6
6
  "conflict",
@@ -29,7 +29,7 @@
29
29
  "lfx": "./bin/lockfile-explorer"
30
30
  },
31
31
  "devDependencies": {
32
- "@microsoft/rush-lib": "5.88.1",
32
+ "@microsoft/rush-lib": "5.88.2",
33
33
  "@rushstack/eslint-config": "3.1.1",
34
34
  "@rushstack/heft-node-rig": "1.11.12",
35
35
  "@rushstack/heft": "0.49.1",
@@ -1 +0,0 @@
1
- !function(){var e,t={354:function(e,t,n){"use strict";var r,a,o=n(823),c=n(998),l="HK80a6ZVkdxoTKzrP9Eq",s="HqAzbQwu1zc9yH8ZQESI",i=n(201);!function(e){e[e.DEPENDENCY=0]="DEPENDENCY",e[e.DEV_DEPENDENCY=1]="DEV_DEPENDENCY",e[e.PEER_DEPENDENCY=2]="PEER_DEPENDENCY"}(r||(r={}));class d{constructor(e,t,n,a,o){if(this.entryId="",this.name=e,this.version=t,this.dependencyType=n,this.containingEntry=a,this.peerDependencyMeta={},this.version.startsWith("link:")){const t=this.version.substring("link:".length),n=new i.y(".").relative(new i.y(a.packageJsonFolderPath).concat(t));if(!n)return void console.error("No root relative path for dependency!",e);this.entryId="project:"+n.toString()}else this.version.startsWith("/")?this.entryId=this.version:this.dependencyType===r.PEER_DEPENDENCY?(null==o?void 0:o.peerDependencies)?(this.peerDependencyMeta={name:this.name,version:o.peerDependencies[this.name],optional:!(!o.peerDependenciesMeta||!o.peerDependenciesMeta[this.name])&&o.peerDependenciesMeta[this.name].optional},this.entryId="Peer: "+this.name):console.error("Peer dependencies info missing!",o):this.entryId="/"+this.name+"/"+this.version}static parseDependencies(e,t,n){if(n.dependencies)for(const[a,o]of Object.entries(n.dependencies))e.push(new d(a,o,r.DEPENDENCY,t));if(n.devDependencies)for(const[a,o]of Object.entries(n.devDependencies))e.push(new d(a,o,r.DEV_DEPENDENCY,t));if(n.peerDependencies)for(const[a,o]of Object.entries(n.peerDependencies))e.push(new d(a,o,r.PEER_DEPENDENCY,t,n));if(n.transitivePeerDependencies)for(const e of n.transitivePeerDependencies)t.transitivePeerDependencies.add(e)}}!function(e){e[e.Project=0]="Project",e[e.Package=1]="Package",e[e.SideBySide=2]="SideBySide",e[e.Doppelganger=3]="Doppelganger"}(a||(a={}));class u{constructor(e){this.entryId="",this.packageJsonFolderPath="",this.entryPackageName="",this.displayText="",this.dependencies=[],this.transitivePeerDependencies=new Set,this.referrers=[],this.entryPackageVersion="",this.entrySuffix="";const{rawEntryId:t,kind:n,rawYamlData:r}=e;if(this.rawEntryId=t,this.kind=n,"."!==t){if(n===a.Project){const e=new i.y("common/temp/package.json").dirname()||"",n=new i.y(".").relative(new i.y(e).concat(t)),r=new i.y(t).basename();if(!n||!r)return void console.error("Could not construct path for entry: ",t);this.packageJsonFolderPath=n.toString(),this.entryId="project:"+this.packageJsonFolderPath,this.entryPackageName=r.toString(),this.displayText="Project: "+this.entryPackageName}else{this.displayText=t;const e=u._packageEntryIdRegex.exec(t);if(e){const[,t,n]=e;this.entryPackageName=t;const r=n.indexOf("_");if(r>=0){const e=n.substring(0,r),a=n.substring(r+1);this.entryPackageVersion=e,this.entrySuffix=a,this.displayText=t+" "+e+" ("+a+")"}else this.entryPackageVersion=n,this.displayText=t+" "+n}this.packageJsonFolderPath="common/temp/node_modules/.pnpm/"+this.entryPackageName.replace("/","+")+"@"+this.entryPackageVersion+(this.entrySuffix?`_${this.entrySuffix}`:"")+"/node_modules/"+this.entryPackageName}d.parseDependencies(this.dependencies,this,r)}}}u._packageEntryIdRegex=new RegExp("/(.*)/([^/]+)$");const p=window.appContext.serviceUrl;var m="OcndyDBetZor3ptzTnTX",f="Wg5pG3RVf6SQ51i0tVkd",E="NBIr3yosJ9gX6LZcnC7T";const h=null;var v=n(775);const y=v.I0,g=v.v9;var b=n(608);const w="LOCKFILE_EXPLORER_BOOKMARKS",k="LOCKFILE_EXPLORER_PROJECT_FILTER",S="LOCKFILE_EXPLORER_PACKAGE_FILTER",P=e=>e===a.Project?localStorage.getItem(k)||"":localStorage.getItem(S)||"",C={allEntries:[],filters:{[a.Project]:!1,[a.Package]:!0,[a.SideBySide]:!1,[a.Doppelganger]:!1},selectedEntryStack:[],selectedEntryForwardStack:[],bookmarkedEntries:[]},N=(0,b.oM)({name:"entry",initialState:C,reducers:{loadEntries:(e,t)=>{e.allEntries=t.payload;const n=(()=>{const e=JSON.parse(localStorage.getItem(w)||"{}"),t=new Set;for(const n of Object.keys(e))t.add(n);return t})();for(const r of t.payload)n.has(r.rawEntryId)&&e.bookmarkedEntries.push(r)},setFilter:(e,t)=>{e.filters[t.payload.filter]=t.payload.state},clearStackAndPush:(e,t)=>{e.selectedEntryStack=[t.payload],e.selectedEntryForwardStack=[]},pushToStack:(e,t)=>{e.selectedEntryStack.push(t.payload),e.selectedEntryForwardStack=[],t.payload.kind===a.Package?(e.filters[a.Project]=!1,e.filters[a.Package]=!0):(e.filters[a.Project]=!0,e.filters[a.Package]=!1)},popStack:e=>{if(e.selectedEntryStack.length>1){const t=e.selectedEntryStack.pop();e.selectedEntryForwardStack.push(t),e.selectedEntryStack.length>=1&&(e.selectedEntryStack[e.selectedEntryStack.length-1].kind===a.Package?(e.filters[a.Project]=!1,e.filters[a.Package]=!0):(e.filters[a.Project]=!0,e.filters[a.Package]=!1))}},forwardStack:e=>{if(e.selectedEntryForwardStack.length>0){const t=e.selectedEntryForwardStack.pop();e.selectedEntryStack.push(t),t.kind===a.Package?(e.filters[a.Project]=!1,e.filters[a.Package]=!0):(e.filters[a.Project]=!0,e.filters[a.Package]=!1)}},addBookmark:(e,t)=>{e.bookmarkedEntries.includes(t.payload)||(e.bookmarkedEntries.push(t.payload),(e=>{const t=e.rawEntryId,n=JSON.parse(localStorage.getItem(w)||"{}");n[t]=!0,localStorage.setItem(w,JSON.stringify(n))})(t.payload))},removeBookmark:(e,t)=>{e.bookmarkedEntries=e.bookmarkedEntries.filter((e=>e.rawEntryId!==t.payload.rawEntryId)),(e=>{const t=e.rawEntryId,n=JSON.parse(localStorage.getItem(w)||"{}");delete n[t],localStorage.setItem(w,JSON.stringify(n))})(t.payload)}}}),T=e=>e.entry.selectedEntryStack.length?e.entry.selectedEntryStack[e.entry.selectedEntryStack.length-1]:void 0,x=e=>{const t=[];return e.entry.filters[a.Package]?t.push(...e.entry.allEntries.filter((e=>e.kind===a.Package))):e.entry.filters[a.Project]&&t.push(...e.entry.allEntries.filter((e=>e.kind===a.Project))),t},{loadEntries:D,setFilter:R,clearStackAndPush:_,pushToStack:I,popStack:O,forwardStack:A,addBookmark:j,removeBookmark:M}=N.actions,L=N.reducer;var F=n(581);const B=({group:e})=>{const t=g(T),n=g((e=>e.entry.filters)),r=y(),c=(0,o.useRef)(),l=(0,o.useCallback)((e=>()=>{r(I(e))}),[]);return(0,o.useEffect)((()=>{t&&t.entryPackageName===e.entryName&&c.current.scrollIntoView({behavior:"smooth"})}),[t,e]),n[a.Project]?o.createElement("div",{className:m,ref:c},e.versions.map((e=>o.createElement("div",{key:e.rawEntryId,onClick:l(e),className:`${f} ${(null==t?void 0:t.rawEntryId)===e.rawEntryId?E:""}`},o.createElement(F.Text,{type:"h5"},e.entryPackageName))))):o.createElement("div",{className:m,ref:c},o.createElement(F.Text,{type:"h5",bold:!0},e.entryName),e.versions.map((e=>o.createElement("div",{key:e.rawEntryId,onClick:l(e),className:`${f} ${(null==t?void 0:t.rawEntryId)===e.rawEntryId?E:""}`},o.createElement(F.Text,{type:"p"},e.entryPackageVersion," ",e.entrySuffix&&`[${e.entrySuffix}]`)))))},z=()=>{const e=y(),[t,n]=(0,o.useState)(""),[r,c]=(0,o.useState)(""),l=g(x),s=g((e=>e.entry.filters)),i=(0,o.useCallback)((e=>t=>{e===a.Project?n(t.target.value):c(t.target.value),((e,t)=>{t===a.Project?localStorage.setItem(k,e):localStorage.setItem(S,e)})(t.target.value,e)}),[]);if((0,o.useEffect)((()=>{n(P(a.Project)),c(P(a.Package))}),[]),!l)return h;const d=(0,o.useCallback)(((t,n)=>()=>{e(R({filter:t,state:n}))}),[]),u=(0,o.useCallback)((t=>{"Projects"===t?(e(R({filter:a.Project,state:!0})),e(R({filter:a.Package,state:!1}))):(e(R({filter:a.Package,state:!0})),e(R({filter:a.Project,state:!1})))}),[s]);return o.createElement("div",{className:"yk7wrFMnnNyYLABMBhz_"},o.createElement("div",{className:"X00sOTmx1ir4Oc41DIvM"},o.createElement(F.Tabs,{items:[{header:"Projects"},{header:"Packages"}],value:s[a.Project]?"Projects":"Packages",onChange:u}),o.createElement(F.Input,{type:"search",placeholder:"Filter...",value:s[a.Project]?t:r,onChange:i(s[a.Project]?a.Project:a.Package)}),o.createElement(F.ScrollArea,null,(()=>{let e=l;t&&s[a.Project]?e=l.filter((e=>-1!==e.entryPackageName.indexOf(t))):r&&s[a.Package]&&(e=l.filter((e=>-1!==e.entryPackageName.indexOf(r))));const n=e.reduce(((e,t)=>{const n=e[t.entryPackageName]||[];return n.push(t),e[t.entryPackageName]=n,e}),{});let o=[];for(const[e,t]of Object.entries(n))o.push({entryName:e,versions:t});return s[a.SideBySide]&&(o=o.filter((e=>e.versions.length>1))),s[a.Doppelganger]&&(o=o.filter((e=>(e=>{const t=new Set;for(const n of e){if(t.has(n.entryPackageVersion))return!0;t.add(n.entryPackageVersion)}return!1})(e.versions)))),o})().map((e=>o.createElement(B,{group:e,key:e.entryName})))),s[a.Package]?o.createElement("div",{className:"K6dDN5KzjLkbPPFWUaly"},o.createElement(F.Text,{type:"h5",bold:!0},"Filters"),o.createElement(F.Checkbox,{label:"Must have side-by-side versions",isChecked:s[a.SideBySide],onChecked:d(a.SideBySide,!s[a.SideBySide])}),o.createElement(F.Checkbox,{label:"Must have doppelgangers",isChecked:s[a.Doppelganger],onChecked:d(a.Doppelganger,!s[a.Doppelganger])})):null))},$=`${window.appContext.serviceUrl}/api`;var Y="rXOH6AJQU2eYrNAXbp4V";const V={specChanges:new Map},K=(0,b.oM)({name:"workspace",initialState:V,reducers:{loadSpecChanges:(e,t)=>{e.specChanges=t.payload}}}),{loadSpecChanges:H}=K.actions,G=K.reducer,W=(e,t)=>{var n;switch(null===(n=e.get(t))||void 0===n?void 0:n.type){case"add":return"[Added by .pnpmfile.cjs]";case"diff":return"[Changed from {specChanges.get(dep)?.from}]";case"remove":return"[Deleted by .pnpmfile.cjs]";default:return"No Change"}},J=(e,t)=>{if(!e)return!1;for(const n of e.dependencies)if(t.has(n.name))return!0;return!1};var U;!function(e){e[e.PACKAGE_JSON=0]="PACKAGE_JSON",e[e.PACKAGE_SPEC=1]="PACKAGE_SPEC",e[e.PARSED_PACKAGE_JSON=2]="PARSED_PACKAGE_JSON"}(U||(U={}));const X=()=>{const e=y(),[t,n]=(0,o.useState)(void 0),[r,a]=(0,o.useState)(void 0),[c,l]=(0,o.useState)(""),s=g(T),i=g((e=>e.workspace.specChanges)),[d,u]=(0,o.useState)(U.PARSED_PACKAGE_JSON),p=(0,o.useCallback)((e=>u(e)),[]);(0,o.useEffect)((()=>{(async function(){const e=await async function(){try{const e=await fetch(`${$}/pnpmfile`);return await e.text()}catch(e){return console.error("Could not load cjs file: ",e),"Missing CJS"}}();l(e)})().catch((e=>{console.error(`Failed to load project's pnpm file: ${e}`)}))}),[]),(0,o.useEffect)((()=>{s&&(s.entryPackageName?async function(t){const r=await async function(e){try{const t=await fetch(`${$}/package-json`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load package json file: ",e)}}(t);n(r);const o=await async function(e){try{const t=await fetch(`${$}/package-spec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:e})});return await t.json()}catch(e){return void console.error("Could not load cjs file: ",e)}}(t);if(a(o),r&&o){const t=((e,t)=>{const n=new Map,r=new Map;for(const[t,r]of Object.entries(Object.assign(Object.assign(Object.assign({},e.dependencies),e.devDependencies),e.peerDependencies)))n.set(t,r);for(const[e,n]of Object.entries(Object.assign(Object.assign(Object.assign({},t.dependencies),t.devDependencies),t.peerDependencies)))r.set(e,n);const a=new Map;for(const e of n.keys())r.has(e)?r.get(e)!==n.get(e)&&a.set(e,{type:"diff",packageName:e,from:n.get(e),to:r.get(e)}):a.set(e,{type:"remove",packageName:e});for(const e of r.keys())n.has(e)||a.set(e,{type:"add",packageName:e});return a})(r,o);e(H(t))}}(s.packageJsonFolderPath).catch((e=>{console.error(`Failed to load project information: ${e}`)})):console.log("The selected entry has no entry name: ",s.entryPackageName))}),[s]);const m=e=>t=>{var n;const[r,a]=t;if(!i.has(r))return e?o.createElement(F.Text,{type:"p",key:r},r,":"):o.createElement(F.Text,{type:"p",key:r},a);switch(null===(n=i.get(r))||void 0===n?void 0:n.type){case"add":return e?o.createElement(F.Text,{type:"p",key:r},o.createElement("span",{className:"nTIc62ACgp5xMWIvZ4cn"},r)):o.createElement(F.Text,{type:"p",key:r},a," ",W(i,r));case"diff":return e?o.createElement(F.Text,{type:"p",key:r},o.createElement("span",{className:"I4A8ZZlpCL3Op0c53VjN"},r)):o.createElement(F.Text,{type:"p",key:r},a," ",W(i,r));case"remove":return e?o.createElement(F.Text,{type:"p",key:r},o.createElement("span",{className:"iavWjvHy9s5MhCZ_ncgb"},r)):o.createElement(F.Text,{type:"p",key:r},a," ",W(i,r));default:return e?o.createElement(F.Text,{type:"p",key:r},r,":"):o.createElement(F.Text,{type:"p",key:r},a)}};return o.createElement("div",{className:"kzgyQkswpx6xUEo4zOa8"},o.createElement(F.Tabs,{items:[{header:"package spec "+(J(s,i)?"*":""),value:U.PARSED_PACKAGE_JSON},{header:"package.json",value:U.PACKAGE_JSON},{header:".pnpmfile.cjs",value:U.PACKAGE_SPEC}],value:d,onChange:p}),o.createElement("div",{className:"e2KEBfZCHwEMeH4j6wS7"},o.createElement(F.ScrollArea,null,o.createElement("div",{className:"zjGuydlDBdLj1kQnKe4V"},(()=>{switch(d){case U.PACKAGE_JSON:return t?o.createElement("pre",null,JSON.stringify(t,null,2)):o.createElement(F.Text,{type:"h5",bold:!0},"Please select a Project or Package to view it's package.json");case U.PACKAGE_SPEC:return c?o.createElement("pre",null,c):o.createElement(F.Text,{type:"h5",bold:!0},"Couldn't load the pnpmfile.cjs file - does it exist in the expected location? (/common/config/rush/.pnpmfile.cjs)");case U.PARSED_PACKAGE_JSON:return r?o.createElement("div",{className:"Ko0YQxSlY0hCIDTfmNlr"},o.createElement("div",{className:Y},o.createElement(F.Text,{type:"h5",bold:!0},"Package Name:"),o.createElement(F.Text,{type:"p"},null==s?void 0:s.displayText)),o.createElement("div",{className:Y},o.createElement(F.Text,{type:"h5",bold:!0},"Version:"),o.createElement(F.Text,{type:"p"},null==s?void 0:s.entryPackageVersion)),o.createElement("div",{className:"hqNteMkwhYXuZqHE_8MJ"},o.createElement("div",null,o.createElement(F.Text,{type:"h5",bold:!0},"Dependencies"),r.dependencies&&Object.entries(r.dependencies).map(m(!0)),o.createElement(F.Text,{type:"h5",bold:!0},"Dev Dependencies"),r.devDependencies&&Object.entries(r.devDependencies).map(m(!0)),o.createElement(F.Text,{type:"h5",bold:!0},"Peer Dependencies"),r.peerDependencies&&Object.entries(r.peerDependencies).map(m(!0))),o.createElement("div",null,o.createElement(F.Text,{type:"h5",bold:!0}," "),r.dependencies&&Object.entries(r.dependencies).map(m(!1)),o.createElement(F.Text,{type:"h5",bold:!0}," "),r.devDependencies&&Object.entries(r.devDependencies).map(m(!1)),o.createElement(F.Text,{type:"h5",bold:!0}," "),r.peerDependencies&&Object.entries(r.peerDependencies).map(m(!1))))):o.createElement(F.Text,{type:"h5",bold:!0},"Please select a Project or Package to view the parsed package.json");default:return null}})()))))};var Z,Q="_R50_3JsFs2FC9kVffQL",q="mRQWdzXzOM1NpFUpYnhP",ee="rIv2KvSZ0CKMbctSHL04",te="wzeVrHi3oyOhEe6qD3PX",ne="lGp34XdOFjHfZNwiilgC";!function(e){e[e.Determinant=0]="Determinant",e[e.TransitiveReferrer=1]="TransitiveReferrer"}(Z||(Z={}));const re=()=>{var e,t;const n=g(T),a=g((e=>e.workspace.specChanges)),c=y(),[s,i]=(0,o.useState)(null),[d,u]=(0,o.useState)([]);(0,o.useEffect)((()=>{n&&i(null)}),[n]);const p=(0,o.useCallback)((e=>()=>{if(s&&s.entryId===e.entryId)e.resolvedEntry?c(I(e.resolvedEntry)):((...e)=>{window.appContext.debugMode&&console.log("Diagnostic: ",...e)})("No resolved entry for dependency:",e);else if(n){if(console.log("dependency to trace: ",e),i(e),e.dependencyType!==r.PEER_DEPENDENCY)return;const t=[n],a=new Set,o=new Set,c=new Set;for(c.add(n);t.length;){const n=t.pop();if(n)for(const r of n.referrers){let l=!1;for(const t of r.dependencies)if(t.name===e.name){a.add(r),l=!0;break}if(!l){r.transitivePeerDependencies.has(e.name)?o.add(r):console.error('Error analyzing influencers: A referrer appears to be missing its "transitivePeerDependencies" field in the YAML file: ',e,r,n);for(const e of n.referrers)c.has(e)||(t.push(e),c.add(e))}}}const l=[];for(const e of a.values())l.push({entry:e,type:Z.Determinant});for(const e of o.values())l.push({entry:e,type:Z.TransitiveReferrer});u(l)}}),[n,s]),m=(0,o.useCallback)((e=>()=>{c(I(e))}),[n]);return n?o.createElement(o.Fragment,null,o.createElement("div",{className:"KWDuEbG1GmwLxFmPPppw"},o.createElement("div",{className:l},o.createElement(F.Text,{type:"h4",bold:!0},"Direct Referrers"),o.createElement("div",{className:Q},o.createElement(F.ScrollArea,null,null===(e=n.referrers)||void 0===e?void 0:e.map((e=>o.createElement("div",{className:q,key:e.rawEntryId,onClick:m(e)},o.createElement(F.Text,{type:"h5",bold:!0},"Name: ",e.displayText),o.createElement("div",null,o.createElement(F.Text,{type:"p"},"Entry ID: ",e.rawEntryId)))))))),o.createElement("div",{className:l},o.createElement(F.Text,{type:"h4",bold:!0},"Direct Dependencies"),o.createElement("div",{className:Q},o.createElement(F.ScrollArea,null,null===(t=n.dependencies)||void 0===t?void 0:t.map((e=>o.createElement("div",{className:`${q} ${(null==s?void 0:s.entryId)===e.entryId&&"GbZbP1wHbcReGrxpZ3Ra"}`,key:e.entryId||e.name,onClick:p(e)},o.createElement(F.Text,{type:"h5",bold:!0},"Name: ",e.name," ",e.dependencyType===r.PEER_DEPENDENCY?(e.peerDependencyMeta.optional?"(Optional)":"(Non-optional)")+" Peer Dependency":""),o.createElement("div",null,o.createElement(F.Text,{type:"p"},"Version: ",e.version),o.createElement(F.Text,{type:"p"},"Entry ID: ",e.entryId))))))))),s?o.createElement("div",{className:"xSxHmjxIXTOSskLhma3A"},o.createElement(F.ScrollArea,null,o.createElement("div",{className:ne},o.createElement(F.Text,{type:"h5",bold:!0},"Selected Dependency:"," "),o.createElement(F.Text,{type:"span"},s.name,": ",s.version)),o.createElement("div",{className:ne},o.createElement(F.Text,{type:"h5",bold:!0},"package.json spec:"," "),o.createElement(F.Text,{type:"span"},s.dependencyType===r.PEER_DEPENDENCY?`"${s.peerDependencyMeta.version}" ${s.peerDependencyMeta.optional?"Optional":"Required"} Peer`:s.version)),o.createElement("div",{className:ne},o.createElement(F.Text,{type:"h5",bold:!0},".pnpmfile.cjs:"," "),o.createElement(F.Text,{type:"span"},a.has(s.name)?W(a,s.name):"No Effect")))):h,(()=>{if(!n)return h;if(!n.dependencies.filter((e=>e.dependencyType===r.PEER_DEPENDENCY)).length)return o.createElement("div",{className:`${l} ${ee}`},o.createElement(F.Text,{type:"h5"},"No peer dependencies."));if(!s||s.dependencyType!==r.PEER_DEPENDENCY)return o.createElement("div",{className:`${l} ${ee}`},o.createElement(F.Text,{type:"h5"},"Select a peer dependency to view its influencers"));const e=d.filter((e=>e.type===Z.Determinant)),t=d.filter((e=>e.type===Z.TransitiveReferrer));return o.createElement("div",{className:`${l} ${ee}`},o.createElement(F.ScrollArea,null,o.createElement(F.Text,{type:"h5",bold:!0},"Determinants:"),e.length?e.map((({entry:e})=>o.createElement("a",{className:te,key:e.rawEntryId,onClick:m(e)},e.displayText))):o.createElement(F.Text,{type:"p"},"(none)"),o.createElement(F.Text,{type:"h5",bold:!0,className:"aKaZTElUypfUGQWhNJON"},"Transitive Referencers:"),t.length?t.map((({entry:e})=>o.createElement("a",{className:te,key:e.rawEntryId,onClick:m(e)},e.displayText))):o.createElement(F.Text,{type:"p"},"(none)")))})()):o.createElement("div",{className:`${l} ${ee}`},o.createElement(F.Text,{type:"h5",bold:!0},"Select an entry to view its details"))};const ae=()=>{const e=g((e=>e.entry.bookmarkedEntries)),t=y(),n=(0,o.useCallback)((e=>()=>{t(_(e))}),[]),r=(0,o.useCallback)((e=>()=>{t(M(e))}),[]);return o.createElement("div",{className:`${l} aM5oGgiHs9rRHcHdAqFh`},o.createElement(F.ScrollArea,null,o.createElement(F.Text,{type:"h5"},"Bookmarks"),o.createElement("hr",null),e.map((e=>o.createElement("div",{key:e.rawEntryId,className:"Ci1rEoM4eR29ZJcnvJJE"},o.createElement("div",{onClick:n(e),className:"RNRBHB_iXGOnzVd_Ry9b"},o.createElement(F.Text,{type:"p"},e.displayText)),o.createElement(F.Button,{onClick:r(e)},"Remove"))))))};var oe="dklLbMzvzbuzLd2XJh3W",ce="vJvmAdZ2VafvyXjc16Mz";const le=()=>{const e=g(T),t=g((t=>!!e&&t.entry.bookmarkedEntries.includes(e))),n=g((e=>e.entry.selectedEntryStack)),r=g((e=>e.entry.selectedEntryForwardStack)),a=y(),c=(0,o.useCallback)((()=>{e&&a(j(e))}),[e]),l=(0,o.useCallback)((()=>{e&&a(M(e))}),[e]),s=(0,o.useCallback)((()=>{a(O())}),[]),i=(0,o.useCallback)((()=>{a(A())}),[]),d=()=>o.createElement("div",{className:"LkGUkEuAC1lrNLYWXZAB"},o.createElement(F.Button,{disabled:n.length<=1,onClick:s},"Back"),o.createElement(F.Button,{disabled:0===r.length,onClick:i},"Forward"),t?o.createElement(F.Button,{onClick:l,disabled:!e},"Remove Bookmark"):o.createElement(F.Button,{onClick:c,disabled:!e},"Add Bookmark"));return e?o.createElement("div",{className:oe},o.createElement(F.ScrollArea,null,o.createElement("div",{className:ce},o.createElement("div",{className:"Hd2WYHIwrFrldD0I8qDj"},o.createElement(F.Text,{type:"h5",bold:!0},"Selected entry:"),o.createElement("span",null,e.displayText)),d()),o.createElement("div",null,o.createElement(F.Text,{type:"p"},"Package Entry: ",e.rawEntryId),o.createElement(F.Text,{type:"p"},"Package JSON path: ",e.packageJsonFolderPath)))):o.createElement("div",{className:oe},o.createElement("div",{className:ce},o.createElement(F.Text,{type:"h5",bold:!0},"No Entry Selected"),d()))};var se="wR2C2OTixe7QR738j44h",ie="Oo_rkIqOkO0j8slDAm5V";const de=()=>{const e=window.appContext.appVersion;return o.createElement("div",{className:"mqcpXwTQfD4A2eS4QRMa"},o.createElement("div",{className:"gxAXHLK7j_oYpFDmIJLR"},o.createElement("img",{className:se,src:n(769)})),o.createElement("div",null,o.createElement("a",{href:"https://lfx.rushstack.io/",target:"_blank",rel:"noreferrer"},o.createElement("div",{className:"rHArsuIMBTbIFs5o2cuw"},o.createElement("img",{className:se,src:n(500)})),o.createElement("div",{className:"P6XzPBuW8Osze59RSui1"},o.createElement("img",{className:se,src:n(126)})),o.createElement("div",{className:ie},e)),o.createElement("a",{href:"https://rushstack.io/",target:"_blank",rel:"noreferrer"},o.createElement("div",{className:ie},"rushstack.io"))))};const ue=()=>{const[e,t]=(0,o.useState)(!0),[n,r]=(0,o.useState)(!1),[a,c]=(0,o.useState)(!1);async function s(){await async function(){try{return await fetch(`${$}/health`),!0}catch(e){return!1}}()?t(!0):t(!1),r(!1)}(0,o.useEffect)((()=>{window.setInterval(s,2e3)}),[]);const i=(0,o.useCallback)((()=>{r(!0),c(!0),s().catch((e=>{console.error(`Unexpected exception: ${e}`)}))}),[]);return e?null:o.createElement("div",{className:"uVMB4BjTN3pGKpcO9hFB"},o.createElement("div",{className:`gyz87hLRy_DyMUyraMaM ${l}`},o.createElement(F.Text,{type:"h5",bold:!0},"The Lockfile Explorer server has disconnected!"),a?o.createElement(F.Text,{type:"p"},'We were still not able to connect to the server. Are you sure the "lockfile-explorer" shell command is running?'):o.createElement(F.Text,{type:"p"},'Please restart the "lockfile-explorer" shell command to continue using this application.'),o.createElement("div",{className:"UkJzWedRWYeVMPCVDmCS"},o.createElement(F.Button,{disabled:n,onClick:i},"Check Again"),n?o.createElement(F.Text,{type:"p"},"Checking..."):null)))},pe=(0,b.xC)({reducer:{entry:L,workspace:G},middleware:e=>e({serializableCheck:!1})}),me=document.getElementById("root");c.render(o.createElement(v.zt,{store:pe},o.createElement((()=>{const e=y();return(0,o.useEffect)((()=>{(async function(){const t=await async function(){const e=await fetch(`${p}/api/lockfile`);return function(e){const t=[],n={},o=[];if(e.importers)for(const[r,c]of Object.entries(e.importers)){const e=new u({rawEntryId:r,kind:a.Project,rawYamlData:c});o.push(e),t.push(e),n[e.entryId]=e}const c=[];if(e.packages)for(const[r,o]of Object.entries(e.packages)){const e=new u({rawEntryId:r,kind:a.Package,rawYamlData:o});c.push(e),t.push(e),n[r]=e}for(const e of t)for(const t of e.dependencies){if(t.dependencyType===r.PEER_DEPENDENCY)continue;const a=n[t.entryId];a?(t.resolvedEntry=a,a.referrers.push(e)):console.error("Could not resolve dependency entryId: ",t.entryId)}return t}(await e.json())}();e(D(t))})().catch((e=>{console.log(`Failed to read lockfile: ${e}`)}))}),[]),o.createElement(o.Fragment,null,o.createElement(ue,null),o.createElement("div",{className:"uXEYthi0e8fjYu_FisVm"},o.createElement("div",{className:"ms-Grid",dir:"ltr"},o.createElement("div",{className:"ms-Grid-row"},o.createElement("div",{className:`ms-Grid-col ms-sm3 ${s}`},o.createElement(z,null)),o.createElement("div",{className:`ms-Grid-col ms-sm7 ${s}`},o.createElement(le,null),o.createElement(X,null),o.createElement(re,null)),o.createElement("div",{className:`ms-Grid-col ms-sm2 ${s}`},o.createElement(de,null),o.createElement(ae,null))))))}),null)),me)},581:function(e,t,n){var r,a;e.exports=(r=n(823),a=n(998),function(){"use strict";var e={156:function(e){e.exports=r},111:function(e){e.exports=a}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return function(){n.r(o),n.d(o,{Button:function(){return a},Checkbox:function(){return ot},Input:function(){return ct},ScrollArea:function(){return ue},Tabs:function(){return He},Text:function(){return r}});var e=n(156),t=n.n(e);const r=({type:e,bold:n=!1,children:r,className:a,size:o})=>{const c=Object.assign({fontWeight:n?"bold":"normal"},o?{fontSize:o}:{});switch(e){case"h1":return t().createElement("h1",{className:`EEW4moi09VKPLYf_QQjc ${a||""}`,style:c},r);case"h2":return t().createElement("h2",{className:`J7ir6XIWo7jdiI2ntfcg ${a||""}`,style:c},r);case"h3":return t().createElement("h3",{className:`SWvmPuRvIE0SV9q04VZG ${a||""}`,style:c},r);case"h4":return t().createElement("h4",{className:`QHCu9OO40pSJaXahbkYF ${a||""}`,style:c},r);case"h5":return t().createElement("h5",{className:`oK4n_cRPbdF5MN5Ed_h2 ${a||""}`,style:c},r);case"h6":return t().createElement("h6",{className:`odUGt__AQTdr_z7W6Fk7 ${a||""}`,style:c},r);case"p":default:return t().createElement("p",{className:`f_gEnP5sMtd6eYNOiYQQ ${a||""}`,style:c},r);case"span":return t().createElement("span",{className:`aLGFzKvQOPA_BfQw5vqO ${a||""}`,style:c},r)}},a=({children:e,disabled:n=!1,onClick:a})=>t().createElement("button",{disabled:n,className:"dVadg6u2kwiGWhobva5n",onClick:a},t().createElement(r,{type:"span",size:14},e));function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var l=n(111);function s(...e){return t=>e.forEach((e=>function(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}(e,t)))}function i(...t){return(0,e.useCallback)(s(...t),t)}const d=(0,e.forwardRef)(((t,n)=>{const{children:r,...a}=t,o=e.Children.toArray(r),l=o.find(m);if(l){const t=l.props.children,r=o.map((n=>n===l?e.Children.count(t)>1?e.Children.only(null):(0,e.isValidElement)(t)?t.props.children:null:n));return(0,e.createElement)(u,c({},a,{ref:n}),(0,e.isValidElement)(t)?(0,e.cloneElement)(t,void 0,r):null)}return(0,e.createElement)(u,c({},a,{ref:n}),r)}));d.displayName="Slot";const u=(0,e.forwardRef)(((t,n)=>{const{children:r,...a}=t;return(0,e.isValidElement)(r)?(0,e.cloneElement)(r,{...f(a,r.props),ref:s(n,r.ref)}):e.Children.count(r)>1?e.Children.only(null):null}));u.displayName="SlotClone";const p=({children:t})=>(0,e.createElement)(e.Fragment,null,t);function m(t){return(0,e.isValidElement)(t)&&t.type===p}function f(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...e)=>{o(...e),a(...e)}:a&&(n[r]=a):"style"===r?n[r]={...a,...o}:"className"===r&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}const E=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"].reduce(((t,n)=>{const r=(0,e.forwardRef)(((t,r)=>{const{asChild:a,...o}=t,l=a?d:n;return(0,e.useEffect)((()=>{window[Symbol.for("radix-ui")]=!0}),[]),(0,e.createElement)(l,c({},o,{ref:r}))}));return r.displayName=`Primitive.${n}`,{...t,[n]:r}}),{}),h=Boolean(null===globalThis||void 0===globalThis?void 0:globalThis.document)?e.useLayoutEffect:()=>{},v=t=>{const{present:n,children:r}=t,a=function(t){const[n,r]=(0,e.useState)(),a=(0,e.useRef)({}),o=(0,e.useRef)(t),c=(0,e.useRef)("none"),s=t?"mounted":"unmounted",[i,d]=function(t,n){return(0,e.useReducer)(((e,t)=>{const r=n[e][t];return null!=r?r:e}),t)}(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,e.useEffect)((()=>{const e=y(a.current);c.current="mounted"===i?e:"none"}),[i]),h((()=>{const e=a.current,n=o.current;if(n!==t){const r=c.current,a=y(e);t?d("MOUNT"):"none"===a||"none"===(null==e?void 0:e.display)?d("UNMOUNT"):d(n&&r!==a?"ANIMATION_OUT":"UNMOUNT"),o.current=t}}),[t,d]),h((()=>{if(n){const e=e=>{const t=y(a.current).includes(e.animationName);e.target===n&&t&&(0,l.flushSync)((()=>d("ANIMATION_END")))},t=e=>{e.target===n&&(c.current=y(a.current))};return n.addEventListener("animationstart",t),n.addEventListener("animationcancel",e),n.addEventListener("animationend",e),()=>{n.removeEventListener("animationstart",t),n.removeEventListener("animationcancel",e),n.removeEventListener("animationend",e)}}d("ANIMATION_END")}),[n,d]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:(0,e.useCallback)((e=>{e&&(a.current=getComputedStyle(e)),r(e)}),[])}}(n),o="function"==typeof r?r({present:a.isPresent}):e.Children.only(r),c=i(a.ref,o.ref);return"function"==typeof r||a.isPresent?(0,e.cloneElement)(o,{ref:c}):null};function y(e){return(null==e?void 0:e.animationName)||"none"}function g(t,n=[]){let r=[];const a=()=>{const n=r.map((t=>(0,e.createContext)(t)));return function(r){const a=(null==r?void 0:r[t])||n;return(0,e.useMemo)((()=>({[`__scope${t}`]:{...r,[t]:a}})),[r,a])}};return a.scopeName=t,[function(n,a){const o=(0,e.createContext)(a),c=r.length;function l(n){const{scope:r,children:a,...l}=n,s=(null==r?void 0:r[t][c])||o,i=(0,e.useMemo)((()=>l),Object.values(l));return(0,e.createElement)(s.Provider,{value:i},a)}return r=[...r,a],l.displayName=n+"Provider",[l,function(r,l){const s=(null==l?void 0:l[t][c])||o,i=(0,e.useContext)(s);if(i)return i;if(void 0!==a)return a;throw new Error(`\`${r}\` must be used within \`${n}\``)}]},b(a,...n)]}function b(...t){const n=t[0];if(1===t.length)return n;const r=()=>{const r=t.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(t){const a=r.reduce(((e,{useScope:n,scopeName:r})=>({...e,...n(t)[`__scope${r}`]})),{});return(0,e.useMemo)((()=>({[`__scope${n.scopeName}`]:a})),[a])}};return r.scopeName=n.scopeName,r}function w(t){const n=(0,e.useRef)(t);return(0,e.useEffect)((()=>{n.current=t})),(0,e.useMemo)((()=>(...e)=>{var t;return null===(t=n.current)||void 0===t?void 0:t.call(n,...e)}),[])}v.displayName="Presence";const k=(0,e.createContext)(void 0);function S(t){const n=(0,e.useContext)(k);return t||n||"ltr"}function P(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(null==e||e(r),!1===n||!r.defaultPrevented)return null==t?void 0:t(r)}}const C="ScrollArea",[N,T]=g(C),[x,D]=N(C),R=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,type:a="hover",dir:o,scrollHideDelay:l=600,...s}=t,[d,u]=(0,e.useState)(null),[p,m]=(0,e.useState)(null),[f,h]=(0,e.useState)(null),[v,y]=(0,e.useState)(null),[g,b]=(0,e.useState)(null),[w,k]=(0,e.useState)(0),[P,C]=(0,e.useState)(0),[N,T]=(0,e.useState)(!1),[D,R]=(0,e.useState)(!1),_=i(n,(e=>u(e))),I=S(o);return(0,e.createElement)(x,{scope:r,type:a,dir:I,scrollHideDelay:l,scrollArea:d,viewport:p,onViewportChange:m,content:f,onContentChange:h,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:N,onScrollbarXEnabledChange:T,scrollbarY:g,onScrollbarYChange:b,scrollbarYEnabled:D,onScrollbarYEnabledChange:R,onCornerWidthChange:k,onCornerHeightChange:C},(0,e.createElement)(E.div,c({dir:I},s,{ref:_,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":P+"px",...t.style}})))})),_=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,children:a,...o}=t,l=D("ScrollAreaViewport",r),s=i(n,(0,e.useRef)(null),l.onViewportChange);return(0,e.createElement)(e.Fragment,null,(0,e.createElement)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"}}),(0,e.createElement)(E.div,c({"data-radix-scroll-area-viewport":""},o,{ref:s,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...t.style}}),(0,e.createElement)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"}},a)))})),I="ScrollAreaScrollbar",O=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...a}=t,o=D(I,t.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:s}=o,i="horizontal"===t.orientation;return(0,e.useEffect)((()=>(i?l(!0):s(!0),()=>{i?l(!1):s(!1)})),[i,l,s]),"hover"===o.type?(0,e.createElement)(A,c({},a,{ref:n,forceMount:r})):"scroll"===o.type?(0,e.createElement)(j,c({},a,{ref:n,forceMount:r})):"auto"===o.type?(0,e.createElement)(M,c({},a,{ref:n,forceMount:r})):"always"===o.type?(0,e.createElement)(L,c({},a,{ref:n})):null})),A=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...a}=t,o=D(I,t.__scopeScrollArea),[l,s]=(0,e.useState)(!1);return(0,e.useEffect)((()=>{const e=o.scrollArea;let t=0;if(e){const n=()=>{window.clearTimeout(t),s(!0)},r=()=>{t=window.setTimeout((()=>s(!1)),o.scrollHideDelay)};return e.addEventListener("pointerenter",n),e.addEventListener("pointerleave",r),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",n),e.removeEventListener("pointerleave",r)}}}),[o.scrollArea,o.scrollHideDelay]),(0,e.createElement)(v,{present:r||l},(0,e.createElement)(M,c({"data-state":l?"visible":"hidden"},a,{ref:n})))})),j=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...a}=t,o=D(I,t.__scopeScrollArea),l="horizontal"===t.orientation,s=ne((()=>d("SCROLL_END")),100),[i,d]=(u={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},(0,e.useReducer)(((e,t)=>{const n=u[e][t];return null!=n?n:e}),"hidden"));var u;return(0,e.useEffect)((()=>{if("idle"===i){const e=window.setTimeout((()=>d("HIDE")),o.scrollHideDelay);return()=>window.clearTimeout(e)}}),[i,o.scrollHideDelay,d]),(0,e.useEffect)((()=>{const e=o.viewport,t=l?"scrollLeft":"scrollTop";if(e){let n=e[t];const r=()=>{const r=e[t];n!==r&&(d("SCROLL"),s()),n=r};return e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}}),[o.viewport,l,d,s]),(0,e.createElement)(v,{present:r||"hidden"!==i},(0,e.createElement)(L,c({"data-state":"hidden"===i?"hidden":"visible"},a,{ref:n,onPointerEnter:P(t.onPointerEnter,(()=>d("POINTER_ENTER"))),onPointerLeave:P(t.onPointerLeave,(()=>d("POINTER_LEAVE")))})))})),M=(0,e.forwardRef)(((t,n)=>{const r=D(I,t.__scopeScrollArea),{forceMount:a,...o}=t,[l,s]=(0,e.useState)(!1),i="horizontal"===t.orientation,d=ne((()=>{if(r.viewport){const e=r.viewport.offsetWidth<r.viewport.scrollWidth,t=r.viewport.offsetHeight<r.viewport.scrollHeight;s(i?e:t)}}),10);return re(r.viewport,d),re(r.content,d),(0,e.createElement)(v,{present:a||l},(0,e.createElement)(L,c({"data-state":l?"visible":"hidden"},o,{ref:n})))})),L=(0,e.forwardRef)(((t,n)=>{const{orientation:r="vertical",...a}=t,o=D(I,t.__scopeScrollArea),l=(0,e.useRef)(null),s=(0,e.useRef)(0),[i,d]=(0,e.useState)({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=X(i.viewport,i.content),p={...a,sizes:i,onSizesChange:d,hasThumb:Boolean(u>0&&u<1),onThumbChange:e=>l.current=e,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:e=>s.current=e};function m(e,t){return function(e,t,n,r="ltr"){const a=Z(n),o=t||a/2,c=a-o,l=n.scrollbar.paddingStart+o,s=n.scrollbar.size-n.scrollbar.paddingEnd-c,i=n.content-n.viewport;return q([l,s],"ltr"===r?[0,i]:[-1*i,0])(e)}(e,s.current,i,t)}return"horizontal"===r?(0,e.createElement)(F,c({},p,{ref:n,onThumbPositionChange:()=>{if(o.viewport&&l.current){const e=Q(o.viewport.scrollLeft,i,o.dir);l.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollLeft=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollLeft=m(e,o.dir))}})):"vertical"===r?(0,e.createElement)(B,c({},p,{ref:n,onThumbPositionChange:()=>{if(o.viewport&&l.current){const e=Q(o.viewport.scrollTop,i);l.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollTop=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollTop=m(e))}})):null})),F=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:a,...o}=t,l=D(I,t.__scopeScrollArea),[s,d]=(0,e.useState)(),u=(0,e.useRef)(null),p=i(n,u,l.onScrollbarXChange);return(0,e.useEffect)((()=>{u.current&&d(getComputedStyle(u.current))}),[u]),(0,e.createElement)(Y,c({"data-orientation":"horizontal"},o,{ref:p,sizes:r,style:{bottom:0,left:"rtl"===l.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===l.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Z(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.x),onDragScroll:e=>t.onDragScroll(e.x),onWheelScroll:(e,n)=>{if(l.viewport){const r=l.viewport.scrollLeft+e.deltaX;t.onWheelScroll(r),ee(r,n)&&e.preventDefault()}},onResize:()=>{u.current&&l.viewport&&s&&a({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:U(s.paddingLeft),paddingEnd:U(s.paddingRight)}})}}))})),B=(0,e.forwardRef)(((t,n)=>{const{sizes:r,onSizesChange:a,...o}=t,l=D(I,t.__scopeScrollArea),[s,d]=(0,e.useState)(),u=(0,e.useRef)(null),p=i(n,u,l.onScrollbarYChange);return(0,e.useEffect)((()=>{u.current&&d(getComputedStyle(u.current))}),[u]),(0,e.createElement)(Y,c({"data-orientation":"vertical"},o,{ref:p,sizes:r,style:{top:0,right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Z(r)+"px",...t.style},onThumbPointerDown:e=>t.onThumbPointerDown(e.y),onDragScroll:e=>t.onDragScroll(e.y),onWheelScroll:(e,n)=>{if(l.viewport){const r=l.viewport.scrollTop+e.deltaY;t.onWheelScroll(r),ee(r,n)&&e.preventDefault()}},onResize:()=>{u.current&&l.viewport&&s&&a({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:U(s.paddingTop),paddingEnd:U(s.paddingBottom)}})}}))})),[z,$]=N(I),Y=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,sizes:a,hasThumb:o,onThumbChange:l,onThumbPointerUp:s,onThumbPointerDown:d,onThumbPositionChange:u,onDragScroll:p,onWheelScroll:m,onResize:f,...h}=t,v=D(I,r),[y,g]=(0,e.useState)(null),b=i(n,(e=>g(e))),k=(0,e.useRef)(null),S=(0,e.useRef)(""),C=v.viewport,N=a.content-a.viewport,T=w(m),x=w(u),R=ne(f,10);function _(e){if(k.current){const t=e.clientX-k.current.left,n=e.clientY-k.current.top;p({x:t,y:n})}}return(0,e.useEffect)((()=>{const e=e=>{const t=e.target;(null==y?void 0:y.contains(t))&&T(e,N)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})}),[C,y,N,T]),(0,e.useEffect)(x,[a,x]),re(y,R),re(v.content,R),(0,e.createElement)(z,{scope:r,scrollbar:y,hasThumb:o,onThumbChange:w(l),onThumbPointerUp:w(s),onThumbPositionChange:x,onThumbPointerDown:w(d)},(0,e.createElement)(E.div,c({},h,{ref:b,style:{position:"absolute",...h.style},onPointerDown:P(t.onPointerDown,(e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),k.current=y.getBoundingClientRect(),S.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",_(e))})),onPointerMove:P(t.onPointerMove,_),onPointerUp:P(t.onPointerUp,(e=>{const t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=S.current,k.current=null}))})))})),V="ScrollAreaThumb",K=(0,e.forwardRef)(((t,n)=>{const{forceMount:r,...a}=t,o=$(V,t.__scopeScrollArea);return(0,e.createElement)(v,{present:r||o.hasThumb},(0,e.createElement)(H,c({ref:n},a)))})),H=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,style:a,...o}=t,l=D(V,r),s=$(V,r),{onThumbPositionChange:d}=s,u=i(n,(e=>s.onThumbChange(e))),p=(0,e.useRef)(),m=ne((()=>{p.current&&(p.current(),p.current=void 0)}),100);return(0,e.useEffect)((()=>{const e=l.viewport;if(e){const t=()=>{if(m(),!p.current){const t=te(e,d);p.current=t,d()}};return d(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}}),[l.viewport,m,d]),(0,e.createElement)(E.div,c({"data-state":s.hasThumb?"visible":"hidden"},o,{ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...a},onPointerDownCapture:P(t.onPointerDownCapture,(e=>{const t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:n,y:r})})),onPointerUp:P(t.onPointerUp,s.onThumbPointerUp)}))})),G="ScrollAreaCorner",W=(0,e.forwardRef)(((t,n)=>{const r=D(G,t.__scopeScrollArea),a=Boolean(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&a?(0,e.createElement)(J,c({},t,{ref:n})):null})),J=(0,e.forwardRef)(((t,n)=>{const{__scopeScrollArea:r,...a}=t,o=D(G,r),[l,s]=(0,e.useState)(0),[i,d]=(0,e.useState)(0),u=Boolean(l&&i);return re(o.scrollbarX,(()=>{var e;const t=(null===(e=o.scrollbarX)||void 0===e?void 0:e.offsetHeight)||0;o.onCornerHeightChange(t),d(t)})),re(o.scrollbarY,(()=>{var e;const t=(null===(e=o.scrollbarY)||void 0===e?void 0:e.offsetWidth)||0;o.onCornerWidthChange(t),s(t)})),u?(0,e.createElement)(E.div,c({},a,{ref:n,style:{width:l,height:i,position:"absolute",right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:0,...t.style}})):null}));function U(e){return e?parseInt(e,10):0}function X(e,t){const n=e/t;return isNaN(n)?0:n}function Z(e){const t=X(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Q(e,t,n="ltr"){const r=Z(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-a,c=t.content-t.viewport,l=o-r,s=function(e,[t,n]){return Math.min(n,Math.max(t,e))}(e,"ltr"===n?[0,c]:[-1*c,0]);return q([0,c],[0,l])(s)}function q(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ee(e,t){return e>0&&e<t}const te=(e,t=(()=>{}))=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function a(){const o={left:e.scrollLeft,top:e.scrollTop},c=n.left!==o.left,l=n.top!==o.top;(c||l)&&t(),n=o,r=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(r)};function ne(t,n){const r=w(t),a=(0,e.useRef)(0);return(0,e.useEffect)((()=>()=>window.clearTimeout(a.current)),[]),(0,e.useCallback)((()=>{window.clearTimeout(a.current),a.current=window.setTimeout(r,n)}),[r,n])}function re(e,t){const n=w(t);h((()=>{let t=0;if(e){const r=new ResizeObserver((()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)}));return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}}),[e,n])}const ae=R,oe=_,ce=O,le=K,se=W;var ie="ICjBreoW5ZAqZ9txdiH9",de="SNDfMaHFMf5swwou75WQ";const ue=({children:e})=>t().createElement(ae,{className:"gQUln75LgrNAv33iEQhx"},t().createElement(oe,{className:"YABN5ZbWRfbX8Bbj41KF"},e),t().createElement(ce,{className:ie,orientation:"vertical"},t().createElement(le,{className:de})),t().createElement(ce,{className:ie,orientation:"horizontal"},t().createElement(le,{className:de})),t().createElement(se,{className:"KxOpf0j2WwULFJnM_2Up"})),pe=e["useId".toString()]||(()=>{});let me=0;function fe(t){const[n,r]=e.useState(pe());return h((()=>{t||r((e=>null!=e?e:String(me++)))}),[t]),t||(n?`radix-${n}`:"")}function Ee({prop:t,defaultProp:n,onChange:r=(()=>{})}){const[a,o]=function({defaultProp:t,onChange:n}){const r=(0,e.useState)(t),[a]=r,o=(0,e.useRef)(a),c=w(n);return(0,e.useEffect)((()=>{o.current!==a&&(c(a),o.current=a)}),[a,o,c]),r}({defaultProp:n,onChange:r}),c=void 0!==t,l=c?t:a,s=w(r);return[l,(0,e.useCallback)((e=>{if(c){const n="function"==typeof e?e(t):e;n!==t&&s(n)}else o(e)}),[c,t,o,s])]}const he="rovingFocusGroup.onEntryFocus",ve={bubbles:!1,cancelable:!0},ye="RovingFocusGroup",[ge,be,we]=function(e){const n=e+"CollectionProvider",[r,a]=g(n),[o,c]=r(n,{collectionRef:{current:null},itemMap:new Map}),l=e+"CollectionSlot",s=e+"CollectionItemSlot",u="data-radix-collection-item";return[{Provider:e=>{const{scope:n,children:r}=e,a=t().useRef(null),c=t().useRef(new Map).current;return t().createElement(o,{scope:n,itemMap:c,collectionRef:a},r)},Slot:t().forwardRef(((e,n)=>{const{scope:r,children:a}=e,o=i(n,c(l,r).collectionRef);return t().createElement(d,{ref:o},a)})),ItemSlot:t().forwardRef(((e,n)=>{const{scope:r,children:a,...o}=e,l=t().useRef(null),p=i(n,l),m=c(s,r);return t().useEffect((()=>(m.itemMap.set(l,{ref:l,...o}),()=>{m.itemMap.delete(l)}))),t().createElement(d,{[u]:"",ref:p},a)}))},function(n){const r=c(e+"CollectionConsumer",n);return t().useCallback((()=>{const e=r.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(r.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[r.collectionRef,r.itemMap])},a]}(ye),[ke,Se]=g(ye,[we]),[Pe,Ce]=ke(ye),Ne=(0,e.forwardRef)(((t,n)=>(0,e.createElement)(ge.Provider,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(ge.Slot,{scope:t.__scopeRovingFocusGroup},(0,e.createElement)(Te,c({},t,{ref:n})))))),Te=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,orientation:a,loop:o=!1,dir:l,currentTabStopId:s,defaultCurrentTabStopId:d,onCurrentTabStopIdChange:u,onEntryFocus:p,...m}=t,f=(0,e.useRef)(null),h=i(n,f),v=S(l),[y=null,g]=Ee({prop:s,defaultProp:d,onChange:u}),[b,k]=(0,e.useState)(!1),C=w(p),N=be(r),T=(0,e.useRef)(!1),[x,D]=(0,e.useState)(0);return(0,e.useEffect)((()=>{const e=f.current;if(e)return e.addEventListener(he,C),()=>e.removeEventListener(he,C)}),[C]),(0,e.createElement)(Pe,{scope:r,orientation:a,dir:v,loop:o,currentTabStopId:y,onItemFocus:(0,e.useCallback)((e=>g(e)),[g]),onItemShiftTab:(0,e.useCallback)((()=>k(!0)),[]),onFocusableItemAdd:(0,e.useCallback)((()=>D((e=>e+1))),[]),onFocusableItemRemove:(0,e.useCallback)((()=>D((e=>e-1))),[])},(0,e.createElement)(E.div,c({tabIndex:b||0===x?-1:0,"data-orientation":a},m,{ref:h,style:{outline:"none",...t.style},onMouseDown:P(t.onMouseDown,(()=>{T.current=!0})),onFocus:P(t.onFocus,(e=>{const t=!T.current;if(e.target===e.currentTarget&&t&&!b){const t=new CustomEvent(he,ve);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=N().filter((e=>e.focusable));Re([e.find((e=>e.active)),e.find((e=>e.id===y)),...e].filter(Boolean).map((e=>e.ref.current)))}}T.current=!1})),onBlur:P(t.onBlur,(()=>k(!1)))})))})),xe=(0,e.forwardRef)(((t,n)=>{const{__scopeRovingFocusGroup:r,focusable:a=!0,active:o=!1,tabStopId:l,...s}=t,i=fe(),d=l||i,u=Ce("RovingFocusGroupItem",r),p=u.currentTabStopId===d,m=be(r),{onFocusableItemAdd:f,onFocusableItemRemove:h}=u;return(0,e.useEffect)((()=>{if(a)return f(),()=>h()}),[a,f,h]),(0,e.createElement)(ge.ItemSlot,{scope:r,id:d,focusable:a,active:o},(0,e.createElement)(E.span,c({tabIndex:p?0:-1,"data-orientation":u.orientation},s,{ref:n,onMouseDown:P(t.onMouseDown,(e=>{a?u.onItemFocus(d):e.preventDefault()})),onFocus:P(t.onFocus,(()=>u.onItemFocus(d))),onKeyDown:P(t.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void u.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const r=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)?void 0:De[r]}(e,u.orientation,u.dir);if(void 0!==t){e.preventDefault();let a=m().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)a.reverse();else if("prev"===t||"next"===t){"prev"===t&&a.reverse();const o=a.indexOf(e.currentTarget);a=u.loop?(r=o+1,(n=a).map(((e,t)=>n[(r+t)%n.length]))):a.slice(o+1)}setTimeout((()=>Re(a)))}var n,r}))})))})),De={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Re(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}const _e=Ne,Ie=xe,Oe="Tabs",[Ae,je]=g(Oe,[Se]),Me=Se(),[Le,Fe]=Ae(Oe);function Be(e,t){return`${e}-trigger-${t}`}function ze(e,t){return`${e}-content-${t}`}const $e=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:a,onValueChange:o,defaultValue:l,orientation:s="horizontal",dir:i,activationMode:d="automatic",...u}=t,p=S(i),[m,f]=Ee({prop:a,onChange:o,defaultProp:l});return(0,e.createElement)(Le,{scope:r,baseId:fe(),value:m,onValueChange:f,orientation:s,dir:p,activationMode:d},(0,e.createElement)(E.div,c({dir:p,"data-orientation":s},u,{ref:n})))})),Ye=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,loop:a=!0,...o}=t,l=Fe("TabsList",r),s=Me(r);return(0,e.createElement)(_e,c({asChild:!0},s,{orientation:l.orientation,dir:l.dir,loop:a}),(0,e.createElement)(E.div,c({role:"tablist","aria-orientation":l.orientation},o,{ref:n})))})),Ve=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:a,disabled:o=!1,...l}=t,s=Fe("TabsTrigger",r),i=Me(r),d=Be(s.baseId,a),u=ze(s.baseId,a),p=a===s.value;return(0,e.createElement)(Ie,c({asChild:!0},i,{focusable:!o,active:p}),(0,e.createElement)(E.button,c({type:"button",role:"tab","aria-selected":p,"aria-controls":u,"data-state":p?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:d},l,{ref:n,onMouseDown:P(t.onMouseDown,(e=>{o||0!==e.button||!1!==e.ctrlKey?e.preventDefault():s.onValueChange(a)})),onKeyDown:P(t.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&s.onValueChange(a)})),onFocus:P(t.onFocus,(()=>{const e="manual"!==s.activationMode;p||o||!e||s.onValueChange(a)}))})))})),Ke=(0,e.forwardRef)(((t,n)=>{const{__scopeTabs:r,value:a,forceMount:o,children:l,...s}=t,i=Fe("TabsContent",r),d=Be(i.baseId,a),u=ze(i.baseId,a),p=a===i.value,m=(0,e.useRef)(p);return(0,e.useEffect)((()=>{const e=requestAnimationFrame((()=>m.current=!1));return()=>cancelAnimationFrame(e)}),[]),(0,e.createElement)(v,{present:o||p},(({present:r})=>(0,e.createElement)(E.div,c({"data-state":p?"active":"inactive","data-orientation":i.orientation,role:"tabpanel","aria-labelledby":d,hidden:!r,id:u,tabIndex:0},s,{ref:n,style:{...t.style,animationDuration:m.current?"0s":void 0}}),r&&l)))})),He=({items:e,def:n,value:r,onChange:a,renderChildren:o})=>{const c=e=>void 0===e.value?e.header:e.value.toString();return t().createElement($e,{className:"YhXMGBOKBRuKAvsx8mwk",defaultValue:n||e[0].header,value:r.toString(),onValueChange:a},t().createElement(Ye,{className:"t08yVQir831gIp_A2xsP","aria-label":"Manage your account"},e.map((e=>t().createElement(Ve,{key:e.header,className:"L7_6rMInDO6tBxFRFiuO",value:c(e)},e.header)))),o?o():e.map((e=>e.body?t().createElement(Ke,{className:"kLJtm9LC8LxOdvGhZdw_",value:c(e)},e.body):null)))},Ge="Checkbox",[We,Je]=g(Ge),[Ue,Xe]=We(Ge),Ze=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,name:a,checked:o,defaultChecked:l,required:s,disabled:d,value:u="on",onCheckedChange:p,...m}=t,[f,h]=(0,e.useState)(null),v=i(n,(e=>h(e))),y=(0,e.useRef)(!1),g=!f||Boolean(f.closest("form")),[b=!1,w]=Ee({prop:o,defaultProp:l,onChange:p});return(0,e.createElement)(Ue,{scope:r,state:b,disabled:d},(0,e.createElement)(E.button,c({type:"button",role:"checkbox","aria-checked":qe(b)?"mixed":b,"aria-required":s,"data-state":et(b),"data-disabled":d?"":void 0,disabled:d,value:u},m,{ref:v,onKeyDown:P(t.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:P(t.onClick,(e=>{w((e=>!!qe(e)||!e)),g&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())}))})),g&&(0,e.createElement)(Qe,{control:f,bubbles:!y.current,name:a,value:u,checked:b,required:s,disabled:d,style:{transform:"translateX(-100%)"}}))})),Qe=t=>{const{control:n,checked:r,bubbles:a=!0,...o}=t,l=(0,e.useRef)(null),s=function(t){const n=(0,e.useRef)({value:t,previous:t});return(0,e.useMemo)((()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous)),[t])}(r),i=function(t){const[n,r]=(0,e.useState)(void 0);return h((()=>{if(t){r({width:t.offsetWidth,height:t.offsetHeight});const e=new ResizeObserver((e=>{if(!Array.isArray(e))return;if(!e.length)return;const n=e[0];let a,o;if("borderBoxSize"in n){const e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;a=t.inlineSize,o=t.blockSize}else a=t.offsetWidth,o=t.offsetHeight;r({width:a,height:o})}));return e.observe(t,{box:"border-box"}),()=>e.unobserve(t)}r(void 0)}),[t]),n}(n);return(0,e.useEffect)((()=>{const e=l.current,t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(s!==r&&n){const t=new Event("click",{bubbles:a});e.indeterminate=qe(r),n.call(e,!qe(r)&&r),e.dispatchEvent(t)}}),[s,r,a]),(0,e.createElement)("input",c({type:"checkbox","aria-hidden":!0,defaultChecked:!qe(r)&&r},o,{tabIndex:-1,ref:l,style:{...t.style,...i,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function qe(e){return"indeterminate"===e}function et(e){return qe(e)?"indeterminate":e?"checked":"unchecked"}const tt=Ze,nt=(0,e.forwardRef)(((t,n)=>{const{__scopeCheckbox:r,forceMount:a,...o}=t,l=Xe("CheckboxIndicator",r);return(0,e.createElement)(v,{present:a||qe(l.state)||!0===l.state},(0,e.createElement)(E.span,c({"data-state":et(l.state),"data-disabled":l.disabled?"":void 0},o,{ref:n,style:{pointerEvents:"none",...t.style}})))}));var rt=["color"],at=(0,e.forwardRef)((function(t,n){var r=t.color,a=void 0===r?"currentColor":r,o=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(t,rt);return(0,e.createElement)("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:n}),(0,e.createElement)("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:a,fillRule:"evenodd",clipRule:"evenodd"}))}));const ot=({label:e,isChecked:n,onChecked:r})=>t().createElement("form",null,t().createElement("div",{style:{display:"flex",alignItems:"center"}},t().createElement(tt,{className:"i8BZVdjUfbst7_tarHzS",defaultChecked:!0,checked:n,onCheckedChange:r,id:e},t().createElement(nt,{className:"l0YazbYK7P8YQSDvX2o0"},t().createElement(at,null))),t().createElement("label",{className:"w9I3BjE7cnjsfBLB3UyI",htmlFor:e},e))),ct=({value:e,placeholder:n,onChange:r,type:a="text"})=>t().createElement("input",{type:a,value:e,placeholder:n,onChange:r,className:"FYuNNcaXqlTXB7M6DHBZ"})}(),o}())},769:function(e,t,n){"use strict";e.exports=n.p+"d39919ddc699d58b84ba.svg"},500:function(e,t,n){"use strict";e.exports=n.p+"d13d30e9b42faf842d2f.svg"},126:function(e,t,n){"use strict";e.exports=n.p+"510f03f81080fd3cfd63.svg"}},n={};function r(e){var a=n[e];if(void 0!==a)return a.exports;var o=n[e]={exports:{}};return t[e].call(o.exports,o,o.exports,r),o.exports}r.m=t,e=[],r.O=function(t,n,a,o){if(!n){var c=1/0;for(d=0;d<e.length;d++){n=e[d][0],a=e[d][1],o=e[d][2];for(var l=!0,s=0;s<n.length;s++)(!1&o||c>=o)&&Object.keys(r.O).every((function(e){return r.O[e](n[s])}))?n.splice(s--,1):(l=!1,o<c&&(c=o));if(l){e.splice(d--,1);var i=a();void 0!==i&&(t=i)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,a,o]},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e}(),function(){var e={143:0};r.O.j=function(t){return 0===e[t]};var t=function(t,n){var a,o,c=n[0],l=n[1],s=n[2],i=0;if(c.some((function(t){return 0!==e[t]}))){for(a in l)r.o(l,a)&&(r.m[a]=l[a]);if(s)var d=s(r)}for(t&&t(n);i<c.length;i++)o=c[i],r.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return r.O(d)},n=self.webpackChunk_rushstack_lockfile_explorer_web=self.webpackChunk_rushstack_lockfile_explorer_web||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var a=r.O(void 0,[714],(function(){return r(354)}));a=r.O(a)}();