diff --git a/.gitignore b/.gitignore
index 3087e015a..1d79fb3ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,4 +36,7 @@ yarn-error.log*
.idea/
-*storybook.log
\ No newline at end of file
+*storybook.log
+
+# docs
+/docs
diff --git a/docs/TOC.mdx b/docs/TOC.mdx
deleted file mode 100644
index c15f3b5d9..000000000
--- a/docs/TOC.mdx
+++ /dev/null
@@ -1,105 +0,0 @@
-# Table of Contents
-
-* Introduction
- * Overview
- * Send first message
- * Migration guide
- * Change log (tentative location)
-* Features
-* Core components
- * Overview
- * SendbirdProvider
- * SendbirdSelectors
- * useSendbirdStateContext
- * withSendBird()
-* Localization
- * Overview
- * Text
- * Date
-* Modules
- * Overview
- * ChannelList
- * ChannelSettings
- * Channel
- * OpenChannel
- * OpenChannelSettings
- * MessageSearch
- * CreateChannel
- * EditUserProfile
-* UI components
- * Overview
-* Themes
- * Overview
- * Style
-* API reference - link to API reference provided by engineers
-
-Introduction
-What is UIKIt?
-How is it different from Chat SDK?
-What should users expect?
-
-Learn about UIKit
-UIKit 더 알아보기
-기본 구조 설명/ UIKit architecture explanation + diagram
-Core components
-Brief description of what the core components are
-Modules
-Brief description of what modules are and how to customize them
-UI Components
-Brief description of what UI components are
-
-Features
-A features table
-
-Feature
-Description
-Channel type
-Typing indicator
-
-
-Group channel
-Read receipt
-
-
-Group channel
-Delivery receipt
-
-
-Group channel
-File sharing
-
-
-Open channel, Group channel
-Unread message counts
-
-
-Group channel
-Reactions
-
-
-Group channel
-Message search
-
-
-Group channel
-Message threading
-
-
-Group channel
-Moderation
-
-
-Group channel
-
-
-Channel types
-Brief sentence or two on what kind of channel types we offer and link to Chat SDK docs
-
-Core components
-What are core components?
-What do core components do? How do you initialize/implement them?
-Modules
-What are modules?
-What do modules do? How do you initialize/implement each module?
-Explanation on the architecture of modules
-UI Components
diff --git a/docs/core-components.mdx b/docs/core-components.mdx
deleted file mode 100644
index e69de29bb..000000000
diff --git a/docs/features.mdx b/docs/features.mdx
deleted file mode 100644
index 99a5481b3..000000000
--- a/docs/features.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Features
-
diff --git a/docs/introduction.mdx b/docs/introduction.mdx
deleted file mode 100644
index 36f37f893..000000000
--- a/docs/introduction.mdx
+++ /dev/null
@@ -1,120 +0,0 @@
-# Introduction
-
-### Overview
-
-Sendbird UIKit for React is a set of prebuilt UI components that allows you to easily craft an in-app chat with all
-the essential messaging features. Our development kit includes light and dark themes, text fonts, colors and more.
-You can customize these components to create an interactive messaging interface unique to your brand identity.
-
-Sendbird UIKit supports both open channels and group channels.
-Follow the guide below to start sending a message from scratch with React.
-> Note: This library isn't designed to work with other frameworks such as Vue or Angular.
-
-### Requirements
-
-The dependencies for UIKit for React are:
-
-* React 16.8.0 or higher
-* React DOM 16.8.0 or higher
-* Sendbird Chat SDK for JavaScript 3.1 or higher
-* css-vars-ponyfill 2.3.2
-* date-fns 2.16.1
-
-System Requirements:
-* nodejs 14 or higher
-* npm or yarn latest versions
-
-### Supported browsers
-
-| Browser | Supported versions |
-|---------|--------------------|
-| Chrome | Modern Versions |
-| Firefox | Modern Versions |
-| Safari | 11 or higher |
-| Edge | 13 or higher |
-
-### Send first message
-
-##### Before you start
-Before installing Sendbird Chat SDK, you need to create a Sendbird application on the Sendbird Dashboard, which comprises everything required in a chat service including users, messages, and channels. You will need the App ID of your Sendbird application when initializing the Chat SDK.
-> Note: Each Sendbird application can be integrated with a single client app. Within the same application, users can communicate with each other across all platforms, whether they are on mobile devices or on the web.
-
-You can start building a modern messaging experience in your app by first installing Sendbird UIKit. This developer kit is an add-on feature to Sendbird Chat SDK so installing it will also install the core Chat SDK.
-
-##### Step 1
-
-Install UIKit
-You can install UIKit for React through
-npm: `npm install sendbird-uikit --save`
-
-Enter the following code on the command line with npm.
-The minimum requirements listed above must be installed on your system to use npm.
-
-When using yarn, enter the following command: `yarn add sendbird-uikit`
-
-Next, import UIKit components to your app.
-
-```
-import SendBirdProvider from "sendbird-uikit/SendbirdProvider";
-
-import "sendbird-uikit/dist/index.css";
-```
-
-##### Step 2
-
-Implement UIKit to your web app
-Once you're done installing Sendbird UIKit, you can now implement it to your web app by using the
-App component. The App component is a group of essential UI components needed to build a functioning chat interface.
-You can also use our common components to your web app if you wish to make the interface more tailored to your needs.
-
-Add the following pattern to use the App component:
-
-```
-import SendBirdApp from "sendbird-uikit/App";
-import "sendbird-uikit/dist/index.css";
-
-const App = () => {
- return (
-
-
-
- );
-};
-
-Specify the dimensions of your chat interface.
-
-.App {
- Font-family: sans-serif;
- Text-align: center;
- height: 100vh;
- width: 100vw;
-}
-
-```
-
-##### Step 3
-
-Send your first message
-You can now run the app to send a message. First, create a group channel by clicking on the icon in the top-left corner. Then, you can select users you wish to invite as members to your channel.
-Once the channel has been created, enter your first message and send.
-
-You've successfully sent your first message with Sendbird.
-
-### Use UIKit with SSR frameworks
-
-You can use UIKit with SSR frameworks such as Gatsby or NextJS by importing it dynamically on the client side. These frameworks support the following plug-in and workflow:
-
-* [Loadable components](https://www.gatsbyjs.org/docs/using-client-side-only-packages/#workaround-3-load-client-side-dependent-components-with-loadable-components) of Gatsby
-* [Dynamic imports](https://nextjs.org/docs/advanced-features/dynamic-import#with-no-ssr) of NextJS
-You may refer to NextJS [sample](https://codesandbox.io/s/cocky-hawking-h3zbs?file=/components/Chat.jsx:97-157) for better understanding. You will need your own Sendbird application ID and user ID to use the sample.
-
-
-### Migration guide
-Todo
-
-### Change log (tentative location)
-Todo
diff --git a/docs/localization.mdx b/docs/localization.mdx
deleted file mode 100644
index e69de29bb..000000000
diff --git a/docs/modules.mdx b/docs/modules.mdx
deleted file mode 100644
index e69de29bb..000000000
diff --git a/docs/themes.mdx b/docs/themes.mdx
deleted file mode 100644
index e69de29bb..000000000
diff --git a/docs/ui-components.mdx b/docs/ui-components.mdx
deleted file mode 100644
index e69de29bb..000000000
diff --git a/package.json b/package.json
index 91adb1996..b92f73606 100644
--- a/package.json
+++ b/package.json
@@ -53,6 +53,7 @@
"storybook": "storybook dev -p 6006",
"start:storybook": "yarn storybook",
"start:apps:testing": "yarn workspace @uikit-app/testing dev",
+ "build:docs": "node ./scripts/build_docs.mjs",
"build:storybook": "storybook build",
"build:apps:testing": "yarn workspace @uikit-app/testing build"
},
@@ -137,6 +138,7 @@
"stylelint": "^13.0.0",
"stylelint-config-sass-guidelines": "^7.0.0",
"ts-pattern": "^4.2.2",
+ "typedoc": "^0.25.13",
"typescript": "^5.4.5",
"vite": "^5.1.5",
"vite-plugin-svgr": "^4.2.0"
diff --git a/scripts/build_docs.mjs b/scripts/build_docs.mjs
new file mode 100644
index 000000000..b0d68984d
--- /dev/null
+++ b/scripts/build_docs.mjs
@@ -0,0 +1,47 @@
+import { execSync } from 'child_process';
+import { promises as fs } from 'fs';
+import moduleExports from '../rollup.module-exports.mjs';
+
+function removeDuplicates(items) {
+ return [...new Set(items)];
+}
+const order = [
+ 'src/modules/App',
+ 'src/modules/GroupChannel',
+ 'src/modules/GroupChannelList',
+ 'src/modules',
+ 'src/ui',
+ 'src/hooks',
+ 'src/utils',
+];
+async function updateEntryPoints() {
+ const modulePaths = removeDuplicates(Object.values(moduleExports)).sort((a, b) => {
+ const aOrder = order.findIndex((o) => a.startsWith(o)) ?? -1;
+ const bOrder = order.findIndex((o) => b.startsWith(o)) ?? -1;
+ if (aOrder === -1) return 1;
+ if (bOrder === -1) return -1;
+ if (aOrder !== bOrder) return aOrder - bOrder;
+ return a.localeCompare(b);
+ });
+ const typedoc = JSON.parse(await fs.readFile('typedoc.json', 'utf-8'));
+ typedoc.entryPoints = modulePaths;
+ await fs.writeFile('typedoc.json', JSON.stringify(typedoc, null, 2));
+}
+
+function execTypedoc() {
+ execSync('npx typedoc', (error, stdout, stderr) => {
+ if (error) {
+ console.error(`exec error: ${error}`);
+ return;
+ }
+ console.log(`stdout: ${stdout}`);
+ console.error(`stderr: ${stderr}`);
+ });
+}
+
+async function run() {
+ await updateEntryPoints();
+ execTypedoc();
+}
+
+run();
diff --git a/ts_debt/README.md b/ts_debt/README.md
index 73c31e058..f38b3c0d6 100644
--- a/ts_debt/README.md
+++ b/ts_debt/README.md
@@ -1,8 +1,6 @@
This directory has a list of remaining files to be migrated:
They are split into three categories:
-* Source files (high priority)
-* Story files (medium priority)
* Test files (low priority)
See the list in respective .yml files.
diff --git a/ts_debt/story_files.yml b/ts_debt/story_files.yml
deleted file mode 100644
index 91ecc3371..000000000
--- a/ts_debt/story_files.yml
+++ /dev/null
@@ -1,72 +0,0 @@
-./modules/App/stories/index.stories.js: index.stories.js
-./modules/App/stories/integrated.stories.js: integrated.stories.js
-./modules/App/stories/theme.stories.js: theme.stories.js
-./modules/ChannelList/stories/index.stories.js: index.stories.js
-./modules/OpenChannelApp/stories/index.stories.js: index.stories.js
-./modules/OpenChannelApp/stories/openchannel-mobile.stories.js: openchannel-mobile.stories.js
-./modules/OpenChannelList/stories/index.stories.js: index.stories.js
-./ui/Accordion/stories/Accordion.stories.js: Accordion.stories.js
-./ui/Accordion/stories/AccordionGroup.stories.js: AccordionGroup.stories.js
-./ui/AdminMessage/stories/AdminMessage.stories.js: AdminMessage.stories.js
-./ui/Avatar/stories/MutedAvatarOverlay.stories.js: MutedAvatarOverlay.stories.js
-./ui/Avatar/stories/index.stories.js: index.stories.js
-./ui/Badge/stories/Badge.stories.js: Badge.stories.js
-./ui/BottomSheet/stories/BottomSheet.stories.js: BottomSheet.stories.js
-./ui/Button/stories/Button.stories.js: Button.stories.js
-./ui/ChannelAvatar/stories/ChannelAvatar.stories.js: ChannelAvatar.stories.js
-./ui/ChannelAvatar/stories/OpenChannelAvatar.stories.js: OpenChannelAvatar.stories.js
-./ui/Checkbox/stories/Checkbox.stories.js: Checkbox.stories.js
-./ui/ConnectionStatus/stories/ConnectionStatus.stories.js: ConnectionStatus.stories.js
-./ui/ContextMenu/stories/ContextMenu.stories.js: ContextMenu.stories.js
-./ui/DateSeparator/stories/DateSeparator.stories.js: DateSeparator.stories.js
-./ui/Docs/stories/Doc.stories.js: Doc.stories.js
-./ui/EmojiReactions/stories/EmojiReactions.stories.js: EmojiReactions.stories.js
-./ui/FileMessageItemBody/stories/FileMessageItemBody.stories.js: FileMessageItemBody.stories.js
-./ui/FileViewer/stories/FileViewer.stories.js: FileViewer.stories.js
-./ui/Icon/stories/Icon.stories.js: Icon.stories.js
-./ui/IconButton/stories/index.stories.js: index.stories.js
-./ui/ImageRenderer/stories/ImageRenderer.stories.js: ImageRenderer.stories.js
-./ui/Input/stories/Input.stories.js: Input.stories.js
-./ui/Label/stories/index.stories.js: index.stories.js
-./ui/LegacyChannelHeader/stories/index.stories.js: index.stories.js
-./ui/LegacyEditUserProfile/stories/EditUserProfile.stories.js: EditUserProfile.stories.js
-./ui/LinkLabel/stories/LinkLabel.stories.js: LinkLabel.stories.js
-./ui/Loader/stories/Loader.stories.js: Loader.stories.js
-./ui/MentionLabel/stories/MentionLabel.stories.js: MentionLabel.stories.js
-./ui/MentionUserLabel/stories/MentionUserLabel.stories.js: MentionUserLabel.stories.js
-./ui/MessageContent/stories/MessageContent.stories.js: MessageContent.stories.js
-./ui/MessageInput/stories/index.stories.js: index.stories.js
-./ui/MessageItemMenu/stories/MessageItemMenu.stories.js: MessageItemMenu.stories.js
-./ui/MessageItemReactionMenu/stories/MessageItemReactionMenu.stories.js: MessageItemReactionMenu.stories.js
-./ui/MessageSearchFileItem/stories/MessageSearchFileItem.stories.js: MessageSearchFileItem.stories.js
-./ui/MessageSearchItem/stories/MessageSearchItem.stories.js: MessageSearchItem.stories.js
-./ui/MessageStatus/stories/MessageStatus.stories.js: MessageStatus.stories.js
-./ui/OGMessageItemBody/stories/OGMessageItemBody.stories.js: OGMessageItemBody.stories.js
-./ui/OpenChannelAdminMessage/stories/OpenChannelAdminMessage.stories.js: OpenChannelAdminMessage.stories.js
-./ui/OpenchannelConversationHeader/stories/OpenchannelConversationHeader.stories.js: OpenchannelConversationHeader.stories.js
-./ui/OpenchannelFileMessage/stories/OpenchannelFileMessage.stories.js: OpenchannelFileMessage.stories.js
-./ui/OpenchannelOGMessage/stories/OpenchannelOGMessage.stories.js: OpenchannelOGMessage.stories.js
-./ui/OpenchannelThumbnailMessage/stories/OpenchannelThumbnailMessage.stories.js: OpenchannelThumbnailMessage.stories.js
-./ui/OpenchannelUserMessage/stories/OpenchannelUserMessage.stories.js: OpenchannelUserMessage.stories.js
-./ui/PlaceHolder/stories/PlaceHolder.stories.js: PlaceHolder.stories.js
-./ui/PlaybackTime/stories/PlaybackTime.stories.js: PlaybackTime.stories.js
-./ui/ProgressBar/stories/ProgressBar.stories.js: ProgressBar.stories.js
-./ui/QuoteMessage/stories/QuoteMessage.stories.js: QuoteMessage.stories.js
-./ui/QuoteMessageInput/stories/QuoteMessageInput.stories.js: QuoteMessageInput.stories.js
-./ui/ReactionBadge/stories/ReactionBadge.stories.js: ReactionBadge.stories.js
-./ui/ReactionButton/stories/ReactionButton.stories.js: ReactionButton.stories.js
-./ui/SortByRow/stories/SortByRow.stories.js: SortByRow.stories.js
-./ui/TextButton/stories/TextButton.stories.js: TextButton.stories.js
-./ui/TextMessageItemBody/stories/TextMessageItemBody.stories.js: TextMessageItemBody.stories.js
-./ui/ThreadReplies/stories/ThreadReplies.stories.js: ThreadReplies.stories.js
-./ui/ThumbnailMessageItemBody/stories/ThumbnailMessageItemBody.stories.js: ThumbnailMessageItemBody.stories.js
-./ui/Toggle/stories/Toggle.stories.js: Toggle.stories.js
-./ui/Tooltip/stories/Tooltip.stories.js: Tooltip.stories.js
-./ui/TooltipWrapper/stories/TooltipWrapper.stories.js: TooltipWrapper.stories.js
-./ui/UnknownMessageItemBody/stories/UnknownMessageItemBody.stories.js: UnknownMessageItemBody.stories.js
-./ui/UserListItem/stories/UserListItem.stories.js: UserListItem.stories.js
-./ui/UserProfile/stories/UserProfile.stories.js: UserProfile.stories.js
-./ui/VoiceMessageInput/stories/VoiceMessageInput.stories.js: VoiceMessageInput.stories.js
-./ui/VoiceMessageItemBody/stories/VoiceMessageItemBody.stories.js: VoiceMessageItemBody.stories.js
-./ui/Word/stories/Word.stories.js: Word.stories.js
-./ui/stories/index.stories.js: index.stories.js
diff --git a/typedoc.json b/typedoc.json
new file mode 100644
index 000000000..ae07b7cc3
--- /dev/null
+++ b/typedoc.json
@@ -0,0 +1,203 @@
+{
+ "name": "Sendbird UIKit React",
+ "entryPoints": [
+ "src/modules/App/index.tsx",
+ "src/modules/GroupChannel/components/FileViewer/index.tsx",
+ "src/modules/GroupChannel/components/FrozenNotification/index.tsx",
+ "src/modules/GroupChannel/components/GroupChannelHeader/index.tsx",
+ "src/modules/GroupChannel/components/GroupChannelUI/index.tsx",
+ "src/modules/GroupChannel/components/Message/index.tsx",
+ "src/modules/GroupChannel/components/MessageInputWrapper/index.tsx",
+ "src/modules/GroupChannel/components/MessageList/getMessagePartsInfo.ts",
+ "src/modules/GroupChannel/components/MessageList/index.tsx",
+ "src/modules/GroupChannel/components/RemoveMessageModal/index.tsx",
+ "src/modules/GroupChannel/components/SuggestedMentionList/index.tsx",
+ "src/modules/GroupChannel/components/SuggestedReplies/index.tsx",
+ "src/modules/GroupChannel/components/TypingIndicator.tsx",
+ "src/modules/GroupChannel/components/UnreadCount/index.tsx",
+ "src/modules/GroupChannel/context/GroupChannelProvider.tsx",
+ "src/modules/GroupChannel/index.tsx",
+ "src/modules/GroupChannelList/components/AddGroupChannel/index.tsx",
+ "src/modules/GroupChannelList/components/GroupChannelListHeader/index.tsx",
+ "src/modules/GroupChannelList/components/GroupChannelListItem/index.tsx",
+ "src/modules/GroupChannelList/components/GroupChannelListUI/index.tsx",
+ "src/modules/GroupChannelList/components/GroupChannelPreviewAction.tsx",
+ "src/modules/GroupChannelList/context/GroupChannelListProvider.tsx",
+ "src/modules/GroupChannelList/index.tsx",
+ "src/modules/Channel/components/ChannelHeader/index.tsx",
+ "src/modules/Channel/components/ChannelUI/index.tsx",
+ "src/modules/Channel/components/FileViewer/index.tsx",
+ "src/modules/Channel/components/FrozenNotification/index.tsx",
+ "src/modules/Channel/components/Message/index.tsx",
+ "src/modules/Channel/components/MessageInputWrapper/index.tsx",
+ "src/modules/Channel/components/MessageList/index.tsx",
+ "src/modules/Channel/components/RemoveMessageModal/index.tsx",
+ "src/modules/Channel/components/SuggestedMentionList/index.tsx",
+ "src/modules/Channel/components/TypingIndicator.tsx",
+ "src/modules/Channel/components/UnreadCount/index.tsx",
+ "src/modules/Channel/context/ChannelProvider.tsx",
+ "src/modules/Channel/context/hooks/useHandleUploadFiles.tsx",
+ "src/modules/Channel/context/hooks/useInitialMessagesFetch.ts",
+ "src/modules/Channel/index.tsx",
+ "src/modules/ChannelList/components/AddChannel/index.tsx",
+ "src/modules/ChannelList/components/ChannelListHeader/index.tsx",
+ "src/modules/ChannelList/components/ChannelListUI/index.tsx",
+ "src/modules/ChannelList/components/ChannelPreview/index.tsx",
+ "src/modules/ChannelList/components/ChannelPreviewAction.tsx",
+ "src/modules/ChannelList/context/ChannelListProvider.tsx",
+ "src/modules/ChannelList/index.tsx",
+ "src/modules/ChannelSettings/components/ChannelProfile/index.tsx",
+ "src/modules/ChannelSettings/components/ChannelSettingsUI/ChannelSettingsHeader.tsx",
+ "src/modules/ChannelSettings/components/ChannelSettingsUI/index.tsx",
+ "src/modules/ChannelSettings/components/EditDetailsModal/index.tsx",
+ "src/modules/ChannelSettings/components/LeaveChannel/index.tsx",
+ "src/modules/ChannelSettings/components/ModerationPanel/index.tsx",
+ "src/modules/ChannelSettings/components/UserListItem/index.tsx",
+ "src/modules/ChannelSettings/components/UserPanel/index.tsx",
+ "src/modules/ChannelSettings/context/ChannelSettingsProvider.tsx",
+ "src/modules/ChannelSettings/index.tsx",
+ "src/modules/CreateChannel/components/CreateChannelUI/index.tsx",
+ "src/modules/CreateChannel/components/InviteUsers/index.tsx",
+ "src/modules/CreateChannel/components/SelectChannelType.tsx",
+ "src/modules/CreateChannel/context/CreateChannelProvider.tsx",
+ "src/modules/CreateChannel/index.tsx",
+ "src/modules/CreateOpenChannel/components/CreateOpenChannelUI/index.tsx",
+ "src/modules/CreateOpenChannel/context/CreateOpenChannelProvider.tsx",
+ "src/modules/CreateOpenChannel/index.tsx",
+ "src/modules/EditUserProfile/components/EditUserProfileUI/index.tsx",
+ "src/modules/EditUserProfile/context/EditUserProfileProvider.tsx",
+ "src/modules/EditUserProfile/index.tsx",
+ "src/modules/Message/context/MessageProvider.tsx",
+ "src/modules/Message/hooks/useDirtyGetMentions.ts",
+ "src/modules/MessageSearch/components/MessageSearchUI/index.tsx",
+ "src/modules/MessageSearch/context/MessageSearchProvider.tsx",
+ "src/modules/MessageSearch/index.tsx",
+ "src/modules/OpenChannel/components/FrozenChannelNotification/index.tsx",
+ "src/modules/OpenChannel/components/OpenChannelHeader/index.tsx",
+ "src/modules/OpenChannel/components/OpenChannelInput/index.tsx",
+ "src/modules/OpenChannel/components/OpenChannelMessage/index.tsx",
+ "src/modules/OpenChannel/components/OpenChannelMessageList/index.tsx",
+ "src/modules/OpenChannel/components/OpenChannelUI/index.tsx",
+ "src/modules/OpenChannel/context/OpenChannelProvider.tsx",
+ "src/modules/OpenChannel/index.tsx",
+ "src/modules/OpenChannelList/components/OpenChannelListUI/index.tsx",
+ "src/modules/OpenChannelList/components/OpenChannelPreview/index.tsx",
+ "src/modules/OpenChannelList/context/OpenChannelListProvider.tsx",
+ "src/modules/OpenChannelList/index.tsx",
+ "src/modules/OpenChannelSettings/components/EditDetailsModal.tsx",
+ "src/modules/OpenChannelSettings/components/OpenChannelProfile/index.tsx",
+ "src/modules/OpenChannelSettings/components/OpenChannelSettingsUI/index.tsx",
+ "src/modules/OpenChannelSettings/components/OperatorUI/index.tsx",
+ "src/modules/OpenChannelSettings/components/ParticipantUI/index.tsx",
+ "src/modules/OpenChannelSettings/context/OpenChannelSettingsProvider.tsx",
+ "src/modules/OpenChannelSettings/index.tsx",
+ "src/modules/Thread/components/ParentMessageInfo/index.tsx",
+ "src/modules/Thread/components/ParentMessageInfo/ParentMessageInfoItem.tsx",
+ "src/modules/Thread/components/ThreadHeader/index.tsx",
+ "src/modules/Thread/components/ThreadList/index.tsx",
+ "src/modules/Thread/components/ThreadList/ThreadListItem.tsx",
+ "src/modules/Thread/components/ThreadMessageInput/index.tsx",
+ "src/modules/Thread/components/ThreadUI/index.tsx",
+ "src/modules/Thread/context/ThreadProvider.tsx",
+ "src/modules/Thread/index.tsx",
+ "src/modules/Thread/types.tsx",
+ "src/ui/Accordion/AccordionGroup.tsx",
+ "src/ui/Accordion/index.tsx",
+ "src/ui/AdminMessage/index.tsx",
+ "src/ui/Avatar/index.tsx",
+ "src/ui/Avatar/MutedAvatarOverlay.tsx",
+ "src/ui/Badge/index.tsx",
+ "src/ui/BottomSheet/index.tsx",
+ "src/ui/Button/index.tsx",
+ "src/ui/ChannelAvatar/index.tsx",
+ "src/ui/ChannelAvatar/OpenChannelAvatar.tsx",
+ "src/ui/Checkbox/index.tsx",
+ "src/ui/ConnectionStatus/index.tsx",
+ "src/ui/ContextMenu/index.tsx",
+ "src/ui/DateSeparator/index.tsx",
+ "src/ui/EmojiReactions/index.tsx",
+ "src/ui/FeedbackIconButton/index.tsx",
+ "src/ui/FileMessageItemBody/index.tsx",
+ "src/ui/FileViewer/index.tsx",
+ "src/ui/Icon/index.tsx",
+ "src/ui/IconButton/index.tsx",
+ "src/ui/ImageRenderer/index.tsx",
+ "src/ui/Input/index.tsx",
+ "src/ui/Label/index.tsx",
+ "src/ui/LinkLabel/index.tsx",
+ "src/ui/Loader/index.tsx",
+ "src/ui/MentionLabel/index.tsx",
+ "src/ui/MentionUserLabel/index.tsx",
+ "src/ui/MessageContent/index.tsx",
+ "src/ui/MessageFeedbackFailedModal/index.tsx",
+ "src/ui/MessageFeedbackModal/index.tsx",
+ "src/ui/MessageInput/hooks/usePaste/index.ts",
+ "src/ui/MessageInput/index.tsx",
+ "src/ui/MessageItemMenu/index.tsx",
+ "src/ui/MessageItemReactionMenu/index.tsx",
+ "src/ui/MessageSearchFileItem/index.tsx",
+ "src/ui/MessageSearchItem/index.tsx",
+ "src/ui/MessageStatus/index.tsx",
+ "src/ui/MessageTemplate/index.tsx",
+ "src/ui/MobileFeedbackMenu/index.tsx",
+ "src/ui/Modal/index.tsx",
+ "src/ui/OGMessageItemBody/index.tsx",
+ "src/ui/OpenChannelAdminMessage/index.tsx",
+ "src/ui/OpenchannelConversationHeader/index.tsx",
+ "src/ui/OpenchannelFileMessage/index.tsx",
+ "src/ui/OpenchannelOGMessage/index.tsx",
+ "src/ui/OpenchannelThumbnailMessage/index.tsx",
+ "src/ui/OpenchannelUserMessage/index.tsx",
+ "src/ui/PlaceHolder/index.tsx",
+ "src/ui/PlaybackTime/index.tsx",
+ "src/ui/ProgressBar/index.tsx",
+ "src/ui/QuoteMessage/index.tsx",
+ "src/ui/QuoteMessageInput/index.tsx",
+ "src/ui/ReactionBadge/index.tsx",
+ "src/ui/ReactionButton/index.tsx",
+ "src/ui/SortByRow/index.tsx",
+ "src/ui/TemplateMessageItemBody/FallbackTemplateMessageItemBody.tsx",
+ "src/ui/TemplateMessageItemBody/index.tsx",
+ "src/ui/TemplateMessageItemBody/LoadingTemplateMessageItemBody.tsx",
+ "src/ui/TextButton/index.tsx",
+ "src/ui/TextMessageItemBody/index.tsx",
+ "src/ui/ThreadReplies/index.tsx",
+ "src/ui/ThumbnailMessageItemBody/index.tsx",
+ "src/ui/Toggle/index.tsx",
+ "src/ui/Tooltip/index.tsx",
+ "src/ui/TooltipWrapper/index.tsx",
+ "src/ui/TypingIndicatorBubble/index.tsx",
+ "src/ui/UnknownMessageItemBody/index.tsx",
+ "src/ui/UserListItem/index.tsx",
+ "src/ui/UserProfile/index.tsx",
+ "src/ui/VoiceMessageInput/index.tsx",
+ "src/ui/VoiceMessageItemBody/index.tsx",
+ "src/ui/Word/index.tsx",
+ "src/hooks/useModal/index.tsx",
+ "src/hooks/useSendbirdStateContext.tsx",
+ "src/hooks/VoicePlayer/index.tsx",
+ "src/hooks/VoicePlayer/useVoicePlayer.tsx",
+ "src/hooks/VoiceRecorder/index.tsx",
+ "src/hooks/VoiceRecorder/useVoiceRecorder.tsx",
+ "src/utils/exports/getOutgoingMessageState.ts",
+ "src/utils/isVoiceMessage.ts",
+ "src/utils/messages.ts",
+ "src/index.ts",
+ "src/_externals/lamejs/lame.all.js",
+ "src/lib/Sendbird.tsx",
+ "src/lib/selectors.ts",
+ "src/lib/SendbirdSdkContext.tsx",
+ "src/lib/handlers/ConnectionHandler.ts",
+ "src/lib/handlers/GroupChannelHandler.ts",
+ "src/lib/handlers/OpenChannelHandler.ts",
+ "src/lib/handlers/UserEventHandler.ts",
+ "src/lib/handlers/SessionHandler.ts",
+ "src/lib/pubSub/topics.ts"
+ ],
+ "out": "docs",
+ "sort": [
+ "static-first",
+ "visibility"
+ ],
+ "includeVersion": true
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 0d1f19cb4..6a72d1228 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2725,6 +2725,7 @@ __metadata:
stylelint: ^13.0.0
stylelint-config-sass-guidelines: ^7.0.0
ts-pattern: ^4.2.2
+ typedoc: ^0.25.13
typescript: ^5.4.5
vite: ^5.1.5
vite-plugin-svgr: ^4.2.0
@@ -4756,6 +4757,13 @@ __metadata:
languageName: node
linkType: hard
+"ansi-sequence-parser@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "ansi-sequence-parser@npm:1.1.1"
+ checksum: ead5b15c596e8e85ca02951a844366c6776769dcc9fd1bd3a0db11bb21364554822c6a439877fb599e7e1ffa0b5f039f1e5501423950457f3dcb2f480c30b188
+ languageName: node
+ linkType: hard
+
"ansi-styles@npm:^2.2.1":
version: 2.2.1
resolution: "ansi-styles@npm:2.2.1"
@@ -10681,6 +10689,13 @@ __metadata:
languageName: node
linkType: hard
+"jsonc-parser@npm:^3.2.0":
+ version: 3.2.1
+ resolution: "jsonc-parser@npm:3.2.1"
+ checksum: 656d9027b91de98d8ab91b3aa0d0a4cab7dc798a6830845ca664f3e76c82d46b973675bbe9b500fae1de37fd3e81aceacbaa2a57884bf2f8f29192150d2d1ef7
+ languageName: node
+ linkType: hard
+
"jsonfile@npm:^4.0.0":
version: 4.0.0
resolution: "jsonfile@npm:4.0.0"
@@ -11018,6 +11033,13 @@ __metadata:
languageName: node
linkType: hard
+"lunr@npm:^2.3.9":
+ version: 2.3.9
+ resolution: "lunr@npm:2.3.9"
+ checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8
+ languageName: node
+ linkType: hard
+
"lz-string@npm:^1.5.0":
version: 1.5.0
resolution: "lz-string@npm:1.5.0"
@@ -11156,6 +11178,15 @@ __metadata:
languageName: node
linkType: hard
+"marked@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "marked@npm:4.3.0"
+ bin:
+ marked: bin/marked.js
+ checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260
+ languageName: node
+ linkType: hard
+
"mathml-tag-names@npm:^2.1.3":
version: 2.1.3
resolution: "mathml-tag-names@npm:2.1.3"
@@ -11403,7 +11434,7 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.1, minimatch@npm:^9.0.4":
+"minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4":
version: 9.0.4
resolution: "minimatch@npm:9.0.4"
dependencies:
@@ -14270,6 +14301,18 @@ __metadata:
languageName: node
linkType: hard
+"shiki@npm:^0.14.7":
+ version: 0.14.7
+ resolution: "shiki@npm:0.14.7"
+ dependencies:
+ ansi-sequence-parser: ^1.1.0
+ jsonc-parser: ^3.2.0
+ vscode-oniguruma: ^1.7.0
+ vscode-textmate: ^8.0.0
+ checksum: 2aec3b3519df977c4391df9e1825cb496e9a4d7e11395f05a0da77e4fa2f7c3d9d6e6ee94029ac699533017f2b25637ee68f6d39f05f311535c2704d0329b520
+ languageName: node
+ linkType: hard
+
"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6":
version: 1.0.6
resolution: "side-channel@npm:1.0.6"
@@ -15518,6 +15561,22 @@ __metadata:
languageName: node
linkType: hard
+"typedoc@npm:^0.25.13":
+ version: 0.25.13
+ resolution: "typedoc@npm:0.25.13"
+ dependencies:
+ lunr: ^2.3.9
+ marked: ^4.3.0
+ minimatch: ^9.0.3
+ shiki: ^0.14.7
+ peerDependencies:
+ typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x
+ bin:
+ typedoc: bin/typedoc
+ checksum: 703d1f48137300b0ef3df1998a25ae745db3ca0b126f8dd1f7262918f11243a94d24dfc916cdba2baeb5a7d85d5a94faac811caf7f4fa6b7d07144dc02f7639f
+ languageName: node
+ linkType: hard
+
"typescript@npm:^5.2.2, typescript@npm:^5.4.5":
version: 5.4.5
resolution: "typescript@npm:5.4.5"
@@ -16003,6 +16062,20 @@ __metadata:
languageName: node
linkType: hard
+"vscode-oniguruma@npm:^1.7.0":
+ version: 1.7.0
+ resolution: "vscode-oniguruma@npm:1.7.0"
+ checksum: 53519d91d90593e6fb080260892e87d447e9b200c4964d766772b5053f5699066539d92100f77f1302c91e8fc5d9c772fbe40fe4c90f3d411a96d5a9b1e63f42
+ languageName: node
+ linkType: hard
+
+"vscode-textmate@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "vscode-textmate@npm:8.0.0"
+ checksum: 127780dfea89559d70b8326df6ec344cfd701312dd7f3f591a718693812b7852c30b6715e3cfc8b3200a4e2515b4c96f0843c0eacc0a3020969b5de262c2a4bb
+ languageName: node
+ linkType: hard
+
"w3c-xmlserializer@npm:^4.0.0":
version: 4.0.0
resolution: "w3c-xmlserializer@npm:4.0.0"