UNPKG

@useloops/design-system

Version:

The official React based Loops design system

2 lines (1 loc) 8.02 kB
import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useTheme as t,Box as r,Stack as i}from"@mui/material";import{usePopupState as a}from"material-ui-popup-state/hooks";import{forwardRef as s,useState as p,useEffect as n}from"react";import{isButton as m}from"../../../utils/isButton.js";import"../../BrandCore/colorRamps.js";import"../../BrandCore/primitiveVariables.js";import"../../BrandCore/semanticColor.js";import"../../BrandCore/types.js";import"../../BrandCore/typography.js";import l from"../../BrandCore/Icon/Icon.js";import"../../../utils/formValidation/misc.js";import"../../WebCore/utils/typography.util.js";import"../../WebCore/AnnualController/AnnualController.js";import"../../WebCore/SelectItem/SelectItem.js";import"../../WebCore/Accordion/Accordion.js";import"../../WebCore/Animations/FadeIn.js";import c from"../../WebCore/Typography/Typography.js";import"@mui/icons-material";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteListbox.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledPopper.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteField.js";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteChip.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteInput.js";import d from"../../WebCore/Avatar/Avatar.js";import"../../WebCore/Badge/Badge.js";import"merge-sx";import"../../WebCore/Breadcrumb/Breadcrumb.js";import u from"../../WebCore/Button/Button.js";import"../../WebCore/ButtonBase/ButtonBase.js";import"../../WebCore/ButtonTabGroup/_partials/ActiveIndicator.js";import"../../WebCore/ButtonTabGroup/_partials/ButtonTabsWrapper.js";import"../../WebCore/ButtonTabGroup/_partials/TabButton.js";import"../../WebCore/Checkbox/StyledCheckbox.js";import"../../WebCore/InputFieldBase/InputFieldBase.js";import"../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js";import"../../WebCore/InputLabelBase/StyledInputLabelBase.js";import"../../WebCore/Differential/DifferentialContainer.js";import"../../WebCore/Differential/DifferentialRadio.js";import"../../WebCore/DropdownMenu/StyledMenu.js";import"../../WebCore/ExpandableTypographyClamp/ExpandableTypographyClamp.js";import"../../WebCore/FormGenerator/FormGenerator.js";import"../../WebCore/GridOverlay/GridOverlay.js";import"html-react-parser";import b from"../../WebCore/IconButton/IconButton.js";import"../../WebCore/IconButtonBase/IconButtonBase.js";import"../../WebCore/IconButtonGroup/IconButtonGroup.js";import"../../WebCore/Image/Image.js";import"../../WebCore/KbdGroup/Kbd.js";import"../../WebCore/KbdGroup/KbdGroup.js";import"../../WebCore/KeyValueLabel/KeyValueLabel.js";import"../../WebCore/Label/Label.js";import"../../WebCore/Likert/LikertContainer.js";import"../../WebCore/Likert/LikertLabel.js";import"../../WebCore/Likert/LikertRadio.js";import"../../WebCore/Link/StyledLink.js";import"@lottiefiles/dotlottie-react";import"../../WebCore/LoopsAiButton/LoopsAiButton.js";import"markdown-to-jsx";import C from"../../WebCore/Menu/Menu.js";import"../../WebCore/ModalLayout/_partials/ModalActionsWrapper.js";import"../../WebCore/ModalLayout/_partials/ModalContentWrapper.js";import"../../WebCore/Surface/Surface.js";import"../../WebCore/NavigationButton/NavigationButton.js";import"../../WebCore/Nudge/NudgeButton.js";import"../../WebCore/NumberField/NumberField.js";import"../../WebCore/Progress/Progress.js";import j from"../../WebCore/Tooltip/Tooltip.js";import"../../WebCore/Pill/StyledPill.js";import"../../WebCore/ProgressBar/ProgressBar.js";import"../../WebCore/Radio/StyledRadio.js";import"../../WebCore/Select/StyledSelect.js";import"../../WebCore/RankItem/RankItemContainer.js";import"../../WebCore/RankItem/RankItemLabel.js";import"../../WebCore/SortableList/SortableList.js";import"../../WebCore/SortableList/components/SortableItem/SortableItem.js";import"../../WebCore/SortableList/components/SortableOverlay/SortableOverlay.js";import"@tiptap/extension-placeholder";import"@tiptap/starter-kit";import"mui-tiptap";import"../../WebCore/RichTextField/StyledRichTextEditor.js";import"../../WebCore/Skeleton/Skeleton.js";import"../../WebCore/Slider/StyledSlider.js";import"../../WebCore/StarRating/StarRating.js";import"../../WebCore/Switch/StyledSwitch.js";import"../../WebCore/Textarea/Textarea.js";import"../../WebCore/TrialCard/TrialCardContainers.js";import"../../WebCore/TrialCard/TrialPill.js";import"../../WebCore/UserMenu/UserMenuButton.js";import"../../WebCore/VideoModal/VideoModal.js";import g from"../ClipboardCopyingOverlay/ClipboardCopyingOverlay.js";import W from"../SentimentArrow/SentimentArrow.js";import{CommentCardContainer as y,CommentActions as x}from"./_partials/Containers.js";const f=(e,o)=>{if(!o)return e.custom.palette.neutral[200];return`hsl(${(e=>{let o=0;for(let t=0;t<e.length;t++)o=e.charCodeAt(t)+((o<<5)-o);return Math.abs(o)%360})(o)}, 100%, 75%)`},h=s(({author:s,authorId:h,timeStamp:B,commentType:S,onTimeStampClick:I,copyLoading:k,favouriteLoading:v,isActive:A,isHovered:L,isStarred:T,moreMenuItems:M,moreMenuState:w,onClick:F,onFavouritePress:G,onMorePress:P,original:R,sentimentScore:_,translation:z,translationError:O,slotProps:N,demographicString:K,onClickSeeMore:V},D)=>{const E=t(),[H,U]=p(!z),$=matchMedia("(hover: none)").matches,[q,J]=p(L||$),Q=a({variant:"popper"});return n(()=>{Q.close()},[q]),e(y,{ref:D,onMouseOver:()=>J(!0),onMouseOut:()=>J(!1),isActive:A,isHovered:L,onClick:e=>{m(e.target)||F?.()},children:[k&&o(g,{}),e(r,{sx:{alignItems:"start",display:"flex",gap:E.spacing(E.custom.padding.md),justifyContent:"space-between"},children:[s&&e(r,{sx:{alignItems:"flex-start",display:"flex",gap:E.spacing(E.custom.padding.sm)},children:[o(d,{sizing:"xs",sx:{backgroundColor:f(E,h??s),color:E.custom.palette.text.primary},children:o(c,{component:"p",weight:"bold",sx:{lineHeight:1,fontSize:"16px",position:"relative",top:"-1px",textTransform:"uppercase"},children:s?.substring(0,1)})}),e(r,{sx:{alignItems:"center",display:"flex",flexWrap:"wrap",columnGap:E.spacing(E.custom.padding.sm),rowGap:E.spacing(E.custom.padding.xs)},children:[o(c,{component:"p",variation:"xs",color:E.custom.palette.text.primary,fontWeight:500,children:s}),o(W,{sentimentScore:_,commentCard:!0}),B&&o(u,{sizing:"xs",variation:"subtle",onClick:I,sx:{color:E.custom.palette.text.secondary},children:`at ${B}`})]})]}),e(x,{children:[K&&V?o(j,{message:K,children:o(b,{icon:o(l,{name:"info",color:E.custom.palette.icon.primary}),sizing:"xs",sx:{opacity:q?1:0},onClick:V})}):null,!O&&z?o(b,{variation:H?"default":"toggle",icon:o(l,{name:"translate",color:E.custom.palette.icon.primary}),sizing:"xs",onClick:()=>U(!H),sx:{opacity:q?1:0,backgroundColor:"red"}}):null,!!G&&o(b,{loading:v,sizing:"xs",icon:o(l,T?{name:"star-filled",color:E.custom.palette.yellow[300]}:{name:"star",color:E.custom.palette.icon.primary}),onClick:e=>{e.stopPropagation(),G?.()},sx:{opacity:T||q?1:0}}),M&&M.length>0&&o(C,{...w&&{state:w},state:Q,trigger:o(b,{sizing:"xs",icon:o(l,{name:"more-vertical",color:E.custom.palette.icon.primary}),onClick:()=>P?.(),sx:{opacity:q?1:0}}),menuItems:M,width:128,offset:[0,-8],placement:"bottom-end",slotProps:{...N?.menu}})]})]}),o(r,{sx:{alignItems:"start",display:"flex",gap:E.spacing(E.custom.padding.sm),justifyContent:"space-between"},children:o(i,{sx:{alignItems:"start",gap:E.spacing(E.custom.padding.xs),pr:E.spacing(E.custom.padding.md)},children:e(i,{direction:"row",gap:E.m.sm,children:[o(r,{sx:{pt:E.spacing(E.custom.padding.xs),mx:E.spacing(E.custom.padding.xs),minWidth:E.spacing(E.p.md),display:"flex",justifyContent:"center"},children:S&&o(l,{name:S,color:E.custom.palette.icon.secondary,size:18})}),e(r,{display:"flex",alignItems:"center",gap:E.spacing(E.custom.padding.sm),flexWrap:"wrap",children:[o(c,{component:"p",variation:"sm",color:E.custom.palette.text.primary,className:"message",children:!z||H?R:z}),O?o(c,{component:"p",variation:"xs",color:E.custom.palette.text.disabled,children:O}):null]})]})})})]})});export{h as default,f as getAuthorAvatarColor};