@veecode-platform/plugin-veecode-homepage-dynamic 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist-scalprum/plugin-manifest.json +3 -3
  2. package/dist-scalprum/static/4327.1a031031.chunk.js +2 -0
  3. package/dist-scalprum/static/4327.1a031031.chunk.js.map +1 -0
  4. package/dist-scalprum/static/{5689.ba470bd3.chunk.js → 5689.44adcfd6.chunk.js} +1 -1
  5. package/dist-scalprum/static/{5689.ba470bd3.chunk.js.map → 5689.44adcfd6.chunk.js.map} +1 -1
  6. package/dist-scalprum/static/8391.7b3a3f25.chunk.js +206 -0
  7. package/dist-scalprum/static/8391.7b3a3f25.chunk.js.map +1 -0
  8. package/dist-scalprum/static/{8505.bd5ab33a.chunk.js → 8505.9dd864c9.chunk.js} +1 -1
  9. package/dist-scalprum/static/{8505.bd5ab33a.chunk.js.map → 8505.9dd864c9.chunk.js.map} +1 -1
  10. package/dist-scalprum/static/{9286.0bf88601.chunk.js → 9286.e13da971.chunk.js} +2 -2
  11. package/dist-scalprum/static/{9286.0bf88601.chunk.js.map → 9286.e13da971.chunk.js.map} +1 -1
  12. package/dist-scalprum/static/avatar.82d1e940..svg +1 -0
  13. package/dist-scalprum/static/{exposed-PluginRoot.7c0308e7.chunk.js → exposed-PluginRoot.bbe04ca6.chunk.js} +2 -2
  14. package/dist-scalprum/static/{exposed-PluginRoot.7c0308e7.chunk.js.map → exposed-PluginRoot.bbe04ca6.chunk.js.map} +1 -1
  15. package/dist-scalprum/{veecode-platform.plugin-veecode-homepage.f5e3396deb211e8548f4.js → veecode-platform.plugin-veecode-homepage.0adabea53a5aa82d663c.js} +2 -2
  16. package/dist-scalprum/{veecode-platform.plugin-veecode-homepage.f5e3396deb211e8548f4.js.map → veecode-platform.plugin-veecode-homepage.0adabea53a5aa82d663c.js.map} +1 -1
  17. package/package.json +1 -1
  18. package/dist-scalprum/static/2235.1e9c55f2.chunk.js +0 -206
  19. package/dist-scalprum/static/2235.1e9c55f2.chunk.js.map +0 -1
  20. package/dist-scalprum/static/7499.53d03b96.chunk.js +0 -2
  21. package/dist-scalprum/static/7499.53d03b96.chunk.js.map +0 -1
  22. package/dist-scalprum/static/avatar.e87ac168..svg +0 -1
  23. /package/dist-scalprum/static/{2235.1e9c55f2.chunk.js.LICENSE.txt → 8391.7b3a3f25.chunk.js.LICENSE.txt} +0 -0
  24. /package/dist-scalprum/static/{9286.0bf88601.chunk.js.LICENSE.txt → 9286.e13da971.chunk.js.LICENSE.txt} +0 -0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "veecode-platform.plugin-veecode-homepage",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "extensions": [],
5
5
  "registrationMethod": "callback",
6
6
  "baseURL": "auto",
7
7
  "loadScripts": [
8
- "veecode-platform.plugin-veecode-homepage.f5e3396deb211e8548f4.js"
8
+ "veecode-platform.plugin-veecode-homepage.0adabea53a5aa82d663c.js"
9
9
  ],
