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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/components/VeeCodeHomePage.esm.js +0 -2
  2. package/dist/components/VeeCodeHomePage.esm.js.map +1 -1
  3. package/dist/components/homeContent/HighLightedCard.esm.js +5 -2
  4. package/dist/components/homeContent/HighLightedCard.esm.js.map +1 -1
  5. package/dist/components/homeContent/HomeContent.esm.js +9 -7
  6. package/dist/components/homeContent/HomeContent.esm.js.map +1 -1
  7. package/dist/components/homeContent/Summary.esm.js +6 -4
  8. package/dist/components/homeContent/Summary.esm.js.map +1 -1
  9. package/dist/components/homeContent/VisitedCharts.esm.js +4 -2
  10. package/dist/components/homeContent/VisitedCharts.esm.js.map +1 -1
  11. package/dist/components/homeGretting/HomeGretting.esm.js +4 -2
  12. package/dist/components/homeGretting/HomeGretting.esm.js.map +1 -1
  13. package/dist/hooks/useTranslation.esm.js +8 -0
  14. package/dist/hooks/useTranslation.esm.js.map +1 -0
  15. package/dist/index.d.ts +35 -4
  16. package/dist/index.esm.js +2 -0
  17. package/dist/index.esm.js.map +1 -1
  18. package/dist/plugin.esm.js +7 -1
  19. package/dist/plugin.esm.js.map +1 -1
  20. package/dist/translations/de.esm.js +28 -0
  21. package/dist/translations/de.esm.js.map +1 -0
  22. package/dist/translations/es.esm.js +28 -0
  23. package/dist/translations/es.esm.js.map +1 -0
  24. package/dist/translations/fr.esm.js +28 -0
  25. package/dist/translations/fr.esm.js.map +1 -0
  26. package/dist/translations/index.esm.js +16 -0
  27. package/dist/translations/index.esm.js.map +1 -0
  28. package/dist/translations/it.esm.js +28 -0
  29. package/dist/translations/it.esm.js.map +1 -0
  30. package/dist/translations/pt.esm.js +28 -0
  31. package/dist/translations/pt.esm.js.map +1 -0
  32. package/dist/translations/ref.esm.js +44 -0
  33. package/dist/translations/ref.esm.js.map +1 -0
  34. package/dist-scalprum/plugin-manifest.json +3 -3
  35. package/dist-scalprum/static/{1213.412457e8.chunk.js → 1213.10ab8a1e.chunk.js} +4 -4
  36. package/dist-scalprum/static/1213.10ab8a1e.chunk.js.map +1 -0
  37. package/dist-scalprum/static/2211.f5266f49.chunk.js +29 -0
  38. package/dist-scalprum/static/2211.f5266f49.chunk.js.map +1 -0
  39. package/dist-scalprum/static/2261.02ebf7b8.chunk.js +2 -0
  40. package/dist-scalprum/static/2261.02ebf7b8.chunk.js.map +1 -0
  41. package/dist-scalprum/static/2969.d7dee9a4.chunk.js +2 -0
  42. package/dist-scalprum/static/2969.d7dee9a4.chunk.js.map +1 -0
  43. package/dist-scalprum/static/3837.e9b60659.chunk.js +2 -0
  44. package/dist-scalprum/static/3837.e9b60659.chunk.js.map +1 -0
  45. package/dist-scalprum/static/41.53c70bd6.chunk.js +2 -0
  46. package/dist-scalprum/static/41.53c70bd6.chunk.js.map +1 -0
  47. package/dist-scalprum/static/{4197.8a8b877f.chunk.js → 4197.0e023080.chunk.js} +2 -2
  48. package/dist-scalprum/static/{4197.8a8b877f.chunk.js.map → 4197.0e023080.chunk.js.map} +1 -1
  49. package/dist-scalprum/static/4864.b356c1a3.chunk.js +2 -0
  50. package/dist-scalprum/static/4864.b356c1a3.chunk.js.map +1 -0
  51. package/dist-scalprum/static/5132.e8ececda.chunk.js +2 -0
  52. package/dist-scalprum/static/5132.e8ececda.chunk.js.map +1 -0
  53. package/dist-scalprum/static/{5255.21365d93.chunk.js → 5255.31f4471a.chunk.js} +2 -2
  54. package/dist-scalprum/static/{5255.21365d93.chunk.js.map → 5255.31f4471a.chunk.js.map} +1 -1
  55. package/dist-scalprum/static/5749.9f83e5fe.chunk.js +179 -0
  56. package/dist-scalprum/static/5749.9f83e5fe.chunk.js.map +1 -0
  57. package/dist-scalprum/static/5799.516d5ae5.chunk.js +2 -0
  58. package/dist-scalprum/static/5799.516d5ae5.chunk.js.map +1 -0
  59. package/dist-scalprum/static/{5888.d5ff87d6.chunk.js → 5888.39088266.chunk.js} +1 -1
  60. package/dist-scalprum/static/{5888.d5ff87d6.chunk.js.map → 5888.39088266.chunk.js.map} +1 -1
  61. package/dist-scalprum/static/6123.b8f54e25.chunk.js +2 -0
  62. package/dist-scalprum/static/6123.b8f54e25.chunk.js.map +1 -0
  63. package/dist-scalprum/static/{6356.0690b575.chunk.js → 6356.a59d5e2e.chunk.js} +2 -2
  64. package/dist-scalprum/static/{6356.0690b575.chunk.js.map → 6356.a59d5e2e.chunk.js.map} +1 -1
  65. package/dist-scalprum/static/{6700.f2dbf122.chunk.js → 6700.8ab31ec1.chunk.js} +1 -1
  66. package/dist-scalprum/static/{6700.f2dbf122.chunk.js.map → 6700.8ab31ec1.chunk.js.map} +1 -1
  67. package/dist-scalprum/static/9011.81f8d514.chunk.js +2 -0
  68. package/dist-scalprum/static/9011.81f8d514.chunk.js.map +1 -0
  69. package/dist-scalprum/static/9204.dcf46cef.chunk.js +2 -0
  70. package/dist-scalprum/static/9204.dcf46cef.chunk.js.map +1 -0
  71. package/dist-scalprum/static/9292.15c445eb.chunk.js +2 -0
  72. package/dist-scalprum/static/9292.15c445eb.chunk.js.map +1 -0
  73. package/dist-scalprum/static/9541.dca5e402.chunk.js +3 -0
  74. package/dist-scalprum/static/9541.dca5e402.chunk.js.map +1 -0
  75. package/dist-scalprum/static/{9633.d7b4641e.chunk.js → 9633.47d13d21.chunk.js} +2 -2
  76. package/dist-scalprum/static/{9633.d7b4641e.chunk.js.map → 9633.47d13d21.chunk.js.map} +1 -1
  77. package/dist-scalprum/static/exposed-PluginRoot.46fb234b.chunk.js +2 -0
  78. package/dist-scalprum/static/exposed-PluginRoot.46fb234b.chunk.js.map +1 -0
  79. package/dist-scalprum/veecode-platform.plugin-veecode-homepage.e50a17c456ed6da412d5.js +2 -0
  80. package/dist-scalprum/veecode-platform.plugin-veecode-homepage.e50a17c456ed6da412d5.js.map +1 -0
  81. package/package.json +13 -13
  82. package/dist/components/headerComponent/HeaderComponent.esm.js +0 -67
  83. package/dist/components/headerComponent/HeaderComponent.esm.js.map +0 -1
  84. package/dist/components/headerComponent/iconButtonComponent/IconButtonComponent.esm.js +0 -35
  85. package/dist/components/headerComponent/iconButtonComponent/IconButtonComponent.esm.js.map +0 -1
  86. package/dist/components/headerComponent/logout/Logout.esm.js +0 -30
  87. package/dist/components/headerComponent/logout/Logout.esm.js.map +0 -1
  88. package/dist/components/headerComponent/menuItems/MenuItems.esm.js +0 -134
  89. package/dist/components/headerComponent/menuItems/MenuItems.esm.js.map +0 -1
  90. package/dist/components/headerComponent/notifications/Notifications.esm.js +0 -72
  91. package/dist/components/headerComponent/notifications/Notifications.esm.js.map +0 -1
  92. package/dist/components/headerComponent/profile/Profle.esm.js +0 -19
  93. package/dist/components/headerComponent/profile/Profle.esm.js.map +0 -1
  94. package/dist/components/headerComponent/searchComponent/SearchBar.esm.js +0 -113
  95. package/dist/components/headerComponent/searchComponent/SearchBar.esm.js.map +0 -1
  96. package/dist/components/headerComponent/searchComponent/SearchComponent.esm.js +0 -13
  97. package/dist/components/headerComponent/searchComponent/SearchComponent.esm.js.map +0 -1
  98. package/dist/components/headerComponent/searchComponent/SearchInput.esm.js +0 -32
  99. package/dist/components/headerComponent/searchComponent/SearchInput.esm.js.map +0 -1
  100. package/dist/components/headerComponent/searchComponent/SearchOption.esm.js +0 -50
  101. package/dist/components/headerComponent/searchComponent/SearchOption.esm.js.map +0 -1
  102. package/dist/components/headerComponent/searchComponent/SearchResultItem.esm.js +0 -44
  103. package/dist/components/headerComponent/searchComponent/SearchResultItem.esm.js.map +0 -1
  104. package/dist/components/headerComponent/toggleTheme/ToggleTheme.esm.js +0 -37
  105. package/dist/components/headerComponent/toggleTheme/ToggleTheme.esm.js.map +0 -1
  106. package/dist/hooks/useDebouncedCallback.esm.js +0 -26
  107. package/dist/hooks/useDebouncedCallback.esm.js.map +0 -1
  108. package/dist/utils/stringUtils.esm.js +0 -35
  109. package/dist/utils/stringUtils.esm.js.map +0 -1
  110. package/dist-scalprum/static/1213.412457e8.chunk.js.map +0 -1
  111. package/dist-scalprum/static/1853.9c4997f9.chunk.js +0 -2
  112. package/dist-scalprum/static/1853.9c4997f9.chunk.js.map +0 -1
  113. package/dist-scalprum/static/41.a129355f.chunk.js +0 -2
  114. package/dist-scalprum/static/41.a129355f.chunk.js.map +0 -1
  115. package/dist-scalprum/static/4864.0a352dc6.chunk.js +0 -2
  116. package/dist-scalprum/static/4864.0a352dc6.chunk.js.map +0 -1
  117. package/dist-scalprum/static/5211.b1dc9542.chunk.js +0 -3
  118. package/dist-scalprum/static/5211.b1dc9542.chunk.js.map +0 -1
  119. package/dist-scalprum/static/5571.73942ff6.chunk.js +0 -206
  120. package/dist-scalprum/static/5571.73942ff6.chunk.js.map +0 -1
  121. package/dist-scalprum/static/6123.94c2f019.chunk.js +0 -2
  122. package/dist-scalprum/static/6123.94c2f019.chunk.js.map +0 -1
  123. package/dist-scalprum/static/6460.86145f5a.chunk.js +0 -2
  124. package/dist-scalprum/static/6460.86145f5a.chunk.js.map +0 -1
  125. package/dist-scalprum/static/6921.efadb98d.chunk.js +0 -2
  126. package/dist-scalprum/static/6921.efadb98d.chunk.js.map +0 -1
  127. package/dist-scalprum/static/7871.32fe0d52.chunk.js +0 -2
  128. package/dist-scalprum/static/7871.32fe0d52.chunk.js.map +0 -1
  129. package/dist-scalprum/static/exposed-PluginRoot.bf5e0b03.chunk.js +0 -2
  130. package/dist-scalprum/static/exposed-PluginRoot.bf5e0b03.chunk.js.map +0 -1
  131. package/dist-scalprum/veecode-platform.plugin-veecode-homepage.52a7b0ce89460aa40ee1.js +0 -2
  132. package/dist-scalprum/veecode-platform.plugin-veecode-homepage.52a7b0ce89460aa40ee1.js.map +0 -1
  133. /package/dist-scalprum/static/{1213.412457e8.chunk.js.LICENSE.txt → 1213.10ab8a1e.chunk.js.LICENSE.txt} +0 -0
  134. /package/dist-scalprum/static/{5571.73942ff6.chunk.js.LICENSE.txt → 5749.9f83e5fe.chunk.js.LICENSE.txt} +0 -0
  135. /package/dist-scalprum/static/{5211.b1dc9542.chunk.js.LICENSE.txt → 9541.dca5e402.chunk.js.LICENSE.txt} +0 -0
