stream-chat-react 14.11.1 → 14.12.0
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.
- package/dist/cjs/{NotificationList.6abbee1c.js → NotificationList.4ce251ea.js} +127 -34
- package/dist/cjs/NotificationList.4ce251ea.js.map +1 -0
- package/dist/cjs/{ReactPlayerWrapper.a94a0cd1.js → ReactPlayerWrapper.7cc7b0d8.js} +4 -4
- package/dist/cjs/{ReactPlayerWrapper.a94a0cd1.js.map → ReactPlayerWrapper.7cc7b0d8.js.map} +1 -1
- package/dist/cjs/channel-detail.js +2 -2
- package/dist/cjs/emojis.js +2 -2
- package/dist/cjs/index.js +232 -55
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{useChannelHeaderOnlineStatus.7e17671e.js → useChannelHeaderOnlineStatus.64c443f5.js} +2 -2
- package/dist/cjs/{useChannelHeaderOnlineStatus.7e17671e.js.map → useChannelHeaderOnlineStatus.64c443f5.js.map} +1 -1
- package/dist/cjs/{useInertWhenHidden.22151beb.js → useInertWhenHidden.1a2a6a2b.js} +200 -53
- package/dist/cjs/useInertWhenHidden.1a2a6a2b.js.map +1 -0
- package/dist/css/index.css +71 -12
- package/dist/css/index.css.map +1 -1
- package/dist/es/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/es/a11y/a11yUtils.mjs +42 -0
- package/dist/es/a11y/a11yUtils.mjs.map +1 -0
- package/dist/es/a11y/accessibleLabel.mjs +27 -0
- package/dist/es/a11y/accessibleLabel.mjs.map +1 -0
- package/dist/es/a11y/hooks/useAriaIdentifiers.mjs +25 -0
- package/dist/es/a11y/hooks/useAriaIdentifiers.mjs.map +1 -0
- package/dist/es/a11y/hooks/useListboxKeyboardNavigation.mjs +85 -0
- package/dist/es/a11y/hooks/useListboxKeyboardNavigation.mjs.map +1 -0
- package/dist/es/a11y/hooks/useResolvedModalAriaProps.mjs +32 -0
- package/dist/es/a11y/hooks/useResolvedModalAriaProps.mjs.map +1 -0
- package/dist/es/a11y/hooks/useVirtualizedListboxKeyboardNavigation.mjs +68 -0
- package/dist/es/a11y/hooks/useVirtualizedListboxKeyboardNavigation.mjs.map +1 -0
- package/dist/es/channel-detail.mjs +29 -3020
- package/dist/es/components/AIStateIndicator/AIStateIndicator.mjs +26 -0
- package/dist/es/components/AIStateIndicator/AIStateIndicator.mjs.map +1 -0
- package/dist/es/components/AIStateIndicator/hooks/useAIState.mjs +44 -0
- package/dist/es/components/AIStateIndicator/hooks/useAIState.mjs.map +1 -0
- package/dist/es/components/Accessibility/AriaLiveAnnouncerProvider.mjs +144 -0
- package/dist/es/components/Accessibility/AriaLiveAnnouncerProvider.mjs.map +1 -0
- package/dist/es/components/Accessibility/AriaLiveOutlet.mjs +58 -0
- package/dist/es/components/Accessibility/AriaLiveOutlet.mjs.map +1 -0
- package/dist/es/components/Accessibility/AriaLiveOutletContext.mjs +8 -0
- package/dist/es/components/Accessibility/AriaLiveOutletContext.mjs.map +1 -0
- package/dist/es/components/Accessibility/NotificationAnnouncer.mjs +87 -0
- package/dist/es/components/Accessibility/NotificationAnnouncer.mjs.map +1 -0
- package/dist/es/components/Accessibility/hooks/useAudioPlaybackChangeAnnouncements.mjs +20 -0
- package/dist/es/components/Accessibility/hooks/useAudioPlaybackChangeAnnouncements.mjs.map +1 -0
- package/dist/es/components/Accessibility/hooks/useFocusReturn.mjs +37 -0
- package/dist/es/components/Accessibility/hooks/useFocusReturn.mjs.map +1 -0
- package/dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs +84 -0
- package/dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs.map +1 -0
- package/dist/es/components/Accessibility/hooks/useInertWhenHidden.mjs +85 -0
- package/dist/es/components/Accessibility/hooks/useInertWhenHidden.mjs.map +1 -0
- package/dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs +155 -0
- package/dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs.map +1 -0
- package/dist/es/components/Accessibility/scheduling/useAnnouncementQueue.mjs +43 -0
- package/dist/es/components/Accessibility/scheduling/useAnnouncementQueue.mjs.map +1 -0
- package/dist/es/components/Accessibility/scheduling/useDebouncedAnnounce.mjs +78 -0
- package/dist/es/components/Accessibility/scheduling/useDebouncedAnnounce.mjs.map +1 -0
- package/dist/es/components/Accessibility/scheduling/useSettledAnnouncement.mjs +90 -0
- package/dist/es/components/Accessibility/scheduling/useSettledAnnouncement.mjs.map +1 -0
- package/dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs +16 -0
- package/dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs.map +1 -0
- package/dist/es/components/Attachment/Attachment.mjs +74 -0
- package/dist/es/components/Attachment/Attachment.mjs.map +1 -0
- package/dist/es/components/Attachment/AttachmentActions.mjs +109 -0
- package/dist/es/components/Attachment/AttachmentActions.mjs.map +1 -0
- package/dist/es/components/Attachment/AttachmentContainer.mjs +265 -0
- package/dist/es/components/Attachment/AttachmentContainer.mjs.map +1 -0
- package/dist/es/components/Attachment/Audio.mjs +104 -0
- package/dist/es/components/Attachment/Audio.mjs.map +1 -0
- package/dist/es/components/Attachment/FileAttachment.mjs +47 -0
- package/dist/es/components/Attachment/FileAttachment.mjs.map +1 -0
- package/dist/es/components/Attachment/Geolocation.mjs +77 -0
- package/dist/es/components/Attachment/Geolocation.mjs.map +1 -0
- package/dist/es/components/Attachment/Giphy.mjs +62 -0
- package/dist/es/components/Attachment/Giphy.mjs.map +1 -0
- package/dist/es/components/Attachment/Image.mjs +19 -0
- package/dist/es/components/Attachment/Image.mjs.map +1 -0
- package/dist/es/components/Attachment/LinkPreview/Card.mjs +93 -0
- package/dist/es/components/Attachment/LinkPreview/Card.mjs.map +1 -0
- package/dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs +22 -0
- package/dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs.map +1 -0
- package/dist/es/components/Attachment/ModalGallery.mjs +166 -0
- package/dist/es/components/Attachment/ModalGallery.mjs.map +1 -0
- package/dist/es/components/Attachment/UnsupportedAttachment.mjs +25 -0
- package/dist/es/components/Attachment/UnsupportedAttachment.mjs.map +1 -0
- package/dist/es/components/Attachment/VideoAttachment.mjs +56 -0
- package/dist/es/components/Attachment/VideoAttachment.mjs.map +1 -0
- package/dist/es/components/Attachment/VisibilityDisclaimer.mjs +17 -0
- package/dist/es/components/Attachment/VisibilityDisclaimer.mjs.map +1 -0
- package/dist/es/components/Attachment/VoiceRecording.mjs +134 -0
- package/dist/es/components/Attachment/VoiceRecording.mjs.map +1 -0
- package/dist/es/components/Attachment/attachment-sizing.mjs +73 -0
- package/dist/es/components/Attachment/attachment-sizing.mjs.map +1 -0
- package/dist/es/components/Attachment/audioSampling.mjs +74 -0
- package/dist/es/components/Attachment/audioSampling.mjs.map +1 -0
- package/dist/es/components/Attachment/components/AttachmentUploadProgressIndicator.mjs +38 -0
- package/dist/es/components/Attachment/components/AttachmentUploadProgressIndicator.mjs.map +1 -0
- package/dist/es/components/Attachment/components/DownloadButton.mjs +35 -0
- package/dist/es/components/Attachment/components/DownloadButton.mjs.map +1 -0
- package/dist/es/components/Attachment/components/FileSizeIndicator.mjs +17 -0
- package/dist/es/components/Attachment/components/FileSizeIndicator.mjs.map +1 -0
- package/dist/es/components/Attachment/giphyAccessibility.mjs +15 -0
- package/dist/es/components/Attachment/giphyAccessibility.mjs.map +1 -0
- package/dist/es/components/Attachment/hooks/useAttachmentUploadState.mjs +106 -0
- package/dist/es/components/Attachment/hooks/useAttachmentUploadState.mjs.map +1 -0
- package/dist/es/components/Attachment/hooks/useLocalVideoDimensions.mjs +79 -0
- package/dist/es/components/Attachment/hooks/useLocalVideoDimensions.mjs.map +1 -0
- package/dist/es/components/Attachment/icons.mjs +13 -0
- package/dist/es/components/Attachment/icons.mjs.map +1 -0
- package/dist/es/components/Attachment/utils.mjs +41 -0
- package/dist/es/components/Attachment/utils.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/AudioPlayer.mjs +457 -0
- package/dist/es/components/AudioPlayback/AudioPlayer.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/AudioPlayerPool.mjs +109 -0
- package/dist/es/components/AudioPlayback/AudioPlayerPool.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/WithAudioPlayback.mjs +72 -0
- package/dist/es/components/AudioPlayback/WithAudioPlayback.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/DurationDisplay.mjs +33 -0
- package/dist/es/components/AudioPlayback/components/DurationDisplay.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/PlaybackRateButton.mjs +15 -0
- package/dist/es/components/AudioPlayback/components/PlaybackRateButton.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/ProgressBar.mjs +56 -0
- package/dist/es/components/AudioPlayback/components/ProgressBar.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/WaveProgressBar.mjs +107 -0
- package/dist/es/components/AudioPlayback/components/WaveProgressBar.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/formatTime.mjs +14 -0
- package/dist/es/components/AudioPlayback/components/formatTime.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/keyboardSeek.mjs +36 -0
- package/dist/es/components/AudioPlayback/components/keyboardSeek.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/progressBarA11y.mjs +19 -0
- package/dist/es/components/AudioPlayback/components/progressBarA11y.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/components/useInteractiveProgressBar.mjs +77 -0
- package/dist/es/components/AudioPlayback/components/useInteractiveProgressBar.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs +33 -0
- package/dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs.map +1 -0
- package/dist/es/components/Avatar/Avatar.mjs +62 -0
- package/dist/es/components/Avatar/Avatar.mjs.map +1 -0
- package/dist/es/components/Avatar/AvatarStack.mjs +32 -0
- package/dist/es/components/Avatar/AvatarStack.mjs.map +1 -0
- package/dist/es/components/Avatar/ChannelAvatar.mjs +25 -0
- package/dist/es/components/Avatar/ChannelAvatar.mjs.map +1 -0
- package/dist/es/components/Avatar/GroupAvatar.mjs +53 -0
- package/dist/es/components/Avatar/GroupAvatar.mjs.map +1 -0
- package/dist/es/components/Avatar/utils.mjs +10 -0
- package/dist/es/components/Avatar/utils.mjs.map +1 -0
- package/dist/es/components/Badge/Badge.mjs +28 -0
- package/dist/es/components/Badge/Badge.mjs.map +1 -0
- package/dist/es/components/Badge/MediaBadge.mjs +20 -0
- package/dist/es/components/Badge/MediaBadge.mjs.map +1 -0
- package/dist/es/components/BaseImage/BaseImage.mjs +35 -0
- package/dist/es/components/BaseImage/BaseImage.mjs.map +1 -0
- package/dist/es/components/BaseImage/ImagePlaceholder.mjs +21 -0
- package/dist/es/components/BaseImage/ImagePlaceholder.mjs.map +1 -0
- package/dist/es/components/BaseImage/toBaseImageDescriptors.mjs +57 -0
- package/dist/es/components/BaseImage/toBaseImageDescriptors.mjs.map +1 -0
- package/dist/es/components/Button/Button.mjs +36 -0
- package/dist/es/components/Button/Button.mjs.map +1 -0
- package/dist/es/components/Button/PlayButton.mjs +26 -0
- package/dist/es/components/Button/PlayButton.mjs.map +1 -0
- package/dist/es/components/Channel/Channel.mjs +752 -0
- package/dist/es/components/Channel/Channel.mjs.map +1 -0
- package/dist/es/components/Channel/channelState.mjs +195 -0
- package/dist/es/components/Channel/channelState.mjs.map +1 -0
- package/dist/es/components/Channel/constants.mjs +6 -0
- package/dist/es/components/Channel/constants.mjs.map +1 -0
- package/dist/es/components/Channel/hooks/useChannelContainerClasses.mjs +20 -0
- package/dist/es/components/Channel/hooks/useChannelContainerClasses.mjs.map +1 -0
- package/dist/es/components/Channel/hooks/useCreateChannelStateContext.mjs +86 -0
- package/dist/es/components/Channel/hooks/useCreateChannelStateContext.mjs.map +1 -0
- package/dist/es/components/Channel/hooks/useCreateTypingContext.mjs +10 -0
- package/dist/es/components/Channel/hooks/useCreateTypingContext.mjs.map +1 -0
- package/dist/es/components/Channel/hooks/useEditMessageHandler.mjs +13 -0
- package/dist/es/components/Channel/hooks/useEditMessageHandler.mjs.map +1 -0
- package/dist/es/components/Channel/hooks/useIsMounted.mjs +16 -0
- package/dist/es/components/Channel/hooks/useIsMounted.mjs.map +1 -0
- package/dist/es/components/Channel/hooks/useMentionsHandlers.mjs +18 -0
- package/dist/es/components/Channel/hooks/useMentionsHandlers.mjs.map +1 -0
- package/dist/es/components/Channel/utils.mjs +156 -0
- package/dist/es/components/Channel/utils.mjs.map +1 -0
- package/dist/es/components/ChannelHeader/ChannelHeader.mjs +70 -0
- package/dist/es/components/ChannelHeader/ChannelHeader.mjs.map +1 -0
- package/dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs +51 -0
- package/dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs.map +1 -0
- package/dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs +33 -0
- package/dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs.map +1 -0
- package/dist/es/components/ChannelList/ChannelList.mjs +143 -0
- package/dist/es/components/ChannelList/ChannelList.mjs.map +1 -0
- package/dist/es/components/ChannelList/ChannelListHeader.mjs +22 -0
- package/dist/es/components/ChannelList/ChannelListHeader.mjs.map +1 -0
- package/dist/es/components/ChannelList/ChannelListUI.mjs +35 -0
- package/dist/es/components/ChannelList/ChannelListUI.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useChannelListKeyboardNavigation.mjs +82 -0
- package/dist/es/components/ChannelList/hooks/useChannelListKeyboardNavigation.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useChannelListShape.mjs +310 -0
- package/dist/es/components/ChannelList/hooks/useChannelListShape.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useChannelMembersState.mjs +23 -0
- package/dist/es/components/ChannelList/hooks/useChannelMembersState.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs +15 -0
- package/dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useConnectionRecoveredListener.mjs +19 -0
- package/dist/es/components/ChannelList/hooks/useConnectionRecoveredListener.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/usePaginatedChannels.mjs +110 -0
- package/dist/es/components/ChannelList/hooks/usePaginatedChannels.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useSelectedChannelState.mjs +24 -0
- package/dist/es/components/ChannelList/hooks/useSelectedChannelState.mjs.map +1 -0
- package/dist/es/components/ChannelList/utils.mjs +86 -0
- package/dist/es/components/ChannelList/utils.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/ChannelListItem.mjs +116 -0
- package/dist/es/components/ChannelListItem/ChannelListItem.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.defaults.mjs +432 -0
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.defaults.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs +67 -0
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs +30 -0
- package/dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/ChannelListItemUI.mjs +118 -0
- package/dist/es/components/ChannelListItem/ChannelListItemUI.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs +56 -0
- package/dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/hooks/useChannelPreviewInfo.mjs +51 -0
- package/dist/es/components/ChannelListItem/hooks/useChannelPreviewInfo.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs +33 -0
- package/dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs +11 -0
- package/dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs +68 -0
- package/dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/utils.a11y.mjs +121 -0
- package/dist/es/components/ChannelListItem/utils.a11y.mjs.map +1 -0
- package/dist/es/components/ChannelListItem/utils.mjs +195 -0
- package/dist/es/components/ChannelListItem/utils.mjs.map +1 -0
- package/dist/es/components/Chat/Chat.mjs +88 -0
- package/dist/es/components/Chat/Chat.mjs.map +1 -0
- package/dist/es/components/Chat/hooks/useChannelsQueryState.mjs +16 -0
- package/dist/es/components/Chat/hooks/useChannelsQueryState.mjs.map +1 -0
- package/dist/es/components/Chat/hooks/useChat.mjs +86 -0
- package/dist/es/components/Chat/hooks/useChat.mjs.map +1 -0
- package/dist/es/components/Chat/hooks/useCreateChatClient.mjs +36 -0
- package/dist/es/components/Chat/hooks/useCreateChatClient.mjs.map +1 -0
- package/dist/es/components/Chat/hooks/useCreateChatContext.mjs +38 -0
- package/dist/es/components/Chat/hooks/useCreateChatContext.mjs.map +1 -0
- package/dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs +51 -0
- package/dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs.map +1 -0
- package/dist/es/components/Chat/hooks/useSplitActionSet.mjs +21 -0
- package/dist/es/components/Chat/hooks/useSplitActionSet.mjs.map +1 -0
- package/dist/es/components/ChatView/ChatView.a11y.utility.mjs +13 -0
- package/dist/es/components/ChatView/ChatView.a11y.utility.mjs.map +1 -0
- package/dist/es/components/ChatView/ChatView.mjs +224 -0
- package/dist/es/components/ChatView/ChatView.mjs.map +1 -0
- package/dist/es/components/DateSeparator/DateSeparator.mjs +36 -0
- package/dist/es/components/DateSeparator/DateSeparator.mjs.map +1 -0
- package/dist/es/components/Dialog/components/Alert.mjs +53 -0
- package/dist/es/components/Dialog/components/Alert.mjs.map +1 -0
- package/dist/es/components/Dialog/components/Callout.mjs +57 -0
- package/dist/es/components/Dialog/components/Callout.mjs.map +1 -0
- package/dist/es/components/Dialog/components/ContextMenu.mjs +550 -0
- package/dist/es/components/Dialog/components/ContextMenu.mjs.map +1 -0
- package/dist/es/components/Dialog/components/Prompt.mjs +112 -0
- package/dist/es/components/Dialog/components/Prompt.mjs.map +1 -0
- package/dist/es/components/Dialog/components/Viewer.mjs +100 -0
- package/dist/es/components/Dialog/components/Viewer.mjs.map +1 -0
- package/dist/es/components/Dialog/hooks/useDialog.mjs +53 -0
- package/dist/es/components/Dialog/hooks/useDialog.mjs.map +1 -0
- package/dist/es/components/Dialog/hooks/usePopoverPosition.mjs +49 -0
- package/dist/es/components/Dialog/hooks/usePopoverPosition.mjs.map +1 -0
- package/dist/es/components/Dialog/service/DialogAnchor.mjs +175 -0
- package/dist/es/components/Dialog/service/DialogAnchor.mjs.map +1 -0
- package/dist/es/components/Dialog/service/DialogManager.mjs +169 -0
- package/dist/es/components/Dialog/service/DialogManager.mjs.map +1 -0
- package/dist/es/components/Dialog/service/DialogPortal.mjs +63 -0
- package/dist/es/components/Dialog/service/DialogPortal.mjs.map +1 -0
- package/dist/es/components/DragAndDrop/DragAndDropContainer.mjs +90 -0
- package/dist/es/components/DragAndDrop/DragAndDropContainer.mjs.map +1 -0
- package/dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs +38 -0
- package/dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs.map +1 -0
- package/dist/es/components/EventComponent/EventComponent.mjs +27 -0
- package/dist/es/components/EventComponent/EventComponent.mjs.map +1 -0
- package/dist/es/components/FileIcon/FileIcon.mjs +43 -0
- package/dist/es/components/FileIcon/FileIcon.mjs.map +1 -0
- package/dist/es/components/FileIcon/FileIconSet.mjs +407 -0
- package/dist/es/components/FileIcon/FileIconSet.mjs.map +1 -0
- package/dist/es/components/FileIcon/iconMap.mjs +41 -0
- package/dist/es/components/FileIcon/iconMap.mjs.map +1 -0
- package/dist/es/components/FileIcon/mimeTypes.mjs +242 -0
- package/dist/es/components/FileIcon/mimeTypes.mjs.map +1 -0
- package/dist/es/components/Form/Checkbox.mjs +15 -0
- package/dist/es/components/Form/Checkbox.mjs.map +1 -0
- package/dist/es/components/Form/Dropdown.mjs +132 -0
- package/dist/es/components/Form/Dropdown.mjs.map +1 -0
- package/dist/es/components/Form/FieldError.mjs +13 -0
- package/dist/es/components/Form/FieldError.mjs.map +1 -0
- package/dist/es/components/Form/NumericInput.mjs +125 -0
- package/dist/es/components/Form/NumericInput.mjs.map +1 -0
- package/dist/es/components/Form/SwitchField.mjs +103 -0
- package/dist/es/components/Form/SwitchField.mjs.map +1 -0
- package/dist/es/components/Form/TextInput.mjs +113 -0
- package/dist/es/components/Form/TextInput.mjs.map +1 -0
- package/dist/es/components/Form/TextInputFieldSet.mjs +21 -0
- package/dist/es/components/Form/TextInputFieldSet.mjs.map +1 -0
- package/dist/es/components/Form/hooks/useFormState.mjs +54 -0
- package/dist/es/components/Form/hooks/useFormState.mjs.map +1 -0
- package/dist/es/components/Gallery/Gallery.mjs +60 -0
- package/dist/es/components/Gallery/Gallery.mjs.map +1 -0
- package/dist/es/components/Gallery/GalleryContext.mjs +21 -0
- package/dist/es/components/Gallery/GalleryContext.mjs.map +1 -0
- package/dist/es/components/Gallery/GalleryHeader.mjs +65 -0
- package/dist/es/components/Gallery/GalleryHeader.mjs.map +1 -0
- package/dist/es/components/Gallery/GalleryUI.mjs +206 -0
- package/dist/es/components/Gallery/GalleryUI.mjs.map +1 -0
- package/dist/es/components/Icons/BaseIcon.mjs +20 -0
- package/dist/es/components/Icons/BaseIcon.mjs.map +1 -0
- package/dist/es/components/Icons/createIcon.mjs +23 -0
- package/dist/es/components/Icons/createIcon.mjs.map +1 -0
- package/dist/es/components/Icons/icons.mjs +802 -0
- package/dist/es/components/Icons/icons.mjs.map +1 -0
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScroll.mjs +81 -0
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScroll.mjs.map +1 -0
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs +73 -0
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs.map +1 -0
- package/dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs +47 -0
- package/dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs.map +1 -0
- package/dist/es/components/ListItemLayout/ListItemLayout.mjs +62 -0
- package/dist/es/components/ListItemLayout/ListItemLayout.mjs.map +1 -0
- package/dist/es/components/LoadMore/LoadMoreButton.mjs +28 -0
- package/dist/es/components/LoadMore/LoadMoreButton.mjs.map +1 -0
- package/dist/es/components/LoadMore/LoadMorePaginator.mjs +20 -0
- package/dist/es/components/LoadMore/LoadMorePaginator.mjs.map +1 -0
- package/dist/es/components/Loading/AttachmentUploadedSizeIndicator.mjs +33 -0
- package/dist/es/components/Loading/AttachmentUploadedSizeIndicator.mjs.map +1 -0
- package/dist/es/components/Loading/LoadingChannel.mjs +59 -0
- package/dist/es/components/Loading/LoadingChannel.mjs.map +1 -0
- package/dist/es/components/Loading/LoadingChannels.mjs +28 -0
- package/dist/es/components/Loading/LoadingChannels.mjs.map +1 -0
- package/dist/es/components/Loading/LoadingErrorIndicator.mjs +17 -0
- package/dist/es/components/Loading/LoadingErrorIndicator.mjs.map +1 -0
- package/dist/es/components/Loading/LoadingIndicator.mjs +15 -0
- package/dist/es/components/Loading/LoadingIndicator.mjs.map +1 -0
- package/dist/es/components/Loading/UploadProgressIndicator.mjs +15 -0
- package/dist/es/components/Loading/UploadProgressIndicator.mjs.map +1 -0
- package/dist/es/components/Loading/UploadedSizeIndicator.mjs +22 -0
- package/dist/es/components/Loading/UploadedSizeIndicator.mjs.map +1 -0
- package/dist/es/components/Loading/progress-indicators.mjs +50 -0
- package/dist/es/components/Loading/progress-indicators.mjs.map +1 -0
- package/dist/es/components/Location/ShareLocationDialog.mjs +206 -0
- package/dist/es/components/Location/ShareLocationDialog.mjs.map +1 -0
- package/dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs +57 -0
- package/dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs +32 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs +77 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs +58 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs +71 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs +65 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/RecordingTimer.mjs +13 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/RecordingTimer.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.mjs +40 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/recordingStateIdentity.mjs +8 -0
- package/dist/es/components/MediaRecorder/AudioRecorder/recordingStateIdentity.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs +31 -0
- package/dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs +75 -0
- package/dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/classes/BrowserPermission.mjs +62 -0
- package/dist/es/components/MediaRecorder/classes/BrowserPermission.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs +237 -0
- package/dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs +79 -0
- package/dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs +27 -0
- package/dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/observable/Observable.mjs +23 -0
- package/dist/es/components/MediaRecorder/observable/Observable.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/observable/Observer.mjs +8 -0
- package/dist/es/components/MediaRecorder/observable/Observer.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/observable/Subject.mjs +54 -0
- package/dist/es/components/MediaRecorder/observable/Subject.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/observable/Subscription.mjs +15 -0
- package/dist/es/components/MediaRecorder/observable/Subscription.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/transcode/audioProcessing.mjs +34 -0
- package/dist/es/components/MediaRecorder/transcode/audioProcessing.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/transcode/index.mjs +12 -0
- package/dist/es/components/MediaRecorder/transcode/index.mjs.map +1 -0
- package/dist/es/components/MediaRecorder/transcode/wav.mjs +99 -0
- package/dist/es/components/MediaRecorder/transcode/wav.mjs.map +1 -0
- package/dist/es/components/Message/Message.mjs +154 -0
- package/dist/es/components/Message/Message.mjs.map +1 -0
- package/dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs +79 -0
- package/dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs.map +1 -0
- package/dist/es/components/Message/MessageBlocked.mjs +27 -0
- package/dist/es/components/Message/MessageBlocked.mjs.map +1 -0
- package/dist/es/components/Message/MessageBubble.mjs +12 -0
- package/dist/es/components/Message/MessageBubble.mjs.map +1 -0
- package/dist/es/components/Message/MessageDeletedBubble.mjs +21 -0
- package/dist/es/components/Message/MessageDeletedBubble.mjs.map +1 -0
- package/dist/es/components/Message/MessageEditedIndicator.mjs +41 -0
- package/dist/es/components/Message/MessageEditedIndicator.mjs.map +1 -0
- package/dist/es/components/Message/MessageRepliesCountButton.mjs +37 -0
- package/dist/es/components/Message/MessageRepliesCountButton.mjs.map +1 -0
- package/dist/es/components/Message/MessageStatus.mjs +85 -0
- package/dist/es/components/Message/MessageStatus.mjs.map +1 -0
- package/dist/es/components/Message/MessageText.mjs +101 -0
- package/dist/es/components/Message/MessageText.mjs.map +1 -0
- package/dist/es/components/Message/MessageTimestamp.mjs +20 -0
- package/dist/es/components/Message/MessageTimestamp.mjs.map +1 -0
- package/dist/es/components/Message/MessageTranslationIndicator.mjs +53 -0
- package/dist/es/components/Message/MessageTranslationIndicator.mjs.map +1 -0
- package/dist/es/components/Message/MessageUI.mjs +185 -0
- package/dist/es/components/Message/MessageUI.mjs.map +1 -0
- package/dist/es/components/Message/PinIndicator.mjs +34 -0
- package/dist/es/components/Message/PinIndicator.mjs.map +1 -0
- package/dist/es/components/Message/QuotedMessage.mjs +26 -0
- package/dist/es/components/Message/QuotedMessage.mjs.map +1 -0
- package/dist/es/components/Message/ReminderNotification.mjs +57 -0
- package/dist/es/components/Message/ReminderNotification.mjs.map +1 -0
- package/dist/es/components/Message/StreamedMessageText.mjs +35 -0
- package/dist/es/components/Message/StreamedMessageText.mjs.map +1 -0
- package/dist/es/components/Message/Timestamp.mjs +41 -0
- package/dist/es/components/Message/Timestamp.mjs.map +1 -0
- package/dist/es/components/Message/emojiRegex.mjs +20 -0
- package/dist/es/components/Message/emojiRegex.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useActionHandler.mjs +30 -0
- package/dist/es/components/Message/hooks/useActionHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useDeleteHandler.mjs +21 -0
- package/dist/es/components/Message/hooks/useDeleteHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useFlagHandler.mjs +20 -0
- package/dist/es/components/Message/hooks/useFlagHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useMarkUnreadHandler.mjs +17 -0
- package/dist/es/components/Message/hooks/useMarkUnreadHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useMentionsHandler.mjs +22 -0
- package/dist/es/components/Message/hooks/useMentionsHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useMessageReminder.mjs +14 -0
- package/dist/es/components/Message/hooks/useMessageReminder.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useMessageTextStreaming.mjs +48 -0
- package/dist/es/components/Message/hooks/useMessageTextStreaming.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useMuteHandler.mjs +24 -0
- package/dist/es/components/Message/hooks/useMuteHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useOpenThreadHandler.mjs +17 -0
- package/dist/es/components/Message/hooks/useOpenThreadHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/usePinHandler.mjs +45 -0
- package/dist/es/components/Message/hooks/usePinHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useReactionHandler.mjs +90 -0
- package/dist/es/components/Message/hooks/useReactionHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useReactionsFetcher.mjs +28 -0
- package/dist/es/components/Message/hooks/useReactionsFetcher.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useRetryHandler.mjs +13 -0
- package/dist/es/components/Message/hooks/useRetryHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useUserHandler.mjs +15 -0
- package/dist/es/components/Message/hooks/useUserHandler.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useUserRole.mjs +47 -0
- package/dist/es/components/Message/hooks/useUserRole.mjs.map +1 -0
- package/dist/es/components/Message/renderText/componentRenderers/Anchor.mjs +20 -0
- package/dist/es/components/Message/renderText/componentRenderers/Anchor.mjs.map +1 -0
- package/dist/es/components/Message/renderText/componentRenderers/Emoji.mjs +12 -0
- package/dist/es/components/Message/renderText/componentRenderers/Emoji.mjs.map +1 -0
- package/dist/es/components/Message/renderText/componentRenderers/Mention.mjs +14 -0
- package/dist/es/components/Message/renderText/componentRenderers/Mention.mjs.map +1 -0
- package/dist/es/components/Message/renderText/regex.mjs +22 -0
- package/dist/es/components/Message/renderText/regex.mjs.map +1 -0
- package/dist/es/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.mjs +16 -0
- package/dist/es/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.mjs.map +1 -0
- package/dist/es/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.mjs +111 -0
- package/dist/es/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.mjs.map +1 -0
- package/dist/es/components/Message/renderText/remarkPlugins/htmlToTextPlugin.mjs +14 -0
- package/dist/es/components/Message/renderText/remarkPlugins/htmlToTextPlugin.mjs.map +1 -0
- package/dist/es/components/Message/renderText/remarkPlugins/imageToLink.mjs +33 -0
- package/dist/es/components/Message/renderText/remarkPlugins/imageToLink.mjs.map +1 -0
- package/dist/es/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.mjs +44 -0
- package/dist/es/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.mjs.map +1 -0
- package/dist/es/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.mjs +68 -0
- package/dist/es/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.mjs.map +1 -0
- package/dist/es/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.mjs +19 -0
- package/dist/es/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.mjs.map +1 -0
- package/dist/es/components/Message/renderText/renderText.mjs +131 -0
- package/dist/es/components/Message/renderText/renderText.mjs.map +1 -0
- package/dist/es/components/Message/utils.mjs +151 -0
- package/dist/es/components/Message/utils.mjs.map +1 -0
- package/dist/es/components/MessageActions/DeleteMessageAlert.mjs +43 -0
- package/dist/es/components/MessageActions/DeleteMessageAlert.mjs.map +1 -0
- package/dist/es/components/MessageActions/DownloadSubmenu.mjs +52 -0
- package/dist/es/components/MessageActions/DownloadSubmenu.mjs.map +1 -0
- package/dist/es/components/MessageActions/MessageActions.defaults.mjs +644 -0
- package/dist/es/components/MessageActions/MessageActions.defaults.mjs.map +1 -0
- package/dist/es/components/MessageActions/MessageActions.mjs +61 -0
- package/dist/es/components/MessageActions/MessageActions.mjs.map +1 -0
- package/dist/es/components/MessageActions/QuickMessageActionButton.mjs +20 -0
- package/dist/es/components/MessageActions/QuickMessageActionButton.mjs.map +1 -0
- package/dist/es/components/MessageActions/RemindMeSubmenu.mjs +71 -0
- package/dist/es/components/MessageActions/RemindMeSubmenu.mjs.map +1 -0
- package/dist/es/components/MessageActions/downloadUtils.mjs +65 -0
- package/dist/es/components/MessageActions/downloadUtils.mjs.map +1 -0
- package/dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs +64 -0
- package/dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs.map +1 -0
- package/dist/es/components/MessageBounce/MessageBounceModal.mjs +18 -0
- package/dist/es/components/MessageBounce/MessageBounceModal.mjs.map +1 -0
- package/dist/es/components/MessageBounce/MessageBouncePrompt.mjs +67 -0
- package/dist/es/components/MessageBounce/MessageBouncePrompt.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs +91 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs +131 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs +82 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs +53 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs +97 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs +36 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs +29 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs +53 -0
- package/dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs +308 -0
- package/dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs.map +1 -0
- package/dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs +104 -0
- package/dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs.map +1 -0
- package/dist/es/components/MessageComposer/CommandChip.mjs +37 -0
- package/dist/es/components/MessageComposer/CommandChip.mjs.map +1 -0
- package/dist/es/components/MessageComposer/CooldownTimer.mjs +15 -0
- package/dist/es/components/MessageComposer/CooldownTimer.mjs.map +1 -0
- package/dist/es/components/MessageComposer/EditedMessagePreview.mjs +17 -0
- package/dist/es/components/MessageComposer/EditedMessagePreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/LinkPreviewList.mjs +78 -0
- package/dist/es/components/MessageComposer/LinkPreviewList.mjs.map +1 -0
- package/dist/es/components/MessageComposer/MessageComposer.mjs +66 -0
- package/dist/es/components/MessageComposer/MessageComposer.mjs.map +1 -0
- package/dist/es/components/MessageComposer/MessageComposerActions.mjs +71 -0
- package/dist/es/components/MessageComposer/MessageComposerActions.mjs.map +1 -0
- package/dist/es/components/MessageComposer/MessageComposerUI.mjs +100 -0
- package/dist/es/components/MessageComposer/MessageComposerUI.mjs.map +1 -0
- package/dist/es/components/MessageComposer/QuotedMessageIndicator.mjs +9 -0
- package/dist/es/components/MessageComposer/QuotedMessageIndicator.mjs.map +1 -0
- package/dist/es/components/MessageComposer/QuotedMessagePreview.mjs +325 -0
- package/dist/es/components/MessageComposer/QuotedMessagePreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs +25 -0
- package/dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs.map +1 -0
- package/dist/es/components/MessageComposer/SendButton.mjs +29 -0
- package/dist/es/components/MessageComposer/SendButton.mjs.map +1 -0
- package/dist/es/components/MessageComposer/SendToChannelCheckbox.mjs +51 -0
- package/dist/es/components/MessageComposer/SendToChannelCheckbox.mjs.map +1 -0
- package/dist/es/components/MessageComposer/StopAIGenerationButton.mjs +18 -0
- package/dist/es/components/MessageComposer/StopAIGenerationButton.mjs.map +1 -0
- package/dist/es/components/MessageComposer/WithDragAndDropUpload.mjs +109 -0
- package/dist/es/components/MessageComposer/WithDragAndDropUpload.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs +24 -0
- package/dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useAttachmentsForPreview.mjs +21 -0
- package/dist/es/components/MessageComposer/hooks/useAttachmentsForPreview.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useCanCreatePoll.mjs +15 -0
- package/dist/es/components/MessageComposer/hooks/useCanCreatePoll.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs +19 -0
- package/dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs +35 -0
- package/dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs +12 -0
- package/dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs +27 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs +27 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs +56 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs +13 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useMessageContentIsEmpty.mjs +13 -0
- package/dist/es/components/MessageComposer/hooks/useMessageContentIsEmpty.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/usePasteHandler.mjs +34 -0
- package/dist/es/components/MessageComposer/hooks/usePasteHandler.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useSubmitHandler.mjs +98 -0
- package/dist/es/components/MessageComposer/hooks/useSubmitHandler.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/useTextareaRef.mjs +14 -0
- package/dist/es/components/MessageComposer/hooks/useTextareaRef.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/utils.mjs +16 -0
- package/dist/es/components/MessageComposer/hooks/utils.mjs.map +1 -0
- package/dist/es/components/MessageComposer/icons.mjs +62 -0
- package/dist/es/components/MessageComposer/icons.mjs.map +1 -0
- package/dist/es/components/MessageComposer/preEditSnapshot.mjs +45 -0
- package/dist/es/components/MessageComposer/preEditSnapshot.mjs.map +1 -0
- package/dist/es/components/MessageList/FloatingDateSeparator.mjs +46 -0
- package/dist/es/components/MessageList/FloatingDateSeparator.mjs.map +1 -0
- package/dist/es/components/MessageList/GiphyPreviewMessage.mjs +15 -0
- package/dist/es/components/MessageList/GiphyPreviewMessage.mjs.map +1 -0
- package/dist/es/components/MessageList/MessageList.mjs +329 -0
- package/dist/es/components/MessageList/MessageList.mjs.map +1 -0
- package/dist/es/components/MessageList/MessageListMainPanel.mjs +12 -0
- package/dist/es/components/MessageList/MessageListMainPanel.mjs.map +1 -0
- package/dist/es/components/MessageList/NewMessageNotification.mjs +32 -0
- package/dist/es/components/MessageList/NewMessageNotification.mjs.map +1 -0
- package/dist/es/components/MessageList/ScrollToLatestMessageButton.mjs +78 -0
- package/dist/es/components/MessageList/ScrollToLatestMessageButton.mjs.map +1 -0
- package/dist/es/components/MessageList/UnreadMessagesNotification.mjs +33 -0
- package/dist/es/components/MessageList/UnreadMessagesNotification.mjs.map +1 -0
- package/dist/es/components/MessageList/UnreadMessagesSeparator.mjs +33 -0
- package/dist/es/components/MessageList/UnreadMessagesSeparator.mjs.map +1 -0
- package/dist/es/components/MessageList/VirtualizedMessageList.mjs +339 -0
- package/dist/es/components/MessageList/VirtualizedMessageList.mjs.map +1 -0
- package/dist/es/components/MessageList/VirtualizedMessageListComponents.mjs +93 -0
- package/dist/es/components/MessageList/VirtualizedMessageListComponents.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs +39 -0
- package/dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs +78 -0
- package/dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs +58 -0
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs +141 -0
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs +275 -0
- package/dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs +81 -0
- package/dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs +69 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs +24 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.mjs +18 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs +41 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.mjs +41 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.mjs +33 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.mjs +27 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs +43 -0
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/useLastDeliveredData.mjs +43 -0
- package/dist/es/components/MessageList/hooks/useLastDeliveredData.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/useLastOwnMessage.mjs +8 -0
- package/dist/es/components/MessageList/hooks/useLastOwnMessage.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/useLastReadData.mjs +28 -0
- package/dist/es/components/MessageList/hooks/useLastReadData.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/useMarkRead.mjs +75 -0
- package/dist/es/components/MessageList/hooks/useMarkRead.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs +23 -0
- package/dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs.map +1 -0
- package/dist/es/components/MessageList/renderMessages.mjs +76 -0
- package/dist/es/components/MessageList/renderMessages.mjs.map +1 -0
- package/dist/es/components/MessageList/utils.mjs +155 -0
- package/dist/es/components/MessageList/utils.mjs.map +1 -0
- package/dist/es/components/Modal/GlobalModal.mjs +157 -0
- package/dist/es/components/Modal/GlobalModal.mjs.map +1 -0
- package/dist/es/components/Notifications/Notification.mjs +91 -0
- package/dist/es/components/Notifications/Notification.mjs.map +1 -0
- package/dist/es/components/Notifications/NotificationConfigurationContext.mjs +19 -0
- package/dist/es/components/Notifications/NotificationConfigurationContext.mjs.map +1 -0
- package/dist/es/components/Notifications/NotificationList.mjs +314 -0
- package/dist/es/components/Notifications/NotificationList.mjs.map +1 -0
- package/dist/es/components/Notifications/hooks/useNotificationApi.mjs +107 -0
- package/dist/es/components/Notifications/hooks/useNotificationApi.mjs.map +1 -0
- package/dist/es/components/Notifications/hooks/useNotificationTarget.mjs +25 -0
- package/dist/es/components/Notifications/hooks/useNotificationTarget.mjs.map +1 -0
- package/dist/es/components/Notifications/hooks/useNotifications.mjs +39 -0
- package/dist/es/components/Notifications/hooks/useNotifications.mjs.map +1 -0
- package/dist/es/components/Notifications/hooks/useSystemNotifications.mjs +22 -0
- package/dist/es/components/Notifications/hooks/useSystemNotifications.mjs.map +1 -0
- package/dist/es/components/Notifications/notificationTarget.mjs +38 -0
- package/dist/es/components/Notifications/notificationTarget.mjs.map +1 -0
- package/dist/es/components/Poll/Poll.mjs +18 -0
- package/dist/es/components/Poll/Poll.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/AddCommentPrompt.mjs +79 -0
- package/dist/es/components/Poll/PollActions/AddCommentPrompt.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/EndPollAlert.mjs +61 -0
- package/dist/es/components/Poll/PollActions/EndPollAlert.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollAction.mjs +27 -0
- package/dist/es/components/Poll/PollActions/PollAction.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollActions.mjs +92 -0
- package/dist/es/components/Poll/PollActions/PollActions.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollAnswerList.mjs +70 -0
- package/dist/es/components/Poll/PollActions/PollAnswerList.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollOptionsFullList.mjs +32 -0
- package/dist/es/components/Poll/PollActions/PollOptionsFullList.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollQuestion.mjs +20 -0
- package/dist/es/components/Poll/PollActions/PollQuestion.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs +49 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs +44 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs +39 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollResults.mjs +75 -0
- package/dist/es/components/Poll/PollActions/PollResults/PollResults.mjs.map +1 -0
- package/dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs +79 -0
- package/dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs.map +1 -0
- package/dist/es/components/Poll/PollContent.mjs +28 -0
- package/dist/es/components/Poll/PollContent.mjs.map +1 -0
- package/dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs +84 -0
- package/dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs.map +1 -0
- package/dist/es/components/Poll/PollCreationDialog/NameField.mjs +41 -0
- package/dist/es/components/Poll/PollCreationDialog/NameField.mjs.map +1 -0
- package/dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs +193 -0
- package/dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs.map +1 -0
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs +78 -0
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs.map +1 -0
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs +62 -0
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs.map +1 -0
- package/dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs +79 -0
- package/dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs.map +1 -0
- package/dist/es/components/Poll/PollHeader.mjs +46 -0
- package/dist/es/components/Poll/PollHeader.mjs.map +1 -0
- package/dist/es/components/Poll/PollOptionList.mjs +41 -0
- package/dist/es/components/Poll/PollOptionList.mjs.map +1 -0
- package/dist/es/components/Poll/PollOptionSelector.mjs +99 -0
- package/dist/es/components/Poll/PollOptionSelector.mjs.map +1 -0
- package/dist/es/components/Poll/PollVote.mjs +59 -0
- package/dist/es/components/Poll/PollVote.mjs.map +1 -0
- package/dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs +36 -0
- package/dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs.map +1 -0
- package/dist/es/components/Poll/hooks/usePollAnswerPagination.mjs +44 -0
- package/dist/es/components/Poll/hooks/usePollAnswerPagination.mjs.map +1 -0
- package/dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs +44 -0
- package/dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs.map +1 -0
- package/dist/es/components/Portal/Portal.mjs +17 -0
- package/dist/es/components/Portal/Portal.mjs.map +1 -0
- package/dist/es/components/ReactFileUtilities/UploadButton.mjs +54 -0
- package/dist/es/components/ReactFileUtilities/UploadButton.mjs.map +1 -0
- package/dist/es/{audioProcessing.766ca76c.mjs → components/ReactFileUtilities/utils.mjs} +2 -32
- package/dist/es/components/ReactFileUtilities/utils.mjs.map +1 -0
- package/dist/es/components/Reactions/MessageReactions.mjs +150 -0
- package/dist/es/components/Reactions/MessageReactions.mjs.map +1 -0
- package/dist/es/components/Reactions/MessageReactionsDetail.mjs +150 -0
- package/dist/es/components/Reactions/MessageReactionsDetail.mjs.map +1 -0
- package/dist/es/components/Reactions/ReactionSelector.mjs +140 -0
- package/dist/es/components/Reactions/ReactionSelector.mjs.map +1 -0
- package/dist/es/components/Reactions/ReactionSelectorWithButton.mjs +51 -0
- package/dist/es/components/Reactions/ReactionSelectorWithButton.mjs.map +1 -0
- package/dist/es/components/Reactions/SpriteImage.mjs +34 -0
- package/dist/es/components/Reactions/SpriteImage.mjs.map +1 -0
- package/dist/es/components/Reactions/hooks/useFetchReactions.mjs +61 -0
- package/dist/es/components/Reactions/hooks/useFetchReactions.mjs.map +1 -0
- package/dist/es/components/Reactions/hooks/useProcessReactions.mjs +82 -0
- package/dist/es/components/Reactions/hooks/useProcessReactions.mjs.map +1 -0
- package/dist/es/components/Reactions/reactionOptions.mjs +79 -0
- package/dist/es/components/Reactions/reactionOptions.mjs.map +1 -0
- package/dist/es/components/Reactions/utils/utils.mjs +13 -0
- package/dist/es/components/Reactions/utils/utils.mjs.map +1 -0
- package/dist/es/components/SafeAnchor/SafeAnchor.mjs +21 -0
- package/dist/es/components/SafeAnchor/SafeAnchor.mjs.map +1 -0
- package/dist/es/components/Search/Search.mjs +40 -0
- package/dist/es/components/Search/Search.mjs.map +1 -0
- package/dist/es/components/Search/SearchBar/SearchBar.mjs +113 -0
- package/dist/es/components/Search/SearchBar/SearchBar.mjs.map +1 -0
- package/dist/es/components/Search/SearchContext.mjs +18 -0
- package/dist/es/components/Search/SearchContext.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchResultItem.mjs +113 -0
- package/dist/es/components/Search/SearchResults/SearchResultItem.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchResults.mjs +37 -0
- package/dist/es/components/Search/SearchResults/SearchResults.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchResultsHeader.mjs +54 -0
- package/dist/es/components/Search/SearchResults/SearchResultsHeader.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs +15 -0
- package/dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultList.mjs +31 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultList.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs +31 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResults.mjs +30 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResults.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs +15 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultsHeader.mjs +6 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultsHeader.mjs.map +1 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs +18 -0
- package/dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs.map +1 -0
- package/dist/es/components/Search/SearchSourceResultsContext.mjs +18 -0
- package/dist/es/components/Search/SearchSourceResultsContext.mjs.map +1 -0
- package/dist/es/components/Search/hooks/useAnnounceSearchResultCount.mjs +57 -0
- package/dist/es/components/Search/hooks/useAnnounceSearchResultCount.mjs.map +1 -0
- package/dist/es/components/Search/hooks/useSearchFocusedMessage.mjs +13 -0
- package/dist/es/components/Search/hooks/useSearchFocusedMessage.mjs.map +1 -0
- package/dist/es/components/Search/hooks/useSearchQueriesInProgress.mjs +24 -0
- package/dist/es/components/Search/hooks/useSearchQueriesInProgress.mjs.map +1 -0
- package/dist/es/components/Search/hooks/useSearchResultsKeyboardNavigation.mjs +28 -0
- package/dist/es/components/Search/hooks/useSearchResultsKeyboardNavigation.mjs.map +1 -0
- package/dist/es/components/SkipNavigation/SkipNavigation.mjs +64 -0
- package/dist/es/components/SkipNavigation/SkipNavigation.mjs.map +1 -0
- package/dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs +55 -0
- package/dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs.map +1 -0
- package/dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs +116 -0
- package/dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs +26 -0
- package/dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/EmoticonItem.mjs +26 -0
- package/dist/es/components/TextareaComposer/SuggestionList/EmoticonItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs +32 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.mjs +39 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.mjs +7 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.mjs +34 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.mjs +6 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs +31 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserItem.mjs +50 -0
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs +198 -0
- package/dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs +46 -0
- package/dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.mjs +30 -0
- package/dist/es/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/TextareaComposer.mjs +288 -0
- package/dist/es/components/TextareaComposer/TextareaComposer.mjs.map +1 -0
- package/dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs +30 -0
- package/dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs.map +1 -0
- package/dist/es/components/Thread/LegacyThreadContext.mjs +8 -0
- package/dist/es/components/Thread/LegacyThreadContext.mjs.map +1 -0
- package/dist/es/components/Thread/Thread.mjs +106 -0
- package/dist/es/components/Thread/Thread.mjs.map +1 -0
- package/dist/es/components/Thread/ThreadHead.mjs +26 -0
- package/dist/es/components/Thread/ThreadHead.mjs.map +1 -0
- package/dist/es/components/Thread/ThreadHeader.mjs +88 -0
- package/dist/es/components/Thread/ThreadHeader.mjs.map +1 -0
- package/dist/es/components/Thread/ThreadStart.mjs +24 -0
- package/dist/es/components/Thread/ThreadStart.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadContext.mjs +17 -0
- package/dist/es/components/Threads/ThreadContext.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/ThreadList.mjs +120 -0
- package/dist/es/components/Threads/ThreadList/ThreadList.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs +17 -0
- package/dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/ThreadListHeader.mjs +22 -0
- package/dist/es/components/Threads/ThreadList/ThreadListHeader.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/ThreadListItem.mjs +18 -0
- package/dist/es/components/Threads/ThreadList/ThreadListItem.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs +160 -0
- package/dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs +22 -0
- package/dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs +30 -0
- package/dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/utils.a11y.mjs +86 -0
- package/dist/es/components/Threads/ThreadList/utils.a11y.mjs.map +1 -0
- package/dist/es/components/Threads/UnreadCountBadge.mjs +16 -0
- package/dist/es/components/Threads/UnreadCountBadge.mjs.map +1 -0
- package/dist/es/components/Tooltip/Tooltip.mjs +39 -0
- package/dist/es/components/Tooltip/Tooltip.mjs.map +1 -0
- package/dist/es/components/Tooltip/hooks/useEnterLeaveHandlers.mjs +20 -0
- package/dist/es/components/Tooltip/hooks/useEnterLeaveHandlers.mjs.map +1 -0
- package/dist/es/components/TypingIndicator/TypingIndicator.mjs +79 -0
- package/dist/es/components/TypingIndicator/TypingIndicator.mjs.map +1 -0
- package/dist/es/components/TypingIndicator/TypingIndicatorDots.mjs +33 -0
- package/dist/es/components/TypingIndicator/TypingIndicatorDots.mjs.map +1 -0
- package/dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs +44 -0
- package/dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs.map +1 -0
- package/dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs +53 -0
- package/dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs.map +1 -0
- package/dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs +15 -0
- package/dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs.map +1 -0
- package/dist/es/components/UtilityComponents/ErrorBoundary.mjs +22 -0
- package/dist/es/components/UtilityComponents/ErrorBoundary.mjs.map +1 -0
- package/dist/es/components/UtilityComponents/NullComponent.mjs +6 -0
- package/dist/es/components/UtilityComponents/NullComponent.mjs.map +1 -0
- package/dist/es/components/UtilityComponents/hooks/useMutationObserver.mjs +45 -0
- package/dist/es/components/UtilityComponents/hooks/useMutationObserver.mjs.map +1 -0
- package/dist/es/components/UtilityComponents/useStableId.mjs +20 -0
- package/dist/es/components/UtilityComponents/useStableId.mjs.map +1 -0
- package/dist/es/{ReactPlayerWrapper.d2ae5941.mjs → components/VideoPlayer/ReactPlayerWrapper.mjs} +3 -3
- package/dist/es/components/VideoPlayer/ReactPlayerWrapper.mjs.map +1 -0
- package/dist/es/components/VideoPlayer/VideoPlayer.mjs +30 -0
- package/dist/es/components/VideoPlayer/VideoPlayer.mjs.map +1 -0
- package/dist/es/components/VideoPlayer/VideoThumbnail.mjs +35 -0
- package/dist/es/components/VideoPlayer/VideoThumbnail.mjs.map +1 -0
- package/dist/es/components/VisuallyHidden/VisuallyHidden.mjs +29 -0
- package/dist/es/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -0
- package/dist/es/components/Window/Window.mjs +21 -0
- package/dist/es/components/Window/Window.mjs.map +1 -0
- package/dist/es/constants/messageTypes.mjs +9 -0
- package/dist/es/constants/messageTypes.mjs.map +1 -0
- package/dist/es/context/AttachmentSelectorContext.mjs +13 -0
- package/dist/es/context/AttachmentSelectorContext.mjs.map +1 -0
- package/dist/es/context/ChannelActionContext.mjs +20 -0
- package/dist/es/context/ChannelActionContext.mjs.map +1 -0
- package/dist/es/context/ChannelListContext.mjs +20 -0
- package/dist/es/context/ChannelListContext.mjs.map +1 -0
- package/dist/es/context/ChannelStateContext.mjs +24 -0
- package/dist/es/context/ChannelStateContext.mjs.map +1 -0
- package/dist/es/context/ChatContext.mjs +20 -0
- package/dist/es/context/ChatContext.mjs.map +1 -0
- package/dist/es/context/ComponentContext.mjs +13 -0
- package/dist/es/context/ComponentContext.mjs.map +1 -0
- package/dist/es/context/DialogManagerContext.mjs +119 -0
- package/dist/es/context/DialogManagerContext.mjs.map +1 -0
- package/dist/es/context/MessageBounceContext.mjs +53 -0
- package/dist/es/context/MessageBounceContext.mjs.map +1 -0
- package/dist/es/context/MessageComposerContext.mjs +17 -0
- package/dist/es/context/MessageComposerContext.mjs.map +1 -0
- package/dist/es/context/MessageContext.mjs +17 -0
- package/dist/es/context/MessageContext.mjs.map +1 -0
- package/dist/es/context/MessageListContext.mjs +23 -0
- package/dist/es/context/MessageListContext.mjs.map +1 -0
- package/dist/es/context/MessageTranslationViewContext.mjs +76 -0
- package/dist/es/context/MessageTranslationViewContext.mjs.map +1 -0
- package/dist/es/context/ModalContext.mjs +20 -0
- package/dist/es/context/ModalContext.mjs.map +1 -0
- package/dist/es/context/PollContext.mjs +15 -0
- package/dist/es/context/PollContext.mjs.map +1 -0
- package/dist/es/context/TranslationContext.mjs +30 -0
- package/dist/es/context/TranslationContext.mjs.map +1 -0
- package/dist/es/context/TypingContext.mjs +20 -0
- package/dist/es/context/TypingContext.mjs.map +1 -0
- package/dist/es/context/VirtualizedMessageListContext.mjs +16 -0
- package/dist/es/context/VirtualizedMessageListContext.mjs.map +1 -0
- package/dist/es/context/WithComponents.mjs +23 -0
- package/dist/es/context/WithComponents.mjs.map +1 -0
- package/dist/es/context/useComponentContextIcons.mjs +31 -0
- package/dist/es/context/useComponentContextIcons.mjs.map +1 -0
- package/dist/es/emojis.mjs +2 -229
- package/dist/es/i18n/Streami18n.mjs +545 -0
- package/dist/es/i18n/Streami18n.mjs.map +1 -0
- package/dist/es/i18n/TranslationBuilder/TranslationBuilder.mjs +86 -0
- package/dist/es/i18n/TranslationBuilder/TranslationBuilder.mjs.map +1 -0
- package/dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs +51 -0
- package/dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs.map +1 -0
- package/dist/es/i18n/TranslationBuilder/notifications/translators.mjs +47 -0
- package/dist/es/i18n/TranslationBuilder/notifications/translators.mjs.map +1 -0
- package/dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs +24 -0
- package/dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs.map +1 -0
- package/dist/es/i18n/de.mjs +782 -0
- package/dist/es/i18n/de.mjs.map +1 -0
- package/dist/es/i18n/en.mjs +779 -0
- package/dist/es/i18n/en.mjs.map +1 -0
- package/dist/es/i18n/es.mjs +821 -0
- package/dist/es/i18n/es.mjs.map +1 -0
- package/dist/es/i18n/fr.mjs +822 -0
- package/dist/es/i18n/fr.mjs.map +1 -0
- package/dist/es/i18n/hi.mjs +786 -0
- package/dist/es/i18n/hi.mjs.map +1 -0
- package/dist/es/i18n/it.mjs +821 -0
- package/dist/es/i18n/it.mjs.map +1 -0
- package/dist/es/i18n/ja.mjs +760 -0
- package/dist/es/i18n/ja.mjs.map +1 -0
- package/dist/es/i18n/ko.mjs +760 -0
- package/dist/es/i18n/ko.mjs.map +1 -0
- package/dist/es/i18n/nl.mjs +786 -0
- package/dist/es/i18n/nl.mjs.map +1 -0
- package/dist/es/i18n/pt.mjs +819 -0
- package/dist/es/i18n/pt.mjs.map +1 -0
- package/dist/es/i18n/ru.mjs +868 -0
- package/dist/es/i18n/ru.mjs.map +1 -0
- package/dist/es/i18n/tr.mjs +781 -0
- package/dist/es/i18n/tr.mjs.map +1 -0
- package/dist/es/i18n/utils.mjs +132 -0
- package/dist/es/i18n/utils.mjs.map +1 -0
- package/dist/es/index.mjs +323 -20870
- package/dist/es/mp3-encoder.mjs +1 -1
- package/dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs +40 -0
- package/dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetail.mjs +105 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetail.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailContext.mjs +20 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailContext.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs +14 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.mjs +20 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailNavButton.mjs +26 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailNavButton.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs +35 -0
- package/dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigator.mjs +164 -0
- package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigator.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs +50 -0
- package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs +25 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs +130 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs +63 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs +47 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.mjs +568 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs +324 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs +25 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs +215 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs +37 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs +47 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.mjs +451 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs +76 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs +182 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs +110 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.mjs +120 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs +91 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs +11 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.mjs +22 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.mjs +23 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.mjs +52 -0
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs +25 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs +140 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs +24 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs +68 -0
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs.map +1 -0
- package/dist/es/plugins/ChannelDetail/VirtualizedList/VirtualizedList.mjs +42 -0
- package/dist/es/plugins/ChannelDetail/VirtualizedList/VirtualizedList.mjs.map +1 -0
- package/dist/es/plugins/Emojis/EmojiPicker.mjs +95 -0
- package/dist/es/plugins/Emojis/EmojiPicker.mjs.map +1 -0
- package/dist/es/plugins/Emojis/Picker.mjs +23 -0
- package/dist/es/plugins/Emojis/Picker.mjs.map +1 -0
- package/dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs +126 -0
- package/dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs.map +1 -0
- package/dist/es/store/hooks/useStateStore.mjs +32 -0
- package/dist/es/store/hooks/useStateStore.mjs.map +1 -0
- package/dist/es/utils/findReverse.mjs +8 -0
- package/dist/es/utils/findReverse.mjs.map +1 -0
- package/dist/es/utils/getChannel.mjs +38 -0
- package/dist/es/utils/getChannel.mjs.map +1 -0
- package/dist/es/utils/getChannelConfig.mjs +11 -0
- package/dist/es/utils/getChannelConfig.mjs.map +1 -0
- package/dist/es/utils/getTextareaCaretRect.mjs +45 -0
- package/dist/es/utils/getTextareaCaretRect.mjs.map +1 -0
- package/dist/es/utils/getWholeChar.mjs +20 -0
- package/dist/es/utils/getWholeChar.mjs.map +1 -0
- package/dist/es/utils/isDmChannel.mjs +9 -0
- package/dist/es/utils/isDmChannel.mjs.map +1 -0
- package/dist/es/utils/mergeDeep.mjs +8 -0
- package/dist/es/utils/mergeDeep.mjs.map +1 -0
- package/dist/es/utils/useStableCallback.mjs +34 -0
- package/dist/es/utils/useStableCallback.mjs.map +1 -0
- package/dist/types/components/Attachment/AttachmentContainer.d.ts.map +1 -1
- package/dist/types/components/Attachment/Audio.d.ts.map +1 -1
- package/dist/types/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/VideoAttachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/VoiceRecording.d.ts.map +1 -1
- package/dist/types/components/Attachment/components/AttachmentUploadProgressIndicator.d.ts +32 -0
- package/dist/types/components/Attachment/components/AttachmentUploadProgressIndicator.d.ts.map +1 -0
- package/dist/types/components/Attachment/components/index.d.ts +1 -0
- package/dist/types/components/Attachment/components/index.d.ts.map +1 -1
- package/dist/types/components/Attachment/hooks/useAttachmentUploadState.d.ts +89 -0
- package/dist/types/components/Attachment/hooks/useAttachmentUploadState.d.ts.map +1 -0
- package/dist/types/components/Attachment/hooks/useLocalVideoDimensions.d.ts +16 -0
- package/dist/types/components/Attachment/hooks/useLocalVideoDimensions.d.ts.map +1 -0
- package/dist/types/components/Attachment/index.d.ts +1 -0
- package/dist/types/components/Attachment/index.d.ts.map +1 -1
- package/dist/types/components/Channel/Channel.d.ts.map +1 -1
- package/dist/types/components/Channel/utils.d.ts +25 -3
- package/dist/types/components/Channel/utils.d.ts.map +1 -1
- package/dist/types/components/Dialog/service/DialogAnchor.d.ts +8 -1
- package/dist/types/components/Dialog/service/DialogAnchor.d.ts.map +1 -1
- package/dist/types/components/Loading/AttachmentUploadedSizeIndicator.d.ts +20 -0
- package/dist/types/components/Loading/AttachmentUploadedSizeIndicator.d.ts.map +1 -0
- package/dist/types/components/Loading/UploadProgressIndicator.d.ts +7 -1
- package/dist/types/components/Loading/UploadProgressIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/index.d.ts +1 -0
- package/dist/types/components/Loading/index.d.ts.map +1 -1
- package/dist/types/components/Message/MessageStatus.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/RemoveAttachmentPreviewButton.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerHasSendableData.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useSubmitHandler.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/utils.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/TextareaComposer.d.ts.map +1 -1
- package/dist/types/components/VideoPlayer/ReactPlayerWrapper.d.ts +1 -1
- package/dist/types/components/VideoPlayer/ReactPlayerWrapper.d.ts.map +1 -1
- package/dist/types/components/VideoPlayer/VideoPlayer.d.ts +7 -1
- package/dist/types/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
- package/dist/types/context/ComponentContext.d.ts +3 -0
- package/dist/types/context/ComponentContext.d.ts.map +1 -1
- package/dist/types/i18n/Streami18n.d.ts +1 -0
- package/dist/types/i18n/Streami18n.d.ts.map +1 -1
- package/package.json +5 -9
- package/dist/cjs/NotificationList.6abbee1c.js.map +0 -1
- package/dist/cjs/useInertWhenHidden.22151beb.js.map +0 -1
- package/dist/es/NotificationList.db01a56d.mjs +0 -7703
- package/dist/es/NotificationList.db01a56d.mjs.map +0 -1
- package/dist/es/ReactPlayerWrapper.d2ae5941.mjs.map +0 -1
- package/dist/es/audioProcessing.766ca76c.mjs.map +0 -1
- package/dist/es/channel-detail.mjs.map +0 -1
- package/dist/es/emojis.mjs.map +0 -1
- package/dist/es/index.mjs.map +0 -1
- package/dist/es/useChannelHeaderOnlineStatus.a9357343.mjs +0 -771
- package/dist/es/useChannelHeaderOnlineStatus.a9357343.mjs.map +0 -1
- package/dist/es/useInertWhenHidden.3d5fbdba.mjs +0 -5765
- package/dist/es/useInertWhenHidden.3d5fbdba.mjs.map +0 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/AttachmentUploadedSizeIndicator.d.ts +0 -14
- package/dist/types/components/MessageComposer/AttachmentPreviewList/AttachmentUploadedSizeIndicator.d.ts.map +0 -1
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { useComponentContextIcons } from "../../../context/useComponentContextIcons.mjs";
|
|
2
|
+
import { useStateStore } from "../../../store/hooks/useStateStore.mjs";
|
|
3
|
+
import { useTranslationContext } from "../../../context/TranslationContext.mjs";
|
|
4
|
+
import { useAriaLiveAnnouncer } from "../../Accessibility/useAriaLiveAnnouncer.mjs";
|
|
5
|
+
import { VisuallyHidden } from "../../VisuallyHidden/VisuallyHidden.mjs";
|
|
6
|
+
import { useSettledAnnouncement } from "../../Accessibility/scheduling/useSettledAnnouncement.mjs";
|
|
7
|
+
import { useStableId } from "../../UtilityComponents/useStableId.mjs";
|
|
8
|
+
import { Button } from "../../Button/Button.mjs";
|
|
9
|
+
import { useInteractionAnnouncements } from "../../Accessibility/hooks/useInteractionAnnouncements.mjs";
|
|
10
|
+
import { TextInput } from "../../Form/TextInput.mjs";
|
|
11
|
+
import { TextInputFieldSet } from "../../Form/TextInputFieldSet.mjs";
|
|
12
|
+
import { PollOptionReorderHandle } from "./PollOptionReorderHandle.mjs";
|
|
13
|
+
import { useMessageComposerController } from "../../MessageComposer/hooks/useMessageComposerController.mjs";
|
|
14
|
+
import { useCallback, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
15
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
16
|
+
import clsx from "clsx";
|
|
17
|
+
//#region src/components/Poll/PollCreationDialog/OptionFieldSet.tsx
|
|
18
|
+
var pollComposerStateSelector = (state) => ({
|
|
19
|
+
errors: state.errors.options,
|
|
20
|
+
options: state.data.options
|
|
21
|
+
});
|
|
22
|
+
var OptionFieldSet = () => {
|
|
23
|
+
const { pollComposer } = useMessageComposerController();
|
|
24
|
+
const { errors, options } = useStateStore(pollComposer.state, pollComposerStateSelector);
|
|
25
|
+
const { t } = useTranslationContext("OptionFieldSet");
|
|
26
|
+
const announce = useAriaLiveAnnouncer();
|
|
27
|
+
const { announceInteraction } = useInteractionAnnouncements();
|
|
28
|
+
const optionInputRefs = useRef([]);
|
|
29
|
+
const handleRefs = useRef([]);
|
|
30
|
+
const pendingFocusIndexRef = useRef(null);
|
|
31
|
+
const [activeOptionId, setActiveOptionId] = useState(null);
|
|
32
|
+
const knownValidationErrors = useMemo(() => ({
|
|
33
|
+
"Option already exists": t("Option already exists"),
|
|
34
|
+
"Option is empty": t("Option is empty")
|
|
35
|
+
}), [t]);
|
|
36
|
+
const labelForOption = useCallback((option, position) => option.text.trim() || t("aria/Option {{ position }}", { position }), [t]);
|
|
37
|
+
const registerHandleRef = useCallback((index, element) => {
|
|
38
|
+
handleRefs.current[index] = element;
|
|
39
|
+
}, []);
|
|
40
|
+
const onSetNewOrder = useCallback((newOrder) => {
|
|
41
|
+
const prevOptions = pollComposer.options;
|
|
42
|
+
pollComposer.updateFields({ options: newOrder.map((index) => prevOptions[index]) });
|
|
43
|
+
}, [pollComposer]);
|
|
44
|
+
const clearOption = useCallback((removedOptionId) => {
|
|
45
|
+
const nextOptions = [...pollComposer.options];
|
|
46
|
+
if (!nextOptions.length) return;
|
|
47
|
+
const removedOptionIndex = pollComposer.options.findIndex((option) => option.id === removedOptionId);
|
|
48
|
+
if (removedOptionIndex === -1) return;
|
|
49
|
+
const [removedOption] = nextOptions.splice(removedOptionIndex, 1);
|
|
50
|
+
pollComposer.updateFields({ options: nextOptions });
|
|
51
|
+
announceInteraction("poll.optionRemoved", { option: labelForOption(removedOption, removedOptionIndex + 1) });
|
|
52
|
+
if (activeOptionId === removedOptionId) setActiveOptionId(null);
|
|
53
|
+
if (!nextOptions.length) return;
|
|
54
|
+
const nextFocusedOptionIndex = Math.min(removedOptionIndex, nextOptions.length - 1);
|
|
55
|
+
requestAnimationFrame(() => {
|
|
56
|
+
optionInputRefs.current[nextFocusedOptionIndex]?.focus();
|
|
57
|
+
});
|
|
58
|
+
}, [
|
|
59
|
+
activeOptionId,
|
|
60
|
+
announceInteraction,
|
|
61
|
+
labelForOption,
|
|
62
|
+
pollComposer
|
|
63
|
+
]);
|
|
64
|
+
const handleActivate = useCallback((optionId) => {
|
|
65
|
+
const idx = pollComposer.options.findIndex((option) => option.id === optionId);
|
|
66
|
+
if (idx === -1) return;
|
|
67
|
+
const option = pollComposer.options[idx];
|
|
68
|
+
setActiveOptionId(optionId);
|
|
69
|
+
announceInteraction("poll.optionPickedUp", { option: labelForOption(option, idx + 1) });
|
|
70
|
+
}, [
|
|
71
|
+
announceInteraction,
|
|
72
|
+
labelForOption,
|
|
73
|
+
pollComposer
|
|
74
|
+
]);
|
|
75
|
+
const handleDeselect = useCallback(() => {
|
|
76
|
+
if (!activeOptionId) return;
|
|
77
|
+
const idx = pollComposer.options.findIndex((option) => option.id === activeOptionId);
|
|
78
|
+
const option = idx === -1 ? null : pollComposer.options[idx];
|
|
79
|
+
setActiveOptionId(null);
|
|
80
|
+
if (!option) return;
|
|
81
|
+
announceInteraction("poll.optionDropped", {
|
|
82
|
+
option: labelForOption(option, idx + 1),
|
|
83
|
+
position: idx + 1
|
|
84
|
+
});
|
|
85
|
+
}, [
|
|
86
|
+
activeOptionId,
|
|
87
|
+
announceInteraction,
|
|
88
|
+
labelForOption,
|
|
89
|
+
pollComposer
|
|
90
|
+
]);
|
|
91
|
+
const handleMove = useCallback((direction) => {
|
|
92
|
+
if (!activeOptionId) return;
|
|
93
|
+
const currentIndex = pollComposer.options.findIndex((option) => option.id === activeOptionId);
|
|
94
|
+
if (currentIndex === -1) return;
|
|
95
|
+
const targetIndex = currentIndex + direction;
|
|
96
|
+
if (targetIndex < 0 || targetIndex >= pollComposer.options.length) return;
|
|
97
|
+
const nextOptions = [...pollComposer.options];
|
|
98
|
+
const [moved] = nextOptions.splice(currentIndex, 1);
|
|
99
|
+
nextOptions.splice(targetIndex, 0, moved);
|
|
100
|
+
pollComposer.updateFields({ options: nextOptions });
|
|
101
|
+
pendingFocusIndexRef.current = targetIndex;
|
|
102
|
+
}, [activeOptionId, pollComposer]);
|
|
103
|
+
useLayoutEffect(() => {
|
|
104
|
+
if (pendingFocusIndexRef.current === null) return;
|
|
105
|
+
const idx = pendingFocusIndexRef.current;
|
|
106
|
+
pendingFocusIndexRef.current = null;
|
|
107
|
+
handleRefs.current[idx]?.focus();
|
|
108
|
+
}, [options]);
|
|
109
|
+
const draggable = options.length > 1;
|
|
110
|
+
const optionsHintId = useStableId();
|
|
111
|
+
useSettledAnnouncement(announce, {
|
|
112
|
+
active: draggable,
|
|
113
|
+
message: t("aria/Options can now be reordered and removed."),
|
|
114
|
+
settleKey: options
|
|
115
|
+
});
|
|
116
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(TextInputFieldSet, {
|
|
117
|
+
draggable,
|
|
118
|
+
label: t("Options"),
|
|
119
|
+
onSetNewOrder,
|
|
120
|
+
children: options.map((option, i) => {
|
|
121
|
+
const error = errors?.[option.id];
|
|
122
|
+
return /* @__PURE__ */ jsx("div", {
|
|
123
|
+
className: clsx("str-chat__form__input-field", {
|
|
124
|
+
"str-chat__form__input-field--draggable": draggable,
|
|
125
|
+
"str-chat__form__input-field--has-error": error
|
|
126
|
+
}),
|
|
127
|
+
children: /* @__PURE__ */ jsx(TextInput, {
|
|
128
|
+
"aria-describedby": draggable ? optionsHintId : void 0,
|
|
129
|
+
className: "str-chat__form__input-field__value",
|
|
130
|
+
error: !!error,
|
|
131
|
+
fieldMessagePlacement: "inside",
|
|
132
|
+
id: option.id,
|
|
133
|
+
leading: draggable ? /* @__PURE__ */ jsx(PollOptionReorderHandle, {
|
|
134
|
+
index: i,
|
|
135
|
+
isActive: option.id === activeOptionId,
|
|
136
|
+
onActivate: handleActivate,
|
|
137
|
+
onDeselect: handleDeselect,
|
|
138
|
+
onMove: handleMove,
|
|
139
|
+
option,
|
|
140
|
+
registerRef: registerHandleRef,
|
|
141
|
+
totalOptionCount: options.length
|
|
142
|
+
}) : void 0,
|
|
143
|
+
message: error ? /* @__PURE__ */ jsx("span", {
|
|
144
|
+
"data-testid": "poll-option-input-field-error",
|
|
145
|
+
children: knownValidationErrors[error] ?? t("Error")
|
|
146
|
+
}) : void 0,
|
|
147
|
+
onBlur: () => {
|
|
148
|
+
pollComposer.handleFieldBlur("options");
|
|
149
|
+
},
|
|
150
|
+
onChange: (e) => {
|
|
151
|
+
pollComposer.updateFields({ options: {
|
|
152
|
+
index: i,
|
|
153
|
+
text: e.target.value
|
|
154
|
+
} });
|
|
155
|
+
},
|
|
156
|
+
onKeyUp: (event) => {
|
|
157
|
+
const isFocusedLastOptionField = i === options.length - 1;
|
|
158
|
+
if (event.key === "Enter" && !isFocusedLastOptionField) optionInputRefs.current[i + 1]?.focus();
|
|
159
|
+
},
|
|
160
|
+
placeholder: t("Add an option"),
|
|
161
|
+
ref: (element) => {
|
|
162
|
+
optionInputRefs.current[i] = element;
|
|
163
|
+
},
|
|
164
|
+
trailing: draggable ? /* @__PURE__ */ jsx(RemoveOptionButton, {
|
|
165
|
+
"aria-label": t("aria/Remove option: {{ option }}", { option: labelForOption(option, i + 1) }),
|
|
166
|
+
onClick: () => clearOption(option.id)
|
|
167
|
+
}) : void 0,
|
|
168
|
+
type: "text",
|
|
169
|
+
value: option.text
|
|
170
|
+
})
|
|
171
|
+
}, `option-row-${i}`);
|
|
172
|
+
})
|
|
173
|
+
}), draggable && /* @__PURE__ */ jsx(VisuallyHidden, {
|
|
174
|
+
id: optionsHintId,
|
|
175
|
+
children: t("aria/This option can be reordered and removed.")
|
|
176
|
+
})] });
|
|
177
|
+
};
|
|
178
|
+
var RemoveOptionButton = ({ className, ...props }) => {
|
|
179
|
+
const { IconMinusCircle } = useComponentContextIcons();
|
|
180
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
181
|
+
appearance: "ghost",
|
|
182
|
+
circular: true,
|
|
183
|
+
className: clsx("str-chat__form__remove-option-button", className),
|
|
184
|
+
size: "xs",
|
|
185
|
+
variant: "secondary",
|
|
186
|
+
...props,
|
|
187
|
+
children: /* @__PURE__ */ jsx(IconMinusCircle, {})
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
//#endregion
|
|
191
|
+
export { OptionFieldSet };
|
|
192
|
+
|
|
193
|
+
//# sourceMappingURL=OptionFieldSet.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionFieldSet.mjs","names":[],"sources":["../../../../../src/components/Poll/PollCreationDialog/OptionFieldSet.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { TextInput } from '../../Form/TextInput';\nimport { useComponentContextIcons, useTranslationContext } from '../../../context';\nimport { useMessageComposerController } from '../../MessageComposer/hooks/useMessageComposerController';\nimport { useStateStore } from '../../../store';\nimport type { PollComposerOption, PollComposerState } from 'stream-chat';\nimport { Button, type ButtonProps } from '../../Button';\nimport { TextInputFieldSet } from '../../Form/TextInputFieldSet';\nimport { VisuallyHidden } from '../../VisuallyHidden';\nimport { useStableId } from '../../UtilityComponents/useStableId';\nimport {\n useAriaLiveAnnouncer,\n useInteractionAnnouncements,\n useSettledAnnouncement,\n} from '../../Accessibility';\nimport { PollOptionReorderHandle } from './PollOptionReorderHandle';\n\nconst pollComposerStateSelector = (state: PollComposerState) => ({\n errors: state.errors.options,\n options: state.data.options,\n});\n\n// Option pickup/drop/removed confirmations go through the shared {@link useInteractionAnnouncements}\n// registry (poll.optionPickedUp / poll.optionDropped / poll.optionRemoved), while the one-shot\n// \"controls are now available\" cue uses {@link useSettledAnnouncement}. Both ultimately deliver via\n// `useAriaLiveAnnouncer`, which routes to the modal {@link AriaLiveOutlet} the poll-creation dialog\n// mounts (the Modal/Dialog system renders an outlet inside the active `aria-modal` subtree). Screen\n// readers suppress live regions outside an active aria-modal container, so the modal outlet keeps\n// these announcements in scope.\nexport const OptionFieldSet = () => {\n const { pollComposer } = useMessageComposerController();\n const { errors, options } = useStateStore(\n pollComposer.state,\n pollComposerStateSelector,\n );\n const { t } = useTranslationContext('OptionFieldSet');\n const announce = useAriaLiveAnnouncer();\n const { announceInteraction } = useInteractionAnnouncements();\n const optionInputRefs = useRef<Array<HTMLInputElement | null>>([]);\n const handleRefs = useRef<Array<HTMLButtonElement | null>>([]);\n const pendingFocusIndexRef = useRef<number | null>(null);\n const [activeOptionId, setActiveOptionId] = useState<string | null>(null);\n\n const knownValidationErrors = useMemo<Record<string, string>>(\n () => ({\n 'Option already exists': t('Option already exists'),\n 'Option is empty': t('Option is empty'),\n }),\n [t],\n );\n\n const labelForOption = useCallback(\n (option: PollComposerOption, position: number) =>\n option.text.trim() || t('aria/Option {{ position }}', { position }),\n [t],\n );\n\n const registerHandleRef = useCallback(\n (index: number, element: HTMLButtonElement | null) => {\n handleRefs.current[index] = element;\n },\n [],\n );\n\n const onSetNewOrder = useCallback(\n (newOrder: number[]) => {\n const prevOptions = pollComposer.options;\n pollComposer.updateFields({ options: newOrder.map((index) => prevOptions[index]) });\n },\n [pollComposer],\n );\n\n const clearOption = useCallback(\n (removedOptionId: string) => {\n const nextOptions = [...pollComposer.options];\n if (!nextOptions.length) return;\n\n const removedOptionIndex = pollComposer.options.findIndex(\n (option) => option.id === removedOptionId,\n );\n\n if (removedOptionIndex === -1) return;\n const [removedOption] = nextOptions.splice(removedOptionIndex, 1);\n\n pollComposer.updateFields({\n options: nextOptions,\n });\n\n // Confirm the removal, naming the option by its text (or its positional fallback). The\n // registry maps this to a polite message so it queues behind the focus move to the next field\n // (below) instead of interrupting it.\n announceInteraction('poll.optionRemoved', {\n option: labelForOption(removedOption, removedOptionIndex + 1),\n });\n\n if (activeOptionId === removedOptionId) {\n setActiveOptionId(null);\n }\n\n if (!nextOptions.length) return;\n const nextFocusedOptionIndex = Math.min(removedOptionIndex, nextOptions.length - 1);\n requestAnimationFrame(() => {\n optionInputRefs.current[nextFocusedOptionIndex]?.focus();\n });\n },\n [activeOptionId, announceInteraction, labelForOption, pollComposer],\n );\n\n const handleActivate = useCallback(\n (optionId: string) => {\n const idx = pollComposer.options.findIndex((option) => option.id === optionId);\n if (idx === -1) return;\n const option = pollComposer.options[idx];\n setActiveOptionId(optionId);\n announceInteraction('poll.optionPickedUp', {\n option: labelForOption(option, idx + 1),\n });\n },\n [announceInteraction, labelForOption, pollComposer],\n );\n\n const handleDeselect = useCallback(() => {\n if (!activeOptionId) return;\n const idx = pollComposer.options.findIndex((option) => option.id === activeOptionId);\n const option = idx === -1 ? null : pollComposer.options[idx];\n\n setActiveOptionId(null);\n\n if (!option) return;\n\n announceInteraction('poll.optionDropped', {\n option: labelForOption(option, idx + 1),\n position: idx + 1,\n });\n }, [activeOptionId, announceInteraction, labelForOption, pollComposer]);\n\n const handleMove = useCallback(\n (direction: -1 | 1) => {\n if (!activeOptionId) return;\n const currentIndex = pollComposer.options.findIndex(\n (option) => option.id === activeOptionId,\n );\n if (currentIndex === -1) return;\n const targetIndex = currentIndex + direction;\n if (targetIndex < 0 || targetIndex >= pollComposer.options.length) return;\n\n const nextOptions = [...pollComposer.options];\n const [moved] = nextOptions.splice(currentIndex, 1);\n nextOptions.splice(targetIndex, 0, moved);\n pollComposer.updateFields({ options: nextOptions });\n\n pendingFocusIndexRef.current = targetIndex;\n // No live-region announcement here on purpose. Once the focus moves to\n // the active option's new handle (in the layout effect below), VoiceOver\n // will speak that handle's aria-label, which already encodes the option\n // text and the new position (\"Reorder 'option B' at position 1 of 3\").\n // Emitting an additional polite \"moved to position\" message would just\n // duplicate that information.\n },\n [activeOptionId, pollComposer],\n );\n\n useLayoutEffect(() => {\n if (pendingFocusIndexRef.current === null) return;\n const idx = pendingFocusIndexRef.current;\n pendingFocusIndexRef.current = null;\n handleRefs.current[idx]?.focus();\n }, [options]);\n\n const draggable = options.length > 1;\n\n // The reorder handle and remove button only exist once there are 2+ options. Conveying that uses\n // two complementary mechanisms:\n //\n // 1. A persistent affordance: each option input's `aria-describedby` points at the hidden text\n // below, so the description is part of the field's accessible name/description (read on focus,\n // and again whenever the screen reader re-reads the field). Correct in the a11y tree and read\n // by screen readers that voice descriptions (e.g. NVDA).\n // 2. A spoken cue: VoiceOver does NOT reliably speak `aria-describedby` (\"hints\" are often delayed\n // or disabled), so additionally announce availability once via a polite live region. Announcing\n // it at the exact 1→2 moment fails — the screen reader re-reads the focused option field when\n // the list mutates, and that read-out supersedes any live message at any priority. So the cue\n // is deferred until the option list goes idle (keyed on `options`), landing in a calm moment.\n // See `useSettledAnnouncement`.\n const optionsHintId = useStableId();\n\n useSettledAnnouncement(announce, {\n active: draggable,\n message: t('aria/Options can now be reordered and removed.'),\n settleKey: options,\n });\n\n return (\n <>\n <TextInputFieldSet\n draggable={draggable}\n label={t('Options')}\n onSetNewOrder={onSetNewOrder}\n >\n {options.map((option, i) => {\n const error = errors?.[option.id];\n return (\n <div\n className={clsx('str-chat__form__input-field', {\n 'str-chat__form__input-field--draggable': draggable,\n 'str-chat__form__input-field--has-error': error,\n })}\n key={`option-row-${i}`}\n >\n <TextInput\n aria-describedby={draggable ? optionsHintId : undefined}\n className='str-chat__form__input-field__value'\n error={!!error}\n fieldMessagePlacement='inside'\n id={option.id}\n leading={\n draggable ? (\n <PollOptionReorderHandle\n index={i}\n isActive={option.id === activeOptionId}\n onActivate={handleActivate}\n onDeselect={handleDeselect}\n onMove={handleMove}\n option={option}\n registerRef={registerHandleRef}\n totalOptionCount={options.length}\n />\n ) : undefined\n }\n message={\n error ? (\n <span data-testid='poll-option-input-field-error'>\n {knownValidationErrors[error] ?? t('Error')}\n </span>\n ) : undefined\n }\n onBlur={() => {\n pollComposer.handleFieldBlur('options');\n }}\n onChange={(e) => {\n pollComposer.updateFields({\n options: { index: i, text: e.target.value },\n });\n }}\n onKeyUp={(event) => {\n const isFocusedLastOptionField = i === options.length - 1;\n if (event.key === 'Enter' && !isFocusedLastOptionField) {\n optionInputRefs.current[i + 1]?.focus();\n }\n }}\n placeholder={t('Add an option')}\n ref={(element) => {\n optionInputRefs.current[i] = element;\n }}\n trailing={\n draggable ? (\n <RemoveOptionButton\n // Name each button by its option so SR users can tell the rows apart.\n aria-label={t('aria/Remove option: {{ option }}', {\n option: labelForOption(option, i + 1),\n })}\n onClick={() => clearOption(option.id)}\n />\n ) : undefined\n }\n type='text'\n value={option.text}\n />\n </div>\n );\n })}\n </TextInputFieldSet>\n {draggable && (\n <VisuallyHidden id={optionsHintId}>\n {t('aria/This option can be reordered and removed.')}\n </VisuallyHidden>\n )}\n </>\n );\n};\n\nconst RemoveOptionButton = ({ className, ...props }: ButtonProps) => {\n const { IconMinusCircle } = useComponentContextIcons();\n return (\n <Button\n appearance='ghost'\n circular\n className={clsx('str-chat__form__remove-option-button', className)}\n size='xs'\n variant='secondary'\n {...props}\n >\n <IconMinusCircle />\n </Button>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,IAAM,6BAA6B,WAA8B;CAC/D,QAAQ,MAAM,OAAO;CACrB,SAAS,MAAM,KAAK;AACtB;AASA,IAAa,uBAAuB;CAClC,MAAM,EAAE,iBAAiB,6BAA6B;CACtD,MAAM,EAAE,QAAQ,YAAY,cAC1B,aAAa,OACb,yBACF;CACA,MAAM,EAAE,MAAM,sBAAsB,gBAAgB;CACpD,MAAM,WAAW,qBAAqB;CACtC,MAAM,EAAE,wBAAwB,4BAA4B;CAC5D,MAAM,kBAAkB,OAAuC,CAAC,CAAC;CACjE,MAAM,aAAa,OAAwC,CAAC,CAAC;CAC7D,MAAM,uBAAuB,OAAsB,IAAI;CACvD,MAAM,CAAC,gBAAgB,qBAAqB,SAAwB,IAAI;CAExE,MAAM,wBAAwB,eACrB;EACL,yBAAyB,EAAE,uBAAuB;EAClD,mBAAmB,EAAE,iBAAiB;CACxC,IACA,CAAC,CAAC,CACJ;CAEA,MAAM,iBAAiB,aACpB,QAA4B,aAC3B,OAAO,KAAK,KAAK,KAAK,EAAE,8BAA8B,EAAE,SAAS,CAAC,GACpE,CAAC,CAAC,CACJ;CAEA,MAAM,oBAAoB,aACvB,OAAe,YAAsC;EACpD,WAAW,QAAQ,SAAS;CAC9B,GACA,CAAC,CACH;CAEA,MAAM,gBAAgB,aACnB,aAAuB;EACtB,MAAM,cAAc,aAAa;EACjC,aAAa,aAAa,EAAE,SAAS,SAAS,KAAK,UAAU,YAAY,MAAM,EAAE,CAAC;CACpF,GACA,CAAC,YAAY,CACf;CAEA,MAAM,cAAc,aACjB,oBAA4B;EAC3B,MAAM,cAAc,CAAC,GAAG,aAAa,OAAO;EAC5C,IAAI,CAAC,YAAY,QAAQ;EAEzB,MAAM,qBAAqB,aAAa,QAAQ,WAC7C,WAAW,OAAO,OAAO,eAC5B;EAEA,IAAI,uBAAuB,IAAI;EAC/B,MAAM,CAAC,iBAAiB,YAAY,OAAO,oBAAoB,CAAC;EAEhE,aAAa,aAAa,EACxB,SAAS,YACX,CAAC;EAKD,oBAAoB,sBAAsB,EACxC,QAAQ,eAAe,eAAe,qBAAqB,CAAC,EAC9D,CAAC;EAED,IAAI,mBAAmB,iBACrB,kBAAkB,IAAI;EAGxB,IAAI,CAAC,YAAY,QAAQ;EACzB,MAAM,yBAAyB,KAAK,IAAI,oBAAoB,YAAY,SAAS,CAAC;EAClF,4BAA4B;GAC1B,gBAAgB,QAAQ,uBAAuB,EAAE,MAAM;EACzD,CAAC;CACH,GACA;EAAC;EAAgB;EAAqB;EAAgB;CAAY,CACpE;CAEA,MAAM,iBAAiB,aACpB,aAAqB;EACpB,MAAM,MAAM,aAAa,QAAQ,WAAW,WAAW,OAAO,OAAO,QAAQ;EAC7E,IAAI,QAAQ,IAAI;EAChB,MAAM,SAAS,aAAa,QAAQ;EACpC,kBAAkB,QAAQ;EAC1B,oBAAoB,uBAAuB,EACzC,QAAQ,eAAe,QAAQ,MAAM,CAAC,EACxC,CAAC;CACH,GACA;EAAC;EAAqB;EAAgB;CAAY,CACpD;CAEA,MAAM,iBAAiB,kBAAkB;EACvC,IAAI,CAAC,gBAAgB;EACrB,MAAM,MAAM,aAAa,QAAQ,WAAW,WAAW,OAAO,OAAO,cAAc;EACnF,MAAM,SAAS,QAAQ,KAAK,OAAO,aAAa,QAAQ;EAExD,kBAAkB,IAAI;EAEtB,IAAI,CAAC,QAAQ;EAEb,oBAAoB,sBAAsB;GACxC,QAAQ,eAAe,QAAQ,MAAM,CAAC;GACtC,UAAU,MAAM;EAClB,CAAC;CACH,GAAG;EAAC;EAAgB;EAAqB;EAAgB;CAAY,CAAC;CAEtE,MAAM,aAAa,aAChB,cAAsB;EACrB,IAAI,CAAC,gBAAgB;EACrB,MAAM,eAAe,aAAa,QAAQ,WACvC,WAAW,OAAO,OAAO,cAC5B;EACA,IAAI,iBAAiB,IAAI;EACzB,MAAM,cAAc,eAAe;EACnC,IAAI,cAAc,KAAK,eAAe,aAAa,QAAQ,QAAQ;EAEnE,MAAM,cAAc,CAAC,GAAG,aAAa,OAAO;EAC5C,MAAM,CAAC,SAAS,YAAY,OAAO,cAAc,CAAC;EAClD,YAAY,OAAO,aAAa,GAAG,KAAK;EACxC,aAAa,aAAa,EAAE,SAAS,YAAY,CAAC;EAElD,qBAAqB,UAAU;CAOjC,GACA,CAAC,gBAAgB,YAAY,CAC/B;CAEA,sBAAsB;EACpB,IAAI,qBAAqB,YAAY,MAAM;EAC3C,MAAM,MAAM,qBAAqB;EACjC,qBAAqB,UAAU;EAC/B,WAAW,QAAQ,IAAI,EAAE,MAAM;CACjC,GAAG,CAAC,OAAO,CAAC;CAEZ,MAAM,YAAY,QAAQ,SAAS;CAenC,MAAM,gBAAgB,YAAY;CAElC,uBAAuB,UAAU;EAC/B,QAAQ;EACR,SAAS,EAAE,gDAAgD;EAC3D,WAAW;CACb,CAAC;CAED,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,mBAAD;EACa;EACX,OAAO,EAAE,SAAS;EACH;YAEd,QAAQ,KAAK,QAAQ,MAAM;GAC1B,MAAM,QAAQ,SAAS,OAAO;GAC9B,OACE,oBAAC,OAAD;IACE,WAAW,KAAK,+BAA+B;KAC7C,0CAA0C;KAC1C,0CAA0C;IAC5C,CAAC;cAGD,oBAAC,WAAD;KACE,oBAAkB,YAAY,gBAAgB,KAAA;KAC9C,WAAU;KACV,OAAO,CAAC,CAAC;KACT,uBAAsB;KACtB,IAAI,OAAO;KACX,SACE,YACE,oBAAC,yBAAD;MACE,OAAO;MACP,UAAU,OAAO,OAAO;MACxB,YAAY;MACZ,YAAY;MACZ,QAAQ;MACA;MACR,aAAa;MACb,kBAAkB,QAAQ;KAC3B,CAAA,IACC,KAAA;KAEN,SACE,QACE,oBAAC,QAAD;MAAM,eAAY;gBACf,sBAAsB,UAAU,EAAE,OAAO;KACtC,CAAA,IACJ,KAAA;KAEN,cAAc;MACZ,aAAa,gBAAgB,SAAS;KACxC;KACA,WAAW,MAAM;MACf,aAAa,aAAa,EACxB,SAAS;OAAE,OAAO;OAAG,MAAM,EAAE,OAAO;MAAM,EAC5C,CAAC;KACH;KACA,UAAU,UAAU;MAClB,MAAM,2BAA2B,MAAM,QAAQ,SAAS;MACxD,IAAI,MAAM,QAAQ,WAAW,CAAC,0BAC5B,gBAAgB,QAAQ,IAAI,EAAE,EAAE,MAAM;KAE1C;KACA,aAAa,EAAE,eAAe;KAC9B,MAAM,YAAY;MAChB,gBAAgB,QAAQ,KAAK;KAC/B;KACA,UACE,YACE,oBAAC,oBAAD;MAEE,cAAY,EAAE,oCAAoC,EAChD,QAAQ,eAAe,QAAQ,IAAI,CAAC,EACtC,CAAC;MACD,eAAe,YAAY,OAAO,EAAE;KACrC,CAAA,IACC,KAAA;KAEN,MAAK;KACL,OAAO,OAAO;IACf,CAAA;GACE,GA7DE,cAAc,GA6DhB;EAET,CAAC;CACgB,CAAA,GAClB,aACC,oBAAC,gBAAD;EAAgB,IAAI;YACjB,EAAE,gDAAgD;CACrC,CAAA,CAElB,EAAA,CAAA;AAEN;AAEA,IAAM,sBAAsB,EAAE,WAAW,GAAG,YAAyB;CACnE,MAAM,EAAE,oBAAoB,yBAAyB;CACrD,OACE,oBAAC,QAAD;EACE,YAAW;EACX,UAAA;EACA,WAAW,KAAK,wCAAwC,SAAS;EACjE,MAAK;EACL,SAAQ;EACR,GAAI;YAEJ,oBAAC,iBAAD,CAAkB,CAAA;CACZ,CAAA;AAEZ"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useStateStore } from "../../../store/hooks/useStateStore.mjs";
|
|
2
|
+
import { useTranslationContext } from "../../../context/TranslationContext.mjs";
|
|
3
|
+
import { Prompt } from "../../Dialog/components/Prompt.mjs";
|
|
4
|
+
import { useInteractionAnnouncements } from "../../Accessibility/hooks/useInteractionAnnouncements.mjs";
|
|
5
|
+
import { SwitchField } from "../../Form/SwitchField.mjs";
|
|
6
|
+
import { MultipleAnswersField } from "./MultipleAnswersField.mjs";
|
|
7
|
+
import { NameField } from "./NameField.mjs";
|
|
8
|
+
import { OptionFieldSet } from "./OptionFieldSet.mjs";
|
|
9
|
+
import { PollCreationDialogControls } from "./PollCreationDialogControls.mjs";
|
|
10
|
+
import { useMessageComposerController } from "../../MessageComposer/hooks/useMessageComposerController.mjs";
|
|
11
|
+
import { useEffect } from "react";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { VotingVisibility } from "stream-chat";
|
|
14
|
+
//#region src/components/Poll/PollCreationDialog/PollCreationDialog.tsx
|
|
15
|
+
var pollComposerStateSelector = (state) => ({
|
|
16
|
+
allow_answers: state.data.allow_answers,
|
|
17
|
+
allow_user_suggested_options: state.data.allow_user_suggested_options,
|
|
18
|
+
voting_visibility: state.data.voting_visibility
|
|
19
|
+
});
|
|
20
|
+
var PollCreationDialog = ({ close }) => {
|
|
21
|
+
const { t } = useTranslationContext();
|
|
22
|
+
const { announceInteraction } = useInteractionAnnouncements();
|
|
23
|
+
const { pollComposer } = useMessageComposerController();
|
|
24
|
+
const { allow_answers, allow_user_suggested_options, voting_visibility } = useStateStore(pollComposer.state, pollComposerStateSelector);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
announceInteraction("poll.dialogOpened");
|
|
27
|
+
}, [announceInteraction]);
|
|
28
|
+
return /* @__PURE__ */ jsxs(Prompt.Root, {
|
|
29
|
+
className: "str-chat__poll-creation-dialog",
|
|
30
|
+
"data-testid": "poll-creation-dialog",
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ jsx(Prompt.Header, {
|
|
33
|
+
close,
|
|
34
|
+
description: t("Create a question, add options, and configure poll settings"),
|
|
35
|
+
title: t("Create poll")
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ jsx(Prompt.Body, { children: /* @__PURE__ */ jsxs("form", {
|
|
38
|
+
autoComplete: "off",
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ jsx(NameField, {}),
|
|
41
|
+
/* @__PURE__ */ jsx(OptionFieldSet, {}),
|
|
42
|
+
/* @__PURE__ */ jsxs("div", {
|
|
43
|
+
className: "str-chat__poll-creation-dialog__features-selectors",
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ jsx(MultipleAnswersField, {}),
|
|
46
|
+
/* @__PURE__ */ jsx(SwitchField, {
|
|
47
|
+
checked: voting_visibility === "anonymous",
|
|
48
|
+
description: t("Hide who voted"),
|
|
49
|
+
id: "voting_visibility",
|
|
50
|
+
onChange: (e) => pollComposer.updateFields({ voting_visibility: e.target.checked ? VotingVisibility.anonymous : VotingVisibility.public }),
|
|
51
|
+
title: t("Anonymous poll")
|
|
52
|
+
}),
|
|
53
|
+
/* @__PURE__ */ jsx(SwitchField, {
|
|
54
|
+
checked: allow_user_suggested_options,
|
|
55
|
+
description: t("Let others add options"),
|
|
56
|
+
id: "allow_user_suggested_options",
|
|
57
|
+
onChange: (e) => pollComposer.updateFields({ allow_user_suggested_options: e.target.checked }),
|
|
58
|
+
title: t("Suggest an option")
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ jsx(SwitchField, {
|
|
61
|
+
checked: allow_answers,
|
|
62
|
+
description: t("Allow others to add comments"),
|
|
63
|
+
id: "allow_answers",
|
|
64
|
+
onChange: (e) => pollComposer.updateFields({ allow_answers: e.target.checked }),
|
|
65
|
+
title: t("Add a comment")
|
|
66
|
+
})
|
|
67
|
+
]
|
|
68
|
+
})
|
|
69
|
+
]
|
|
70
|
+
}) }),
|
|
71
|
+
/* @__PURE__ */ jsx(PollCreationDialogControls, { close })
|
|
72
|
+
]
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
//#endregion
|
|
76
|
+
export { PollCreationDialog };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=PollCreationDialog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PollCreationDialog.mjs","names":[],"sources":["../../../../../src/components/Poll/PollCreationDialog/PollCreationDialog.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type { PollComposerState } from 'stream-chat';\nimport { VotingVisibility } from 'stream-chat';\nimport { MultipleAnswersField } from './MultipleAnswersField';\nimport { NameField } from './NameField';\nimport { OptionFieldSet } from './OptionFieldSet';\nimport { PollCreationDialogControls } from './PollCreationDialogControls';\nimport { Prompt } from '../../Dialog';\nimport { SwitchField } from '../../Form/SwitchField';\nimport { useInteractionAnnouncements } from '../../Accessibility';\nimport { useMessageComposerController } from '../../MessageComposer/hooks/useMessageComposerController';\nimport { useTranslationContext } from '../../../context';\nimport { useStateStore } from '../../../store';\n\nexport type PollCreationDialogProps = {\n close: () => void;\n};\n\nconst pollComposerStateSelector = (state: PollComposerState) => ({\n allow_answers: state.data.allow_answers,\n allow_user_suggested_options: state.data.allow_user_suggested_options,\n voting_visibility: state.data.voting_visibility,\n});\n\nexport const PollCreationDialog = ({ close }: PollCreationDialogProps) => {\n const { t } = useTranslationContext();\n const { announceInteraction } = useInteractionAnnouncements();\n const { pollComposer } = useMessageComposerController();\n const { allow_answers, allow_user_suggested_options, voting_visibility } =\n useStateStore(pollComposer.state, pollComposerStateSelector);\n\n useEffect(() => {\n announceInteraction('poll.dialogOpened');\n }, [announceInteraction]);\n\n return (\n <Prompt.Root\n className='str-chat__poll-creation-dialog'\n data-testid='poll-creation-dialog'\n >\n <Prompt.Header\n close={close}\n description={t('Create a question, add options, and configure poll settings')}\n title={t('Create poll')}\n />\n <Prompt.Body>\n <form autoComplete='off'>\n <NameField />\n <OptionFieldSet />\n <div className='str-chat__poll-creation-dialog__features-selectors'>\n <MultipleAnswersField />\n <SwitchField\n checked={voting_visibility === 'anonymous'}\n description={t('Hide who voted')}\n id='voting_visibility'\n onChange={(e) =>\n pollComposer.updateFields({\n voting_visibility: e.target.checked\n ? VotingVisibility.anonymous\n : VotingVisibility.public,\n })\n }\n title={t('Anonymous poll')}\n />\n <SwitchField\n checked={allow_user_suggested_options}\n description={t('Let others add options')}\n id='allow_user_suggested_options'\n onChange={(e) =>\n pollComposer.updateFields({\n allow_user_suggested_options: e.target.checked,\n })\n }\n title={t('Suggest an option')}\n />\n <SwitchField\n checked={allow_answers}\n description={t('Allow others to add comments')}\n id='allow_answers'\n onChange={(e) =>\n pollComposer.updateFields({ allow_answers: e.target.checked })\n }\n title={t('Add a comment')}\n />\n </div>\n </form>\n </Prompt.Body>\n <PollCreationDialogControls close={close} />\n </Prompt.Root>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAkBA,IAAM,6BAA6B,WAA8B;CAC/D,eAAe,MAAM,KAAK;CAC1B,8BAA8B,MAAM,KAAK;CACzC,mBAAmB,MAAM,KAAK;AAChC;AAEA,IAAa,sBAAsB,EAAE,YAAqC;CACxE,MAAM,EAAE,MAAM,sBAAsB;CACpC,MAAM,EAAE,wBAAwB,4BAA4B;CAC5D,MAAM,EAAE,iBAAiB,6BAA6B;CACtD,MAAM,EAAE,eAAe,8BAA8B,sBACnD,cAAc,aAAa,OAAO,yBAAyB;CAE7D,gBAAgB;EACd,oBAAoB,mBAAmB;CACzC,GAAG,CAAC,mBAAmB,CAAC;CAExB,OACE,qBAAC,OAAO,MAAR;EACE,WAAU;EACV,eAAY;YAFd;GAIE,oBAAC,OAAO,QAAR;IACS;IACP,aAAa,EAAE,6DAA6D;IAC5E,OAAO,EAAE,aAAa;GACvB,CAAA;GACD,oBAAC,OAAO,MAAR,EAAA,UACE,qBAAC,QAAD;IAAM,cAAa;cAAnB;KACE,oBAAC,WAAD,CAAY,CAAA;KACZ,oBAAC,gBAAD,CAAiB,CAAA;KACjB,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,sBAAD,CAAuB,CAAA;OACvB,oBAAC,aAAD;QACE,SAAS,sBAAsB;QAC/B,aAAa,EAAE,gBAAgB;QAC/B,IAAG;QACH,WAAW,MACT,aAAa,aAAa,EACxB,mBAAmB,EAAE,OAAO,UACxB,iBAAiB,YACjB,iBAAiB,OACvB,CAAC;QAEH,OAAO,EAAE,gBAAgB;OAC1B,CAAA;OACD,oBAAC,aAAD;QACE,SAAS;QACT,aAAa,EAAE,wBAAwB;QACvC,IAAG;QACH,WAAW,MACT,aAAa,aAAa,EACxB,8BAA8B,EAAE,OAAO,QACzC,CAAC;QAEH,OAAO,EAAE,mBAAmB;OAC7B,CAAA;OACD,oBAAC,aAAD;QACE,SAAS;QACT,aAAa,EAAE,8BAA8B;QAC7C,IAAG;QACH,WAAW,MACT,aAAa,aAAa,EAAE,eAAe,EAAE,OAAO,QAAQ,CAAC;QAE/D,OAAO,EAAE,eAAe;OACzB,CAAA;MACE;;IACD;MACK,CAAA;GACb,oBAAC,4BAAD,EAAmC,MAAQ,CAAA;EAChC;;AAEjB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { useComponentContextIcons } from "../../../context/useComponentContextIcons.mjs";
|
|
2
|
+
import { useMessageComposerContext } from "../../../context/MessageComposerContext.mjs";
|
|
3
|
+
import { useTranslationContext } from "../../../context/TranslationContext.mjs";
|
|
4
|
+
import { Prompt } from "../../Dialog/components/Prompt.mjs";
|
|
5
|
+
import { useCanCreatePoll } from "../../MessageComposer/hooks/useCanCreatePoll.mjs";
|
|
6
|
+
import { useMessageComposerController } from "../../MessageComposer/hooks/useMessageComposerController.mjs";
|
|
7
|
+
import { useNotificationApi } from "../../Notifications/hooks/useNotificationApi.mjs";
|
|
8
|
+
import "react";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import clsx from "clsx";
|
|
11
|
+
import { flushSync } from "react-dom";
|
|
12
|
+
//#region src/components/Poll/PollCreationDialog/PollCreationDialogControls.tsx
|
|
13
|
+
var PollCreationDialogControls = ({ close }) => {
|
|
14
|
+
const { IconSend } = useComponentContextIcons();
|
|
15
|
+
const { t } = useTranslationContext("PollCreationDialogControls");
|
|
16
|
+
const { handleSubmit: handleSubmitMessage, textareaRef } = useMessageComposerContext();
|
|
17
|
+
const messageComposer = useMessageComposerController();
|
|
18
|
+
const canCreatePoll = useCanCreatePoll();
|
|
19
|
+
const { addNotification } = useNotificationApi();
|
|
20
|
+
return /* @__PURE__ */ jsx(Prompt.Footer, { children: /* @__PURE__ */ jsxs(Prompt.FooterControls, { children: [/* @__PURE__ */ jsx(Prompt.FooterControlsButtonSecondary, {
|
|
21
|
+
className: clsx("str-chat__prompt__footer__controls-button--cancel"),
|
|
22
|
+
onClick: close,
|
|
23
|
+
type: "button",
|
|
24
|
+
children: t("Cancel")
|
|
25
|
+
}), /* @__PURE__ */ jsxs(Prompt.FooterControlsButtonPrimary, {
|
|
26
|
+
className: clsx("str-chat__prompt__footer__controls-button--submit"),
|
|
27
|
+
disabled: !canCreatePoll,
|
|
28
|
+
onClick: async () => {
|
|
29
|
+
flushSync(() => close());
|
|
30
|
+
textareaRef?.current?.focus();
|
|
31
|
+
try {
|
|
32
|
+
await messageComposer.createPoll();
|
|
33
|
+
} catch {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
await handleSubmitMessage();
|
|
38
|
+
} catch {
|
|
39
|
+
addNotification({
|
|
40
|
+
emitter: "PollCreationDialog",
|
|
41
|
+
message: t("Send message request failed"),
|
|
42
|
+
severity: "error",
|
|
43
|
+
type: "api:message:send:failed"
|
|
44
|
+
});
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
addNotification({
|
|
48
|
+
ariaLive: "assertive",
|
|
49
|
+
emitter: "PollCreationDialog",
|
|
50
|
+
message: t("Poll sent"),
|
|
51
|
+
severity: "success",
|
|
52
|
+
type: "api:poll:create:success"
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
type: "submit",
|
|
56
|
+
children: [/* @__PURE__ */ jsx(IconSend, {}), t("Send poll")]
|
|
57
|
+
})] }) });
|
|
58
|
+
};
|
|
59
|
+
//#endregion
|
|
60
|
+
export { PollCreationDialogControls };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=PollCreationDialogControls.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PollCreationDialogControls.mjs","names":[],"sources":["../../../../../src/components/Poll/PollCreationDialog/PollCreationDialogControls.tsx"],"sourcesContent":["import React from 'react';\nimport { flushSync } from 'react-dom';\nimport { useCanCreatePoll } from '../../MessageComposer/hooks/useCanCreatePoll';\nimport { useMessageComposerController } from '../../MessageComposer/hooks/useMessageComposerController';\nimport {\n useComponentContextIcons,\n useMessageComposerContext,\n useTranslationContext,\n} from '../../../context';\nimport clsx from 'clsx';\nimport { Prompt } from '../../Dialog';\nimport { useNotificationApi } from '../../Notifications';\n\nexport type PollCreationDialogControlsProps = {\n close: () => void;\n};\n\nexport const PollCreationDialogControls = ({\n close,\n}: PollCreationDialogControlsProps) => {\n const { IconSend } = useComponentContextIcons();\n\n const { t } = useTranslationContext('PollCreationDialogControls');\n const { handleSubmit: handleSubmitMessage, textareaRef } = useMessageComposerContext();\n const messageComposer = useMessageComposerController();\n const canCreatePoll = useCanCreatePoll();\n const { addNotification } = useNotificationApi();\n\n return (\n <Prompt.Footer>\n <Prompt.FooterControls>\n <Prompt.FooterControlsButtonSecondary\n className={clsx('str-chat__prompt__footer__controls-button--cancel')}\n onClick={close}\n type='button'\n >\n {t('Cancel')}\n </Prompt.FooterControlsButtonSecondary>\n <Prompt.FooterControlsButtonPrimary\n className={clsx('str-chat__prompt__footer__controls-button--submit')}\n disabled={!canCreatePoll}\n onClick={async () => {\n // Close optimistically and move focus to the composer in the SAME synchronous turn,\n // BEFORE the async work starts. `flushSync` unmounts the modal now; we then focus the\n // textarea immediately, so it is the active element before any focus-restore runs.\n // Both restorers (react-aria's FocusScope and AttachmentSelector's trigger restore)\n // only act if focus fell to <body>, so moving it to the composer first suppresses\n // them — avoiding a focus blip through the attachment \"+\" trigger (a screen reader\n // would otherwise announce that extra jump before landing in the composer). Closing\n // first also avoids the Send→Close button blip while createPoll() is in flight.\n flushSync(() => close());\n textareaRef?.current?.focus();\n try {\n await messageComposer.createPoll();\n } catch {\n // createPoll() in stream-chat-js already publishes an\n // `api:poll:create:failed` notification (with the underlying error\n // `reason`) via client.notifications.addError, so we swallow the\n // rethrown error here only to avoid an unhandled rejection. The poll\n // was not created, so do not attempt to send the message.\n return;\n }\n // The poll exists now; sending the message is a separate step. Keep it in its own\n // try/catch so a send failure is surfaced (createPoll's self-notification only covers\n // poll creation) instead of being swallowed alongside it.\n try {\n await handleSubmitMessage();\n } catch {\n addNotification({\n emitter: 'PollCreationDialog',\n message: t('Send message request failed'),\n severity: 'error',\n type: 'api:message:send:failed',\n });\n return;\n }\n addNotification({\n // Announce assertively: focus has just returned to the composer, so a polite\n // \"Poll sent\" would be queued behind the textarea's focus announcement and read\n // last (confusing). Assertive lets the confirmation be heard promptly.\n ariaLive: 'assertive',\n emitter: 'PollCreationDialog',\n message: t('Poll sent'),\n severity: 'success',\n type: 'api:poll:create:success',\n });\n }}\n type='submit'\n >\n <IconSend />\n {t('Send poll')}\n </Prompt.FooterControlsButtonPrimary>\n </Prompt.FooterControls>\n </Prompt.Footer>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAa,8BAA8B,EACzC,YACqC;CACrC,MAAM,EAAE,aAAa,yBAAyB;CAE9C,MAAM,EAAE,MAAM,sBAAsB,4BAA4B;CAChE,MAAM,EAAE,cAAc,qBAAqB,gBAAgB,0BAA0B;CACrF,MAAM,kBAAkB,6BAA6B;CACrD,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,EAAE,oBAAoB,mBAAmB;CAE/C,OACE,oBAAC,OAAO,QAAR,EAAA,UACE,qBAAC,OAAO,gBAAR,EAAA,UAAA,CACE,oBAAC,OAAO,+BAAR;EACE,WAAW,KAAK,mDAAmD;EACnE,SAAS;EACT,MAAK;YAEJ,EAAE,QAAQ;CACyB,CAAA,GACtC,qBAAC,OAAO,6BAAR;EACE,WAAW,KAAK,mDAAmD;EACnE,UAAU,CAAC;EACX,SAAS,YAAY;GASnB,gBAAgB,MAAM,CAAC;GACvB,aAAa,SAAS,MAAM;GAC5B,IAAI;IACF,MAAM,gBAAgB,WAAW;GACnC,QAAQ;IAMN;GACF;GAIA,IAAI;IACF,MAAM,oBAAoB;GAC5B,QAAQ;IACN,gBAAgB;KACd,SAAS;KACT,SAAS,EAAE,6BAA6B;KACxC,UAAU;KACV,MAAM;IACR,CAAC;IACD;GACF;GACA,gBAAgB;IAId,UAAU;IACV,SAAS;IACT,SAAS,EAAE,WAAW;IACtB,UAAU;IACV,MAAM;GACR,CAAC;EACH;EACA,MAAK;YAjDP,CAmDE,oBAAC,UAAD,CAAW,CAAA,GACV,EAAE,WAAW,CACoB;GACf,EAAA,CAAA,EACV,CAAA;AAEnB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { useComponentContextIcons } from "../../../context/useComponentContextIcons.mjs";
|
|
2
|
+
import { useTranslationContext } from "../../../context/TranslationContext.mjs";
|
|
3
|
+
import { useAriaLiveAnnouncer } from "../../Accessibility/useAriaLiveAnnouncer.mjs";
|
|
4
|
+
import { useEffect, useRef } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/Poll/PollCreationDialog/PollOptionReorderHandle.tsx
|
|
7
|
+
var PollOptionReorderHandle = ({ index, isActive, onActivate, onDeselect, onMove, option, registerRef, totalOptionCount }) => {
|
|
8
|
+
const { IconReorder } = useComponentContextIcons();
|
|
9
|
+
const { t } = useTranslationContext();
|
|
10
|
+
const announce = useAriaLiveAnnouncer();
|
|
11
|
+
const hasAnnouncedFocusRef = useRef(false);
|
|
12
|
+
const focusAnnouncementFrameRef = useRef(null);
|
|
13
|
+
const position = index + 1;
|
|
14
|
+
const optionLabel = option.text.trim() || t("aria/Option {{ position }}", { position });
|
|
15
|
+
const ariaLabel = isActive ? t("aria/Reorder \"{{ option }}\" at position {{ position }} of {{ total }}", {
|
|
16
|
+
option: optionLabel,
|
|
17
|
+
position,
|
|
18
|
+
total: totalOptionCount
|
|
19
|
+
}) : t("aria/Reorder option {{ position }}", { position });
|
|
20
|
+
useEffect(() => () => {
|
|
21
|
+
if (focusAnnouncementFrameRef.current === null) return;
|
|
22
|
+
cancelAnimationFrame(focusAnnouncementFrameRef.current);
|
|
23
|
+
}, []);
|
|
24
|
+
const onKeyDown = (event) => {
|
|
25
|
+
if (!isActive) return;
|
|
26
|
+
if (event.key === "ArrowUp") {
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
onMove(-1);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (event.key === "ArrowDown") {
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
onMove(1);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (event.key === "Escape" || event.key === "Esc") {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
onDeselect();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
return /* @__PURE__ */ jsx("button", {
|
|
42
|
+
"aria-label": ariaLabel,
|
|
43
|
+
"aria-pressed": isActive,
|
|
44
|
+
className: "str-chat__drag-handle-button",
|
|
45
|
+
onBlur: () => {
|
|
46
|
+
if (focusAnnouncementFrameRef.current !== null) {
|
|
47
|
+
cancelAnimationFrame(focusAnnouncementFrameRef.current);
|
|
48
|
+
focusAnnouncementFrameRef.current = null;
|
|
49
|
+
}
|
|
50
|
+
hasAnnouncedFocusRef.current = false;
|
|
51
|
+
if (isActive) onDeselect();
|
|
52
|
+
},
|
|
53
|
+
onClick: () => {
|
|
54
|
+
if (isActive) {
|
|
55
|
+
onDeselect();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
onActivate(option.id);
|
|
59
|
+
},
|
|
60
|
+
onFocus: () => {
|
|
61
|
+
if (isActive || hasAnnouncedFocusRef.current) return;
|
|
62
|
+
hasAnnouncedFocusRef.current = true;
|
|
63
|
+
focusAnnouncementFrameRef.current = requestAnimationFrame(() => {
|
|
64
|
+
announce(t("aria/Press Space to select this option, use the Up and Down arrow keys to move it, then press Space again to deselect it."), { priority: "assertive" });
|
|
65
|
+
focusAnnouncementFrameRef.current = null;
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
onKeyDown,
|
|
69
|
+
ref: (element) => {
|
|
70
|
+
registerRef(index, element);
|
|
71
|
+
},
|
|
72
|
+
type: "button",
|
|
73
|
+
children: /* @__PURE__ */ jsx(IconReorder, { className: "str-chat__drag-handle" })
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
//#endregion
|
|
77
|
+
export { PollOptionReorderHandle };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=PollOptionReorderHandle.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PollOptionReorderHandle.mjs","names":[],"sources":["../../../../../src/components/Poll/PollCreationDialog/PollOptionReorderHandle.tsx"],"sourcesContent":["import type { KeyboardEvent as ReactKeyboardEvent } from 'react';\nimport React, { useEffect, useRef } from 'react';\nimport type { PollComposerOption } from 'stream-chat';\n\nimport { useAriaLiveAnnouncer } from '../../Accessibility';\nimport { useComponentContextIcons, useTranslationContext } from '../../../context';\n\ntype PollOptionReorderHandleProps = {\n index: number;\n isActive: boolean;\n onActivate: (optionId: string) => void;\n onDeselect: () => void;\n onMove: (direction: -1 | 1) => void;\n option: PollComposerOption;\n registerRef: (index: number, element: HTMLButtonElement | null) => void;\n /** Total number of options. Used to embed \"position N of total\" into the\n * active handle's aria-label so VoiceOver's native focus announcement after a\n * move carries the new position instead of just \"Reorder option N\". */\n totalOptionCount: number;\n};\n\nexport const PollOptionReorderHandle = ({\n index,\n isActive,\n onActivate,\n onDeselect,\n onMove,\n option,\n registerRef,\n totalOptionCount,\n}: PollOptionReorderHandleProps) => {\n const { IconReorder } = useComponentContextIcons();\n\n const { t } = useTranslationContext();\n const announce = useAriaLiveAnnouncer();\n const hasAnnouncedFocusRef = useRef(false);\n const focusAnnouncementFrameRef = useRef<number | null>(null);\n\n const position = index + 1;\n const optionLabel = option.text.trim() || t('aria/Option {{ position }}', { position });\n // While picked up, fold the option text + new position into the aria-label\n // so VoiceOver speaks \"Reorder 'option B' at position 1 of 3\" on the focus\n // event triggered by ArrowUp/ArrowDown. That replaces the otherwise\n // redundant \"Reorder option N, selected, toggle button\" native announcement\n // and removes the need for a duplicate live-region \"moved to position\"\n // message.\n const ariaLabel = isActive\n ? t('aria/Reorder \"{{ option }}\" at position {{ position }} of {{ total }}', {\n option: optionLabel,\n position,\n total: totalOptionCount,\n })\n : t('aria/Reorder option {{ position }}', { position });\n\n useEffect(\n () => () => {\n if (focusAnnouncementFrameRef.current === null) return;\n cancelAnimationFrame(focusAnnouncementFrameRef.current);\n },\n [],\n );\n\n const onKeyDown = (event: ReactKeyboardEvent<HTMLButtonElement>) => {\n if (!isActive) return;\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n onMove(-1);\n return;\n }\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n onMove(1);\n return;\n }\n if (event.key === 'Escape' || event.key === 'Esc') {\n event.preventDefault();\n onDeselect();\n }\n };\n\n return (\n <button\n aria-label={ariaLabel}\n aria-pressed={isActive}\n className='str-chat__drag-handle-button'\n onBlur={() => {\n if (focusAnnouncementFrameRef.current !== null) {\n cancelAnimationFrame(focusAnnouncementFrameRef.current);\n focusAnnouncementFrameRef.current = null;\n }\n hasAnnouncedFocusRef.current = false;\n if (isActive) {\n // Tabbing or clicking away while picked up drops the option.\n onDeselect();\n }\n }}\n onClick={() => {\n if (isActive) {\n onDeselect();\n return;\n }\n onActivate(option.id);\n }}\n onFocus={() => {\n if (isActive || hasAnnouncedFocusRef.current) return;\n\n hasAnnouncedFocusRef.current = true;\n focusAnnouncementFrameRef.current = requestAnimationFrame(() => {\n announce(\n t(\n 'aria/Press Space to select this option, use the Up and Down arrow keys to move it, then press Space again to deselect it.',\n ),\n { priority: 'assertive' },\n );\n focusAnnouncementFrameRef.current = null;\n });\n }}\n onKeyDown={onKeyDown}\n ref={(element) => {\n registerRef(index, element);\n }}\n type='button'\n >\n <IconReorder className='str-chat__drag-handle' />\n </button>\n );\n};\n"],"mappings":";;;;;;AAqBA,IAAa,2BAA2B,EACtC,OACA,UACA,YACA,YACA,QACA,QACA,aACA,uBACkC;CAClC,MAAM,EAAE,gBAAgB,yBAAyB;CAEjD,MAAM,EAAE,MAAM,sBAAsB;CACpC,MAAM,WAAW,qBAAqB;CACtC,MAAM,uBAAuB,OAAO,KAAK;CACzC,MAAM,4BAA4B,OAAsB,IAAI;CAE5D,MAAM,WAAW,QAAQ;CACzB,MAAM,cAAc,OAAO,KAAK,KAAK,KAAK,EAAE,8BAA8B,EAAE,SAAS,CAAC;CAOtF,MAAM,YAAY,WACd,EAAE,2EAAyE;EACzE,QAAQ;EACR;EACA,OAAO;CACT,CAAC,IACD,EAAE,sCAAsC,EAAE,SAAS,CAAC;CAExD,sBACc;EACV,IAAI,0BAA0B,YAAY,MAAM;EAChD,qBAAqB,0BAA0B,OAAO;CACxD,GACA,CAAC,CACH;CAEA,MAAM,aAAa,UAAiD;EAClE,IAAI,CAAC,UAAU;EAEf,IAAI,MAAM,QAAQ,WAAW;GAC3B,MAAM,eAAe;GACrB,OAAO,EAAE;GACT;EACF;EACA,IAAI,MAAM,QAAQ,aAAa;GAC7B,MAAM,eAAe;GACrB,OAAO,CAAC;GACR;EACF;EACA,IAAI,MAAM,QAAQ,YAAY,MAAM,QAAQ,OAAO;GACjD,MAAM,eAAe;GACrB,WAAW;EACb;CACF;CAEA,OACE,oBAAC,UAAD;EACE,cAAY;EACZ,gBAAc;EACd,WAAU;EACV,cAAc;GACZ,IAAI,0BAA0B,YAAY,MAAM;IAC9C,qBAAqB,0BAA0B,OAAO;IACtD,0BAA0B,UAAU;GACtC;GACA,qBAAqB,UAAU;GAC/B,IAAI,UAEF,WAAW;EAEf;EACA,eAAe;GACb,IAAI,UAAU;IACZ,WAAW;IACX;GACF;GACA,WAAW,OAAO,EAAE;EACtB;EACA,eAAe;GACb,IAAI,YAAY,qBAAqB,SAAS;GAE9C,qBAAqB,UAAU;GAC/B,0BAA0B,UAAU,4BAA4B;IAC9D,SACE,EACE,2HACF,GACA,EAAE,UAAU,YAAY,CAC1B;IACA,0BAA0B,UAAU;GACtC,CAAC;EACH;EACW;EACX,MAAM,YAAY;GAChB,YAAY,OAAO,OAAO;EAC5B;EACA,MAAK;YAEL,oBAAC,aAAD,EAAa,WAAU,wBAAyB,CAAA;CAC1C,CAAA;AAEZ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useStateStore } from "../../store/hooks/useStateStore.mjs";
|
|
2
|
+
import { usePollContext } from "../../context/PollContext.mjs";
|
|
3
|
+
import { useTranslationContext } from "../../context/TranslationContext.mjs";
|
|
4
|
+
import { useMemo } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/Poll/PollHeader.tsx
|
|
7
|
+
var pollStateSelector = (nextValue) => ({
|
|
8
|
+
enforce_unique_vote: nextValue.enforce_unique_vote,
|
|
9
|
+
is_closed: nextValue.is_closed,
|
|
10
|
+
max_votes_allowed: nextValue.max_votes_allowed,
|
|
11
|
+
name: nextValue.name,
|
|
12
|
+
options: nextValue.options
|
|
13
|
+
});
|
|
14
|
+
var PollHeader = () => {
|
|
15
|
+
const { t } = useTranslationContext("PollHeader");
|
|
16
|
+
const { poll } = usePollContext();
|
|
17
|
+
const { enforce_unique_vote, is_closed, max_votes_allowed, name, options } = useStateStore(poll.state, pollStateSelector);
|
|
18
|
+
const selectionInstructions = useMemo(() => {
|
|
19
|
+
if (is_closed) return t("Vote ended");
|
|
20
|
+
if (enforce_unique_vote || options.length === 1) return t("Select one");
|
|
21
|
+
if (max_votes_allowed) return t("Select up to {{count}}", { count: max_votes_allowed > options.length ? options.length : max_votes_allowed });
|
|
22
|
+
if (options.length > 1) return t("Select one or more");
|
|
23
|
+
return "";
|
|
24
|
+
}, [
|
|
25
|
+
is_closed,
|
|
26
|
+
enforce_unique_vote,
|
|
27
|
+
max_votes_allowed,
|
|
28
|
+
options.length,
|
|
29
|
+
t
|
|
30
|
+
]);
|
|
31
|
+
if (!name) return null;
|
|
32
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
33
|
+
className: "str-chat__poll-header",
|
|
34
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
35
|
+
className: "str-chat__poll-title",
|
|
36
|
+
children: name
|
|
37
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
38
|
+
className: "str-chat__poll-subtitle",
|
|
39
|
+
children: selectionInstructions
|
|
40
|
+
})]
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
//#endregion
|
|
44
|
+
export { PollHeader };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=PollHeader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PollHeader.mjs","names":[],"sources":["../../../../src/components/Poll/PollHeader.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { usePollContext, useTranslationContext } from '../../context';\nimport { useStateStore } from '../../store';\nimport type { PollOption, PollState } from 'stream-chat';\n\ntype PollStateSelectorReturnValue = {\n enforce_unique_vote: boolean;\n is_closed: boolean | undefined;\n max_votes_allowed: number;\n name: string;\n options: PollOption[];\n};\nconst pollStateSelector = (nextValue: PollState): PollStateSelectorReturnValue => ({\n enforce_unique_vote: nextValue.enforce_unique_vote,\n is_closed: nextValue.is_closed,\n max_votes_allowed: nextValue.max_votes_allowed,\n name: nextValue.name,\n options: nextValue.options,\n});\n\nexport const PollHeader = () => {\n const { t } = useTranslationContext('PollHeader');\n\n const { poll } = usePollContext();\n const { enforce_unique_vote, is_closed, max_votes_allowed, name, options } =\n useStateStore(poll.state, pollStateSelector);\n\n const selectionInstructions = useMemo(() => {\n if (is_closed) return t('Vote ended');\n if (enforce_unique_vote || options.length === 1) return t('Select one');\n if (max_votes_allowed)\n return t('Select up to {{count}}', {\n count: max_votes_allowed > options.length ? options.length : max_votes_allowed,\n });\n if (options.length > 1) return t('Select one or more');\n return '';\n }, [is_closed, enforce_unique_vote, max_votes_allowed, options.length, t]);\n\n if (!name) return null;\n\n return (\n <div className='str-chat__poll-header'>\n <div className='str-chat__poll-title'>{name}</div>\n <div className='str-chat__poll-subtitle'>{selectionInstructions}</div>\n </div>\n );\n};\n"],"mappings":";;;;;;AAYA,IAAM,qBAAqB,eAAwD;CACjF,qBAAqB,UAAU;CAC/B,WAAW,UAAU;CACrB,mBAAmB,UAAU;CAC7B,MAAM,UAAU;CAChB,SAAS,UAAU;AACrB;AAEA,IAAa,mBAAmB;CAC9B,MAAM,EAAE,MAAM,sBAAsB,YAAY;CAEhD,MAAM,EAAE,SAAS,eAAe;CAChC,MAAM,EAAE,qBAAqB,WAAW,mBAAmB,MAAM,YAC/D,cAAc,KAAK,OAAO,iBAAiB;CAE7C,MAAM,wBAAwB,cAAc;EAC1C,IAAI,WAAW,OAAO,EAAE,YAAY;EACpC,IAAI,uBAAuB,QAAQ,WAAW,GAAG,OAAO,EAAE,YAAY;EACtE,IAAI,mBACF,OAAO,EAAE,0BAA0B,EACjC,OAAO,oBAAoB,QAAQ,SAAS,QAAQ,SAAS,kBAC/D,CAAC;EACH,IAAI,QAAQ,SAAS,GAAG,OAAO,EAAE,oBAAoB;EACrD,OAAO;CACT,GAAG;EAAC;EAAW;EAAqB;EAAmB,QAAQ;EAAQ;CAAC,CAAC;CAEzE,IAAI,CAAC,MAAM,OAAO;CAElB,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,oBAAC,OAAD;GAAK,WAAU;aAAwB;EAAU,CAAA,GACjD,oBAAC,OAAD;GAAK,WAAU;aAA2B;EAA2B,CAAA,CAClE;;AAET"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useComponentContext } from "../../context/ComponentContext.mjs";
|
|
2
|
+
import { useStateStore } from "../../store/hooks/useStateStore.mjs";
|
|
3
|
+
import { usePollContext } from "../../context/PollContext.mjs";
|
|
4
|
+
import { useTranslationContext } from "../../context/TranslationContext.mjs";
|
|
5
|
+
import { PollAction } from "./PollActions/PollAction.mjs";
|
|
6
|
+
import { PollOptionSelector } from "./PollOptionSelector.mjs";
|
|
7
|
+
import { PollOptionsFullList } from "./PollActions/PollOptionsFullList.mjs";
|
|
8
|
+
import { useCallback, useState } from "react";
|
|
9
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import clsx from "clsx";
|
|
11
|
+
//#region src/components/Poll/PollOptionList.tsx
|
|
12
|
+
var pollStateSelector = (nextValue) => ({ options: nextValue.options });
|
|
13
|
+
var PollOptionList = ({ optionsDisplayCount, PollOptionsFullList: PollOptionsFullList$1 = PollOptionsFullList }) => {
|
|
14
|
+
const { PollOptionSelector: PollOptionSelector$1 = PollOptionSelector } = useComponentContext();
|
|
15
|
+
const { t } = useTranslationContext("PollOptionList");
|
|
16
|
+
const { poll } = usePollContext();
|
|
17
|
+
const { options } = useStateStore(poll.state, pollStateSelector);
|
|
18
|
+
const [viewAllOptionsOpen, setViewAllOptionsOpen] = useState(false);
|
|
19
|
+
const closeViewAllOptions = useCallback(() => setViewAllOptionsOpen(false), []);
|
|
20
|
+
const openViewAllOptions = useCallback(() => setViewAllOptionsOpen(true), []);
|
|
21
|
+
const showMoreOptionsButton = typeof optionsDisplayCount === "number" && options.length > optionsDisplayCount;
|
|
22
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
23
|
+
className: clsx("str-chat__poll-option-list", { "str-chat__poll-option-list--full": typeof optionsDisplayCount === "undefined" }),
|
|
24
|
+
children: options.slice(0, optionsDisplayCount ?? options.length).map((option) => /* @__PURE__ */ jsx(PollOptionSelector$1, {
|
|
25
|
+
displayAvatarCount: 3,
|
|
26
|
+
option
|
|
27
|
+
}, `poll-option-${option.id}`))
|
|
28
|
+
}), showMoreOptionsButton && /* @__PURE__ */ jsx(PollAction, {
|
|
29
|
+
buttonText: t("+{{count}} more options", { count: options.length }),
|
|
30
|
+
closeModal: closeViewAllOptions,
|
|
31
|
+
isAdditionalAction: true,
|
|
32
|
+
modalClassName: "str-chat__poll-action-modal",
|
|
33
|
+
modalIsOpen: viewAllOptionsOpen,
|
|
34
|
+
openModal: openViewAllOptions,
|
|
35
|
+
children: /* @__PURE__ */ jsx(PollOptionsFullList$1, {})
|
|
36
|
+
})] });
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { PollOptionList };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=PollOptionList.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PollOptionList.mjs","names":[],"sources":["../../../../src/components/Poll/PollOptionList.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport React, { useCallback, useState } from 'react';\nimport { PollAction } from './PollActions/PollAction';\nimport { PollOptionSelector as DefaultPollOptionSelector } from './PollOptionSelector';\nimport { useStateStore } from '../../store';\nimport {\n useComponentContext,\n usePollContext,\n useTranslationContext,\n} from '../../context';\nimport type { PollOption, PollState } from 'stream-chat';\nimport { PollOptionsFullList as DefaultPollOptionsFullList } from './PollActions/PollOptionsFullList';\n\ntype PollStateSelectorReturnValue = { options: PollOption[] };\n\nconst pollStateSelector = (nextValue: PollState): PollStateSelectorReturnValue => ({\n options: nextValue.options,\n});\n\nexport type PollOptionListProps = {\n optionsDisplayCount?: number;\n PollOptionsFullList?: React.ComponentType;\n};\n\nexport const PollOptionList = ({\n optionsDisplayCount,\n PollOptionsFullList = DefaultPollOptionsFullList,\n}: PollOptionListProps) => {\n const { PollOptionSelector = DefaultPollOptionSelector } = useComponentContext();\n const { t } = useTranslationContext('PollOptionList');\n const { poll } = usePollContext();\n const { options } = useStateStore(poll.state, pollStateSelector);\n const [viewAllOptionsOpen, setViewAllOptionsOpen] = useState(false);\n const closeViewAllOptions = useCallback(() => setViewAllOptionsOpen(false), []);\n const openViewAllOptions = useCallback(() => setViewAllOptionsOpen(true), []);\n\n const showMoreOptionsButton =\n typeof optionsDisplayCount === 'number' && options.length > optionsDisplayCount;\n\n return (\n <>\n <div\n className={clsx('str-chat__poll-option-list', {\n 'str-chat__poll-option-list--full': typeof optionsDisplayCount === 'undefined',\n })}\n >\n {options.slice(0, optionsDisplayCount ?? options.length).map((option) => (\n <PollOptionSelector\n displayAvatarCount={3}\n key={`poll-option-${option.id}`}\n option={option}\n />\n ))}\n </div>\n {showMoreOptionsButton && (\n <PollAction\n buttonText={t('+{{count}} more options', {\n count: options.length,\n })}\n closeModal={closeViewAllOptions}\n isAdditionalAction\n modalClassName='str-chat__poll-action-modal'\n modalIsOpen={viewAllOptionsOpen}\n openModal={openViewAllOptions}\n >\n <PollOptionsFullList />\n </PollAction>\n )}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;AAeA,IAAM,qBAAqB,eAAwD,EACjF,SAAS,UAAU,QACrB;AAOA,IAAa,kBAAkB,EAC7B,qBACA,qBAAA,wBAAsB,0BACG;CACzB,MAAM,EAAE,oBAAA,uBAAqB,uBAA8B,oBAAoB;CAC/E,MAAM,EAAE,MAAM,sBAAsB,gBAAgB;CACpD,MAAM,EAAE,SAAS,eAAe;CAChC,MAAM,EAAE,YAAY,cAAc,KAAK,OAAO,iBAAiB;CAC/D,MAAM,CAAC,oBAAoB,yBAAyB,SAAS,KAAK;CAClE,MAAM,sBAAsB,kBAAkB,sBAAsB,KAAK,GAAG,CAAC,CAAC;CAC9E,MAAM,qBAAqB,kBAAkB,sBAAsB,IAAI,GAAG,CAAC,CAAC;CAE5E,MAAM,wBACJ,OAAO,wBAAwB,YAAY,QAAQ,SAAS;CAE9D,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EACE,WAAW,KAAK,8BAA8B,EAC5C,oCAAoC,OAAO,wBAAwB,YACrE,CAAC;YAEA,QAAQ,MAAM,GAAG,uBAAuB,QAAQ,MAAM,CAAC,CAAC,KAAK,WAC5D,oBAAC,sBAAD;GACE,oBAAoB;GAEZ;EACT,GAFM,eAAe,OAAO,IAE5B,CACF;CACE,CAAA,GACJ,yBACC,oBAAC,YAAD;EACE,YAAY,EAAE,2BAA2B,EACvC,OAAO,QAAQ,OACjB,CAAC;EACD,YAAY;EACZ,oBAAA;EACA,gBAAe;EACf,aAAa;EACb,WAAW;YAEX,oBAAC,uBAAD,CAAsB,CAAA;CACZ,CAAA,CAEd,EAAA,CAAA;AAEN"}
|