@soul-refiner/design-system 2.13.13 → 2.14.2

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 (71) hide show
  1. package/dist/assets/custom_emoji_data.json.js +1 -0
  2. package/dist/components/custom/help_center/help_center-auth.js +1 -0
  3. package/dist/components/custom/help_center/help_center-customModal.js +7 -0
  4. package/dist/components/custom/help_center/help_center-defaultArticle.js +60 -0
  5. package/dist/components/custom/help_center/help_center-editable-content.js +31 -0
  6. package/dist/components/custom/help_center/help_center-mainPage.js +32 -0
  7. package/dist/components/custom/help_center/help_center-sidebar.js +1 -0
  8. package/dist/components/custom/help_center/help_center.js +1 -0
  9. package/dist/components/custom/help_center/help_center_articlle-list.js +30 -0
  10. package/dist/components/custom/help_center/help_center_categoryList.js +55 -0
  11. package/dist/components/custom/help_center/help_center_dataStore.js +1 -0
  12. package/dist/components/custom/help_center/help_center_layout.js +64 -0
  13. package/dist/components/custom/help_center/help_center_sub-category.js +27 -0
  14. package/dist/components/custom/help_center/types.js +1 -0
  15. package/dist/components/editor/context.js +1 -1
  16. package/dist/components/editor/editor.js +1 -1
  17. package/dist/components/editor/plugins/blocks/qa.js +2 -2
  18. package/dist/components/feedback/emojiPicker/constants.js +1 -0
  19. package/dist/components/feedback/emojiPicker/emoji-picker.js +84 -0
  20. package/dist/components/feedback/emojiPicker/emoji-reactions.js +17 -0
  21. package/dist/components/feedback/emojiPicker/sparkle-reaction.js +5 -0
  22. package/dist/components/feedback/emojiPicker/utils.js +1 -0
  23. package/dist/components/media/audio-player/progress-bar.js +4 -0
  24. package/dist/components/media/video/video.js +1 -1
  25. package/dist/components/media/video-player/playlist-item.js +2 -2
  26. package/dist/components/surfaces/comment/comment.js +8 -8
  27. package/dist/components/surfaces/discuss_post/discuss_post.js +7 -7
  28. package/dist/components/surfaces/post/post.js +2 -2
  29. package/dist/emojis/64-2Q7F4PKG.png +0 -0
  30. package/dist/index.js +1 -1
  31. package/dist/src/components/custom/help_center/help_center-auth.d.ts +7 -0
  32. package/dist/src/components/custom/help_center/help_center-customModal.d.ts +4 -0
  33. package/dist/src/components/custom/help_center/help_center-defaultArticle.d.ts +15 -0
  34. package/dist/src/components/custom/help_center/help_center-editable-content.d.ts +7 -0
  35. package/dist/src/components/custom/help_center/help_center-mainPage.d.ts +3 -0
  36. package/dist/src/components/custom/help_center/help_center-sidebar.d.ts +3 -0
  37. package/dist/src/components/custom/help_center/help_center.d.ts +13 -0
  38. package/dist/src/components/custom/help_center/help_center_articlle-list.d.ts +7 -0
  39. package/dist/src/components/custom/help_center/help_center_categoryList.d.ts +6 -0
  40. package/dist/src/components/custom/help_center/help_center_dataStore.d.ts +4 -0
  41. package/dist/src/components/custom/help_center/help_center_layout.d.ts +3 -0
  42. package/dist/src/components/custom/help_center/help_center_seedData.d.ts +2 -0
  43. package/dist/src/components/custom/help_center/help_center_sub-category.d.ts +7 -0
  44. package/dist/src/components/custom/help_center/index.d.ts +1 -0
  45. package/dist/src/components/custom/help_center/types.d.ts +124 -0
  46. package/dist/src/components/editor/context.d.ts +1 -0
  47. package/dist/src/components/editor/editor.d.ts +2 -1
  48. package/dist/src/components/feedback/emojiPicker/constants.d.ts +17 -0
  49. package/dist/src/components/feedback/emojiPicker/emoji-picker.d.ts +8 -0
  50. package/dist/src/components/feedback/emojiPicker/emoji-reactions.d.ts +12 -0
  51. package/dist/src/components/feedback/emojiPicker/grid-mapper.d.ts +2 -0
  52. package/dist/src/components/feedback/emojiPicker/index.d.ts +3 -0
  53. package/dist/src/components/feedback/emojiPicker/sparkle-reaction.d.ts +4 -0
  54. package/dist/src/components/feedback/emojiPicker/types.d.ts +37 -0
  55. package/dist/src/components/feedback/emojiPicker/utils.d.ts +3 -0
  56. package/dist/src/components/feedback/index.d.ts +3 -0
  57. package/dist/src/components/iconography/EmojiPicker/Reaction.d.ts +9 -0
  58. package/dist/src/components/iconography/EmojiPicker/emoji-picker.d.ts +18 -0
  59. package/dist/src/components/iconography/EmojiPicker/grid-mapper.d.ts +2 -0
  60. package/dist/src/components/media/audio-player/progress-bar.d.ts +14 -0
  61. package/dist/src/components/media/video/video.d.ts +2 -1
  62. package/dist/src/components/surfaces/comment/comment.d.ts +3 -1
  63. package/dist/src/components/surfaces/discuss_post/discuss_post.d.ts +3 -1
  64. package/dist/src/components/surfaces/post/post.d.ts +1 -0
  65. package/dist/src/emoji/sparkle-emoji.d.ts +15 -0
  66. package/dist/src/emoji/sprite-emoji.d.ts +9 -0
  67. package/dist/src/hooks/useSparkle.d.ts +12 -0
  68. package/dist/src/styles/globals.css +1 -1
  69. package/dist/src/utils/debounce.d.ts +1 -0
  70. package/dist/styles/output.css +1911 -0
  71. package/package.json +116 -113
@@ -1,19 +1,19 @@
1
1
  "use client";