@@ -1,5 +1,4 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { HeaderComponent } from './headerComponent/HeaderComponent.esm.js';
3
2
  import { HomeGreeting } from './homeGretting/HomeGretting.esm.js';
4
3
  import { HomeContent } from './homeContent/HomeContent.esm.js';
5
4
  import { Page } from '@backstage/core-components';
@@ -13,7 +12,6 @@ const VeeCodeHomePage = () => {
13
12
  width: "100%",
14
13
  minHeight: "100vh"
15
14
  }, children: [
16
- /* @__PURE__ */ jsx(HeaderComponent, {}),
17
15
  /* @__PURE__ */ jsx(HomeGreeting, {}),
18
16
  /* @__PURE__ */ jsx(HomeContent, {})
19
17
  ] }) });
@@ -1 +1 @@
1
- {"version":3,"file":"VeeCodeHomePage.esm.js","sources":["../../src/components/VeeCodeHomePage.tsx"],"sourcesContent":["// import { makeStyles } from '@mui/styles';\nimport { 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":[],"mappings":";;;;;;;AAaO,MAAM,kBAAkB,MAAM;AAEnC,EAAA,2BACG,IAAA,EAAA,EAAK,OAAA,EAAQ,MAAA,EACZ,QAAA,kBAAA,IAAA,CAAC,OAAI,EAAA,EAAI;AAAA,IACP,eAAA,EAAiB,oBAAA;AAAA,IACjB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,KAAA,EAAO,MAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA;AAAA,wBAChB,YAAA,EAAA,EAAa,CAAA;AAAA,wBACb,WAAA,EAAA,EAAY;AAAA,GAAA,EACf,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"VeeCodeHomePage.esm.js","sources":["../../src/components/VeeCodeHomePage.tsx"],"sourcesContent":["// 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":[],"mappings":";;;;;;AAaO,MAAM,kBAAkB,MAAM;AAEnC,EAAA,2BACG,IAAA,EAAA,EAAK,OAAA,EAAQ,MAAA,EACZ,QAAA,kBAAA,IAAA,CAAC,OAAI,EAAA,EAAI;AAAA,IACP,eAAA,EAAiB,oBAAA;AAAA,IACjB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,KAAA,EAAO,MAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb,EAEE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,CAAA;AAAA,wBACb,WAAA,EAAA,EAAY;AAAA,GAAA,EACf,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -7,9 +7,11 @@ import InsightsRoundedIcon from '@mui/icons-material/InsightsRounded';
7
7
  import Box from '@mui/material/Box';
8
8
  import { LinkButton } from '@backstage/core-components';
9
9
  import { useTheme } from '@mui/material/styles';
10
+ import { useTranslation } from '../../hooks/useTranslation.esm.js';
10
11
 
11
12
  function HighlightedCard() {
12
13
  const theme = useTheme();
14
+ const { t } = useTranslation();
13
15
  return /* @__PURE__ */ jsx(
14
16
  Card,
15
17
  {
@@ -46,7 +48,7 @@ function HighlightedCard() {
46
48
  variant: "subtitle2",
47
49
  gutterBottom: true,
48
50
  sx: { fontWeight: "600" },
49
- children: "Add new features"
51
+ children: t("highlightedCard.title")
50
52
  }
51
53
  )
52
54
  ]
@@ -63,7 +65,8 @@ function HighlightedCard() {
63
65
  children: /* @__PURE__ */ jsxs(LinkButton, { variant: "contained", to: "/create", children: [
64
66
  " ",
65
67
  /* @__PURE__ */ jsx(AddIcon, {}),
66
- " Create"
68
+ " ",
69
+ t("highlightedCard.createButton")
67
70
  ] })
68
71
  }
69
72
  )
@@ -1 +1 @@
1
- {"version":3,"file":"HighLightedCard.esm.js","sources":["../../../src/components/homeContent/HighLightedCard.tsx"],"sourcesContent":["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"],"names":[],"mappings":";;;;;;;;;;AASA,SAAwB,eAAA,GAAkB;AACxC,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,UAAA;AAAA,MACR,EAAA,EAAI;AAAA,QACF,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAU,CAAA;AAAA,QACV,MAAA,EAAQ,uBAAA;AAAA,QACR,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,UAC9B,cAAA,EAAgB,QAAA;AAAA,UAChB,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW;AAAA;AACvC,OACF;AAAA,MAEA,+BAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,KAAA;AAAA,YACV,EAAA,EAAI;AAAA,cACF,OAAA,EAAS,MAAA;AAAA,cACT,GAAA,EAAK,OAAA;AAAA,cACL,OAAA,EAAS,SAAA;AAAA,cACT,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,gBAC9B,cAAA,EAAgB;AAAA;AAClB,aACF;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,OAAM,SAAA,EAAU,CAAA;AAAA,8BACrC,GAAA;AAAA,gBAAC,UAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,IAAA;AAAA,kBACV,OAAA,EAAQ,WAAA;AAAA,kBACR,YAAA,EAAY,IAAA;AAAA,kBACZ,EAAA,EAAI,EAAE,UAAA,EAAY,KAAA,EAAM;AAAA,kBACzB,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI;AAAA,cACF,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,gBAC9B,SAAA,EAAW;AAAA;AACb,aACF;AAAA,YAEA,QAAA,kBAAA,IAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,WAAA,EAAY,IAAG,SAAA,EAChC,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,kCACA,OAAA,EAAA,EAAQ,CAAA;AAAA,cAAE;AAAA,aAAA,EACb;AAAA;AAAA;AACF,OAAA,EACF;AAAA;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"HighLightedCard.esm.js","sources":["../../../src/components/homeContent/HighLightedCard.tsx"],"sourcesContent":["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';\nimport { useTranslation } from '../../hooks/useTranslation';\n\nexport default function HighlightedCard() {\n const theme = useTheme();\n const { t } = useTranslation();\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 {t('highlightedCard.title')}\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 /> {t('highlightedCard.createButton')}\n </LinkButton>\n </Box>\n </CardContent>\n </Card>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAUA,SAAwB,eAAA,GAAkB;AACxC,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,UAAA;AAAA,MACR,EAAA,EAAI;AAAA,QACF,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAU,CAAA;AAAA,QACV,MAAA,EAAQ,uBAAA;AAAA,QACR,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,UAC9B,cAAA,EAAgB,QAAA;AAAA,UAChB,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW;AAAA;AACvC,OACF;AAAA,MAEA,+BAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,KAAA;AAAA,YACV,EAAA,EAAI;AAAA,cACF,OAAA,EAAS,MAAA;AAAA,cACT,GAAA,EAAK,OAAA;AAAA,cACL,OAAA,EAAS,SAAA;AAAA,cACT,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,gBAC9B,cAAA,EAAgB;AAAA;AAClB,aACF;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,OAAM,SAAA,EAAU,CAAA;AAAA,8BACrC,GAAA;AAAA,gBAAC,UAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,IAAA;AAAA,kBACV,OAAA,EAAQ,WAAA;AAAA,kBACR,YAAA,EAAY,IAAA;AAAA,kBACZ,EAAA,EAAI,EAAE,UAAA,EAAY,KAAA,EAAM;AAAA,kBAEvB,YAAE,uBAAuB;AAAA;AAAA;AAC5B;AAAA;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI;AAAA,cACF,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,gBAC9B,SAAA,EAAW;AAAA;AACb,aACF;AAAA,YAEA,QAAA,kBAAA,IAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,WAAA,EAAY,IAAG,SAAA,EAChC,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,kCACA,OAAA,EAAA,EAAQ,CAAA;AAAA,cAAE,GAAA;AAAA,cAAE,EAAE,8BAA8B;AAAA,aAAA,EAC/C;AAAA;AAAA;AACF,OAAA,EACF;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -12,27 +12,29 @@ import SupportLogo from '../../assets/Support.esm.js';
12
12
  import BackstageLogo from '../../assets/backstage.png';
13
13
  import VisitedCharts from './VisitedCharts.esm.js';
14
14
  import Summary from './Summary.esm.js';
15
+ import { useTranslation } from '../../hooks/useTranslation.esm.js';
15
16
 
16
17
  const HomeContent = () => {
18
+ const { t } = useTranslation();
17
19
  const tools = [
18
20
  {
19
21
  url: "https://docs.platform.vee.codes/",
20
- label: "Docs",
22
+ label: t("toolkit.docs"),
21
23
  icon: /* @__PURE__ */ jsx(DocsLogo, {})
22
24
  },
23
25
  {
24
26
  url: "https://github.com/orgs/veecode-platform/discussions",
25
- label: "Community",
27
+ label: t("toolkit.community"),
26
28
  icon: /* @__PURE__ */ jsx(Communitylogo, {})
27
29
  },
28
30
  {
29
31
  url: "https://platform.vee.codes/",
30
- label: "Website",
32
+ label: t("toolkit.website"),
31
33
  icon: /* @__PURE__ */ jsx(WebsiteLogo, {})
32
34
  },
33
35
  {
34
36
  url: "https://veecode-suporte.freshdesk.com/support/login",
35
- label: "Support",
37
+ label: t("toolkit.support"),
36
38
  icon: /* @__PURE__ */ jsx(SupportLogo, {})
37
39
  }
38
40
  ];
@@ -40,8 +42,8 @@ const HomeContent = () => {
40
42
  /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
41
43
  /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, lg: 8, children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, justifyContent: "center", children: [
42
44
  /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: /* @__PURE__ */ jsx(Summary, {}) }),
43
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: /* @__PURE__ */ jsx(HomePageRecentlyVisited, {}) }),
44
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: /* @__PURE__ */ jsx(HomePageStarredEntities, {}) })
45
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: /* @__PURE__ */ jsx(HomePageRecentlyVisited, { title: t("recentlyVisited.title") }) }),
46
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: /* @__PURE__ */ jsx(HomePageStarredEntities, { title: t("starredEntities.title") }) })
45
47
  ] }) }),
