@drodil/backstage-plugin-qeta-react 3.28.2 → 3.29.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 (113) hide show
  1. package/dist/components/AnswerCard/AnswerCard.esm.js +77 -41
  2. package/dist/components/AnswerCard/AnswerCard.esm.js.map +1 -1
  3. package/dist/components/AnswersContainer/AnswersContainer.esm.js +16 -8
  4. package/dist/components/AnswersContainer/AnswersContainer.esm.js.map +1 -1
  5. package/dist/components/ArticleContent/ArticleContent.esm.js +2 -3
  6. package/dist/components/ArticleContent/ArticleContent.esm.js.map +1 -1
  7. package/dist/components/AuthorBox/AuthorBox.esm.js +74 -70
  8. package/dist/components/AuthorBox/AuthorBox.esm.js.map +1 -1
  9. package/dist/components/Buttons/AddToCollectionButton.esm.js +17 -2
  10. package/dist/components/Buttons/AddToCollectionButton.esm.js.map +1 -1
  11. package/dist/components/Buttons/ButtonContainer.esm.js +1 -0
  12. package/dist/components/Buttons/ButtonContainer.esm.js.map +1 -1
  13. package/dist/components/CollectionForm/CollectionForm.esm.js +78 -14
  14. package/dist/components/CollectionForm/CollectionForm.esm.js.map +1 -1
  15. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js +19 -21
  16. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js.map +1 -1
  17. package/dist/components/CommentSection/CommentListItem.esm.js +20 -3
  18. package/dist/components/CommentSection/CommentListItem.esm.js.map +1 -1
  19. package/dist/components/CommentSection/CommentSection.esm.js +57 -12
  20. package/dist/components/CommentSection/CommentSection.esm.js.map +1 -1
  21. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js +26 -24
  22. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js.map +1 -1
  23. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js +48 -50
  24. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js.map +1 -1
  25. package/dist/components/FilterPanel/DateRangeFilter.esm.js +28 -20
  26. package/dist/components/FilterPanel/DateRangeFilter.esm.js.map +1 -1
  27. package/dist/components/FilterPanel/FilterPanel.esm.js +34 -1
  28. package/dist/components/FilterPanel/FilterPanel.esm.js.map +1 -1
  29. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js +1 -1
  30. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js.map +1 -1
  31. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js +1 -1
  32. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js.map +1 -1
  33. package/dist/components/FollowedLists/FollowedTagsList.esm.js +1 -1
  34. package/dist/components/FollowedLists/FollowedTagsList.esm.js.map +1 -1
  35. package/dist/components/FollowedLists/FollowedUsersList.esm.js +1 -1
  36. package/dist/components/FollowedLists/FollowedUsersList.esm.js.map +1 -1
  37. package/dist/components/GridItemStyles/useGridItemStyles.esm.js +68 -0
  38. package/dist/components/GridItemStyles/useGridItemStyles.esm.js.map +1 -0
  39. package/dist/components/HeaderImageInput/HeaderImageInput.esm.js +171 -36
  40. package/dist/components/HeaderImageInput/HeaderImageInput.esm.js.map +1 -1
  41. package/dist/components/HomePageCards/ImpactCard.esm.js +52 -15
  42. package/dist/components/HomePageCards/ImpactCard.esm.js.map +1 -1
  43. package/dist/components/HomePageCards/PostsCard.esm.js +2 -0
  44. package/dist/components/HomePageCards/PostsCard.esm.js.map +1 -1
  45. package/dist/components/LeftMenu/LeftMenu.esm.js +45 -13
  46. package/dist/components/LeftMenu/LeftMenu.esm.js.map +1 -1
  47. package/dist/components/Links/Links.esm.js +6 -0
  48. package/dist/components/Links/Links.esm.js.map +1 -1
  49. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js +87 -31
  50. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js.map +1 -1
  51. package/dist/components/PostForm/EntitiesInput.esm.js +4 -6
  52. package/dist/components/PostForm/EntitiesInput.esm.js.map +1 -1
  53. package/dist/components/PostForm/PostForm.esm.js +98 -26
  54. package/dist/components/PostForm/PostForm.esm.js.map +1 -1
  55. package/dist/components/PostForm/TagInput.esm.js.map +1 -1
  56. package/dist/components/PostHighlightList/PostHighlightList.esm.js +97 -19
  57. package/dist/components/PostHighlightList/PostHighlightList.esm.js.map +1 -1
  58. package/dist/components/PostsContainer/PostList.esm.js +11 -2
  59. package/dist/components/PostsContainer/PostList.esm.js.map +1 -1
  60. package/dist/components/PostsContainer/PostListItem.esm.js +238 -139
  61. package/dist/components/PostsContainer/PostListItem.esm.js.map +1 -1
  62. package/dist/components/PostsContainer/PostsContainer.esm.js +68 -57
  63. package/dist/components/PostsContainer/PostsContainer.esm.js.map +1 -1
  64. package/dist/components/PostsGrid/PostsGrid.esm.js +20 -13
  65. package/dist/components/PostsGrid/PostsGrid.esm.js.map +1 -1
  66. package/dist/components/PostsGrid/PostsGridContent.esm.js +2 -1
  67. package/dist/components/PostsGrid/PostsGridContent.esm.js.map +1 -1
  68. package/dist/components/PostsGrid/PostsGridItem.esm.js +210 -51
  69. package/dist/components/PostsGrid/PostsGridItem.esm.js.map +1 -1
  70. package/dist/components/QetaPagination/QetaPagination.esm.js +4 -2
  71. package/dist/components/QetaPagination/QetaPagination.esm.js.map +1 -1
  72. package/dist/components/QuestionCard/QuestionCard.esm.js +69 -40
  73. package/dist/components/QuestionCard/QuestionCard.esm.js.map +1 -1
  74. package/dist/components/SearchBar/SearchBar.esm.js +72 -18
  75. package/dist/components/SearchBar/SearchBar.esm.js.map +1 -1
  76. package/dist/components/StatsChart/StatsChart.esm.js +176 -64
  77. package/dist/components/StatsChart/StatsChart.esm.js.map +1 -1
  78. package/dist/components/SuggestionsCard/SuggestionsCard.esm.js +93 -16
  79. package/dist/components/SuggestionsCard/SuggestionsCard.esm.js.map +1 -1
  80. package/dist/components/SummaryStatsGrid/SummaryStatsGrid.esm.js +80 -27
  81. package/dist/components/SummaryStatsGrid/SummaryStatsGrid.esm.js.map +1 -1
  82. package/dist/components/TagsAndEntities/EntityChip.esm.js +7 -0
  83. package/dist/components/TagsAndEntities/EntityChip.esm.js.map +1 -1
  84. package/dist/components/TagsAndEntities/TagChip.esm.js +6 -0
  85. package/dist/components/TagsAndEntities/TagChip.esm.js.map +1 -1
  86. package/dist/components/TagsGrid/TagGridItem.esm.js +84 -83
  87. package/dist/components/TagsGrid/TagGridItem.esm.js.map +1 -1
  88. package/dist/components/TagsGrid/TagsGrid.esm.js +39 -36
  89. package/dist/components/TagsGrid/TagsGrid.esm.js.map +1 -1
  90. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js +95 -44
  91. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js.map +1 -1
  92. package/dist/components/UsersGrid/UsersGrid.esm.js +10 -10
  93. package/dist/components/UsersGrid/UsersGrid.esm.js.map +1 -1
  94. package/dist/components/UsersGrid/UsersGridItem.esm.js +80 -77
  95. package/dist/components/UsersGrid/UsersGridItem.esm.js.map +1 -1
  96. package/dist/components/Utility/QetaGridHeader.esm.js +36 -0
  97. package/dist/components/Utility/QetaGridHeader.esm.js.map +1 -0
  98. package/dist/components/Utility/RightList.esm.js +19 -8
  99. package/dist/components/Utility/RightList.esm.js.map +1 -1
  100. package/dist/components/Utility/SmallAvatar.esm.js +0 -1
  101. package/dist/components/Utility/SmallAvatar.esm.js.map +1 -1
  102. package/dist/components/ViewToggle/ViewToggle.esm.js +33 -0
  103. package/dist/components/ViewToggle/ViewToggle.esm.js.map +1 -0
  104. package/dist/hooks/useTooltipStyles.esm.js +23 -0
  105. package/dist/hooks/useTooltipStyles.esm.js.map +1 -0
  106. package/dist/index.d.ts +105 -24
  107. package/dist/index.esm.js +1 -0
  108. package/dist/index.esm.js.map +1 -1
  109. package/dist/translation.esm.js +96 -27
  110. package/dist/translation.esm.js.map +1 -1
  111. package/dist/utils/utils.esm.js +18 -3
  112. package/dist/utils/utils.esm.js.map +1 -1
  113. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QetaGridHeader.esm.js","sources":["../../../src/components/Utility/QetaGridHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { Grid, Typography, Box } from '@material-ui/core';\nimport { SearchBar } from '../SearchBar/SearchBar';\n\nexport type QetaGridHeaderProps = {\n title: React.ReactNode;\n searchBarLabel: string;\n loading: boolean;\n onSearch: (val: string) => void;\n buttons?: React.ReactNode;\n};\n\nexport const QetaGridHeader = ({\n title,\n searchBarLabel,\n loading,\n onSearch,\n buttons,\n}: QetaGridHeaderProps) => {\n return (\n <Box mb={3}>\n <Grid container alignItems=\"flex-end\" justifyContent=\"space-between\">\n <Grid item xs={12} md={4}>\n <SearchBar\n onSearch={onSearch}\n label={searchBarLabel}\n loading={loading}\n />\n </Grid>\n </Grid>\n <Box mt={2} mb={2}>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\">\n <Grid item>\n {!loading && (\n <Typography\n variant=\"h6\"\n style={{ fontWeight: 500, paddingBottom: 2 }}\n >\n {title}\n </Typography>\n )}\n </Grid>\n {buttons && <Grid item>{buttons}</Grid>}\n </Grid>\n </Box>\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,KAAA;AAAA,EACA,cAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAA2B,KAAA;AACzB,EACE,uBAAA,IAAA,CAAC,GAAI,EAAA,EAAA,EAAA,EAAI,CACP,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,SAAA,EAAS,IAAC,EAAA,UAAA,EAAW,YAAW,cAAe,EAAA,eAAA,EACnD,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,IAAI,EAAA,IAAA,EAAC,EAAI,EAAA,EAAA,EAAI,IAAI,CACrB,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,QAAA;AAAA,QACA,KAAO,EAAA,cAAA;AAAA,QACP;AAAA;AAAA,OAEJ,CACF,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,GAAA,EAAA,EAAI,EAAI,EAAA,CAAA,EAAG,EAAI,EAAA,CAAA,EACd,QAAC,kBAAA,IAAA,CAAA,IAAA,EAAA,EAAK,SAAS,EAAA,IAAA,EAAC,UAAW,EAAA,QAAA,EAAS,gBAAe,eACjD,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAI,IACP,EAAA,QAAA,EAAA,CAAC,OACA,oBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,OAAQ,EAAA,IAAA;AAAA,UACR,KAAO,EAAA,EAAE,UAAY,EAAA,GAAA,EAAK,eAAe,CAAE,EAAA;AAAA,UAE1C,QAAA,EAAA;AAAA;AAAA,OAGP,EAAA,CAAA;AAAA,MACC,OAAW,oBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAI,MAAE,QAAQ,EAAA,OAAA,EAAA;AAAA,KAAA,EAClC,CACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,23 +1,38 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { makeStyles, Box, Paper, List, ListSubheader } from '@material-ui/core';
2
+ import { makeStyles, Box, List, ListSubheader } from '@material-ui/core';
3
3
 
4
4
  const useStyles = makeStyles((theme) => ({
5
5
  container: {
6
6
  width: "100%",
7
- backgroundColor: theme.palette.background.paper,
8
7
  marginBottom: "1em"
8
+ },
9
+ subheader: {
10
+ color: theme.palette.text.hint,
11
+ padding: "0px 0px 0.5rem 0.5rem",
12
+ whiteSpace: "nowrap",
13
+ overflow: "hidden",
14
+ textOverflow: "ellipsis",
15
+ lineHeight: 1.5
16
+ },
17
+ list: {
18
+ "& li": {
19
+ paddingLeft: theme.spacing(1),
20
+ paddingRight: theme.spacing(1)
21
+ }
9
22
  }
10
23
  }));
11
24
  const RightListContainer = (props) => {
12
25
  const styles = useStyles();
13
- return /* @__PURE__ */ jsx(Box, { display: { md: "none", lg: "block" }, children: /* @__PURE__ */ jsx(Paper, { className: styles.container, children: props.children }) });
26
+ return /* @__PURE__ */ jsx(Box, { display: { md: "none", lg: "block" }, className: styles.container, children: props.children });
14
27
  };
15
28
  const RightList = (props) => {
29
+ const styles = useStyles();
16
30
  return /* @__PURE__ */ jsx(
17
31
  List,
18
32
  {
19
33
  component: "nav",
20
34
  "aria-labelledby": "nested-list-subheader",
35
+ className: styles.list,
21
36
  subheader: /* @__PURE__ */ jsxs(
22
37
  ListSubheader,
23
38
  {
@@ -25,11 +40,7 @@ const RightList = (props) => {
25
40
  component: "div",
26
41
  id: "nested-list-subheader",
27
42
  color: "primary",
28
- style: {
29
- whiteSpace: "nowrap",
30
- overflow: "hidden",
31
- textOverflow: "ellipsis"
32
- },
43
+ className: styles.subheader,
33
44
  children: [
34
45
  props.title,
35
46
  props.icon
@@ -1 +1 @@
1
- {"version":3,"file":"RightList.esm.js","sources":["../../../src/components/Utility/RightList.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { Box, List, ListSubheader, makeStyles, Paper } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n width: '100%',\n backgroundColor: theme.palette.background.paper,\n marginBottom: '1em',\n },\n}));\n\nexport const RightListContainer = (props: { children: ReactNode }) => {\n const styles = useStyles();\n return (\n <Box display={{ md: 'none', lg: 'block' }}>\n <Paper className={styles.container}>{props.children}</Paper>\n </Box>\n );\n};\n\nexport const RightList = (props: {\n children: ReactNode;\n title: string;\n icon?: ReactNode;\n}) => {\n return (\n <List\n component=\"nav\"\n aria-labelledby=\"nested-list-subheader\"\n subheader={\n <ListSubheader\n disableSticky\n component=\"div\"\n id=\"nested-list-subheader\"\n color=\"primary\"\n style={{\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n >\n {props.title}\n {props.icon}\n </ListSubheader>\n }\n >\n {props.children}\n </List>\n );\n};\n"],"names":[],"mappings":";;;AAGA,MAAM,SAAA,GAAY,WAAW,CAAU,KAAA,MAAA;AAAA,EACrC,SAAW,EAAA;AAAA,IACT,KAAO,EAAA,MAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,UAAW,CAAA,KAAA;AAAA,IAC1C,YAAc,EAAA;AAAA;AAElB,CAAE,CAAA,CAAA;AAEW,MAAA,kBAAA,GAAqB,CAAC,KAAmC,KAAA;AACpE,EAAA,MAAM,SAAS,SAAU,EAAA;AACzB,EAAA,2BACG,GAAI,EAAA,EAAA,OAAA,EAAS,EAAE,EAAA,EAAI,QAAQ,EAAI,EAAA,OAAA,EAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,SAAM,SAAW,EAAA,MAAA,CAAO,SAAY,EAAA,QAAA,EAAA,KAAA,CAAM,UAAS,CACtD,EAAA,CAAA;AAEJ;AAEa,MAAA,SAAA,GAAY,CAAC,KAIpB,KAAA;AACJ,EACE,uBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAU,EAAA,KAAA;AAAA,MACV,iBAAgB,EAAA,uBAAA;AAAA,MAChB,SACE,kBAAA,IAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,aAAa,EAAA,IAAA;AAAA,UACb,SAAU,EAAA,KAAA;AAAA,UACV,EAAG,EAAA,uBAAA;AAAA,UACH,KAAM,EAAA,SAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,UAAY,EAAA,QAAA;AAAA,YACZ,QAAU,EAAA,QAAA;AAAA,YACV,YAAc,EAAA;AAAA,WAChB;AAAA,UAEC,QAAA,EAAA;AAAA,YAAM,KAAA,CAAA,KAAA;AAAA,YACN,KAAM,CAAA;AAAA;AAAA;AAAA,OACT;AAAA,MAGD,QAAM,EAAA,KAAA,CAAA;AAAA;AAAA,GACT;AAEJ;;;;"}
1
+ {"version":3,"file":"RightList.esm.js","sources":["../../../src/components/Utility/RightList.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { Box, List, ListSubheader, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n width: '100%',\n marginBottom: '1em',\n },\n subheader: {\n color: theme.palette.text.hint,\n padding: '0px 0px 0.5rem 0.5rem',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n lineHeight: 1.5,\n },\n list: {\n '& li': {\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n },\n },\n}));\n\nexport const RightListContainer = (props: { children: ReactNode }) => {\n const styles = useStyles();\n return (\n <Box display={{ md: 'none', lg: 'block' }} className={styles.container}>\n {props.children}\n </Box>\n );\n};\n\nexport const RightList = (props: {\n children: ReactNode;\n title: string;\n icon?: ReactNode;\n}) => {\n const styles = useStyles();\n return (\n <List\n component=\"nav\"\n aria-labelledby=\"nested-list-subheader\"\n className={styles.list}\n subheader={\n <ListSubheader\n disableSticky\n component=\"div\"\n id=\"nested-list-subheader\"\n color=\"primary\"\n className={styles.subheader}\n >\n {props.title}\n {props.icon}\n </ListSubheader>\n }\n >\n {props.children}\n </List>\n );\n};\n"],"names":[],"mappings":";;;AAGA,MAAM,SAAA,GAAY,WAAW,CAAU,KAAA,MAAA;AAAA,EACrC,SAAW,EAAA;AAAA,IACT,KAAO,EAAA,MAAA;AAAA,IACP,YAAc,EAAA;AAAA,GAChB;AAAA,EACA,SAAW,EAAA;AAAA,IACT,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA;AAAA,IAC1B,OAAS,EAAA,uBAAA;AAAA,IACT,UAAY,EAAA,QAAA;AAAA,IACZ,QAAU,EAAA,QAAA;AAAA,IACV,YAAc,EAAA,UAAA;AAAA,IACd,UAAY,EAAA;AAAA,GACd;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,MAAQ,EAAA;AAAA,MACN,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,MAC5B,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA;AAC/B;AAEJ,CAAE,CAAA,CAAA;AAEW,MAAA,kBAAA,GAAqB,CAAC,KAAmC,KAAA;AACpE,EAAA,MAAM,SAAS,SAAU,EAAA;AACzB,EAAA,uBACG,GAAA,CAAA,GAAA,EAAA,EAAI,OAAS,EAAA,EAAE,EAAI,EAAA,MAAA,EAAQ,EAAI,EAAA,OAAA,EAAW,EAAA,SAAA,EAAW,MAAO,CAAA,SAAA,EAC1D,gBAAM,QACT,EAAA,CAAA;AAEJ;AAEa,MAAA,SAAA,GAAY,CAAC,KAIpB,KAAA;AACJ,EAAA,MAAM,SAAS,SAAU,EAAA;AACzB,EACE,uBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAU,EAAA,KAAA;AAAA,MACV,iBAAgB,EAAA,uBAAA;AAAA,MAChB,WAAW,MAAO,CAAA,IAAA;AAAA,MAClB,SACE,kBAAA,IAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,aAAa,EAAA,IAAA;AAAA,UACb,SAAU,EAAA,KAAA;AAAA,UACV,EAAG,EAAA,uBAAA;AAAA,UACH,KAAM,EAAA,SAAA;AAAA,UACN,WAAW,MAAO,CAAA,SAAA;AAAA,UAEjB,QAAA,EAAA;AAAA,YAAM,KAAA,CAAA,KAAA;AAAA,YACN,KAAM,CAAA;AAAA;AAAA;AAAA,OACT;AAAA,MAGD,QAAM,EAAA,KAAA,CAAA;AAAA;AAAA,GACT;AAEJ;;;;"}
@@ -5,7 +5,6 @@ const useStyles = makeStyles(() => ({
5
5
  root: {
6
6
  display: "inline-flex !important",
7
7
  marginRight: "0.25rem",
8
- fontSize: "1rem",
9
8
  maxWidth: "1rem",
10
9
  maxHeight: "1rem"
11
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SmallAvatar.esm.js","sources":["../../../src/components/Utility/SmallAvatar.tsx"],"sourcesContent":["import { Avatar, AvatarProps, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {\n display: 'inline-flex !important',\n marginRight: '0.25rem',\n fontSize: '1rem',\n maxWidth: '1rem',\n maxHeight: '1rem',\n },\n}));\n\nexport const SmallAvatar = (props: AvatarProps) => {\n const styles = useStyles();\n return (\n <Avatar className={styles.root} {...props}>\n {props.children}\n </Avatar>\n );\n};\n"],"names":[],"mappings":";;;AAEA,MAAM,SAAA,GAAY,WAAW,OAAO;AAAA,EAClC,IAAM,EAAA;AAAA,IACJ,OAAS,EAAA,wBAAA;AAAA,IACT,WAAa,EAAA,SAAA;AAAA,IACb,QAAU,EAAA,MAAA;AAAA,IACV,QAAU,EAAA,MAAA;AAAA,IACV,SAAW,EAAA;AAAA;AAEf,CAAE,CAAA,CAAA;AAEW,MAAA,WAAA,GAAc,CAAC,KAAuB,KAAA;AACjD,EAAA,MAAM,SAAS,SAAU,EAAA;AACzB,EACE,uBAAA,GAAA,CAAC,UAAO,SAAW,EAAA,MAAA,CAAO,MAAO,GAAG,KAAA,EACjC,gBAAM,QACT,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SmallAvatar.esm.js","sources":["../../../src/components/Utility/SmallAvatar.tsx"],"sourcesContent":["import { Avatar, AvatarProps, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {\n display: 'inline-flex !important',\n marginRight: '0.25rem',\n maxWidth: '1rem',\n maxHeight: '1rem',\n },\n}));\n\nexport const SmallAvatar = (props: AvatarProps) => {\n const styles = useStyles();\n return (\n <Avatar className={styles.root} {...props}>\n {props.children}\n </Avatar>\n );\n};\n"],"names":[],"mappings":";;;AAEA,MAAM,SAAA,GAAY,WAAW,OAAO;AAAA,EAClC,IAAM,EAAA;AAAA,IACJ,OAAS,EAAA,wBAAA;AAAA,IACT,WAAa,EAAA,SAAA;AAAA,IACb,QAAU,EAAA,MAAA;AAAA,IACV,SAAW,EAAA;AAAA;AAEf,CAAE,CAAA,CAAA;AAEW,MAAA,WAAA,GAAc,CAAC,KAAuB,KAAA;AACjD,EAAA,MAAM,SAAS,SAAU,EAAA;AACzB,EACE,uBAAA,GAAA,CAAC,UAAO,SAAW,EAAA,MAAA,CAAO,MAAO,GAAG,KAAA,EACjC,gBAAM,QACT,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,33 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ButtonGroup, Tooltip, Button } from '@material-ui/core';
3
+ import ViewList from '@material-ui/icons/ViewList';
4
+ import ViewModule from '@material-ui/icons/ViewModule';
5
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
6
+ import { qetaTranslationRef } from '../../translation.esm.js';
7
+
8
+ const ViewToggle = ({ view, onChange }) => {
9
+ const { t } = useTranslationRef(qetaTranslationRef);
10
+ return /* @__PURE__ */ jsxs(ButtonGroup, { size: "small", children: [
11
+ /* @__PURE__ */ jsx(Tooltip, { title: t("viewToggle.listView"), children: /* @__PURE__ */ jsx(
12
+ Button,
13
+ {
14
+ color: view === "list" ? "primary" : void 0,
15
+ onClick: () => onChange("list"),
16
+ "aria-label": t("viewToggle.listView"),
17
+ children: /* @__PURE__ */ jsx(ViewList, {})
18
+ }
19
+ ) }),
20
+ /* @__PURE__ */ jsx(Tooltip, { title: t("viewToggle.gridView"), children: /* @__PURE__ */ jsx(
21
+ Button,
22
+ {
23
+ color: view === "grid" ? "primary" : void 0,
24
+ onClick: () => onChange("grid"),
25
+ "aria-label": t("viewToggle.gridView"),
26
+ children: /* @__PURE__ */ jsx(ViewModule, {})
27
+ }
28
+ ) })
29
+ ] });
30
+ };
31
+
32
+ export { ViewToggle };
33
+ //# sourceMappingURL=ViewToggle.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewToggle.esm.js","sources":["../../../src/components/ViewToggle/ViewToggle.tsx"],"sourcesContent":["import { Button, ButtonGroup, Tooltip } from '@material-ui/core';\nimport ViewList from '@material-ui/icons/ViewList';\nimport ViewModule from '@material-ui/icons/ViewModule';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\n\nexport type ViewType = 'list' | 'grid';\n\ninterface ViewToggleProps {\n view: ViewType;\n onChange: (view: ViewType) => void;\n}\n\nexport const ViewToggle = ({ view, onChange }: ViewToggleProps) => {\n const { t } = useTranslationRef(qetaTranslationRef);\n\n return (\n <ButtonGroup size=\"small\">\n <Tooltip title={t('viewToggle.listView')}>\n <Button\n color={view === 'list' ? 'primary' : undefined}\n onClick={() => onChange('list')}\n aria-label={t('viewToggle.listView')}\n >\n <ViewList />\n </Button>\n </Tooltip>\n <Tooltip title={t('viewToggle.gridView')}>\n <Button\n color={view === 'grid' ? 'primary' : undefined}\n onClick={() => onChange('grid')}\n aria-label={t('viewToggle.gridView')}\n >\n <ViewModule />\n </Button>\n </Tooltip>\n </ButtonGroup>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAaO,MAAM,UAAa,GAAA,CAAC,EAAE,IAAA,EAAM,UAAgC,KAAA;AACjE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAElD,EACE,uBAAA,IAAA,CAAC,WAAY,EAAA,EAAA,IAAA,EAAK,OAChB,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OAAQ,EAAA,EAAA,KAAA,EAAO,CAAE,CAAA,qBAAqB,CACrC,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,IAAS,KAAA,MAAA,GAAS,SAAY,GAAA,KAAA,CAAA;AAAA,QACrC,OAAA,EAAS,MAAM,QAAA,CAAS,MAAM,CAAA;AAAA,QAC9B,YAAA,EAAY,EAAE,qBAAqB,CAAA;AAAA,QAEnC,8BAAC,QAAS,EAAA,EAAA;AAAA;AAAA,KAEd,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,qBAAqB,CACrC,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,IAAS,KAAA,MAAA,GAAS,SAAY,GAAA,KAAA,CAAA;AAAA,QACrC,OAAA,EAAS,MAAM,QAAA,CAAS,MAAM,CAAA;AAAA,QAC9B,YAAA,EAAY,EAAE,qBAAqB,CAAA;AAAA,QAEnC,8BAAC,UAAW,EAAA,EAAA;AAAA;AAAA,KAEhB,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,23 @@
1
+ import { makeStyles } from '@material-ui/core';
2
+
3
+ const useTooltipStyles = makeStyles((theme) => ({
4
+ tooltip: {
5
+ backgroundColor: theme.palette.background.paper,
6
+ color: theme.palette.text.primary,
7
+ fontSize: "0.875rem",
8
+ border: `1px solid ${theme.palette.divider}`,
9
+ borderRadius: theme.shape.borderRadius,
10
+ boxShadow: theme.shadows[2],
11
+ padding: theme.spacing(1),
12
+ maxWidth: 300
13
+ },
14
+ tooltipArrow: {
15
+ color: theme.palette.background.paper,
16
+ "&::before": {
17
+ border: `1px solid ${theme.palette.divider}`
18
+ }
19
+ }
20
+ }));
21
+
22
+ export { useTooltipStyles };
23
+ //# sourceMappingURL=useTooltipStyles.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTooltipStyles.esm.js","sources":["../../src/hooks/useTooltipStyles.ts"],"sourcesContent":["import { makeStyles, Theme } from '@material-ui/core';\n\nexport const useTooltipStyles = makeStyles((theme: Theme) => ({\n tooltip: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n fontSize: '0.875rem',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[2],\n padding: theme.spacing(1),\n maxWidth: 300,\n },\n tooltipArrow: {\n color: theme.palette.background.paper,\n '&::before': {\n border: `1px solid ${theme.palette.divider}`,\n },\n },\n}));\n"],"names":[],"mappings":";;AAEa,MAAA,gBAAA,GAAmB,UAAW,CAAA,CAAC,KAAkB,MAAA;AAAA,EAC5D,OAAS,EAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,UAAW,CAAA,KAAA;AAAA,IAC1C,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,OAAA;AAAA,IAC1B,QAAU,EAAA,UAAA;AAAA,IACV,MAAQ,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA,CAAA;AAAA,IAC1C,YAAA,EAAc,MAAM,KAAM,CAAA,YAAA;AAAA,IAC1B,SAAA,EAAW,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC1B,OAAA,EAAS,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,IACxB,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,UAAW,CAAA,KAAA;AAAA,IAChC,WAAa,EAAA;AAAA,MACX,MAAQ,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA;AAAA;AAC5C;AAEJ,CAAE,CAAA;;;;"}
package/dist/index.d.ts CHANGED
@@ -101,6 +101,13 @@ interface FilterPanelProps<T extends Filters> extends CommonFilterPanelProps {
101
101
  }
102
102
  declare const FilterPanel: <T extends Filters>(props: FilterPanelProps<T>) => react_jsx_runtime.JSX.Element;
103
103
 
104
+ type ViewType = 'list' | 'grid';
105
+ interface ViewToggleProps {
106
+ view: ViewType;
107
+ onChange: (view: ViewType) => void;
108
+ }
109
+ declare const ViewToggle: ({ view, onChange }: ViewToggleProps) => react_jsx_runtime.JSX.Element;
110
+
104
111
  type PaginatedPostsProps = PostFilters & {
105
112
  author?: string;
106
113
  showFilters?: boolean;
@@ -117,6 +124,9 @@ type PaginatedPostsProps = PostFilters & {
117
124
  declare const PostsContainer: (props: PaginatedPostsProps & {
118
125
  entity?: string;
119
126
  filterPanelProps?: CommonFilterPanelProps;
127
+ showTypeLabel?: boolean;
128
+ view?: ViewType;
129
+ onViewChange?: (view: ViewType) => void;
120
130
  }) => react_jsx_runtime.JSX.Element;
121
131
 
122
132
  declare const PostList: (props: {
@@ -133,12 +143,14 @@ declare const PostList: (props: {
133
143
  showNoQuestionsBtn?: boolean;
134
144
  entityPage?: boolean;
135
145
  type?: PostType;
146
+ showTypeLabel?: boolean;
136
147
  }) => react_jsx_runtime.JSX.Element;
137
148
 
138
149
  interface PostListItemProps {
139
150
  post: PostResponse;
140
151
  entity?: string;
141
152
  type?: PostType;
153
+ showTypeLabel?: boolean;
142
154
  }
143
155
  declare const PostListItem: (props: PostListItemProps) => react_jsx_runtime.JSX.Element;
144
156
 
@@ -252,7 +264,7 @@ declare const PostsCard: (props: {
252
264
  postType?: PostType;
253
265
  }) => react_jsx_runtime.JSX.Element | null;
254
266
 
255
- declare const ImpactCard: () => react_jsx_runtime.JSX.Element | null;
267
+ declare const ImpactCard: () => react_jsx_runtime.JSX.Element;
256
268
 
257
269
  declare const FollowedEntitiesList: () => react_jsx_runtime.JSX.Element | null;
258
270
 
@@ -306,6 +318,8 @@ declare const QuestionsTable: (props: {
306
318
  type QetaStatsChartClassKey = 'tooltipLabel' | 'tooltipWrapper' | 'xAxis' | 'lineChart' | 'barChart';
307
319
  declare const StatsChart: (props: {
308
320
  data: Stat[];
321
+ loading?: boolean;
322
+ error?: string;
309
323
  }) => react_jsx_runtime.JSX.Element;
310
324
 
311
325
  declare const SummaryStatsGrid: (props: {
@@ -329,6 +343,8 @@ declare const UsersGrid: () => react_jsx_runtime.JSX.Element;
329
343
  type PostGridProps = PaginatedPostsProps & {
330
344
  allowRanking?: boolean;
331
345
  filterPanelProps?: CommonFilterPanelProps;
346
+ view?: ViewType;
347
+ onViewChange?: (view: ViewType) => void;
332
348
  };
333
349
  declare const PostsGrid: (props: PostGridProps) => react_jsx_runtime.JSX.Element;
334
350
 
@@ -383,7 +399,7 @@ type AIAnswerCardProps = {
383
399
  };
384
400
  declare const AIAnswerCard: (props: AIAnswerCardProps) => react_jsx_runtime.JSX.Element | null;
385
401
 
386
- declare const SuggestionsCard: () => react_jsx_runtime.JSX.Element | null;
402
+ declare const SuggestionsCard: () => react_jsx_runtime.JSX.Element;
387
403
 
388
404
  declare function useQetaApi<T>(f: (api: QetaApi) => Promise<T>, deps?: any[]): {
389
405
  retry: () => void;
@@ -475,6 +491,8 @@ declare const useAI: () => {
475
491
 
476
492
  /** @alpha */
477
493
  declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRef<"qeta", {
494
+ readonly "code.aria": "Copy code to clipboard";
495
+ readonly "code.copied": "Code copied to clipboard";
478
496
  readonly "link.post": "Copy link to this post to clipboard";
479
497
  readonly "link.answer": "Copy link to this answer to clipboard";
480
498
  readonly "link.aria": "Copy link to clipboard";
@@ -505,26 +523,33 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
505
523
  readonly "answerList.errorLoading": "Could not load answers";
506
524
  readonly "answerList.limitSelect": "Answers per page";
507
525
  readonly "common.article": "article";
526
+ readonly "common.search": "Search";
508
527
  readonly "common.post": "post";
509
528
  readonly "common.collection": "collection";
510
529
  readonly "common.question": "question";
511
530
  readonly "common.score": "{{score}} score";
531
+ readonly "common.answers": "answers";
512
532
  readonly "common.experts": "Experts";
513
533
  readonly "common.tagExpert": "This user is an expert in this area";
514
534
  readonly "common.comments": "Comments";
535
+ readonly "common.votes": "votes";
536
+ readonly "common.views": "views";
537
+ readonly "common.postStats": "Post stats";
515
538
  readonly "common.anonymousAuthor": "Anonymous";
516
- readonly "common.answers_zero": "No answers";
517
- readonly "common.answers_one": "{{count}} answer";
518
- readonly "common.answers_other": "{{count}} answers";
519
- readonly "common.views_zero": "Viewed {{count}} times";
520
- readonly "common.views_one": "Viewed {{count}} time";
521
- readonly "common.views_other": "Viewed {{count}} times";
539
+ readonly "common.readMore": "Read more";
540
+ readonly "common.clear": "Clear search";
541
+ readonly "common.answersCount_zero": "No answers";
542
+ readonly "common.answersCount_one": "{{count}} answer";
543
+ readonly "common.answersCount_other": "{{count}} answers";
544
+ readonly "common.viewsCount_zero": "Viewed {{count}} times";
545
+ readonly "common.viewsCount_one": "Viewed {{count}} time";
546
+ readonly "common.viewsCount_other": "Viewed {{count}} times";
522
547
  readonly "common.viewsShort_zero": "0 views";
523
548
  readonly "common.viewsShort_one": "{{count}} view";
524
549
  readonly "common.viewsShort_other": "{{count}} views";
525
- readonly "common.votes_zero": "0 votes";
526
- readonly "common.votes_one": "{{count}} vote";
527
- readonly "common.votes_other": "{{count}} votes";
550
+ readonly "common.votesCount_zero": "0 votes";
551
+ readonly "common.votesCount_one": "{{count}} vote";
552
+ readonly "common.votesCount_other": "{{count}} votes";
528
553
  readonly "common.posts_zero": "No {{itemType}}s";
529
554
  readonly "common.posts_one": "{{count}} {{itemType}}";
530
555
  readonly "common.posts_other": "{{count}} {{itemType}}s";
@@ -547,37 +572,67 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
547
572
  readonly "anonymousCheckbox.tooltip": "By enabling this, other users won't be able to see you as an author";
548
573
  readonly "anonymousCheckbox.answerAnonymously": "Answer anonymously";
549
574
  readonly "anonymousCheckbox.postAnonymously": "Post anonymously";
575
+ readonly "anonymousCheckbox.info": "Your name will not be shown to others.";
550
576
  readonly "fileInput.label": "Header image";
551
577
  readonly "fileInput.helperText": "URL of the header image to be used";
552
578
  readonly "fileInput.uploadHeaderImage": "Upload image";
553
579
  readonly "fileInput.preview": "Preview image";
554
- readonly "collectionForm.errorPosting": "Could not create collection";
580
+ readonly "fileInput.dropHere": "Drop your image here";
581
+ readonly "fileInput.dragAndDrop": "Drag and drop an image here";
582
+ readonly "fileInput.supportedFormats": "Supported formats: {{formats}}";
583
+ readonly "fileInput.selectFile": "Select File";
584
+ readonly "fileInput.imageLoadError": "Could not load image. Please check the URL.";
585
+ readonly "collectionForm.errorPosting": "Could not post collection";
586
+ readonly "collectionForm.submitting": "Creating...";
587
+ readonly "collectionForm.tips_1": "Choose a clear and descriptive title that reflects the collection's purpose";
588
+ readonly "collectionForm.tips_2": "Provide a detailed description of what topics or questions the collection will contain";
589
+ readonly "collectionForm.tips_3": "Use markdown formatting to describe your collection with headings, lists, and links";
555
590
  readonly "collectionForm.titleInput.label": "Title";
556
- readonly "collectionForm.titleInput.helperText": "Name of the colleciton";
557
- readonly "collectionForm.descriptionInput.placeholder": "Collection description, what does it contain?";
591
+ readonly "collectionForm.titleInput.placeholder": "e.g. Questions about Backstage";
592
+ readonly "collectionForm.titleInput.helperText": "Title of the collection";
593
+ readonly "collectionForm.descriptionInput.label": "Description";
594
+ readonly "collectionForm.descriptionInput.placeholder": "Describe your collection in detail. What topics does it cover?";
595
+ readonly "collectionForm.descriptionInput.markdownHelp": "Markdown help";
558
596
  readonly "collectionForm.submit.existingCollection": "Save";
559
- readonly "collectionForm.submit.newCollection": "Create";
597
+ readonly "collectionForm.submit.newCollection": "Create Collection";
560
598
  readonly "postForm.uploadHeaderImage": "Upload header image";
561
599
  readonly "postForm.errorPosting": "Could not post {{type}}";
600
+ readonly "postForm.submitting": "Posting...";
562
601
  readonly "postForm.titleInput.label": "Title";
602
+ readonly "postForm.titleInput.placeholder": "e.g. How do I deploy a Backstage plugin?";
563
603
  readonly "postForm.titleInput.helperText": "Write good title for your {{type}} that people can understand";
564
604
  readonly "postForm.submit.existingPost": "Save";
565
605
  readonly "postForm.submit.newPost": "Post";
566
- readonly "postForm.contentInput.placeholder": "Your {{type}}";
606
+ readonly "postForm.successPosting": "Your {{type}} was posted successfully!";
607
+ readonly "postForm.tips_question_1": "Describe your problem in detail.";
608
+ readonly "postForm.tips_question_2": "Include what you have tried and what you expected to happen.";
609
+ readonly "postForm.tips_question_3": "Share error messages, logs, or screenshots if possible.";
610
+ readonly "postForm.tips_question_4": "Use code blocks for code or configuration.";
611
+ readonly "postForm.tips_article_1": "Write a clear and engaging introduction.";
612
+ readonly "postForm.tips_article_2": "Organize your content with headings and lists.";
613
+ readonly "postForm.tips_article_3": "Add images or diagrams to illustrate your points.";
614
+ readonly "postForm.tips_article_4": "Cite sources or link to relevant documentation.";
615
+ readonly "postForm.contentInput.label": "Your {{type}}";
616
+ readonly "postForm.contentInput.markdownHelp": "Markdown help";
617
+ readonly "postForm.contentInput.placeholder_question": "Describe your problem in detail. What have you tried? What did you expect to happen?";
618
+ readonly "postForm.contentInput.placeholder_article": "Write your article content here. Use headings, lists, and images to organize your information.";
567
619
  readonly "answerForm.errorPosting": "Could not post answer";
568
620
  readonly "answerForm.submit.existingAnswer": "Save";
569
621
  readonly "answerForm.submit.newAnswer": "Post";
570
622
  readonly "answerForm.contentInput.placeholder": "Your answer";
571
623
  readonly "entitiesInput.label": "Entities";
572
624
  readonly "entitiesInput.placeholder": "Type or select entities";
573
- readonly "entitiesInput.helperText": "Add up to {{max}} entities this question relates to";
625
+ readonly "entitiesInput.helperText": "Add up to {{max}} entities";
574
626
  readonly "tagsInput.label": "Tags";
575
627
  readonly "tagsInput.placeholder": "Type or select tags";
576
- readonly "tagsInput.helperText": "Add up to {{max}} tags to categorize your question";
628
+ readonly "tagsInput.helperText": "Add up to {{max}} tags";
577
629
  readonly "tagsInput.allowAddHelperText": "You can create new tags by typing the tag and pressing enter";
578
630
  readonly "askPage.title.newQuestion": "Ask a question";
579
631
  readonly "askPage.title.existingQuestion": "Edit question";
580
632
  readonly "askPage.title.entityQuestion": "Ask a question about {{entity}}";
633
+ readonly "askPage.templateSelection": "Select a template for your question";
634
+ readonly "askPage.questionForm": "Ask a question";
635
+ readonly "askPage.selectTemplate": "Select a template for your question";
581
636
  readonly "writePage.title.newArticle": "New article";
582
637
  readonly "writePage.title.existingArticle": "Edit article";
583
638
  readonly "writePage.title.entityArticle": "Write an article about {{entity}}";
@@ -587,6 +642,8 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
587
642
  readonly "addToCollectionButton.title": "Collections";
588
643
  readonly "addToCollectionButton.manage": "Add or remove this post from collections";
589
644
  readonly "addToCollectionButton.close": "Close";
645
+ readonly "addToCollectionButton.removed": "Removed from collection {{collection}}";
646
+ readonly "addToCollectionButton.added": "Added to collection {{collection}}";
590
647
  readonly "writeArticleButton.title": "Write an article";
591
648
  readonly "createCollectionButton.title": "Create a collection";
592
649
  readonly "commentList.save": "Save";
@@ -641,8 +698,10 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
641
698
  readonly "suggestionsCard.noCorrectAnswer": "Your question \"{{title}}\" does not have a correct answer";
642
699
  readonly "suggestionsCard.newQuestion": "Do you have an answer for \"{{title}}\"?";
643
700
  readonly "suggestionsCard.newArticle": "You might like to read \"{{title}}\"";
701
+ readonly "suggestionsCard.noSuggestions": "No suggestions";
644
702
  readonly "homePage.title": "Home";
645
703
  readonly "impactCard.title": "Your impact";
704
+ readonly "impactCard.error": "Failed to load impact data";
646
705
  readonly "impactCard.views": "views";
647
706
  readonly "impactCard.contributions": "Your contributions helped {{lastWeek}} people this week";
648
707
  readonly "rightMenu.followedEntities": "Followed entities";
@@ -692,14 +751,15 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
692
751
  readonly "collectionsPage.search.label": "Search collection";
693
752
  readonly "collectionsPage.search.placeholder": "Search...";
694
753
  readonly "collectionsPage.title": "Collections";
695
- readonly "collectionPage.description": "Description";
696
754
  readonly "collectionPage.info": "You can add questions and articles to the collection from question and article pages";
755
+ readonly "collectionPage.description": "Description";
697
756
  readonly "searchResult.created": "Created";
698
757
  readonly "questionPage.errorLoading": "Could not load question";
699
758
  readonly "questionPage.notFound": "Could not find the question";
700
759
  readonly "questionPage.editButton": "Edit";
701
760
  readonly "questionPage.sortAnswers.label": "Sort answers";
702
761
  readonly "questionPage.sortAnswers.default": "Default";
762
+ readonly "questionPage.sortAnswers.menuLabel": "Sort answers menu";
703
763
  readonly "questionPage.sortAnswers.createdDesc": "Created (desc)";
704
764
  readonly "questionPage.sortAnswers.createdAsc": "Created (asc)";
705
765
  readonly "questionPage.sortAnswers.scoreDesc": "Score (desc)";
@@ -713,6 +773,7 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
713
773
  readonly "authorBox.postedAtTime": "Posted";
714
774
  readonly "authorBox.updatedAtTime": "Updated";
715
775
  readonly "authorBox.updatedBy": "by";
776
+ readonly "authorBox.answeredAtTime": "Answered";
716
777
  readonly "voteButtons.post.own": "You cannot vote your own {{type}}";
717
778
  readonly "voteButtons.post.good": "This {{type}} is good";
718
779
  readonly "voteButtons.post.bad": "This {{type}} is not good";
@@ -725,7 +786,7 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
725
786
  readonly "datePicker.from": "From date";
726
787
  readonly "datePicker.to": "To date";
727
788
  readonly "datePicker.invalidRange": "Date range invalid, 'To date' should be greater than 'From date'";
728
- readonly "datePicker.range.label": "Date range";
789
+ readonly "datePicker.range.label": "Posted";
729
790
  readonly "datePicker.range.default": "Select";
730
791
  readonly "datePicker.range.last7days": "Last 7 days";
731
792
  readonly "datePicker.range.last30days": "Last 30 days";
@@ -813,16 +874,34 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
813
874
  readonly "userPage.articles": "Articles";
814
875
  readonly "userPage.answers": "Answers";
815
876
  readonly "userPage.profileTab": "Profile";
877
+ readonly "userPage.followUser": "Follow {{name}}";
878
+ readonly "userPage.profilePicture": "Profile picture of {{name}}";
879
+ readonly "userPage.profileHeader": "User profile";
816
880
  readonly "stats.questions": "Questions";
817
881
  readonly "stats.articles": "Articles";
818
882
  readonly "stats.users": "Users";
819
883
  readonly "stats.tags": "Tags";
820
884
  readonly "stats.answers": "Answers";
821
885
  readonly "stats.comments": "Comments";
886
+ readonly "stats.votes": "Votes";
822
887
  readonly "stats.views": "Views";
888
+ readonly "stats.tooltip": "Chart Tooltip";
823
889
  readonly "stats.noStats": "No statistics available. Check back later!";
824
- readonly "stats.votes": "Votes";
825
890
  readonly "stats.followers": "Followers";
891
+ readonly "stats.barChart": "Bar Chart";
892
+ readonly "stats.lineChart": "Line Chart";
893
+ readonly "stats.chartType": "Chart Type";
894
+ readonly "stats.dateAxis": "Date Axis";
895
+ readonly "stats.valueAxis": "Value Axis";
896
+ readonly "stats.totalViews": "Total views";
897
+ readonly "stats.totalQuestions": "Total questions";
898
+ readonly "stats.totalAnswers": "Total answers";
899
+ readonly "stats.totalComments": "Total comments";
900
+ readonly "stats.totalVotes": "Total votes";
901
+ readonly "stats.totalUsers": "Total users";
902
+ readonly "stats.totalTags": "Total tags";
903
+ readonly "stats.totalArticles": "Total articles";
904
+ readonly "stats.totalFollowers": "Total followers";
826
905
  readonly "collectionButton.follow": "Follow";
827
906
  readonly "collectionButton.tooltip": "By following a collection, you will get notified when ever a new post is added to the collection";
828
907
  readonly "collectionButton.unfollow": "Unfollow";
@@ -837,6 +916,8 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
837
916
  readonly "userButton.follow": "Follow";
838
917
  readonly "userButton.tooltip": "By following a user, you will get notified when ever a new post by that user is posted";
839
918
  readonly "userButton.unfollow": "Unfollow";
919
+ readonly "viewToggle.listView": "List View";
920
+ readonly "viewToggle.gridView": "Grid View";
840
921
  }>;
841
922
  declare const qetaTranslations: _backstage_core_plugin_api_alpha.TranslationResource<"qeta">;
842
923
 
@@ -848,9 +929,9 @@ type QetaMarkdownEditorClassKey = 'markdownEditor' | 'markdownEditorError' | 'ma
848
929
 
849
930
  type QetaCommentListClassKey = 'content' | 'root' | 'box';
850
931
 
851
- type QetaCommentSectionClassKey = 'root' | 'addCommentButton';
932
+ type QetaCommentSectionClassKey = 'root' | 'addCommentButton' | 'commentSection' | 'commentForm';
852
933
 
853
- type QetaSearchBarClassKeys = 'root' | 'input' | 'iconButton' | 'divider';
934
+ type QetaSearchBarClassKeys = 'root' | 'input' | 'iconButton' | 'divider' | 'searchIcon' | 'loadingIcon';
854
935
 
855
936
  type QetaPaginationClassKeys = 'root' | 'pageSizeSelect' | 'pagination';
856
937
 
@@ -872,4 +953,4 @@ type QetaOverrides = Overrides & {
872
953
  [Name in keyof QetaComponentsNameToClassKey]?: Partial<StyleRules<QetaComponentsNameToClassKey[Name]>>;
873
954
  };
874
955
 
875
- export { AIAnswerCard, AddToCollectionButton, AnswerCard, AnswerForm, AnswerList, AnswerListItem, AnswersContainer, ArticleContent, AskQuestionButton, AuthorLink, ButtonContainer, CollectionCard, CollectionFollowButton, CollectionForm, CollectionsGrid, CreateCollectionButton, DeleteModal, EntitiesGrid, EntityFollowButton, FilterPanel, FollowedCollectionsList, FollowedEntitiesList, FollowedTagsList, FollowedUsersList, ImpactCard, LeftMenu, LeftMenuButton, MarkdownRenderer, PostForm, PostHighlightList, PostList, PostListItem, PostsCard, PostsContainer, PostsGrid, PostsTable, type QetaOverrides, QuestionCard, QuestionsTable, RelativeTimeWithTooltip, SelectTemplateList, StatsChart, SuggestionsCard, SummaryStatsGrid, TagFollowButton, TagsGrid, TemplateList, TopRankingUsers, TrophyIcon, UpdatedByLink, UserFollowButton, UserLink, UsersGrid, WriteArticleButton, articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, editArticleRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, moderatorRouteRef, qetaApiRef, qetaRouteRef, qetaTranslationRef, qetaTranslations, questionRouteRef, questionsRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, useAI, useCollectionsFollow, useEntityAuthor, useEntityFollow, useIdentityApi, useIsModerator, useQetaApi, useTagsFollow, useUserFollow, useUserInfo, userRouteRef, usersRouteRef, writeRouteRef };
956
+ export { AIAnswerCard, AddToCollectionButton, AnswerCard, AnswerForm, AnswerList, AnswerListItem, AnswersContainer, ArticleContent, AskQuestionButton, AuthorLink, ButtonContainer, CollectionCard, CollectionFollowButton, CollectionForm, CollectionsGrid, CreateCollectionButton, DeleteModal, EntitiesGrid, EntityFollowButton, FilterPanel, FollowedCollectionsList, FollowedEntitiesList, FollowedTagsList, FollowedUsersList, ImpactCard, LeftMenu, LeftMenuButton, MarkdownRenderer, PostForm, PostHighlightList, PostList, PostListItem, PostsCard, PostsContainer, PostsGrid, PostsTable, type QetaOverrides, QuestionCard, QuestionsTable, RelativeTimeWithTooltip, SelectTemplateList, StatsChart, SuggestionsCard, SummaryStatsGrid, TagFollowButton, TagsGrid, TemplateList, TopRankingUsers, TrophyIcon, UpdatedByLink, UserFollowButton, UserLink, UsersGrid, ViewToggle, type ViewType, WriteArticleButton, articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, editArticleRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, moderatorRouteRef, qetaApiRef, qetaRouteRef, qetaTranslationRef, qetaTranslations, questionRouteRef, questionsRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, useAI, useCollectionsFollow, useEntityAuthor, useEntityFollow, useIdentityApi, useIsModerator, useQetaApi, useTagsFollow, useUserFollow, useUserInfo, userRouteRef, usersRouteRef, writeRouteRef };
package/dist/index.esm.js CHANGED
@@ -50,6 +50,7 @@ export { TemplateList } from './components/TemplateList/TemplateList.esm.js';
50
50
  export { SelectTemplateList } from './components/SelectTemplateList/SelectTemplateList.esm.js';
51
51
  export { AIAnswerCard } from './components/AIAnswerCard/AIAnswerCard.esm.js';
52
52
  export { SuggestionsCard } from './components/SuggestionsCard/SuggestionsCard.esm.js';
53
+ export { ViewToggle } from './components/ViewToggle/ViewToggle.esm.js';
53
54
  export { useQetaApi } from './hooks/useQetaApi.esm.js';
54
55
  export { useTagsFollow } from './hooks/useTagsFollow.esm.js';
55
56
  export { useEntityFollow } from './hooks/useEntityFollow.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}