2
- "use strict";var React=require("react"),Link=require("next/link"),styled=require("styled-components"),regex=require("../../../common/regex.js"),styles=require("../../../common/styles.js"),box=require("../../atoms/box/box.js"),hide=require("../../atoms/hide/hide.js"),highlighter=require("../../atoms/highlighter/highlighter.js"),time_ago=require("../../atoms/time_ago/time_ago.js"),paragraph=require("../../atoms/typography/paragraph.js"),avatar=require("../../iconography/avatar/avatar.js"),helpers=require("./helpers.js");function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultCompat(React),Link__default=_interopDefaultCompat(Link),styled__default=_interopDefaultCompat(styled);const MAX_REACTIONS_SHOWN=5,DiscussPost=({avatarSx:e,content:t,createdDate:a,editActions:r,editing:l,firstNewPost:i,handleContentChange:o,id:n,onReact:d,popupActions:u,popupSx:c,reactions:s,reactionModal:p,replyContent:f,replyUserHref:x,replyUserImageUri:g,replyUserName:_,sx:h,userHref:m,userImageUri:y,userName:$,isAdmin:b,userReactions:R})=>{const v=React__default.default.useRef(null),[E,w]=React__default.default.useState(!1);React__default.default.useEffect(()=>{v.current&&(v.current.value=t)},[t]),React__default.default.useEffect(()=>{v?.current&&v.current.value!==t&&o&&o(v.current.value)},[E]);var k=React__default.default.useMemo(()=>helpers.isSameDay(new Date,new Date(a))?React__default.default.createElement(time_ago.TimeAgo,{date:a}):new Intl.DateTimeFormat("en-US",{minute:"numeric",hour:"numeric",day:"numeric",month:"long",year:"numeric"}).format(a),[a]),S=React__default.default.useMemo(()=>{if(s){let e=Object.entries(s);return(e=p?e.slice(0,MAX_REACTIONS_SHOWN):e).sort((e,t)=>e[1]<t[1]?1:-1).map(e=>React__default.default.createElement(Reaction,{key:n+e[0],onClick:()=>d(e[0]),$align:"center",$dir:"row",$gap:5,$userSelected:R?.includes(e[0])},e[0],React__default.default.createElement(paragraph.P,{$bold:!0,$fontSize:10,$lineHeight:14},e[1])))}},[s,R]);return React__default.default.createElement(Wrapper,{$editing:l,$firstNewPost:i,$sx:h,id:n},React__default.default.createElement(hide.HideButRender,{show:!l&&!!f},React__default.default.createElement(box.Box,{$align:"center",$gap:4,sx:"margin-left: 56px;"},React__default.default.createElement(ReplyMarker,null),React__default.default.createElement(avatar.Avatar,{as:Link__default.default,href:x,image:g,size:16,sx:"img { cursor: pointer;}"}),React__default.default.createElement(paragraph.P,{as:Link__default.default,href:x,$color:"primary-blue-2",$fontSize:12,$lineHeight:16,sx:"flex-shrink: 0; text-decoration: none;"},"@",_),React__default.default.createElement(paragraph.P,{sx:"word-break: break-word; white-space: pre-line;",$fontSize:12,$lineHeight:16,$textClampLines:1},f))),React__default.default.createElement(hide.HideButRender,{show:l},React__default.default.createElement(box.Box,{$gap:16,$align:"flex-start",className:"editing"},React__default.default.createElement(avatar.Avatar,{as:Link__default.default,href:m,image:y,size:40,sx:e}),React__default.default.createElement(box.Box,{$gap:10,sx:`
2
+ "use strict";var React=require("react"),Link=require("next/link"),styled=require("styled-components"),regex=require("../../../common/regex.js"),styles=require("../../../common/styles.js"),box=require("../../atoms/box/box.js"),hide=require("../../atoms/hide/hide.js"),highlighter=require("../../atoms/highlighter/highlighter.js"),time_ago=require("../../atoms/time_ago/time_ago.js"),paragraph=require("../../atoms/typography/paragraph.js"),avatar=require("../../iconography/avatar/avatar.js"),helpers=require("./helpers.js"),emojiReactions=require("../../feedback/emojiPicker/emoji-reactions.js");function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultCompat(React),Link__default=_interopDefaultCompat(Link),styled__default=_interopDefaultCompat(styled);const MAX_REACTIONS_SHOWN=5,DiscussPost=({avatarSx:e,content:t,createdDate:a,editActions:r,editing:l,firstNewPost:o,handleContentChange:i,id:n,onReact:d,popupActions:u,latestReaction:c,popupSx:s,reactions:p,reactionModal:f,replyContent:x,replyUserHref:_,replyUserImageUri:g,replyUserName:m,sx:h,userHref:R,userImageUri:y,userName:b,isAdmin:$,userReactions:v})=>{const E=React__default.default.useRef(null),[w,k]=React__default.default.useState(!1);React__default.default.useEffect(()=>{E.current&&(E.current.value=t)},[t]),React__default.default.useEffect(()=>{E?.current&&E.current.value!==t&&i&&i(E.current.value)},[w]);var j=React__default.default.useMemo(()=>helpers.isSameDay(new Date,new Date(a))?React__default.default.createElement(time_ago.TimeAgo,{date:a}):new Intl.DateTimeFormat("en-US",{minute:"numeric",hour:"numeric",day:"numeric",month:"long",year:"numeric"}).format(a),[a]),A=React__default.default.useMemo(()=>{if(p){let e=Object.entries(p);return(e=f?e.slice(0,MAX_REACTIONS_SHOWN):e).sort((e,t)=>e[1]<t[1]?1:-1).map(([e,t])=>React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(emojiReactions.EmojiReaction,{key:n+e,emoji:e,isActive:v?.includes(e),onReact:()=>d(e),count:t,showSparkle:e===c,showCount:!0})))}},[p,v]);return React__default.default.createElement(Wrapper,{$editing:l,$firstNewPost:o,$sx:h,id:n},React__default.default.createElement(hide.HideButRender,{show:!l&&!!x},React__default.default.createElement(box.Box,{$align:"center",$gap:4,sx:"margin-left: 56px;"},React__default.default.createElement(ReplyMarker,null),React__default.default.createElement(avatar.Avatar,{as:Link__default.default,href:_,image:g,size:16,sx:"img { cursor: pointer;}"}),React__default.default.createElement(paragraph.P,{as:Link__default.default,href:_,$color:"primary-blue-2",$fontSize:12,$lineHeight:16,sx:"flex-shrink: 0; text-decoration: none;"},"@",m),React__default.default.createElement(paragraph.P,{sx:"word-break: break-word; white-space: pre-line;",$fontSize:12,$lineHeight:16,$textClampLines:1},x))),React__default.default.createElement(hide.HideButRender,{show:l},React__default.default.createElement(box.Box,{$gap:16,$align:"flex-start",className:"editing"},React__default.default.createElement(avatar.Avatar,{as:Link__default.default,href:R,image:y,size:40,sx:e}),React__default.default.createElement(box.Box,{$gap:10,sx:`
3
3
  flex: 1;
4
4
  background-color: var(--color-grey-10);
5
5
  border-radius: 8px;
6
6
  @media (max-width: 768px) {
7
7
  flex-direction: column;
8
- min-height: calc(${v?.current?.style?.height||"360px"} + 24px);
8
+ min-height: calc(${E?.current?.style?.height||"360px"} + 24px);
9
9
  }
10
- `},React__default.default.createElement(TextAreaElement,{onChange:()=>w(e=>!e),onInput:e=>{e=e.target;e.style.height="48px",e.style.height=Math.max(e.scrollHeight,e.offsetHeight)+"px"},ref:v}),React__default.default.createElement(EditActionsWrapper,null,r)))),React__default.default.createElement(hide.HideButRender,{show:!l},React__default.default.createElement(box.Box,{$gap:16,$align:"flex-start"},React__default.default.createElement(PopupActionsWrapper,{$sx:c,className:"popup-actions"},u),React__default.default.createElement(avatar.Avatar,{as:Link__default.default,href:m,image:y,size:40,sx:"img { cursor: pointer; }; "+e}),React__default.default.createElement(box.Box,{$gap:4,$dir:"column",sx:"flex: 1;"},React__default.default.createElement(box.Box,{$align:"center",$gap:8,sx:`height: 20px;
10
+ `},React__default.default.createElement(TextAreaElement,{onChange:()=>k(e=>!e),onInput:e=>{e=e.target;e.style.height="48px",e.style.height=Math.max(e.scrollHeight,e.offsetHeight)+"px"},ref:E}),React__default.default.createElement(EditActionsWrapper,null,r)))),React__default.default.createElement(hide.HideButRender,{show:!l},React__default.default.createElement(box.Box,{$gap:16,$align:"flex-start"},React__default.default.createElement(PopupActionsWrapper,{$sx:s,className:"popup-actions"},u),React__default.default.createElement(avatar.Avatar,{as:Link__default.default,href:R,image:y,size:40,sx:"img { cursor: pointer; }; "+e}),React__default.default.createElement(box.Box,{$gap:4,$dir:"column",sx:"flex: 1;"},React__default.default.createElement(box.Box,{$align:"center",$gap:8,sx:`height: 20px;
11
11
  @media screen and (max-width: 400px) {
12
12
  flex-direction: column;
13
13
  align-items: flex-start;
14
14
  height: 40px;
15
15
  gap: 0px;
16
- }`},React__default.default.createElement(paragraph.P,{$bold:!0,$color:b?"special-orange-1":"primary-blue-2",$fontSize:14,$lineHeight:20,as:m?Link__default.default:"span",href:m},$),React__default.default.createElement(paragraph.P,{$color:"grey-4",$fontSize:10,$lineHeight:14},k)),React__default.default.createElement(paragraph.P,{$fontSize:14,$lineHeight:20,sx:"white-space: pre-line; word-break: break-word;"},React__default.default.createElement(highlighter.Highlighter,{highlightRender:e=>React__default.default.createElement(paragraph.P,{as:"span",$color:"primary-blue-2",sx:"font-size: inherit; line-height: inherit;"},React__default.default.createElement(Link__default.default,{href:e,target:"_blank"},e)),seperator:regex.URL_REGEX,text:t})),React__default.default.createElement(box.Box,{$display:"flex",$flow:"row wrap",$gap:6,sx:"margin-left: auto;"},S,p)))))},Wrapper=styled__default.default.div`
16
+ }`},React__default.default.createElement(paragraph.P,{$bold:!0,$color:$?"special-orange-1":"primary-blue-2",$fontSize:14,$lineHeight:20,as:R?Link__default.default:"span",href:R},b),React__default.default.createElement(paragraph.P,{$color:"grey-4",$fontSize:10,$lineHeight:14},j)),React__default.default.createElement(paragraph.P,{$fontSize:14,$lineHeight:20,sx:"white-space: pre-line; word-break: break-word;"},React__default.default.createElement(highlighter.Highlighter,{highlightRender:e=>React__default.default.createElement(paragraph.P,{as:"span",$color:"primary-blue-2",sx:"font-size: inherit; line-height: inherit;"},React__default.default.createElement(Link__default.default,{href:e,target:"_blank"},e)),seperator:regex.URL_REGEX,text:t})),React__default.default.createElement(box.Box,{$display:"flex",$flow:"row wrap",$gap:6,sx:"margin-left: auto;"},A,f)))))},Wrapper=styled__default.default.div`
17
17
  position: relative;
18
18
  padding: 12px 16px;
19
19
  display: flex;
@@ -90,7 +90,7 @@
90
90
  border-left: 2px solid var(--color-grey-9);
91
91
  border-top: 2px solid var(--color-grey-9);
92
92
  border-radius: 6px 0px 0px 0px;
93
- `,Reaction=styled__default.default.div`
93
+ `,PopupActionsWrapper=(styled__default.default.div`
94
94
  ${styles.Styles.flex}
95
95
  display: flex;
96
96
  padding: 2px 6px;
@@ -100,7 +100,7 @@
100
100
  background-color: var(--color-primary-blue-4);
101
101
  border: 1px solid var(--color-primary-blue-3);
102
102
  `:""}
103
- `,PopupActionsWrapper=styled__default.default.div`
103
+ `,styled__default.default.div`
104
104
  position: absolute;
105
105
  top: -16px;
106
106
  right: 16px;
@@ -111,7 +111,7 @@
111
111
  border: 1px solid var(--color-grey-9);
112
112
  box-shadow: var(--elevation-1);
113
113
  ${({$sx:e})=>e||""}
114
- `,EditActionsWrapper=styled__default.default.div`
114
+ `),EditActionsWrapper=styled__default.default.div`
115
115
  display: flex;
116
116
  align-items: center;
117
117
  gap: 4px;
@@ -4,7 +4,7 @@
4
4
  height: ${k.y};
5
5
  width: ${k.x};
6
6
  margin: 0 auto;
7
- `},React__default.default.createElement(NavArrow,{$side:"left",$visible:0!==E,onClick:W},React__default.default.createElement(chevron_left.ChevronLeft,{color:"white",size:48})),React__default.default.createElement(Image__default.default,{alt:"",fill:!0,quality:100,onLoad:e=>{var{naturalHeight:e,naturalWidth:t}=e.target;let a=t+"px",l=e+"px";window?.innerHeight<e&&window?.innerWidth<t?(a=Math.floor(.95*window.innerHeight*t/e)+"px",l=Math.round(.95*window.innerWidth*e/t)+"px"):window?.innerHeight<e?(a=Math.floor(.95*window.innerHeight*t/e)+"px",l="95vh"):window?.innerWidth<t&&(a="95vw",l=Math.round(.95*window.innerWidth*e/t)+"px"),C({x:a,y:l})},draggable:!1,priority:!0,sizes:"100vw",src:p[E],style:{objectFit:"cover"}}),React__default.default.createElement(NavArrow,{$side:"right",$visible:E!==p.length-1,onClick:q},React__default.default.createElement(chevron_right.ChevronRight,{color:"white",size:48})))),React__default.default.createElement(Header,null,React__default.default.createElement(avatar.Avatar,{isPaidUser:h,as:l?Link__default.default:"button",href:l,image:r,size:64,status:a?"online":void 0,subtitle:React__default.default.createElement(paragraph.P,{as:"span",sx:"vertical-align: top;",$fontSize:14,$lineHeight:20},React__default.default.createElement(time_ago.TimeAgo,{date:new Date(u)})),title:React__default.default.createElement(heading.H,{as:l?Link__default.default:"span",href:l,sx:"text-decoration:none;",$bold:!0,$fontSize:18,$lineHeight:26},t),textPosition:"right",tooltipContent:i,tooltipSx:o,sx:l?"img { cursor: pointer; }":void 0}),c),!!d?.length&&React__default.default.createElement("div",{style:{padding:"16px 24px"}},g&&1<R?React__default.default.createElement(ShowMoreText__default.default,{lines:2,more:"Continue Reading",onClick:x,anchorClass:"see-more",expanded:!1,truncatedEndingComponent:"... "},React__default.default.createElement(paragraph.P,{$sx:"white-space: pre-line; word-break: break-word;",$textClampLines:2},React__default.default.createElement(highlighter.Highlighter,{highlightRender:e=>React__default.default.createElement(paragraph.P,{as:"span",$color:"primary-blue-2"},React__default.default.createElement(Link__default.default,{href:e,target:"_blank"},e)),seperator:regex.URL_REGEX,text:d}))):React__default.default.createElement(paragraph.P,{$sx:"white-space: pre-line; word-break: break-word;",innerRef:w},React__default.default.createElement(highlighter.Highlighter,{highlightRender:e=>React__default.default.createElement(paragraph.P,{as:"span",$color:"primary-blue-2"},React__default.default.createElement(Link__default.default,{href:e,target:"_blank"},e)),seperator:regex.URL_REGEX,text:g&&1===R?"This is a premium post. Join to the membership to unlock the full access.":d})),g&&!p?.length&&React__default.default.createElement(JoinNow,{onClick:x},React__default.default.createElement(paragraph.P,{$fontSize:14,$mediumBold:!0},"Join now for $",y," per month"))),g&&!!p?.length&&!j&&React__default.default.createElement(BlurredContentWrapper,null,React__default.default.createElement(Image__default.default,{alt:"",width:650,height:427,priority:!0,quality:100,src:p[0],style:{objectFit:"fill",height:"100%",width:"100%",filter:"blur(60px)",position:"absolute",top:0,left:"50%",transform:"translateX(-50%)"}}),React__default.default.createElement(lock.Lock,{size:40,color:"white",sx:"z-index: 1"}),React__default.default.createElement("div",{style:{display:"flex",flexDirection:"column",zIndex:1}},React__default.default.createElement(paragraph.P,{$color:"white",$fontSize:14,$bold:!0,$lineHeight:20},"Become a member"),React__default.default.createElement(paragraph.P,{$color:"white",$fontSize:14,$bold:!0,$lineHeight:20},"to unlock this post")),React__default.default.createElement(JoinNow,{onClick:x,style:{zIndex:1,marginTop:0}},React__default.default.createElement(paragraph.P,{$fontSize:14,$mediumBold:!0},"Join now for $",y," per month"))),!!p?.length&&!j&&!g&&React__default.default.createElement(ImagesWrapper,{$numImages:p.length},p.slice(0,4).map((e,t)=>React__default.default.createElement(ImageWrapper,{key:""+v+e.slice(0,15)+t},React__default.default.createElement(Image__default.default,{alt:"",fill:!0,onClick:()=>$(t),quality:100,src:e,draggable:!1,style:{cursor:"pointer",objectFit:"cover"}}))),4<p.length&&React__default.default.createElement(heading.H,{as:"p",className:"more-than",sx:"pointer-events: none;",$color:"grey-10",$fontSize:28,$lineHeight:36,$semiBold:!0},"+",p.length-4)),!p?.length&&!j&&m&&!g&&React__default.default.createElement(Link__default.default,{href:m.url,target:"_blank"},React__default.default.createElement(ImageWrapper,null,React__default.default.createElement(Image__default.default,{alt:"",fill:!0,quality:100,src:m.imageUrl,draggable:!1,style:{cursor:"pointer",objectFit:"cover"}})),React__default.default.createElement(box.Box,{$dir:"column",$gap:8,sx:"padding: 8px 16px;"},React__default.default.createElement(paragraph.P,{$color:"grey-2",$semiBold:!0},m.title),React__default.default.createElement(paragraph.P,{$color:"grey-5"},m.description))),j&&React__default.default.createElement(VideoWrapper,null,React__default.default.createElement(video.Video,{src:_.url,thumbnail:_.thumbnail,subtitles:[]})),!!e.length&&React__default.default.createElement(ActionsWrapper,null,!g&&e),s&&!!n.length&&React__default.default.createElement(CommentWrapper,null,n))},Wrapper=styled.styled.div`
7
+ `},React__default.default.createElement(NavArrow,{$side:"left",$visible:0!==E,onClick:W},React__default.default.createElement(chevron_left.ChevronLeft,{color:"white",size:48})),React__default.default.createElement(Image__default.default,{alt:"",fill:!0,quality:100,onLoad:e=>{var{naturalHeight:e,naturalWidth:t}=e.target;let a=t+"px",l=e+"px";window?.innerHeight<e&&window?.innerWidth<t?(a=Math.floor(.95*window.innerHeight*t/e)+"px",l=Math.round(.95*window.innerWidth*e/t)+"px"):window?.innerHeight<e?(a=Math.floor(.95*window.innerHeight*t/e)+"px",l="95vh"):window?.innerWidth<t&&(a="95vw",l=Math.round(.95*window.innerWidth*e/t)+"px"),C({x:a,y:l})},draggable:!1,priority:!0,sizes:"100vw",src:p[E],style:{objectFit:"cover"}}),React__default.default.createElement(NavArrow,{$side:"right",$visible:E!==p.length-1,onClick:q},React__default.default.createElement(chevron_right.ChevronRight,{color:"white",size:48})))),React__default.default.createElement(Header,null,React__default.default.createElement(avatar.Avatar,{isPaidUser:h,as:l?Link__default.default:"button",href:l,image:r,size:64,status:a?"online":void 0,subtitle:React__default.default.createElement(paragraph.P,{as:"span",sx:"vertical-align: top;",$fontSize:14,$lineHeight:20},React__default.default.createElement(time_ago.TimeAgo,{date:new Date(u)})),title:React__default.default.createElement(heading.H,{as:l?Link__default.default:"span",href:l,sx:"text-decoration:none;",$bold:!0,$fontSize:18,$lineHeight:26},t),textPosition:"right",tooltipContent:i,tooltipSx:o,sx:l?"img { cursor: pointer; }":void 0}),c),!!d?.length&&React__default.default.createElement("div",{style:{padding:"16px 24px"}},g&&1<R?React__default.default.createElement(ShowMoreText__default.default,{lines:2,more:"Continue Reading",onClick:x,anchorClass:"see-more",expanded:!1,truncatedEndingComponent:"... "},React__default.default.createElement(paragraph.P,{$sx:"white-space: pre-line; word-break: break-word;",$textClampLines:2},React__default.default.createElement(highlighter.Highlighter,{highlightRender:e=>React__default.default.createElement(paragraph.P,{as:"span",$color:"primary-blue-2"},React__default.default.createElement(Link__default.default,{href:e,target:"_blank"},e)),seperator:regex.URL_REGEX,text:d}))):React__default.default.createElement(paragraph.P,{$sx:"white-space: pre-line; word-break: break-word;",innerRef:w},React__default.default.createElement(highlighter.Highlighter,{highlightRender:e=>React__default.default.createElement(paragraph.P,{as:"span",$color:"primary-blue-2"},React__default.default.createElement(Link__default.default,{href:e,target:"_blank"},e)),seperator:regex.URL_REGEX,text:g&&1===R?"This is a premium post. Join to the membership to unlock the full access.":d})),g&&!p?.length&&React__default.default.createElement(JoinNow,{onClick:x},React__default.default.createElement(paragraph.P,{$fontSize:14,$mediumBold:!0},"Join now for $",y," per month"))),g&&!!p?.length&&!j&&React__default.default.createElement(BlurredContentWrapper,null,React__default.default.createElement(Image__default.default,{alt:"",width:650,height:427,priority:!0,quality:100,src:p[0],style:{objectFit:"fill",height:"100%",width:"100%",filter:"blur(60px)",position:"absolute",top:0,left:"50%",transform:"translateX(-50%)"}}),React__default.default.createElement(lock.Lock,{size:40,color:"white",sx:"z-index: 1"}),React__default.default.createElement("div",{style:{display:"flex",flexDirection:"column",zIndex:1}},React__default.default.createElement(paragraph.P,{$color:"white",$fontSize:14,$bold:!0,$lineHeight:20},"Become a member"),React__default.default.createElement(paragraph.P,{$color:"white",$fontSize:14,$bold:!0,$lineHeight:20},"to unlock this post")),React__default.default.createElement(JoinNow,{onClick:x,style:{zIndex:1,marginTop:0}},React__default.default.createElement(paragraph.P,{$fontSize:14,$mediumBold:!0},"Join now for $",y," per month"))),!!p?.length&&!j&&!g&&React__default.default.createElement(ImagesWrapper,{$numImages:p.length},p.slice(0,4).map((e,t)=>React__default.default.createElement(ImageWrapper,{key:""+v+e.slice(0,15)+t},React__default.default.createElement(Image__default.default,{alt:"",fill:!0,onClick:()=>$(t),quality:100,src:e,draggable:!1,style:{cursor:"pointer",objectFit:"cover"}}))),4<p.length&&React__default.default.createElement(heading.H,{as:"p",className:"more-than",sx:"pointer-events: none;",$color:"grey-10",$fontSize:28,$lineHeight:36,$semiBold:!0},"+",p.length-4)),!p?.length&&!j&&m&&!g&&React__default.default.createElement(Link__default.default,{href:m.url,target:"_blank"},React__default.default.createElement(ImageWrapper,null,React__default.default.createElement(Image__default.default,{alt:"",fill:!0,quality:100,src:m.imageUrl,draggable:!1,style:{cursor:"pointer",objectFit:"cover"}})),React__default.default.createElement(box.Box,{$dir:"column",$gap:8,sx:"padding: 8px 16px;"},React__default.default.createElement(paragraph.P,{$color:"grey-2",$semiBold:!0},m.title),React__default.default.createElement(paragraph.P,{$color:"grey-5"},m.description))),j&&React__default.default.createElement(VideoWrapper,null,React__default.default.createElement(video.Video,{src:_.url,thumbnail:_.thumbnail,subtitles:[],title:_?.title})),!!e.length&&React__default.default.createElement(ActionsWrapper,null,!g&&e),s&&!!n.length&&React__default.default.createElement(CommentWrapper,null,n))},Wrapper=styled.styled.div`
8
8
  position: relative;
9
9
  max-width: 700px;
10
10
  width: 100%;
@@ -81,7 +81,7 @@
81
81
  `,VideoWrapper=styled.styled.div`
82
82
  position: relative;
83
83
  width: 100%;
84
- height: 427px;
84
+ height: 480px;
85
85
  `,BlurredContentWrapper=styled.styled.div`
86
86
  position: relative;
87
87
  display: flex;
Binary file
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var button=require("./components/actions/button/button.js"),dropdown=require("./components/actions/dropdown/dropdown.js"),rate=require("./components/actions/rate/rate.js"),_switch=require("./components/actions/switch/switch.js"),toggle=require("./components/actions/toggle/toggle.js"),upload=require("./components/actions/upload/upload.js"),box=require("./components/atoms/box/box.js"),hide=require("./components/atoms/hide/hide.js"),highlighter=require("./components/atoms/highlighter/highlighter.js"),seconds_to_duration=require("./components/atoms/seconds_to_duration/seconds_to_duration.js"),display=require("./components/atoms/typography/display.js"),heading=require("./components/atoms/typography/heading.js"),paragraph=require("./components/atoms/typography/paragraph.js"),typography=require("./components/atoms/typography/typography.js"),time_ago=require("./components/atoms/time_ago/time_ago.js"),card=require("./components/card/card.js"),editor=require("./components/editor/editor.js"),simple_editor=require("./components/editor/simple_editor/simple_editor.js"),badge=require("./components/feedback/badge/badge.js"),banner=require("./components/feedback/banner/banner.js"),loader=require("./components/feedback/loader/loader.js"),notification=require("./components/feedback/notification/notification.js"),progress=require("./components/feedback/progress/progress.js"),toast=require("./components/feedback/toast/toast.js"),tooltip=require("./components/feedback/tooltip/tooltip.js"),animated_toast=require("./components/feedback/animated_toast/animated_toast.js"),avatar=require("./components/iconography/avatar/avatar.js"),icon=require("./components/iconography/icon/icon.js"),checkbox=require("./components/input/checkbox/checkbox.js"),date=require("./components/input/date/date.js"),filter=require("./components/input/filter/filter.js"),radio=require("./components/input/radio/radio.js"),search=require("./components/input/search/search.js"),select=require("./components/input/select/select.js"),text_area=require("./components/input/text_area/text_area.js"),text_input=require("./components/input/text_input/text_input.js"),calendar=require("./components/input/calendar/calendar.js"),time=require("./components/input/time/time.js"),time_input=require("./components/input/time_input/time_input.js"),audioPlayer=require("./components/media/audio-player/audio-player.js"),audioPlaylist=require("./components/media/audio-playlist/audio-playlist.js"),audioPreview=require("./components/media/audio-preview/audio-preview.js"),video=require("./components/media/video/video.js"),video$1=require("./components/media/video-player/video.js"),playing_indicator=require("./components/media/audio-playlist/playing_indicator.js"),breadcrumb=require("./components/navigation/breadcrumb/breadcrumb.js"),inner=require("./components/navigation/inner/inner.js"),tabs=require("./components/navigation/tabs/tabs.js"),accordion=require("./components/surfaces/accordion/accordion.js"),card$1=require("./components/surfaces/carousel/card/card.js"),comment=require("./components/surfaces/comment/comment.js"),discuss_post=require("./components/surfaces/discuss_post/discuss_post.js"),drawer=require("./components/surfaces/drawer/drawer.js"),message=require("./components/surfaces/message/message.js"),modal=require("./components/surfaces/modal/modal.js"),portal=require("./components/surfaces/portal/portal.js"),post=require("./components/surfaces/post/post.js"),calendar_date=require("./components/surfaces/calendar_date/calendar_date.js"),table=require("./components/table/table/table.js"),users_selection=require("./components/custom/users_selection/users_selection.js"),courses_selection=require("./components/custom/courses_selection/courses_selection.js"),index=require("./icons/index.js"),emojis=require("./emoji/emojis.json.js");exports.Button=button.Button,exports.Dropdown=dropdown.Dropdown,exports.Rate=rate.Rate,exports.Switch=_switch.Switch,exports.Toggle=toggle.Toggle,exports.Upload=upload.Upload,exports.Box=box.Box,exports.HideButRender=hide.HideButRender,exports.Highlighter=highlighter.Highlighter,exports.SecToDuration=seconds_to_duration.SecToDuration,exports.Display=display.Display,exports.H=heading.H,exports.P=paragraph.P,exports.Typography=typography.Typography,exports.TimeAgo=time_ago.TimeAgo,exports.Card=card.Card,exports.Editor=editor.Editor,exports.SimpleEditor=simple_editor.SimpleEditor,exports.Badge=badge.Badge,exports.Banner=banner.Banner,exports.Loader=loader.Loader,exports.Notification=notification.Notification,exports.Progress=progress.Progress,exports.Toast=toast.Toast,exports.Tooltip=tooltip.Tooltip,exports.AnimatedToast=animated_toast.AnimatedToast,exports.Avatar=avatar.Avatar,exports.Icon=icon.Icon,exports.Checkbox=checkbox.Checkbox,exports.DatePicker=date.DatePicker,exports.Filter=filter.Filter,exports.Radio=radio.Radio,exports.Search=search.Search,exports.Select=select.Select,exports.TextArea=text_area.TextArea,exports.TextInput=text_input.TextInput,exports.CalendarInput=calendar.CalendarInput,exports.Time=time.Time,exports.TimeInput=time_input.TimeInput,exports.AudioPlayer=audioPlayer.AudioPlayer,exports.AudioPlaylist=audioPlaylist.AudioPlaylist,exports.AudioPreview=audioPreview.AudioPreview,exports.Video=video.Video,exports.VideoPlayer=video$1.VideoPlayer,exports.NowPlaying=playing_indicator.NowPlaying,exports.Breadcrumb=breadcrumb.Breadcrumb,exports.InnerNav=inner.InnerNav,exports.Tabs=tabs.Tabs,exports.Accordion=accordion.Accordion,exports.CardCarousel=card$1.CardCarousel,exports.Comment=comment.Comment,exports.DiscussPost=discuss_post.DiscussPost,exports.Drawer=drawer.Drawer,exports.Message=message.Message,exports.Modal=modal.Modal,exports.Portal=portal.Portal,exports.Post=post.Post,exports.CalendarDate=calendar_date.CalendarDate,exports.Table=table.Table,exports.UsersSelection=users_selection.UsersSelection,exports.CoursesSelection=courses_selection.CoursesSelection,exports.Icons=index,exports.emoji=emojis;
1
+ "use strict";var button=require("./components/actions/button/button.js"),dropdown=require("./components/actions/dropdown/dropdown.js"),rate=require("./components/actions/rate/rate.js"),_switch=require("./components/actions/switch/switch.js"),toggle=require("./components/actions/toggle/toggle.js"),upload=require("./components/actions/upload/upload.js"),box=require("./components/atoms/box/box.js"),hide=require("./components/atoms/hide/hide.js"),highlighter=require("./components/atoms/highlighter/highlighter.js"),seconds_to_duration=require("./components/atoms/seconds_to_duration/seconds_to_duration.js"),display=require("./components/atoms/typography/display.js"),heading=require("./components/atoms/typography/heading.js"),paragraph=require("./components/atoms/typography/paragraph.js"),typography=require("./components/atoms/typography/typography.js"),time_ago=require("./components/atoms/time_ago/time_ago.js"),card=require("./components/card/card.js"),editor=require("./components/editor/editor.js"),simple_editor=require("./components/editor/simple_editor/simple_editor.js"),badge=require("./components/feedback/badge/badge.js"),banner=require("./components/feedback/banner/banner.js"),loader=require("./components/feedback/loader/loader.js"),notification=require("./components/feedback/notification/notification.js"),progress=require("./components/feedback/progress/progress.js"),toast=require("./components/feedback/toast/toast.js"),tooltip=require("./components/feedback/tooltip/tooltip.js"),animated_toast=require("./components/feedback/animated_toast/animated_toast.js"),emojiPicker=require("./components/feedback/emojiPicker/emoji-picker.js"),emojiReactions=require("./components/feedback/emojiPicker/emoji-reactions.js"),avatar=require("./components/iconography/avatar/avatar.js"),icon=require("./components/iconography/icon/icon.js"),checkbox=require("./components/input/checkbox/checkbox.js"),date=require("./components/input/date/date.js"),filter=require("./components/input/filter/filter.js"),radio=require("./components/input/radio/radio.js"),search=require("./components/input/search/search.js"),select=require("./components/input/select/select.js"),text_area=require("./components/input/text_area/text_area.js"),text_input=require("./components/input/text_input/text_input.js"),calendar=require("./components/input/calendar/calendar.js"),time=require("./components/input/time/time.js"),time_input=require("./components/input/time_input/time_input.js"),audioPlayer=require("./components/media/audio-player/audio-player.js"),audioPlaylist=require("./components/media/audio-playlist/audio-playlist.js"),audioPreview=require("./components/media/audio-preview/audio-preview.js"),video=require("./components/media/video/video.js"),video$1=require("./components/media/video-player/video.js"),playing_indicator=require("./components/media/audio-playlist/playing_indicator.js"),breadcrumb=require("./components/navigation/breadcrumb/breadcrumb.js"),inner=require("./components/navigation/inner/inner.js"),tabs=require("./components/navigation/tabs/tabs.js"),accordion=require("./components/surfaces/accordion/accordion.js"),card$1=require("./components/surfaces/carousel/card/card.js"),comment=require("./components/surfaces/comment/comment.js"),discuss_post=require("./components/surfaces/discuss_post/discuss_post.js"),drawer=require("./components/surfaces/drawer/drawer.js"),message=require("./components/surfaces/message/message.js"),modal=require("./components/surfaces/modal/modal.js"),portal=require("./components/surfaces/portal/portal.js"),post=require("./components/surfaces/post/post.js"),calendar_date=require("./components/surfaces/calendar_date/calendar_date.js"),table=require("./components/table/table/table.js"),users_selection=require("./components/custom/users_selection/users_selection.js"),courses_selection=require("./components/custom/courses_selection/courses_selection.js"),index=require("./icons/index.js"),emojis=require("./emoji/emojis.json.js");exports.Button=button.Button,exports.Dropdown=dropdown.Dropdown,exports.Rate=rate.Rate,exports.Switch=_switch.Switch,exports.Toggle=toggle.Toggle,exports.Upload=upload.Upload,exports.Box=box.Box,exports.HideButRender=hide.HideButRender,exports.Highlighter=highlighter.Highlighter,exports.SecToDuration=seconds_to_duration.SecToDuration,exports.Display=display.Display,exports.H=heading.H,exports.P=paragraph.P,exports.Typography=typography.Typography,exports.TimeAgo=time_ago.TimeAgo,exports.Card=card.Card,exports.Editor=editor.Editor,exports.SimpleEditor=simple_editor.SimpleEditor,exports.Badge=badge.Badge,exports.Banner=banner.Banner,exports.Loader=loader.Loader,exports.Notification=notification.Notification,exports.Progress=progress.Progress,exports.Toast=toast.Toast,exports.Tooltip=tooltip.Tooltip,exports.AnimatedToast=animated_toast.AnimatedToast,exports.CustomEmojiPicker=emojiPicker.CustomEmojiPicker,exports.EmojiReaction=emojiReactions.EmojiReaction,exports.Avatar=avatar.Avatar,exports.Icon=icon.Icon,exports.Checkbox=checkbox.Checkbox,exports.DatePicker=date.DatePicker,exports.Filter=filter.Filter,exports.Radio=radio.Radio,exports.Search=search.Search,exports.Select=select.Select,exports.TextArea=text_area.TextArea,exports.TextInput=text_input.TextInput,exports.CalendarInput=calendar.CalendarInput,exports.Time=time.Time,exports.TimeInput=time_input.TimeInput,exports.AudioPlayer=audioPlayer.AudioPlayer,exports.AudioPlaylist=audioPlaylist.AudioPlaylist,exports.AudioPreview=audioPreview.AudioPreview,exports.Video=video.Video,exports.VideoPlayer=video$1.VideoPlayer,exports.NowPlaying=playing_indicator.NowPlaying,exports.Breadcrumb=breadcrumb.Breadcrumb,exports.InnerNav=inner.InnerNav,exports.Tabs=tabs.Tabs,exports.Accordion=accordion.Accordion,exports.CardCarousel=card$1.CardCarousel,exports.Comment=comment.Comment,exports.DiscussPost=discuss_post.DiscussPost,exports.Drawer=drawer.Drawer,exports.Message=message.Message,exports.Modal=modal.Modal,exports.Portal=portal.Portal,exports.Post=post.Post,exports.CalendarDate=calendar_date.CalendarDate,exports.Table=table.Table,exports.UsersSelection=users_selection.UsersSelection,exports.CoursesSelection=courses_selection.CoursesSelection,exports.Icons=index,exports.emoji=emojis;
@@ -0,0 +1,7 @@
1
+ import { USER_ROLES, User } from './types';
2
+ declare const auth: {
3
+ isAuthenticated: () => boolean;
4
+ getUser: () => User | null;
5
+ hasPermission: (role: (typeof USER_ROLES)[keyof typeof USER_ROLES], permission: string) => boolean;
6
+ };
7
+ export default auth;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { CustomModalProps } from './types';
3
+ declare const CustomModal: React.FC<CustomModalProps>;
4
+ export default CustomModal;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface DefaultArticlePageProps {
3
+ articleId: string;
4
+ title: string;
5
+ handleCreateCategory: (value: string) => void;
6
+ handleCreateArticle: () => void;
7
+ }
8
+ export declare const HowCanWeHelpPage: React.FC;
9
+ export declare const DefaultArticlePage: React.FC<DefaultArticlePageProps>;
10
+ interface DefaultSubcategoryPageProps {
11
+ categoryId: string;
12
+ subcategoryId: string;
13
+ }
14
+ export declare const DefaultSubcategoryPage: React.FC<DefaultSubcategoryPageProps>;
15
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ArticleCategory } from './types';
3
+ interface EditArticleFormProps {
4
+ articleCategory: ArticleCategory;
5
+ }
6
+ declare const ArticleCategoryWithQA: React.FC<EditArticleFormProps>;
7
+ export default ArticleCategoryWithQA;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const MainPage: React.FC;
3
+ export default MainPage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const Sidebar: React.FC;
3
+ export default Sidebar;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Category, USER_ROLES } from './types';
3
+ interface HelpCenterProps {
4
+ initialData: {
5
+ categories: Category[];
6
+ userRole: (typeof USER_ROLES)[keyof typeof USER_ROLES];
7
+ };
8
+ onDataChange?: (data: {
9
+ categories: Category[];
10
+ }) => void;
11
+ }
12
+ export declare const HelpCenter: React.FC<HelpCenterProps>;
13
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface ArticleListProps {
3
+ categoryId: string;
4
+ subcategoryId: string;
5
+ }
6
+ declare const ArticleList: React.FC<ArticleListProps>;
7
+ export default ArticleList;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface CategoryListProps {
3
+ children: (categoryId: string, subcategoryId?: string) => React.ReactNode;
4
+ }
5
+ declare const CategoryList: React.FC<CategoryListProps>;
6
+ export default CategoryList;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { HelpCenterContextValue, HelpCenterProviderProps } from './types';
3
+ export declare const HelpCenterContext: React.Context<HelpCenterContextValue | undefined>;
4
+ export declare const HelpCenterProvider: React.FC<HelpCenterProviderProps>;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AppLayout: React.FC;
3
+ export default AppLayout;
@@ -0,0 +1,2 @@
1
+ import { Category } from './types';
2
+ export declare const categoriesInitialData: Category[];
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface SubCategoryListProps {
3
+ categoryId: string;
4
+ children: (subcategoryId: string) => React.ReactNode;
5
+ }
6
+ declare const SubCategoryList: React.FC<SubCategoryListProps>;
7
+ export default SubCategoryList;
@@ -0,0 +1 @@
1
+ export { HelpCenter } from './help_center';
@@ -0,0 +1,124 @@
1
+ /// <reference types="react" />
2
+ import { TElement } from '@udecode/plate';
3
+ import { IStyledComponent } from 'styled-components';
4
+ import { FastOmit } from 'styled-components/dist/types';
5
+ export interface Category {
6
+ id: string;
7
+ name: string;
8
+ subcategories: Subcategory[];
9
+ }
10
+ export interface Subcategory {
11
+ id: string;
12
+ name: string;
13
+ categoryId: string;
14
+ articles: Article[];
15
+ }
16
+ export interface WithPermissionProps {
17
+ role: (typeof USER_ROLES)[keyof typeof USER_ROLES];
18
+ permission: string;
19
+ }
20
+ export declare const USER_ROLES: {
21
+ readonly ADMIN: "admin";
22
+ readonly EDITOR: "editor";
23
+ readonly VIEWER: "viewer";
24
+ };
25
+ export interface User {
26
+ id: string;
27
+ email: string;
28
+ role: (typeof USER_ROLES)[keyof typeof USER_ROLES];
29
+ }
30
+ export interface Category {
31
+ id: string;
32
+ name: string;
33
+ subcategories: Subcategory[];
34
+ }
35
+ export declare enum DropdownOptions {
36
+ RENAME = "Rename",
37
+ CREATE_SUBCATEGORY = "Create Sub-Category",
38
+ DELETE_CATEGORY = "Remove the Category",
39
+ CREATE_ARTICLES = "Create Articles",
40
+ DELETE_SUBCATEGORY = "Remove"
41
+ }
42
+ export interface CustomModalProps {
43
+ title: string;
44
+ isOpen: boolean;
45
+ setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
46
+ initialValue?: string;
47
+ modalType: modalType;
48
+ submitButtonText?: string;
49
+ cancelButtonText?: string;
50
+ mainContent?: React.ReactNode;
51
+ headerContent?: React.ReactNode;
52
+ footerContent?: React.ReactNode;
53
+ onSubmit: (value: string) => void;
54
+ trigger: React.ReactNode;
55
+ }
56
+ export type modalType = 'create' | 'edit' | 'delete' | 'create-article-category' | 'edit-article' | 'edit-article-category' | 'delete-article-category' | 'edit-article-QA' | 'delete-article-QA' | 'articleQuestion';
57
+ export interface Subcategory {
58
+ id: string;
59
+ name: string;
60
+ categoryId: string;
61
+ articles: Article[];
62
+ }
63
+ export interface ArticleCategory {
64
+ id: string;
65
+ title?: string;
66
+ articleId: string;
67
+ description?: string;
68
+ questions?: ArticleQuestion[];
69
+ }
70
+ export interface ArticleQuestion {
71
+ id: string;
72
+ articleCategoryId: string;
73
+ question?: string;
74
+ answer?: TElement[];
75
+ }
76
+ export interface Article {
77
+ id: string;
78
+ title: string;
79
+ content: ArticleCategory[];
80
+ categoryId: string;
81
+ subcategoryId: string;
82
+ }
83
+ export interface HelpCenterContextValue {
84
+ categories: Category[];
85
+ isLoading: boolean;
86
+ selectedArticle: Article | null;
87
+ isNewArticle: boolean;
88
+ selectedSubcategory: Subcategory | null;
89
+ error: string | null;
90
+ userRole: (typeof USER_ROLES)[keyof typeof USER_ROLES];
91
+ breadcrumbTrail: string[];
92
+ setSelectedSubcategory: React.Dispatch<React.SetStateAction<Subcategory | null>>;
93
+ setSelectedArticle: React.Dispatch<React.SetStateAction<Article | null>>;
94
+ setIsNewArticle: React.Dispatch<React.SetStateAction<boolean>>;
95
+ setBreadcrumbTrail: React.Dispatch<React.SetStateAction<string[]>>;
96
+ addCategory: (name: string) => void;
97
+ updateCategory: (id: string, name: string) => void;
98
+ deleteCategory: (id: string) => void;
99
+ addSubcategory: (categoryId: string, name: string) => void;
100
+ addArticleCategory: (categoryId: string, subcategoryId: string, articleId: string, newCategory: Omit<ArticleCategory, 'id'>) => void;
101
+ deleteArticleQuestion: (categoryId: string, subcategoryId: string, articleId: string, articleCategoryId: string, questionId: string) => void;
102
+ deleteArticleCategory: (categoryId: string, subcategoryId: string, articleId: string, articleCategoryId: string) => void;
103
+ updateArticleCategory: (categoryId: string, subcategoryId: string, articleId: string, articleCategoryId: string, updatedCategoryName: string) => void;
104
+ addArticleQuestion: (categoryId: string, subcategoryId: string, articleId: string, articleCategoryId: string, newQuestion: Omit<ArticleQuestion, 'id'>) => void;
105
+ updateArticleQuestion: (categoryId: string, subcategoryId: string, articleId: string, articleCategoryId: string, articleQuestionId: string, updatedQuestion: Omit<ArticleQuestion, 'id'>) => void;
106
+ updateSubcategory: (categoryId: string, subcategoryId: string, name: string) => void;
107
+ deleteSubcategory: (categoryId: string, subcategoryId: string) => void;
108
+ addArticle: (categoryId: string, subcategoryId: string, title: string, content: ArticleCategory[]) => string;
109
+ updateArticle: (categoryId: string, subcategoryId: string, articleId: string, title: string, content: ArticleCategory[]) => void;
110
+ deleteArticle: (categoryId: string, subcategoryId: string, articleId: string) => void;
111
+ }
112
+ export interface HelpCenterProviderProps extends HelpCenterProps {
113
+ children: React.ReactNode;
114
+ }
115
+ export interface HelpCenterProps {
116
+ initialData: {
117
+ categories: Category[];
118
+ userRole: (typeof USER_ROLES)[keyof typeof USER_ROLES];
119
+ };
120
+ onDataChange?: (data: {
121
+ categories: Category[];
122
+ }) => void;
123
+ }
124
+ export type StyledType = IStyledComponent<'web', FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
@@ -24,4 +24,5 @@ export declare const EditorContext: React.Context<{
24
24
  }) => React.ReactElement;
25
25
  filterComponent?: React.ComponentType<FilterComponentProps> | undefined;
26
26
  defaultFilter?: string | undefined;
27
+ hideShowAnswersButton?: boolean | undefined;
27
28
  }>;
@@ -14,6 +14,7 @@ export interface EditorProps {
14
14
  courseMediaId: number;
15
15
  }) => React.ReactElement;
16
16
  filterComponent?: React.ComponentType<FilterComponentProps>;
17
+ hideShowAnswersButton?: boolean;
17
18
  }
18
19
  export type EditorContent = TElement;
19
- export declare const Editor: ({ commentInputLoader, commentLoader, editable, handleVideoClick, imageSrcLoader, onChange, previousContent, defaultFilter, videoTitleLoader, filterComponent, }: EditorProps) => React.JSX.Element;
20
+ export declare const Editor: ({ commentInputLoader, commentLoader, editable, handleVideoClick, imageSrcLoader, onChange, previousContent, defaultFilter, videoTitleLoader, filterComponent, hideShowAnswersButton, }: EditorProps) => React.JSX.Element;
@@ -0,0 +1,17 @@
1
+ export declare const FREQUENTLY_USED_IDS: string[];
2
+ export declare enum CategoryId {
3
+ FREQUENTLY = "frequently",
4
+ PEOPLE = "people",
5
+ NATURE = "nature",
6
+ FOODS = "foods",
7
+ ACTIVITY = "activity",
8
+ OBJECTS = "objects",
9
+ SYMBOLS = "symbols",
10
+ FLAGS = "flags"
11
+ }
12
+ export declare const CATEGORY_ICONS: Record<CategoryId, string>;
13
+ export declare const RAINBOW_COLORS: string[];
14
+ export declare const SPRITE_URL = "/emojis/64-2Q7F4PKG.png";
15
+ export declare const SPRITE_COLUMNS = 62;
16
+ export declare const TILE_SIZE = 25;
17
+ export declare const SPRITE_SIZE = 100;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export declare const CustomEmojiPicker: React.FC<{
3
+ onSelect: (emoji: Record<string, string>) => void;
4
+ onClickOutside?: () => void;
5
+ open?: boolean;
6
+ trigger?: React.ReactNode;
7
+ $pickersx?: string;
8
+ }>;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface EmojiReactionProps {
3
+ emoji: string;
4
+ isActive: boolean;
5
+ size?: number;
6
+ showSparkle?: boolean;
7
+ count?: number;
8
+ onReact: () => void;
9
+ showCount?: boolean;
10
+ }
11
+ export declare const EmojiReaction: React.FC<EmojiReactionProps>;
12
+ export {};
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const EmojiGridMapper: React.FC;
@@ -0,0 +1,3 @@
1
+ export { CustomEmojiPicker } from './emoji-picker';
2
+ export { EmojiReaction } from './emoji-reactions';
3
+ export type { NormalizedEmojiType, ReactionEmojiProps } from './types';
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import './reaction-sparkle.css';
3
+ import { ReactionEmojiProps } from './types';
4
+ export declare const ReactionEmoji: React.FC<ReactionEmojiProps>;
@@ -0,0 +1,37 @@
1
+ export type NormalizedEmojiType = {
2
+ id: string;
3
+ name: string;
4
+ keywords?: string[];
5
+ skins: {
6
+ unified: string;
7
+ native: string;
8
+ }[];
9
+ coordinates?: {
10
+ x: number;
11
+ y: number;
12
+ };
13
+ };
14
+ export interface ReactionEmojiProps {
15
+ emojiId: string;
16
+ size?: number;
17
+ sparkleOnMount?: boolean;
18
+ coordinates?: {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ }
23
+ export type RawEmojiDataType = {
24
+ emojis: Record<string, NormalizedEmojiType>;
25
+ categories: {
26
+ id: string;
27
+ emojis: string[];
28
+ }[];
29
+ };
30
+ export type PreprocessedEmojiDataType = {
31
+ categories: {
32
+ [categoryId: string]: NormalizedEmojiType[];
33
+ };
34
+ emojiMap: {
35
+ [emojiId: string]: NormalizedEmojiType;
36
+ };
37
+ };
@@ -0,0 +1,3 @@
1
+ import { NormalizedEmojiType, PreprocessedEmojiDataType, RawEmojiDataType } from './types';
2
+ export declare function preprocessEmojiData(rawData: RawEmojiDataType, FREQUENTLY_USED_IDS: string[]): PreprocessedEmojiDataType;
3
+ export declare function buildNativeEmojiMap(emojis: Record<string, NormalizedEmojiType>): Record<string, NormalizedEmojiType>;
@@ -14,3 +14,6 @@ export { Tooltip } from './tooltip';
14
14
  export type { TooltipProps } from './tooltip';
15
15
  export { AnimatedToast } from './animated_toast';
16
16
  export type { AnimatedToastProps } from './animated_toast';
17
+ export { CustomEmojiPicker } from './emojiPicker';
18
+ export { EmojiReaction } from './emojiPicker';
19
+ export type { NormalizedEmojiType } from './emojiPicker';
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import './reaction-sparkle.css';
3
+ interface RainbowReactionEmojiProps {
4
+ emojiId: string;
5
+ size?: number;
6
+ sparkleOnMount?: boolean;
7
+ }
8
+ export declare const RainbowReactionEmoji: React.FC<RainbowReactionEmojiProps>;
9
+ export {};
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ type NormalizedEmoji = {
3
+ id: string;
4
+ name: string;
5
+ keywords?: string[];
6
+ skins: {
7
+ unified: string;
8
+ native: string;
9
+ }[];
10
+ coordinates?: {
11
+ x: number;
12
+ y: number;
13
+ };
14
+ };
15
+ export declare const CustomEmojiPicker: React.FC<{
16
+ onSelect: (emoji: NormalizedEmoji) => void;
17
+ }>;
18
+ export {};
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const EmojiGridMapper: React.FC;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface AudioProgressBarProps {
3
+ /**
4
+ * @param duration the total duration of the audio media in seconds
5
+ * */
6
+ duration: number;
7
+ /**
8
+ * @param progress the amount of the audio media listened to
9
+ * */
10
+ progress: number;
11
+ onSeek: (percent: number) => void;
12
+ }
13
+ export declare const AudioProgressBar: ({ duration, progress, onSeek, }: AudioProgressBarProps) => React.JSX.Element;
14
+ export {};
@@ -13,5 +13,6 @@ export interface VideoProps {
13
13
  thumbnailObjectFit?: 'cover' | 'contain' | 'fill' | 'unset';
14
14
  forwardedRef?: React.RefObject<ReactPlayer>;
15
15
  playing?: boolean;
16
+ title?: string;
16
17
  }
17
- export declare const Video: ({ controls, loop, muted, playsInline, src, subtitles, style, thumbnail, thumbnailObjectFit, forwardedRef, playing, }: VideoProps) => React.JSX.Element;
18
+ export declare const Video: ({ controls, loop, muted, playsInline, src, subtitles, style, thumbnail, thumbnailObjectFit, forwardedRef, playing, title, }: VideoProps) => React.JSX.Element;
@@ -19,6 +19,8 @@ export interface CommentProps {
19
19
  reactions?: Record<string, number>;
20
20
  replies?: React.ReactElement[];
21
21
  userImageUri: string;
22
+ latestReaction?: string;
23
+ setLatestUserReaction?: React.Dispatch<React.SetStateAction<string>>;
22
24
  customPlaceHolder?: string;
23
25
  userName: string;
24
26
  userReactions?: string[];
@@ -26,4 +28,4 @@ export interface CommentProps {
26
28
  sx?: string;
27
29
  moveButtonsToLeft?: boolean;
28
30
  }
29
- export declare const Comment: ({ avatarTooltipContent, avatarTooltipSx, content, createdDate, hasMoreReplies, id, onComment, onReact, onShowReplies, onEdit, isEditing, setIsEditing, dropdown, reactionModal, reactions, replies, userImageUri, userName, userReactions, visibilityIcon, customPlaceHolder, userProfileUri, sx, moveButtonsToLeft, }: CommentProps) => React.JSX.Element;
31
+ export declare const Comment: ({ avatarTooltipContent, avatarTooltipSx, content, createdDate, hasMoreReplies, id, onComment, onReact, latestReaction, onShowReplies, onEdit, isEditing, setIsEditing, dropdown, reactionModal, reactions, replies, userImageUri, userName, userReactions, visibilityIcon, customPlaceHolder, userProfileUri, sx, moveButtonsToLeft, }: CommentProps) => React.JSX.Element;
@@ -20,8 +20,10 @@ export interface DiscussPostProps {
20
20
  sx?: string;
21
21
  userHref: string;
22
22
  userImageUri: string;
23
+ latestReaction?: string;
24
+ setLatestUserReaction?: React.Dispatch<React.SetStateAction<string>>;
23
25
  userName: string;
24
26
  isAdmin?: boolean;
25
27
  userReactions?: string[];
26
28
  }
27
- export declare const DiscussPost: ({ avatarSx, content, createdDate, editActions, editing, firstNewPost, handleContentChange, id, onReact, popupActions, popupSx, reactions, reactionModal, replyContent, replyUserHref, replyUserImageUri, replyUserName, sx, userHref, userImageUri, userName, isAdmin, userReactions, }: DiscussPostProps) => React.JSX.Element;
29
+ export declare const DiscussPost: ({ avatarSx, content, createdDate, editActions, editing, firstNewPost, handleContentChange, id, onReact, popupActions, latestReaction, popupSx, reactions, reactionModal, replyContent, replyUserHref, replyUserImageUri, replyUserName, sx, userHref, userImageUri, userName, isAdmin, userReactions, }: DiscussPostProps) => React.JSX.Element;
@@ -24,6 +24,7 @@ export interface PostProps extends React.PropsWithChildren {
24
24
  video?: {
25
25
  url: string;
26
26
  thumbnail: string;
27
+ title?: string;
27
28
  };
28
29
  onJoin?: () => void;
29
30
  monthlyMembershipPrice?: number;