46
48
  /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, lg: 4, children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, justifyContent: "center", children: [
47
49
  /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: /* @__PURE__ */ jsx(VisitedCharts, {}) }),
@@ -66,7 +68,7 @@ const HomeContent = () => {
66
68
  fontSize: "1.2em",
67
69
  fontWeight: "bold"
68
70
  },
69
- children: "Powered by"
71
+ children: t("footer.poweredBy")
70
72
  }
71
73
  ),
72
74
  /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"HomeContent.esm.js","sources":["../../../src/components/homeContent/HomeContent.tsx"],"sourcesContent":["/* 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"],"names":["PieAnimation"],"mappings":"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"}
1
+ {"version":3,"file":"HomeContent.esm.js","sources":["../../../src/components/homeContent/HomeContent.tsx"],"sourcesContent":["/* 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';\nimport { useTranslation } from '../../hooks/useTranslation';\n\nexport const HomeContent = () => {\n const { t } = useTranslation();\n \n const tools = [\n {\n url: 'https://docs.platform.vee.codes/',\n label: t('toolkit.docs'),\n icon: <DocsLogo />,\n },\n {\n url: 'https://github.com/orgs/veecode-platform/discussions',\n label: t('toolkit.community'),\n icon: <Communitylogo />,\n },\n {\n url: 'https://platform.vee.codes/',\n label: t('toolkit.website'),\n icon: <WebsiteLogo />,\n },\n {\n url: 'https://veecode-suporte.freshdesk.com/support/login',\n label: t('toolkit.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 title={t('recentlyVisited.title')} />\n </Grid>\n <Grid item xs={12} md={12} lg={12}>\n <HomePageStarredEntities title={t('starredEntities.title')} />\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 {t('footer.poweredBy')}\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"],"names":["PieAnimation"],"mappings":"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"}
@@ -12,26 +12,28 @@ import ExtensionIcon from '@mui/icons-material/Extension';
12
12
  import { useTheme } from '@mui/material/styles';
