Files
fluxer/fluxer_app/src/features/ui/action_menu/ContextMenuIcons.tsx
T

1011 lines
32 KiB
TypeScript

// SPDX-License-Identifier: AGPL-3.0-or-later
import {remFromPx} from '@app/features/theme/layout/RemFromPx';
import {
ArrowBendUpLeftIcon,
ArrowBendUpRightIcon,
ArrowLeftIcon,
ArrowRightIcon,
ArrowSquareOutIcon,
ArrowsClockwiseIcon,
ArrowsLeftRightIcon,
ArrowsOutCardinalIcon,
AtIcon,
BellIcon,
BellSlashIcon,
BookmarkSimpleIcon,
BootIcon,
BugBeetleIcon,
BugIcon,
CameraIcon,
CameraSlashIcon,
CaretDownIcon,
CaretRightIcon,
CaretUpIcon,
ChatCircleIcon,
CheckCircleIcon,
CircleNotchIcon,
ClipboardTextIcon,
ClockCounterClockwiseIcon,
ClockIcon,
CopySimpleIcon,
CrownIcon,
DotsThreeIcon,
DotsThreeVerticalIcon,
DownloadSimpleIcon,
EnvelopeOpenIcon,
EyeIcon,
EyeSlashIcon,
FlagIcon,
FolderPlusIcon,
FunnelIcon,
GavelIcon,
GearIcon,
GlobeIcon,
GridFourIcon,
type IconWeight,
LinkBreakIcon,
LinkIcon,
MagnifyingGlassIcon,
MicrophoneIcon,
MicrophoneSlashIcon,
MonitorArrowUpIcon,
MonitorPlayIcon,
NotePencilIcon,
PaperPlaneIcon,
PaperPlaneRightIcon,
PencilIcon,
PencilSimpleIcon,
PhoneIcon,
PhoneXIcon,
CheckIcon as PhosphorCheckIcon,
CopyIcon as PhosphorCopyIcon,
TranslateIcon as PhosphorTranslateIcon,
PlusCircleIcon,
PlusIcon,
ProhibitIcon,
PushPinIcon,
ShieldIcon,
SignOutIcon,
SmileyIcon,
SnowflakeIcon,
SortAscendingIcon,
SpeakerHighIcon,
SpeakerSimpleSlashIcon,
SpeakerSlashIcon,
StarIcon,
StopCircleIcon,
TicketIcon,
TrashIcon,
UserCircleIcon,
UserIcon,
UserListIcon,
UserMinusIcon,
UserPlusIcon,
UsersIcon,
VideoCameraIcon,
VideoCameraSlashIcon,
VideoIcon,
WrenchIcon,
XIcon,
} from '@phosphor-icons/react';
import {observer} from 'mobx-react-lite';
import type React from 'react';
interface IconProps {
size?: number;
weight?: IconWeight;
className?: string;
}
export const ReplyIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowBendUpLeftIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.reply-icon.arrow-bend-up-left-icon"
/>
));
export const ForwardIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowBendUpRightIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.forward-icon.arrow-bend-up-right-icon"
/>
));
export const EditIcon: React.FC<IconProps> = observer(({size = 16, weight = 'fill'}) => (
<PencilIcon
size={remFromPx(size)}
weight={weight}
data-flx="ui.action-menu.context-menu-icons.edit-icon.pencil-icon"
/>
));
export const DeleteIcon: React.FC<IconProps> = observer(({size = 16}) => (
<TrashIcon size={remFromPx(size)} weight="fill" data-flx="ui.action-menu.context-menu-icons.delete-icon.trash-icon" />
));
export const PinIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PushPinIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.pin-icon.push-pin-icon"
/>
));
export const AddReactionIcon: React.FC<IconProps> = observer(({size = 16}) => (
<SmileyIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.add-reaction-icon.smiley-icon"
/>
));
export const RemoveAllReactionsIcon: React.FC<IconProps> = observer(({size = 16}) => (
<XIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.remove-all-reactions-icon.x-icon"
/>
));
export const BookmarkIcon: React.FC<IconProps & {filled?: boolean}> = observer(({size = 16, filled = false}) => (
<BookmarkSimpleIcon
size={remFromPx(size)}
weight={filled ? 'fill' : 'regular'}
data-flx="ui.action-menu.context-menu-icons.bookmark-icon.bookmark-simple-icon"
/>
));
export const FavoriteIcon: React.FC<IconProps & {filled?: boolean}> = observer(({size = 16, filled = false}) => (
<StarIcon
size={remFromPx(size)}
weight={filled ? 'fill' : 'regular'}
data-flx="ui.action-menu.context-menu-icons.favorite-icon.star-icon"
/>
));
export const CopyTextIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ClipboardTextIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.copy-text-icon.clipboard-text-icon"
/>
));
export const CopyLinkIcon: React.FC<IconProps> = observer(({size = 16}) => (
<LinkIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.copy-link-icon.link-icon"
/>
));
export const CopyIdIcon: React.FC<IconProps> = observer(({size = 16}) => (
<SnowflakeIcon
size={remFromPx(size)}
weight="regular"
data-flx="ui.action-menu.context-menu-icons.copy-id-icon.snowflake-icon"
/>
));
export const CopyIcon: React.FC<IconProps> = observer(({size = 16}) => (
<CopySimpleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.copy-icon.copy-simple-icon"
/>
));
export const OpenLinkIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowSquareOutIcon
size={remFromPx(size)}
weight="regular"
data-flx="ui.action-menu.context-menu-icons.open-link-icon.arrow-square-out-icon"
/>
));
export const RetryIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowsClockwiseIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.retry-icon.arrows-clockwise-icon"
/>
));
export const SaveIcon: React.FC<IconProps> = observer(({size = 16}) => (
<DownloadSimpleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.save-icon.download-simple-icon"
/>
));
export const SuppressEmbedsIcon: React.FC<IconProps> = observer(({size = 16}) => (
<LinkBreakIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.suppress-embeds-icon.link-break-icon"
/>
));
export const MarkAsReadIcon: React.FC<IconProps> = observer(({size = 16}) => (
<EyeIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.mark-as-read-icon.eye-icon"
/>
));
export const MarkAsUnreadIcon: React.FC<IconProps> = observer(({size = 16}) => (
<EnvelopeOpenIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.mark-as-unread-icon.envelope-open-icon"
/>
));
export const MuteIcon: React.FC<IconProps> = observer(({size = 16}) => (
<BellSlashIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.mute-icon.bell-slash-icon"
/>
));
export const NotificationSettingsIcon: React.FC<IconProps> = observer(({size = 16}) => (
<BellIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.notification-settings-icon.bell-icon"
/>
));
export const InviteIcon: React.FC<IconProps> = observer(({size = 16}) => (
<UserPlusIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.invite-icon.user-plus-icon"
/>
));
export const CreateChannelIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PlusCircleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.create-channel-icon.plus-circle-icon"
/>
));
export const CreateCategoryIcon: React.FC<IconProps> = observer(({size = 16}) => (
<FolderPlusIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.create-category-icon.folder-plus-icon"
/>
));
export const SettingsIcon: React.FC<IconProps> = observer(({size = 16}) => (
<GearIcon size={remFromPx(size)} weight="fill" data-flx="ui.action-menu.context-menu-icons.settings-icon.gear-icon" />
));
export const PrivacySettingsIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ShieldIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.privacy-settings-icon.shield-icon"
/>
));
export const LeaveIcon: React.FC<IconProps> = observer(({size = 16}) => (
<SignOutIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.leave-icon.sign-out-icon"
/>
));
export const EditProfileIcon: React.FC<IconProps> = observer(({size = 16}) => (
<UserCircleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.edit-profile-icon.user-circle-icon"
/>
));
export const ViewGlobalProfileIcon: React.FC<IconProps> = observer(({size = 16}) => (
<GlobeIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.view-global-profile-icon.globe-icon"
/>
));
export const VoiceCallIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PhoneIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.voice-call-icon.phone-icon"
/>
));
export const VideoCallIcon: React.FC<IconProps> = observer(({size = 16}) => (
<VideoCameraIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.video-call-icon.video-camera-icon"
/>
));
export const SpeakIcon: React.FC<IconProps> = observer(({size = 16}) => (
<SpeakerHighIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.speak-icon.speaker-high-icon"
/>
));
export const SendFriendRequestIcon: React.FC<IconProps> = observer(({size = 16, weight = 'fill'}) => (
<UserPlusIcon
size={remFromPx(size)}
weight={weight}
data-flx="ui.action-menu.context-menu-icons.send-friend-request-icon.user-plus-icon"
/>
));
export const AcceptFriendRequestIcon: React.FC<IconProps> = observer(({size = 16}) => (
<CheckCircleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.accept-friend-request-icon.check-circle-icon"
/>
));
export const RemoveFriendIcon: React.FC<IconProps> = observer(({size = 16, weight = 'fill'}) => (
<UserMinusIcon
size={remFromPx(size)}
weight={weight}
data-flx="ui.action-menu.context-menu-icons.remove-friend-icon.user-minus-icon"
/>
));
export const IgnoreFriendRequestIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold'}) => (
<XIcon
size={remFromPx(size)}
weight={weight}
data-flx="ui.action-menu.context-menu-icons.ignore-friend-request-icon.x-icon"
/>
));
export const CancelFriendRequestIcon: React.FC<IconProps> = observer(({size = 16, weight = 'fill'}) => (
<ClockCounterClockwiseIcon
size={remFromPx(size)}
weight={weight}
data-flx="ui.action-menu.context-menu-icons.cancel-friend-request-icon.clock-counter-clockwise-icon"
/>
));
export const BlockUserIcon: React.FC<IconProps> = observer(({size = 16, weight = 'fill'}) => (
<ProhibitIcon
size={remFromPx(size)}
weight={weight}
data-flx="ui.action-menu.context-menu-icons.block-user-icon.prohibit-icon"
/>
));
export const ReportUserIcon: React.FC<IconProps> = observer(({size = 16, weight = 'fill'}) => (
<FlagIcon
size={remFromPx(size)}
weight={weight}
data-flx="ui.action-menu.context-menu-icons.report-user-icon.flag-icon"
/>
));
export const AddNoteIcon: React.FC<IconProps> = observer(({size = 16}) => (
<NotePencilIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.add-note-icon.note-pencil-icon"
/>
));
export const DebugIcon: React.FC<IconProps> = observer(({size = 16}) => (
<BugBeetleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.debug-icon.bug-beetle-icon"
/>
));
export const WrenchToolIcon: React.FC<IconProps> = observer(({size = 16}) => (
<WrenchIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.wrench-tool-icon.wrench-icon"
/>
));
export const EditMessageIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PencilSimpleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.edit-message-icon.pencil-simple-icon"
/>
));
export const CopyMessageTextIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PhosphorCopyIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.copy-message-text-icon.phosphor-copy-icon"
/>
));
export const DebugMessageIcon: React.FC<IconProps> = observer(({size = 16}) => (
<BugIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.debug-message-icon.bug-icon"
/>
));
export const SpeakMessageIcon: React.FC<IconProps> = observer(({size = 16}) => (
<SpeakerHighIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.speak-message-icon.speaker-high-icon"
/>
));
export const StopSpeakingIcon: React.FC<IconProps> = observer(({size = 16}) => (
<StopCircleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.stop-speaking-icon.stop-circle-icon"
/>
));
export const MoreIcon: React.FC<IconProps> = observer(({size = 16}) => (
<DotsThreeIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.more-icon.dots-three-icon"
/>
));
export const ViewReactionsIcon: React.FC<IconProps> = observer(({size = 16}) => (
<SmileyIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.view-reactions-icon.smiley-icon"
/>
));
export const ReportMessageIcon: React.FC<IconProps> = observer(({size = 16}) => (
<FlagIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.report-message-icon.flag-icon"
/>
));
export const EditSimpleIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PencilSimpleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.edit-simple-icon.pencil-simple-icon"
/>
));
export const ExpandIcon: React.FC<IconProps> = observer(({size = 16}) => (
<CaretDownIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.expand-icon.caret-down-icon"
/>
));
export const CollapseIcon: React.FC<IconProps> = observer(({size = 16}) => (
<CaretUpIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.collapse-icon.caret-up-icon"
/>
));
export const TransferOwnershipIcon: React.FC<IconProps> = observer(({size = 16}) => (
<CrownIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.transfer-ownership-icon.crown-icon"
/>
));
export const RemoveFromGroupIcon: React.FC<IconProps> = observer(({size = 16}) => (
<UserMinusIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.remove-from-group-icon.user-minus-icon"
/>
));
export const CloseDMIcon: React.FC<IconProps> = observer(({size = 16}) => (
<XIcon size={remFromPx(size)} weight="bold" data-flx="ui.action-menu.context-menu-icons.close-dm-icon.x-icon" />
));
export const ChangeNicknameIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PencilSimpleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.change-nickname-icon.pencil-simple-icon"
/>
));
export const CreateIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PlusIcon size={remFromPx(size)} weight="bold" data-flx="ui.action-menu.context-menu-icons.create-icon.plus-icon" />
));
export const HideIcon: React.FC<IconProps> = observer(({size = 16}) => (
<EyeSlashIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.hide-icon.eye-slash-icon"
/>
));
export const MoveToIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowsOutCardinalIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.move-to-icon.arrows-out-cardinal-icon"
/>
));
export const ViewDetailsIcon: React.FC<IconProps> = observer(({size = 16}) => (
<EyeIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.view-details-icon.eye-icon"
/>
));
export const RevokeBanIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ProhibitIcon
size={remFromPx(size)}
weight="bold"
data-flx="ui.action-menu.context-menu-icons.revoke-ban-icon.prohibit-icon"
/>
));
export const RemoveFromFavoritesIcon: React.FC<IconProps> = observer(({size = 16}) => (
<StarIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.remove-from-favorites-icon.star-icon"
/>
));
export const OpenInCommunityIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowSquareOutIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.open-in-community-icon.arrow-square-out-icon"
/>
));
export const PopOutIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowSquareOutIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.pop-out-icon.arrow-square-out-icon"
/>
));
export const CheckIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<PhosphorCheckIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.check-icon.phosphor-check-icon"
/>
));
export const PreviousIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<ArrowLeftIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.previous-icon.arrow-left-icon"
/>
));
export const NextIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<ArrowRightIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.next-icon.arrow-right-icon"
/>
));
export const ExpandChevronIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<CaretDownIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.expand-chevron-icon.caret-down-icon"
/>
));
export const CollapseChevronIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<CaretUpIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.collapse-chevron-icon.caret-up-icon"
/>
));
export const ChevronRightIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<CaretRightIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.chevron-right-icon.caret-right-icon"
/>
));
export const LoadingIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<CircleNotchIcon
size={remFromPx(size)}
className={className}
data-flx="ui.action-menu.context-menu-icons.loading-icon.circle-notch-icon"
/>
));
export const FilterIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<FunnelIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.filter-icon.funnel-icon"
/>
));
export const SearchIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<MagnifyingGlassIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.search-icon.magnifying-glass-icon"
/>
));
export const TranslateIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<PhosphorTranslateIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.translate-icon.phosphor-translate-icon"
/>
));
export const SortIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<SortAscendingIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.sort-icon.sort-ascending-icon"
/>
));
export const UserFilterIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<UserIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.user-filter-icon.user-icon"
/>
));
export const CloseIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<XIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.close-icon.x-icon"
/>
));
export const CameraOnIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<CameraIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.camera-on-icon.camera-icon"
/>
));
export const CameraOffIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<CameraSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.camera-off-icon.camera-slash-icon"
/>
));
export const MicrophoneOnIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<MicrophoneIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.microphone-on-icon.microphone-icon"
/>
));
export const MicrophoneOffIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<MicrophoneSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.microphone-off-icon.microphone-slash-icon"
/>
));
export const DisconnectCallIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<PhoneXIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.disconnect-call-icon.phone-x-icon"
/>
));
export const DeafenIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<SpeakerSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.deafen-icon.speaker-slash-icon"
/>
));
export const UndeafenIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<SpeakerHighIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.undeafen-icon.speaker-high-icon"
/>
));
export const NewGroupIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<ChatCircleIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.new-group-icon.chat-circle-icon"
/>
));
export const OwnerCrownIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<CrownIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.owner-crown-icon.crown-icon"
/>
));
export const MoreOptionsVerticalIcon: React.FC<IconProps> = observer(({size = 16, weight = 'bold', className}) => (
<DotsThreeVerticalIcon
size={remFromPx(size)}
weight={weight}
className={className}
data-flx="ui.action-menu.context-menu-icons.more-options-vertical-icon.dots-three-vertical-icon"
/>
));
export const InvitesIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<TicketIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.invites-icon.ticket-icon"
/>
));
export const MembersIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<UsersIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.members-icon.users-icon"
/>
));
export const GridViewIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<GridFourIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.grid-view-icon.grid-four-icon"
/>
));
export const EchoCancellationIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<SpeakerSimpleSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.echo-cancellation-icon.speaker-simple-slash-icon"
/>
));
export const VideoSettingsIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<VideoIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.video-settings-icon.video-icon"
/>
));
export const InputDeviceIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<MicrophoneIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.input-device-icon.microphone-icon"
/>
));
export const OutputDeviceIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<SpeakerHighIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.output-device-icon.speaker-high-icon"
/>
));
export const MentionUserIcon: React.FC<IconProps> = observer(({size = 16}) => (
<AtIcon size={remFromPx(size)} weight="bold" data-flx="ui.action-menu.context-menu-icons.mention-user-icon.at-icon" />
));
export const ViewProfileIcon: React.FC<IconProps> = observer(({size = 16}) => (
<UserIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.view-profile-icon.user-icon"
/>
));
export const GroupInvitesIcon: React.FC<IconProps> = observer(({size = 16}) => (
<TicketIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.group-invites-icon.ticket-icon"
/>
));
export const EditGroupIcon: React.FC<IconProps> = observer(({size = 16}) => (
<NotePencilIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.edit-group-icon.note-pencil-icon"
/>
));
export const InviteToCommunityIcon: React.FC<IconProps> = observer(({size = 16}) => (
<UsersIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.invite-to-community-icon.users-icon"
/>
));
export const CollapseCategoryIcon: React.FC<IconProps & {collapsed?: boolean}> = observer(
({size = 16, collapsed = false}) => (
<CaretDownIcon
size={remFromPx(size)}
weight="bold"
style={{transform: collapsed ? 'rotate(-90deg)' : undefined}}
data-flx="ui.action-menu.context-menu-icons.collapse-category-icon.caret-down-icon"
/>
),
);
export const MessageUserIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ChatCircleIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.message-user-icon.chat-circle-icon"
/>
));
export const RingIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PhoneIcon size={remFromPx(size)} weight="fill" data-flx="ui.action-menu.context-menu-icons.ring-icon.phone-icon" />
));
export const StopRingingIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PhoneXIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.stop-ringing-icon.phone-x-icon"
/>
));
export const MoveToChannelIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ArrowsLeftRightIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.move-to-channel-icon.arrows-left-right-icon"
/>
));
export const KickMemberIcon: React.FC<IconProps> = observer(({size = 16}) => (
<BootIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.kick-member-icon.boot-icon"
/>
));
export const BanMemberIcon: React.FC<IconProps> = observer(({size = 16}) => (
<GavelIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.ban-member-icon.gavel-icon"
/>
));
export const ManageRolesIcon: React.FC<IconProps> = observer(({size = 16}) => (
<UserListIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.manage-roles-icon.user-list-icon"
/>
));
export const TimeoutIcon: React.FC<IconProps> = observer(({size = 16}) => (
<ClockIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.timeout-icon.clock-icon"
/>
));
export const TurnOffCameraIcon: React.FC<IconProps> = observer(({size = 16}) => (
<VideoCameraSlashIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.turn-off-camera-icon.video-camera-slash-icon"
/>
));
export const TurnOffStreamIcon: React.FC<IconProps> = observer(({size = 16}) => (
<MonitorPlayIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.turn-off-stream-icon.monitor-play-icon"
/>
));
export const ChangeStreamIcon: React.FC<IconProps> = observer(({size = 16}) => (
<MonitorArrowUpIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.change-stream-icon.monitor-arrow-up-icon"
/>
));
export const DisconnectIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PhoneXIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.disconnect-icon.phone-x-icon"
/>
));
export const SelfMuteIcon: React.FC<IconProps> = observer(({size = 16}) => (
<MicrophoneSlashIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.self-mute-icon.microphone-slash-icon"
/>
));
export const SelfDeafenIcon: React.FC<IconProps> = observer(({size = 16}) => (
<SpeakerSlashIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.self-deafen-icon.speaker-slash-icon"
/>
));
export const FocusIcon: React.FC<IconProps> = observer(({size = 16}) => (
<EyeIcon size={remFromPx(size)} weight="fill" data-flx="ui.action-menu.context-menu-icons.focus-icon.eye-icon" />
));
export const UnfocusIcon: React.FC<IconProps> = observer(({size = 16}) => (
<EyeSlashIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.unfocus-icon.eye-slash-icon"
/>
));
export const SendInvitesIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PaperPlaneIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.send-invites-icon.paper-plane-icon"
/>
));
export const SendInviteToCommunityIcon: React.FC<IconProps> = observer(({size = 16}) => (
<PaperPlaneRightIcon
size={remFromPx(size)}
weight="fill"
data-flx="ui.action-menu.context-menu-icons.send-invite-to-community-icon.paper-plane-right-icon"
/>
));
export const LocalMuteIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<SpeakerSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.local-mute-icon.speaker-slash-icon"
/>
));
export const LocalDisableVideoIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<VideoCameraSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.local-disable-video-icon.video-camera-slash-icon"
/>
));
export const GuildMuteIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<MicrophoneSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.guild-mute-icon.microphone-slash-icon"
/>
));
export const GuildDeafenIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<SpeakerSlashIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.guild-deafen-icon.speaker-slash-icon"
/>
));
export const BulkTurnOffCameraIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<VideoIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.bulk-turn-off-camera-icon.video-icon"
/>
));
export const DebugChannelIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<BugBeetleIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.debug-channel-icon.bug-beetle-icon"
/>
));
export const CopyMediaIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<CopySimpleIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.copy-media-icon.copy-simple-icon"
/>
));
export const DownloadMediaIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<DownloadSimpleIcon
size={remFromPx(size)}
weight="fill"
className={className}
data-flx="ui.action-menu.context-menu-icons.download-media-icon.download-simple-icon"
/>
));
export const OpenMediaLinkIcon: React.FC<IconProps> = observer(({size = 16, className}) => (
<ArrowSquareOutIcon
size={remFromPx(size)}
weight="regular"
className={className}
data-flx="ui.action-menu.context-menu-icons.open-media-link-icon.arrow-square-out-icon"
/>
));