@ethora/chat-component 26.7.5 → 26.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -16
- package/dist/ChatProfileModal-DehQM4Bo.js +2135 -0
- package/dist/FilePreviewModal-BcZLtVAy.js +743 -0
- package/dist/ManageDataModal-DWabKhSC.js +178 -0
- package/dist/MarkdownBody-CSY3YKDh.js +16874 -0
- package/dist/SideDrawer-DewJ-iPn.js +270 -0
- package/dist/UserProfileModal-BHZ0TULc.js +574 -0
- package/dist/UserSettingsModal-BxwVWNKo.js +50 -0
- package/dist/{VideoCallOverlay-C4M2I9oV.js → VideoCallOverlay-D5SuimGP.js} +9 -10
- package/dist/VisibilityModal-Bd67b4EM.js +132 -0
- package/dist/assets/icons.d.ts +30 -0
- package/dist/components/ContextMenu/ContextMenuComponents.d.ts +1 -3
- package/dist/components/EmojiPicker/LazyEmojiPicker.d.ts +3 -0
- package/dist/components/ExampleComponents/CustomMessage.d.ts +3 -3
- package/dist/components/Files/FilesList.d.ts +12 -0
- package/dist/components/Files/FilesPanel.d.ts +3 -0
- package/dist/components/Files/fileCategory.d.ts +13 -0
- package/dist/components/InputComponents/AttachmentPreview.d.ts +17 -0
- package/dist/components/InputComponents/MentionDropdown.d.ts +13 -0
- package/dist/components/InputComponents/MentionPickerModal.d.ts +19 -0
- package/dist/components/MainComponents/AttachmentList.d.ts +7 -0
- package/dist/components/MainComponents/ChatErrorBoundary.d.ts +53 -0
- package/dist/components/MainComponents/ChatErrorScreen.d.ts +24 -0
- package/dist/components/MainComponents/ChatRoomOpeningPreview.d.ts +24 -0
- package/dist/components/MainComponents/ChatWrapper.d.ts +1 -0
- package/dist/components/MainComponents/ChooseChatMessage.d.ts +11 -1
- package/dist/components/MainComponents/HeaderLogo.d.ts +18 -0
- package/dist/components/MainComponents/MediaMessage.d.ts +5 -0
- package/dist/components/MainComponents/MessageContainer.d.ts +2 -2
- package/dist/components/MainComponents/ReduxWrapper.d.ts +1 -2
- package/dist/components/MainComponents/SystemMessage.d.ts +1 -2
- package/dist/components/MenuRoom/MenuRoom.d.ts +1 -0
- package/dist/components/MessageBubble/CustomDivider.d.ts +3 -3
- package/dist/components/MessageBubble/Message.d.ts +2 -2
- package/dist/components/MessageBubble/MessageTranslate.d.ts +28 -10
- package/dist/components/MessageBubble/QuickReplies.d.ts +6 -5
- package/dist/components/Modals/ChatProfileModal/ChatProfileMemberRow.d.ts +18 -0
- package/dist/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +17 -0
- package/dist/components/Modals/FilePreviewModal/ImageLightbox.d.ts +35 -0
- package/dist/components/Modals/FilePreviewModal/PdfView.d.ts +14 -3
- package/dist/components/Modals/Modal/Modal.d.ts +10 -0
- package/dist/components/Modals/Modal/ModalContent.d.ts +21 -0
- package/dist/components/Modals/ModalBox/ModalBox.d.ts +9 -0
- package/dist/components/Modals/ModalReportChat/ModalReportChat.d.ts +6 -1
- package/dist/components/Modals/ModalWrapper/ModalWrapper.d.ts +8 -0
- package/dist/components/Modals/NewChatModal/styledNewChatComponents.d.ts +12 -0
- package/dist/components/Modals/SettingsModals/SharedStyledComponents.d.ts +12 -0
- package/dist/components/Modals/SettingsModals/Visibility/StyledComponents.d.ts +1 -1
- package/dist/components/Modals/SideDrawer/DrawerProfileParts.d.ts +42 -0
- package/dist/components/Modals/SideDrawer/SideDrawer.d.ts +64 -0
- package/dist/components/Modals/SidePanel/SidePanel.d.ts +31 -0
- package/dist/components/Modals/UserProfileModal/EditUserModal.d.ts +5 -1
- package/dist/components/Modals/modalComponents.d.ts +6 -0
- package/dist/components/Modals/motionVariants.d.ts +37 -0
- package/dist/components/Modals/styledModalComponents.d.ts +13 -3
- package/dist/components/RoomComponents/ChatRoomItem.d.ts +0 -1
- package/dist/components/RoomComponents/OnlineUsersPopover.d.ts +0 -1
- package/dist/components/UsersList/StyledComponents.d.ts +5 -1
- package/dist/components/UsersList/UsersList.d.ts +23 -0
- package/dist/components/styled/Button.d.ts +11 -1
- package/dist/components/styled/ChatWrapperBox.d.ts +3 -1
- package/dist/components/styled/PdfMessage.d.ts +13 -0
- package/dist/components/styled/RoomListComponents/index.d.ts +22 -1
- package/dist/components/styled/SendInput.d.ts +19 -5
- package/dist/components/styled/StyledComponents.d.ts +1 -1
- package/dist/components/styled/StyledInputComponents/MediaComponents.d.ts +18 -0
- package/dist/components/styled/StyledInputComponents/StyledInputComponents.d.ts +21 -0
- package/dist/components/styled/TreadLabel.d.ts +2 -2
- package/dist/components/styled/UnsupportedType.d.ts +1 -1
- package/dist/context/ModalTransitionContext.d.ts +2 -0
- package/dist/examples/quiz/QuizDemo.d.ts +3 -0
- package/dist/examples/quiz/quizScript.d.ts +38 -0
- package/dist/examples/quiz/useDemoSession.d.ts +42 -0
- package/dist/examples/quiz/useQuizFlow.d.ts +47 -0
- package/dist/firebase-config.d.ts +2 -4
- package/dist/handleCopyClick-BoZWTBLC.js +108 -0
- package/dist/helpers/MarkdownBody.d.ts +7 -0
- package/dist/helpers/attachments.d.ts +33 -0
- package/dist/helpers/botMarkup.d.ts +30 -0
- package/dist/helpers/buildChatShareLink.d.ts +20 -0
- package/dist/helpers/cacheScope.d.ts +15 -1
- package/dist/helpers/constants/MODAL_TYPES.d.ts +13 -7
- package/dist/helpers/createRoomFromApi.d.ts +1 -1
- package/dist/helpers/ethoraLogger.d.ts +8 -0
- package/dist/helpers/fileKind.d.ts +17 -0
- package/dist/helpers/formatNumberWithCommas.d.ts +1 -1
- package/dist/helpers/hiddenRooms.d.ts +1 -1
- package/dist/helpers/historyPreloadScheduler.d.ts +1 -0
- package/dist/helpers/lazyEmoji.d.ts +3 -0
- package/dist/helpers/localStorageUser.d.ts +1 -1
- package/dist/helpers/markdownSanitizeSchema.d.ts +3 -0
- package/dist/helpers/mentions.d.ts +63 -0
- package/dist/helpers/parseMessageBody.d.ts +12 -2
- package/dist/helpers/pdf/loadPdfjs.d.ts +64 -0
- package/dist/helpers/remarkLineBreaks.d.ts +42 -0
- package/dist/helpers/resolveMessageTranslation.d.ts +34 -0
- package/dist/helpers/roomImageGallery.d.ts +53 -0
- package/dist/helpers/secureFileUrl.d.ts +8 -0
- package/dist/helpers/sendFailureWatchdog.d.ts +62 -0
- package/dist/helpers/transformTranslatations.d.ts +1 -2
- package/dist/hooks/pushSubscriptionSweep.d.ts +41 -0
- package/dist/hooks/useChatOpenPhase.d.ts +21 -0
- package/dist/hooks/useChatWrapperInit.d.ts +1 -0
- package/dist/hooks/useDelayedAction.d.ts +22 -0
- package/dist/hooks/useExclusiveRightPane.d.ts +25 -0
- package/dist/hooks/useExitTransition.d.ts +24 -0
- package/dist/hooks/useFilesEndpointSupport.d.ts +9 -0
- package/dist/hooks/useGetNewArchRoom.d.ts +3 -1
- package/dist/hooks/useInView.d.ts +17 -0
- package/dist/hooks/useMentionComposer.d.ts +45 -0
- package/dist/hooks/useMessageHeapState.d.ts +1 -1
- package/dist/hooks/useMessageTranslation.d.ts +4 -3
- package/dist/hooks/useModalDismiss.d.ts +27 -0
- package/dist/hooks/useMyFiles.d.ts +16 -0
- package/dist/hooks/usePdfThumbnail.d.ts +22 -0
- package/dist/hooks/useQRCodeChatHandler.d.ts +29 -1
- package/dist/hooks/useRoomMute.d.ts +19 -0
- package/dist/hooks/useRoomState.d.ts +1 -1
- package/dist/hooks/useSendMessage.d.ts +4 -3
- package/dist/hooks/useTypography.d.ts +1 -1
- package/dist/hooks/useUnreadMessagesCounter.d.ts +11 -2
- package/dist/index.esm-B-3fyDHY.js +28 -0
- package/dist/index.esm-CRM4VCRa.js +943 -0
- package/dist/index.esm-msbp26WN.js +3352 -0
- package/dist/index.esm2017-CL0mvq6y.js +1578 -0
- package/dist/main-C2FKeV6y.js +32375 -0
- package/dist/main.css +1 -1
- package/dist/main.d.ts +14 -0
- package/dist/main.js +18 -18
- package/dist/module-DGXkb0R_.js +2960 -0
- package/dist/native-CDi4YD_s.js +13 -0
- package/dist/networking/api-requests/files.api.d.ts +19 -0
- package/dist/networking/api-requests/rooms.api.d.ts +10 -2
- package/dist/networking/api-requests/translate.api.d.ts +15 -0
- package/dist/networking/api-requests/user.api.d.ts +2 -0
- package/dist/networking/sharedRequest.d.ts +4 -0
- package/dist/networking/xmpp/allRoomPresences.xmpp.d.ts +3 -1
- package/dist/networking/xmpp/createTimeoutPromise.xmpp.d.ts +14 -0
- package/dist/networking/xmpp/sendTextMessage.xmpp.d.ts +2 -1
- package/dist/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts +2 -1
- package/dist/networking/xmppClient.d.ts +12 -3
- package/dist/pdf-B5b7qHu6.js +17130 -0
- package/dist/pdf.worker.min-COYn-gId.js +24385 -0
- package/dist/roomStore/index.d.ts +20 -0
- package/dist/roomStore/persistEncryption.d.ts +51 -0
- package/dist/roomStore/roomsSlice.d.ts +49 -6
- package/dist/styles/classNames.d.ts +35 -0
- package/dist/styles/motion.d.ts +71 -0
- package/dist/styles/tokens.d.ts +27 -0
- package/dist/testIds.d.ts +1 -1
- package/dist/types/models/attachment.model.d.ts +33 -0
- package/dist/types/models/config.model.d.ts +160 -19
- package/dist/types/models/file.model.d.ts +20 -0
- package/dist/types/models/message.model.d.ts +15 -6
- package/dist/types/models/room.model.d.ts +40 -2
- package/dist/types/types.d.ts +3 -1
- package/dist/utils/resendMessage.d.ts +22 -1
- package/dist/utils/translateModePolicy.d.ts +1 -0
- package/dist/wavesurfer.esm-D_a19qBW.js +952 -0
- package/package.json +22 -2
- package/dist/VideoCallOverlay-C4M2I9oV.js.map +0 -1
- package/dist/components/MainComponents/VirtualList.d.ts +0 -10
- package/dist/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.d.ts +0 -6
- package/dist/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.d.ts +0 -6
- package/dist/components/Modals/SettingsModals/ManageDataModal/StyledComponents.d.ts +0 -0
- package/dist/components/Modals/SettingsModals/ProfileShares/ProfileShares.d.ts +0 -6
- package/dist/components/Modals/SettingsModals/Referrals/Referrals.d.ts +0 -6
- package/dist/hooks/useMessageQueue.d.ts +0 -4
- package/dist/main-DeiuFYsl.js +0 -55812
- package/dist/main-DeiuFYsl.js.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/networking/xmpp/getHistory.xmpp.d.ts +0 -3
- package/dist/networking/xmpp/listenerManager.d.ts +0 -17
- package/dist/utils/xmppMemoryMonitor.d.ts +0 -16
|
@@ -2,5 +2,22 @@ import { default as React } from 'react';
|
|
|
2
2
|
interface FilePreviewModalProps {
|
|
3
3
|
handleCloseModal: any;
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Full-screen media viewer.
|
|
7
|
+
*
|
|
8
|
+
* Images get a real lightbox: previous/next across every image loaded for
|
|
9
|
+
* the room (see helpers/roomImageGallery for exactly what that set is),
|
|
10
|
+
* wheel/pinch zoom with bounded panning, double-click/double-tap to toggle
|
|
11
|
+
* fit, arrow-key and swipe navigation. Video, PDF and unsupported files take
|
|
12
|
+
* the same paths they always did and get no navigation chrome, so opening a
|
|
13
|
+
* PDF is the experience it was before.
|
|
14
|
+
*
|
|
15
|
+
* Escape, initial focus and focus restore are NOT handled here: the modal
|
|
16
|
+
* layer (Modals/Modal/Modal.tsx) already runs `useModalDismiss` around every
|
|
17
|
+
* entry in MODAL_COMPONENTS, this one included. Adding a second Escape
|
|
18
|
+
* listener would double-handle the key and fight that hook's focus restore,
|
|
19
|
+
* so the only key listener below is for the arrows, and it explicitly leaves
|
|
20
|
+
* every other key (Escape included) alone.
|
|
21
|
+
*/
|
|
5
22
|
declare const FilePreviewModal: React.FC<FilePreviewModalProps>;
|
|
6
23
|
export default FilePreviewModal;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export declare const MIN_SCALE = 1;
|
|
3
|
+
export declare const MAX_SCALE = 6;
|
|
4
|
+
/** What a double-click / double-tap jumps to from the fitted view. */
|
|
5
|
+
export declare const DOUBLE_TAP_SCALE = 2.5;
|
|
6
|
+
export interface ImageLightboxHandle {
|
|
7
|
+
zoomIn: () => void;
|
|
8
|
+
zoomOut: () => void;
|
|
9
|
+
reset: () => void;
|
|
10
|
+
}
|
|
11
|
+
interface ImageLightboxProps {
|
|
12
|
+
src: string;
|
|
13
|
+
alt: string;
|
|
14
|
+
/** Swipe (touch) navigation; also used to report gesture direction. */
|
|
15
|
+
onSwipeLeft?: () => void;
|
|
16
|
+
onSwipeRight?: () => void;
|
|
17
|
+
onError?: React.ReactEventHandler<HTMLImageElement>;
|
|
18
|
+
/** Reported on every scale change so the chrome can label its controls. */
|
|
19
|
+
onScaleChange?: (scale: number) => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The zoom/pan surface of the media viewer.
|
|
23
|
+
*
|
|
24
|
+
* Zoom model: the `<img>` keeps `object-fit: contain`, so scale 1 is always
|
|
25
|
+
* "fitted to the viewport" whatever the image's aspect ratio, and everything
|
|
26
|
+
* above it is a CSS transform on top of that fit - no re-layout, no
|
|
27
|
+
* re-decode, and the fitted view is exactly what the viewer saw before this
|
|
28
|
+
* feature existed. Zooming is anchored on the pointer (or on the midpoint
|
|
29
|
+
* between two fingers), and the pan offset is clamped every time either the
|
|
30
|
+
* scale or the offset changes, using the image's natural aspect ratio
|
|
31
|
+
* against the viewport box, so the picture can never be dragged off screen:
|
|
32
|
+
* at scale 1 the only legal offset is (0, 0).
|
|
33
|
+
*/
|
|
34
|
+
declare const ImageLightbox: React.ForwardRefExoticComponent<ImageLightboxProps & React.RefAttributes<ImageLightboxHandle>>;
|
|
35
|
+
export default ImageLightbox;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PdfViewerProps {
|
|
3
|
+
pdfUrl: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* In-app PDF viewer.
|
|
7
|
+
*
|
|
8
|
+
* This used to be an iframe pointed at `mozilla.github.io/pdf.js/web/viewer.html`
|
|
9
|
+
* with the file URL in the query string, which meant every document a user
|
|
10
|
+
* opened was handed to a third-party host - and broke outright whenever that
|
|
11
|
+
* page changed or was unreachable. Rendering locally keeps the file URL
|
|
12
|
+
* inside the app and works offline-ish (the PDF itself still has to load).
|
|
13
|
+
*/
|
|
14
|
+
declare const PdfViewer: React.FC<PdfViewerProps>;
|
|
4
15
|
export default PdfViewer;
|
|
@@ -5,5 +5,15 @@ interface ModalProps {
|
|
|
5
5
|
modal?: string;
|
|
6
6
|
setOpenModal: (value?: ModalType) => any;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Host for the store-driven modals that really are centred dialogs: the file
|
|
10
|
+
* preview / lightbox. The profile, user, settings, Manage Data and Visibility
|
|
11
|
+
* panels used to render here too, parked against the right edge of this same
|
|
12
|
+
* full-viewport overlay, which is exactly why they covered the conversation.
|
|
13
|
+
* They are rendered by `SidePanel` instead now, as a column of the chat's own
|
|
14
|
+
* flex row, so opening one shrinks the chat rather than hiding it. This
|
|
15
|
+
* component deliberately renders nothing for those types so they can never be
|
|
16
|
+
* painted twice.
|
|
17
|
+
*/
|
|
8
18
|
declare const Modal: React.FC<ModalProps>;
|
|
9
19
|
export default Modal;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ModalType } from '../../../types/types';
|
|
3
|
+
/**
|
|
4
|
+
* The store-driven modal router, minus any opinion about WHERE the panel is
|
|
5
|
+
* painted.
|
|
6
|
+
*
|
|
7
|
+
* There are two hosts for it now and they place their content very
|
|
8
|
+
* differently: `Modal.tsx` paints a centred dialog on top of everything
|
|
9
|
+
* inside a scrim, while `SidePanel.tsx` paints a column that takes part in
|
|
10
|
+
* the chat's flex row (so opening a profile shrinks the chat instead of
|
|
11
|
+
* covering it). Everything else - which component is open, stepping a
|
|
12
|
+
* settings sub-panel back to Settings, Escape, and moving focus into a
|
|
13
|
+
* lazily-loaded chunk once it actually mounts - is identical, so it lives
|
|
14
|
+
* here once rather than being copied into both hosts.
|
|
15
|
+
*/
|
|
16
|
+
interface ModalContentProps {
|
|
17
|
+
modal: string;
|
|
18
|
+
setOpenModal: (value?: ModalType) => any;
|
|
19
|
+
}
|
|
20
|
+
declare const ModalContent: React.FC<ModalContentProps>;
|
|
21
|
+
export default ModalContent;
|
|
@@ -3,6 +3,15 @@ interface ModalBoxProps {
|
|
|
3
3
|
title: string;
|
|
4
4
|
handleCloseModal: () => void;
|
|
5
5
|
children: ReactNode;
|
|
6
|
+
/**
|
|
7
|
+
* True while the caller is keeping this mounted only to let the exit
|
|
8
|
+
* animation finish (see `useExitTransition` at the call site - typically
|
|
9
|
+
* `{shouldRender && <ModalBox isClosing={isExiting} .../>}`). Every close
|
|
10
|
+
* trigger here (X button, Escape, outside click) still just calls
|
|
11
|
+
* `handleCloseModal` immediately: the caller decides how long to keep
|
|
12
|
+
* rendering, this component only decides how it looks while that happens.
|
|
13
|
+
*/
|
|
14
|
+
isClosing?: boolean;
|
|
6
15
|
}
|
|
7
16
|
export declare const ModalBox: FC<ModalBoxProps>;
|
|
8
17
|
export {};
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { default as React, FC } from 'react';
|
|
2
2
|
export declare const Report: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
|
|
3
|
-
|
|
3
|
+
interface ModalReportChatProps {
|
|
4
|
+
/** Forwarded to `ModalBox` - see its `isClosing` doc. */
|
|
5
|
+
isClosing?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const ModalReportChat: FC<ModalReportChatProps>;
|
|
8
|
+
export {};
|
|
@@ -11,6 +11,14 @@ interface ModalWrapperProps {
|
|
|
11
11
|
setTextarea?: (value: string) => void;
|
|
12
12
|
handleCloseModal: () => void;
|
|
13
13
|
handleClick: () => void;
|
|
14
|
+
/**
|
|
15
|
+
* True while the caller is keeping this mounted only so the exit
|
|
16
|
+
* animation can finish - see `ModalBox`'s `isClosing` doc for the pattern
|
|
17
|
+
* (a `useExitTransition` at the `{shouldRender && <ModalWrapper .../>}`
|
|
18
|
+
* call site). Buttons here still call `handleCloseModal`/`handleClick`
|
|
19
|
+
* immediately either way.
|
|
20
|
+
*/
|
|
21
|
+
isClosing?: boolean;
|
|
14
22
|
}
|
|
15
23
|
export declare const ModalWrapper: FC<ModalWrapperProps>;
|
|
16
24
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const ChatTypeGroup: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
2
|
+
export declare const ChatTypeIndicator: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
3
|
+
$index: number;
|
|
4
|
+
$count: number;
|
|
5
|
+
}>> & string;
|
|
6
|
+
export declare const ChatTypeOption: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
7
|
+
active: boolean;
|
|
8
|
+
}>> & string;
|
|
9
|
+
export declare const InlineUsersWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
10
|
+
$expanded: boolean;
|
|
11
|
+
}>> & string;
|
|
12
|
+
export declare const InlineUsersInner: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
@@ -11,11 +11,23 @@ export declare const RowWrapper: import('styled-components/dist/types').IStyledC
|
|
|
11
11
|
export declare const SharedSettingsLabelData: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<Omit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>, "ref"> & {
|
|
12
12
|
ref?: import('react').Ref<HTMLSpanElement>;
|
|
13
13
|
}, never>> & string;
|
|
14
|
+
/**
|
|
15
|
+
* A settings action rendered as its own outlined row rather than an inline
|
|
16
|
+
* link, so "download my data" / "delete my account" read as deliberate,
|
|
17
|
+
* separately-weighted decisions - not just more text in the card. The
|
|
18
|
+
* border colour is caller-driven (primary for a normal action, the danger
|
|
19
|
+
* token for the destructive one), everything else - radius, padding,
|
|
20
|
+
* weight, the hover/focus feedback - comes from the shared tokens so both
|
|
21
|
+
* read as the same kind of control.
|
|
22
|
+
*/
|
|
14
23
|
export declare const SharedSettingsStyledButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<Omit<ButtonProps & import('react').RefAttributes<HTMLButtonElement>, "ref"> & {
|
|
15
24
|
ref?: import('react').Ref<HTMLButtonElement>;
|
|
16
25
|
}, {
|
|
17
26
|
borderColor: string;
|
|
18
27
|
}>> & string & Omit<import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>, keyof import('react').Component<any, {}, any>>;
|
|
28
|
+
/** A quiet, boxed disclosure - the read-only counterpart to the button
|
|
29
|
+
* above, so a fact ("your data may be retained on-chain") doesn't compete
|
|
30
|
+
* visually with an action the person can take. */
|
|
19
31
|
export declare const SharedSettingsInfoPanel: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
20
32
|
bgColor: string;
|
|
21
33
|
}>> & string;
|
|
@@ -4,5 +4,5 @@ export declare const Description: import('styled-components/dist/types').IStyled
|
|
|
4
4
|
export declare const RadioGroup: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
5
5
|
export declare const RadioLabel: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, never>> & string;
|
|
6
6
|
export declare const RadioInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {
|
|
7
|
-
radioColor?: string;
|
|
7
|
+
$radioColor?: string;
|
|
8
8
|
}>> & string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The identity block at the top of a profile-style drawer: avatar, then the
|
|
3
|
+
* name. It carries no section heading on purpose - it IS the heading for the
|
|
4
|
+
* panel, and a "Profile" label above a face reads as filler.
|
|
5
|
+
*
|
|
6
|
+
* Shared by the user profile and the room profile so the two panels open with
|
|
7
|
+
* the same shape.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ProfileHero: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
10
|
+
/**
|
|
11
|
+
* The one bold, largest line in the entire panel family: deliberately so.
|
|
12
|
+
* Everything else in these drawers tops out at semibold (section labels,
|
|
13
|
+
* header title, row labels), so this is the only place `font-weight-bold`
|
|
14
|
+
* is used - it is what makes the hero read as the peak of the hierarchy
|
|
15
|
+
* instead of just another slightly-bigger label.
|
|
16
|
+
*/
|
|
17
|
+
export declare const ProfileHeroName: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
18
|
+
export declare const ProfileHeroSubtitle: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
19
|
+
/** Stack of full-width action buttons, one per row. */
|
|
20
|
+
export declare const ProfileActions: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
21
|
+
/**
|
|
22
|
+
* Room/profile description, set directly under the hero with no "Description"
|
|
23
|
+
* label above it - the About section heading already says what this is.
|
|
24
|
+
* When there is no description yet, `$empty` swaps in a muted italic tone so
|
|
25
|
+
* the placeholder line reads as an unwritten blank rather than a failed
|
|
26
|
+
* value, without changing the copy or the layout.
|
|
27
|
+
*/
|
|
28
|
+
export declare const DrawerDescriptionText: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, {
|
|
29
|
+
$empty?: boolean;
|
|
30
|
+
}>> & string;
|
|
31
|
+
/** Small icon+label tag for a single fact (chat type, visibility, ...). */
|
|
32
|
+
export declare const DrawerFactPill: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
|
|
33
|
+
/**
|
|
34
|
+
* A deliberate blank state - icon, title, optional hint - for "nothing here
|
|
35
|
+
* yet" spots (no files, no members) that used to be a single line of grey
|
|
36
|
+
* text sitting in a box and reading like something had gone wrong.
|
|
37
|
+
*/
|
|
38
|
+
export declare const DrawerEmptyState: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
39
|
+
$compact?: boolean;
|
|
40
|
+
}>> & string;
|
|
41
|
+
export declare const DrawerEmptyStateTitle: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
42
|
+
export declare const DrawerEmptyStateHint: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
export declare const DrawerPanel: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
3
|
+
$closing?: boolean;
|
|
4
|
+
}>> & string;
|
|
5
|
+
/** A labelled group: small caps heading, then a bordered card of rows. */
|
|
6
|
+
export declare const DrawerSection: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, never>> & string;
|
|
7
|
+
export declare const DrawerSectionTitle: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
|
|
8
|
+
/** The surface a section's rows sit on. */
|
|
9
|
+
export declare const DrawerCard: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
10
|
+
/** Padded block inside a card, for free-form content rather than a row list. */
|
|
11
|
+
export declare const DrawerCardBody: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
12
|
+
/** Section heading with a trailing control (e.g. "Files" ... "Show all"). */
|
|
13
|
+
export declare const SectionHeaderRow: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
14
|
+
/**
|
|
15
|
+
* Text-only affordance for "Show more" / "Show all". A real <button>, so it
|
|
16
|
+
* is reachable by keyboard and announced as a button - the panels used to
|
|
17
|
+
* fake this with a div carrying role="button" and hand-rolled key handling.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ShowMoreButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
|
|
20
|
+
/** Hairline between two rows of the same card. */
|
|
21
|
+
export declare const DrawerRowDivider: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
22
|
+
/**
|
|
23
|
+
* Filled, borderless search field - matches the room list's and the Files
|
|
24
|
+
* tab's own search bars (bg-subtle fill, no border) rather than the boxed,
|
|
25
|
+
* bordered field the member search used to be, which sat inside a bordered
|
|
26
|
+
* `DrawerCard` and read as a box nested in another box. Not built on the
|
|
27
|
+
* shared `InputComponents/Search` component: that one adds its own visible
|
|
28
|
+
* border and isn't in this pass's file list, so this is a local, purpose-fit
|
|
29
|
+
* equivalent that shares the same visual language as the other search bars
|
|
30
|
+
* in the app.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DrawerSearchBar: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
33
|
+
export declare const DrawerSearchInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>> & string;
|
|
34
|
+
/**
|
|
35
|
+
* Flat row list with no surrounding card border - used where the rows
|
|
36
|
+
* themselves (via hover/press state) already read as one group, e.g. the
|
|
37
|
+
* member list, so it doesn't also need a bounding box drawn around it.
|
|
38
|
+
*/
|
|
39
|
+
export declare const DrawerList: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
40
|
+
export declare const DrawerLabel: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
41
|
+
export declare const DrawerHint: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
42
|
+
interface DrawerNavRowProps {
|
|
43
|
+
label: string;
|
|
44
|
+
hint?: string;
|
|
45
|
+
onClick: () => void;
|
|
46
|
+
}
|
|
47
|
+
/** One "opens another panel" row inside a `DrawerCard`. */
|
|
48
|
+
export declare const DrawerNavRow: FC<DrawerNavRowProps>;
|
|
49
|
+
export interface SideDrawerProps {
|
|
50
|
+
/** Heading text; also the dialog's accessible name. */
|
|
51
|
+
title: string;
|
|
52
|
+
/** Invoked by the back button and by Escape. */
|
|
53
|
+
onClose: () => void;
|
|
54
|
+
/** Controls in the header's trailing slot (edit, overflow menu, QR, ...). */
|
|
55
|
+
headerActions?: ReactNode;
|
|
56
|
+
/**
|
|
57
|
+
* Label for the leading button. Sub-panels step back to their parent, so
|
|
58
|
+
* they read as "Back"; a top-level panel reads as "Close".
|
|
59
|
+
*/
|
|
60
|
+
backLabel?: string;
|
|
61
|
+
children: ReactNode;
|
|
62
|
+
}
|
|
63
|
+
declare const SideDrawer: FC<SideDrawerProps>;
|
|
64
|
+
export default SideDrawer;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ModalType } from '../../../types/types';
|
|
3
|
+
/**
|
|
4
|
+
* The chat's third column: chat profile, user profile, settings, Manage Data
|
|
5
|
+
* and Visibility.
|
|
6
|
+
*
|
|
7
|
+
* These used to be children of the modal overlay layer - a fixed,
|
|
8
|
+
* full-viewport `ModalBackground` with the panel parked against its right
|
|
9
|
+
* edge - so opening one dropped a 400px panel ON TOP of the conversation and
|
|
10
|
+
* the message you were reading disappeared underneath it. This component is
|
|
11
|
+
* rendered as a sibling of the chat pane inside `ChatWrapper`'s flex row
|
|
12
|
+
* instead, so the panel occupies real layout space and the chat simply gets
|
|
13
|
+
* narrower, the way Telegram Web behaves.
|
|
14
|
+
*
|
|
15
|
+
* Which panel is open is still the store's `activeModal` and is still routed
|
|
16
|
+
* through `MODAL_COMPONENTS`; `ModalContent` is the shared router both this
|
|
17
|
+
* and `Modal` use, so there is exactly one source of truth.
|
|
18
|
+
*
|
|
19
|
+
* Below the mobile breakpoint the column goes back to covering everything:
|
|
20
|
+
* three columns cannot fit on a phone, and the panel being the whole screen
|
|
21
|
+
* is the behaviour that was already there. `ChatWrapperInnerBox` is
|
|
22
|
+
* positioned, so `inset: 0` here is the chat's own box, not the host page.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SIDE_PANEL_WIDTH_PX = 400;
|
|
25
|
+
export declare const SIDE_PANEL_BREAKPOINT_PX = 767;
|
|
26
|
+
interface SidePanelProps {
|
|
27
|
+
modal?: string;
|
|
28
|
+
setOpenModal: (value?: ModalType) => any;
|
|
29
|
+
}
|
|
30
|
+
declare const SidePanel: React.FC<SidePanelProps>;
|
|
31
|
+
export default SidePanel;
|
|
@@ -4,5 +4,9 @@ interface EditUserModalProps {
|
|
|
4
4
|
modalUser: any;
|
|
5
5
|
config: any;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
/** What the parent drawer's header Save button calls. */
|
|
8
|
+
export interface EditUserModalHandle {
|
|
9
|
+
save: () => Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
declare const EditUserModal: React.ForwardRefExoticComponent<EditUserModalProps & React.RefAttributes<EditUserModalHandle>>;
|
|
8
12
|
export default EditUserModal;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exit-animation variants of the shared modal primitives from
|
|
3
|
+
* `styledModalComponents.tsx` (owned by another agent right now - see
|
|
4
|
+
* CLAUDE.md coordination notes, not edited here). `styled(Component)`
|
|
5
|
+
* composition lets these add a `$closing` branch without touching that
|
|
6
|
+
* file: styled-components injects the extending component's class after the
|
|
7
|
+
* base one, so its rules win the cascade for the same element.
|
|
8
|
+
*
|
|
9
|
+
* Used by `Modal.tsx`, `NewChatModal.tsx` and `ModalWrapper.tsx` to fade/
|
|
10
|
+
* scale a modal out instead of letting it vanish when it unmounts.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* `$closing` fades the scrim back out.
|
|
14
|
+
*
|
|
15
|
+
* This used to skip the fade in the backdrop's old `$drawer` mode, where the
|
|
16
|
+
* scrim was transparent and had nothing to fade. That mode is gone: the
|
|
17
|
+
* profile and settings panels are a layout column now (see SidePanel), so the
|
|
18
|
+
* only things left behind this backdrop are real centred dialogs, and they all
|
|
19
|
+
* want the fade.
|
|
20
|
+
*/
|
|
21
|
+
export declare const PresenceModalBackground: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<Omit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$anchorTop"> & {
|
|
22
|
+
$anchorTop?: boolean;
|
|
23
|
+
}, "ref"> & {
|
|
24
|
+
ref?: import('react').Ref<HTMLDivElement>;
|
|
25
|
+
}, {
|
|
26
|
+
$closing?: boolean;
|
|
27
|
+
}>> & string;
|
|
28
|
+
export declare const PresenceModalContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components').FastOmit<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
29
|
+
ref?: import('react').Ref<HTMLDivElement>;
|
|
30
|
+
}>, never>, never>, {
|
|
31
|
+
$closing?: boolean;
|
|
32
|
+
}>> & string;
|
|
33
|
+
export declare const PresenceModalContainerFullScreen: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components').FastOmit<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
34
|
+
ref?: import('react').Ref<HTMLDivElement>;
|
|
35
|
+
}>, never>, never>, {
|
|
36
|
+
$closing?: boolean;
|
|
37
|
+
}>> & string;
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { ButtonProps } from '../styled/Button';
|
|
2
|
-
export declare const ModalBackground: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').
|
|
2
|
+
export declare const ModalBackground: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
3
|
+
$anchorTop?: boolean;
|
|
4
|
+
}>> & string;
|
|
3
5
|
export declare const CloseButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
|
|
4
|
-
export declare const ModalContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>,
|
|
6
|
+
export declare const ModalContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
7
|
+
ref?: import('react').Ref<HTMLDivElement>;
|
|
8
|
+
}>, never>, never>> & string;
|
|
5
9
|
export declare const ModalTitle: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
|
|
10
|
+
/** Small uppercase-weight label above a field/list inside a modal - e.g. "Select Users (max 20)". */
|
|
11
|
+
export declare const ModalSectionLabel: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
12
|
+
/** 48px-min-height row used for members/blocked-users/etc. lists inside modals. */
|
|
13
|
+
export declare const ModalListRow: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
6
14
|
export declare const ModalDescription: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never>> & string;
|
|
7
15
|
export declare const GroupContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
8
|
-
export declare const ModalContainerFullScreen: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>,
|
|
16
|
+
export declare const ModalContainerFullScreen: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
17
|
+
ref?: import('react').Ref<HTMLDivElement>;
|
|
18
|
+
}>, never>, never>> & string;
|
|
9
19
|
export declare const HeaderContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<Omit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
|
|
10
20
|
ref?: import('react').Ref<HTMLDivElement>;
|
|
11
21
|
}, never>> & string;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare const ScrollableContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
2
|
-
export declare const UserItem: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').
|
|
2
|
+
export declare const UserItem: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
3
|
+
$selected?: boolean;
|
|
4
|
+
}>> & string;
|
|
5
|
+
export declare const UserItemInfo: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
3
6
|
export declare const Checkbox: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>> & string;
|
|
4
7
|
export declare const Label: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
|
|
8
|
+
export declare const EmptyState: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
@@ -6,6 +6,29 @@ interface UsersListProps {
|
|
|
6
6
|
headerElement?: boolean;
|
|
7
7
|
style?: any;
|
|
8
8
|
filter?: RoomMember[];
|
|
9
|
+
/**
|
|
10
|
+
* When set, sources rows from this list instead of the global `usersSet`
|
|
11
|
+
* (e.g. the current room's members for the @-mention picker) rather than
|
|
12
|
+
* every user the client has ever seen.
|
|
13
|
+
*/
|
|
14
|
+
members?: RoomMember[];
|
|
15
|
+
/**
|
|
16
|
+
* Excludes one user (by bare-jid local part, or the raw id) from the list -
|
|
17
|
+
* used by the mention picker to hide the current reader from their own
|
|
18
|
+
* mention candidates.
|
|
19
|
+
*/
|
|
20
|
+
excludeUserId?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Single-select mode: a row click calls `onSingleSelect` immediately
|
|
23
|
+
* instead of toggling the multi-select checkbox array, and no checkbox is
|
|
24
|
+
* rendered. Used by MentionPickerModal, which reuses this windowed list
|
|
25
|
+
* for a "pick one person" flow instead of building a separate one.
|
|
26
|
+
*/
|
|
27
|
+
singleSelect?: boolean;
|
|
28
|
+
onSingleSelect?: (user: RoomMember) => void;
|
|
29
|
+
/** Overrides the default "Select Users (max 20)" heading - used by
|
|
30
|
+
* MentionPickerModal so the reused list reads as a mention picker. */
|
|
31
|
+
titleOverride?: string;
|
|
9
32
|
}
|
|
10
33
|
declare const UsersList: React.FC<UsersListProps>;
|
|
11
34
|
export default UsersList;
|
|
@@ -4,8 +4,18 @@ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElemen
|
|
|
4
4
|
EndIcon?: ReactElement;
|
|
5
5
|
StartIcon?: ReactElement;
|
|
6
6
|
loading?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated No-op. `CustomButton`'s styles never actually read this
|
|
9
|
+
* prop, so it has had no visual effect for as long as it's existed - many
|
|
10
|
+
* call sites pass it expecting the default (unstyled-looking) button they
|
|
11
|
+
* already get from `variant="default"`. Kept accepted here only so those
|
|
12
|
+
* call sites keep compiling/rendering exactly as before; implementing it
|
|
13
|
+
* for real would change their visuals. Use `variant` instead.
|
|
14
|
+
*/
|
|
7
15
|
unstyled?: boolean;
|
|
8
|
-
variant?: 'default' | 'filled' | 'outlined';
|
|
16
|
+
variant?: 'default' | 'filled' | 'outlined' | 'ghost';
|
|
17
|
+
/** Recolors the button around the danger token for destructive actions. Optional, defaults to the existing brand-blue styling. */
|
|
18
|
+
tone?: 'default' | 'danger';
|
|
9
19
|
children?: React.ReactNode;
|
|
10
20
|
}
|
|
11
21
|
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export declare const ChatWrapperBox: React.ForwardRefExoticComponent<Omit<import('styled-components').FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export declare const ChatWrapperInnerBox: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PdfMessageProps {
|
|
3
|
+
fileURL: string;
|
|
4
|
+
fileName: string;
|
|
5
|
+
mimetype?: string;
|
|
6
|
+
size?: string;
|
|
7
|
+
/** Server-side preview, when the storage produced one. Wins over pdf.js. */
|
|
8
|
+
locationPreview?: string;
|
|
9
|
+
/** Denser layout used when the message carries more than one file. */
|
|
10
|
+
compact?: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare const PdfMessage: React.FC<PdfMessageProps>;
|
|
13
|
+
export default PdfMessage;
|
|
@@ -15,4 +15,25 @@ export declare const LastMessage: import('styled-components/dist/types').IStyled
|
|
|
15
15
|
export declare const UserCount: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
16
16
|
active: boolean;
|
|
17
17
|
}>> & string;
|
|
18
|
-
export declare const Divider: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').
|
|
18
|
+
export declare const Divider: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
19
|
+
$hidden?: boolean;
|
|
20
|
+
}>> & string;
|
|
21
|
+
export declare const AnimatedRow: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
22
|
+
$delay?: number;
|
|
23
|
+
$skipAnimation?: boolean;
|
|
24
|
+
}>> & string;
|
|
25
|
+
export declare const TabsContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
26
|
+
export declare const TabIndicator: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
27
|
+
$index: number;
|
|
28
|
+
$count: number;
|
|
29
|
+
}>> & string;
|
|
30
|
+
export declare const TabButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
31
|
+
active: boolean;
|
|
32
|
+
}>> & string;
|
|
33
|
+
export declare const TabContent: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
34
|
+
export declare const SkeletonRow: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
35
|
+
export declare const SkeletonAvatar: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
36
|
+
export declare const SkeletonLines: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
37
|
+
export declare const SkeletonLine: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
38
|
+
$width?: string;
|
|
39
|
+
}>> & string;
|