13
13
  import { useApi, configApiRef } from '@backstage/core-plugin-api';
14
14
  import { generateColorVariants } from '../../utils/generateColor.esm.js';
15
+ import { useTranslation } from '../../hooks/useTranslation.esm.js';
15
16
 
16
17
  function Summary() {
17
18
  const { resources, apis, components } = useCatalog();
19
+ const { t } = useTranslation();
18
20
  const theme = useTheme();
19
21
  const isDarkMode = theme.palette.mode === "dark";
20
22
  const configApi = useApi(configApiRef);
21
23
  const data = [
22
24
  {
23
25
  icon: AutoAwesomeMotionIcon,
24
- title: "Resources",
26
+ title: t("summary.resources"),
25
27
  value: resources.length.toString()
26
28
  },
27
29
  {
28
30
  icon: FolderCopyIcon,
29
- title: "Components",
31
+ title: t("summary.components"),
30
32
  value: components.length.toString()
31
33
  },
32
34
  {
33
35
  icon: ExtensionIcon,
34
- title: "APIs",
36
+ title: t("summary.apis"),
35
37
  value: apis.length.toString()
36
38
  }
37
39
  ];
@@ -53,7 +55,7 @@ function Summary() {
53
55
  overfloyY: "auto"
54
56
  },
55
57
  children: [
56
- /* @__PURE__ */ jsx(CardHeader, { title: "Summary" }),
58
+ /* @__PURE__ */ jsx(CardHeader, { title: t("summary.title") }),
57
59
  /* @__PURE__ */ jsx(Divider, {}),
58
60
  /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(
59
61
  Box,
@@ -1 +1 @@
1
- {"version":3,"file":"Summary.esm.js","sources":["../../../src/components/homeContent/Summary.tsx"],"sourcesContent":["// 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"],"names":[],"mappings":";;;;;;;;;;;;;;;AAeA,SAAwB,OAAA,GAAU;AAChC,EAAA,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,UAAA,KAAe,UAAA,EAAW;AACnD,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,KAAS,MAAA;AAC1C,EAAA,MAAM,SAAA,GAAY,OAAO,YAAY,CAAA;AAErC,EAAA,MAAM,IAAA,GAAO;AAAA,IACX;AAAA,MACE,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,KAAA,EAAO,SAAA,CAAU,MAAA,CAAO,QAAA;AAAS,KACnC;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,KAAA,EAAO,UAAA,CAAW,MAAA,CAAO,QAAA;AAAS,KACpC;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,IAAA,CAAK,MAAA,CAAO,QAAA;AAAS;AAC9B,GACF;AAEA,EAAA,MAAM,SACH,UAAA,GACG,SAAA,CAAU,GAAA,EAAK,QAAA,EAAU,OAAO,IAAA,EAAM,YAAA;AAAA;AAAA;AAAA,IAGtC,SAAA,CAAU,GAAA,EAAK,QAAA,EAAU,KAAA,EAAO,KAAA,EAAO;AAAA,GAAA,KAAiB,SAAA;AAC9D,EAAA,MAAM,MAAA,GAAS,qBAAA,CAAsB,KAAA,EAAO,IAAA,CAAK,MAAM,CAAA;AAEvD,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,UAAA;AAAA,MACR,EAAA,EAAI;AAAA,QACF,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK,KAAA;AAAA,QACL,QAAA,EAAU,CAAA;AAAA,QACV,SAAA,EAAW;AAAA,OACb;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,OAAM,SAAA,EAAU,CAAA;AAAA,4BAC3B,OAAA,EAAA,EAAQ,CAAA;AAAA,4BACR,WAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI;AAAA,cACF,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,GAAA,EAAK,MAAA;AAAA,cACL,mBAAA,EAAqB,eAAA;AAAA,cACrB,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,gBAC9B,mBAAA,EAAqB;AAAA;AACvB,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBACf,GAAA,CAAC,QAAA,EAAA,EAAsB,GAAG,IAAA,EAAM,KAAA,EAAO,MAAA,CAAO,KAAK,CAAA,EAAA,EAApC,KAAuC,CACvD,CAAA;AAAA,kCACA,eAAA,EAAA,EAAgB;AAAA;AAAA;AAAA,SACnB,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"Summary.esm.js","sources":["../../../src/components/homeContent/Summary.tsx"],"sourcesContent":["// 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';\nimport { useTranslation } from '../../hooks/useTranslation';\n\nexport default function Summary() {\n const { resources, apis, components } = useCatalog();\n const { t } = useTranslation();\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: t('summary.resources'),\n value: resources.length.toString(),\n },\n {\n icon: FolderCopyIcon,\n title: t('summary.components'),\n value: components.length.toString(),\n },\n {\n icon: ExtensionIcon,\n title: t('summary.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={t('summary.title')} />\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"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAgBA,SAAwB,OAAA,GAAU;AAChC,EAAA,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,UAAA,KAAe,UAAA,EAAW;AACnD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,KAAS,MAAA;AAC1C,EAAA,MAAM,SAAA,GAAY,OAAO,YAAY,CAAA;AAErC,EAAA,MAAM,IAAA,GAAO;AAAA,IACX;AAAA,MACE,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,MAC5B,KAAA,EAAO,SAAA,CAAU,MAAA,CAAO,QAAA;AAAS,KACnC;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,KAAA,EAAO,EAAE,oBAAoB,CAAA;AAAA,MAC7B,KAAA,EAAO,UAAA,CAAW,MAAA,CAAO,QAAA;AAAS,KACpC;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,KAAA,EAAO,EAAE,cAAc,CAAA;AAAA,MACvB,KAAA,EAAO,IAAA,CAAK,MAAA,CAAO,QAAA;AAAS;AAC9B,GACF;AAEA,EAAA,MAAM,SACH,UAAA,GACG,SAAA,CAAU,GAAA,EAAK,QAAA,EAAU,OAAO,IAAA,EAAM,YAAA;AAAA;AAAA;AAAA,IAGtC,SAAA,CAAU,GAAA,EAAK,QAAA,EAAU,KAAA,EAAO,KAAA,EAAO;AAAA,GAAA,KAAiB,SAAA;AAC9D,EAAA,MAAM,MAAA,GAAS,qBAAA,CAAsB,KAAA,EAAO,IAAA,CAAK,MAAM,CAAA;AAEvD,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,UAAA;AAAA,MACR,EAAA,EAAI;AAAA,QACF,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK,KAAA;AAAA,QACL,QAAA,EAAU,CAAA;AAAA,QACV,SAAA,EAAW;AAAA,OACb;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAO,CAAA,CAAE,eAAe,CAAA,EAAG,CAAA;AAAA,4BACtC,OAAA,EAAA,EAAQ,CAAA;AAAA,4BACR,WAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI;AAAA,cACF,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,GAAA,EAAK,MAAA;AAAA,cACL,mBAAA,EAAqB,eAAA;AAAA,cACrB,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,gBAC9B,mBAAA,EAAqB;AAAA;AACvB,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBACf,GAAA,CAAC,QAAA,EAAA,EAAsB,GAAG,IAAA,EAAM,KAAA,EAAO,MAAA,CAAO,KAAK,CAAA,EAAA,EAApC,KAAuC,CACvD,CAAA;AAAA,kCACA,eAAA,EAAA,EAAgB;AAAA;AAAA;AAAA,SACnB,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -14,6 +14,7 @@ import { useApi, configApiRef } from '@backstage/core-plugin-api';
14
14
  import { useVisited } from '../../hooks/useVisited.esm.js';
15
15
  import { generateColorVariants } from '../../utils/generateColor.esm.js';
16
16
  import TurnedInNotIcon from '@mui/icons-material/TurnedInNot';
17
+ import { useTranslation } from '../../hooks/useTranslation.esm.js';
17
18
 
18
19
  const StyledText = styled("text", {
19
20
  shouldForwardProp: (prop) => prop !== "variant"
@@ -63,6 +64,7 @@ function PieCenterLabel({ primaryText, secondaryText }) {
63
64
  }
64
65
  function VisitedCharts() {
65
66
  const { total, items, visits } = useVisited();
67
+ const { t } = useTranslation();
66
68
  const theme = useTheme();
67
69
  const isDarkMode = theme.palette.mode === "dark";
68
70
  const configApi = useApi(configApiRef);
@@ -89,7 +91,7 @@ function VisitedCharts() {
89
91
  overfloyY: "auto"
90
92
  },
91
93
  children: [
92
- /* @__PURE__ */ jsx(CardHeader, { title: "Top Visited" }),
94
+ /* @__PURE__ */ jsx(CardHeader, { title: t("visitedCharts.title") }),
93
95
  /* @__PURE__ */ jsx(Divider, {}),
94
96
  /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(Box, { sx: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx(
95
97
  PieChart,
@@ -113,7 +115,7 @@ function VisitedCharts() {
113
115
  height: 260,
114
116
  width: 260,
115
117
  hideLegend: true,
116
- children: /* @__PURE__ */ jsx(PieCenterLabel, { primaryText: `${total}`, secondaryText: "Total" })
118
+ children: /* @__PURE__ */ jsx(PieCenterLabel, { primaryText: `${total}`, secondaryText: t("visitedCharts.total") })
117
119
  }
118
120
  ) }) }),
119
121
  /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"VisitedCharts.esm.js","sources":["../../../src/components/homeContent/VisitedCharts.tsx"],"sourcesContent":["// 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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VisitedCharts.esm.js","sources":["../../../src/components/homeContent/VisitedCharts.tsx"],"sourcesContent":["// 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';\nimport { useTranslation } from '../../hooks/useTranslation';\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 { t } = useTranslation();\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={t('visitedCharts.title')} />\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={t('visitedCharts.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"],"names":[],"mappings":"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"}
@@ -8,10 +8,12 @@ import { useUserProfile } from '@backstage/plugin-user-settings';
8
8
  import Skeleton from '@mui/material/Skeleton';
9
9
  import { useState, useEffect } from 'react';
10
10
  import WavesImg from '../../assets/waves.svg';
11
+ import { useTranslation } from '../../hooks/useTranslation.esm.js';
11
12
 
12
13
  const HomeGreeting = () => {
13
14
  const [loading, setLoading] = useState(false);
14
15
  const { displayName } = useUserProfile();
16
+ const { t } = useTranslation();
15
17
  const theme = useTheme();
16
18
  const isDarkMode = theme.palette.mode === "dark";
17
19
  const configApi = useApi(configApiRef);
@@ -83,7 +85,7 @@ const HomeGreeting = () => {
83
85
  },
84
86
  children: [
85
87
  /* @__PURE__ */ jsxs(Typography, { variant: "h3", color: "#FAFAFA", children: [
86
- "Welcome back",
88
+ t("greeting.welcome"),
87
89
  loading ? /* @__PURE__ */ jsx(
88
90
  Skeleton,
89
91
  {
@@ -99,7 +101,7 @@ const HomeGreeting = () => {
99
101
  ] }),
100
102
  " "
101
103
  ] }),
102
- /* @__PURE__ */ jsx(Typography, { variant: "h6", color: "#FAFAFA", children: "Let's get started." })
104
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", color: "#FAFAFA", children: t("greeting.subtitle") })
103
105
  ]
104
106
  }
105
107
  )
@@ -1 +1 @@
1
- {"version":3,"file":"HomeGretting.esm.js","sources":["../../../src/components/homeGretting/HomeGretting.tsx"],"sourcesContent":["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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HomeGretting.esm.js","sources":["../../../src/components/homeGretting/HomeGretting.tsx"],"sourcesContent":["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';\nimport { useTranslation } from '../../hooks/useTranslation';\n\nexport const HomeGreeting = () => {\n const [loading, setLoading] = useState<boolean>(false);\n const { displayName } = useUserProfile();\n const { t } = useTranslation();\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 {t('greeting.welcome')}\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 {t('greeting.subtitle')}\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"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
2
+ import '../translations/index.esm.js';
3
+ import { homepageTranslationRef } from '../translations/ref.esm.js';
4
+
5
+ const useTranslation = () => useTranslationRef(homepageTranslationRef);
6
+
7
+ export { useTranslation };
8
+ //# sourceMappingURL=useTranslation.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation.esm.js","sources":["../../src/hooks/useTranslation.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\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 {\n useTranslationRef,\n TranslationFunction,\n} from '@backstage/core-plugin-api/alpha';\n\nimport { homepageTranslationRef } from '../translations';\n\nexport const useTranslation = (): {\n t: TranslationFunction<typeof homepageTranslationRef.T>;\n} => useTranslationRef(homepageTranslationRef);\n"],"names":[],"mappings":";;;;AAuBO,MAAM,cAAA,GAAiB,MAEzB,iBAAA,CAAkB,sBAAsB;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,40 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
3
+ import * as _backstage_core_plugin_api_alpha from '@backstage/core-plugin-api/alpha';
3
4
 
4
- declare const veecodeHomepagePlugin: _backstage_core_plugin_api.BackstagePlugin<{
5
- root: _backstage_core_plugin_api.RouteRef<undefined>;
6
- }, {}, {}>;
5
+ /**
6
+ * Translation reference for the veecode-homepage plugin.
7
+ *
8
+ * @public
9
+ */
10
+ declare const homepageTranslationRef: _backstage_core_plugin_api_alpha.TranslationRef<"plugin.veecode-homepage", {
11
+ readonly "greeting.welcome": string;
12
+ readonly "greeting.subtitle": string;
13
+ readonly "summary.title": string;
14
+ readonly "summary.resources": string;
15
+ readonly "summary.components": string;
16
+ readonly "summary.apis": string;
17
+ readonly "highlightedCard.title": string;
18
+ readonly "highlightedCard.createButton": string;
19
+ readonly "toolkit.docs": string;
20
+ readonly "toolkit.community": string;
21
+ readonly "toolkit.website": string;
22
+ readonly "toolkit.support": string;
23
+ readonly "visitedCharts.title": string;
24
+ readonly "visitedCharts.total": string;
25
+ readonly "recentlyVisited.title": string;
26
+ readonly "starredEntities.title": string;
27
+ readonly "footer.poweredBy": string;
28
+ }>;
29
+
30
+ /**
31
+ * Translation resource for the veecode-homepage plugin, providing support for multiple languages.
32
+ *
33
+ * @public
34
+ */
35
+ declare const homepageTranslations: _backstage_core_plugin_api_alpha.TranslationResource<"plugin.veecode-homepage">;
36
+
37
+ declare const veecodeHomepagePlugin: _backstage_core_plugin_api.BackstagePlugin<{}, {}, {}>;
7
38
  declare const VeecodeHomepagePage: () => react_jsx_runtime.JSX.Element;
8
39
 
9
- export { VeecodeHomepagePage, veecodeHomepagePlugin };
40
+ export { VeecodeHomepagePage, homepageTranslationRef, homepageTranslations, veecodeHomepagePlugin };
package/dist/index.esm.js CHANGED
@@ -1,2 +1,4 @@
1
1
  export { VeecodeHomepagePage, veecodeHomepagePlugin } from './plugin.esm.js';
2
+ export { homepageTranslations } from './translations/index.esm.js';
3
+ export { homepageTranslationRef } from './translations/ref.esm.js';
2
4
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,6 +1,8 @@
1
1
  import { createPlugin, createApiFactory, identityApiRef, storageApiRef, createRoutableExtension } from '@backstage/core-plugin-api';
2
2
  import { visitsApiRef, VisitsStorageApi } from '@backstage/plugin-home';
3
3
  import { rootRouteRef } from './routes.esm.js';
4
+ export { homepageTranslations } from './translations/index.esm.js';
5
+ import { homepageTranslationRef } from './translations/ref.esm.js';
4
6
 
5
7
  console.log("[veecode-homepage] Initializing plugin");
6
8
  const veecodeHomepagePlugin = createPlugin({
@@ -20,7 +22,11 @@ const veecodeHomepagePlugin = createPlugin({
20
22
  return VisitsStorageApi.create({ storageApi, identityApi });
21
23
  }
22
24
  })
23
- ]
25
+ ],
26
+ __experimentalTranslations: {
27
+ availableLanguages: ["en", "de", "es", "fr", "it", "pt"],
28
+ resources: [homepageTranslationRef]
29
+ }
24
30
  });
25
31
  const VeecodeHomepagePage = veecodeHomepagePlugin.provide(
26
32
  createRoutableExtension({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n createApiFactory,\n // createComponentExtension,\n createPlugin,\n createRoutableExtension,\n identityApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n // type StarredEntitiesProps,\n // type VisitedByTypeProps,\n // type FeaturedDocsCardProps,\n visitsApiRef,\n VisitsStorageApi,\n} from '@backstage/plugin-home';\n\nimport { rootRouteRef } from './routes';\n\nconsole.log('[veecode-homepage] Initializing plugin');\n\nexport const veecodeHomepagePlugin = createPlugin({\n id: 'veecode-homepage',\n routes: {\n root: rootRouteRef,\n },\n apis: [\n createApiFactory({\n api: visitsApiRef,\n deps: {\n storageApi: storageApiRef,\n identityApi: identityApiRef,\n },\n factory: ({ storageApi, identityApi }) => {\n console.log('[veecode-homepage] Creating VisitsStorageApi');\n return VisitsStorageApi.create({ storageApi, identityApi });\n },\n }),\n ],\n});\n\nexport const VeecodeHomepagePage = veecodeHomepagePlugin.provide(\n createRoutableExtension({\n name: 'c',\n component: () => {\n console.log('[veecode-homepage] Loading VeeCodeHomePage component');\n return import('./components/VeeCodeHomePage').then(m => m.VeeCodeHomePage);\n },\n mountPoint: rootRouteRef,\n }),\n);\n"],"names":[],"mappings":";;;;AAkBA,OAAA,CAAQ,IAAI,wCAAwC,CAAA;AAE7C,MAAM,wBAAwB,YAAA,CAAa;AAAA,EAChD,EAAA,EAAI,kBAAA;AAAA,EACJ,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,gBAAA,CAAiB;AAAA,MACf,GAAA,EAAK,YAAA;AAAA,MACL,IAAA,EAAM;AAAA,QACJ,UAAA,EAAY,aAAA;AAAA,QACZ,WAAA,EAAa;AAAA,OACf;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,UAAA,EAAY,aAAY,KAAM;AACxC,QAAA,OAAA,CAAQ,IAAI,8CAA8C,CAAA;AAC1D,QAAA,OAAO,gBAAA,CAAiB,MAAA,CAAO,EAAE,UAAA,EAAY,aAAa,CAAA;AAAA,MAC5D;AAAA,KACD;AAAA;AAEL,CAAC;AAEM,MAAM,sBAAsB,qBAAA,CAAsB,OAAA;AAAA,EACvD,uBAAA,CAAwB;AAAA,IACtB,IAAA,EAAM,GAAA;AAAA,IACN,WAAW,MAAM;AACf,MAAA,OAAA,CAAQ,IAAI,sDAAsD,CAAA;AAClE,MAAA,OAAO,OAAO,qCAA8B,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,eAAe,CAAA;AAAA,IAC3E,CAAA;AAAA,IACA,UAAA,EAAY;AAAA,GACb;AACH;;;;"}
1
+ {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n createApiFactory,\n // createComponentExtension,\n createPlugin,\n createRoutableExtension,\n identityApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n // type StarredEntitiesProps,\n // type VisitedByTypeProps,\n // type FeaturedDocsCardProps,\n visitsApiRef,\n VisitsStorageApi,\n} from '@backstage/plugin-home';\n\nimport { rootRouteRef } from './routes';\nimport { homepageTranslationRef } from './translations';\n\nconsole.log('[veecode-homepage] Initializing plugin');\n\nexport const veecodeHomepagePlugin = createPlugin({\n id: 'veecode-homepage',\n routes: {\n root: rootRouteRef,\n },\n apis: [\n createApiFactory({\n api: visitsApiRef,\n deps: {\n storageApi: storageApiRef,\n identityApi: identityApiRef,\n },\n factory: ({ storageApi, identityApi }) => {\n console.log('[veecode-homepage] Creating VisitsStorageApi');\n return VisitsStorageApi.create({ storageApi, identityApi });\n },\n }),\n ],\n __experimentalTranslations: {\n availableLanguages: ['en', 'de', 'es', 'fr', 'it', 'pt'],\n resources: [homepageTranslationRef],\n },\n} as any);\n\nexport const VeecodeHomepagePage = veecodeHomepagePlugin.provide(\n createRoutableExtension({\n name: 'c',\n component: () => {\n console.log('[veecode-homepage] Loading VeeCodeHomePage component');\n return import('./components/VeeCodeHomePage').then(m => m.VeeCodeHomePage);\n },\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Translation resource for the veecode-homepage plugin\n *\n * @public\n */\nexport { homepageTranslations } from './translations';\n"],"names":[],"mappings":";;;;;;AAmBA,OAAA,CAAQ,IAAI,wCAAwC,CAAA;AAE7C,MAAM,wBAAwB,YAAA,CAAa;AAAA,EAChD,EAAA,EAAI,kBAAA;AAAA,EACJ,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,gBAAA,CAAiB;AAAA,MACf,GAAA,EAAK,YAAA;AAAA,MACL,IAAA,EAAM;AAAA,QACJ,UAAA,EAAY,aAAA;AAAA,QACZ,WAAA,EAAa;AAAA,OACf;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,UAAA,EAAY,aAAY,KAAM;AACxC,QAAA,OAAA,CAAQ,IAAI,8CAA8C,CAAA;AAC1D,QAAA,OAAO,gBAAA,CAAiB,MAAA,CAAO,EAAE,UAAA,EAAY,aAAa,CAAA;AAAA,MAC5D;AAAA,KACD;AAAA,GACH;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,oBAAoB,CAAC,IAAA,EAAM,MAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI,CAAA;AAAA,IACvD,SAAA,EAAW,CAAC,sBAAsB;AAAA;AAEtC,CAAQ;AAED,MAAM,sBAAsB,qBAAA,CAAsB,OAAA;AAAA,EACvD,uBAAA,CAAwB;AAAA,IACtB,IAAA,EAAM,GAAA;AAAA,IACN,WAAW,MAAM;AACf,MAAA,OAAA,CAAQ,IAAI,sDAAsD,CAAA;AAClE,MAAA,OAAO,OAAO,qCAA8B,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,eAAe,CAAA;AAAA,IAC3E,CAAA;AAAA,IACA,UAAA,EAAY;AAAA,GACb;AACH;;;;"}
@@ -0,0 +1,28 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { homepageTranslationRef } from './ref.esm.js';
3
+
4
+ const homepageTranslationDe = createTranslationMessages({
5
+ ref: homepageTranslationRef,
6
+ messages: {
7
+ "greeting.welcome": "Willkommen zur\xFCck",
8
+ "greeting.subtitle": "Lass uns anfangen.",
9
+ "summary.title": "Zusammenfassung",
10
+ "summary.resources": "Ressourcen",
11
+ "summary.components": "Komponenten",
12
+ "summary.apis": "APIs",
13
+ "highlightedCard.title": "Neue Funktionen hinzuf\xFCgen",
14
+ "highlightedCard.createButton": "Erstellen",
15
+ "toolkit.docs": "Dokumentation",
16
+ "toolkit.community": "Community",
17
+ "toolkit.website": "Webseite",
18
+ "toolkit.support": "Support",
19
+ "visitedCharts.title": "Meistbesuchte",
20
+ "visitedCharts.total": "Gesamt",
21
+ "recentlyVisited.title": "K\xFCrzlich besucht",
22
+ "starredEntities.title": "Ihre markierten Entit\xE4ten",
23
+ "footer.poweredBy": "Bereitgestellt von"
24
+ }
25
+ });
26
+
27
+ export { homepageTranslationDe as default };
28
+ //# sourceMappingURL=de.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de.esm.js","sources":["../../src/translations/de.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\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 { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { homepageTranslationRef } from './ref';\n\nconst homepageTranslationDe = createTranslationMessages({\n ref: homepageTranslationRef,\n messages: {\n 'greeting.welcome': 'Willkommen zurück',\n 'greeting.subtitle': 'Lass uns anfangen.',\n 'summary.title': 'Zusammenfassung',\n 'summary.resources': 'Ressourcen',\n 'summary.components': 'Komponenten',\n 'summary.apis': 'APIs',\n 'highlightedCard.title': 'Neue Funktionen hinzufügen',\n 'highlightedCard.createButton': 'Erstellen',\n 'toolkit.docs': 'Dokumentation',\n 'toolkit.community': 'Community',\n 'toolkit.website': 'Webseite',\n 'toolkit.support': 'Support',\n 'visitedCharts.title': 'Meistbesuchte',\n 'visitedCharts.total': 'Gesamt',\n 'recentlyVisited.title': 'Kürzlich besucht',\n 'starredEntities.title': 'Ihre markierten Entitäten',\n 'footer.poweredBy': 'Bereitgestellt von',\n },\n});\n\nexport default homepageTranslationDe;\n"],"names":[],"mappings":";;;AAmBA,MAAM,wBAAwB,yBAAA,CAA0B;AAAA,EACtD,GAAA,EAAK,sBAAA;AAAA,EACL,QAAA,EAAU;AAAA,IACR,kBAAA,EAAoB,sBAAA;AAAA,IACpB,mBAAA,EAAqB,oBAAA;AAAA,IACrB,eAAA,EAAiB,iBAAA;AAAA,IACjB,mBAAA,EAAqB,YAAA;AAAA,IACrB,oBAAA,EAAsB,aAAA;AAAA,IACtB,cAAA,EAAgB,MAAA;AAAA,IAChB,uBAAA,EAAyB,+BAAA;AAAA,IACzB,8BAAA,EAAgC,WAAA;AAAA,IAChC,cAAA,EAAgB,eAAA;AAAA,IAChB,mBAAA,EAAqB,WAAA;AAAA,IACrB,iBAAA,EAAmB,UAAA;AAAA,IACnB,iBAAA,EAAmB,SAAA;AAAA,IACnB,qBAAA,EAAuB,eAAA;AAAA,IACvB,qBAAA,EAAuB,QAAA;AAAA,IACvB,uBAAA,EAAyB,qBAAA;AAAA,IACzB,uBAAA,EAAyB,8BAAA;AAAA,IACzB,kBAAA,EAAoB;AAAA;AAExB,CAAC;;;;"}
@@ -0,0 +1,28 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { homepageTranslationRef } from './ref.esm.js';
3
+
4
+ const homepageTranslationEs = createTranslationMessages({
5
+ ref: homepageTranslationRef,
6
+ messages: {
7
+ "greeting.welcome": "Bienvenido de nuevo",
8
+ "greeting.subtitle": "Empecemos.",
9
+ "summary.title": "Resumen",
10
+ "summary.resources": "Recursos",
11
+ "summary.components": "Componentes",
12
+ "summary.apis": "APIs",
13
+ "highlightedCard.title": "Agregar nuevas funciones",
14
+ "highlightedCard.createButton": "Crear",
15
+ "toolkit.docs": "Documentaci\xF3n",
16
+ "toolkit.community": "Comunidad",
17
+ "toolkit.website": "Sitio web",
18
+ "toolkit.support": "Soporte",
19
+ "visitedCharts.title": "M\xE1s visitados",
20
+ "visitedCharts.total": "Total",
21
+ "recentlyVisited.title": "Visitados recientemente",
22
+ "starredEntities.title": "Tus entidades favoritas",
23
+ "footer.poweredBy": "Desarrollado con"
24
+ }
25
+ });
26
+
27
+ export { homepageTranslationEs as default };
28
+ //# sourceMappingURL=es.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.esm.js","sources":["../../src/translations/es.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\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 { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { homepageTranslationRef } from './ref';\n\nconst homepageTranslationEs = createTranslationMessages({\n ref: homepageTranslationRef,\n messages: {\n 'greeting.welcome': 'Bienvenido de nuevo',\n 'greeting.subtitle': 'Empecemos.',\n 'summary.title': 'Resumen',\n 'summary.resources': 'Recursos',\n 'summary.components': 'Componentes',\n 'summary.apis': 'APIs',\n 'highlightedCard.title': 'Agregar nuevas funciones',\n 'highlightedCard.createButton': 'Crear',\n 'toolkit.docs': 'Documentación',\n 'toolkit.community': 'Comunidad',\n 'toolkit.website': 'Sitio web',\n 'toolkit.support': 'Soporte',\n 'visitedCharts.title': 'Más visitados',\n 'visitedCharts.total': 'Total',\n 'recentlyVisited.title': 'Visitados recientemente',\n 'starredEntities.title': 'Tus entidades favoritas',\n 'footer.poweredBy': 'Desarrollado con',\n },\n});\n\nexport default homepageTranslationEs;\n"],"names":[],"mappings":";;;AAmBA,MAAM,wBAAwB,yBAAA,CAA0B;AAAA,EACtD,GAAA,EAAK,sBAAA;AAAA,EACL,QAAA,EAAU;AAAA,IACR,kBAAA,EAAoB,qBAAA;AAAA,IACpB,mBAAA,EAAqB,YAAA;AAAA,IACrB,eAAA,EAAiB,SAAA;AAAA,IACjB,mBAAA,EAAqB,UAAA;AAAA,IACrB,oBAAA,EAAsB,aAAA;AAAA,IACtB,cAAA,EAAgB,MAAA;AAAA,IAChB,uBAAA,EAAyB,0BAAA;AAAA,IACzB,8BAAA,EAAgC,OAAA;AAAA,IAChC,cAAA,EAAgB,kBAAA;AAAA,IAChB,mBAAA,EAAqB,WAAA;AAAA,IACrB,iBAAA,EAAmB,WAAA;AAAA,IACnB,iBAAA,EAAmB,SAAA;AAAA,IACnB,qBAAA,EAAuB,kBAAA;AAAA,IACvB,qBAAA,EAAuB,OAAA;AAAA,IACvB,uBAAA,EAAyB,yBAAA;AAAA,IACzB,uBAAA,EAAyB,yBAAA;AAAA,IACzB,kBAAA,EAAoB;AAAA;AAExB,CAAC;;;;"}