coinsperformance 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/components/Molecules/ExperientialComponents/NewActivityBanner.d.ts +18 -0
  2. package/dist/components/Molecules/ExperientialComponents/NewActivityBanner.js +78 -0
  3. package/dist/components/Molecules/ExperientialComponents/NewActivityBanner.js.map +1 -0
  4. package/dist/components/Molecules/ExperientialComponents/NewActivityCard.d.ts +25 -0
  5. package/dist/components/Molecules/ExperientialComponents/NewActivityCard.js +72 -0
  6. package/dist/components/Molecules/ExperientialComponents/NewActivityCard.js.map +1 -0
  7. package/dist/components/Molecules/ExperientialComponents/NewAddPostCard.d.ts +9 -0
  8. package/dist/components/Molecules/ExperientialComponents/NewAddPostCard.js +29 -0
  9. package/dist/components/Molecules/ExperientialComponents/NewAddPostCard.js.map +1 -0
  10. package/dist/components/Molecules/ExperientialComponents/NewPostCard.d.ts +27 -0
  11. package/dist/components/Molecules/ExperientialComponents/NewPostCard.js +89 -0
  12. package/dist/components/Molecules/ExperientialComponents/NewPostCard.js.map +1 -0
  13. package/dist/components/Molecules/ExperientialComponents/NewPostInfo.d.ts +29 -0
  14. package/dist/components/Molecules/ExperientialComponents/NewPostInfo.js +217 -0
  15. package/dist/components/Molecules/ExperientialComponents/NewPostInfo.js.map +1 -0
  16. package/dist/components/Molecules/ExperientialComponents/NewPostInfoStyles.d.ts +441 -0
  17. package/dist/components/Molecules/ExperientialComponents/NewPostInfoStyles.js +416 -0
  18. package/dist/components/Molecules/ExperientialComponents/NewPostInfoStyles.js.map +1 -0
  19. package/dist/components/Molecules/ExperientialComponents/NewPostList.d.ts +51 -0
  20. package/dist/components/Molecules/ExperientialComponents/NewPostList.js +79 -0
  21. package/dist/components/Molecules/ExperientialComponents/NewPostList.js.map +1 -0
  22. package/dist/components/Molecules/ExperientialComponents/newActivityBannerStyles.d.ts +120 -0
  23. package/dist/components/Molecules/ExperientialComponents/newActivityBannerStyles.js +124 -0
  24. package/dist/components/Molecules/ExperientialComponents/newActivityBannerStyles.js.map +1 -0
  25. package/dist/components/Molecules/ExperientialComponents/newActivityCardStyles.d.ts +86 -0
  26. package/dist/components/Molecules/ExperientialComponents/newActivityCardStyles.js +91 -0
  27. package/dist/components/Molecules/ExperientialComponents/newActivityCardStyles.js.map +1 -0
  28. package/dist/components/Molecules/ExperientialComponents/newAddPostCardStyles.d.ts +107 -0
  29. package/dist/components/Molecules/ExperientialComponents/newAddPostCardStyles.js +110 -0
  30. package/dist/components/Molecules/ExperientialComponents/newAddPostCardStyles.js.map +1 -0
  31. package/dist/components/Molecules/ExperientialComponents/newPostCardStyles.d.ts +197 -0
  32. package/dist/components/Molecules/ExperientialComponents/newPostCardStyles.js +201 -0
  33. package/dist/components/Molecules/ExperientialComponents/newPostCardStyles.js.map +1 -0
  34. package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.d.ts +1 -1
  35. package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.js +3 -2
  36. package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.js.map +1 -1
  37. package/dist/components/Molecules/SLI/SLIChart.d.ts +4 -0
  38. package/dist/components/Molecules/SLI/SLIChart.js +237 -0
  39. package/dist/components/Molecules/SLI/SLIChart.js.map +1 -0
  40. package/dist/components/Molecules/SLI/data.d.ts +14 -0
  41. package/dist/components/Molecules/SLI/data.js +236 -0
  42. package/dist/components/Molecules/SLI/data.js.map +1 -0
  43. package/dist/components/Molecules/SLI/sliUtils.d.ts +44 -0
  44. package/dist/components/Molecules/SLI/sliUtils.js +55 -0
  45. package/dist/components/Molecules/SLI/sliUtils.js.map +1 -0
  46. package/dist/components/Organisms/NewActivityList/NewActivityList.d.ts +10 -0
  47. package/dist/components/Organisms/NewActivityList/NewActivityList.js +35 -0
  48. package/dist/components/Organisms/NewActivityList/NewActivityList.js.map +1 -0
  49. package/dist/components/Organisms/PostDetails/ImageGallery.d.ts +1 -1
  50. package/dist/components/Organisms/PostDetails/ImageGallery.js +15 -5
  51. package/dist/components/Organisms/PostDetails/ImageGallery.js.map +1 -1
  52. package/dist/index.d.ts +7 -0
  53. package/dist/index.js +15 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/utils/common-utils.d.ts +2 -0
  56. package/dist/utils/common-utils.js +151 -1
  57. package/dist/utils/common-utils.js.map +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ interface Attachment {
2
+ url: string;
3
+ fileName: string;
4
+ mimeType: string;
5
+ originalURL: string;
6
+ }
7
+ interface NewActivityBannerProps {
8
+ subject?: string;
9
+ topic?: string;
10
+ title?: string;
11
+ description?: string;
12
+ attachments?: Attachment[];
13
+ onAttachmentClick?: (attachment: Attachment) => void;
14
+ icons?: Record<string, string>;
15
+ isLoading?: boolean;
16
+ }
17
+ declare const NewActivityBanner: (props: NewActivityBannerProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default NewActivityBanner;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const react_2 = require("@chakra-ui/react");
9
+ const customTheme_1 = require("../../../utils/customTheme");
10
+ const newActivityBannerStyles_1 = require("./newActivityBannerStyles");
11
+ const LatexRenderView_1 = __importDefault(require("../../Atoms/LatexRenderView/LatexRenderView"));
12
+ const Component = (props) => {
13
+ const { subject, topic, title, description, attachments, onAttachmentClick, icons, isLoading = false, } = props;
14
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
15
+ const styles = (0, react_1.useMemo)(() => {
16
+ return newActivityBannerStyles_1.newActivityBannerStyles;
17
+ }, []);
18
+ // Approximate character limit for truncation (adjust based on design)
19
+ const characterLimit = 200;
20
+ const shouldShowReadMore = description && description.length > characterLimit;
21
+ const displayedDescription = shouldShowReadMore && !isExpanded
22
+ ? `${description.substring(0, characterLimit)}...`
23
+ : description;
24
+ const handleReadMoreClick = (e) => {
25
+ e.stopPropagation(); // Prevent triggering onCardClick
26
+ setIsExpanded(!isExpanded);
27
+ };
28
+ const getAttachmentType = (mimeType) => {
29
+ if (mimeType.startsWith("image/"))
30
+ return "image";
31
+ if (mimeType.startsWith("video/"))
32
+ return "video";
33
+ if (mimeType === "application/pdf")
34
+ return "pdf";
35
+ if (mimeType.includes("excel") ||
36
+ mimeType.includes("spreadsheet") ||
37
+ mimeType === "application/vnd.ms-excel" ||
38
+ mimeType ===
39
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
40
+ return "excel";
41
+ if (mimeType.includes("word") ||
42
+ mimeType.includes("document") ||
43
+ mimeType === "application/msword" ||
44
+ mimeType ===
45
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
46
+ return "doc";
47
+ return "doc"; // default fallback
48
+ };
49
+ const handleAttachmentClick = (attachment, e) => {
50
+ e.stopPropagation(); // Prevent triggering onCardClick
51
+ if (onAttachmentClick) {
52
+ onAttachmentClick(attachment);
53
+ }
54
+ };
55
+ return ((0, jsx_runtime_1.jsx)(react_2.Box, { sx: styles?.mainContainer, children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { sx: styles?.contentSection, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { sx: styles?.headerSection, children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { sx: styles?.subjectTopicRow, children: isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Skeleton, { height: "20px", width: "60px" }), (0, jsx_runtime_1.jsx)(react_2.Skeleton, { height: "20px", width: "80px", ml: 2 })] })) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.subjectName, children: subject }) })) }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.topicName, children: topic }), isLoading ? ((0, jsx_runtime_1.jsx)(react_2.Skeleton, { height: "24px", width: "200px", mt: 2 })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.activityTitle, children: (0, jsx_runtime_1.jsx)(LatexRenderView_1.default, { math: title }) }))] }), (0, jsx_runtime_1.jsx)(react_2.Box, { children: isLoading ? ((0, jsx_runtime_1.jsx)(react_2.SkeletonText, { noOfLines: 3, spacing: "2", skeletonHeight: "16px" })) : ((0, jsx_runtime_1.jsxs)(react_2.Text, { sx: styles?.description, children: [(0, jsx_runtime_1.jsx)(LatexRenderView_1.default, { math: displayedDescription }), shouldShowReadMore && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [" ", (0, jsx_runtime_1.jsx)(react_2.Text, { as: "span", sx: styles?.readMoreLink, onClick: handleReadMoreClick, children: isExpanded ? "read less" : "read more" })] }))] })) }), isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Skeleton, { height: "16px", width: "100px", mt: 4 }), (0, jsx_runtime_1.jsxs)(react_2.Flex, { gap: "8px", mt: 2, children: [(0, jsx_runtime_1.jsx)(react_2.Skeleton, { height: "60px", width: "60px", borderRadius: "4px" }), (0, jsx_runtime_1.jsx)(react_2.Skeleton, { height: "60px", width: "60px", borderRadius: "4px" }), (0, jsx_runtime_1.jsx)(react_2.Skeleton, { height: "60px", width: "60px", borderRadius: "4px" })] })] })) : (attachments &&
56
+ attachments.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.attachmentHeading, children: "Attachments" }), (0, jsx_runtime_1.jsx)(react_2.Flex, { sx: styles?.attachmentContainer, children: attachments.map((attachment, index) => {
57
+ const attachmentType = getAttachmentType(attachment.mimeType);
58
+ const isImage = attachmentType === "image";
59
+ if (isImage) {
60
+ return ((0, jsx_runtime_1.jsx)(react_2.Box, { sx: {
61
+ ...styles?.attachmentFrame,
62
+ ...styles?.attachmentImageFrame,
63
+ }, onClick: (e) => handleAttachmentClick(attachment, e), title: attachment.fileName, children: (0, jsx_runtime_1.jsx)(react_2.Image, { src: attachment.url, alt: attachment.fileName, sx: styles?.attachmentImage }) }, index));
64
+ }
65
+ else {
66
+ const iconSrc = icons?.[attachmentType];
67
+ return ((0, jsx_runtime_1.jsx)(react_2.Box, { sx: {
68
+ ...styles?.attachmentFrame,
69
+ ...styles?.attachmentIconFrame,
70
+ }, onClick: (e) => handleAttachmentClick(attachment, e), title: attachment.fileName, children: (0, jsx_runtime_1.jsx)(react_2.Image, { src: iconSrc, alt: `${attachmentType} icon`, sx: styles?.attachmentIcon }) }, index));
71
+ }
72
+ }) })] })))] }) }));
73
+ };
74
+ const NewActivityBanner = (props) => {
75
+ return ((0, jsx_runtime_1.jsx)(react_2.ChakraProvider, { theme: customTheme_1.customTheme, children: (0, jsx_runtime_1.jsx)(Component, { ...props }) }));
76
+ };
77
+ exports.default = NewActivityBanner;
78
+ //# sourceMappingURL=NewActivityBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewActivityBanner.js","sourceRoot":"","sources":["../../../../src/components/Molecules/ExperientialComponents/NewActivityBanner.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAA0C;AAC1C,4CAQ0B;AAC1B,4DAAyD;AACzD,uEAAoE;AACpE,kGAA0E;AAoB1E,MAAM,SAAS,GAAG,CAAC,KAA6B,EAAE,EAAE;IAClD,MAAM,EACJ,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,KAAK,EACL,SAAS,GAAG,KAAK,GAClB,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,OAAO,iDAAuB,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,sEAAsE;IACtE,MAAM,cAAc,GAAG,GAAG,CAAC;IAC3B,MAAM,kBAAkB,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC;IAC9E,MAAM,oBAAoB,GACxB,kBAAkB,IAAI,CAAC,UAAU;QAC/B,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK;QAClD,CAAC,CAAC,WAAW,CAAC;IAElB,MAAM,mBAAmB,GAAG,CAAC,CAAmB,EAAE,EAAE;QAClD,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,iCAAiC;QACtD,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAU,EAAE;QACrD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,OAAO,CAAC;QAClD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,OAAO,CAAC;QAClD,IAAI,QAAQ,KAAK,iBAAiB;YAAE,OAAO,KAAK,CAAC;QACjD,IACE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1B,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChC,QAAQ,KAAK,0BAA0B;YACvC,QAAQ;gBACN,mEAAmE;YAErE,OAAO,OAAO,CAAC;QACjB,IACE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC7B,QAAQ,KAAK,oBAAoB;YACjC,QAAQ;gBACN,yEAAyE;YAE3E,OAAO,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,CAAC,mBAAmB;IACnC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAC5B,UAAsB,EACtB,CAAmB,EACnB,EAAE;QACF,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,iCAAiC;QACtD,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,UAAU,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;IAEF,OAAO,CACL,uBAAC,WAAG,IAAC,EAAE,EAAE,MAAM,EAAE,aAAa,YAC5B,wBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,cAAc,aAE9B,wBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,aAAa,aAE7B,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,eAAe,YAC9B,SAAS,CAAC,CAAC,CAAC,CACX,6DACE,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAG,EACvC,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,GAAI,IAC7C,CACJ,CAAC,CAAC,CAAC,CACF,2DACE,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,WAAW,YAAG,OAAO,GAAQ,GAC9C,CACJ,GACI,EACP,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,SAAS,YAAG,KAAK,GAAQ,EAG1C,SAAS,CAAC,CAAC,CAAC,CACX,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,GAAI,CAChD,CAAC,CAAC,CAAC,CACF,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,aAAa,YAC7B,uBAAC,yBAAe,IAAC,IAAI,EAAE,KAAK,GAAI,GAC3B,CACR,IACI,EAGP,uBAAC,WAAG,cACD,SAAS,CAAC,CAAC,CAAC,CACX,uBAAC,oBAAY,IAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAC,GAAG,EAAC,cAAc,EAAC,MAAM,GAAG,CACjE,CAAC,CAAC,CAAC,CACF,wBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,WAAW,aAC3B,uBAAC,yBAAe,IAAC,IAAI,EAAE,oBAAoB,GAAI,EAC9C,kBAAkB,IAAI,CACrB,6DACG,GAAG,EACJ,uBAAC,YAAI,IACH,EAAE,EAAC,MAAM,EACT,EAAE,EAAE,MAAM,EAAE,YAAY,EACxB,OAAO,EAAE,mBAAmB,YAE3B,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAClC,IACN,CACJ,IACI,CACR,GACG,EAGL,SAAS,CAAC,CAAC,CAAC,CACX,6DACE,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,GAAI,EAC/C,wBAAC,YAAI,IAAC,GAAG,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,aACnB,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,GAAG,EAC1D,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,GAAG,EAC1D,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,GAAG,IACrD,IACN,CACJ,CAAC,CAAC,CAAC,CACF,WAAW;oBACX,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACxB,6DACE,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,4BAAoB,EACvD,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,YAClC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gCACrC,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gCAC9D,MAAM,OAAO,GAAG,cAAc,KAAK,OAAO,CAAC;gCAE3C,IAAI,OAAO,EAAE;oCACX,OAAO,CACL,uBAAC,WAAG,IAEF,EAAE,EAAE;4CACF,GAAG,MAAM,EAAE,eAAe;4CAC1B,GAAG,MAAM,EAAE,oBAAoB;yCAChC,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC,CAAC,EACpD,KAAK,EAAE,UAAU,CAAC,QAAQ,YAE1B,uBAAC,aAAK,IACJ,GAAG,EAAE,UAAU,CAAC,GAAG,EACnB,GAAG,EAAE,UAAU,CAAC,QAAQ,EACxB,EAAE,EAAE,MAAM,EAAE,eAAe,GAC3B,IAZG,KAAK,CAaN,CACP,CAAC;iCACH;qCAAM;oCACL,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC;oCACxC,OAAO,CACL,uBAAC,WAAG,IAEF,EAAE,EAAE;4CACF,GAAG,MAAM,EAAE,eAAe;4CAC1B,GAAG,MAAM,EAAE,mBAAmB;yCAC/B,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC,CAAC,EACpD,KAAK,EAAE,UAAU,CAAC,QAAQ,YAE1B,uBAAC,aAAK,IACJ,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,cAAc,OAAO,EAC7B,EAAE,EAAE,MAAM,EAAE,cAAc,GAC1B,IAZG,KAAK,CAaN,CACP,CAAC;iCACH;4BACH,CAAC,CAAC,GACG,IACN,CACJ,CACF,IACI,GACH,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IAC1D,OAAO,CACL,uBAAC,sBAAc,IAAC,KAAK,EAAE,yBAAW,YAChC,uBAAC,SAAS,OAAK,KAAK,GAAI,GACT,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,25 @@
1
+ interface Attachment {
2
+ url: string;
3
+ fileName: string;
4
+ mimeType: string;
5
+ originalURL: string;
6
+ }
7
+ interface NewActivityCardProps {
8
+ subject?: string;
9
+ topic?: string;
10
+ title?: string;
11
+ description?: string;
12
+ headerImage?: string;
13
+ isMandatory?: boolean;
14
+ emojiCount?: number;
15
+ commentCount?: number;
16
+ icons?: Record<string, string>;
17
+ onCardClick?: () => void;
18
+ attachments?: Attachment[];
19
+ onAttachmentClick?: (attachment: Attachment) => void;
20
+ isMySpace?: boolean;
21
+ cardColor?: string;
22
+ allowCommentsandInteractions?: boolean;
23
+ }
24
+ declare const NewActivityCard: (props: NewActivityCardProps) => import("react/jsx-runtime").JSX.Element;
25
+ export default NewActivityCard;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const react_2 = require("@chakra-ui/react");
9
+ const customTheme_1 = require("../../../utils/customTheme");
10
+ const newActivityCardStyles_1 = require("./newActivityCardStyles");
11
+ const LatexRenderView_1 = __importDefault(require("../../Atoms/LatexRenderView/LatexRenderView"));
12
+ const Component = (props) => {
13
+ const { subject, topic, title, description, headerImage, isMandatory, attachments, emojiCount, commentCount, icons, onCardClick, onAttachmentClick, isMySpace = false, cardColor, allowCommentsandInteractions, } = props;
14
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
15
+ const styles = (0, react_1.useMemo)(() => {
16
+ return newActivityCardStyles_1.newActivityCardStyles;
17
+ }, []);
18
+ // Line-based truncation for random lines (3-6)
19
+ const maxLines = (0, react_1.useMemo)(() => Math.floor(Math.random() * 4) + 3, []);
20
+ // Simple check for read more - if description is longer than a reasonable threshold
21
+ const shouldShowReadMore = description && description.length > 150;
22
+ // We'll use CSS line clamping to handle the visual truncation
23
+ const displayedDescription = description;
24
+ const handleReadMoreClick = (e) => {
25
+ e.stopPropagation(); // Prevent triggering onCardClick
26
+ setIsExpanded(!isExpanded);
27
+ };
28
+ const getAttachmentType = (mimeType) => {
29
+ if (mimeType.startsWith("image/"))
30
+ return "image";
31
+ if (mimeType.startsWith("video/"))
32
+ return "video";
33
+ if (mimeType === "application/pdf")
34
+ return "pdf";
35
+ if (mimeType.includes("excel") ||
36
+ mimeType.includes("spreadsheet") ||
37
+ mimeType === "application/vnd.ms-excel" ||
38
+ mimeType ===
39
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
40
+ return "excel";
41
+ if (mimeType.includes("word") ||
42
+ mimeType.includes("document") ||
43
+ mimeType === "application/msword" ||
44
+ mimeType ===
45
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
46
+ return "doc";
47
+ return "doc"; // default fallback
48
+ };
49
+ const handleAttachmentClick = (attachment, e) => {
50
+ e.stopPropagation(); // Prevent triggering onCardClick
51
+ if (onAttachmentClick) {
52
+ onAttachmentClick(attachment);
53
+ }
54
+ };
55
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { sx: styles?.mainContainer, cursor: "pointer", onClick: onCardClick, backgroundColor: cardColor, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", margin: "10px", children: [(0, jsx_runtime_1.jsx)(react_2.Image, { src: headerImage, sx: styles?.headerImage }), !isMySpace && ((0, jsx_runtime_1.jsx)(react_2.Box, { position: "absolute", top: "13px", right: "13px", sx: styles?.mandatoryText, children: isMandatory ? "Mandatory" : "Optional" }))] }), (0, jsx_runtime_1.jsxs)(react_2.Flex, { flexDirection: "column", marginX: "16px", children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { sx: styles?.subjectSection, children: (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.subjectName, children: subject }) }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.topicName, children: topic }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.activityTitle, children: (0, jsx_runtime_1.jsx)(LatexRenderView_1.default, { math: title }) }), (0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsx)(react_2.Text, { sx: {
56
+ ...styles?.description,
57
+ display: '-webkit-box',
58
+ WebkitLineClamp: isExpanded ? 'none' : maxLines,
59
+ WebkitBoxOrient: 'vertical',
60
+ overflow: 'hidden',
61
+ textOverflow: 'ellipsis'
62
+ }, children: (0, jsx_runtime_1.jsx)(LatexRenderView_1.default, { math: displayedDescription }) }), shouldShowReadMore && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontFamily: "Poppins", lineHeight: "24px", fontSize: "12px", color: "#130159", fontWeight: "700", cursor: "pointer", onClick: handleReadMoreClick, mt: 1, children: isExpanded ? "Read less" : "Read more" }))] }), attachments && attachments.length > 0 && isMySpace && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.attachmentHeading, children: "Attachments" }), (0, jsx_runtime_1.jsx)(react_2.Flex, { gap: "8px", flexWrap: "wrap", marginY: "8px", children: attachments.map((attachment, index) => {
63
+ const attachmentType = getAttachmentType(attachment.mimeType);
64
+ const iconSrc = icons?.[attachmentType];
65
+ return ((0, jsx_runtime_1.jsx)(react_2.Image, { src: iconSrc, alt: `${attachmentType} icon`, width: "24px", height: "24px", cursor: "pointer", onClick: (e) => handleAttachmentClick(attachment, e), title: attachment.fileName }, index));
66
+ }) })] })), (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { border: "1px dotted #A0A0A0" }), (0, jsx_runtime_1.jsx)(react_2.Flex, { sx: styles?.emojiSection, children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { gap: "4px", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.Image, { src: icons?.comment, alt: "Comment icon", width: "20px", height: "20px" }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.emojiText, children: commentCount })] }) })] })] })] }));
67
+ };
68
+ const NewActivityCard = (props) => {
69
+ return ((0, jsx_runtime_1.jsx)(react_2.ChakraProvider, { theme: customTheme_1.customTheme, children: (0, jsx_runtime_1.jsx)(Component, { ...props }) }));
70
+ };
71
+ exports.default = NewActivityCard;
72
+ //# sourceMappingURL=NewActivityCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewActivityCard.js","sourceRoot":"","sources":["../../../../src/components/Molecules/ExperientialComponents/NewActivityCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface NewAddPostCardProps {
2
+ onGetStartedClick?: () => void;
3
+ characterIcon?: string;
4
+ backgroundColor?: string;
5
+ addPostDescription?: string;
6
+ isEmptyState?: boolean;
7
+ }
8
+ declare const NewAddPostCard: (props: NewAddPostCardProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default NewAddPostCard;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const react_2 = require("@chakra-ui/react");
9
+ const customTheme_1 = require("../../../utils/customTheme");
10
+ const newAddPostCardStyles_1 = require("./newAddPostCardStyles");
11
+ const icons_1 = require("@chakra-ui/icons");
12
+ const LatexRenderView_1 = __importDefault(require("../../Atoms/LatexRenderView/LatexRenderView"));
13
+ const Component = (props) => {
14
+ const { onGetStartedClick, characterIcon, backgroundColor, addPostDescription, isEmptyState, } = props;
15
+ const styles = (0, react_1.useMemo)(() => {
16
+ return newAddPostCardStyles_1.newAddPostCardStyles;
17
+ }, []);
18
+ const handleGetStartedClick = () => {
19
+ if (onGetStartedClick) {
20
+ onGetStartedClick();
21
+ }
22
+ };
23
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { sx: styles?.mainContainer, bgColor: backgroundColor, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { sx: styles?.contentContainer, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { sx: styles?.topSection, children: [(0, jsx_runtime_1.jsx)(react_2.Image, { src: characterIcon, alt: "Character mascot", sx: styles?.characterIcon }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.readyText, children: isEmptyState ? "Nothing assigned yet" : "Are you ready?" })] }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.descriptionText, children: (0, jsx_runtime_1.jsx)(LatexRenderView_1.default, { math: addPostDescription }) })] }), !isEmptyState && ((0, jsx_runtime_1.jsx)(react_2.Box, { sx: styles?.buttonContainer, children: (0, jsx_runtime_1.jsxs)(react_2.Button, { sx: styles?.startButton, onClick: handleGetStartedClick, children: [(0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.buttonText, children: "Lets get started" }), (0, jsx_runtime_1.jsx)(react_2.Box, { sx: styles?.buttonIcon, children: (0, jsx_runtime_1.jsx)(icons_1.ChevronRightIcon, { sx: styles?.chevronIcon }) })] }) }))] }));
24
+ };
25
+ const NewAddPostCard = (props) => {
26
+ return ((0, jsx_runtime_1.jsx)(react_2.ChakraProvider, { theme: customTheme_1.customTheme, children: (0, jsx_runtime_1.jsx)(Component, { ...props }) }));
27
+ };
28
+ exports.default = NewAddPostCard;
29
+ //# sourceMappingURL=NewAddPostCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewAddPostCard.js","sourceRoot":"","sources":["../../../../src/components/Molecules/ExperientialComponents/NewAddPostCard.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAAgC;AAChC,4CAO0B;AAC1B,4DAAyD;AACzD,iEAA8D;AAC9D,4CAAoD;AACpD,kGAA0E;AAU1E,MAAM,SAAS,GAAG,CAAC,KAA0B,EAAE,EAAE;IAC/C,MAAM,EACJ,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,OAAO,2CAAoB,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,EAAE,CAAC;SACrB;IACH,CAAC,CAAC;IAEF,OAAO,CACL,wBAAC,WAAG,IAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,aACtD,wBAAC,WAAG,IAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,aAE/B,wBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,UAAU,aAC1B,uBAAC,aAAK,IACJ,GAAG,EAAE,aAAa,EAClB,GAAG,EAAC,kBAAkB,EACtB,EAAE,EAAE,MAAM,EAAE,aAAa,GACzB,EACF,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,SAAS,YACxB,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,GACpD,IACF,EAGP,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,eAAe,YAC/B,uBAAC,yBAAe,IAAC,IAAI,EAAE,kBAAkB,GAAI,GACxC,IACH,EAGL,CAAC,YAAY,IAAI,CAChB,uBAAC,WAAG,IAAC,EAAE,EAAE,MAAM,EAAE,eAAe,YAC9B,wBAAC,cAAM,IACL,EAAE,EAAE,MAAM,EAAE,WAAW,EACvB,OAAO,EAAE,qBAAqB,aAM9B,uBAAC,YAAI,IAAC,EAAE,EAAE,MAAM,EAAE,UAAU,iCAAyB,EACrD,uBAAC,WAAG,IAAC,EAAE,EAAE,MAAM,EAAE,UAAU,YACzB,uBAAC,wBAAgB,IAAC,EAAE,EAAE,MAAM,EAAE,WAAW,GAAI,GACzC,IACC,GACL,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;IACpD,OAAO,CACL,uBAAC,sBAAc,IAAC,KAAK,EAAE,yBAAW,YAChC,uBAAC,SAAS,OAAK,KAAK,GAAI,GACT,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,27 @@
1
+ interface PostAuthor {
2
+ name: string;
3
+ profileImage: string;
4
+ }
5
+ interface PostAttachment {
6
+ id: string;
7
+ fileName: string;
8
+ mimeType: string;
9
+ }
10
+ export interface NewPostCardProps {
11
+ author: PostAuthor;
12
+ mainImage: string;
13
+ content: string;
14
+ attachments?: PostAttachment[];
15
+ emojiCount?: number;
16
+ commentCount?: number;
17
+ onEditClick?: () => void;
18
+ onCardClick?: () => void;
19
+ onAttachmentClick?: (attachment: PostAttachment) => void;
20
+ allowEdit?: boolean;
21
+ icons?: Record<string, string>;
22
+ allowCommentsandInteractions?: boolean;
23
+ cardColor?: string;
24
+ showBlur?: boolean;
25
+ }
26
+ declare const NewPostCard: (props: NewPostCardProps) => import("react/jsx-runtime").JSX.Element;
27
+ export default NewPostCard;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const react_2 = require("@chakra-ui/react");
9
+ const customTheme_1 = require("../../../utils/customTheme");
10
+ const newPostCardStyles_1 = require("./newPostCardStyles");
11
+ const icons_1 = require("@chakra-ui/icons");
12
+ const LatexRenderView_1 = __importDefault(require("../../Atoms/LatexRenderView/LatexRenderView"));
13
+ const Component = (props) => {
14
+ const { author, mainImage, content, attachments = [], commentCount = 0, onEditClick, onCardClick, onAttachmentClick, emojiCount, allowEdit = false, icons, allowCommentsandInteractions, cardColor, showBlur = false, } = props;
15
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
16
+ const styles = (0, react_1.useMemo)(() => {
17
+ return newPostCardStyles_1.newPostCardStyles;
18
+ }, []);
19
+ // Line-based truncation for random lines (3-6)
20
+ const maxLines = (0, react_1.useMemo)(() => Math.floor(Math.random() * 4) + 3, []);
21
+ // Simple check for read more - if content is longer than a reasonable threshold
22
+ const shouldShowReadMore = content && content.length > 150;
23
+ // We'll use CSS line clamping to handle the visual truncation
24
+ const displayedContent = content;
25
+ const getAttachmentType = (mimeType) => {
26
+ if (mimeType.startsWith("image/"))
27
+ return "image";
28
+ if (mimeType.startsWith("video/"))
29
+ return "video";
30
+ if (mimeType === "application/pdf")
31
+ return "pdf";
32
+ if (mimeType.includes("excel") ||
33
+ mimeType.includes("spreadsheet") ||
34
+ mimeType === "application/vnd.ms-excel" ||
35
+ mimeType ===
36
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
37
+ return "excel";
38
+ if (mimeType.includes("word") ||
39
+ mimeType.includes("document") ||
40
+ mimeType === "application/msword" ||
41
+ mimeType ===
42
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
43
+ return "doc";
44
+ return "doc"; // default fallback
45
+ };
46
+ const handleReadMoreClick = (e) => {
47
+ e.stopPropagation();
48
+ setIsExpanded(!isExpanded);
49
+ };
50
+ const handleEditClick = (e) => {
51
+ e.stopPropagation();
52
+ if (onEditClick) {
53
+ onEditClick();
54
+ }
55
+ };
56
+ const handleAttachmentClick = (attachment, e) => {
57
+ e.stopPropagation();
58
+ if (onAttachmentClick) {
59
+ onAttachmentClick(attachment);
60
+ }
61
+ };
62
+ // Function to get initials from name
63
+ const getInitials = (name) => {
64
+ if (!name)
65
+ return "";
66
+ const names = name.trim().split(" ");
67
+ if (names.length >= 2) {
68
+ return (names[0].charAt(0) + names[names.length - 1].charAt(0)).toUpperCase();
69
+ }
70
+ return name.charAt(0).toUpperCase();
71
+ };
72
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { sx: styles?.mainContainer, cursor: showBlur ? "not-allowed" : "pointer", bgColor: cardColor, onClick: showBlur ? undefined : onCardClick, filter: showBlur ? "blur(10px)" : "none", children: [(0, jsx_runtime_1.jsxs)(react_2.HStack, { sx: styles?.headerSection, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { sx: styles?.profileContainer, children: (0, jsx_runtime_1.jsx)(react_2.Text, { color: "white", fontFamily: "Poppins", fontWeight: "600", fontSize: "18px", children: getInitials(author.name) }) }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.userName, children: author.name }), allowEdit && ((0, jsx_runtime_1.jsx)(react_2.Box, { sx: styles?.editIcon, onClick: handleEditClick, children: (0, jsx_runtime_1.jsx)(icons_1.EditIcon, { boxSize: 4, color: "#666A6B" }) }))] }), mainImage && ((0, jsx_runtime_1.jsx)(react_2.Box, { sx: styles?.mainImageContainer, children: (0, jsx_runtime_1.jsx)(react_2.Image, { src: mainImage, alt: "Post content", sx: styles?.mainImage }) })), (0, jsx_runtime_1.jsxs)(react_2.VStack, { sx: styles?.contentSection, align: "start", children: [(0, jsx_runtime_1.jsx)(react_2.Text, { sx: {
73
+ ...styles?.contentText,
74
+ display: '-webkit-box',
75
+ WebkitLineClamp: isExpanded ? 'none' : maxLines,
76
+ WebkitBoxOrient: 'vertical',
77
+ overflow: 'hidden',
78
+ textOverflow: 'ellipsis'
79
+ }, children: (0, jsx_runtime_1.jsx)(LatexRenderView_1.default, { math: displayedContent }) }), shouldShowReadMore && ((0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.readMoreText, onClick: handleReadMoreClick, children: isExpanded ? " read less" : " read more" }))] }), attachments.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.attachmentHeading, children: "Attachments" }), (0, jsx_runtime_1.jsx)(react_2.Flex, { gap: "8px", flexWrap: "wrap", marginY: "8px", children: attachments.map((attachment) => {
80
+ const attachmentType = getAttachmentType(attachment.mimeType);
81
+ const iconSrc = icons?.[attachmentType];
82
+ return ((0, jsx_runtime_1.jsx)(react_2.Image, { src: iconSrc, alt: `${attachmentType} icon`, width: "24px", height: "24px", cursor: "pointer", onClick: (e) => handleAttachmentClick(attachment, e), title: attachment.fileName }, attachment.id));
83
+ }) })] })), (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { sx: styles?.divider }), (0, jsx_runtime_1.jsx)(react_2.Flex, { sx: styles?.emojiSection, children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { gap: "4px", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.Image, { src: icons?.comment, alt: "Comment icon", width: "20px", height: "20px" }), (0, jsx_runtime_1.jsx)(react_2.Text, { sx: styles?.emojiText, children: commentCount })] }) })] })] }));
84
+ };
85
+ const NewPostCard = (props) => {
86
+ return ((0, jsx_runtime_1.jsx)(react_2.ChakraProvider, { theme: customTheme_1.customTheme, children: (0, jsx_runtime_1.jsx)(Component, { ...props }) }));
87
+ };
88
+ exports.default = NewPostCard;
89
+ //# sourceMappingURL=NewPostCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewPostCard.js","sourceRoot":"","sources":["../../../../src/components/Molecules/ExperientialComponents/NewPostCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ interface CommentData {
2
+ id: string;
3
+ authorName: string;
4
+ authorRole?: string;
5
+ authorAvatar?: string;
6
+ content: string;
7
+ timestamp: string;
8
+ isPinned?: boolean;
9
+ isSubjectTeacher?: boolean;
10
+ }
11
+ interface NewPostInfoProps {
12
+ postAttachments?: any;
13
+ author?: any;
14
+ subject?: string;
15
+ topic?: string;
16
+ activityTitle?: string;
17
+ postContent?: string;
18
+ icons?: Record<string, string>;
19
+ commentCount?: number;
20
+ emojiCount?: number;
21
+ onAttachmentClick?: (attachment: any) => void;
22
+ cardColor?: string;
23
+ allowCommentsandInteractions?: boolean;
24
+ comments?: CommentData[];
25
+ onCommentSubmit?: (comment: string) => void;
26
+ commentSuggestions?: string[];
27
+ }
28
+ declare const NewPostInfo: (props: NewPostInfoProps) => import("react/jsx-runtime").JSX.Element;
29
+ export default NewPostInfo;