@veecode-platform/plugin-veecode-homepage-dynamic 0.2.2 → 0.2.3

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 (85) hide show
  1. package/dist/components/VeeCodeHomePage.esm.js +0 -2
  2. package/dist/components/VeeCodeHomePage.esm.js.map +1 -1
  3. package/dist-scalprum/plugin-manifest.json +3 -3
  4. package/dist-scalprum/static/{1213.412457e8.chunk.js → 1213.aff960fc.chunk.js} +3 -3
  5. package/dist-scalprum/static/1213.aff960fc.chunk.js.map +1 -0
  6. package/dist-scalprum/static/2211.f5266f49.chunk.js +29 -0
  7. package/dist-scalprum/static/2211.f5266f49.chunk.js.map +1 -0
  8. package/dist-scalprum/static/3837.e9b60659.chunk.js +2 -0
  9. package/dist-scalprum/static/3837.e9b60659.chunk.js.map +1 -0
  10. package/dist-scalprum/static/41.53c70bd6.chunk.js +2 -0
  11. package/dist-scalprum/static/41.53c70bd6.chunk.js.map +1 -0
  12. package/dist-scalprum/static/{4197.8a8b877f.chunk.js → 4197.0e023080.chunk.js} +2 -2
  13. package/dist-scalprum/static/{4197.8a8b877f.chunk.js.map → 4197.0e023080.chunk.js.map} +1 -1
  14. package/dist-scalprum/static/{4864.0a352dc6.chunk.js → 4864.3cede332.chunk.js} +2 -2
  15. package/dist-scalprum/static/{4864.0a352dc6.chunk.js.map → 4864.3cede332.chunk.js.map} +1 -1
  16. package/dist-scalprum/static/{5255.21365d93.chunk.js → 5255.31f4471a.chunk.js} +2 -2
  17. package/dist-scalprum/static/{5255.21365d93.chunk.js.map → 5255.31f4471a.chunk.js.map} +1 -1
  18. package/dist-scalprum/static/5749.9f83e5fe.chunk.js +179 -0
  19. package/dist-scalprum/static/5749.9f83e5fe.chunk.js.map +1 -0
  20. package/dist-scalprum/static/{5888.d5ff87d6.chunk.js → 5888.39088266.chunk.js} +1 -1
  21. package/dist-scalprum/static/{5888.d5ff87d6.chunk.js.map → 5888.39088266.chunk.js.map} +1 -1
  22. package/dist-scalprum/static/6123.b8f54e25.chunk.js +2 -0
  23. package/dist-scalprum/static/6123.b8f54e25.chunk.js.map +1 -0
  24. package/dist-scalprum/static/{6356.0690b575.chunk.js → 6356.a59d5e2e.chunk.js} +2 -2
  25. package/dist-scalprum/static/{6356.0690b575.chunk.js.map → 6356.a59d5e2e.chunk.js.map} +1 -1
  26. package/dist-scalprum/static/{6700.f2dbf122.chunk.js → 6700.8ab31ec1.chunk.js} +1 -1
  27. package/dist-scalprum/static/{6700.f2dbf122.chunk.js.map → 6700.8ab31ec1.chunk.js.map} +1 -1
  28. package/dist-scalprum/static/8692.8ab75fef.chunk.js +2 -0
  29. package/dist-scalprum/static/8692.8ab75fef.chunk.js.map +1 -0
  30. package/dist-scalprum/static/9541.dde4bd87.chunk.js +3 -0
  31. package/dist-scalprum/static/9541.dde4bd87.chunk.js.map +1 -0
  32. package/dist-scalprum/static/{9633.d7b4641e.chunk.js → 9633.47d13d21.chunk.js} +2 -2
  33. package/dist-scalprum/static/{9633.d7b4641e.chunk.js.map → 9633.47d13d21.chunk.js.map} +1 -1
  34. package/dist-scalprum/static/{exposed-PluginRoot.bf5e0b03.chunk.js → exposed-PluginRoot.221d8f69.chunk.js} +2 -2
  35. package/dist-scalprum/static/{exposed-PluginRoot.bf5e0b03.chunk.js.map → exposed-PluginRoot.221d8f69.chunk.js.map} +1 -1
  36. package/dist-scalprum/{veecode-platform.plugin-veecode-homepage.52a7b0ce89460aa40ee1.js → veecode-platform.plugin-veecode-homepage.ea406b87d3dc1c912550.js} +2 -2
  37. package/dist-scalprum/veecode-platform.plugin-veecode-homepage.ea406b87d3dc1c912550.js.map +1 -0
  38. package/package.json +1 -1
  39. package/dist/components/headerComponent/HeaderComponent.esm.js +0 -67
  40. package/dist/components/headerComponent/HeaderComponent.esm.js.map +0 -1
  41. package/dist/components/headerComponent/iconButtonComponent/IconButtonComponent.esm.js +0 -35
  42. package/dist/components/headerComponent/iconButtonComponent/IconButtonComponent.esm.js.map +0 -1
  43. package/dist/components/headerComponent/logout/Logout.esm.js +0 -30
  44. package/dist/components/headerComponent/logout/Logout.esm.js.map +0 -1
  45. package/dist/components/headerComponent/menuItems/MenuItems.esm.js +0 -134
  46. package/dist/components/headerComponent/menuItems/MenuItems.esm.js.map +0 -1
  47. package/dist/components/headerComponent/notifications/Notifications.esm.js +0 -72
  48. package/dist/components/headerComponent/notifications/Notifications.esm.js.map +0 -1
  49. package/dist/components/headerComponent/profile/Profle.esm.js +0 -19
  50. package/dist/components/headerComponent/profile/Profle.esm.js.map +0 -1
  51. package/dist/components/headerComponent/searchComponent/SearchBar.esm.js +0 -113
  52. package/dist/components/headerComponent/searchComponent/SearchBar.esm.js.map +0 -1
  53. package/dist/components/headerComponent/searchComponent/SearchComponent.esm.js +0 -13
  54. package/dist/components/headerComponent/searchComponent/SearchComponent.esm.js.map +0 -1
  55. package/dist/components/headerComponent/searchComponent/SearchInput.esm.js +0 -32
  56. package/dist/components/headerComponent/searchComponent/SearchInput.esm.js.map +0 -1
  57. package/dist/components/headerComponent/searchComponent/SearchOption.esm.js +0 -50
  58. package/dist/components/headerComponent/searchComponent/SearchOption.esm.js.map +0 -1
  59. package/dist/components/headerComponent/searchComponent/SearchResultItem.esm.js +0 -44
  60. package/dist/components/headerComponent/searchComponent/SearchResultItem.esm.js.map +0 -1
  61. package/dist/components/headerComponent/toggleTheme/ToggleTheme.esm.js +0 -37
  62. package/dist/components/headerComponent/toggleTheme/ToggleTheme.esm.js.map +0 -1
  63. package/dist/hooks/useDebouncedCallback.esm.js +0 -26
  64. package/dist/hooks/useDebouncedCallback.esm.js.map +0 -1
  65. package/dist/utils/stringUtils.esm.js +0 -35
  66. package/dist/utils/stringUtils.esm.js.map +0 -1
  67. package/dist-scalprum/static/1213.412457e8.chunk.js.map +0 -1
  68. package/dist-scalprum/static/1853.9c4997f9.chunk.js +0 -2
  69. package/dist-scalprum/static/1853.9c4997f9.chunk.js.map +0 -1
  70. package/dist-scalprum/static/41.a129355f.chunk.js +0 -2
  71. package/dist-scalprum/static/41.a129355f.chunk.js.map +0 -1
  72. package/dist-scalprum/static/5211.b1dc9542.chunk.js +0 -3
  73. package/dist-scalprum/static/5211.b1dc9542.chunk.js.map +0 -1
  74. package/dist-scalprum/static/5571.73942ff6.chunk.js +0 -206
  75. package/dist-scalprum/static/5571.73942ff6.chunk.js.map +0 -1
  76. package/dist-scalprum/static/6123.94c2f019.chunk.js +0 -2
  77. package/dist-scalprum/static/6123.94c2f019.chunk.js.map +0 -1
  78. package/dist-scalprum/static/6460.86145f5a.chunk.js +0 -2
  79. package/dist-scalprum/static/6460.86145f5a.chunk.js.map +0 -1
  80. package/dist-scalprum/static/6921.efadb98d.chunk.js +0 -2
  81. package/dist-scalprum/static/6921.efadb98d.chunk.js.map +0 -1
  82. package/dist-scalprum/veecode-platform.plugin-veecode-homepage.52a7b0ce89460aa40ee1.js.map +0 -1
  83. /package/dist-scalprum/static/{1213.412457e8.chunk.js.LICENSE.txt → 1213.aff960fc.chunk.js.LICENSE.txt} +0 -0
  84. /package/dist-scalprum/static/{5571.73942ff6.chunk.js.LICENSE.txt → 5749.9f83e5fe.chunk.js.LICENSE.txt} +0 -0
  85. /package/dist-scalprum/static/{5211.b1dc9542.chunk.js.LICENSE.txt → 9541.dde4bd87.chunk.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[]).push([[6700],{16700:(t,e,i)=>{i.r(e),i.d(e,{Content:()=>k});var n=i(31085),o=i(39970),a=i(72501),r=i(42899),s=i(95478),d=i(9605),l=i(10394),c=i(37976);const m=(0,c.makeStyles)(t=>({contentModal:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"80%",height:"auto"},linkText:{marginBottom:t.spacing(1.5)}}),{name:"PluginHomeContentModal"}),g=t=>{const{modalContent:e,linkContent:i}=t,a=m(),[r,c]=(0,s.useState)(!1);return(0,n.jsxs)("div",{className:a.linkText,"data-testid":"content-modal-container",children:[(0,n.jsx)(o.N_,{to:"#",component:"button",variant:"h6",underline:"none",onClick:()=>c(!0),children:i}),(0,n.jsx)(d.A,{open:r,onClose:()=>c(!1),"aria-labelledby":"content-modal","data-testid":"content-modal",children:(0,n.jsx)(l.A,{className:a.contentModal,"data-testid":"content-modal-open",children:e})})]})},u=(0,c.makeStyles)(t=>({cardTitleIcon:{verticalAlign:"bottom",marginLeft:"-4px"},contentActionContainer:{marginTop:t.spacing(1.5),marginBottom:t.spacing(1.5)},contentModal:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"80%",height:"auto"},imageSize:{width:"100%",height:"100%"},link:{display:"inline-flex",alignItems:"center",textDecoration:"none",color:`${t.palette.link}`,"&:hover":{background:"transparent"}},linkText:{marginBottom:t.spacing(1.5)},videoContainer:{borderRadius:"10px",width:"100%",height:"auto",background:`${t.palette.background.default}`}}),{name:"HomeQuickStartCard"});var p=i(98254),h=i(55138);const k=t=>{const e=u(),{t:i}=(0,p.useTranslationRef)(h.g);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(g,{modalContent:t.image,linkContent:t.modalTitle||i("quickStart.title")}),(0,n.jsx)(a.A,{variant:"body1",paragraph:!0,children:t.cardDescription||i("quickStart.description")}),(0,n.jsx)(g,{modalContent:t.image,linkContent:t.image}),(0,n.jsxs)(r.A,{container:!0,alignItems:"center",className:e.contentActionContainer,children:[t.downloadImage&&(0,n.jsx)(r.A,{item:!0,children:t.downloadImage}),(0,n.jsx)(r.A,{item:!0,children:(0,n.jsx)(o.N_,{to:t.docsLink||"https://backstage.io/docs/getting-started/","data-testid":"quick-start-link-to-docs",underline:"none",variant:"h6",className:e.link,children:t.docsLinkTitle||i("quickStart.learnMoreLinkTitle")})})]}),t.additionalContent&&t.additionalContent||t.video&&t.video]})}},55138:(t,e,i)=>{i.d(e,{g:()=>n});const n=(0,i(98254).createTranslationRef)({id:"home",messages:{addWidgetDialog:{title:"Add new widget to dashboard"},customHomepageButtons:{edit:"Edit",restoreDefaults:"Restore defaults",clearAll:"Clear all",addWidget:"Add widget",save:"Save"},customHomepage:{noWidgets:"No widgets added. Start by clicking the 'Add widget' button."},widgetSettingsOverlay:{editSettingsTooptip:"Edit settings",deleteWidgetTooltip:"Delete widget",submitButtonTitle:"Submit",cancelButtonTitle:"Cancel"},starredEntityListItem:{removeFavoriteEntityTitle:"Remove entity from favorites"},visitList:{empty:{title:"There are no visits to show yet.",description:"Once you start using Backstage, your visits will appear here as a quick link to carry on where you left off."},few:{title:"The more pages you visit, the more pages will appear here."}},quickStart:{title:"Onboarding",description:"Get started with Backstage",learnMoreLinkTitle:"Learn more"},starredEntities:{noStarredEntitiesMessage:"Click the star beside an entity name to add it to this list!"},visitedByType:{action:{viewMore:"View more",viewLess:"View less"}},featuredDocsCard:{learnMoreTitle:"LEARN MORE",empty:{title:"No documents to show",description:"Create your own document. Check out our Getting Started Information",learnMoreLinkTitle:"DOCS"}}}})}}]);