10
- "buildHash": "f5e3396deb211e8548f4123e748dd45e"
10
+ "buildHash": "0adabea53a5aa82d663c23676659cd3b"
11
11
  }
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[]).push([[4327],{49708:(e,t,n)=>{n.r(t),n.d(t,{VeeCodeHomePage:()=>Ye});var i=n(31085),r=n(58837),l=n(95478),s=n(81031),o=n(46702),a=n(1659),d=n(6530),c=n(46121),u=n(13295),x=n(22097),h=n(30330),p=n(74892),g=n(42469);const v=({title:e,label:t,color:n,handleClick:r,link:l,children:s})=>{const o=(0,i.jsx)(h.A,{size:"small","aria-label":t,color:n,"aria-controls":`${t}-menu`,"aria-haspopup":"true",sx:{width:"42px",height:"42px",borderRadius:"50%"},onClick:r,children:s});return(0,i.jsx)(p.A,{title:e,children:l?(0,i.jsx)(g.Link,{to:l,children:o}):o})},m=()=>{const e=(0,x.useApi)(x.appThemeApiRef),t="dark"===(0,d.A)().palette.mode,n=t?"Select theme Light Theme":"Select theme Dark Theme",r=e.getInstalledThemes();return(0,i.jsx)(v,{title:n,handleClick:n=>{const i=t?"light":"dark";n.preventDefault(),n.stopPropagation(),r.some((e=>e.id===i))?e.setActiveThemeId(i):e.setActiveThemeId(void 0)},color:"inherit",label:"Toggle-theme",children:t?(0,i.jsx)(c.A,{}):(0,i.jsx)(u.A,{})})};var j=n(531),f=n(21085),A=n(75638),y=n(13674);const w=(e,t)=>{if(!t)return(0,i.jsx)(i.Fragment,{children:e});const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`(${n})`,"i"),l=e.split(r);return(0,i.jsx)(i.Fragment,{children:l.map(((e,t)=>r.test(e)?(0,i.jsx)(y.A,{component:"span",sx:{fontWeight:"normal"},children:e},`${e}-${t}`):(0,i.jsx)(y.A,{component:"span",sx:{fontWeight:"bold"},children:e},`${e}-${t}`)))})};var b=n(53855),C=n(35648),k=n(55330);const S=({params:e,error:t,helperText:n})=>(0,i.jsx)(b.A,{...e,placeholder:"Search...",variant:"standard",error:t,helperText:n,InputProps:{...e.InputProps,disableUnderline:!0,startAdornment:(0,i.jsx)(C.A,{position:"start",children:(0,i.jsx)(k.A,{style:{color:"#ffffff"}})})},sx:{input:{color:"#CDCDCD"},button:{color:"inherit"},"& fieldset":{border:"none"}}});var z=n(71543),I=n(75202),L=n(89789),T=n(50232);const F=({option:e,query:t,result:n,renderProps:r})=>{const l="No results found"===e,s=(0,x.useAnalytics)();var a;return(0,i.jsx)(o.A,{component:l?"div":I.N_,to:null==n?void 0:n.document.location,underline:"none",sx:{width:"100%",...l?{}:{cursor:"pointer"}},children:(0,i.jsx)(L.Ay,{...r,sx:{py:1},onClick:e=>{var t,i,l;s.captureEvent("discover",null!==(i=null==n?void 0:n.document.title)&&void 0!==i?i:"",{attributes:{to:null!==(l=null==n?void 0:n.document.location)&&void 0!==l?l:"#"},value:null==n?void 0:n.rank}),null==r||null===(t=r.onClick)||void 0===t||t.call(r,e)},children:(0,i.jsx)(y.A,{sx:{color:"text.primary",flexGrow:1},children:l?e:w(e,null!==(a=null==t?void 0:t.term)&&void 0!==a?a:"")})})})},R=({option:e,index:t,options:n,query:r,results:l,renderProps:s,searchLink:a})=>{if(e===(null==r?void 0:r.term)&&t===n.length-1)return(0,i.jsxs)(o.A,{id:"all-results",children:[(0,i.jsx)(z.A,{sx:{my:.5}}),(0,i.jsx)(I.N_,{to:a,underline:"none",children:(0,i.jsx)(L.Ay,{...s,sx:{my:0},className:"allResultsOption",children:(0,i.jsxs)(o.A,{sx:{display:"flex",alignItems:"center"},children:[(0,i.jsx)(y.A,{sx:{flexGrow:1},children:"All results"}),(0,i.jsx)(T.A,{fontSize:"small"})]})})})]},"all-results");const d=l.find((t=>t.document.title===e));return(0,i.jsx)(F,{option:e,query:r,result:d,renderProps:s},t)},D=e=>{const{query:t,setSearchTerm:n}=e,r=(0,g.useNavigate)(),[s,o]=(0,l.useState)(-1),a=(0,l.useRef)(s),{setTerm:c}=(0,j.SQ)(),u=(0,d.A)(),x=(e=>{const t=(0,l.useRef)(null);return(0,l.useEffect)((()=>()=>{t.current&&clearTimeout(t.current)}),[]),(0,l.useCallback)(((...n)=>{t.current&&clearTimeout(t.current),t.current=setTimeout((()=>{e(...n)}),300)}),[e,300])})(((e,t)=>{n(t),c(t)}));return(0,l.useEffect)((()=>{a.current=s}),[s]),(0,i.jsx)(f.z1,{...e,children:({loading:e,error:n,value:l})=>{var d;const c=(null==t?void 0:t.term)&&null!==(d=null==l?void 0:l.results)&&void 0!==d?d:[];let h=[];var p;(null==t?void 0:t.term)&&0===c.length&&(h=["No results found"]),c.length>0&&(h=[...c.map((e=>e.document.title)),`${null==t?void 0:t.term}`]);const g=(v=null!==(p=null==t?void 0:t.term)&&void 0!==p?p:"",`/search?query=${encodeURIComponent(v)}`);var v,m;return(0,i.jsx)(A.A,{freeSolo:!0,options:h,loading:e,value:null!==(m=null==t?void 0:t.term)&&void 0!==m?m:"",getOptionLabel:e=>null!=e?e:"",onInputChange:x,onHighlightChange:(e,t)=>o(h.indexOf(null!=t?t:"")),componentsProps:{paper:{sx:{borderRadius:"4px",outline:"unset"}}},sx:{width:"100%",background:"dark"===u.palette.mode?"#FFFFFF10":"#CDCDCD10",'& [class*="MuiAutocomplete-clearIndicator"]':{visibility:(null==t?void 0:t.term)?"visible":"hidden"},padding:".2rem",borderRadius:"8px","&:hover":{background:"dark"===u.palette.mode?"#FFFFFF25":"#CDCDCD25"}},filterOptions:e=>e,onKeyDown:e=>{const n=a.current;if("Enter"===e.key){if(e.preventDefault(),-1===n&&(null==t?void 0:t.term))r(g);else if(-1!==n){var i,l,d;r(null!==(d=null===(l=c[s])||void 0===l||null===(i=l.document)||void 0===i?void 0:i.location)&&void 0!==d?d:g)}o(-1)}},renderInput:e=>(0,i.jsx)(S,{params:e,error:!!n,helperText:n?"Error fetching results":""}),renderOption:(e,n,{index:r})=>(0,i.jsx)(R,{option:n,index:r,options:h,query:t,results:c,renderProps:e,searchLink:g}),ListboxProps:{sx:{maxHeight:"60vh"}}})}})};var M=n(10394);const $=()=>{const[e,t]=(0,l.useState)("");return(0,i.jsx)(j.Lt,{children:(0,i.jsx)(M.A,{component:"div",sx:{width:"100%",maxWidth:"50vw"},children:(0,i.jsx)(D,{query:{term:e},setSearchTerm:t})})})};var E=n(49915),O=n(94087),P=n(19277),N=n(85770),W=n(26343),H=n(37197),_=n(46423),B=n(55626),G=n(22854);const U=n.p+"static/avatar.82d1e940..svg",V=({width:e,height:t})=>{const{profile:n,loading:r}=(0,N.s)();var l;return(0,i.jsx)(i.Fragment,{children:r?(0,i.jsx)(G.A,{variant:"circular",sx:{width:e,height:t}}):(0,i.jsx)(B.A,{src:null!==(l=n.picture)&&void 0!==l?l:U,sx:{width:e,height:t,objectFit:"cover"},alt:"Profile picture"})})};var q=n(84692),Y=n(27018),J=n(57368);const K=()=>{const e=(0,x.useApi)(x.identityApiRef);return(0,i.jsxs)(o.A,{component:"div",onClick:async()=>{await e.signOut()},sx:{display:"flex",alignItems:"center",justifyContent:"flex-start"},children:[(0,i.jsx)(Y.A,{children:(0,i.jsx)(J.A,{fontSize:"small"})}),"Log out"]})};var Q=n(113);const X=({handleClose:e,link:t,children:n})=>(0,i.jsx)(W.A,{onClick:e,children:(0,i.jsx)(g.Link,{to:t,children:(0,i.jsx)(o.A,{component:"div",sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:".1rem 0"},children:n})})}),Z=({anchorEl:e,menuId:t,isOpen:n,handleClose:r})=>{var s,a;const c=(0,d.A)(),{displayName:u,backstageIdentity:h}=(0,N.s)(),p=(0,x.useApi)(q.v);var g;const v=null!==(g=null===(a=(0,x.useApi)(x.configApiRef).app)||void 0===a||null===(s=a.support)||void 0===s?void 0:s.url)&&void 0!==g?g:"https://github.com/orgs/veecode-platform/discussions";return(0,l.useEffect)((()=>{(async()=>{let e;try{return(null==h?void 0:h.userEntityRef)&&(e=await p.getEntityByRef(h.userEntityRef)),e}catch(e){return null}})()}),[h,p]),(0,i.jsxs)(P.A,{anchorEl:e,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},id:t,keepMounted:!0,open:n,onClose:r,slotProps:{paper:{sx:{width:250,borderRadius:2,mt:.8,mr:-.5,boxShadow:3,background:`${c.palette.background.default} !important`,border:`1px solid ${c.palette.grey[600]}`}}},children:[(0,i.jsxs)(o.A,{sx:{px:2,py:1.5,display:"flex",alignItems:"center",gap:1.5},children:[(0,i.jsx)(V,{}),(0,i.jsxs)(o.A,{children:[(0,i.jsx)(y.A,{variant:"subtitle1",children:(()=>{const e=u;return/^[^:/]+:[^/]+\/[^/]+$/.test(e)?e.charAt(e.indexOf("/")+1).toLocaleUpperCase("en-US").concat(e.substring(e.indexOf("/")+2)):e})()}),(0,i.jsx)(Q.A,{size:"small",variant:"outlined",label:null==h?void 0:h.ownershipEntityRefs[0].split("/")[1]})]})]}),(0,i.jsx)(H.A,{}),(0,i.jsx)(X,{handleClose:r,link:v,children:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(_.A,{children:(0,i.jsx)(E.A,{fontSize:"small"})}),"Help"]})}),(0,i.jsx)(X,{handleClose:r,link:"/settings",children:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(_.A,{children:(0,i.jsx)(O.A,{fontSize:"small"})}),"Settings"]})}),(0,i.jsx)(H.A,{}),(0,i.jsx)(W.A,{children:(0,i.jsx)(K,{})})]})};var ee=n(33265),te=n(52452),ne=n(47566),ie=n(87094),re=n(16294),le=n(97331),se=n.n(le);const oe=()=>{var e;const[t]=(0,l.useState)(!0),[n]=(0,l.useState)(void 0),[r]=(0,l.useState)("low"),[s]=(0,l.useState)(),{lastSignal:o}=(0,re.U)("notifications"),{error:a,value:d,retry:c,loading:u}=(0,ie.s)((e=>{const i={minimumSeverity:r};return void 0!==t&&(i.read=!t),void 0!==n&&(i.saved=n),void 0!==s&&(i.topic=s),Promise.all([e.getNotifications(i),e.getStatus(),e.getTopics(i)])}),[t,r,n,s]),x=(0,l.useMemo)((()=>se()((()=>c()),2e3)),[]);var h;const p=null!==(h=null==d||null===(e=d[1])||void 0===e?void 0:e.unread)&&void 0!==h?h:0;return(0,l.useEffect)((()=>{(null==o?void 0:o.action)&&x()}),[o,x]),(0,i.jsx)(v,{title:"Notifications",label:`Mostrar ${p} notificações não lidas`,color:"inherit",link:"/notifications",children:(0,i.jsx)(ee.A,{badgeContent:p,color:"error",invisible:u||!!a||0===p,children:u?(0,i.jsx)(ne.A,{size:20,color:"inherit"}):(0,i.jsx)(te.A,{})})})},ae=({handleOpenMenu:e})=>(0,i.jsx)(v,{title:"",label:"profile-menu",handleClick:e,color:"inherit",children:(0,i.jsx)(V,{width:"42px",height:"42px"})}),de=()=>{const e=(0,d.A)(),[t,n]=l.useState(null),r=Boolean(t);return(0,i.jsxs)(o.A,{sx:{flexGrow:1,position:"relative"},children:[(0,i.jsx)(s.A,{position:"sticky",component:"nav",style:{zIndex:e.zIndex.appBar-1},children:(0,i.jsxs)(a.A,{children:[(0,i.jsx)($,{}),(0,i.jsx)(o.A,{sx:{flexGrow:1}}),(0,i.jsxs)(o.A,{sx:{display:{xs:"none",md:"flex",alignItems:"center",gap:".5rem"}},children:[(0,i.jsx)(oe,{}),(0,i.jsx)(m,{}),(0,i.jsx)(ae,{handleOpenMenu:e=>{n(e.currentTarget)}})]})]})}),(0,i.jsx)(Z,{anchorEl:t,menuId:"profile-menu",isOpen:r,handleClose:()=>{n(null)}})]})},ce=n.p+"static/waves.6d6cf859..svg",ue=()=>{var e,t,n,r,s,a,c,u,h,p,g,v,m,j,f,A;const[w,b]=(0,l.useState)(!1),{displayName:C}=(0,N.s)(),k=(0,d.A)(),S="dark"===k.palette.mode,z=(0,x.useApi)(x.configApiRef);var I;const L=null!==(I=S?null===(r=z.app)||void 0===r||null===(n=r.branding)||void 0===n||null===(t=n.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(u=z.app)||void 0===u||null===(c=u.branding)||void 0===c||null===(a=c.theme)||void 0===a||null===(s=a.light)||void 0===s?void 0:s.headerColor1)&&void 0!==I?I:"#45556D";var T;const F=null!==(T=S?null===(v=z.app)||void 0===v||null===(g=v.branding)||void 0===g||null===(p=g.theme)||void 0===p||null===(h=p.dark)||void 0===h?void 0:h.headerColor2:null===(A=z.app)||void 0===A||null===(f=A.branding)||void 0===f||null===(j=f.theme)||void 0===j||null===(m=j.light)||void 0===m?void 0:m.headerColor2)&&void 0!==T?T:"#86F4CE";return(0,l.useEffect)((()=>{b(!0),setTimeout((()=>b(!1)),1e3)}),[]),(0,i.jsxs)(o.A,{sx:{background:`linear-gradient(90deg, ${L} 0%, ${F} 100%)`,width:"100%",minHeight:"210px",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden",[k.breakpoints.only("xs")]:{height:"380px",padding:"1rem 0"}},children:[(0,i.jsxs)(o.A,{sx:{width:"90%",margin:"auto",display:"flex",alignItems:"center",gap:"2rem",[k.breakpoints.only("xs")]:{flexDirection:"column",padding:"1rem 0"}},children:[(0,i.jsx)(o.A,{children:(0,i.jsx)(V,{width:"120px",height:"120px"})}),(0,i.jsxs)(o.A,{sx:{[k.breakpoints.only("xs")]:{textAlign:"center",color:k.palette.grey[100],maxWidth:"70vw"}},children:[(0,i.jsxs)(y.A,{variant:"h3",children:["Welcome back",w?(0,i.jsx)(G.A,{variant:"rectangular",width:150,height:80,style:{display:"inline"}}):(0,i.jsxs)(i.Fragment,{children:[", ",(()=>{const e=C;return/^[^:/]+:[^/]+\/[^/]+$/.test(e)?e.charAt(e.indexOf("/")+1).toLocaleUpperCase("en-US").concat(e.substring(e.indexOf("/")+2)):e})()," 👋"]})," "]}),(0,i.jsx)(y.A,{variant:"h6",children:"Let's get started."})]})]}),(0,i.jsx)("img",{src:ce,alt:"",style:{width:"100%",height:"250px",objectFit:"cover",position:"absolute",top:"-20%",left:"0",opacity:"0.7"}})]})};var xe=n(39240),he=n(19996),pe=n(16454);const ge=()=>{const e=(0,d.A)();return(0,i.jsx)("svg",{height:"45px",width:"45px",version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 502.648 502.648",xmlSpace:"preserve",style:{cursor:"pointer "},children:(0,i.jsxs)("g",{children:[(0,i.jsx)("g",{children:(0,i.jsxs)("g",{children:[(0,i.jsx)("circle",{style:{fill:e.palette.grey[600]},cx:"250.399",cy:"91.549",r:"58.694"}),(0,i.jsx)("path",{style:{fill:e.palette.grey[600]},d:"M455.861,253.028l-54.703-11.411c-18.637-3.904-37.037,4.638-46.765,19.824 c-9.448-4.853-19.608-9.038-30.415-12.511v-32.529c0.022-24.612-20.126-44.738-44.651-44.738h-55.933 c-24.655,0-44.716,20.126-44.716,44.738v32.701c-10.699,3.408-20.751,7.593-30.264,12.468 c-9.728-15.251-28.15-23.857-46.809-19.953l-54.747,11.411c-24.03,5.026-39.626,28.862-34.6,52.978l13.741,65.64 c4.983,24.051,28.84,39.647,52.892,34.621l17.321-3.624c8.671,12.813,20.665,24.569,36.023,34.621 c31.989,20.967,74.247,32.529,119.092,32.529c68.617,0,127.721-27.589,154.943-67.215l17.602,3.689 c24.03,5.004,47.887-10.57,52.87-34.621l13.762-65.64C495.508,281.89,479.912,258.054,455.861,253.028z M251.305,447.381 c-40.51,0-78.475-10.203-106.797-28.862c-9.707-6.342-17.753-13.395-24.202-20.945l13.266-2.783 c24.073-5.004,39.669-28.84,34.643-52.913l-12.317-59.018c7.183-3.861,14.733-7.248,22.757-10.138v10.764 c0,24.569,20.104,44.695,44.716,44.695h55.933c24.548,0,44.652-20.147,44.652-44.695v-11.325 c8.175,2.912,15.854,6.256,22.973,10.052L334.439,341.9c-4.983,24.073,10.591,47.909,34.664,52.913l13.395,2.804 C357.52,427.191,308.101,447.381,251.305,447.381z"}),(0,i.jsx)("circle",{style:{fill:e.palette.grey[600]},cx:"443.954",cy:"168.708",r:"58.694"}),(0,i.jsx)("path",{style:{fill:e.palette.grey[600]},d:"M70.736,226.172c31.752-6.644,52.029-37.77,45.471-69.501 c-6.687-31.709-37.749-52.072-69.523-45.428c-31.709,6.622-52.072,37.727-45.428,69.458 C7.879,212.453,38.984,232.795,70.736,226.172z"})]})}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{})]})})},ve=()=>{const e=(0,d.A)();return(0,i.jsx)("svg",{width:"45px",height:"45px",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",fill:"none",style:{cursor:"pointer "},children:(0,i.jsx)("path",{fill:e.palette.grey[600],"fill-rule":"evenodd",d:"M4.25 1A2.25 2.25 0 002 3.25v9.5A2.25 2.25 0 004.25 15h8.5c.69 0 1.25-.56 1.25-1.25V2.25C14 1.56 13.44 1 12.75 1h-8.5zM3.5 12.75c0 .414.336.75.75.75h8.25v-2H4.25a.75.75 0 00-.75.75v.5zm0-2.622c.235-.083.487-.128.75-.128h8.25V2.5H4.25a.75.75 0 00-.75.75v6.878z","clip-rule":"evenodd"})})},me=()=>{const e=(0,d.A)();return(0,i.jsxs)("svg",{width:"45px",height:"45px",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",style:{cursor:"pointer "},children:[(0,i.jsx)("rect",{x:"0",fill:"none",width:"20",height:"20"}),(0,i.jsx)("g",{fill:e.palette.grey[600],children:(0,i.jsx)("path",{d:"M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm7.5 6.48c-.274.896-.908 1.64-1.75 2.05-.45-1.69-1.658-3.074-3.27-3.75.13-.444.41-.83.79-1.09-.43-.28-1-.42-1.34.07-.53.69 0 1.61.21 2v.14c-.555-.337-.99-.84-1.24-1.44-.966-.03-1.922.208-2.76.69-.087-.565-.032-1.142.16-1.68.733.07 1.453-.23 1.92-.8.46-.52-.13-1.18-.59-1.58h.36c1.36-.01 2.702.335 3.89 1 1.36 1.005 2.194 2.57 2.27 4.26.24 0 .7-.55.91-.92.172.34.32.69.44 1.05zM9 16.84c-2.05-2.08.25-3.75-1-5.24-.92-.85-2.29-.26-3.11-1.23-.282-1.473.267-2.982 1.43-3.93.52-.44 4-1 5.42.22.83.715 1.415 1.674 1.67 2.74.46.035.918-.066 1.32-.29.41 2.98-3.15 6.74-5.73 7.73zM5.15 2.09c.786-.3 1.676-.028 2.16.66-.42.38-.94.63-1.5.72.02-.294.085-.584.19-.86l-.85-.52z"})})]})},je=()=>{const e=(0,d.A)();return(0,i.jsxs)("svg",{width:"45px",height:"45px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{cursor:"pointer "},children:[(0,i.jsx)("title",{children:"support"}),(0,i.jsx)("rect",{width:"24",height:"24",fill:"none"}),(0,i.jsx)("path",{fill:e.palette.grey[600],d:"M12,2a8,8,0,0,0-8,8v1.9A2.92,2.92,0,0,0,3,14a2.88,2.88,0,0,0,1.94,2.61C6.24,19.72,8.85,22,12,22h3V20H12c-2.26,0-4.31-1.7-5.34-4.39l-.21-.55L5.86,15A1,1,0,0,1,5,14a1,1,0,0,1,.5-.86l.5-.29V11a1,1,0,0,1,1-1H17a1,1,0,0,1,1,1v5H13.91a1.5,1.5,0,1,0-1.52,2H20a2,2,0,0,0,2-2V14a2,2,0,0,0-2-2V10A8,8,0,0,0,12,2Z"})]})},fe=n.p+"static/backstage.b1940be1..png";var Ae=n(78838),ye=n(92742),we=n(59193),be=n(12302),Ce=n(80731),ke=n(97134),Se=n(16481),ze=n(45685),Ie=n(98590),Le=n(35015);function Te(e="royalblue",t,n=70,i=30){const{h:r,s:l}=function(e){const t=document.createElement("canvas").getContext("2d");if(!t)throw new Error("Canvas not supported");t.fillStyle=e;const n=t.fillStyle.replace(/^#/,""),i=3===n.length?n.split("").map((e=>e+e)).join(""):n,r=parseInt(i,16);return function(e,t,n){const i=e/255,r=t/255,l=n/255,s=Math.max(i,r,l),o=Math.min(i,r,l),a=(s+o)/2;let d=0,c=0;if(s!==o){const e=s-o;c=a>.5?e/(2-s-o):e/(s+o),d=s===i?(r-l)/e+(r<l?6:0):s===r?(l-i)/e+2:(i-r)/e+4,d*=60}return{h:Math.round(d),s:Math.round(100*c),l:Math.round(100*a)}}(r>>16&255,r>>8&255,255&r)}(e),s=(n-i)/Math.max(t-1,1);return Array.from({length:t},((e,t)=>`hsl(${r}, ${l}%, ${n-t*s}%)`))}var Fe=n(61690);const Re=(0,we.Ay)("text",{shouldForwardProp:e=>"variant"!==e})((({theme:e})=>({textAnchor:"middle",dominantBaseline:"central",fill:e.palette.text.secondary,variants:[{props:{variant:"primary"},style:{fontSize:e.typography.h5.fontSize}},{props:({variant:e})=>"primary"!==e,style:{fontSize:e.typography.body2.fontSize}},{props:{variant:"primary"},style:{fontWeight:e.typography.h5.fontWeight}},{props:({variant:e})=>"primary"!==e,style:{fontWeight:e.typography.body2.fontWeight}}]})));function De({primaryText:e,secondaryText:t}){const{width:n,height:r,left:s,top:o}=(0,ye.N)(),a=o+r/2-10,d=a+24;return(0,i.jsxs)(l.Fragment,{children:[(0,i.jsx)(Re,{variant:"primary",x:s+n/2,y:a,children:e}),(0,i.jsx)(Re,{variant:"secondary",x:s+n/2,y:d,children:t})]})}function Me(){var e,t,n,r,l,s,a,c;const{total:u,items:h,visits:p}=(()=>{const e=(0,x.useApi)(Ie.y),{value:t,loading:n,error:i}=(0,Le.A)((async()=>{const t=await e.list();return{total:t.reduce(((e,t)=>e+t.hits),0),items:t.map((e=>({label:e.name,value:e.hits}))),visits:t.map((e=>({id:e.id,name:e.name,path:e.pathname,hits:e.hits})))}}),[]);var r,l,s;return{loading:n,error:i,total:null!==(r=null==t?void 0:t.total)&&void 0!==r?r:0,items:null!==(l=null==t?void 0:t.items)&&void 0!==l?l:[],visits:null!==(s=null==t?void 0:t.visits)&&void 0!==s?s:[]}})(),g=(0,d.A)(),v="dark"===g.palette.mode,m=(0,x.useApi)(x.configApiRef);var j;const f=Te(null!==(j=v?null===(r=m.app)||void 0===r||null===(n=r.branding)||void 0===n||null===(t=n.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(c=m.app)||void 0===c||null===(a=c.branding)||void 0===a||null===(s=a.theme)||void 0===s||null===(l=s.light)||void 0===l?void 0:l.headerColor1)&&void 0!==j?j:"#45556D",h.length),A=e=>Number((e/(u/100)).toFixed(2));return(0,i.jsxs)(be.A,{variant:"outlined",sx:{display:"flex",flexDirection:"column",gap:"8px",flexGrow:1,maxHeight:"900px",overfloyY:"auto"},children:[(0,i.jsx)(ze.A,{title:"Top Visited"}),(0,i.jsx)(H.A,{}),(0,i.jsx)(Ce.A,{children:(0,i.jsx)(o.A,{sx:{display:"flex",alignItems:"center"},children:(0,i.jsx)(Ae.r,{colors:f,margin:{left:80,right:80,top:80,bottom:80},series:[{data:h,innerRadius:75,outerRadius:100,paddingAngle:0,highlightScope:{fade:"global",highlight:"item"}}],height:260,width:260,hideLegend:!0,children:(0,i.jsx)(De,{primaryText:`${u}`,secondaryText:"Total"})})})}),(0,i.jsx)(o.A,{sx:{padding:"2rem",background:g.palette.background.default},children:p.map((e=>(0,i.jsxs)(ke.A,{direction:"row",sx:{alignItems:"center",gap:2,pb:2},children:[(0,i.jsx)(Fe.A,{}),(0,i.jsxs)(ke.A,{sx:{gap:1,flexGrow:1},children:[(0,i.jsxs)(ke.A,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center",gap:2},children:[(0,i.jsx)(y.A,{variant:"body2",sx:{fontWeight:"500"},children:e.name}),(0,i.jsxs)(y.A,{variant:"body2",sx:{color:"text.secondary"},children:[A(e.hits),"%"]})]}),(0,i.jsx)(Se.A,{variant:"determinate","aria-label":"Number of users by country",value:A(e.hits)})]})]},e.id)))})]})}var $e=n(54994);function Ee({icon:e,title:t,value:n,color:r}){return(0,i.jsx)(be.A,{variant:"outlined",sx:{width:"100%",height:"100%",flexGrow:1,background:(0,$e.alpha)(r,.15)},children:(0,i.jsxs)(Ce.A,{children:[(0,i.jsxs)(o.A,{component:"div",sx:{display:"flex",gap:".5rem",padding:".5rem 0"},children:[(0,i.jsx)(e,{color:"secondary",style:{fontSize:"18px"}}),(0,i.jsx)(y.A,{component:"h2",variant:"subtitle1",gutterBottom:!0,children:t})]}),(0,i.jsx)(ke.A,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center"},children:(0,i.jsx)(y.A,{variant:"h4",component:"div",sx:{width:"100%",textAlign:"right",padding:"0 .5rem"},children:n})})]})})}var Oe=n(64811),Pe=n(97522),Ne=n(87318);function We(){const e=(0,d.A)();return(0,i.jsx)(be.A,{variant:"outlined",sx:{width:"100%",height:"100%",flexGrow:1,border:"1px solid transparent",[e.breakpoints.down("lg")]:{justifyContent:"center",background:e.palette.background.default}},children:(0,i.jsxs)(Ce.A,{children:[(0,i.jsxs)(o.A,{component:"div",sx:{display:"flex",gap:".5rem",padding:".5rem 0",[e.breakpoints.down("lg")]:{justifyContent:"center"}},children:[(0,i.jsx)(Pe.A,{color:"primary"}),(0,i.jsx)(y.A,{component:"h2",variant:"subtitle2",gutterBottom:!0,sx:{fontWeight:"600"},children:"Add new features"})]}),(0,i.jsx)(o.A,{sx:{[e.breakpoints.down("lg")]:{textAlign:"center"}},children:(0,i.jsxs)(Ne.z,{variant:"contained",to:"/create",children:[" ",(0,i.jsx)(Oe.A,{})," Create"]})})]})})}var He=n(27732),_e=n(97035),Be=n(3629);function Ge(){var e,t,n,r,l,s,a,c;const{resources:u,apis:h,components:p}=(()=>{const e=(0,x.useApi)(q.v),{value:t,loading:n,error:i}=(0,Le.A)((async()=>{const t=await e.getEntities();return{resources:t.items.filter((e=>"api"!==e.kind.toLocaleLowerCase()&&"Component"!==e.kind.toLocaleLowerCase()&&"group"!==e.kind.toLocaleLowerCase()&&"user"!==e.kind.toLocaleLowerCase()&&"location"!==e.kind.toLocaleLowerCase())),apis:t.items.filter((e=>"api"===e.kind.toLocaleLowerCase())),components:t.items.filter((e=>"component"===e.kind.toLocaleLowerCase()))}}),[]);var r,l,s;return{loading:n,error:i,resources:null!==(r=null==t?void 0:t.resources)&&void 0!==r?r:[],apis:null!==(l=null==t?void 0:t.apis)&&void 0!==l?l:[],components:null!==(s=null==t?void 0:t.components)&&void 0!==s?s:[]}})(),g=(0,d.A)(),v="dark"===g.palette.mode,m=(0,x.useApi)(x.configApiRef),j=[{icon:He.A,title:"Resources",value:u.length.toString()},{icon:_e.A,title:"Components",value:p.length.toString()},{icon:Be.A,title:"APIs",value:h.length.toString()}];var f;const A=Te(null!==(f=v?null===(r=m.app)||void 0===r||null===(n=r.branding)||void 0===n||null===(t=n.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(c=m.app)||void 0===c||null===(a=c.branding)||void 0===a||null===(s=a.theme)||void 0===s||null===(l=s.light)||void 0===l?void 0:l.headerColor1)&&void 0!==f?f:"#45556D",j.length);return(0,i.jsxs)(be.A,{variant:"outlined",sx:{display:"flex",flexDirection:"column",gap:"8px",flexGrow:1,overfloyY:"auto"},children:[(0,i.jsx)(ze.A,{title:"Summary"}),(0,i.jsx)(H.A,{}),(0,i.jsx)(Ce.A,{children:(0,i.jsxs)(o.A,{sx:{display:"grid",alignItems:"center",gap:"1rem",gridTemplateColumns:"repeat(4,1fr)",[g.breakpoints.down("lg")]:{gridTemplateColumns:"1fr"}},children:[j.map(((e,t)=>(0,i.jsx)(Ee,{...e,color:A[t]},t))),(0,i.jsx)(We,{})]})})]})}const Ue=()=>{const e=[{url:"https://docs.platform.vee.codes/",label:"Docs",icon:(0,i.jsx)(ve,{})},{url:"https://github.com/orgs/veecode-platform/discussions",label:"Community",icon:(0,i.jsx)(ge,{})},{url:"https://platform.vee.codes/",label:"Website",icon:(0,i.jsx)(me,{})},{url:"https://veecode-suporte.freshdesk.com/support/login",label:"Support",icon:(0,i.jsx)(je,{})}];return(0,i.jsx)(j.Lt,{children:(0,i.jsx)(pe.U,{stretch:!0,children:(0,i.jsxs)(he.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,i.jsx)(he.Ay,{item:!0,xs:12,children:(0,i.jsxs)(he.Ay,{container:!0,spacing:2,children:[(0,i.jsx)(he.Ay,{item:!0,xs:12,md:6,lg:8,children:(0,i.jsxs)(he.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,i.jsx)(he.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(Ge,{})}),(0,i.jsx)(he.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(xe.bv,{})}),(0,i.jsx)(he.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(xe.vA,{})})]})}),(0,i.jsx)(he.Ay,{item:!0,xs:12,md:6,lg:4,children:(0,i.jsxs)(he.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,i.jsx)(he.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(Me,{})}),(0,i.jsx)(he.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(xe.zJ,{tools:e})})]})})]})}),(0,i.jsx)(he.Ay,{item:!0,xs:12,sx:{marginTop:"7rem"},children:(0,i.jsxs)(o.A,{sx:{display:"flex",alignItems:"center",justifyContent:"center",fontSize:"1.3em",gap:"10px"},children:[(0,i.jsx)(y.A,{sx:{fontSize:"1.2em",fontWeight:"bold"},children:"Powered by"}),(0,i.jsx)("img",{src:fe,alt:"backstage logo",style:{width:"7.5em",height:"1.5em"}})]})})]})})})};var Ve=n(82326);const qe=(0,r.A)((e=>({pageRoot:{display:"flex",flexDirection:"column",backgroundColor:e.palette.background.default}}))),Ye=()=>{const{pageRoot:e}=qe();return(0,i.jsxs)(Ve.Y,{themeId:"home",className:e,children:[(0,i.jsx)(de,{}),(0,i.jsx)(ue,{}),(0,i.jsx)(Ue,{})]})}}}]);
2
+ //# sourceMappingURL=4327.1a031031.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/4327.1a031031.chunk.js","mappings":"6VAcO,MAAMA,EAAiD,EAC5DC,QACAC,QACAC,QACAC,cACAC,OACAC,eAEA,MAAMC,GACJ,SAACC,EAAAA,EAAUA,CACTC,KAAK,QACLC,aAAYR,EACZC,MAAOA,EACPQ,gBAAe,GAAGT,SAClBU,gBAAc,OACdC,GAAI,CACFC,MAAO,OACPC,OAAQ,OACRC,aAAc,OAEhBC,QAASb,E,SAERE,IAIL,OACE,SAACY,EAAAA,EAAOA,CAACjB,MAAOA,E,SACbI,GAAO,SAACc,EAAAA,KAAIA,CAACC,GAAIf,E,SAAOE,IAAiBA,G,ECpCnCc,EAAc,KACzB,MAAMC,GAAcC,EAAAA,EAAAA,QAAOC,EAAAA,gBAErBC,EAAoC,UAD5BC,EAAAA,EAAAA,KACWC,QAAQC,KAC3BC,EAAeJ,EACjB,2BACA,0BACEK,EAAWR,EAAYS,qBAe7B,OACE,SAAC/B,EAAmBA,CAClBC,MAAO4B,EACPzB,YAfF4B,IAEA,MAAMC,EAAaR,EAAa,QAAU,OAC1CO,EAAEE,iBACFF,EAAEG,kBACEL,EAASM,MAAKC,GAAMA,EAAGC,KAAOL,IAChCX,EAAYiB,iBAAiBN,GAE7BX,EAAYiB,sBAAiBC,EAC/B,EAOErC,MAAM,UACND,MAAM,e,SAELuB,GAAa,SAACgB,EAAAA,EAAqBA,CAAAA,IAAM,SAACC,EAAAA,EAAoBA,CAAAA,I,gDCX9D,MAAMC,EAAiB,CAACC,EAAcC,KAC3C,IAAKA,EAAO,OAAO,qB,SAAGD,IAEtB,MAEME,EAA2BD,EADzBE,QAAQ,sBAAuB,QAGjCC,EAAQ,IAAIC,OAAO,IAAIH,KAAiB,KACxCI,EAAQN,EAAKO,MAAMH,GAEzB,OACE,qB,SACGE,EAAME,KAAI,CAACC,EAAMC,IAChBN,EAAMO,KAAKF,IACT,SAACG,EAAAA,EAAUA,CAETC,UAAU,OACV5C,GAAI,CAAE6C,WAAY,U,SAEjBL,GAJI,GAAGA,KAAQC,MAOlB,SAACE,EAAAA,EAAUA,CAETC,UAAU,OACV5C,GAAI,CAAE6C,WAAY,Q,SAEjBL,GAJI,GAAGA,KAAQC,Q,uCCrBrB,MAAMK,EAAc,EACzBC,SACAC,QACAC,iBAEA,SAACC,EAAAA,EAASA,IACJH,EACJI,YAAY,YACZC,QAAQ,WACRJ,MAAOA,EACPC,WAAYA,EACZI,WAAY,IACPN,EAAOM,WACVC,kBAAkB,EAClBC,gBACE,SAACC,EAAAA,EAAcA,CAACC,SAAS,Q,UACvB,SAACC,EAAAA,EAAUA,CAACC,MAAO,CAAErE,MAAO,gBAIlCU,GAAI,CACF4D,MAAO,CAAEtE,MAAO,WAChBI,OAAQ,CAAEJ,MAAO,WACjB,aAAc,CAAEuE,OAAQ,W,gDCjBvB,MAAMC,EAAmB,EAC9BC,SACA/B,QACAgC,SACAC,kBAEA,MAAMC,EAA8B,qBAAXH,EACnBI,GAAYC,EAAAA,EAAAA,gB,IAuBiBpC,EArBnC,OACE,SAACqC,EAAAA,EAAGA,CACFzB,UAAWsB,EAAmB,MAAQ5D,EAAAA,GACtCC,GAAIyD,aAAAA,EAAAA,EAAQM,SAASC,SACrBC,UAAU,OACVxE,GAAI,CAAEC,MAAO,UAAYiE,EAAmB,CAAC,EAAI,CAAEO,OAAQ,Y,UAE3D,SAACC,EAAAA,GAAQA,IACHT,EACJjE,GAAI,CAAE2E,GAAI,GACVvE,QAAUe,I,IAKR8C,EAJmCD,EACfA,EADpBG,EAAUS,aAAa,WAAkC,QAAtBZ,EAAAA,aAAAA,EAAAA,EAAQM,SAASlF,aAAjB4E,IAAAA,EAAAA,EAA0B,GAAI,CAC/Da,WAAY,CAAEtE,GAA6B,QAAzByD,EAAAA,aAAAA,EAAAA,EAAQM,SAASC,gBAAjBP,IAAAA,EAAAA,EAA6B,KAC/Cc,MAAOd,aAAAA,EAAAA,EAAQe,OAEjBd,SAAoB,QAApBA,EAAAA,EAAa7D,eAAb6D,IAAAA,GAAAA,EAAAA,KAAAA,EAAuB9C,EAAE,E,UAG3B,SAACwB,EAAAA,EAAUA,CAAC3C,GAAI,CAAEV,MAAO,eAAgB0F,SAAU,G,SAChDd,EACGH,EACAjC,EAAeiC,EAAmB,QAAX/B,EAAAA,aAAAA,EAAAA,EAAOiD,YAAPjD,IAAAA,EAAAA,EAAe,S,EC1BvCkD,EAAe,EAC1BnB,SACAtB,QACA0C,UACAnD,QACAoD,UACAnB,cACAoB,iBAEA,GAAItB,KAAW/B,aAAAA,EAAAA,EAAOiD,OAAQxC,IAAU0C,EAAQG,OAAS,EACvD,OACE,UAACjB,EAAAA,EAAGA,CAAmB5C,GAAG,c,WACxB,SAAC8D,EAAAA,EAAOA,CAACvF,GAAI,CAAEwF,GAAI,OACnB,SAAClF,EAAAA,GAAIA,CAACC,GAAI8E,EAAYb,UAAU,O,UAC9B,SAACE,EAAAA,GAAQA,IACHT,EACJjE,GAAI,CAAEwF,GAAI,GACVC,UAAU,mB,UAEV,UAACpB,EAAAA,EAAGA,CAACrE,GAAI,CAAE0F,QAAS,OAAQC,WAAY,U,WACtC,SAAChD,EAAAA,EAAUA,CAAC3C,GAAI,CAAEgF,SAAU,G,SAAK,iBACjC,SAACY,EAAAA,EAAgBA,CAACC,SAAS,mBAV1B,eAkBb,MAAM7B,EAASoB,EAAQU,MAAKC,GAAKA,EAAEzB,SAASlF,QAAU2E,IACtD,OACE,SAACD,EAAgBA,CAEfC,OAAQA,EACR/B,MAAOA,EACPgC,OAAQA,EACRC,YAAaA,GAJRxB,EAAAA,EClCEuD,EAAaC,IACxB,MAAM,MAAEjE,EAAK,cAAEkE,GAAkBD,EAC3BE,GAAWC,EAAAA,EAAAA,gBACVC,EAAkBC,IAAuBC,EAAAA,EAAAA,WAAU,GACpDC,GAAsBC,EAAAA,EAAAA,QAAOJ,IAC7B,QAAEK,IAAYC,EAAAA,EAAAA,MACdC,GAAQ/F,EAAAA,EAAAA,KAERgG,ECzB4B,CAClCC,IAGA,MAAMC,GAAaN,EAAAA,EAAAA,QAA8B,MAUjD,OARAO,EAAAA,EAAAA,YAAU,IACD,KACDD,EAAWE,SACbC,aAAaH,EAAWE,QAC1B,GAED,KAEIE,EAAAA,EAAAA,cACL,IAAIC,KACEL,EAAWE,SACbC,aAAaH,EAAWE,SAE1BF,EAAWE,QAAUI,YAAW,KAC9BP,KAAYM,EAAK,GDQpB,ICPU,GAEX,CAACN,EDKA,KCLgB,EDEGQ,EAAqB,CAACC,EAAGC,KAC7CtB,EAAcsB,GACdd,EAAQc,EAAW,IAOrB,OAJAR,EAAAA,EAAAA,YAAU,KACRR,EAAoBS,QAAUZ,CAAgB,GAC7C,CAACA,KAGF,SAACoB,EAAAA,GAAiBA,IAAKxB,E,SACpB,EAAGyB,UAAS1E,QAAO8B,Y,IACYA,EAA9B,MAAMM,GAAUpD,aAAAA,EAAAA,EAAOiD,OAAqB,QAAdH,EAAAA,aAAAA,EAAAA,EAAOM,eAAPN,IAAAA,EAAAA,EAAuB,GACrD,IAAIK,EAAoB,G,IAUYnD,GAThCA,aAAAA,EAAAA,EAAOiD,OAA2B,IAAnBG,EAAQE,SACzBH,EAAU,CAAC,qBAETC,EAAQE,OAAS,IACnBH,EAAU,IACLC,EAAQ7C,KAAIyB,GAAUA,EAAOM,SAASlF,QACzC,GAAG4C,aAAAA,EAAAA,EAAOiD,SAGd,MAAMI,GJNmBsC,EIMsB,QAAX3F,EAAAA,aAAAA,EAAAA,EAAOiD,YAAPjD,IAAAA,EAAAA,EAAe,GJLlD,iBAAiB4F,mBAAmBD,MADb,IAACA,EIad3F,EALX,OACE,SAAC6F,EAAAA,EAAYA,CACXC,UAAQ,EACR3C,QAASA,EACTuC,QAASA,EACT5C,MAAkB,QAAX9C,EAAAA,aAAAA,EAAAA,EAAOiD,YAAPjD,IAAAA,EAAAA,EAAe,GACtB+F,eAAgBhE,GAAUA,QAAAA,EAAU,GACpC8C,cAAeA,EACfmB,kBAAmB,CAACT,EAAGxD,IACrBuC,EAAoBnB,EAAQ8C,QAAQlE,QAAAA,EAAU,KAEhDmE,gBAAiB,CACfC,MAAO,CACLnI,GAAI,CACFG,aAAc,MACdiI,QAAS,WAIfpI,GAAI,CACFC,MAAO,OACPoI,WACyB,SAAvBzB,EAAM9F,QAAQC,KAAkB,YAAc,YAChD,8CAA+C,CAC7CuH,YAAYtG,aAAAA,EAAAA,EAAOiD,MAAO,UAAY,UAExCsD,QAAS,QACTpI,aAAc,MACd,UAAW,CACTkI,WACyB,SAAvBzB,EAAM9F,QAAQC,KAAkB,YAAc,cAGpDyH,cAAeC,GAAKA,EACpBC,UAAWC,IACT,MAAMC,EAAmBpC,EAAoBS,QAC7C,GAAkB,UAAd0B,EAAME,IAAiB,CAEzB,GADAF,EAAMtH,kBACoB,IAAtBuH,IAA2B5G,aAAAA,EAAAA,EAAOiD,MACpCkB,EAASd,QACJ,IAA0B,IAAtBuD,EAAyB,C,IAEhCxD,EAAAA,EAAAA,EADFe,EAC+C,QAA7Cf,EAAyB,QAAzBA,EAAAA,EAAQiB,UAARjB,IAAAA,GAAmC,QAAnCA,EAAAA,EAA2Bd,gBAA3Bc,IAAAA,OAAAA,EAAAA,EAAqCb,gBAArCa,IAAAA,EAAAA,EAAiDC,EAErD,CACAiB,GAAqB,EACvB,GAEFwC,YAAa/F,IACX,SAACD,EAAWA,CACVC,OAAQA,EACRC,QAASA,EACTC,WAAYD,EAAQ,yBAA2B,KAGnD+F,aAAc,CAAC9E,EAAaF,GAAUtB,YACpC,SAACyC,EAAYA,CACXnB,OAAQA,EACRtB,MAAOA,EACP0C,QAASA,EACTnD,MAAOA,EACPoD,QAASA,EACTnB,YAAaA,EACboB,WAAYA,IAGhB2D,aAAc,CACZhJ,GAAI,CAAEiJ,UAAW,U,oBEjHxB,MAAMC,EAAkB,KAC7B,MAAOvB,EAAYzB,IAAiBK,EAAAA,EAAAA,UAAiB,IAErD,OACE,SAAC4C,EAAAA,GAAqBA,C,UACpB,SAAC9E,EAAAA,EAAGA,CAACzB,UAAU,MAAM5C,GAAI,CAAEC,MAAO,OAAQmJ,SAAU,Q,UAClD,SAACpD,EAASA,CAAChE,MAAO,CAAEiD,KAAM0C,GAAczB,cAAeA,O,mJCDlDmD,EAAwC,EAAGpJ,QAAOC,aAC7D,MAAM,QAAEoJ,EAAS5B,QAAS6B,IAAmBC,EAAAA,EAAAA,K,IAQhCF,EANb,OACE,qB,SACGC,GACC,SAACE,EAAAA,EAAQA,CAACrG,QAAQ,WAAWpD,GAAI,CAAEC,QAAOC,aAE1C,SAACwJ,EAAAA,EAAMA,CACLC,IAAoB,QAAfL,EAAAA,EAAQM,eAARN,IAAAA,EAAAA,EAAmBO,EACxB7J,GAAI,CAAEC,QAAOC,SAAQ4J,UAAW,SAChCC,IAAI,qB,uCChCP,MAAMC,EAAS,KACpB,MAAMC,GAAcvJ,EAAAA,EAAAA,QAAOwJ,EAAAA,gBAE3B,OACE,UAAC7F,EAAAA,EAAGA,CACFzB,UAAU,MACVxC,QAAS+J,gBACDF,EAAYG,SAAS,EAE7BpK,GAAI,CACF0F,QAAS,OACTC,WAAY,SACZ0E,eAAgB,c,WAGlB,SAACC,EAAAA,EAAYA,C,UACX,SAACC,EAAAA,EAAUA,CAAC1E,SAAS,YACR,Y,eCSrB,MAAM2E,EAA6C,EACjDC,cACAjL,OACAC,eAGE,SAACiL,EAAAA,EAAQA,CAACtK,QAASqK,E,UACjB,SAACnK,EAAAA,KAAIA,CAACC,GAAIf,E,UACR,SAAC6E,EAAAA,EAAGA,CACFzB,UAAU,MACV5C,GAAI,CACF0F,QAAS,OACTC,WAAY,SACZ0E,eAAgB,aAChB9B,QAAS,W,SAGV9I,QAOEkL,EAAsC,EACjDC,WACAC,SACAC,SACAL,kB,IAOEM,EAAAA,EALF,MAAMnE,GAAQ/F,EAAAA,EAAAA,MACR,YAAEmK,EAAW,kBAAEC,IAAsBzB,EAAAA,EAAAA,KACrC0B,GAAaxK,EAAAA,EAAAA,QAAOyK,EAAAA,G,IAGxBJ,EADF,MAAMK,EACoB,QAAxBL,EAAU,QAAVA,GAFarK,EAAAA,EAAAA,QAAO2K,EAAAA,cAEbC,WAAPP,IAAAA,GAAmB,QAAnBA,EAAAA,EAAYQ,eAAZR,IAAAA,OAAAA,EAAAA,EAAqBS,WAArBT,IAAAA,EAAAA,EAEA,uDAgCF,OA9BA/D,EAAAA,EAAAA,YAAU,KACgBmD,WACtB,IAAIsB,EACJ,IAME,OALIR,aAAAA,EAAAA,EAAmBS,iBACrBD,QAAqBP,EAAWS,eAC9BV,EAAkBS,gBAGfD,CACT,CAAE,MAAOG,GACP,OAAO,IACT,GAGFC,EAAiB,GAChB,CAACZ,EAAmBC,KAerB,UAACY,EAAAA,EAAIA,CACHlB,SAAUA,EACVmB,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChDC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,SAChDxK,GAAIoJ,EACJsB,aAAW,EACXC,KAAMtB,EACNuB,QAAS5B,EACT6B,UAAW,CACTnE,MAAO,CACLnI,GAAI,CACFC,MAAO,IACPE,aAAc,EACdoM,GAAI,GACJC,IAAK,GACLC,UAAW,EACXpE,WAAY,GAAGzB,EAAM9F,QAAQuH,WAAWqE,qBACxC7I,OAAQ,aAAa+C,EAAM9F,QAAQ6L,KAAK,U,WAM9C,UAACtI,EAAAA,EAAGA,CACFrE,GAAI,CAAE4M,GAAI,EAAGjI,GAAI,IAAKe,QAAS,OAAQC,WAAY,SAAUkH,IAAK,K,WAElE,SAACxD,EAAUA,CAAAA,IACX,UAAChF,EAAAA,EAAGA,C,WACF,SAAC1B,EAAAA,EAAUA,CAACS,QAAQ,Y,SAzCD,MACzB,MAAM0J,EAAO9B,EAEb,MADc,wBACJtI,KAAKoK,GACNA,EACJC,OAAOD,EAAK7E,QAAQ,KAAO,GAC3B+E,kBAAkB,SAClBC,OAAOH,EAAKI,UAAUJ,EAAK7E,QAAQ,KAAO,IAExC6E,CAAI,EAgC4BK,MACjC,SAACC,EAAAA,EAAIA,CACHxN,KAAK,QACLwD,QAAQ,WACR/D,MAAO4L,aAAAA,EAAAA,EAAmBoC,oBAAoB,GAAG/K,MAAM,KAAK,YAKlE,SAACiD,EAAAA,EAAOA,CAAAA,IAGR,SAACiF,EAAAA,CAAkBC,YAAaA,EAAajL,KAAM4L,E,UACjD,sB,WACE,SAACd,EAAAA,EAAYA,C,UACX,SAACgD,EAAAA,EAAeA,CAACzH,SAAS,YACb,aAKnB,SAAC2E,EAAAA,CAAkBC,YAAaA,EAAajL,KAAK,Y,UAChD,sB,WACE,SAAC8K,EAAAA,EAAYA,C,UACX,SAACiD,EAAAA,EAAYA,CAAC1H,SAAS,YACV,iBAInB,SAACN,EAAAA,EAAOA,CAAAA,IAGR,SAACmF,EAAAA,EAAQA,C,UACP,SAACV,EAAMA,CAAAA,O,yFC/If,MAEawD,GAAgB,K,IAyCR1I,EAxCnB,MAAO2I,IAAclH,EAAAA,EAAAA,WAA8B,IAC5CmH,IAASnH,EAAAA,EAAAA,eAA8B5E,IACvCgM,IAAYpH,EAAAA,EAAAA,UAA+B,QAC3CqH,IAASrH,EAAAA,EAAAA,aAEV,WAAEsH,IAAeC,EAAAA,GAAAA,GAAU,kBAE3B,MAAE9K,EAAK,MAAE8B,EAAK,MAAEiJ,EAAK,QAAErG,IAAYsG,EAAAA,GAAAA,IAGvCC,IACE,MAAM9I,EAAmC,CACvC+I,gBAAiBP,GAanB,YAVmBhM,IAAf8L,IACFtI,EAAQgJ,MAAQV,QAEJ9L,IAAV+L,IACFvI,EAAQuI,MAAQA,QAEJ/L,IAAViM,IACFzI,EAAQyI,MAAQA,GAGXQ,QAAQC,IAAI,CACjBJ,EAAIK,iBAAiBnJ,GACrB8I,EAAIM,YACJN,EAAIO,UAAUrJ,IACd,GAEJ,CAACsI,EAAYE,EAAUD,EAAOE,IAG1Ba,GAAiBC,EAAAA,EAAAA,UACrB,IAAMC,MAAS,IAAMZ,KAtCD,MAwCpB,I,IAGiBjJ,EAAnB,MAAM8J,EAA+B,QAAlB9J,EAAAA,SAAU,QAAVA,EAAAA,EAAQ,UAARA,IAAAA,OAAAA,EAAAA,EAAY+J,cAAZ/J,IAAAA,EAAAA,EAAsB,EAQzC,OANAkC,EAAAA,EAAAA,YAAU,MACJ6G,aAAAA,EAAAA,EAAYiB,SACdL,GACF,GACC,CAACZ,EAAYY,KAGd,SAACtP,EAAmBA,CAClBC,MAAM,gBACNC,MAAO,WAAWuP,2BAClBtP,MAAM,UACNE,KAAK,iB,UAEL,SAACuP,GAAAA,EAAKA,CACJC,aAAcJ,EACdtP,MAAM,QACN2P,UAAWvH,KAAa1E,GAAwB,IAAf4L,E,SAEhClH,GACC,SAACwH,GAAAA,EAAgBA,CAACtP,KAAM,GAAIN,MAAM,aAElC,SAAC6P,GAAAA,EAAiBA,CAAAA,M,EC9EfC,GAAkC,EAAGC,qBAE9C,SAAClQ,EAAmBA,CAClBC,MAAM,GACNC,MAAM,eACNE,YAAa8P,EACb/P,MAAM,U,UAEN,SAAC+J,EAAUA,CAACpJ,MAAM,OAAOC,OAAO,WCHzBoP,GAAkB,KAC7B,MAAM1I,GAAQ/F,EAAAA,EAAAA,MACP0O,EAAiBC,GACtBC,EAAAA,SAAmC,MAE/BC,EAAoBC,QAAQJ,GAUlC,OACE,UAAClL,EAAAA,EAAGA,CAACrE,GAAI,CAAEgF,SAAU,EAAGvB,SAAU,Y,WAChC,SAACmM,EAAAA,EAAMA,CACLnM,SAAS,SACTb,UAAU,MACVe,MAAO,CAAEkM,OAAQjJ,EAAMiJ,OAAOC,OAAS,G,UAEvC,UAACC,EAAAA,EAAOA,C,WACN,SAAC7G,EAAeA,CAAAA,IAChB,SAAC7E,EAAAA,EAAGA,CAACrE,GAAI,CAAEgF,SAAU,MACrB,UAACX,EAAAA,EAAGA,CACFrE,GAAI,CACF0F,QAAS,CACPsK,GAAI,OACJC,GAAI,OACJtK,WAAY,SACZkH,IAAK,U,WAIT,SAACW,GAAaA,CAAAA,IACd,SAAChN,EAAWA,CAAAA,IACZ,SAAC4O,GAAOA,CAACC,eA9BY1G,IAC7B6G,EAAmB7G,EAAMuH,cAAc,aAmCrC,SAACvF,EAASA,CACRC,SAAU2E,EACV1E,OAAO,eACPC,OAAQ4E,EACRjF,YApCyB,KAC7B+E,EAAmB,KAAK,M,sCCdfW,GAAe,K,IAQpBC,EAAAA,EAAAA,EAAAA,EAGAA,EAAAA,EAAAA,EAAAA,EAGAA,EAAAA,EAAAA,EAAAA,EAGAA,EAAAA,EAAAA,EAAAA,EAhBN,MAAO1I,EAAS2I,IAAc9J,EAAAA,EAAAA,WAAkB,IAC1C,YAAEyE,IAAgBxB,EAAAA,EAAAA,KAClB5C,GAAQ/F,EAAAA,EAAAA,KACRD,EAAoC,SAAvBgG,EAAM9F,QAAQC,KAC3BqP,GAAY1P,EAAAA,EAAAA,QAAO2K,EAAAA,c,IAEtBzK,EADH,MAAM0P,EAKmD,QAJtD1P,EAAAA,EACgB,QAAbwP,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAoC,QAApCA,EAAAA,EAAgCI,YAAhCJ,IAAAA,OAAAA,EAAAA,EAAsCK,aAGzB,QAAbL,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAqC,QAArCA,EAAAA,EAAgCM,aAAhCN,IAAAA,OAAAA,EAAAA,EAAuCK,oBAJ1C7P,IAAAA,EAAAA,EAI2D,U,IAE3DA,EADH,MAAM+P,EAKmD,QAJtD/P,EAAAA,EACgB,QAAbwP,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAoC,QAApCA,EAAAA,EAAgCI,YAAhCJ,IAAAA,OAAAA,EAAAA,EAAsCQ,aAGzB,QAAbR,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAqC,QAArCA,EAAAA,EAAgCM,aAAhCN,IAAAA,OAAAA,EAAAA,EAAuCQ,oBAJ1ChQ,IAAAA,EAAAA,EAI2D,UAmB9D,OALAoG,EAAAA,EAAAA,YAAU,KACRqJ,GAAW,GACXhJ,YAAW,IAAMgJ,GAAW,IAAQ,IAAK,GACxC,KAGD,UAAChM,EAAAA,EAAGA,CACFrE,GAAI,CACFqI,WAAY,0BAA0BiI,SAAcK,UACpD1Q,MAAO,OACP4Q,UAAW,QACXnL,QAAS,OACTC,WAAY,SACZ0E,eAAgB,SAChB5G,SAAU,WACVqN,SAAU,SACV,CAAClK,EAAMmK,YAAYC,KAAK,OAAQ,CAC9B9Q,OAAQ,QACRqI,QAAS,W,WAIb,UAAClE,EAAAA,EAAGA,CACFrE,GAAI,CACFC,MAAO,MACPgR,OAAQ,OACRvL,QAAS,OACTC,WAAY,SACZkH,IAAK,OACL,CAACjG,EAAMmK,YAAYC,KAAK,OAAQ,CAC9BE,cAAe,SACf3I,QAAS,W,WAIb,SAAClE,EAAAA,EAAGA,C,UACF,SAACgF,EAAUA,CAACpJ,MAAM,QAAQC,OAAO,aAEnC,UAACmE,EAAAA,EAAGA,CACFrE,GAAI,CACF,CAAC4G,EAAMmK,YAAYC,KAAK,OAAQ,CAC9BG,UAAW,SACX7R,MAAOsH,EAAM9F,QAAQ6L,KAAK,KAC1BvD,SAAU,S,WAId,UAACzG,EAAAA,EAAUA,CAACS,QAAQ,K,UAAK,eAEtBsE,GACC,SAAC+B,EAAAA,EAAQA,CACPrG,QAAQ,cACRnD,MAAO,IACPC,OAAQ,GACRyD,MAAO,CAAE+B,QAAS,aAGpB,sB,UAAE,KArEa,MACzB,MAAMoH,EAAO9B,EAEb,MADc,wBACJtI,KAAKoK,GACNA,EACJC,OAAOD,EAAK7E,QAAQ,KAAO,GAC3B+E,kBAAkB,SAClBC,OAAOH,EAAKI,UAAUJ,EAAK7E,QAAQ,KAAO,IAExC6E,CAAI,EA4DIK,GAAqB,SACzB,QAEL,SAACxK,EAAAA,EAAUA,CAACS,QAAQ,K,SAAK,8BAG7B,SAACgO,MAAAA,CACCzH,IAAK0H,GACLtH,IAAI,GACJpG,MAAO,CACL1D,MAAO,OACPC,OAAQ,QACR4J,UAAW,QACXrG,SAAU,WACV6N,IAAK,OACLC,KAAM,IACNC,QAAS,W,0CChHnB,MAwEA,GAxEsB,KACpB,MAAM5K,GAAQ/F,EAAAA,EAAAA,KACd,OACE,SAAC4Q,MAAAA,CACCvR,OAAO,OACPD,MAAM,OACNyR,QAAQ,MACRjQ,GAAG,SACHkQ,MAAM,6BACNC,WAAW,+BACXC,QAAQ,sBACRC,SAAS,WACTnO,MAAO,CAAEc,OAAQ,Y,UAEjB,UAACsN,IAAAA,C,WACC,SAACA,IAAAA,C,UACC,UAACA,IAAAA,C,WACC,SAACC,SAAAA,CACCrO,MAAO,CAAEsO,KAAMrL,EAAM9F,QAAQ6L,KAAK,MAClCuF,GAAG,UACHC,GAAG,SACHpM,EAAE,YAEJ,SAACqM,OAAAA,CACCzO,MAAO,CAAEsO,KAAMrL,EAAM9F,QAAQ6L,KAAK,MAClC0F,EAAE,+oCAaJ,SAACL,SAAAA,CACCrO,MAAO,CAAEsO,KAAMrL,EAAM9F,QAAQ6L,KAAK,MAClCuF,GAAG,UACHC,GAAG,UACHpM,EAAE,YAEJ,SAACqM,OAAAA,CACCzO,MAAO,CAAEsO,KAAMrL,EAAM9F,QAAQ6L,KAAK,MAClC0F,EAAE,6MAMR,SAACN,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,IACD,SAACA,IAAAA,CAAAA,O,EC7CT,GArBiB,KACf,MAAMnL,GAAQ/F,EAAAA,EAAAA,KACd,OACE,SAAC4Q,MAAAA,CACCxR,MAAM,OACNC,OAAO,OACP2R,QAAQ,YACRF,MAAM,6BACNM,KAAK,OACLtO,MAAO,CAAEc,OAAQ,Y,UAEjB,SAAC2N,OAAAA,CACCH,KAAMrL,EAAM9F,QAAQ6L,KAAK,KACzB2F,YAAU,UACVD,EAAE,sQACFE,YAAU,a,ECIlB,GAnBoB,KAClB,MAAM3L,GAAQ/F,EAAAA,EAAAA,KACd,OACE,UAAC4Q,MAAAA,CACCxR,MAAM,OACNC,OAAO,OACP2R,QAAQ,YACRF,MAAM,6BACNhO,MAAO,CAAEc,OAAQ,Y,WAEjB,SAAC+N,OAAAA,CAAK/J,EAAE,IAAIwJ,KAAK,OAAOhS,MAAM,KAAKC,OAAO,QAE1C,SAAC6R,IAAAA,CAAEE,KAAMrL,EAAM9F,QAAQ6L,KAAK,K,UAC1B,SAACyF,OAAAA,CAAKC,EAAE,utB,ECOhB,GApBoB,KAClB,MAAMzL,GAAQ/F,EAAAA,EAAAA,KACd,OACE,UAAC4Q,MAAAA,CACCxR,MAAM,OACNC,OAAO,OACP2R,QAAQ,YACRF,MAAM,6BACNhO,MAAO,CAAEc,OAAQ,Y,WAEjB,SAACrF,QAAAA,C,SAAM,aACP,SAACoT,OAAAA,CAAKvS,MAAM,KAAKC,OAAO,KAAK+R,KAAK,UAClC,SAACG,OAAAA,CACCH,KAAMrL,EAAM9F,QAAQ6L,KAAK,KACzB0F,EAAE,qT,sKC8CH,SAASI,GACdC,EAAqB,YACrBC,EACAC,EAAiB,GACjBC,EAAe,IAEf,MAAM,EAAEC,EAAC,EAAEC,GA/BN,SAAoBzT,GACzB,MAAM0T,EAAM1O,SAAS2O,cAAc,UAAUC,WAAW,MACxD,IAAKF,EAAK,MAAM,IAAIG,MAAM,wBAG1BH,EAAII,UAAY9T,EAChB,MAEM+T,EAFWL,EAAII,UAEAlR,QAAQ,KAAM,IAC7BoR,EACW,IAAfD,EAAI/N,OACA+N,EACG/Q,MAAM,IACNC,KAAIgR,GAAKA,EAAIA,IACbC,KAAK,IACRH,EAEAI,EAASC,SAASJ,EAAe,IAKvC,OA3DF,SACEK,EACAC,EACAC,GAEA,MAAM9N,EAAI4N,EAAS,IACb5B,EAAI6B,EAAS,IACbE,EAAID,EAAS,IAEbE,EAAMC,KAAKD,IAAIhO,EAAGgM,EAAG+B,GACrBG,EAAMD,KAAKC,IAAIlO,EAAGgM,EAAG+B,GACrBI,GAAKH,EAAME,GAAO,EACxB,IAAInB,EAAI,EACJC,EAAI,EAER,GAAIgB,IAAQE,EAAK,CACf,MAAM5B,EAAI0B,EAAME,EAChBlB,EAAImB,EAAI,GAAM7B,GAAK,EAAI0B,EAAME,GAAO5B,GAAK0B,EAAME,GAG7CnB,EADEiB,IAAQhO,GACLgM,EAAI+B,GAAKzB,GAAKN,EAAI+B,EAAI,EAAI,GACtBC,IAAQhC,GACZ+B,EAAI/N,GAAKsM,EAAI,GAEbtM,EAAIgM,GAAKM,EAAI,EAGpBS,GAAK,EACP,CAEA,MAAO,CACLA,EAAGkB,KAAKG,MAAMrB,GACdC,EAAGiB,KAAKG,MAAU,IAAJpB,GACdmB,EAAGF,KAAKG,MAAU,IAAJD,GAElB,CAwBSE,CAJG,GAAW,GAAM,IACjB,GAAW,EAAK,IACP,IAATX,EAGZ,CAQmBY,CAAW3B,GACtB4B,GAAQ1B,EAAiBC,GAAgBmB,KAAKD,IAAIpB,EAAQ,EAAG,GAEnE,OAAO4B,MAAMC,KAAK,CAAElP,OAAQqN,IAAS,CAACpL,EAAGkN,IAEhC,OAAO3B,MAAMC,OADVH,EAAiB6B,EAAIH,OAGnC,C,gBCtDA,MAAMI,IAAaC,EAAAA,GAAAA,IAAO,OAAQ,CAChCC,kBAAmBC,GAAiB,YAATA,GADVF,EAEC,EAAG/N,YAAa,CAClCkO,WAAY,SACZC,iBAAkB,UAClB9C,KAAMrL,EAAM9F,QAAQiB,KAAKiT,UACzBC,SAAU,CACR,CACEhP,MAAO,CACL7C,QAAS,WAEXO,MAAO,CACLkC,SAAUe,EAAMsO,WAAWC,GAAGtP,WAGlC,CACEI,MAAO,EAAG7C,aAA0B,YAAZA,EACxBO,MAAO,CACLkC,SAAUe,EAAMsO,WAAWE,MAAMvP,WAGrC,CACEI,MAAO,CACL7C,QAAS,WAEXO,MAAO,CACLd,WAAY+D,EAAMsO,WAAWC,GAAGtS,aAGpC,CACEoD,MAAO,EAAG7C,aAA0B,YAAZA,EACxBO,MAAO,CACLd,WAAY+D,EAAMsO,WAAWE,MAAMvS,kBAW3C,SAASwS,IAAe,YAAEC,EAAW,cAAEC,IACrC,MAAM,MAAEtV,EAAK,OAAEC,EAAM,KAAEqR,EAAI,IAAED,IAAQkE,EAAAA,GAAAA,KAC/BC,EAAWnE,EAAMpR,EAAS,EAAI,GAC9BwV,EAAaD,EAAW,GAE9B,OACE,UAAChG,EAAAA,SAAc,C,WACb,SAACiF,GAAAA,CAAWtR,QAAQ,UAAUqF,EAAG8I,EAAOtR,EAAQ,EAAG0V,EAAGF,E,SACnDH,KAEH,SAACZ,GAAAA,CAAWtR,QAAQ,YAAYqF,EAAG8I,EAAOtR,EAAQ,EAAG0V,EAAGD,E,SACrDH,MAIT,CAEe,SAASK,K,IAOhBxF,EAAAA,EAAAA,EAAAA,EAGAA,EAAAA,EAAAA,EAAAA,EATN,MAAM,MAAEyF,EAAK,MAAEC,EAAK,OAAEC,GC5DE,MACxB,MAAMC,GAAgBtV,EAAAA,EAAAA,QAAOuV,GAAAA,IAEvB,MAAEnR,EAAK,QAAE4C,EAAO,MAAE1E,IAAUkT,EAAAA,GAAAA,IAAS/L,UACzC,MAAMgM,QAAcH,EAAcI,OAYlC,MAAO,CACLP,MAZYM,EAAKE,QAAO,CAACC,EAAKC,IAASD,EAAMC,EAAKC,MAAM,GAaxDV,MAZYK,EAAK5T,KAAIkU,IAAU,CAC/BpX,MAAOoX,EAAM3J,KACbhI,MAAO2R,EAAMD,SAWbT,OATaI,EAAK5T,KAAIkU,IAAU,CAChChV,GAAIgV,EAAMhV,GACVqL,KAAM2J,EAAM3J,KACZsF,KAAMqE,EAAMC,SACZF,KAAMC,EAAMD,SAMb,GACA,I,IAKM1R,EACAA,EACCA,EALV,MAAO,CACL4C,UACA1E,QACA6S,MAAmB,QAAZ/Q,EAAAA,aAAAA,EAAAA,EAAO+Q,aAAP/Q,IAAAA,EAAAA,EAAgB,EACvBgR,MAAmB,QAAZhR,EAAAA,aAAAA,EAAAA,EAAOgR,aAAPhR,IAAAA,EAAAA,EAAgB,GACvBiR,OAAqB,QAAbjR,EAAAA,aAAAA,EAAAA,EAAOiR,cAAPjR,IAAAA,EAAAA,EAAiB,GAC1B,ED+BgC6R,GAC3B/P,GAAQ/F,EAAAA,EAAAA,KACRD,EAAoC,SAAvBgG,EAAM9F,QAAQC,KAC3BqP,GAAY1P,EAAAA,EAAAA,QAAO2K,EAAAA,c,IAEtBzK,EADH,MAMMgW,EAASnE,GAD0C,QAJtD7R,EAAAA,EACgB,QAAbwP,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAoC,QAApCA,EAAAA,EAAgCI,YAAhCJ,IAAAA,OAAAA,EAAAA,EAAsCK,aAGzB,QAAbL,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAqC,QAArCA,EAAAA,EAAgCM,aAAhCN,IAAAA,OAAAA,EAAAA,EAAuCK,oBAJ1C7P,IAAAA,EAAAA,EAI2D,UAClBkV,EAAMxQ,QAC5CuR,EAAoB/R,GAEjBgS,QADShS,GAAS+Q,EAAQ,MACXkB,QAAQ,IAGhC,OACE,UAACC,GAAAA,EAAIA,CACH5T,QAAQ,WACRpD,GAAI,CACF0F,QAAS,OACTwL,cAAe,SACfrE,IAAK,MACL7H,SAAU,EACViE,UAAW,QACXgO,UAAW,Q,WAGb,SAACC,GAAAA,EAAUA,CAAC9X,MAAM,iBAClB,SAACmG,EAAAA,EAAOA,CAAAA,IACR,SAAC4R,GAAAA,EAAWA,C,UACV,SAAC9S,EAAAA,EAAGA,CAACrE,GAAI,CAAE0F,QAAS,OAAQC,WAAY,U,UACtC,SAACyR,GAAAA,EAAQA,CACPR,OAAQA,EACR3F,OAAQ,CACNM,KAAM,GACN8F,MAAO,GACP/F,IAAK,GACLgG,OAAQ,IAEVC,OAAQ,CACN,CACEpB,KAAML,EACN0B,YAAa,GACbC,YAAa,IACbC,aAAc,EACdC,eAAgB,CAAEC,KAAM,SAAUC,UAAW,UAGjD3X,OAAQ,IACRD,MAAO,IACP6X,YAAU,E,UAEV,SAACzC,GAAAA,CAAeC,YAAa,GAAGO,IAASN,cAAc,iBAI7D,SAAClR,EAAAA,EAAGA,CACFrE,GAAI,CAAEuI,QAAS,OAAQF,WAAYzB,EAAM9F,QAAQuH,WAAWqE,S,SAE3DqJ,EAAOxT,KAAIkU,IACV,UAACsB,GAAAA,EAAKA,CAEJC,UAAU,MACVhY,GAAI,CAAE2F,WAAY,SAAUkH,IAAK,EAAGoL,GAAI,G,WAExC,SAACC,GAAAA,EAAeA,CAAAA,IAChB,UAACH,GAAAA,EAAKA,CAAC/X,GAAI,CAAE6M,IAAK,EAAG7H,SAAU,G,WAC7B,UAAC+S,GAAAA,EAAKA,CACJC,UAAU,MACVhY,GAAI,CACFqK,eAAgB,gBAChB1E,WAAY,SACZkH,IAAK,G,WAGP,SAAClK,EAAAA,EAAUA,CAACS,QAAQ,QAAQpD,GAAI,CAAE6C,WAAY,O,SAC3C4T,EAAM3J,QAET,UAACnK,EAAAA,EAAUA,CAACS,QAAQ,QAAQpD,GAAI,CAAEV,MAAO,kB,UACtCuX,EAAiBJ,EAAMD,MAAM,WAGlC,SAAC2B,GAAAA,EAAcA,CACb/U,QAAQ,cACRvD,aAAW,6BACXiF,MAAO+R,EAAiBJ,EAAMD,aAxB7BC,EAAMhV,UAgCvB,C,gBElKe,SAAS2W,IACtBC,KAAMC,EAAI,MACVlZ,EAAK,MACL0F,EAAK,MACLxF,IAEA,OACE,SAAC0X,GAAAA,EAAIA,CACH5T,QAAQ,WACRpD,GAAI,CACFC,MAAO,OACPC,OAAQ,OACR8E,SAAU,EACVqD,YAAYkQ,EAAAA,GAAAA,OAAMjZ,EAAO,M,UAG3B,UAAC6X,GAAAA,EAAWA,C,WACV,UAAC9S,EAAAA,EAAGA,CACFzB,UAAU,MACV5C,GAAI,CACF0F,QAAS,OACTmH,IAAK,QACLtE,QAAS,W,WAGX,SAAC+P,EAAAA,CAAKhZ,MAAM,YAAYqE,MAAO,CAAEkC,SAAU,WAC3C,SAAClD,EAAAA,EAAUA,CAACC,UAAU,KAAKQ,QAAQ,YAAYoV,cAAY,E,SACxDpZ,QAIL,SAAC2Y,GAAAA,EAAKA,CACJC,UAAU,MACVhY,GAAI,CACFqK,eAAgB,gBAChB1E,WAAY,U,UAGd,SAAChD,EAAAA,EAAUA,CACTS,QAAQ,KACRR,UAAU,MACV5C,GAAI,CACFC,MAAO,OACPkR,UAAW,QACX5I,QAAS,W,SAGVzD,UAMb,C,wCC1De,SAAS2T,KACtB,MAAM7R,GAAQ/F,EAAAA,EAAAA,KACd,OACE,SAACmW,GAAAA,EAAIA,CACH5T,QAAQ,WACRpD,GAAI,CACFC,MAAO,OACPC,OAAQ,OACR8E,SAAU,EACVnB,OAAQ,wBACR,CAAC+C,EAAMmK,YAAY2H,KAAK,OAAQ,CAC9BrO,eAAgB,SAChBhC,WAAYzB,EAAM9F,QAAQuH,WAAWqE,U,UAIzC,UAACyK,GAAAA,EAAWA,C,WACV,UAAC9S,EAAAA,EAAGA,CACFzB,UAAU,MACV5C,GAAI,CACF0F,QAAS,OACTmH,IAAK,QACLtE,QAAS,UACT,CAAC3B,EAAMmK,YAAY2H,KAAK,OAAQ,CAC9BrO,eAAgB,W,WAIpB,SAACsO,GAAAA,EAAmBA,CAACrZ,MAAM,aAC3B,SAACqD,EAAAA,EAAUA,CACTC,UAAU,KACVQ,QAAQ,YACRoV,cAAY,EACZxY,GAAI,CAAE6C,WAAY,O,SACnB,yBAIH,SAACwB,EAAAA,EAAGA,CACFrE,GAAI,CACF,CAAC4G,EAAMmK,YAAY2H,KAAK,OAAQ,CAC9BvH,UAAW,W,UAIf,UAACyH,GAAAA,EAAUA,CAACxV,QAAQ,YAAY7C,GAAG,U,UAChC,KACD,SAACsY,GAAAA,EAAOA,CAAAA,GAAG,mBAMvB,C,uCC/Ce,SAASC,K,IA0BhB1I,EAAAA,EAAAA,EAAAA,EAGAA,EAAAA,EAAAA,EAAAA,EA5BN,MAAM,UAAE2I,EAAS,KAAEC,EAAI,WAAEC,GCSD,MACxB,MAAMC,GAAgBxY,EAAAA,EAAAA,QAAOyK,EAAAA,IAEvB,MAAErG,EAAK,QAAE4C,EAAO,MAAE1E,IACtBkT,EAAAA,GAAAA,IAAS/L,UACP,MAAMgP,QACGD,EAAcE,cAiBvB,MAAO,CACLL,UAhBgBI,EAASrD,MAAMuD,QAC/B9C,GACoC,QAAlCA,EAAK+C,KAAKC,qBACwB,cAAlChD,EAAK+C,KAAKC,qBACwB,UAAlChD,EAAK+C,KAAKC,qBACwB,SAAlChD,EAAK+C,KAAKC,qBACwB,aAAlChD,EAAK+C,KAAKC,sBAWZP,KATWG,EAASrD,MAAMuD,QAC1B9C,GAA0C,QAAlCA,EAAK+C,KAAKC,sBASlBN,WAPiBE,EAASrD,MAAMuD,QAChC9C,GAA0C,cAAlCA,EAAK+C,KAAKC,sBAOnB,GACA,I,IAKQzU,EACLA,EACMA,EALd,MAAO,CACL4C,UACA1E,QACA+V,UAA2B,QAAhBjU,EAAAA,aAAAA,EAAAA,EAAOiU,iBAAPjU,IAAAA,EAAAA,EAAoB,GAC/BkU,KAAiB,QAAXlU,EAAAA,aAAAA,EAAAA,EAAOkU,YAAPlU,IAAAA,EAAAA,EAAe,GACrBmU,WAA6B,QAAjBnU,EAAAA,aAAAA,EAAAA,EAAOmU,kBAAPnU,IAAAA,EAAAA,EAAqB,GAClC,ED7CuC0U,GAClC5S,GAAQ/F,EAAAA,EAAAA,KACRD,EAAoC,SAAvBgG,EAAM9F,QAAQC,KAC3BqP,GAAY1P,EAAAA,EAAAA,QAAO2K,EAAAA,cAEnB8K,EAAO,CACX,CACEkC,KAAMoB,GAAAA,EACNra,MAAO,YACP0F,MAAOiU,EAAUzT,OAAOoU,YAE1B,CACErB,KAAMsB,GAAAA,EACNva,MAAO,aACP0F,MAAOmU,EAAW3T,OAAOoU,YAE3B,CACErB,KAAMuB,GAAAA,EACNxa,MAAO,OACP0F,MAAOkU,EAAK1T,OAAOoU,a,IAKpB9Y,EADH,MAMMgW,EAASnE,GAD0C,QAJtD7R,EAAAA,EACgB,QAAbwP,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAoC,QAApCA,EAAAA,EAAgCI,YAAhCJ,IAAAA,OAAAA,EAAAA,EAAsCK,aAGzB,QAAbL,EAAAA,EAAU9E,WAAV8E,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeG,gBAAfH,IAAAA,GAA8B,QAA9BA,EAAAA,EAAyBxJ,aAAzBwJ,IAAAA,GAAqC,QAArCA,EAAAA,EAAgCM,aAAhCN,IAAAA,OAAAA,EAAAA,EAAuCK,oBAJ1C7P,IAAAA,EAAAA,EAI2D,UAClBuV,EAAK7Q,QAEjD,OACE,UAAC0R,GAAAA,EAAIA,CACH5T,QAAQ,WACRpD,GAAI,CACF0F,QAAS,OACTwL,cAAe,SACfrE,IAAK,MACL7H,SAAU,EACViS,UAAW,Q,WAGb,SAACC,GAAAA,EAAUA,CAAC9X,MAAM,aAClB,SAACmG,EAAAA,EAAOA,CAAAA,IACR,SAAC4R,GAAAA,EAAWA,C,UACV,UAAC9S,EAAAA,EAAGA,CACFrE,GAAI,CACF0F,QAAS,OACTC,WAAY,SACZkH,IAAK,OACLgN,oBAAqB,gBACrB,CAACjT,EAAMmK,YAAY2H,KAAK,OAAQ,CAC9BmB,oBAAqB,Q,UAIxB1D,EAAK5T,KAAI,CAACuX,EAAMrX,KACf,SAAC2V,GAAQA,IAAiB0B,EAAMxa,MAAOsX,EAAOnU,IAA/BA,MAEjB,SAACgW,GAAeA,CAAAA,UAK1B,CE7DO,MAAMsB,GAAc,KACzB,MAAMC,EAAQ,CACZ,CACExO,IAAK,mCACLnM,MAAO,OACPgZ,MAAM,SAAC4B,GAAQA,CAAAA,IAEjB,CACEzO,IAAK,uDACLnM,MAAO,YACPgZ,MAAM,SAAC6B,GAAaA,CAAAA,IAEtB,CACE1O,IAAK,8BACLnM,MAAO,UACPgZ,MAAM,SAAC8B,GAAWA,CAAAA,IAEpB,CACE3O,IAAK,sDACLnM,MAAO,UACPgZ,MAAM,SAAC+B,GAAWA,CAAAA,KAItB,OACE,SAACjR,EAAAA,GAAqBA,C,UACpB,SAACkR,GAAAA,EAAOA,CAACC,SAAO,E,UACd,UAACC,GAAAA,GAAIA,CAACC,WAAS,EAACC,QAAS,EAAGpQ,eAAe,S,WAEzC,SAACkQ,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,G,UACb,UAACuK,GAAAA,GAAIA,CAACC,WAAS,EAACC,QAAS,E,WACvB,SAACF,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIC,GAAI,EAAGyK,GAAI,E,UAC5B,UAACH,GAAAA,GAAIA,CAACC,WAAS,EAACC,QAAS,EAAGpQ,eAAe,S,WACzC,SAACkQ,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIC,GAAI,GAAIyK,GAAI,G,UAC7B,SAAC5B,GAAOA,CAAAA,MAEV,SAACyB,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIC,GAAI,GAAIyK,GAAI,G,UAC7B,SAACC,GAAAA,GAAuBA,CAAAA,MAE1B,SAACJ,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIC,GAAI,GAAIyK,GAAI,G,UAC7B,SAACE,GAAAA,GAAuBA,CAAAA,WAI9B,SAACL,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIC,GAAI,EAAGyK,GAAI,E,UAC5B,UAACH,GAAAA,GAAIA,CAACC,WAAS,EAACC,QAAS,EAAGpQ,eAAe,S,WACzC,SAACkQ,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIC,GAAI,GAAIyK,GAAI,G,UAC7B,SAACG,GAAYA,CAAAA,MAEf,SAACN,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIC,GAAI,GAAIyK,GAAI,G,UAC7B,SAACI,GAAAA,GAAeA,CAACd,MAAOA,iBAOlC,SAACO,GAAAA,GAAIA,CAAChE,MAAI,EAACvG,GAAI,GAAIhQ,GAAI,CAAE+a,UAAW,Q,UAClC,UAAC1W,EAAAA,EAAGA,CACFrE,GAAI,CACF0F,QAAS,OACTC,WAAY,SACZ0E,eAAgB,SAChBxE,SAAU,QACVgH,IAAK,Q,WAGP,SAAClK,EAAAA,EAAUA,CACT3C,GAAI,CACF6F,SAAU,QACVhD,WAAY,Q,SAEf,gBAGD,SAACuO,MAAAA,CACCzH,IAAKqR,GACLjR,IAAI,iBACJpG,MAAO,CAAE1D,MAAO,QAASC,OAAQ,sB,kBC3FjD,MAAM+a,IAA2BC,EAAAA,EAAAA,IAAWtU,IAAU,CACpDuU,SAAU,CACRzV,QAAS,OACTwL,cAAe,SACfkK,gBAAiBxU,EAAM9F,QAAQuH,WAAWqE,aAIjC2O,GAAkB,KAC7B,MAAM,SAAEF,GAAaF,KACrB,OACE,UAACK,GAAAA,EAAIA,CAACC,QAAQ,OAAO9V,UAAW0V,E,WAC9B,SAAC7L,GAAeA,CAAAA,IAChB,SAACa,GAAYA,CAAAA,IACb,SAAC4J,GAAWA,CAAAA,K","sources":["webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/iconButtonComponent/IconButtonComponent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/toggleTheme/ToggleTheme.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/utils/stringUtils.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchInput.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchResultItem.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchOption.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchBar.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/hooks/useDebouncedCallback.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchComponent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/userAvatar/UserAvatar.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/logout/Logout.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/menuItems/MenuItems.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/notifications/Notifications.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/profile/Profle.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/HeaderComponent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeGretting/HomeGretting.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Community.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Docs.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Website.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Support.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/utils/generateColor.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/VisitedCharts.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/hooks/useVisited.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/StatCards.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/HighLightedCard.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/Summary.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/hooks/useCatalog.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/HomeContent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/VeeCodeHomePage.tsx"],"sourcesContent":["import IconButton from '@mui/material/IconButton';\nimport Tooltip from '@mui/material/Tooltip';\nimport { Link } from 'react-router-dom';\nimport { ReactElement, MouseEvent } from 'react';\n\ninterface IconButtonProps {\n title: string;\n label: string;\n color: 'warning' | 'error' | 'inherit';\n handleClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n link?: string;\n children: ReactElement;\n}\n\nexport const IconButtonComponent: React.FC<IconButtonProps> = ({\n title,\n label,\n color,\n handleClick,\n link,\n children,\n}) => {\n const button = (\n <IconButton\n size=\"small\"\n aria-label={label}\n color={color}\n aria-controls={`${label}-menu`}\n aria-haspopup=\"true\"\n sx={{\n width: '42px',\n height: '42px',\n borderRadius: '50%',\n }}\n onClick={handleClick}\n >\n {children}\n </IconButton>\n );\n\n return (\n <Tooltip title={title}>\n {link ? <Link to={link}>{button}</Link> : button}\n </Tooltip>\n );\n};\n","import { useTheme } from '@mui/material/styles';\nimport LightModeOutlinedIcon from '@mui/icons-material/LightModeOutlined';\nimport DarkModeOutlinedIcon from '@mui/icons-material/DarkModeOutlined';\nimport { appThemeApiRef, useApi } from '@backstage/core-plugin-api';\nimport { IconButtonComponent } from '../iconButtonComponent/IconButtonComponent';\n\nexport const ToogleTheme = () => {\n const appThemeApi = useApi(appThemeApiRef);\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const tooltipTitle = isDarkMode\n ? 'Select theme Light Theme'\n : 'Select theme Dark Theme';\n const themeIds = appThemeApi.getInstalledThemes();\n\n const handleSetTheme = (\n e: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n ) => {\n const newThemeId = isDarkMode ? 'light' : 'dark';\n e.preventDefault();\n e.stopPropagation();\n if (themeIds.some(it => it.id === newThemeId)) {\n appThemeApi.setActiveThemeId(newThemeId);\n } else {\n appThemeApi.setActiveThemeId(undefined);\n }\n };\n\n return (\n <IconButtonComponent\n title={tooltipTitle}\n handleClick={handleSetTheme}\n color=\"inherit\"\n label=\"Toggle-theme\"\n >\n {isDarkMode ? <LightModeOutlinedIcon /> : <DarkModeOutlinedIcon />}\n </IconButtonComponent>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Typography from '@mui/material/Typography';\n\n/**\n * Highlights the substring that matches the query term.\n * @param text The full text to render.\n * @param query The query term to highlight.\n * @returns JSX.Element with highlighted matching substring.\n */\nexport const highlightMatch = (text: string, query: string) => {\n if (!query) return <>{text}</>;\n\n const escapeRegex = (input: string) =>\n input.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const escapedQuery = escapeRegex(query);\n\n const regex = new RegExp(`(${escapedQuery})`, 'i');\n const parts = text.split(regex);\n\n return (\n <>\n {parts.map((part, index) =>\n regex.test(part) ? (\n <Typography\n key={`${part}-${index}`}\n component=\"span\"\n sx={{ fontWeight: 'normal' }}\n >\n {part}\n </Typography>\n ) : (\n <Typography\n key={`${part}-${index}`}\n component=\"span\"\n sx={{ fontWeight: 'bold' }}\n >\n {part}\n </Typography>\n ),\n )}\n </>\n );\n};\n\nexport const createSearchLink = (searchTerm: string) => {\n return `/search?query=${encodeURIComponent(searchTerm)}`;\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport TextField from '@mui/material/TextField';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport SearchIcon from '@mui/icons-material/Search';\n\ninterface SearchInputProps {\n params: any;\n error: boolean;\n helperText: string;\n}\n\nexport const SearchInput = ({\n params,\n error,\n helperText,\n}: SearchInputProps) => (\n <TextField\n {...params}\n placeholder=\"Search...\"\n variant=\"standard\"\n error={error}\n helperText={helperText}\n InputProps={{\n ...params.InputProps,\n disableUnderline: true,\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon style={{ color: '#ffffff' }} />\n </InputAdornment>\n ),\n }}\n sx={{\n input: { color: '#CDCDCD' },\n button: { color: 'inherit' },\n '& fieldset': { border: 'none' },\n }}\n />\n);\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Link } from '@backstage/core-components';\nimport ListItem from '@mui/material/ListItem';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport { highlightMatch } from '../../../utils/stringUtils';\nimport { SearchResultProps } from '@backstage/plugin-search-react';\nimport { Result, SearchDocument } from '@backstage/plugin-search-common';\nimport { useAnalytics } from '@backstage/core-plugin-api';\n\ninterface SearchResultItemProps {\n option: string;\n query: SearchResultProps['query'];\n result: Result<SearchDocument> | undefined;\n renderProps: any;\n}\n\nexport const SearchResultItem = ({\n option,\n query,\n result,\n renderProps,\n}: SearchResultItemProps) => {\n const isNoResultsFound = option === 'No results found';\n const analytics = useAnalytics();\n\n return (\n <Box\n component={isNoResultsFound ? 'div' : Link}\n to={result?.document.location}\n underline=\"none\"\n sx={{ width: '100%', ...(isNoResultsFound ? {} : { cursor: 'pointer' }) }}\n >\n <ListItem\n {...renderProps}\n sx={{ py: 1 }}\n onClick={(e: any) => {\n analytics.captureEvent('discover', result?.document.title ?? '', {\n attributes: { to: result?.document.location ?? '#' },\n value: result?.rank,\n });\n renderProps?.onClick?.(e);\n }}\n >\n <Typography sx={{ color: 'text.primary', flexGrow: 1 }}>\n {isNoResultsFound\n ? option\n : highlightMatch(option, query?.term ?? '')}\n </Typography>\n </ListItem>\n </Box>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\nimport { Link } from '@backstage/core-components';\nimport ListItem from '@mui/material/ListItem';\nimport Typography from '@mui/material/Typography';\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\nimport { SearchResultItem } from './SearchResultItem';\nimport { Result, SearchDocument } from '@backstage/plugin-search-common';\nimport { SearchResultProps } from '@backstage/plugin-search-react';\n\ninterface SearchOptionProps {\n option: string;\n index: number;\n options: string[];\n query: SearchResultProps['query'];\n results: Result<SearchDocument>[];\n renderProps: any;\n searchLink: string;\n}\n\nexport const SearchOption = ({\n option,\n index,\n options,\n query,\n results,\n renderProps,\n searchLink,\n}: SearchOptionProps) => {\n if (option === query?.term && index === options.length - 1) {\n return (\n <Box key=\"all-results\" id=\"all-results\">\n <Divider sx={{ my: 0.5 }} />\n <Link to={searchLink} underline=\"none\">\n <ListItem\n {...renderProps}\n sx={{ my: 0 }}\n className=\"allResultsOption\"\n >\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Typography sx={{ flexGrow: 1 }}>All results</Typography>\n <ArrowForwardIcon fontSize=\"small\" />\n </Box>\n </ListItem>\n </Link>\n </Box>\n );\n }\n\n const result = results.find(r => r.document.title === option);\n return (\n <SearchResultItem\n key={index}\n option={option}\n query={query}\n result={result}\n renderProps={renderProps}\n />\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useRef, useState } from 'react';\nimport {\n SearchResultState,\n SearchResultProps,\n useSearch,\n} from '@backstage/plugin-search-react';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport { createSearchLink } from '../../../utils/stringUtils';\nimport { useNavigate } from 'react-router-dom';\nimport { SearchInput } from './SearchInput';\nimport { SearchOption } from './SearchOption';\nimport { useDebouncedCallback } from '../../../hooks/useDebouncedCallback';\nimport { useTheme } from '@mui/material/styles';\n\ninterface SearchBarProps {\n query: SearchResultProps['query'];\n setSearchTerm: (term: string) => void;\n}\nexport const SearchBar = (props: SearchBarProps) => {\n const { query, setSearchTerm } = props;\n const navigate = useNavigate();\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const highlightedIndexRef = useRef(highlightedIndex);\n const { setTerm } = useSearch();\n const theme = useTheme();\n\n const onInputChange = useDebouncedCallback((_, inputValue) => {\n setSearchTerm(inputValue);\n setTerm(inputValue);\n }, 300);\n\n useEffect(() => {\n highlightedIndexRef.current = highlightedIndex;\n }, [highlightedIndex]);\n\n return (\n <SearchResultState {...props}>\n {({ loading, error, value }) => {\n const results = query?.term ? value?.results ?? [] : [];\n let options: string[] = [];\n if (query?.term && results.length === 0) {\n options = ['No results found'];\n }\n if (results.length > 0) {\n options = [\n ...results.map(result => result.document.title),\n `${query?.term}`,\n ];\n }\n const searchLink = createSearchLink(query?.term ?? '');\n\n return (\n <Autocomplete\n freeSolo\n options={options}\n loading={loading}\n value={query?.term ?? ''}\n getOptionLabel={option => option ?? ''}\n onInputChange={onInputChange}\n onHighlightChange={(_, option) =>\n setHighlightedIndex(options.indexOf(option ?? ''))\n }\n componentsProps={{\n paper: {\n sx: {\n borderRadius: '4px',\n outline: 'unset',\n },\n },\n }}\n sx={{\n width: '100%',\n background:\n theme.palette.mode === 'dark' ? '#FFFFFF10' : '#CDCDCD10',\n '& [class*=\"MuiAutocomplete-clearIndicator\"]': {\n visibility: query?.term ? 'visible' : 'hidden',\n },\n padding: '.2rem',\n borderRadius: '8px',\n '&:hover': {\n background:\n theme.palette.mode === 'dark' ? '#FFFFFF25' : '#CDCDCD25',\n },\n }}\n filterOptions={x => x}\n onKeyDown={event => {\n const currentHighlight = highlightedIndexRef.current;\n if (event.key === 'Enter') {\n event.preventDefault();\n if (currentHighlight === -1 && query?.term) {\n navigate(searchLink);\n } else if (currentHighlight !== -1) {\n navigate(\n results[highlightedIndex]?.document?.location ?? searchLink,\n );\n }\n setHighlightedIndex(-1);\n }\n }}\n renderInput={params => (\n <SearchInput\n params={params}\n error={!!error}\n helperText={error ? 'Error fetching results' : ''}\n />\n )}\n renderOption={(renderProps, option, { index }) => (\n <SearchOption\n option={option}\n index={index}\n options={options}\n query={query}\n results={results}\n renderProps={renderProps}\n searchLink={searchLink}\n />\n )}\n ListboxProps={{\n sx: { maxHeight: '60vh' },\n }}\n />\n );\n }}\n </SearchResultState>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useRef, useEffect, useCallback } from 'react';\n\nexport const useDebouncedCallback = <T extends (...args: any[]) => void>(\n callback: T,\n delay: number,\n) => {\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return useCallback(\n (...args: Parameters<T>) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n timeoutRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n },\n [callback, delay],\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SearchContextProvider } from '@backstage/plugin-search-react';\nimport { useState } from 'react';\nimport { SearchBar } from './SearchBar';\nimport { Box } from '@material-ui/core';\n\nexport const SearchComponent = () => {\n const [searchTerm, setSearchTerm] = useState<string>('');\n\n return (\n <SearchContextProvider>\n <Box component=\"div\" sx={{ width: '100%', maxWidth: '50vw' }}>\n <SearchBar query={{ term: searchTerm }} setSearchTerm={setSearchTerm} />\n </Box>\n </SearchContextProvider>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useUserProfile } from '@backstage/plugin-user-settings';\nimport Avatar from '@mui/material/Avatar';\nimport Skeleton from '@mui/material/Skeleton';\nimport AvatarImg from '../../assets/avatar.svg';\n\ninterface UserAvatarProps {\n width?: string;\n height?: string;\n}\n\nexport const UserAvatar: React.FC<UserAvatarProps> = ({ width, height }) => {\n const { profile, loading: profileLoading } = useUserProfile();\n\n return (\n <>\n {profileLoading ? (\n <Skeleton variant=\"circular\" sx={{ width, height }} />\n ) : (\n <Avatar\n src={profile.picture ?? AvatarImg}\n sx={{ width, height, objectFit: 'cover' }}\n alt=\"Profile picture\"\n />\n )}\n </>\n );\n};\n","import { identityApiRef, useApi } from '@backstage/core-plugin-api';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport LogoutIcon from '@mui/icons-material/Logout';\nimport Box from '@mui/material/Box';\n\nexport const Logout = () => {\n const identityApi = useApi(identityApiRef);\n\n return (\n <Box\n component=\"div\"\n onClick={async () => {\n await identityApi.signOut();\n }}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n }}\n >\n <ListItemIcon>\n <LogoutIcon fontSize=\"small\" />\n </ListItemIcon>\n Log out\n </Box>\n );\n};\n","import { ReactElement, useEffect } from 'react';\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport Menu from '@mui/material/Menu';\nimport Box from '@mui/material/Box';\nimport { useUserProfile } from '@backstage/plugin-user-settings';\nimport Typography from '@mui/material/Typography';\nimport { Divider, ListItemIcon, MenuItem } from '@material-ui/core';\nimport { UserAvatar } from '../../userAvatar/UserAvatar';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\nimport { configApiRef } from '@backstage/core-plugin-api';\nimport { UserEntity } from '@backstage/catalog-model';\nimport { Link } from 'react-router-dom';\nimport { Logout } from '../logout/Logout';\nimport Chip from '@mui/material/Chip';\nimport { useTheme } from '@mui/material/styles';\n\ninterface MenuItemsProps {\n anchorEl: HTMLElement | null;\n menuId: string;\n isOpen: boolean;\n handleClose: () => void;\n}\n\ninterface MenuItemProps {\n handleClose: () => void;\n link: string;\n children: ReactElement;\n}\n\nconst MenuItemComponent: React.FC<MenuItemProps> = ({\n handleClose,\n link,\n children,\n}) => {\n return (\n <MenuItem onClick={handleClose}>\n <Link to={link}>\n <Box\n component=\"div\"\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: '.1rem 0',\n }}\n >\n {children}\n </Box>\n </Link>\n </MenuItem>\n );\n};\n\nexport const MenuItems: React.FC<MenuItemsProps> = ({\n anchorEl,\n menuId,\n isOpen,\n handleClose,\n}) => {\n const theme = useTheme();\n const { displayName, backstageIdentity } = useUserProfile();\n const catalogApi = useApi(catalogApiRef);\n const config = useApi(configApiRef);\n const supportUrl =\n config.app?.support?.url ??\n // config.getOptionalString('app.support.url') ??\n 'https://github.com/orgs/veecode-platform/discussions';\n\n useEffect(() => {\n const fetchUserEntity = async () => {\n let userProfile;\n try {\n if (backstageIdentity?.userEntityRef) {\n userProfile = (await catalogApi.getEntityByRef(\n backstageIdentity.userEntityRef,\n )) as unknown as UserEntity;\n }\n return userProfile;\n } catch (_err) {\n return null;\n }\n };\n\n fetchUserEntity();\n }, [backstageIdentity, catalogApi]);\n\n const profileDisplayName = () => {\n const name = displayName;\n const regex = /^[^:/]+:[^/]+\\/[^/]+$/;\n if (regex.test(name)) {\n return name\n .charAt(name.indexOf('/') + 1)\n .toLocaleUpperCase('en-US')\n .concat(name.substring(name.indexOf('/') + 2));\n }\n return name;\n };\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n id={menuId}\n keepMounted\n open={isOpen}\n onClose={handleClose}\n slotProps={{\n paper: {\n sx: {\n width: 250,\n borderRadius: 2,\n mt: 0.8,\n mr: -0.5,\n boxShadow: 3,\n background: `${theme.palette.background.default} !important`,\n border: `1px solid ${theme.palette.grey[600]}`,\n },\n },\n }}\n >\n {/* Profile */}\n <Box\n sx={{ px: 2, py: 1.5, display: 'flex', alignItems: 'center', gap: 1.5 }}\n >\n <UserAvatar />\n <Box>\n <Typography variant=\"subtitle1\">{profileDisplayName()}</Typography>\n <Chip\n size=\"small\"\n variant=\"outlined\"\n label={backstageIdentity?.ownershipEntityRefs[0].split('/')[1]}\n />\n </Box>\n </Box>\n\n <Divider />\n\n {/* Support */}\n <MenuItemComponent handleClose={handleClose} link={supportUrl}>\n <>\n <ListItemIcon>\n <HelpOutlineIcon fontSize=\"small\" />\n </ListItemIcon>\n Help\n </>\n </MenuItemComponent>\n {/* Settings */}\n <MenuItemComponent handleClose={handleClose} link=\"/settings\">\n <>\n <ListItemIcon>\n <SettingsIcon fontSize=\"small\" />\n </ListItemIcon>\n Settings\n </>\n </MenuItemComponent>\n <Divider />\n\n {/* Logout */}\n <MenuItem>\n <Logout />\n </MenuItem>\n </Menu>\n );\n};\n","/* eslint-disable no-restricted-syntax */\nimport { useState, useEffect, useMemo } from 'react';\nimport Badge from '@mui/material/Badge';\nimport NotificationsIcon from '@mui/icons-material/Notifications';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport {\n GetNotificationsOptions,\n GetNotificationsResponse,\n GetTopicsResponse,\n useNotificationsApi,\n} from '@backstage/plugin-notifications';\nimport {\n NotificationSeverity,\n NotificationStatus,\n} from '@backstage/plugin-notifications-common';\nimport { useSignal } from '@backstage/plugin-signals-react';\nimport throttle from 'lodash/throttle';\nimport { IconButtonComponent } from '../iconButtonComponent/IconButtonComponent';\n\nconst ThrottleDelayMs = 2000;\n\nexport const Notifications = () => {\n const [unreadOnly] = useState<boolean | undefined>(true);\n const [saved] = useState<boolean | undefined>(undefined);\n const [severity] = useState<NotificationSeverity>('low');\n const [topic] = useState<string>();\n\n const { lastSignal } = useSignal('notifications');\n\n const { error, value, retry, loading } = useNotificationsApi<\n [GetNotificationsResponse, NotificationStatus, GetTopicsResponse]\n >(\n api => {\n const options: GetNotificationsOptions = {\n minimumSeverity: severity,\n };\n\n if (unreadOnly !== undefined) {\n options.read = !unreadOnly;\n }\n if (saved !== undefined) {\n options.saved = saved;\n }\n if (topic !== undefined) {\n options.topic = topic;\n }\n\n return Promise.all([\n api.getNotifications(options),\n api.getStatus(),\n api.getTopics(options),\n ]);\n },\n [unreadOnly, severity, saved, topic],\n );\n\n const throttledRetry = useMemo(\n () => throttle(() => retry(), ThrottleDelayMs),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const totalCount = value?.[1]?.unread ?? 0;\n\n useEffect(() => {\n if (lastSignal?.action) {\n throttledRetry();\n }\n }, [lastSignal, throttledRetry]);\n\n return (\n <IconButtonComponent\n title=\"Notifications\"\n label={`Mostrar ${totalCount} notificações não lidas`}\n color=\"inherit\"\n link=\"/notifications\"\n >\n <Badge\n badgeContent={totalCount}\n color=\"error\"\n invisible={loading || !!error || totalCount === 0}\n >\n {loading ? (\n <CircularProgress size={20} color=\"inherit\" />\n ) : (\n <NotificationsIcon />\n )}\n </Badge>\n </IconButtonComponent>\n );\n};\n","import { IconButtonComponent } from '../iconButtonComponent/IconButtonComponent';\nimport { UserAvatar } from '../../userAvatar/UserAvatar';\n\ninterface ProfileProps {\n handleOpenMenu: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\nexport const Profile: React.FC<ProfileProps> = ({ handleOpenMenu }) => {\n return (\n <IconButtonComponent\n title=\"\"\n label=\"profile-menu\"\n handleClick={handleOpenMenu}\n color=\"inherit\"\n >\n <UserAvatar width=\"42px\" height=\"42px\" />\n </IconButtonComponent>\n );\n};\n","// eslint-disable-next-line no-restricted-syntax\nimport * as React from 'react';\nimport AppBar from '@mui/material/AppBar';\nimport Box from '@mui/material/Box';\nimport Toolbar from '@mui/material/Toolbar';\nimport { ToogleTheme } from './toggleTheme/ToggleTheme';\nimport { SearchComponent } from './searchComponent/SearchComponent';\nimport { MenuItems } from './menuItems/MenuItems';\nimport { Notifications } from './notifications/Notifications';\nimport { Profile } from './profile/Profle';\nimport { useTheme } from '@mui/material/styles';\n\nexport const HeaderComponent = () => {\n const theme = useTheme();\n const [profileAnchorEl, setProfileAnchorEl] =\n React.useState<null | HTMLElement>(null);\n\n const isProfileMenuOpen = Boolean(profileAnchorEl);\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\n setProfileAnchorEl(event.currentTarget);\n };\n\n const handleProfileMenuClose = () => {\n setProfileAnchorEl(null);\n };\n\n return (\n <Box sx={{ flexGrow: 1, position: 'relative' }}>\n <AppBar\n position=\"sticky\"\n component=\"nav\"\n style={{ zIndex: theme.zIndex.appBar - 1 }}\n >\n <Toolbar>\n <SearchComponent />\n <Box sx={{ flexGrow: 1 }} />\n <Box\n sx={{\n display: {\n xs: 'none',\n md: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n },\n }}\n >\n <Notifications />\n <ToogleTheme />\n <Profile handleOpenMenu={handleProfileMenuOpen} />\n </Box>\n </Toolbar>\n </AppBar>\n\n {/* Profile options */}\n <MenuItems\n anchorEl={profileAnchorEl}\n menuId=\"profile-menu\"\n isOpen={isProfileMenuOpen}\n handleClose={handleProfileMenuClose}\n />\n </Box>\n );\n};\n","import Box from '@mui/material/Box';\nimport { useTheme } from '@mui/material/styles';\nimport { UserAvatar } from '../userAvatar/UserAvatar';\nimport Typography from '@mui/material/Typography';\nimport { useApi, configApiRef } from '@backstage/core-plugin-api';\nimport { useUserProfile } from '@backstage/plugin-user-settings';\nimport Skeleton from '@mui/material/Skeleton';\nimport { useEffect, useState } from 'react';\nimport WavesImg from '../../assets/waves.svg';\n\nexport const HomeGreeting = () => {\n const [loading, setLoading] = useState<boolean>(false);\n const { displayName } = useUserProfile();\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const configApi = useApi(configApiRef);\n const color1 =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor1\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo1')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo1')) ??\n configApi.app?.branding?.theme?.light?.headerColor1) ?? '#45556D';\n const color2 =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor2\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo2')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo2')) ??\n configApi.app?.branding?.theme?.light?.headerColor2) ?? '#86F4CE';\n\n const profileDisplayName = () => {\n const name = displayName;\n const regex = /^[^:/]+:[^/]+\\/[^/]+$/;\n if (regex.test(name)) {\n return name\n .charAt(name.indexOf('/') + 1)\n .toLocaleUpperCase('en-US')\n .concat(name.substring(name.indexOf('/') + 2));\n }\n return name;\n };\n\n useEffect(() => {\n setLoading(true);\n setTimeout(() => setLoading(false), 1000);\n }, []);\n\n return (\n <Box\n sx={{\n background: `linear-gradient(90deg, ${color1} 0%, ${color2} 100%)`,\n width: '100%',\n minHeight: '210px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden',\n [theme.breakpoints.only('xs')]: {\n height: '380px',\n padding: '1rem 0',\n },\n }}\n >\n <Box\n sx={{\n width: '90%',\n margin: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: '2rem',\n [theme.breakpoints.only('xs')]: {\n flexDirection: 'column',\n padding: '1rem 0',\n },\n }}\n >\n <Box>\n <UserAvatar width=\"120px\" height=\"120px\" />\n </Box>\n <Box\n sx={{\n [theme.breakpoints.only('xs')]: {\n textAlign: 'center',\n color: theme.palette.grey[100],\n maxWidth: '70vw',\n },\n }}\n >\n <Typography variant=\"h3\">\n Welcome back\n {loading ? (\n <Skeleton\n variant=\"rectangular\"\n width={150}\n height={80}\n style={{ display: 'inline' }}\n />\n ) : (\n <>, {profileDisplayName()} 👋</>\n )}{' '}\n </Typography>\n <Typography variant=\"h6\">Let's get started.</Typography>\n </Box>\n </Box>\n <img\n src={WavesImg}\n alt=\"\"\n style={{\n width: '100%',\n height: '250px',\n objectFit: 'cover',\n position: 'absolute',\n top: '-20%',\n left: '0',\n opacity: '0.7',\n }}\n />\n </Box>\n );\n};\n","import { useTheme } from '@mui/material/styles';\n\nconst Communitylogo = () => {\n const theme = useTheme();\n return (\n <svg\n height=\"45px\"\n width=\"45px\"\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 502.648 502.648\"\n xmlSpace=\"preserve\"\n style={{ cursor: 'pointer ' }}\n >\n <g>\n <g>\n <g>\n <circle\n style={{ fill: theme.palette.grey[600] }}\n cx=\"250.399\"\n cy=\"91.549\"\n r=\"58.694\"\n />\n <path\n style={{ fill: theme.palette.grey[600] }}\n d=\"M455.861,253.028l-54.703-11.411c-18.637-3.904-37.037,4.638-46.765,19.824\n\t\t\t\tc-9.448-4.853-19.608-9.038-30.415-12.511v-32.529c0.022-24.612-20.126-44.738-44.651-44.738h-55.933\n\t\t\t\tc-24.655,0-44.716,20.126-44.716,44.738v32.701c-10.699,3.408-20.751,7.593-30.264,12.468\n\t\t\t\tc-9.728-15.251-28.15-23.857-46.809-19.953l-54.747,11.411c-24.03,5.026-39.626,28.862-34.6,52.978l13.741,65.64\n\t\t\t\tc4.983,24.051,28.84,39.647,52.892,34.621l17.321-3.624c8.671,12.813,20.665,24.569,36.023,34.621\n\t\t\t\tc31.989,20.967,74.247,32.529,119.092,32.529c68.617,0,127.721-27.589,154.943-67.215l17.602,3.689\n\t\t\t\tc24.03,5.004,47.887-10.57,52.87-34.621l13.762-65.64C495.508,281.89,479.912,258.054,455.861,253.028z M251.305,447.381\n\t\t\t\tc-40.51,0-78.475-10.203-106.797-28.862c-9.707-6.342-17.753-13.395-24.202-20.945l13.266-2.783\n\t\t\t\tc24.073-5.004,39.669-28.84,34.643-52.913l-12.317-59.018c7.183-3.861,14.733-7.248,22.757-10.138v10.764\n\t\t\t\tc0,24.569,20.104,44.695,44.716,44.695h55.933c24.548,0,44.652-20.147,44.652-44.695v-11.325\n\t\t\t\tc8.175,2.912,15.854,6.256,22.973,10.052L334.439,341.9c-4.983,24.073,10.591,47.909,34.664,52.913l13.395,2.804\n\t\t\t\tC357.52,427.191,308.101,447.381,251.305,447.381z\"\n />\n <circle\n style={{ fill: theme.palette.grey[600] }}\n cx=\"443.954\"\n cy=\"168.708\"\n r=\"58.694\"\n />\n <path\n style={{ fill: theme.palette.grey[600] }}\n d=\"M70.736,226.172c31.752-6.644,52.029-37.77,45.471-69.501\n\t\t\t\tc-6.687-31.709-37.749-52.072-69.523-45.428c-31.709,6.622-52.072,37.727-45.428,69.458\n\t\t\t\tC7.879,212.453,38.984,232.795,70.736,226.172z\"\n />\n </g>\n </g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n </g>\n </svg>\n );\n};\n\nexport default Communitylogo;\n","import { useTheme } from '@mui/material/styles';\n\nconst DocsLogo = () => {\n const theme = useTheme();\n return (\n <svg\n width=\"45px\"\n height=\"45px\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n style={{ cursor: 'pointer ' }}\n >\n <path\n fill={theme.palette.grey[600]}\n fill-rule=\"evenodd\"\n d=\"M4.25 1A2.25 2.25 0 002 3.25v9.5A2.25 2.25 0 004.25 15h8.5c.69 0 1.25-.56 1.25-1.25V2.25C14 1.56 13.44 1 12.75 1h-8.5zM3.5 12.75c0 .414.336.75.75.75h8.25v-2H4.25a.75.75 0 00-.75.75v.5zm0-2.622c.235-.083.487-.128.75-.128h8.25V2.5H4.25a.75.75 0 00-.75.75v6.878z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default DocsLogo;\n","import { useTheme } from '@mui/material/styles';\n\nconst WebsiteLogo = () => {\n const theme = useTheme();\n return (\n <svg\n width=\"45px\"\n height=\"45px\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ cursor: 'pointer ' }}\n >\n <rect x=\"0\" fill=\"none\" width=\"20\" height=\"20\" />\n\n <g fill={theme.palette.grey[600]}>\n <path d=\"M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm7.5 6.48c-.274.896-.908 1.64-1.75 2.05-.45-1.69-1.658-3.074-3.27-3.75.13-.444.41-.83.79-1.09-.43-.28-1-.42-1.34.07-.53.69 0 1.61.21 2v.14c-.555-.337-.99-.84-1.24-1.44-.966-.03-1.922.208-2.76.69-.087-.565-.032-1.142.16-1.68.733.07 1.453-.23 1.92-.8.46-.52-.13-1.18-.59-1.58h.36c1.36-.01 2.702.335 3.89 1 1.36 1.005 2.194 2.57 2.27 4.26.24 0 .7-.55.91-.92.172.34.32.69.44 1.05zM9 16.84c-2.05-2.08.25-3.75-1-5.24-.92-.85-2.29-.26-3.11-1.23-.282-1.473.267-2.982 1.43-3.93.52-.44 4-1 5.42.22.83.715 1.415 1.674 1.67 2.74.46.035.918-.066 1.32-.29.41 2.98-3.15 6.74-5.73 7.73zM5.15 2.09c.786-.3 1.676-.028 2.16.66-.42.38-.94.63-1.5.72.02-.294.085-.584.19-.86l-.85-.52z\" />\n </g>\n </svg>\n );\n};\n\nexport default WebsiteLogo;\n","import { useTheme } from '@mui/material/styles';\n\nconst SupportLogo = () => {\n const theme = useTheme();\n return (\n <svg\n width=\"45px\"\n height=\"45px\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ cursor: 'pointer ' }}\n >\n <title>support</title>\n <rect width=\"24\" height=\"24\" fill=\"none\" />\n <path\n fill={theme.palette.grey[600]}\n d=\"M12,2a8,8,0,0,0-8,8v1.9A2.92,2.92,0,0,0,3,14a2.88,2.88,0,0,0,1.94,2.61C6.24,19.72,8.85,22,12,22h3V20H12c-2.26,0-4.31-1.7-5.34-4.39l-.21-.55L5.86,15A1,1,0,0,1,5,14a1,1,0,0,1,.5-.86l.5-.29V11a1,1,0,0,1,1-1H17a1,1,0,0,1,1,1v5H13.91a1.5,1.5,0,1,0-1.52,2H20a2,2,0,0,0,2-2V14a2,2,0,0,0-2-2V10A8,8,0,0,0,12,2Z\"\n />\n </svg>\n );\n};\n\nexport default SupportLogo;\n","function rgbToHsl(\n rInput: number,\n gInput: number,\n bInput: number,\n): { h: number; s: number; l: number } {\n const r = rInput / 255;\n const g = gInput / 255;\n const b = bInput / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h = 0;\n let s = 0;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n if (max === r) {\n h = (g - b) / d + (g < b ? 6 : 0);\n } else if (max === g) {\n h = (b - r) / d + 2;\n } else {\n h = (r - g) / d + 4;\n }\n\n h *= 60;\n }\n\n return {\n h: Math.round(h),\n s: Math.round(s * 100),\n l: Math.round(l * 100),\n };\n}\n\nexport function parseToHSL(color: string): { h: number; s: number; l: number } {\n const ctx = document.createElement('canvas').getContext('2d');\n if (!ctx) throw new Error('Canvas not supported');\n\n // forces the browser to resolve the color\n ctx.fillStyle = color;\n const resolved = ctx.fillStyle; // will be a hex color like \"#rrggbb\"\n\n const hex = resolved.replace(/^#/, '');\n const normalizedHex =\n hex.length === 3\n ? hex\n .split('')\n .map(c => c + c)\n .join('')\n : hex;\n\n const bigint = parseInt(normalizedHex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return rgbToHsl(r, g, b);\n}\n\nexport function generateColorVariants(\n inputColor: string = 'royalblue',\n count: number,\n startLightness = 70,\n endLightness = 30,\n): string[] {\n const { h, s } = parseToHSL(inputColor);\n const step = (startLightness - endLightness) / Math.max(count - 1, 1);\n\n return Array.from({ length: count }, (_, i) => {\n const l = startLightness - i * step;\n return `hsl(${h}, ${s}%, ${l}%)`;\n });\n}\n","// eslint-disable-next-line no-restricted-syntax\nimport * as React from 'react';\nimport { PieChart } from '@mui/x-charts/PieChart';\nimport { useDrawingArea } from '@mui/x-charts/hooks';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Box from '@mui/material/Box';\nimport Stack from '@mui/material/Stack';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport { CardHeader, Divider } from '@material-ui/core';\nimport { useApi, configApiRef } from '@backstage/core-plugin-api';\nimport { useVisited } from '../../hooks/useVisited';\nimport { generateColorVariants } from '../../utils/generateColor';\nimport TurnedInNotIcon from '@mui/icons-material/TurnedInNot';\n\ninterface StyledTextProps {\n variant: 'primary' | 'secondary';\n}\n\nconst StyledText = styled('text', {\n shouldForwardProp: prop => prop !== 'variant',\n})<StyledTextProps>(({ theme }) => ({\n textAnchor: 'middle',\n dominantBaseline: 'central',\n fill: theme.palette.text.secondary,\n variants: [\n {\n props: {\n variant: 'primary',\n },\n style: {\n fontSize: theme.typography.h5.fontSize,\n },\n },\n {\n props: ({ variant }) => variant !== 'primary',\n style: {\n fontSize: theme.typography.body2.fontSize,\n },\n },\n {\n props: {\n variant: 'primary',\n },\n style: {\n fontWeight: theme.typography.h5.fontWeight,\n },\n },\n {\n props: ({ variant }) => variant !== 'primary',\n style: {\n fontWeight: theme.typography.body2.fontWeight,\n },\n },\n ],\n}));\n\ninterface PieCenterLabelProps {\n primaryText: string;\n secondaryText: string;\n}\n\nfunction PieCenterLabel({ primaryText, secondaryText }: PieCenterLabelProps) {\n const { width, height, left, top } = useDrawingArea();\n const primaryY = top + height / 2 - 10;\n const secondaryY = primaryY + 24;\n\n return (\n <React.Fragment>\n <StyledText variant=\"primary\" x={left + width / 2} y={primaryY}>\n {primaryText}\n </StyledText>\n <StyledText variant=\"secondary\" x={left + width / 2} y={secondaryY}>\n {secondaryText}\n </StyledText>\n </React.Fragment>\n );\n}\n\nexport default function VisitedCharts() {\n const { total, items, visits } = useVisited();\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const configApi = useApi(configApiRef);\n const color =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor1\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo1')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo1')) ??\n configApi.app?.branding?.theme?.light?.headerColor1) ?? '#45556D';\n const colors = generateColorVariants(color, items.length);\n const calculatePercent = (value: number) => {\n const percent = value / (total / 100);\n return Number(percent.toFixed(2));\n };\n\n return (\n <Card\n variant=\"outlined\"\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n flexGrow: 1,\n maxHeight: '900px',\n overfloyY: 'auto',\n }}\n >\n <CardHeader title=\"Top Visited\" />\n <Divider />\n <CardContent>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <PieChart\n colors={colors}\n margin={{\n left: 80,\n right: 80,\n top: 80,\n bottom: 80,\n }}\n series={[\n {\n data: items,\n innerRadius: 75,\n outerRadius: 100,\n paddingAngle: 0,\n highlightScope: { fade: 'global', highlight: 'item' },\n },\n ]}\n height={260}\n width={260}\n hideLegend\n >\n <PieCenterLabel primaryText={`${total}`} secondaryText=\"Total\" />\n </PieChart>\n </Box>\n </CardContent>\n <Box\n sx={{ padding: '2rem', background: theme.palette.background.default }}\n >\n {visits.map(visit => (\n <Stack\n key={visit.id}\n direction=\"row\"\n sx={{ alignItems: 'center', gap: 2, pb: 2 }}\n >\n <TurnedInNotIcon />\n <Stack sx={{ gap: 1, flexGrow: 1 }}>\n <Stack\n direction=\"row\"\n sx={{\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: 2,\n }}\n >\n <Typography variant=\"body2\" sx={{ fontWeight: '500' }}>\n {visit.name}\n </Typography>\n <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\n {calculatePercent(visit.hits)}%\n </Typography>\n </Stack>\n <LinearProgress\n variant=\"determinate\"\n aria-label=\"Number of users by country\"\n value={calculatePercent(visit.hits)}\n />\n </Stack>\n </Stack>\n ))}\n </Box>\n </Card>\n );\n}\n","import { useApi } from '@backstage/core-plugin-api';\nimport { Visit, visitsApiRef } from '@backstage/plugin-home';\nimport useAsync from 'react-use/esm/useAsync';\n\ntype VisitItem = {\n label: string;\n value: number;\n};\n\ntype VisitData = {\n id: string;\n name: string;\n path: string;\n hits: number;\n};\n\ninterface VisitType {\n total: number;\n items: VisitItem[];\n visits: VisitData[];\n}\n\nexport const useVisited = () => {\n const useVisitedApi = useApi(visitsApiRef);\n\n const { value, loading, error } = useAsync(async (): Promise<VisitType> => {\n const data = (await useVisitedApi.list()) as Visit[];\n const total = data.reduce((acc, item) => acc + item.hits, 0);\n const items = data.map(visit => ({\n label: visit.name,\n value: visit.hits,\n }));\n const visits = data.map(visit => ({\n id: visit.id,\n name: visit.name,\n path: visit.pathname,\n hits: visit.hits,\n }));\n return {\n total,\n items,\n visits,\n };\n }, []);\n\n return {\n loading,\n error,\n total: value?.total ?? 0,\n items: value?.items ?? [],\n visits: value?.visits ?? [],\n };\n};\n","import Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport { alpha } from '@mui/material/styles';\n\nexport type StatCardProps = {\n icon: React.ElementType;\n title: string;\n value: string;\n color: string;\n};\n\nexport default function StatCard({\n icon: Icon,\n title,\n value,\n color,\n}: StatCardProps) {\n return (\n <Card\n variant=\"outlined\"\n sx={{\n width: '100%',\n height: '100%',\n flexGrow: 1,\n background: alpha(color, 0.15),\n }}\n >\n <CardContent>\n <Box\n component=\"div\"\n sx={{\n display: 'flex',\n gap: '.5rem',\n padding: '.5rem 0',\n }}\n >\n <Icon color=\"secondary\" style={{ fontSize: '18px' }} />\n <Typography component=\"h2\" variant=\"subtitle1\" gutterBottom>\n {title}\n </Typography>\n </Box>\n\n <Stack\n direction=\"row\"\n sx={{\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Typography\n variant=\"h4\"\n component=\"div\"\n sx={{\n width: '100%',\n textAlign: 'right',\n padding: '0 .5rem',\n }}\n >\n {value}\n </Typography>\n </Stack>\n </CardContent>\n </Card>\n );\n}\n","import Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Typography from '@mui/material/Typography';\nimport AddIcon from '@mui/icons-material/Add';\nimport InsightsRoundedIcon from '@mui/icons-material/InsightsRounded';\nimport Box from '@mui/material/Box';\nimport { LinkButton } from '@backstage/core-components';\nimport { useTheme } from '@mui/material/styles';\n\nexport default function HighlightedCard() {\n const theme = useTheme();\n return (\n <Card\n variant=\"outlined\"\n sx={{\n width: '100%',\n height: '100%',\n flexGrow: 1,\n border: '1px solid transparent',\n [theme.breakpoints.down('lg')]: {\n justifyContent: 'center',\n background: theme.palette.background.default,\n },\n }}\n >\n <CardContent>\n <Box\n component=\"div\"\n sx={{\n display: 'flex',\n gap: '.5rem',\n padding: '.5rem 0',\n [theme.breakpoints.down('lg')]: {\n justifyContent: 'center',\n },\n }}\n >\n <InsightsRoundedIcon color=\"primary\" />\n <Typography\n component=\"h2\"\n variant=\"subtitle2\"\n gutterBottom\n sx={{ fontWeight: '600' }}\n >\n Add new features\n </Typography>\n </Box>\n <Box\n sx={{\n [theme.breakpoints.down('lg')]: {\n textAlign: 'center',\n },\n }}\n >\n <LinkButton variant=\"contained\" to=\"/create\">\n {' '}\n <AddIcon /> Create\n </LinkButton>\n </Box>\n </CardContent>\n </Card>\n );\n}\n","// eslint-disable-next-line no-restricted-syntax\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Box from '@mui/material/Box';\nimport { CardHeader, Divider } from '@material-ui/core';\nimport StatCard from './StatCards';\nimport HighlightedCard from './HighLightedCard';\nimport { useCatalog } from '../../hooks/useCatalog';\nimport AutoAwesomeMotionIcon from '@mui/icons-material/AutoAwesomeMotion';\nimport FolderCopyIcon from '@mui/icons-material/FolderCopy';\nimport ExtensionIcon from '@mui/icons-material/Extension';\nimport { useTheme } from '@mui/material/styles';\nimport { configApiRef, useApi } from '@backstage/core-plugin-api';\nimport { generateColorVariants } from '../../utils/generateColor';\n\nexport default function Summary() {\n const { resources, apis, components } = useCatalog();\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const configApi = useApi(configApiRef);\n\n const data = [\n {\n icon: AutoAwesomeMotionIcon,\n title: 'Resources',\n value: resources.length.toString(),\n },\n {\n icon: FolderCopyIcon,\n title: 'Components',\n value: components.length.toString(),\n },\n {\n icon: ExtensionIcon,\n title: 'APIs',\n value: apis.length.toString(),\n },\n ];\n\n const color =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor1\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo1')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo1')) ??\n configApi.app?.branding?.theme?.light?.headerColor1) ?? '#45556D';\n const colors = generateColorVariants(color, data.length);\n\n return (\n <Card\n variant=\"outlined\"\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n flexGrow: 1,\n overfloyY: 'auto',\n }}\n >\n <CardHeader title=\"Summary\" />\n <Divider />\n <CardContent>\n <Box\n sx={{\n display: 'grid',\n alignItems: 'center',\n gap: '1rem',\n gridTemplateColumns: 'repeat(4,1fr)',\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: '1fr',\n },\n }}\n >\n {data.map((card, index) => (\n <StatCard key={index} {...card} color={colors[index]} />\n ))}\n <HighlightedCard />\n </Box>\n </CardContent>\n </Card>\n );\n}\n","import { Entity } from '@backstage/catalog-model';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\nimport useAsync from 'react-use/esm/useAsync';\n\n// type VisitItem = {\n// label: string;\n// value: number;\n// };\n\n// type VisitData = {\n// id: string;\n// name: string;\n// path: string;\n// hits: number;\n// };\ninterface GetEntitiesResponse {\n items: Entity[];\n}\ninterface UseCatalogType {\n resources: Entity[];\n apis: Entity[];\n components: Entity[];\n}\n\nexport const useCatalog = () => {\n const useCatalogApi = useApi(catalogApiRef);\n\n const { value, loading, error } =\n useAsync(async (): Promise<UseCatalogType> => {\n const response =\n (await useCatalogApi.getEntities()) as GetEntitiesResponse;\n\n const resources = response.items.filter(\n item =>\n item.kind.toLocaleLowerCase() !== 'api' &&\n item.kind.toLocaleLowerCase() !== 'Component' &&\n item.kind.toLocaleLowerCase() !== 'group' &&\n item.kind.toLocaleLowerCase() !== 'user' &&\n item.kind.toLocaleLowerCase() !== 'location',\n );\n const apis = response.items.filter(\n item => item.kind.toLocaleLowerCase() === 'api',\n );\n const components = response.items.filter(\n item => item.kind.toLocaleLowerCase() === 'component',\n );\n\n return {\n resources,\n apis,\n components,\n };\n }, []);\n\n return {\n loading,\n error,\n resources: value?.resources ?? [],\n apis: value?.apis ?? [],\n components: value?.components ?? [],\n };\n};\n","/* eslint-disable no-restricted-syntax */\nimport {\n HomePageStarredEntities,\n HomePageToolkit,\n HomePageRecentlyVisited,\n} from '@backstage/plugin-home';\nimport Grid from '@mui/material/Grid';\nimport { SearchContextProvider } from '@backstage/plugin-search-react';\nimport { Content } from '@backstage/core-components';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Communitylogo from '../../assets/Community';\nimport DocsLogo from '../../assets/Docs';\nimport WebsiteLogo from '../../assets/Website';\nimport SupportLogo from '../../assets/Support';\nimport BackstageLogo from '../../assets/backstage.png';\nimport PieAnimation from './VisitedCharts';\nimport Summary from './Summary';\n\nexport const HomeContent = () => {\n const tools = [\n {\n url: 'https://docs.platform.vee.codes/',\n label: 'Docs',\n icon: <DocsLogo />,\n },\n {\n url: 'https://github.com/orgs/veecode-platform/discussions',\n label: 'Community',\n icon: <Communitylogo />,\n },\n {\n url: 'https://platform.vee.codes/',\n label: 'Website',\n icon: <WebsiteLogo />,\n },\n {\n url: 'https://veecode-suporte.freshdesk.com/support/login',\n label: 'Support',\n icon: <SupportLogo />,\n },\n ];\n\n return (\n <SearchContextProvider>\n <Content stretch>\n <Grid container spacing={2} justifyContent=\"center\">\n {/* Top & Recently Visited */}\n <Grid item xs={12}>\n <Grid container spacing={2}>\n <Grid item xs={12} md={6} lg={8}>\n <Grid container spacing={2} justifyContent=\"center\">\n <Grid item xs={12} md={12} lg={12}>\n <Summary />\n </Grid>\n <Grid item xs={12} md={12} lg={12}>\n <HomePageRecentlyVisited />\n </Grid>\n <Grid item xs={12} md={12} lg={12}>\n <HomePageStarredEntities />\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={12} md={6} lg={4}>\n <Grid container spacing={2} justifyContent=\"center\">\n <Grid item xs={12} md={12} lg={12}>\n <PieAnimation />\n </Grid>\n <Grid item xs={12} md={12} lg={12}>\n <HomePageToolkit tools={tools} />\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {/* Footer */}\n <Grid item xs={12} sx={{ marginTop: '7rem' }}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '1.3em',\n gap: '10px',\n }}\n >\n <Typography\n sx={{\n fontSize: '1.2em',\n fontWeight: 'bold',\n }}\n >\n Powered by\n </Typography>\n <img\n src={BackstageLogo}\n alt=\"backstage logo\"\n style={{ width: '7.5em', height: '1.5em' }}\n />\n </Box>\n </Grid>\n </Grid>\n </Content>\n </SearchContextProvider>\n );\n};\n","import { makeStyles } from '@material-ui/core';\nimport { HeaderComponent } from './headerComponent/HeaderComponent';\nimport { HomeGreeting } from './homeGretting/HomeGretting';\nimport { HomeContent } from './homeContent/HomeContent';\nimport { Page } from '@backstage/core-components';\n\nconst useVeeCodeHomePageStyles = makeStyles(theme => ({\n pageRoot: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.background.default,\n },\n}));\n\nexport const VeeCodeHomePage = () => {\n const { pageRoot } = useVeeCodeHomePageStyles();\n return (\n <Page themeId=\"home\" className={pageRoot}>\n <HeaderComponent />\n <HomeGreeting />\n <HomeContent />\n </Page>\n );\n};\n"],"names":["IconButtonComponent","title","label","color","handleClick","link","children","button","IconButton","size","aria-label","aria-controls","aria-haspopup","sx","width","height","borderRadius","onClick","Tooltip","Link","to","ToogleTheme","appThemeApi","useApi","appThemeApiRef","isDarkMode","useTheme","palette","mode","tooltipTitle","themeIds","getInstalledThemes","e","newThemeId","preventDefault","stopPropagation","some","it","id","setActiveThemeId","undefined","LightModeOutlinedIcon","DarkModeOutlinedIcon","highlightMatch","text","query","escapedQuery","replace","regex","RegExp","parts","split","map","part","index","test","Typography","component","fontWeight","SearchInput","params","error","helperText","TextField","placeholder","variant","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","style","input","border","SearchResultItem","option","result","renderProps","isNoResultsFound","analytics","useAnalytics","Box","document","location","underline","cursor","ListItem","py","captureEvent","attributes","value","rank","flexGrow","term","SearchOption","options","results","searchLink","length","Divider","my","className","display","alignItems","ArrowForwardIcon","fontSize","find","r","SearchBar","props","setSearchTerm","navigate","useNavigate","highlightedIndex","setHighlightedIndex","useState","highlightedIndexRef","useRef","setTerm","useSearch","theme","onInputChange","callback","timeoutRef","useEffect","current","clearTimeout","useCallback","args","setTimeout","useDebouncedCallback","_","inputValue","SearchResultState","loading","searchTerm","encodeURIComponent","Autocomplete","freeSolo","getOptionLabel","onHighlightChange","indexOf","componentsProps","paper","outline","background","visibility","padding","filterOptions","x","onKeyDown","event","currentHighlight","key","renderInput","renderOption","ListboxProps","maxHeight","SearchComponent","SearchContextProvider","maxWidth","UserAvatar","profile","profileLoading","useUserProfile","Skeleton","Avatar","src","picture","AvatarImg","objectFit","alt","Logout","identityApi","identityApiRef","async","signOut","justifyContent","ListItemIcon","LogoutIcon","MenuItemComponent","handleClose","MenuItem","MenuItems","anchorEl","menuId","isOpen","config","displayName","backstageIdentity","catalogApi","catalogApiRef","supportUrl","configApiRef","app","support","url","userProfile","userEntityRef","getEntityByRef","_err","fetchUserEntity","Menu","anchorOrigin","vertical","horizontal","transformOrigin","keepMounted","open","onClose","slotProps","mt","mr","boxShadow","default","grey","px","gap","name","charAt","toLocaleUpperCase","concat","substring","profileDisplayName","Chip","ownershipEntityRefs","HelpOutlineIcon","SettingsIcon","Notifications","unreadOnly","saved","severity","topic","lastSignal","useSignal","retry","useNotificationsApi","api","minimumSeverity","read","Promise","all","getNotifications","getStatus","getTopics","throttledRetry","useMemo","throttle","totalCount","unread","action","Badge","badgeContent","invisible","CircularProgress","NotificationsIcon","Profile","handleOpenMenu","HeaderComponent","profileAnchorEl","setProfileAnchorEl","React","isProfileMenuOpen","Boolean","AppBar","zIndex","appBar","Toolbar","xs","md","currentTarget","HomeGreeting","configApi","setLoading","color1","branding","dark","headerColor1","light","color2","headerColor2","minHeight","overflow","breakpoints","only","margin","flexDirection","textAlign","img","WavesImg","top","left","opacity","svg","version","xmlns","xmlnsXlink","viewBox","xmlSpace","g","circle","fill","cx","cy","path","d","fill-rule","clip-rule","rect","generateColorVariants","inputColor","count","startLightness","endLightness","h","s","ctx","createElement","getContext","Error","fillStyle","hex","normalizedHex","c","join","bigint","parseInt","rInput","gInput","bInput","b","max","Math","min","l","round","rgbToHsl","parseToHSL","step","Array","from","i","StyledText","styled","shouldForwardProp","prop","textAnchor","dominantBaseline","secondary","variants","typography","h5","body2","PieCenterLabel","primaryText","secondaryText","useDrawingArea","primaryY","secondaryY","y","VisitedCharts","total","items","visits","useVisitedApi","visitsApiRef","useAsync","data","list","reduce","acc","item","hits","visit","pathname","useVisited","colors","calculatePercent","Number","toFixed","Card","overfloyY","CardHeader","CardContent","PieChart","right","bottom","series","innerRadius","outerRadius","paddingAngle","highlightScope","fade","highlight","hideLegend","Stack","direction","pb","TurnedInNotIcon","LinearProgress","StatCard","icon","Icon","alpha","gutterBottom","HighlightedCard","down","InsightsRoundedIcon","LinkButton","AddIcon","Summary","resources","apis","components","useCatalogApi","response","getEntities","filter","kind","toLocaleLowerCase","useCatalog","AutoAwesomeMotionIcon","toString","FolderCopyIcon","ExtensionIcon","gridTemplateColumns","card","HomeContent","tools","DocsLogo","Communitylogo","WebsiteLogo","SupportLogo","Content","stretch","Grid","container","spacing","lg","HomePageRecentlyVisited","HomePageStarredEntities","PieAnimation","HomePageToolkit","marginTop","BackstageLogo","useVeeCodeHomePageStyles","makeStyles","pageRoot","backgroundColor","VeeCodeHomePage","Page","themeId"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[]).push([[5689],{44867:(e,t,a)=>{a.d(t,{kY:()=>Ue,Ii:()=>je,z:()=>r});var s,n,r={};a.r(r),a.d(r,{BRAND:()=>$e,DIRTY:()=>k,EMPTY_PATH:()=>_,INVALID:()=>v,NEVER:()=>At,OK:()=>b,ParseStatus:()=>g,Schema:()=>S,ZodAny:()=>oe,ZodArray:()=>le,ZodBigInt:()=>te,ZodBoolean:()=>ae,ZodBranded:()=>Me,ZodCatch:()=>Re,ZodDate:()=>se,ZodDefault:()=>Ie,ZodDiscriminatedUnion:()=>_e,ZodEffects:()=>Se,ZodEnum:()=>Ce,ZodError:()=>u,ZodFirstPartyTypeKind:()=>Ue,ZodFunction:()=>we,ZodIntersection:()=>ge,ZodIssueCode:()=>d,ZodLazy:()=>Ze,ZodLiteral:()=>Te,ZodMap:()=>be,ZodNaN:()=>Pe,ZodNativeEnum:()=>Ne,ZodNever:()=>ce,ZodNull:()=>ie,ZodNullable:()=>Ee,ZodNumber:()=>ee,ZodObject:()=>pe,ZodOptional:()=>je,ZodParsedType:()=>i,ZodPipeline:()=>Fe,ZodPromise:()=>Ae,ZodReadonly:()=>Le,ZodRecord:()=>ke,ZodSchema:()=>S,ZodSet:()=>xe,ZodString:()=>X,ZodSymbol:()=>ne,ZodTransformer:()=>Se,ZodTuple:()=>ve,ZodType:()=>S,ZodUndefined:()=>re,ZodUnion:()=>me,ZodUnknown:()=>de,ZodVoid:()=>ue,addIssueToContext:()=>y,any:()=>et,array:()=>nt,bigint:()=>Je,boolean:()=>Ye,coerce:()=>Nt,custom:()=>De,date:()=>He,datetimeRegex:()=>Y,defaultErrorMap:()=>l,discriminatedUnion:()=>dt,effect:()=>kt,enum:()=>yt,function:()=>mt,getErrorMap:()=>m,getParsedType:()=>o,instanceof:()=>Ke,intersection:()=>ct,isAborted:()=>x,isAsync:()=>T,isDirty:()=>w,isValid:()=>Z,late:()=>Ve,lazy:()=>ft,literal:()=>_t,makeIssue:()=>f,map:()=>ht,nan:()=>qe,nativeEnum:()=>gt,never:()=>at,null:()=>Qe,nullable:()=>xt,number:()=>We,object:()=>rt,objectUtil:()=>n,oboolean:()=>Ct,onumber:()=>Ot,optional:()=>bt,ostring:()=>Tt,pipeline:()=>Zt,preprocess:()=>wt,promise:()=>vt,quotelessJson:()=>c,record:()=>lt,set:()=>pt,setErrorMap:()=>p,strictObject:()=>it,string:()=>Be,symbol:()=>Ge,transformer:()=>kt,tuple:()=>ut,undefined:()=>Xe,union:()=>ot,unknown:()=>tt,util:()=>s,void:()=>st}),function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const a of e)t[a]=a;return t},e.getValidEnumValues=t=>{const a=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),s={};for(const e of a)s[e]=t[e];return e.objectValues(s)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.push(a);return t},e.find=(e,t)=>{for(const a of e)if(t(a))return a},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(s||(s={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(n||(n={}));const i=s.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),o=e=>{switch(typeof e){case"undefined":return i.undefined;case"string":return i.string;case"number":return Number.isNaN(e)?i.nan:i.number;case"boolean":return i.boolean;case"function":return i.function;case"bigint":return i.bigint;case"symbol":return i.symbol;case"object":return Array.isArray(e)?i.array:null===e?i.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?i.promise:"undefined"!=typeof Map&&e instanceof Map?i.map:"undefined"!=typeof Set&&e instanceof Set?i.set:"undefined"!=typeof Date&&e instanceof Date?i.date:i.object;default:return i.unknown}},d=s.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),c=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class u extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},a={_errors:[]},s=e=>{for(const n of e.issues)if("invalid_union"===n.code)n.unionErrors.map(s);else if("invalid_return_type"===n.code)s(n.returnTypeError);else if("invalid_arguments"===n.code)s(n.argumentsError);else if(0===n.path.length)a._errors.push(t(n));else{let e=a,s=0;for(;s<n.path.length;){const a=n.path[s];s===n.path.length-1?(e[a]=e[a]||{_errors:[]},e[a]._errors.push(t(n))):e[a]=e[a]||{_errors:[]},e=e[a],s++}}};return s(this),a}static assert(e){if(!(e instanceof u))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,s.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},a=[];for(const s of this.issues)s.path.length>0?(t[s.path[0]]=t[s.path[0]]||[],t[s.path[0]].push(e(s))):a.push(e(s));return{formErrors:a,fieldErrors:t}}get formErrors(){return this.flatten()}}u.create=e=>new u(e);const l=(e,t)=>{let a;switch(e.code){case d.invalid_type:a=e.received===i.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case d.invalid_literal:a=`Invalid literal value, expected ${JSON.stringify(e.expected,s.jsonStringifyReplacer)}`;break;case d.unrecognized_keys:a=`Unrecognized key(s) in object: ${s.joinValues(e.keys,", ")}`;break;case d.invalid_union:a="Invalid input";break;case d.invalid_union_discriminator:a=`Invalid discriminator value. Expected ${s.joinValues(e.options)}`;break;case d.invalid_enum_value:a=`Invalid enum value. Expected ${s.joinValues(e.options)}, received '${e.received}'`;break;case d.invalid_arguments:a="Invalid function arguments";break;case d.invalid_return_type:a="Invalid function return type";break;case d.invalid_date:a="Invalid date";break;case d.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(a=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(a=`${a} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?a=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?a=`Invalid input: must end with "${e.validation.endsWith}"`:s.assertNever(e.validation):a="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case d.too_small:a="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case d.too_big:a="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case d.custom:a="Invalid input";break;case d.invalid_intersection_types:a="Intersection results could not be merged";break;case d.not_multiple_of:a=`Number must be a multiple of ${e.multipleOf}`;break;case d.not_finite:a="Number must be finite";break;default:a=t.defaultError,s.assertNever(e)}return{message:a}};let h=l;function p(e){h=e}function m(){return h}const f=e=>{const{data:t,path:a,errorMaps:s,issueData:n}=e,r=[...a,...n.path||[]],i={...n,path:r};if(void 0!==n.message)return{...n,path:r,message:n.message};let o="";const d=s.filter((e=>!!e)).slice().reverse();for(const e of d)o=e(i,{data:t,defaultError:o}).message;return{...n,path:r,message:o}},_=[];function y(e,t){const a=m(),s=f({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,a,a===l?void 0:l].filter((e=>!!e))});e.common.issues.push(s)}class g{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const a=[];for(const s of t){if("aborted"===s.status)return v;"dirty"===s.status&&e.dirty(),a.push(s.value)}return{status:e.value,value:a}}static async mergeObjectAsync(e,t){const a=[];for(const e of t){const t=await e.key,s=await e.value;a.push({key:t,value:s})}return g.mergeObjectSync(e,a)}static mergeObjectSync(e,t){const a={};for(const s of t){const{key:t,value:n}=s;if("aborted"===t.status)return v;if("aborted"===n.status)return v;"dirty"===t.status&&e.dirty(),"dirty"===n.status&&e.dirty(),"__proto__"===t.value||void 0===n.value&&!s.alwaysSet||(a[t.value]=n.value)}return{status:e.value,value:a}}}const v=Object.freeze({status:"aborted"}),k=e=>({status:"dirty",value:e}),b=e=>({status:"valid",value:e}),x=e=>"aborted"===e.status,w=e=>"dirty"===e.status,Z=e=>"valid"===e.status,T=e=>"undefined"!=typeof Promise&&e instanceof Promise;var O;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(O||(O={}));class C{constructor(e,t,a,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=a,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const N=(e,t)=>{if(Z(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new u(e.common.issues);return this._error=t,this._error}}};function A(e){if(!e)return{};const{errorMap:t,invalid_type_error:a,required_error:s,description:n}=e;if(t&&(a||s))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:n}:{errorMap:(t,n)=>{const{message:r}=e;return"invalid_enum_value"===t.code?{message:r??n.defaultError}:void 0===n.data?{message:r??s??n.defaultError}:"invalid_type"!==t.code?{message:n.defaultError}:{message:r??a??n.defaultError}},description:n}}class S{get description(){return this._def.description}_getType(e){return o(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:o(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new g,ctx:{common:e.parent.common,data:e.data,parsedType:o(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(T(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const a=this.safeParse(e,t);if(a.success)return a.data;throw a.error}safeParse(e,t){const a={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:o(e)},s=this._parseSync({data:e,path:a.path,parent:a});return N(a,s)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:o(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:t});return Z(a)?{value:a.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then((e=>Z(e)?{value:e.value}:{issues:t.common.issues}))}async parseAsync(e,t){const a=await this.safeParseAsync(e,t);if(a.success)return a.data;throw a.error}async safeParseAsync(e,t){const a={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:o(e)},s=this._parse({data:e,path:a.path,parent:a}),n=await(T(s)?s:Promise.resolve(s));return N(a,n)}refine(e,t){const a=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,s)=>{const n=e(t),r=()=>s.addIssue({code:d.custom,...a(t)});return"undefined"!=typeof Promise&&n instanceof Promise?n.then((e=>!!e||(r(),!1))):!!n||(r(),!1)}))}refinement(e,t){return this._refinement(((a,s)=>!!e(a)||(s.addIssue("function"==typeof t?t(a,s):t),!1)))}_refinement(e){return new Se({schema:this,typeName:Ue.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return je.create(this,this._def)}nullable(){return Ee.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return le.create(this)}promise(){return Ae.create(this,this._def)}or(e){return me.create([this,e],this._def)}and(e){return ge.create(this,e,this._def)}transform(e){return new Se({...A(this._def),schema:this,typeName:Ue.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new Ie({...A(this._def),innerType:this,defaultValue:t,typeName:Ue.ZodDefault})}brand(){return new Me({typeName:Ue.ZodBranded,type:this,...A(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new Re({...A(this._def),innerType:this,catchValue:t,typeName:Ue.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return Fe.create(this,e)}readonly(){return Le.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const j=/^c[^\s-]{8,}$/i,E=/^[0-9a-z]+$/,I=/^[0-9A-HJKMNP-TV-Z]{26}$/i,R=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,P=/^[a-z0-9_-]{21}$/i,$=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,M=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,F=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let L;const z=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,D=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,V=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,U=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,K=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,B=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,W="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",q=new RegExp(`^${W}$`);function J(e){let t="[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),`([01]\\d|2[0-3]):[0-5]\\d(:${t})${e.precision?"+":"?"}`}function Y(e){let t=`${W}T${J(e)}`;const a=[];return a.push(e.local?"Z?":"Z"),e.offset&&a.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${a.join("|")})`,new RegExp(`^${t}$`)}function H(e,t){if(!$.test(e))return!1;try{const[a]=e.split("."),s=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),n=JSON.parse(atob(s));return!("object"!=typeof n||null===n||"typ"in n&&"JWT"!==n?.typ||!n.alg||t&&n.alg!==t)}catch{return!1}}function G(e,t){return!("v4"!==t&&t||!D.test(e))||!("v6"!==t&&t||!U.test(e))}class X extends S{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==i.string){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.string,received:t.parsedType}),v}const t=new g;let a;for(const i of this._def.checks)if("min"===i.kind)e.data.length<i.value&&(a=this._getOrReturnCtx(e,a),y(a,{code:d.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),t.dirty());else if("max"===i.kind)e.data.length>i.value&&(a=this._getOrReturnCtx(e,a),y(a,{code:d.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),t.dirty());else if("length"===i.kind){const s=e.data.length>i.value,n=e.data.length<i.value;(s||n)&&(a=this._getOrReturnCtx(e,a),s?y(a,{code:d.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):n&&y(a,{code:d.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),t.dirty())}else if("email"===i.kind)F.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"email",code:d.invalid_string,message:i.message}),t.dirty());else if("emoji"===i.kind)L||(L=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),L.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"emoji",code:d.invalid_string,message:i.message}),t.dirty());else if("uuid"===i.kind)R.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"uuid",code:d.invalid_string,message:i.message}),t.dirty());else if("nanoid"===i.kind)P.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"nanoid",code:d.invalid_string,message:i.message}),t.dirty());else if("cuid"===i.kind)j.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"cuid",code:d.invalid_string,message:i.message}),t.dirty());else if("cuid2"===i.kind)E.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"cuid2",code:d.invalid_string,message:i.message}),t.dirty());else if("ulid"===i.kind)I.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"ulid",code:d.invalid_string,message:i.message}),t.dirty());else if("url"===i.kind)try{new URL(e.data)}catch{a=this._getOrReturnCtx(e,a),y(a,{validation:"url",code:d.invalid_string,message:i.message}),t.dirty()}else"regex"===i.kind?(i.regex.lastIndex=0,i.regex.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"regex",code:d.invalid_string,message:i.message}),t.dirty())):"trim"===i.kind?e.data=e.data.trim():"includes"===i.kind?e.data.includes(i.value,i.position)||(a=this._getOrReturnCtx(e,a),y(a,{code:d.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),t.dirty()):"toLowerCase"===i.kind?e.data=e.data.toLowerCase():"toUpperCase"===i.kind?e.data=e.data.toUpperCase():"startsWith"===i.kind?e.data.startsWith(i.value)||(a=this._getOrReturnCtx(e,a),y(a,{code:d.invalid_string,validation:{startsWith:i.value},message:i.message}),t.dirty()):"endsWith"===i.kind?e.data.endsWith(i.value)||(a=this._getOrReturnCtx(e,a),y(a,{code:d.invalid_string,validation:{endsWith:i.value},message:i.message}),t.dirty()):"datetime"===i.kind?Y(i).test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{code:d.invalid_string,validation:"datetime",message:i.message}),t.dirty()):"date"===i.kind?q.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{code:d.invalid_string,validation:"date",message:i.message}),t.dirty()):"time"===i.kind?new RegExp(`^${J(i)}$`).test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{code:d.invalid_string,validation:"time",message:i.message}),t.dirty()):"duration"===i.kind?M.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"duration",code:d.invalid_string,message:i.message}),t.dirty()):"ip"===i.kind?(n=e.data,("v4"!==(r=i.version)&&r||!z.test(n))&&("v6"!==r&&r||!V.test(n))&&(a=this._getOrReturnCtx(e,a),y(a,{validation:"ip",code:d.invalid_string,message:i.message}),t.dirty())):"jwt"===i.kind?H(e.data,i.alg)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"jwt",code:d.invalid_string,message:i.message}),t.dirty()):"cidr"===i.kind?G(e.data,i.version)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"cidr",code:d.invalid_string,message:i.message}),t.dirty()):"base64"===i.kind?K.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"base64",code:d.invalid_string,message:i.message}),t.dirty()):"base64url"===i.kind?B.test(e.data)||(a=this._getOrReturnCtx(e,a),y(a,{validation:"base64url",code:d.invalid_string,message:i.message}),t.dirty()):s.assertNever(i);var n,r;return{status:t.value,value:e.data}}_regex(e,t,a){return this.refinement((t=>e.test(t)),{validation:t,code:d.invalid_string,...O.errToObj(a)})}_addCheck(e){return new X({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...O.errToObj(e)})}url(e){return this._addCheck({kind:"url",...O.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...O.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...O.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...O.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...O.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...O.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...O.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...O.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...O.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...O.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...O.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...O.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...O.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...O.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...O.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...O.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...O.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...O.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...O.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...O.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...O.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...O.errToObj(t)})}nonempty(e){return this.min(1,O.errToObj(e))}trim(){return new X({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new X({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new X({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isCIDR(){return!!this._def.checks.find((e=>"cidr"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get isBase64url(){return!!this._def.checks.find((e=>"base64url"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function Q(e,t){const a=(e.toString().split(".")[1]||"").length,s=(t.toString().split(".")[1]||"").length,n=a>s?a:s;return Number.parseInt(e.toFixed(n).replace(".",""))%Number.parseInt(t.toFixed(n).replace(".",""))/10**n}X.create=e=>new X({checks:[],typeName:Ue.ZodString,coerce:e?.coerce??!1,...A(e)});class ee extends S{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==i.number){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.number,received:t.parsedType}),v}let t;const a=new g;for(const n of this._def.checks)"int"===n.kind?s.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),y(t,{code:d.invalid_type,expected:"integer",received:"float",message:n.message}),a.dirty()):"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:d.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),a.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:d.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),a.dirty()):"multipleOf"===n.kind?0!==Q(e.data,n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:d.not_multiple_of,multipleOf:n.value,message:n.message}),a.dirty()):"finite"===n.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),y(t,{code:d.not_finite,message:n.message}),a.dirty()):s.assertNever(n);return{status:a.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,O.toString(t))}gt(e,t){return this.setLimit("min",e,!1,O.toString(t))}lte(e,t){return this.setLimit("max",e,!0,O.toString(t))}lt(e,t){return this.setLimit("max",e,!1,O.toString(t))}setLimit(e,t,a,s){return new ee({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:a,message:O.toString(s)}]})}_addCheck(e){return new ee({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:O.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:O.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:O.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:O.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:O.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:O.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:O.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:O.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:O.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find((e=>"int"===e.kind||"multipleOf"===e.kind&&s.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const a of this._def.checks){if("finite"===a.kind||"int"===a.kind||"multipleOf"===a.kind)return!0;"min"===a.kind?(null===t||a.value>t)&&(t=a.value):"max"===a.kind&&(null===e||a.value<e)&&(e=a.value)}return Number.isFinite(t)&&Number.isFinite(e)}}ee.create=e=>new ee({checks:[],typeName:Ue.ZodNumber,coerce:e?.coerce||!1,...A(e)});class te extends S{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==i.bigint)return this._getInvalidInput(e);let t;const a=new g;for(const n of this._def.checks)"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:d.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),a.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:d.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),a.dirty()):"multipleOf"===n.kind?e.data%n.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),y(t,{code:d.not_multiple_of,multipleOf:n.value,message:n.message}),a.dirty()):s.assertNever(n);return{status:a.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.bigint,received:t.parsedType}),v}gte(e,t){return this.setLimit("min",e,!0,O.toString(t))}gt(e,t){return this.setLimit("min",e,!1,O.toString(t))}lte(e,t){return this.setLimit("max",e,!0,O.toString(t))}lt(e,t){return this.setLimit("max",e,!1,O.toString(t))}setLimit(e,t,a,s){return new te({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:a,message:O.toString(s)}]})}_addCheck(e){return new te({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:O.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:O.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:O.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:O.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:O.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}te.create=e=>new te({checks:[],typeName:Ue.ZodBigInt,coerce:e?.coerce??!1,...A(e)});class ae extends S{_parse(e){if(this._def.coerce&&(e.data=Boolean(e.data)),this._getType(e)!==i.boolean){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.boolean,received:t.parsedType}),v}return b(e.data)}}ae.create=e=>new ae({typeName:Ue.ZodBoolean,coerce:e?.coerce||!1,...A(e)});class se extends S{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==i.date){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.date,received:t.parsedType}),v}if(Number.isNaN(e.data.getTime()))return y(this._getOrReturnCtx(e),{code:d.invalid_date}),v;const t=new g;let a;for(const n of this._def.checks)"min"===n.kind?e.data.getTime()<n.value&&(a=this._getOrReturnCtx(e,a),y(a,{code:d.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),t.dirty()):"max"===n.kind?e.data.getTime()>n.value&&(a=this._getOrReturnCtx(e,a),y(a,{code:d.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),t.dirty()):s.assertNever(n);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new se({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:O.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:O.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}se.create=e=>new se({checks:[],coerce:e?.coerce||!1,typeName:Ue.ZodDate,...A(e)});class ne extends S{_parse(e){if(this._getType(e)!==i.symbol){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.symbol,received:t.parsedType}),v}return b(e.data)}}ne.create=e=>new ne({typeName:Ue.ZodSymbol,...A(e)});class re extends S{_parse(e){if(this._getType(e)!==i.undefined){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.undefined,received:t.parsedType}),v}return b(e.data)}}re.create=e=>new re({typeName:Ue.ZodUndefined,...A(e)});class ie extends S{_parse(e){if(this._getType(e)!==i.null){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.null,received:t.parsedType}),v}return b(e.data)}}ie.create=e=>new ie({typeName:Ue.ZodNull,...A(e)});class oe extends S{constructor(){super(...arguments),this._any=!0}_parse(e){return b(e.data)}}oe.create=e=>new oe({typeName:Ue.ZodAny,...A(e)});class de extends S{constructor(){super(...arguments),this._unknown=!0}_parse(e){return b(e.data)}}de.create=e=>new de({typeName:Ue.ZodUnknown,...A(e)});class ce extends S{_parse(e){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.never,received:t.parsedType}),v}}ce.create=e=>new ce({typeName:Ue.ZodNever,...A(e)});class ue extends S{_parse(e){if(this._getType(e)!==i.undefined){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.void,received:t.parsedType}),v}return b(e.data)}}ue.create=e=>new ue({typeName:Ue.ZodVoid,...A(e)});class le extends S{_parse(e){const{ctx:t,status:a}=this._processInputParams(e),s=this._def;if(t.parsedType!==i.array)return y(t,{code:d.invalid_type,expected:i.array,received:t.parsedType}),v;if(null!==s.exactLength){const e=t.data.length>s.exactLength.value,n=t.data.length<s.exactLength.value;(e||n)&&(y(t,{code:e?d.too_big:d.too_small,minimum:n?s.exactLength.value:void 0,maximum:e?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),a.dirty())}if(null!==s.minLength&&t.data.length<s.minLength.value&&(y(t,{code:d.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),a.dirty()),null!==s.maxLength&&t.data.length>s.maxLength.value&&(y(t,{code:d.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),a.dirty()),t.common.async)return Promise.all([...t.data].map(((e,a)=>s.type._parseAsync(new C(t,e,t.path,a))))).then((e=>g.mergeArray(a,e)));const n=[...t.data].map(((e,a)=>s.type._parseSync(new C(t,e,t.path,a))));return g.mergeArray(a,n)}get element(){return this._def.type}min(e,t){return new le({...this._def,minLength:{value:e,message:O.toString(t)}})}max(e,t){return new le({...this._def,maxLength:{value:e,message:O.toString(t)}})}length(e,t){return new le({...this._def,exactLength:{value:e,message:O.toString(t)}})}nonempty(e){return this.min(1,e)}}function he(e){if(e instanceof pe){const t={};for(const a in e.shape){const s=e.shape[a];t[a]=je.create(he(s))}return new pe({...e._def,shape:()=>t})}return e instanceof le?new le({...e._def,type:he(e.element)}):e instanceof je?je.create(he(e.unwrap())):e instanceof Ee?Ee.create(he(e.unwrap())):e instanceof ve?ve.create(e.items.map((e=>he(e)))):e}le.create=(e,t)=>new le({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Ue.ZodArray,...A(t)});class pe extends S{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=s.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==i.object){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.object,received:t.parsedType}),v}const{status:t,ctx:a}=this._processInputParams(e),{shape:s,keys:n}=this._getCached(),r=[];if(!(this._def.catchall instanceof ce&&"strip"===this._def.unknownKeys))for(const e in a.data)n.includes(e)||r.push(e);const o=[];for(const e of n){const t=s[e],n=a.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new C(a,n,a.path,e)),alwaysSet:e in a.data})}if(this._def.catchall instanceof ce){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)o.push({key:{status:"valid",value:e},value:{status:"valid",value:a.data[e]}});else if("strict"===e)r.length>0&&(y(a,{code:d.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const s=a.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new C(a,s,a.path,t)),alwaysSet:t in a.data})}}return a.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of o){const a=await t.key,s=await t.value;e.push({key:a,value:s,alwaysSet:t.alwaysSet})}return e})).then((e=>g.mergeObjectSync(t,e))):g.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return O.errToObj,new pe({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,a)=>{const s=this._def.errorMap?.(t,a).message??a.defaultError;return"unrecognized_keys"===t.code?{message:O.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new pe({...this._def,unknownKeys:"strip"})}passthrough(){return new pe({...this._def,unknownKeys:"passthrough"})}extend(e){return new pe({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new pe({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Ue.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new pe({...this._def,catchall:e})}pick(e){const t={};for(const a of s.objectKeys(e))e[a]&&this.shape[a]&&(t[a]=this.shape[a]);return new pe({...this._def,shape:()=>t})}omit(e){const t={};for(const a of s.objectKeys(this.shape))e[a]||(t[a]=this.shape[a]);return new pe({...this._def,shape:()=>t})}deepPartial(){return he(this)}partial(e){const t={};for(const a of s.objectKeys(this.shape)){const s=this.shape[a];e&&!e[a]?t[a]=s:t[a]=s.optional()}return new pe({...this._def,shape:()=>t})}required(e){const t={};for(const a of s.objectKeys(this.shape))if(e&&!e[a])t[a]=this.shape[a];else{let e=this.shape[a];for(;e instanceof je;)e=e._def.innerType;t[a]=e}return new pe({...this._def,shape:()=>t})}keyof(){return Oe(s.objectKeys(this.shape))}}pe.create=(e,t)=>new pe({shape:()=>e,unknownKeys:"strip",catchall:ce.create(),typeName:Ue.ZodObject,...A(t)}),pe.strictCreate=(e,t)=>new pe({shape:()=>e,unknownKeys:"strict",catchall:ce.create(),typeName:Ue.ZodObject,...A(t)}),pe.lazycreate=(e,t)=>new pe({shape:e,unknownKeys:"strip",catchall:ce.create(),typeName:Ue.ZodObject,...A(t)});class me extends S{_parse(e){const{ctx:t}=this._processInputParams(e),a=this._def.options;if(t.common.async)return Promise.all(a.map((async e=>{const a={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const a of e)if("dirty"===a.result.status)return t.common.issues.push(...a.ctx.common.issues),a.result;const a=e.map((e=>new u(e.ctx.common.issues)));return y(t,{code:d.invalid_union,unionErrors:a}),v}));{let e;const s=[];for(const n of a){const a={...t,common:{...t.common,issues:[]},parent:null},r=n._parseSync({data:t.data,path:t.path,parent:a});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:a}),a.common.issues.length&&s.push(a.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const n=s.map((e=>new u(e)));return y(t,{code:d.invalid_union,unionErrors:n}),v}}get options(){return this._def.options}}me.create=(e,t)=>new me({options:e,typeName:Ue.ZodUnion,...A(t)});const fe=e=>e instanceof Ze?fe(e.schema):e instanceof Se?fe(e.innerType()):e instanceof Te?[e.value]:e instanceof Ce?e.options:e instanceof Ne?s.objectValues(e.enum):e instanceof Ie?fe(e._def.innerType):e instanceof re?[void 0]:e instanceof ie?[null]:e instanceof je?[void 0,...fe(e.unwrap())]:e instanceof Ee?[null,...fe(e.unwrap())]:e instanceof Me||e instanceof Le?fe(e.unwrap()):e instanceof Re?fe(e._def.innerType):[];class _e extends S{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==i.object)return y(t,{code:d.invalid_type,expected:i.object,received:t.parsedType}),v;const a=this.discriminator,s=t.data[a],n=this.optionsMap.get(s);return n?t.common.async?n._parseAsync({data:t.data,path:t.path,parent:t}):n._parseSync({data:t.data,path:t.path,parent:t}):(y(t,{code:d.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[a]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,a){const s=new Map;for(const a of t){const t=fe(a.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const n of t){if(s.has(n))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(n)}`);s.set(n,a)}}return new _e({typeName:Ue.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,...A(a)})}}function ye(e,t){const a=o(e),n=o(t);if(e===t)return{valid:!0,data:e};if(a===i.object&&n===i.object){const a=s.objectKeys(t),n=s.objectKeys(e).filter((e=>-1!==a.indexOf(e))),r={...e,...t};for(const a of n){const s=ye(e[a],t[a]);if(!s.valid)return{valid:!1};r[a]=s.data}return{valid:!0,data:r}}if(a===i.array&&n===i.array){if(e.length!==t.length)return{valid:!1};const a=[];for(let s=0;s<e.length;s++){const n=ye(e[s],t[s]);if(!n.valid)return{valid:!1};a.push(n.data)}return{valid:!0,data:a}}return a===i.date&&n===i.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}class ge extends S{_parse(e){const{status:t,ctx:a}=this._processInputParams(e),s=(e,s)=>{if(x(e)||x(s))return v;const n=ye(e.value,s.value);return n.valid?((w(e)||w(s))&&t.dirty(),{status:t.value,value:n.data}):(y(a,{code:d.invalid_intersection_types}),v)};return a.common.async?Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then((([e,t])=>s(e,t))):s(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}}ge.create=(e,t,a)=>new ge({left:e,right:t,typeName:Ue.ZodIntersection,...A(a)});class ve extends S{_parse(e){const{status:t,ctx:a}=this._processInputParams(e);if(a.parsedType!==i.array)return y(a,{code:d.invalid_type,expected:i.array,received:a.parsedType}),v;if(a.data.length<this._def.items.length)return y(a,{code:d.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&a.data.length>this._def.items.length&&(y(a,{code:d.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const s=[...a.data].map(((e,t)=>{const s=this._def.items[t]||this._def.rest;return s?s._parse(new C(a,e,a.path,t)):null})).filter((e=>!!e));return a.common.async?Promise.all(s).then((e=>g.mergeArray(t,e))):g.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new ve({...this._def,rest:e})}}ve.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ve({items:e,typeName:Ue.ZodTuple,rest:null,...A(t)})};class ke extends S{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:a}=this._processInputParams(e);if(a.parsedType!==i.object)return y(a,{code:d.invalid_type,expected:i.object,received:a.parsedType}),v;const s=[],n=this._def.keyType,r=this._def.valueType;for(const e in a.data)s.push({key:n._parse(new C(a,e,a.path,e)),value:r._parse(new C(a,a.data[e],a.path,e)),alwaysSet:e in a.data});return a.common.async?g.mergeObjectAsync(t,s):g.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,a){return new ke(t instanceof S?{keyType:e,valueType:t,typeName:Ue.ZodRecord,...A(a)}:{keyType:X.create(),valueType:e,typeName:Ue.ZodRecord,...A(t)})}}class be extends S{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:a}=this._processInputParams(e);if(a.parsedType!==i.map)return y(a,{code:d.invalid_type,expected:i.map,received:a.parsedType}),v;const s=this._def.keyType,n=this._def.valueType,r=[...a.data.entries()].map((([e,t],r)=>({key:s._parse(new C(a,e,a.path,[r,"key"])),value:n._parse(new C(a,t,a.path,[r,"value"]))})));if(a.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const a of r){const s=await a.key,n=await a.value;if("aborted"===s.status||"aborted"===n.status)return v;"dirty"!==s.status&&"dirty"!==n.status||t.dirty(),e.set(s.value,n.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const a of r){const s=a.key,n=a.value;if("aborted"===s.status||"aborted"===n.status)return v;"dirty"!==s.status&&"dirty"!==n.status||t.dirty(),e.set(s.value,n.value)}return{status:t.value,value:e}}}}be.create=(e,t,a)=>new be({valueType:t,keyType:e,typeName:Ue.ZodMap,...A(a)});class xe extends S{_parse(e){const{status:t,ctx:a}=this._processInputParams(e);if(a.parsedType!==i.set)return y(a,{code:d.invalid_type,expected:i.set,received:a.parsedType}),v;const s=this._def;null!==s.minSize&&a.data.size<s.minSize.value&&(y(a,{code:d.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),t.dirty()),null!==s.maxSize&&a.data.size>s.maxSize.value&&(y(a,{code:d.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const n=this._def.valueType;function r(e){const a=new Set;for(const s of e){if("aborted"===s.status)return v;"dirty"===s.status&&t.dirty(),a.add(s.value)}return{status:t.value,value:a}}const o=[...a.data.values()].map(((e,t)=>n._parse(new C(a,e,a.path,t))));return a.common.async?Promise.all(o).then((e=>r(e))):r(o)}min(e,t){return new xe({...this._def,minSize:{value:e,message:O.toString(t)}})}max(e,t){return new xe({...this._def,maxSize:{value:e,message:O.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}xe.create=(e,t)=>new xe({valueType:e,minSize:null,maxSize:null,typeName:Ue.ZodSet,...A(t)});class we extends S{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==i.function)return y(t,{code:d.invalid_type,expected:i.function,received:t.parsedType}),v;function a(e,a){return f({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,m(),l].filter((e=>!!e)),issueData:{code:d.invalid_arguments,argumentsError:a}})}function s(e,a){return f({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,m(),l].filter((e=>!!e)),issueData:{code:d.invalid_return_type,returnTypeError:a}})}const n={errorMap:t.common.contextualErrorMap},r=t.data;if(this._def.returns instanceof Ae){const e=this;return b((async function(...t){const i=new u([]),o=await e._def.args.parseAsync(t,n).catch((e=>{throw i.addIssue(a(t,e)),i})),d=await Reflect.apply(r,this,o);return await e._def.returns._def.type.parseAsync(d,n).catch((e=>{throw i.addIssue(s(d,e)),i}))}))}{const e=this;return b((function(...t){const i=e._def.args.safeParse(t,n);if(!i.success)throw new u([a(t,i.error)]);const o=Reflect.apply(r,this,i.data),d=e._def.returns.safeParse(o,n);if(!d.success)throw new u([s(o,d.error)]);return d.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new we({...this._def,args:ve.create(e).rest(de.create())})}returns(e){return new we({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,a){return new we({args:e||ve.create([]).rest(de.create()),returns:t||de.create(),typeName:Ue.ZodFunction,...A(a)})}}class Ze extends S{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}Ze.create=(e,t)=>new Ze({getter:e,typeName:Ue.ZodLazy,...A(t)});class Te extends S{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return y(t,{received:t.data,code:d.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:e.data}}get value(){return this._def.value}}function Oe(e,t){return new Ce({values:e,typeName:Ue.ZodEnum,...A(t)})}Te.create=(e,t)=>new Te({value:e,typeName:Ue.ZodLiteral,...A(t)});class Ce extends S{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),a=this._def.values;return y(t,{expected:s.joinValues(a),received:t.parsedType,code:d.invalid_type}),v}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),a=this._def.values;return y(t,{received:t.data,code:d.invalid_enum_value,options:a}),v}return b(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Ce.create(e,{...this._def,...t})}exclude(e,t=this._def){return Ce.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}Ce.create=Oe;class Ne extends S{_parse(e){const t=s.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(e);if(a.parsedType!==i.string&&a.parsedType!==i.number){const e=s.objectValues(t);return y(a,{expected:s.joinValues(e),received:a.parsedType,code:d.invalid_type}),v}if(this._cache||(this._cache=new Set(s.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=s.objectValues(t);return y(a,{received:a.data,code:d.invalid_enum_value,options:e}),v}return b(e.data)}get enum(){return this._def.values}}Ne.create=(e,t)=>new Ne({values:e,typeName:Ue.ZodNativeEnum,...A(t)});class Ae extends S{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==i.promise&&!1===t.common.async)return y(t,{code:d.invalid_type,expected:i.promise,received:t.parsedType}),v;const a=t.parsedType===i.promise?t.data:Promise.resolve(t.data);return b(a.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}Ae.create=(e,t)=>new Ae({type:e,typeName:Ue.ZodPromise,...A(t)});class Se extends S{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Ue.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:a}=this._processInputParams(e),n=this._def.effect||null,r={addIssue:e=>{y(a,e),e.fatal?t.abort():t.dirty()},get path(){return a.path}};if(r.addIssue=r.addIssue.bind(r),"preprocess"===n.type){const e=n.transform(a.data,r);if(a.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return v;const s=await this._def.schema._parseAsync({data:e,path:a.path,parent:a});return"aborted"===s.status?v:"dirty"===s.status||"dirty"===t.value?k(s.value):s}));{if("aborted"===t.value)return v;const s=this._def.schema._parseSync({data:e,path:a.path,parent:a});return"aborted"===s.status?v:"dirty"===s.status||"dirty"===t.value?k(s.value):s}}if("refinement"===n.type){const e=e=>{const t=n.refinement(e,r);if(a.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===a.common.async){const s=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});return"aborted"===s.status?v:("dirty"===s.status&&t.dirty(),e(s.value),{status:t.value,value:s.value})}return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then((a=>"aborted"===a.status?v:("dirty"===a.status&&t.dirty(),e(a.value).then((()=>({status:t.value,value:a.value}))))))}if("transform"===n.type){if(!1===a.common.async){const e=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!Z(e))return v;const s=n.transform(e.value,r);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:s}}return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then((e=>Z(e)?Promise.resolve(n.transform(e.value,r)).then((e=>({status:t.value,value:e}))):v))}s.assertNever(n)}}Se.create=(e,t,a)=>new Se({schema:e,typeName:Ue.ZodEffects,effect:t,...A(a)}),Se.createWithPreprocess=(e,t,a)=>new Se({schema:t,effect:{type:"preprocess",transform:e},typeName:Ue.ZodEffects,...A(a)});class je extends S{_parse(e){return this._getType(e)===i.undefined?b(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}je.create=(e,t)=>new je({innerType:e,typeName:Ue.ZodOptional,...A(t)});class Ee extends S{_parse(e){return this._getType(e)===i.null?b(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Ee.create=(e,t)=>new Ee({innerType:e,typeName:Ue.ZodNullable,...A(t)});class Ie extends S{_parse(e){const{ctx:t}=this._processInputParams(e);let a=t.data;return t.parsedType===i.undefined&&(a=this._def.defaultValue()),this._def.innerType._parse({data:a,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Ie.create=(e,t)=>new Ie({innerType:e,typeName:Ue.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...A(t)});class Re extends S{_parse(e){const{ctx:t}=this._processInputParams(e),a={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});return T(s)?s.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new u(a.common.issues)},input:a.data})}))):{status:"valid",value:"valid"===s.status?s.value:this._def.catchValue({get error(){return new u(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}}Re.create=(e,t)=>new Re({innerType:e,typeName:Ue.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...A(t)});class Pe extends S{_parse(e){if(this._getType(e)!==i.nan){const t=this._getOrReturnCtx(e);return y(t,{code:d.invalid_type,expected:i.nan,received:t.parsedType}),v}return{status:"valid",value:e.data}}}Pe.create=e=>new Pe({typeName:Ue.ZodNaN,...A(e)});const $e=Symbol("zod_brand");class Me extends S{_parse(e){const{ctx:t}=this._processInputParams(e),a=t.data;return this._def.type._parse({data:a,path:t.path,parent:t})}unwrap(){return this._def.type}}class Fe extends S{_parse(e){const{status:t,ctx:a}=this._processInputParams(e);if(a.common.async)return(async()=>{const e=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});return"aborted"===e.status?v:"dirty"===e.status?(t.dirty(),k(e.value)):this._def.out._parseAsync({data:e.value,path:a.path,parent:a})})();{const e=this._def.in._parseSync({data:a.data,path:a.path,parent:a});return"aborted"===e.status?v:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:a.path,parent:a})}}static create(e,t){return new Fe({in:e,out:t,typeName:Ue.ZodPipeline})}}class Le extends S{_parse(e){const t=this._def.innerType._parse(e),a=e=>(Z(e)&&(e.value=Object.freeze(e.value)),e);return T(t)?t.then((e=>a(e))):a(t)}unwrap(){return this._def.innerType}}function ze(e,t){const a="function"==typeof e?e(t):"string"==typeof e?{message:e}:e;return"string"==typeof a?{message:a}:a}function De(e,t={},a){return e?oe.create().superRefine(((s,n)=>{const r=e(s);if(r instanceof Promise)return r.then((e=>{if(!e){const e=ze(t,s),r=e.fatal??a??!0;n.addIssue({code:"custom",...e,fatal:r})}}));if(!r){const e=ze(t,s),r=e.fatal??a??!0;n.addIssue({code:"custom",...e,fatal:r})}})):oe.create()}Le.create=(e,t)=>new Le({innerType:e,typeName:Ue.ZodReadonly,...A(t)});const Ve={object:pe.lazycreate};var Ue;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Ue||(Ue={}));const Ke=(e,t={message:`Input not instance of ${e.name}`})=>De((t=>t instanceof e),t),Be=X.create,We=ee.create,qe=Pe.create,Je=te.create,Ye=ae.create,He=se.create,Ge=ne.create,Xe=re.create,Qe=ie.create,et=oe.create,tt=de.create,at=ce.create,st=ue.create,nt=le.create,rt=pe.create,it=pe.strictCreate,ot=me.create,dt=_e.create,ct=ge.create,ut=ve.create,lt=ke.create,ht=be.create,pt=xe.create,mt=we.create,ft=Ze.create,_t=Te.create,yt=Ce.create,gt=Ne.create,vt=Ae.create,kt=Se.create,bt=je.create,xt=Ee.create,wt=Se.createWithPreprocess,Zt=Fe.create,Tt=()=>Be().optional(),Ot=()=>We().optional(),Ct=()=>Ye().optional(),Nt={string:e=>X.create({...e,coerce:!0}),number:e=>ee.create({...e,coerce:!0}),boolean:e=>ae.create({...e,coerce:!0}),bigint:e=>te.create({...e,coerce:!0}),date:e=>se.create({...e,coerce:!0})},At=v},48347:(e,t,a)=>{a.d(t,{J:()=>s});const s=(0,a(22097).createApiRef)({id:"core.translation"})}}]);
2
- //# sourceMappingURL=5689.ba470bd3.chunk.js.map
2
+ //# sourceMappingURL=5689.44adcfd6.chunk.js.map