@spaceandtimelabs/makeinfinite-ui 0.20.1 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -176,7 +176,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
176
176
  transform: rotate(360deg);
177
177
  }
178
178
  }
179
- `,Ps=({isVisible:e})=>e?b.jsx(ZT,{children:b.jsx(QT,{})}):null,iy=Y.createContext(null),sy=()=>{const e=Y.useContext(iy);if(!e)throw new Error("useAPI must be used within an APIProvider");return e},eI=({children:e})=>{const[t,n]=Y.useState(0),r=Y.useCallback(async a=>{n(l=>l+1);try{return await a}finally{n(l=>Math.max(0,l-1))}},[]),i=Y.useCallback(async(a,l)=>(n(c=>c+1),new Promise((c,d)=>{const f=a(),y=()=>{n(m=>Math.max(0,m-1))};f.addEventListener("load",()=>{if(y(),f.status>=200&&f.status<300)try{const m=l(f);c(m)}catch(m){d(m)}else d(new Error(`Request failed with status ${f.status}`))}),f.addEventListener("error",()=>{y(),d(new Error("Network error occurred"))}),f.addEventListener("abort",()=>{y(),d(new Error("Request cancelled"))})})),[]);return b.jsxs(iy.Provider,{value:{isLoading:t>0,wrapAPICall:r,wrapXHRCall:i},children:[b.jsx(Ps,{isVisible:t>0}),e]})},ay=e=>{const t=e;return{createProject:async(R,M)=>{const D={description:R,component_namespace:M};return await fetch(`${t}/create_project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},getProjects:async()=>await fetch(`${t}/fetch_projects`,{method:"GET",headers:{"Content-Type":"application/json"}}),getSubdomains:async R=>await fetch(`${t}/subdomains?project_name=${R}`,{method:"GET",headers:{"Content-Type":"application/json"}}),allocateSubdomain:async(R,M)=>{const D={project_name:R,subdomain:M};return await fetch(`${t}/allocate_subdomain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},releaseSubdomain:async(R,M)=>{const D={project_name:R,subdomain:M};return await fetch(`${t}/release_subdomain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},publishProject:async(R,M)=>{const D={project_name:R,git_ref:M};return await fetch(`${t}/publish_project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},unpublishProject:async R=>{const M={project_name:R};return await fetch(`${t}/unpublish_project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(M)})},tagCommit:async(R,M,D)=>{const $={project_name:R,commit_hash:M,tag_name:D};return await fetch(`${t}/tag_project_commit`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},getComponentLibrary:async()=>await fetch(`${t}/library_components?namespaces=common,example`,{method:"GET",headers:{"Content-Type":"application/json"}}),addProjectComponent:async(R,M,D,$)=>{const z={project_name:R,component_namespace:M,component_name:D,layout_metadata:$};return await fetch(`${t}/add_project_component`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(z)})},addProjectChart:async(R,M,D)=>{const $={project_name:R,visual_id:M,layout_metadata:D};return await fetch(`${t}/add_project_chart`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},updateProjectComponentLayoutMetadata:async(R,M,D)=>{const $={project_name:R,component_id:M,layout_metadata:D};return await fetch(`${t}/update_project_component_layout_metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},updateProjectComponentSourceCode:async(R,M,D)=>{const $={project_name:R,component_id:M,source_code:D};return await fetch(`${t}/update_project_component_source_code`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},deleteProjectFile:async(R,M)=>{const D={project_name:R,file_path:M};return await fetch(`${t}/delete_project_file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},resetProjectFile:async(R,M,D,$,z)=>{let V={project_name:R,file_path:M,git_ref:D};return $&&(V.prune=$),z&&(V.extra_metadata=z),await fetch(`${t}/reset_project_file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(V)})},deleteProject:async R=>{const M={projects:[R]};return await fetch(`${t}/delete_projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(M)})},requestErrorCorrection:async(R,M,D)=>{const $={project_name:R,component_id:M,error_message:D};return await fetch(`${t}/error_correction`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},addImage:async R=>await fetch(`${t}/add_image`,{method:"POST",body:R})}},ly=e=>{const t=e;return{getQueryContent:async i=>await fetch(`${t}/v1/public/sql/content-queries`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({queryId:i,biscuits:[]})}),getVisuals:async(i,a,l,c,d,f,y,m)=>{const v=new URLSearchParams({pageNo:i.toString(),pageSize:a.toString(),scope:l,searchPattern:c,sortBy:d,sortOrder:f,visibility:y,visualType:m}).toString();return await fetch(`${t}/v2/content/visuals?${v}`,{method:"GET",headers:{"Content-Type":"application/json"}})}}};for(var nn=[],Ld=0;Ld<256;++Ld)nn.push((Ld+256).toString(16).slice(1));function tI(e,t=0){return(nn[e[t+0]]+nn[e[t+1]]+nn[e[t+2]]+nn[e[t+3]]+"-"+nn[e[t+4]]+nn[e[t+5]]+"-"+nn[e[t+6]]+nn[e[t+7]]+"-"+nn[e[t+8]]+nn[e[t+9]]+"-"+nn[e[t+10]]+nn[e[t+11]]+nn[e[t+12]]+nn[e[t+13]]+nn[e[t+14]]+nn[e[t+15]]).toLowerCase()}var jl,nI=new Uint8Array(16);function rI(){if(!jl&&(jl=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!jl))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return jl(nI)}var oI=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);const cy={randomUUID:oI};function Ts(e,t,n){if(cy.randomUUID&&!t&&!e)return cy.randomUUID();e=e||{};var r=e.random||(e.rng||rI)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,tI(r)}function iI(e){return typeof e=="function"}const sI=e=>{const{wrapAPICall:t}=sy(),n=ay(e);return new Proxy(n,{get:(i,a)=>{const l=i[a];return iI(l)?(...c)=>t(l.apply(i,c)):l}})},Fd=Y.createContext(null);Fd.Consumer;const aI=e=>{const[t,n]=Y.useState({projectName:null,projectURL:null}),[r,i]=Y.useState({API_BASE_URL:null,WS_BASE_URL:null,GW_BASE_URL:null,CORS_PROXY:null}),[a]=Y.useState(()=>ay(e.config.API_BASE_URL)),c=(r.API_BASE_URL?sI(r.API_BASE_URL):null)||a,[d,f]=Y.useState(ly(e.config.GW_BASE_URL)),[y,m]=Y.useState(""),[v,w]=Y.useState(Ts()),x=()=>{w(Ts())};return Y.useEffect(()=>{i(e.config),f(ly(e.config.GW_BASE_URL)),e.metadata&&n(e.metadata)},[e.config]),b.jsx(Fd.Provider,{value:{config:r,projectMetadata:t,setProjectMetadata:n,syncToken:v,setSyncToken:x,selectedComponentId:y,setSelectedComponentId:m,APIHandler:c,gwAPIHandler:d},children:e.children})},lI=e=>b.jsx(eI,{children:b.jsx(aI,{...e})}),Bn=()=>{const e=Y.useContext(Fd);if(e===null)throw new Error("Invalid project context.");return{...e}},cI=()=>{const{APIHandler:e,projectMetadata:t}=Bn(),n=Y.useRef(""),[r,i]=Y.useState(""),a=Y.useMemo(()=>!t.projectName,[t.projectName]),l=Y.useMemo(()=>n.current===r,[r]),c=async()=>{if((await e.allocateSubdomain(t.projectName,r)).status!==200)throw new Error("Failed to allocate subdomain");if(!n.current)return;if((await e.releaseSubdomain(t.projectName,n.current)).status!==200)throw new Error("Failed to release subdomain")};return Y.useEffect(()=>{e.getSubdomains(t.projectName).then(d=>{if(d.status!==200)throw Error("Failed to retrieve subdomains");return d}).then(d=>d.json()).then(d=>{const f=d&&d.pop();if(f){let y=f.subdomain.split(".")[0];n.current=y,i(y)}})},[t.projectName]),b.jsx(b.Fragment,{children:b.jsx(Dt,{component:"form",autoComplete:"off",noValidate:!0,display:"flex",flexDirection:"column",alignItems:"center",gap:1,sx:{padding:"15px 10px 20px 10px"},children:b.jsxs(Dt,{display:"flex",alignItems:"center",sx:{width:"100%"},gap:1,children:[b.jsx(Dt,{sx:{flex:3},children:b.jsx(yl,{label:"Subdomain",variant:"outlined",fullWidth:!0,value:r,disabled:a,onChange:d=>i(d.target.value),size:"small"})}),b.jsx(hi,{variant:"outlined",fullWidth:!0,disabled:l,onClick:c,sx:{flex:1},children:"Update"})]})})})},uI=e=>{const t=r=>r.filter(i=>i.tag!=="published"),n=r=>r.toSorted((i,a)=>i.timestamp-a.timestamp);return b.jsx(b.Fragment,{children:b.jsx(Dt,{children:b.jsx(rd,{dense:!0,sx:{width:"100%"},children:e.tags&&n(t(e.tags)).map(r=>b.jsx(um,{onClick:e.onSelect(r),children:b.jsx(hm,{primary:r.tag})},r.tag))})})})},dI=()=>{const{projectMetadata:e,APIHandler:t,config:n}=Bn(),[r,i]=Y.useState([]),[a,l]=Y.useState(""),c=Y.useRef({}),[d,f]=Y.useState({}),[y,m]=Y.useState(""),v=Y.useMemo(()=>!e.projectName,[e.projectName]),w=Y.useMemo(()=>d.tag===c.current.tag,[d]),x=async()=>{const R=await yu(e.projectName,e.projectURL,n.CORS_PROXY);i(R)},_=async()=>{const R=await $w(e.projectName);if((await t.tagCommit(e.projectName,R,a)).status!==200)throw new Error("Error tagging commit.");await x()},k=async()=>{if((await t.publishProject(e.projectName,d.ref)).status!==200)throw new Error("Error releasing project.")},C=async()=>{if((await t.unpublishProject(e.projectName)).status!==200)throw new Error("Error unpublishing project.")},O=R=>()=>{f(R),m(R.tag)},P=async()=>{if((await t.deleteProject(e.projectName)).status!==200)throw new Error("Error deleting project.");location.reload()};return Y.useEffect(()=>{x()},[e.projectName]),b.jsx(b.Fragment,{children:b.jsxs(Dt,{component:"form",autoComplete:"off",noValidate:!0,display:"flex",flexDirection:"column",alignItems:"center",gap:1,sx:{padding:"15px 10px 20px 10px"},overflow:"hidden",children:[b.jsx(Dt,{sx:{width:"100%"},children:b.jsx(hi,{variant:"outlined",color:"error",fullWidth:!0,onClick:C,children:"unpublish"})}),b.jsxs(Dt,{display:"flex",alignItems:"center",sx:{padding:"2px",width:"100%"},gap:1,children:[b.jsx(Dt,{sx:{flex:3},children:b.jsx(yl,{label:"Release to Publish",variant:"outlined",fullWidth:!0,value:y||"",disabled:!0,size:"small"})}),b.jsx(hi,{variant:"outlined",fullWidth:!0,disabled:w,onClick:k,sx:{flex:1},children:"Publish"})]}),b.jsxs(Dt,{display:"flex",alignItems:"center",sx:{padding:"2px",width:"100%"},gap:1,children:[b.jsx(Dt,{sx:{flex:3},children:b.jsx(yl,{label:"New Release Name",variant:"outlined",fullWidth:!0,value:a,disabled:v,onChange:R=>l(R.target.value),size:"small"})}),b.jsx(hi,{variant:"outlined",fullWidth:!0,disabled:!a,onClick:_,sx:{flex:1},children:"Create"})]}),b.jsx(Dt,{display:"flex",flexDirection:"column",alignItems:"center",gap:1,sx:{maxHeight:"300px",padding:"5px",width:"100%",overflow:"auto",background:"DarkGrey",borderRadius:"10px"},children:b.jsx(uI,{tags:r,onSelect:O})}),b.jsx(Dt,{sx:{padding:"50px 0px 0px 0px",width:"100%"},children:b.jsx(hi,{variant:"outlined",color:"error",fullWidth:!0,onClick:()=>P(),disabled:v,children:"Delete Project"})})]})})},fI=()=>b.jsxs(b.Fragment,{children:[b.jsx(cI,{}),b.jsx(bs,{sx:{borderBottomWidth:5}}),b.jsx(dI,{})]}),uy=Cn(b.jsx("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save"),dy=Cn(b.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),pI=it.div``,hI=it.div`
179
+ `,Ps=({isVisible:e})=>e?b.jsx(ZT,{children:b.jsx(QT,{})}):null,iy=Y.createContext(null),sy=()=>{const e=Y.useContext(iy);if(!e)throw new Error("useAPI must be used within an APIProvider");return e},eI=({children:e})=>{const[t,n]=Y.useState(0),r=Y.useCallback(async a=>{n(l=>l+1);try{return await a}finally{n(l=>Math.max(0,l-1))}},[]),i=Y.useCallback(async(a,l)=>(n(c=>c+1),new Promise((c,d)=>{const f=a(),y=()=>{n(m=>Math.max(0,m-1))};f.addEventListener("load",()=>{if(y(),f.status>=200&&f.status<300)try{const m=l(f);c(m)}catch(m){d(m)}else d(new Error(`Request failed with status ${f.status}`))}),f.addEventListener("error",()=>{y(),d(new Error("Network error occurred"))}),f.addEventListener("abort",()=>{y(),d(new Error("Request cancelled"))})})),[]);return b.jsxs(iy.Provider,{value:{isLoading:t>0,wrapAPICall:r,wrapXHRCall:i},children:[b.jsx(Ps,{isVisible:t>0}),e]})},ay=e=>{const t=e;return{createProject:async(R,M)=>{const D={description:R,component_namespace:M};return await fetch(`${t}/create_project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},getProjects:async()=>await fetch(`${t}/fetch_projects`,{method:"GET",headers:{"Content-Type":"application/json"}}),getSubdomains:async R=>await fetch(`${t}/subdomains?project_name=${R}`,{method:"GET",headers:{"Content-Type":"application/json"}}),allocateSubdomain:async(R,M)=>{const D={project_name:R,subdomain:M};return await fetch(`${t}/allocate_subdomain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},releaseSubdomain:async(R,M)=>{const D={project_name:R,subdomain:M};return await fetch(`${t}/release_subdomain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},publishProject:async(R,M)=>{const D={project_name:R,git_ref:M};return await fetch(`${t}/publish_project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},unpublishProject:async R=>{const M={project_name:R};return await fetch(`${t}/unpublish_project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(M)})},tagCommit:async(R,M,D)=>{const $={project_name:R,commit_hash:M,tag_name:D};return await fetch(`${t}/tag_project_commit`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},getComponentLibrary:async()=>await fetch(`${t}/library_components?namespaces=common,example`,{method:"GET",headers:{"Content-Type":"application/json"}}),addProjectComponent:async(R,M,D,$)=>{const z={project_name:R,component_namespace:M,component_name:D,layout_metadata:$};return await fetch(`${t}/add_project_component`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(z)})},addProjectChart:async(R,M,D)=>{const $={project_name:R,visual_id:M,layout_metadata:D};return await fetch(`${t}/add_project_chart`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},updateProjectComponentLayoutMetadata:async(R,M,D)=>{const $={project_name:R,component_id:M,layout_metadata:D};return await fetch(`${t}/update_project_component_layout_metadata`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},updateProjectComponentSourceCode:async(R,M,D)=>{const $={project_name:R,component_id:M,source_code:D};return await fetch(`${t}/update_project_component_source_code`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},deleteProjectFile:async(R,M)=>{const D={project_name:R,file_path:M};return await fetch(`${t}/delete_project_file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)})},resetProjectFile:async(R,M,D,$,z)=>{let V={project_name:R,file_path:M,git_ref:D};return $&&(V.prune=$),z&&(V.extra_metadata=z),await fetch(`${t}/reset_project_file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(V)})},deleteProject:async R=>{const M={projects:[R]};return await fetch(`${t}/delete_projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(M)})},requestErrorCorrection:async(R,M,D)=>{const $={project_name:R,component_id:M,error_message:D};return await fetch(`${t}/error_correction`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)})},addImage:async R=>await fetch(`${t}/add_image`,{method:"POST",body:R})}},ly=e=>{const t=e;return{getQueryContent:async i=>await fetch(`${t}/v1/public/sql/content-queries`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({queryId:i,biscuits:[]})}),getVisuals:async(i,a,l,c,d,f,y,m)=>{const v=new URLSearchParams({pageNo:i.toString(),pageSize:a.toString(),scope:l,searchPattern:c,sortBy:d,sortOrder:f,visibility:y,visualType:m}).toString();return await fetch(`${t}/v2/content/visuals?${v}`,{method:"GET",headers:{"Content-Type":"application/json"}})}}};for(var nn=[],Ld=0;Ld<256;++Ld)nn.push((Ld+256).toString(16).slice(1));function tI(e,t=0){return(nn[e[t+0]]+nn[e[t+1]]+nn[e[t+2]]+nn[e[t+3]]+"-"+nn[e[t+4]]+nn[e[t+5]]+"-"+nn[e[t+6]]+nn[e[t+7]]+"-"+nn[e[t+8]]+nn[e[t+9]]+"-"+nn[e[t+10]]+nn[e[t+11]]+nn[e[t+12]]+nn[e[t+13]]+nn[e[t+14]]+nn[e[t+15]]).toLowerCase()}var jl,nI=new Uint8Array(16);function rI(){if(!jl&&(jl=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!jl))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return jl(nI)}var oI=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);const cy={randomUUID:oI};function Ts(e,t,n){if(cy.randomUUID&&!t&&!e)return cy.randomUUID();e=e||{};var r=e.random||(e.rng||rI)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,tI(r)}function iI(e){return typeof e=="function"}const sI=e=>{const{wrapAPICall:t}=sy(),n=ay(e);return new Proxy(n,{get:(i,a)=>{const l=i[a];return iI(l)?(...c)=>t(l.apply(i,c)):l}})},Fd=Y.createContext(null);Fd.Consumer;const aI=e=>{const[t,n]=Y.useState({projectName:null,projectURL:null}),[r,i]=Y.useState({API_BASE_URL:null,WS_BASE_URL:null,GW_BASE_URL:null,CORS_PROXY:null}),[a,l]=Y.useState(()=>ly(e.config.GW_BASE_URL)),[c,d]=Y.useState(""),[f,y]=Y.useState(Ts()),m=sI(e.config.API_BASE_URL),v=ay(e.config.API_BASE_URL),w=m||v,x=()=>{y(Ts())};return Y.useEffect(()=>{i(e.config),l(ly(e.config.GW_BASE_URL)),e.metadata&&n(e.metadata)},[e.config]),b.jsx(Fd.Provider,{value:{config:r,projectMetadata:t,setProjectMetadata:n,syncToken:f,setSyncToken:x,selectedComponentId:c,setSelectedComponentId:d,APIHandler:w,gwAPIHandler:a},children:e.children})},lI=e=>b.jsx(eI,{children:b.jsx(aI,{...e})}),Bn=()=>{const e=Y.useContext(Fd);if(e===null)throw new Error("Invalid project context.");return{...e}},cI=()=>{const{APIHandler:e,projectMetadata:t}=Bn(),n=Y.useRef(""),[r,i]=Y.useState(""),a=Y.useMemo(()=>!t.projectName,[t.projectName]),l=Y.useMemo(()=>n.current===r,[r]),c=async()=>{if((await e.allocateSubdomain(t.projectName,r)).status!==200)throw new Error("Failed to allocate subdomain");if(!n.current)return;if((await e.releaseSubdomain(t.projectName,n.current)).status!==200)throw new Error("Failed to release subdomain")};return Y.useEffect(()=>{e.getSubdomains(t.projectName).then(d=>{if(d.status!==200)throw Error("Failed to retrieve subdomains");return d}).then(d=>d.json()).then(d=>{const f=d&&d.pop();if(f){let y=f.subdomain.split(".")[0];n.current=y,i(y)}})},[t.projectName]),b.jsx(b.Fragment,{children:b.jsx(Dt,{component:"form",autoComplete:"off",noValidate:!0,display:"flex",flexDirection:"column",alignItems:"center",gap:1,sx:{padding:"15px 10px 20px 10px"},children:b.jsxs(Dt,{display:"flex",alignItems:"center",sx:{width:"100%"},gap:1,children:[b.jsx(Dt,{sx:{flex:3},children:b.jsx(yl,{label:"Subdomain",variant:"outlined",fullWidth:!0,value:r,disabled:a,onChange:d=>i(d.target.value),size:"small"})}),b.jsx(hi,{variant:"outlined",fullWidth:!0,disabled:l,onClick:c,sx:{flex:1},children:"Update"})]})})})},uI=e=>{const t=r=>r.filter(i=>i.tag!=="published"),n=r=>r.toSorted((i,a)=>i.timestamp-a.timestamp);return b.jsx(b.Fragment,{children:b.jsx(Dt,{children:b.jsx(rd,{dense:!0,sx:{width:"100%"},children:e.tags&&n(t(e.tags)).map(r=>b.jsx(um,{onClick:e.onSelect(r),children:b.jsx(hm,{primary:r.tag})},r.tag))})})})},dI=()=>{const{projectMetadata:e,APIHandler:t,config:n}=Bn(),[r,i]=Y.useState([]),[a,l]=Y.useState(""),c=Y.useRef({}),[d,f]=Y.useState({}),[y,m]=Y.useState(""),v=Y.useMemo(()=>!e.projectName,[e.projectName]),w=Y.useMemo(()=>d.tag===c.current.tag,[d]),x=async()=>{const R=await yu(e.projectName,e.projectURL,n.CORS_PROXY);i(R)},_=async()=>{const R=await $w(e.projectName);if((await t.tagCommit(e.projectName,R,a)).status!==200)throw new Error("Error tagging commit.");await x()},k=async()=>{if((await t.publishProject(e.projectName,d.ref)).status!==200)throw new Error("Error releasing project.")},C=async()=>{if((await t.unpublishProject(e.projectName)).status!==200)throw new Error("Error unpublishing project.")},O=R=>()=>{f(R),m(R.tag)},P=async()=>{if((await t.deleteProject(e.projectName)).status!==200)throw new Error("Error deleting project.");location.reload()};return Y.useEffect(()=>{x()},[e.projectName]),b.jsx(b.Fragment,{children:b.jsxs(Dt,{component:"form",autoComplete:"off",noValidate:!0,display:"flex",flexDirection:"column",alignItems:"center",gap:1,sx:{padding:"15px 10px 20px 10px"},overflow:"hidden",children:[b.jsx(Dt,{sx:{width:"100%"},children:b.jsx(hi,{variant:"outlined",color:"error",fullWidth:!0,onClick:C,children:"unpublish"})}),b.jsxs(Dt,{display:"flex",alignItems:"center",sx:{padding:"2px",width:"100%"},gap:1,children:[b.jsx(Dt,{sx:{flex:3},children:b.jsx(yl,{label:"Release to Publish",variant:"outlined",fullWidth:!0,value:y||"",disabled:!0,size:"small"})}),b.jsx(hi,{variant:"outlined",fullWidth:!0,disabled:w,onClick:k,sx:{flex:1},children:"Publish"})]}),b.jsxs(Dt,{display:"flex",alignItems:"center",sx:{padding:"2px",width:"100%"},gap:1,children:[b.jsx(Dt,{sx:{flex:3},children:b.jsx(yl,{label:"New Release Name",variant:"outlined",fullWidth:!0,value:a,disabled:v,onChange:R=>l(R.target.value),size:"small"})}),b.jsx(hi,{variant:"outlined",fullWidth:!0,disabled:!a,onClick:_,sx:{flex:1},children:"Create"})]}),b.jsx(Dt,{display:"flex",flexDirection:"column",alignItems:"center",gap:1,sx:{maxHeight:"300px",padding:"5px",width:"100%",overflow:"auto",background:"DarkGrey",borderRadius:"10px"},children:b.jsx(uI,{tags:r,onSelect:O})}),b.jsx(Dt,{sx:{padding:"50px 0px 0px 0px",width:"100%"},children:b.jsx(hi,{variant:"outlined",color:"error",fullWidth:!0,onClick:()=>P(),disabled:v,children:"Delete Project"})})]})})},fI=()=>b.jsxs(b.Fragment,{children:[b.jsx(cI,{}),b.jsx(bs,{sx:{borderBottomWidth:5}}),b.jsx(dI,{})]}),uy=Cn(b.jsx("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save"),dy=Cn(b.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),pI=it.div``,hI=it.div`
180
180
  .controls {
181
181
  position: absolute;
182
182
  right: 5px;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@spaceandtimelabs/makeinfinite-ui",
3
3
  "author": "aw-sxt",
4
4
  "private": false,
5
- "version": "0.20.1",
5
+ "version": "0.20.2",
6
6
  "type": "module",
7
7
  "exports": {
8
8
  ".": {