2
- //# sourceMappingURL=6700.f2dbf122.chunk.js.map
2
+ //# sourceMappingURL=6700.8ab31ec1.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"static/6700.f2dbf122.chunk.js","mappings":"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","sources":["webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home-react/dist/components/ContentModal.esm.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/homePageComponents/QuickStart/styles.esm.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/homePageComponents/QuickStart/Content.esm.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/translation.esm.js"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { useState } from 'react';\nimport { Link } from '@backstage/core-components';\nimport Modal from '@material-ui/core/Modal';\nimport Box from '@material-ui/core/Box';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n (theme) => ({\n contentModal: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"80%\",\n height: \"auto\"\n },\n linkText: {\n marginBottom: theme.spacing(1.5)\n }\n }),\n { name: \"PluginHomeContentModal\" }\n);\nconst ContentModal = (props) => {\n const { modalContent, linkContent } = props;\n const styles = useStyles();\n const [open, setOpen] = useState(false);\n return /* @__PURE__ */ jsxs(\"div\", { className: styles.linkText, \"data-testid\": \"content-modal-container\", children: [\n /* @__PURE__ */ jsx(\n Link,\n {\n to: \"#\",\n component: \"button\",\n variant: \"h6\",\n underline: \"none\",\n onClick: () => setOpen(true),\n children: linkContent\n }\n ),\n /* @__PURE__ */ jsx(\n Modal,\n {\n open,\n onClose: () => setOpen(false),\n \"aria-labelledby\": \"content-modal\",\n \"data-testid\": \"content-modal\",\n children: /* @__PURE__ */ jsx(Box, { className: styles.contentModal, \"data-testid\": \"content-modal-open\", children: modalContent })\n }\n )\n ] });\n};\n\nexport { ContentModal, useStyles };\n//# sourceMappingURL=ContentModal.esm.js.map\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n (theme) => ({\n cardTitleIcon: {\n verticalAlign: \"bottom\",\n marginLeft: \"-4px\"\n },\n contentActionContainer: {\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(1.5)\n },\n contentModal: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"80%\",\n height: \"auto\"\n },\n imageSize: { width: \"100%\", height: \"100%\" },\n link: {\n display: \"inline-flex\",\n alignItems: \"center\",\n textDecoration: \"none\",\n color: `${theme.palette.link}`,\n \"&:hover\": {\n background: \"transparent\"\n }\n },\n linkText: {\n marginBottom: theme.spacing(1.5)\n },\n videoContainer: {\n borderRadius: \"10px\",\n width: \"100%\",\n height: \"auto\",\n background: `${theme.palette.background.default}`\n }\n }),\n { name: \"HomeQuickStartCard\" }\n);\n\nexport { useStyles };\n//# sourceMappingURL=styles.esm.js.map\n","import { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nimport { Link } from '@backstage/core-components';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport { ContentModal } from '@backstage/plugin-home-react';\nimport { useStyles } from './styles.esm.js';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { homeTranslationRef } from '../../translation.esm.js';\n\nconst Content = (props) => {\n const styles = useStyles();\n const { t } = useTranslationRef(homeTranslationRef);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n ContentModal,\n {\n modalContent: props.image,\n linkContent: props.modalTitle || t(\"quickStart.title\")\n }\n ),\n /* @__PURE__ */ jsx(Typography, { variant: \"body1\", paragraph: true, children: props.cardDescription || t(\"quickStart.description\") }),\n /* @__PURE__ */ jsx(ContentModal, { modalContent: props.image, linkContent: props.image }),\n /* @__PURE__ */ jsxs(\n Grid,\n {\n container: true,\n alignItems: \"center\",\n className: styles.contentActionContainer,\n children: [\n props.downloadImage && /* @__PURE__ */ jsx(Grid, { item: true, children: props.downloadImage }),\n /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(\n Link,\n {\n to: props.docsLink || \"https://backstage.io/docs/getting-started/\",\n \"data-testid\": \"quick-start-link-to-docs\",\n underline: \"none\",\n variant: \"h6\",\n className: styles.link,\n children: props.docsLinkTitle || t(\"quickStart.learnMoreLinkTitle\")\n }\n ) })\n ]\n }\n ),\n props.additionalContent && props.additionalContent || props.video && props.video\n ] });\n};\n\nexport { Content };\n//# sourceMappingURL=Content.esm.js.map\n","import { createTranslationRef } from '@backstage/frontend-plugin-api';\n\nconst homeTranslationRef = createTranslationRef({\n id: \"home\",\n messages: {\n addWidgetDialog: {\n title: \"Add new widget to dashboard\"\n },\n customHomepageButtons: {\n edit: \"Edit\",\n restoreDefaults: \"Restore defaults\",\n clearAll: \"Clear all\",\n addWidget: \"Add widget\",\n save: \"Save\"\n },\n customHomepage: {\n noWidgets: \"No widgets added. Start by clicking the 'Add widget' button.\"\n },\n widgetSettingsOverlay: {\n editSettingsTooptip: \"Edit settings\",\n deleteWidgetTooltip: \"Delete widget\",\n submitButtonTitle: \"Submit\",\n cancelButtonTitle: \"Cancel\"\n },\n starredEntityListItem: {\n removeFavoriteEntityTitle: \"Remove entity from favorites\"\n },\n visitList: {\n empty: {\n title: \"There are no visits to show yet.\",\n description: \"Once you start using Backstage, your visits will appear here as a quick link to carry on where you left off.\"\n },\n few: {\n title: \"The more pages you visit, the more pages will appear here.\"\n }\n },\n quickStart: {\n title: \"Onboarding\",\n description: \"Get started with Backstage\",\n learnMoreLinkTitle: \"Learn more\"\n },\n starredEntities: {\n noStarredEntitiesMessage: \"Click the star beside an entity name to add it to this list!\"\n },\n visitedByType: {\n action: {\n viewMore: \"View more\",\n viewLess: \"View less\"\n }\n },\n featuredDocsCard: {\n learnMoreTitle: \"LEARN MORE\",\n empty: {\n title: \"No documents to show\",\n description: \"Create your own document. Check out our Getting Started Information\",\n learnMoreLinkTitle: \"DOCS\"\n }\n }\n }\n});\n\nexport { homeTranslationRef };\n//# sourceMappingURL=translation.esm.js.map\n"],"names":["useStyles","makeStyles","theme","contentModal","position","top","left","transform","width","height","linkText","marginBottom","spacing","name","ContentModal","props","modalContent","linkContent","styles","open","setOpen","useState","jsxs","className","children","jsx","to","component","variant","underline","onClick","Modal","onClose","Box","cardTitleIcon","verticalAlign","marginLeft","contentActionContainer","marginTop","imageSize","link","display","alignItems","textDecoration","color","palette","background","videoContainer","borderRadius","default","Content","t","useTranslationRef","Fragment","image","modalTitle","Typography","paragraph","cardDescription","Grid","container","downloadImage","item","docsLink","docsLinkTitle","additionalContent","video","homeTranslationRef","createTranslationRef","id","messages","addWidgetDialog","title","customHomepageButtons","edit","restoreDefaults","clearAll","addWidget","save","customHomepage","noWidgets","widgetSettingsOverlay","editSettingsTooptip","deleteWidgetTooltip","submitButtonTitle","cancelButtonTitle","starredEntityListItem","removeFavoriteEntityTitle","visitList","empty","description","few","quickStart","learnMoreLinkTitle","starredEntities","noStarredEntitiesMessage","visitedByType","action","viewMore","viewLess","featuredDocsCard","learnMoreTitle"],"sourceRoot":""}
1
+ {"version":3,"file":"static/6700.8ab31ec1.chunk.js","mappings":"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","sources":["webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home-react/dist/components/ContentModal.esm.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/homePageComponents/QuickStart/styles.esm.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/homePageComponents/QuickStart/Content.esm.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/translation.esm.js"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { useState } from 'react';\nimport { Link } from '@backstage/core-components';\nimport Modal from '@material-ui/core/Modal';\nimport Box from '@material-ui/core/Box';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n (theme) => ({\n contentModal: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"80%\",\n height: \"auto\"\n },\n linkText: {\n marginBottom: theme.spacing(1.5)\n }\n }),\n { name: \"PluginHomeContentModal\" }\n);\nconst ContentModal = (props) => {\n const { modalContent, linkContent } = props;\n const styles = useStyles();\n const [open, setOpen] = useState(false);\n return /* @__PURE__ */ jsxs(\"div\", { className: styles.linkText, \"data-testid\": \"content-modal-container\", children: [\n /* @__PURE__ */ jsx(\n Link,\n {\n to: \"#\",\n component: \"button\",\n variant: \"h6\",\n underline: \"none\",\n onClick: () => setOpen(true),\n children: linkContent\n }\n ),\n /* @__PURE__ */ jsx(\n Modal,\n {\n open,\n onClose: () => setOpen(false),\n \"aria-labelledby\": \"content-modal\",\n \"data-testid\": \"content-modal\",\n children: /* @__PURE__ */ jsx(Box, { className: styles.contentModal, \"data-testid\": \"content-modal-open\", children: modalContent })\n }\n )\n ] });\n};\n\nexport { ContentModal, useStyles };\n//# sourceMappingURL=ContentModal.esm.js.map\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n (theme) => ({\n cardTitleIcon: {\n verticalAlign: \"bottom\",\n marginLeft: \"-4px\"\n },\n contentActionContainer: {\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(1.5)\n },\n contentModal: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"80%\",\n height: \"auto\"\n },\n imageSize: { width: \"100%\", height: \"100%\" },\n link: {\n display: \"inline-flex\",\n alignItems: \"center\",\n textDecoration: \"none\",\n color: `${theme.palette.link}`,\n \"&:hover\": {\n background: \"transparent\"\n }\n },\n linkText: {\n marginBottom: theme.spacing(1.5)\n },\n videoContainer: {\n borderRadius: \"10px\",\n width: \"100%\",\n height: \"auto\",\n background: `${theme.palette.background.default}`\n }\n }),\n { name: \"HomeQuickStartCard\" }\n);\n\nexport { useStyles };\n//# sourceMappingURL=styles.esm.js.map\n","import { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nimport { Link } from '@backstage/core-components';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport { ContentModal } from '@backstage/plugin-home-react';\nimport { useStyles } from './styles.esm.js';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { homeTranslationRef } from '../../translation.esm.js';\n\nconst Content = (props) => {\n const styles = useStyles();\n const { t } = useTranslationRef(homeTranslationRef);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n ContentModal,\n {\n modalContent: props.image,\n linkContent: props.modalTitle || t(\"quickStart.title\")\n }\n ),\n /* @__PURE__ */ jsx(Typography, { variant: \"body1\", paragraph: true, children: props.cardDescription || t(\"quickStart.description\") }),\n /* @__PURE__ */ jsx(ContentModal, { modalContent: props.image, linkContent: props.image }),\n /* @__PURE__ */ jsxs(\n Grid,\n {\n container: true,\n alignItems: \"center\",\n className: styles.contentActionContainer,\n children: [\n props.downloadImage && /* @__PURE__ */ jsx(Grid, { item: true, children: props.downloadImage }),\n /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(\n Link,\n {\n to: props.docsLink || \"https://backstage.io/docs/getting-started/\",\n \"data-testid\": \"quick-start-link-to-docs\",\n underline: \"none\",\n variant: \"h6\",\n className: styles.link,\n children: props.docsLinkTitle || t(\"quickStart.learnMoreLinkTitle\")\n }\n ) })\n ]\n }\n ),\n props.additionalContent && props.additionalContent || props.video && props.video\n ] });\n};\n\nexport { Content };\n//# sourceMappingURL=Content.esm.js.map\n","import { createTranslationRef } from '@backstage/frontend-plugin-api';\n\nconst homeTranslationRef = createTranslationRef({\n id: \"home\",\n messages: {\n addWidgetDialog: {\n title: \"Add new widget to dashboard\"\n },\n customHomepageButtons: {\n edit: \"Edit\",\n restoreDefaults: \"Restore defaults\",\n clearAll: \"Clear all\",\n addWidget: \"Add widget\",\n save: \"Save\"\n },\n customHomepage: {\n noWidgets: \"No widgets added. Start by clicking the 'Add widget' button.\"\n },\n widgetSettingsOverlay: {\n editSettingsTooptip: \"Edit settings\",\n deleteWidgetTooltip: \"Delete widget\",\n submitButtonTitle: \"Submit\",\n cancelButtonTitle: \"Cancel\"\n },\n starredEntityListItem: {\n removeFavoriteEntityTitle: \"Remove entity from favorites\"\n },\n visitList: {\n empty: {\n title: \"There are no visits to show yet.\",\n description: \"Once you start using Backstage, your visits will appear here as a quick link to carry on where you left off.\"\n },\n few: {\n title: \"The more pages you visit, the more pages will appear here.\"\n }\n },\n quickStart: {\n title: \"Onboarding\",\n description: \"Get started with Backstage\",\n learnMoreLinkTitle: \"Learn more\"\n },\n starredEntities: {\n noStarredEntitiesMessage: \"Click the star beside an entity name to add it to this list!\"\n },\n visitedByType: {\n action: {\n viewMore: \"View more\",\n viewLess: \"View less\"\n }\n },\n featuredDocsCard: {\n learnMoreTitle: \"LEARN MORE\",\n empty: {\n title: \"No documents to show\",\n description: \"Create your own document. Check out our Getting Started Information\",\n learnMoreLinkTitle: \"DOCS\"\n }\n }\n }\n});\n\nexport { homeTranslationRef };\n//# sourceMappingURL=translation.esm.js.map\n"],"names":["useStyles","makeStyles","theme","contentModal","position","top","left","transform","width","height","linkText","marginBottom","spacing","name","ContentModal","props","modalContent","linkContent","styles","open","setOpen","useState","jsxs","className","children","jsx","to","component","variant","underline","onClick","Modal","onClose","Box","cardTitleIcon","verticalAlign","marginLeft","contentActionContainer","marginTop","imageSize","link","display","alignItems","textDecoration","color","palette","background","videoContainer","borderRadius","default","Content","t","useTranslationRef","Fragment","image","modalTitle","Typography","paragraph","cardDescription","Grid","container","downloadImage","item","docsLink","docsLinkTitle","additionalContent","video","homeTranslationRef","createTranslationRef","id","messages","addWidgetDialog","title","customHomepageButtons","edit","restoreDefaults","clearAll","addWidget","save","customHomepage","noWidgets","widgetSettingsOverlay","editSettingsTooptip","deleteWidgetTooltip","submitButtonTitle","cancelButtonTitle","starredEntityListItem","removeFavoriteEntityTitle","visitList","empty","description","few","quickStart","learnMoreLinkTitle","starredEntities","noStarredEntitiesMessage","visitedByType","action","viewMore","viewLess","featuredDocsCard","learnMoreTitle"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[]).push([[8692],{60685:(e,t,i)=>{i.r(t),i.d(t,{VeeCodeHomePage:()=>Q});var n=i(31085),r=i(23630),l=i(6530),s=i(36521),o=i(23386),a=i(62142);const d=i.p+"static/avatar.70448f05..svg",c=({width:e,height:t})=>{const{profile:i,loading:r}=(0,s.s)();var l;return(0,n.jsx)(n.Fragment,{children:r?(0,n.jsx)(a.A,{variant:"circular",sx:{width:e,height:t}}):(0,n.jsx)(o.A,{src:null!==(l=i.picture)&&void 0!==l?l:d,sx:{width:e,height:t,objectFit:"cover"},alt:"Profile picture"})})};var h=i(65990),x=i(9490),p=i(95478);const g=i.p+"static/waves.6d6cf859..svg",u=()=>{var e,t,i,o,d,u,v,m,j,y,f,A,w,b,C,k;const[L,z]=(0,p.useState)(!1),{displayName:S}=(0,s.s)(),M=(0,l.A)(),F="dark"===M.palette.mode,H=(0,x.useApi)(x.configApiRef);var I;const D=null!==(I=F?null===(o=H.app)||void 0===o||null===(i=o.branding)||void 0===i||null===(t=i.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(m=H.app)||void 0===m||null===(v=m.branding)||void 0===v||null===(u=v.theme)||void 0===u||null===(d=u.light)||void 0===d?void 0:d.headerColor1)&&void 0!==I?I:"#45556D";var T;const W=null!==(T=F?null===(A=H.app)||void 0===A||null===(f=A.branding)||void 0===f||null===(y=f.theme)||void 0===y||null===(j=y.dark)||void 0===j?void 0:j.headerColor2:null===(k=H.app)||void 0===k||null===(C=k.branding)||void 0===C||null===(b=C.theme)||void 0===b||null===(w=b.light)||void 0===w?void 0:w.headerColor2)&&void 0!==T?T:"#86F4CE";return(0,p.useEffect)(()=>{z(!0),setTimeout(()=>z(!1),1e3)},[]),(0,n.jsxs)(r.A,{sx:{background:`linear-gradient(90deg, ${D} 0%, ${W} 100%)`,width:"100%",minHeight:"210px",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden",[M.breakpoints.only("xs")]:{height:"380px",padding:"1rem 0"}},children:[(0,n.jsxs)(r.A,{sx:{width:"90%",margin:"auto",display:"flex",alignItems:"center",gap:"2rem",[M.breakpoints.only("xs")]:{flexDirection:"column",padding:"1rem 0"}},children:[(0,n.jsx)(r.A,{children:(0,n.jsx)(c,{width:"120px",height:"120px"})}),(0,n.jsxs)(r.A,{sx:{[M.breakpoints.only("xs")]:{textAlign:"center",color:M.palette.grey[100],maxWidth:"70vw"}},children:[(0,n.jsxs)(h.A,{variant:"h3",color:"#FAFAFA",children:["Welcome back",L?(0,n.jsx)(a.A,{variant:"rectangular",width:150,height:80,style:{display:"inline"}}):(0,n.jsxs)(n.Fragment,{children:[", ",(()=>{const e=S;return/^[^:/]+:[^/]+\/[^/]+$/.test(e)?e.charAt(e.indexOf("/")+1).toLocaleUpperCase("en-US").concat(e.substring(e.indexOf("/")+2)):e})()," 👋"]})," "]}),(0,n.jsx)(h.A,{variant:"h6",color:"#FAFAFA",children:"Let's get started."})]})]}),(0,n.jsx)("img",{src:g,alt:"",style:{width:"100%",height:"250px",objectFit:"cover",position:"absolute",top:"-20%",left:"0",opacity:"0.7"}})]})};var v=i(6505),m=i(82971),j=i(24848),y=i(16454);const f=()=>{const e=(0,l.A)();return(0,n.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,n.jsxs)("g",{children:[(0,n.jsx)("g",{children:(0,n.jsxs)("g",{children:[(0,n.jsx)("circle",{style:{fill:e.palette.grey[600]},cx:"250.399",cy:"91.549",r:"58.694"}),(0,n.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,n.jsx)("circle",{style:{fill:e.palette.grey[600]},cx:"443.954",cy:"168.708",r:"58.694"}),(0,n.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,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{}),(0,n.jsx)("g",{})]})})},A=()=>{const e=(0,l.A)();return(0,n.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,n.jsx)("path",{fill:e.palette.grey[600],fillRule:"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",clipRule:"evenodd"})})},w=()=>{const e=(0,l.A)();return(0,n.jsxs)("svg",{width:"45px",height:"45px",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",style:{cursor:"pointer "},children:[(0,n.jsx)("rect",{x:"0",fill:"none",width:"20",height:"20"}),(0,n.jsx)("g",{fill:e.palette.grey[600],children:(0,n.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"})})]})},b=()=>{const e=(0,l.A)();return(0,n.jsxs)("svg",{width:"45px",height:"45px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{cursor:"pointer "},children:[(0,n.jsx)("title",{children:"support"}),(0,n.jsx)("rect",{width:"24",height:"24",fill:"none"}),(0,n.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"})]})},C=i.p+"static/backstage.b1940be1..png";var k=i(36589),L=i(92742),z=i(59193),S=i(56040),M=i(70246),F=i(97134),H=i(77376),I=i(81270),D=i(98590),T=i(45274);function W(e="royalblue",t,i=70,n=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 i=t.fillStyle.replace(/^#/,""),n=3===i.length?i.split("").map(e=>e+e).join(""):i,r=parseInt(n,16);return function(e,t,i){const n=e/255,r=t/255,l=i/255,s=Math.max(n,r,l),o=Math.min(n,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===n?(r-l)/e+(r<l?6:0):s===r?(l-n)/e+2:(n-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=(i-n)/Math.max(t-1,1);return Array.from({length:t},(e,t)=>`hsl(${r}, ${l}%, ${i-t*s}%)`)}var _=i(61690);const R=(0,z.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 V({primaryText:e,secondaryText:t}){const{width:i,height:r,left:l,top:s}=(0,L.N)(),o=s+r/2-10,a=o+24;return(0,n.jsxs)(p.Fragment,{children:[(0,n.jsx)(R,{variant:"primary",x:l+i/2,y:o,children:e}),(0,n.jsx)(R,{variant:"secondary",x:l+i/2,y:a,children:t})]})}function B(){var e,t,i,s,o,a,d,c;const{total:p,items:g,visits:u}=(()=>{const e=(0,x.useApi)(D.y),{value:t,loading:i,error:n}=(0,T.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:i,error:n,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:[]}})(),v=(0,l.A)(),m="dark"===v.palette.mode,j=(0,x.useApi)(x.configApiRef);var y;const f=W(null!==(y=m?null===(s=j.app)||void 0===s||null===(i=s.branding)||void 0===i||null===(t=i.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(c=j.app)||void 0===c||null===(d=c.branding)||void 0===d||null===(a=d.theme)||void 0===a||null===(o=a.light)||void 0===o?void 0:o.headerColor1)&&void 0!==y?y:"#45556D",g.length),A=e=>Number((e/(p/100)).toFixed(2));return(0,n.jsxs)(S.A,{variant:"outlined",sx:{display:"flex",flexDirection:"column",gap:"8px",flexGrow:1,maxHeight:"900px",overfloyY:"auto"},children:[(0,n.jsx)(I.CardHeader,{title:"Top Visited"}),(0,n.jsx)(I.Divider,{}),(0,n.jsx)(M.A,{children:(0,n.jsx)(r.A,{sx:{display:"flex",alignItems:"center"},children:(0,n.jsx)(k.r,{colors:f,margin:{left:80,right:80,top:80,bottom:80},series:[{data:g,innerRadius:75,outerRadius:100,paddingAngle:0,highlightScope:{fade:"global",highlight:"item"}}],height:260,width:260,hideLegend:!0,children:(0,n.jsx)(V,{primaryText:`${p}`,secondaryText:"Total"})})})}),(0,n.jsx)(r.A,{sx:{padding:"2rem",background:v.palette.background.default},children:u.map(e=>(0,n.jsxs)(F.A,{direction:"row",sx:{alignItems:"center",gap:2,pb:2},children:[(0,n.jsx)(_.A,{}),(0,n.jsxs)(F.A,{sx:{gap:1,flexGrow:1},children:[(0,n.jsxs)(F.A,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center",gap:2},children:[(0,n.jsx)(h.A,{variant:"body2",sx:{fontWeight:"500"},children:e.name}),(0,n.jsxs)(h.A,{variant:"body2",sx:{color:"text.secondary"},children:[A(e.hits),"%"]})]}),(0,n.jsx)(H.A,{variant:"determinate","aria-label":"Number of users by country",value:A(e.hits)})]})]},e.id))})]})}var $=i(54994);function E({icon:e,title:t,value:i,color:l}){return(0,n.jsx)(S.A,{variant:"outlined",sx:{width:"100%",height:"100%",flexGrow:1,background:(0,$.alpha)(l,.15)},children:(0,n.jsxs)(M.A,{children:[(0,n.jsxs)(r.A,{component:"div",sx:{display:"flex",gap:".5rem",padding:".5rem 0"},children:[(0,n.jsx)(e,{color:"secondary",style:{fontSize:"18px"}}),(0,n.jsx)(h.A,{component:"h2",variant:"subtitle1",gutterBottom:!0,children:t})]}),(0,n.jsx)(F.A,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center"},children:(0,n.jsx)(h.A,{variant:"h4",component:"div",sx:{width:"100%",textAlign:"right",padding:"0 .5rem"},children:i})})]})})}var G=i(64811),P=i(97522),N=i(87318);function U(){const e=(0,l.A)();return(0,n.jsx)(S.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,n.jsxs)(M.A,{children:[(0,n.jsxs)(r.A,{component:"div",sx:{display:"flex",gap:".5rem",padding:".5rem 0",[e.breakpoints.down("lg")]:{justifyContent:"center"}},children:[(0,n.jsx)(P.A,{color:"primary"}),(0,n.jsx)(h.A,{component:"h2",variant:"subtitle2",gutterBottom:!0,sx:{fontWeight:"600"},children:"Add new features"})]}),(0,n.jsx)(r.A,{sx:{[e.breakpoints.down("lg")]:{textAlign:"center"}},children:(0,n.jsxs)(N.z,{variant:"contained",to:"/create",children:[" ",(0,n.jsx)(G.A,{})," Create"]})})]})})}var Y=i(30043),O=i(27732),J=i(97035),X=i(3629);function Z(){var e,t,i,s,o,a,d,c;const{resources:h,apis:p,components:g}=(()=>{const e=(0,x.useApi)(Y.v),{value:t,loading:i,error:n}=(0,T.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:i,error:n,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:[]}})(),u=(0,l.A)(),v="dark"===u.palette.mode,m=(0,x.useApi)(x.configApiRef),j=[{icon:O.A,title:"Resources",value:h.length.toString()},{icon:J.A,title:"Components",value:g.length.toString()},{icon:X.A,title:"APIs",value:p.length.toString()}];var y;const f=W(null!==(y=v?null===(s=m.app)||void 0===s||null===(i=s.branding)||void 0===i||null===(t=i.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(c=m.app)||void 0===c||null===(d=c.branding)||void 0===d||null===(a=d.theme)||void 0===a||null===(o=a.light)||void 0===o?void 0:o.headerColor1)&&void 0!==y?y:"#45556D",j.length);return(0,n.jsxs)(S.A,{variant:"outlined",sx:{display:"flex",flexDirection:"column",gap:"8px",flexGrow:1,overfloyY:"auto"},children:[(0,n.jsx)(I.CardHeader,{title:"Summary"}),(0,n.jsx)(I.Divider,{}),(0,n.jsx)(M.A,{children:(0,n.jsxs)(r.A,{sx:{display:"grid",alignItems:"center",gap:"1rem",gridTemplateColumns:"repeat(4,1fr)",[u.breakpoints.down("lg")]:{gridTemplateColumns:"1fr"}},children:[j.map((e,t)=>(0,n.jsx)(E,{...e,color:f[t]},t)),(0,n.jsx)(U,{})]})})]})}const q=()=>{const e=[{url:"https://docs.platform.vee.codes/",label:"Docs",icon:(0,n.jsx)(A,{})},{url:"https://github.com/orgs/veecode-platform/discussions",label:"Community",icon:(0,n.jsx)(f,{})},{url:"https://platform.vee.codes/",label:"Website",icon:(0,n.jsx)(w,{})},{url:"https://veecode-suporte.freshdesk.com/support/login",label:"Support",icon:(0,n.jsx)(b,{})}];return(0,n.jsx)(j.Lt,{children:(0,n.jsx)(y.U,{stretch:!0,children:(0,n.jsxs)(m.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,n.jsx)(m.Ay,{item:!0,xs:12,children:(0,n.jsxs)(m.Ay,{container:!0,spacing:2,children:[(0,n.jsx)(m.Ay,{item:!0,xs:12,md:6,lg:8,children:(0,n.jsxs)(m.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,n.jsx)(m.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,n.jsx)(Z,{})}),(0,n.jsx)(m.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,n.jsx)(v.bv,{})}),(0,n.jsx)(m.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,n.jsx)(v.vA,{})})]})}),(0,n.jsx)(m.Ay,{item:!0,xs:12,md:6,lg:4,children:(0,n.jsxs)(m.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,n.jsx)(m.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,n.jsx)(B,{})}),(0,n.jsx)(m.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,n.jsx)(v.zJ,{tools:e})})]})})]})}),(0,n.jsx)(m.Ay,{item:!0,xs:12,sx:{marginTop:"7rem"},children:(0,n.jsxs)(r.A,{sx:{display:"flex",alignItems:"center",justifyContent:"center",fontSize:"1.3em",gap:"10px"},children:[(0,n.jsx)(h.A,{sx:{fontSize:"1.2em",fontWeight:"bold"},children:"Powered by"}),(0,n.jsx)("img",{src:C,alt:"backstage logo",style:{width:"7.5em",height:"1.5em"}})]})})]})})})};var K=i(82326);const Q=()=>(0,n.jsx)(K.Y,{themeId:"home",children:(0,n.jsxs)(r.A,{sx:{backgroundColor:"background.default",display:"flex",flexDirection:"column",width:"100%",minHeight:"100vh"},children:[(0,n.jsx)(u,{}),(0,n.jsx)(q,{})]})})}}]);
2
+ //# sourceMappingURL=8692.8ab75fef.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/8692.8ab75fef.chunk.js","mappings":"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","sources":["webpack://veecode-platform.plugin-veecode-homepage/./src/components/userAvatar/UserAvatar.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":["/*\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 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\" color=\"#FAFAFA\">\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\" color=\"#FAFAFA\">\n Let's get started.\n </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 fillRule=\"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 clipRule=\"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 '@mui/material';\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 '@mui/material';\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 '@mui/styles';\n// import { HeaderComponent } from './headerComponent/HeaderComponent';\nimport { HomeGreeting } from './homeGretting/HomeGretting';\nimport { HomeContent } from './homeContent/HomeContent';\nimport { Page } from '@backstage/core-components';\nimport Box from '@mui/material/Box';\n\n// const useVeeCodeHomePageStyles = makeStyles(theme => ({\n// pageRoot: {\n// backgroundColor: theme.palette.background.default,\n// },\n// }));\n\nexport const VeeCodeHomePage = () => {\n // const { pageRoot } = useVeeCodeHomePageStyles();\n return (\n <Page themeId=\"home\">\n <Box sx={{ \n backgroundColor: 'background.default',\n display: 'flex', \n flexDirection: 'column', \n width: '100%', \n minHeight: '100vh' \n }}>\n {/*<HeaderComponent />*/}\n <HomeGreeting />\n <HomeContent />\n </Box>\n </Page>\n );\n};\n"],"names":["UserAvatar","width","height","profile","loading","profileLoading","useUserProfile","Skeleton","variant","sx","Avatar","src","picture","AvatarImg","objectFit","alt","HomeGreeting","configApi","setLoading","useState","displayName","theme","useTheme","isDarkMode","palette","mode","useApi","configApiRef","color1","app","branding","dark","headerColor1","light","color2","headerColor2","useEffect","setTimeout","Box","background","minHeight","display","alignItems","justifyContent","position","overflow","breakpoints","only","padding","margin","gap","flexDirection","textAlign","color","grey","maxWidth","Typography","style","name","test","charAt","indexOf","toLocaleUpperCase","concat","substring","profileDisplayName","img","WavesImg","top","left","opacity","svg","version","id","xmlns","xmlnsXlink","viewBox","xmlSpace","cursor","g","circle","fill","cx","cy","r","path","d","fillRule","clipRule","rect","x","title","generateColorVariants","inputColor","count","startLightness","endLightness","h","s","ctx","document","createElement","getContext","Error","fillStyle","hex","replace","normalizedHex","length","split","map","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","text","secondary","variants","props","fontSize","typography","h5","body2","fontWeight","PieCenterLabel","primaryText","secondaryText","useDrawingArea","primaryY","secondaryY","React","y","VisitedCharts","total","items","visits","useVisitedApi","visitsApiRef","value","error","useAsync","async","data","list","reduce","acc","item","hits","visit","label","pathname","useVisited","colors","calculatePercent","Number","toFixed","Card","flexGrow","maxHeight","overfloyY","CardHeader","Divider","CardContent","PieChart","right","bottom","series","innerRadius","outerRadius","paddingAngle","highlightScope","fade","highlight","hideLegend","default","Stack","direction","pb","TurnedInNotIcon","LinearProgress","aria-label","StatCard","icon","Icon","alpha","component","gutterBottom","HighlightedCard","border","down","InsightsRoundedIcon","LinkButton","to","AddIcon","Summary","resources","apis","components","useCatalogApi","catalogApiRef","response","getEntities","filter","kind","toLocaleLowerCase","useCatalog","AutoAwesomeMotionIcon","toString","FolderCopyIcon","ExtensionIcon","gridTemplateColumns","card","index","HomeContent","tools","url","DocsLogo","Communitylogo","WebsiteLogo","SupportLogo","SearchContextProvider","Content","stretch","Grid","container","spacing","xs","md","lg","HomePageRecentlyVisited","HomePageStarredEntities","PieAnimation","HomePageToolkit","marginTop","BackstageLogo","VeeCodeHomePage","Page","themeId","backgroundColor"],"sourceRoot":""}