Skip to content

perf(build): emit ESM per source module so consumers can tree-shake - #3275

Merged
oliverlaz merged 1 commit into
masterfrom
perf/esm-preserve-modules
Aug 24, 2026
Merged

perf(build): emit ESM per source module so consumers can tree-shake#3275
oliverlaz merged 1 commit into
masterfrom
perf/esm-preserve-modules

Conversation

@oliverlaz

@oliverlaz oliverlaz commented Aug 24, 2026

Copy link
Copy Markdown
Member

Goal

Backport of #3269 (merged to release-v15) to master, for the ongoing v14 release.

The ESM build collapsed the source tree into 9 chunks, which left consumer bundlers nothing to drop. Tree-shaking works at module granularity first β€” a bundler discards whole unused modules, guided by our sideEffects field, before it attempts statement-level elimination. When the entire SDK arrives as one merged chunk, that first pass has no boundaries to cut on, so importing a single utility from stream-chat-react pulled 172.8 kB gzip.

Implementation details

  • preserveModules on the ESM output only, so dist/es mirrors src one file per module (9 files -> 514). CJS stays chunked, since consumers do not tree-shake CJS.
  • Entry filenames and the package.json exports map are unchanged.
  • Corrected sideEffects. It pointed at ./dist/i18n/Streami18n.js, a path this build has not emitted since the output layout changed, so the guard added in b91fd9a (fix: address the circular dependencies among TranslationContext and Streami18nΒ #2483) was inert. It now names the two modules that genuinely run code at import time β€” dist/es/i18n/Streami18n.mjs and dist/es/context/TranslationContext.mjs, both of which call Dayjs.extend / Dayjs.updateLocale at module scope. This matters far more with 514 individually-droppable modules than it did with 9. It moves no bytes today (both are always reachable); it is the guard for later.
  • Dropped the unused browserslist field β€” nothing in the repo reads it.
  • Recorded all three decisions in AGENTS.md.

Measured consumer impact

A throwaway consumer app resolving stream-chat-react through the real exports map, built with Vite 8 / Rolldown, minified, one scenario per entry, react / react-dom / stream-chat and the other peer deps external. Same lockfile and same minifier on both sides.

consumer imports before after
one utility ({ escapeRegExp }) 172.8 kB 0.1 kB
{ Avatar } 86.1 kB 19.8 kB
{ Chat } 422.5 kB 205.5 kB
{ Chat, Channel, MessageList } 432.7 kB 419.0 kB
stream-chat-react/channel-detail 150.9 kB 149.6 kB
stream-chat-react/emojis 173.4 kB 168.9 kB
whole SDK (import *) 465.7 kB 465.8 kB

(gzip, all chunks summed.)

Large win for narrow imports, no regression anywhere. Note the honest part: a full-featured chat (Chat + Channel + MessageList) only moves 3%, because 380 of the 381 SDK modules in that bundle are genuinely reachable from those three entry points. That is architecture, not build config, and two follow-ups are what move it:

  • Translation catalogs. Chat -> useChat -> Streami18n statically imports all 12 locale JSONs and assembles them into a runtime resources map, so no bundler can drop the 11 an app does not use. Measured cost: 125.5 kB gzip, 67% of Chat and 30% of the three-component bundle.
  • Icons. useComponentContextIcons does import * as DEFAULT_ICONS, and Icons/icons.tsx is a single module of 87 unprovable createIcon(...) calls. Importing one icon costs 17.8 kB gzip; importing three costs the same. Fixing this needs preserveModules in place first β€” without module boundaries in the output, splitting the icon set buys nothing.

Cost

The published ESM output grows: dist/es goes 9 files -> 514, 1784.8 -> 2037.8 kB raw and 421.7 -> 613.7 kB gzip, so roughly +192 kB on the tarball. That is install-time only; nothing a browser downloads. dist/cjs is unchanged.

UI Changes

None, build output only.

### Goal

Backport of #3269 (merged to `release-v15`) to `master`, for the ongoing v14 release.

The ESM build collapsed the source tree into 9 chunks, which left consumer bundlers nothing to
drop. Tree-shaking works at module granularity first β€” a bundler discards whole unused modules,
guided by our `sideEffects` field, before it attempts statement-level elimination. When the entire
SDK arrives as one merged chunk, that first pass has no boundaries to cut on, so importing a single
utility from `stream-chat-react` pulled 172.8 kB gzip.

### Implementation details

- `preserveModules` on the **ESM output only**, so `dist/es` mirrors `src` one file per module
  (9 files -> 514). CJS stays chunked, since consumers do not tree-shake CJS.
- Entry filenames and the `package.json` `exports` map are unchanged.
- Corrected `sideEffects`. It pointed at `./dist/i18n/Streami18n.js`, a path this build has not
  emitted since the output layout changed, so the guard added in b91fd9a (#2483) was inert. It now
  names the two modules that genuinely run code at import time β€” `dist/es/i18n/Streami18n.mjs` and
  `dist/es/context/TranslationContext.mjs`, both of which call `Dayjs.extend` / `Dayjs.updateLocale`
  at module scope. This matters far more with 514 individually-droppable modules than it did with 9.
  It moves no bytes today (both are always reachable); it is the guard for later.
- Dropped the unused `browserslist` field β€” nothing in the repo reads it.
- Recorded all three decisions in `AGENTS.md`.

#### Measured consumer impact

A throwaway consumer app resolving `stream-chat-react` through the real `exports` map, built with
Vite 8 / Rolldown, minified, one scenario per entry, `react` / `react-dom` / `stream-chat` and the
other peer deps external. Same lockfile and same minifier on both sides.

| consumer imports | before | after |
| --- | --- | --- |
| one utility (`{ escapeRegExp }`) | 172.8 kB | **0.1 kB** |
| `{ Avatar }` | 86.1 kB | **19.8 kB** |
| `{ Chat }` | 422.5 kB | **205.5 kB** |
| `{ Chat, Channel, MessageList }` | 432.7 kB | **419.0 kB** |
| `stream-chat-react/channel-detail` | 150.9 kB | **149.6 kB** |
| `stream-chat-react/emojis` | 173.4 kB | **168.9 kB** |
| whole SDK (`import *`) | 465.7 kB | 465.8 kB |

(gzip, all chunks summed.)

Large win for narrow imports, no regression anywhere. Note the honest part: a full-featured chat
(`Chat` + `Channel` + `MessageList`) only moves 3%, because 380 of the 381 SDK modules in that
bundle are genuinely reachable from those three entry points. That is architecture, not build
config, and two follow-ups are what move it:

- **Translation catalogs.** `Chat` -> `useChat` -> `Streami18n` statically imports all 12 locale
  JSONs and assembles them into a runtime `resources` map, so no bundler can drop the 11 an app does
  not use. Measured cost: 125.5 kB gzip, 67% of `Chat` and 30% of the three-component bundle.
- **Icons.** `useComponentContextIcons` does `import * as DEFAULT_ICONS`, and `Icons/icons.tsx` is a
  single module of 87 unprovable `createIcon(...)` calls. Importing one icon costs 17.8 kB gzip;
  importing three costs the same. Fixing this needs `preserveModules` in place first β€” without
  module boundaries in the output, splitting the icon set buys nothing.

#### Cost

The published ESM output grows: `dist/es` goes 9 files -> 514, 1784.8 -> 2037.8 kB raw and
421.7 -> 613.7 kB gzip, so roughly +192 kB on the tarball. That is install-time only; nothing a
browser downloads. `dist/cjs` is unchanged.

### UI Changes

None, build output only.

(cherry picked from commit 55e76dc)
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. πŸŽ‰

ℹ️ Recent review info
βš™οΈ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a2a0debe-bbd2-4822-91ae-571b1c96a596

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between bc09d2e and 65bb65d.

πŸ“’ Files selected for processing (3)
  • AGENTS.md
  • package.json
  • vite.config.ts

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.


πŸ“ Walkthrough

Walkthrough

The build configuration now preserves ESM modules while retaining chunked CJS output. Package metadata marks ESM i18n modules as side-effectful and no longer defines a package-level browserslist configuration. AGENTS.md documents these build and metadata requirements.

Changes

Build and package metadata

Layer / File(s) Summary
ESM build output and guidance
vite.config.ts, AGENTS.md
ESM output preserves modules, while CJS output remains chunked. Build cleanup and parallel output requirements are documented.
Package metadata alignment
package.json
The sideEffects entries now reference the ESM i18n modules. The package-level browserslist configuration was removed.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: βšͺ Minimal Β· up to 65bb6

This build-output change has no actionable merge-blocking risk remaining and is merge-ready after normal checks and review.

Suggested reviewers: martincupela

πŸš₯ Pre-merge checks | βœ… 5
βœ… Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage βœ… Passed Docstring check was indeterminate for this PR β€” some files could not be analyzed in time. Not blocking.
Linked Issues check βœ… Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check βœ… Passed Check skipped because no linked issues were found for this pull request.
Title check βœ… Passed The title clearly and concisely describes the main ESM build change that enables consumer tree-shaking.
Description check βœ… Passed The description covers the goal, implementation details, measured impact, cost, and the absence of UI changes.
✨ Finishing Touches
πŸ“ Generate docstrings
  • Create stacked PR
  • Commit on current branch
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch perf/esm-preserve-modules

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Size Change: +186 kB (+20.93%) 🚨

Total Size: 1.08 MB

πŸ“¦ View Changed
Filename Size Change
dist/es/_virtual/_rolldown/runtime.mjs 252 B +252 B (new file) πŸ†•
dist/es/a11y/a11yUtils.mjs 630 B +630 B (new file) πŸ†•
dist/es/a11y/accessibleLabel.mjs 721 B +721 B (new file) πŸ†•
dist/es/a11y/hooks/useAriaIdentifiers.mjs 540 B +540 B (new file) πŸ†•
dist/es/a11y/hooks/useListboxKeyboardNavigation.mjs 1.52 kB +1.52 kB (new file) πŸ†•
dist/es/a11y/hooks/useResolvedModalAriaProps.mjs 497 B +497 B (new file) πŸ†•
dist/es/a11y/hooks/useVirtualizedListboxKeyboardNavigation.mjs 1.39 kB +1.39 kB (new file) πŸ†•
dist/es/audioProcessing.mjs 0 B -1.65 kB (removed) πŸ†
dist/es/channel-detail.mjs 802 B -21.9 kB (-96.47%) πŸ†
dist/es/components/Accessibility/AriaLiveAnnouncerProvider.mjs 1.65 kB +1.65 kB (new file) πŸ†•
dist/es/components/Accessibility/AriaLiveOutlet.mjs 964 B +964 B (new file) πŸ†•
dist/es/components/Accessibility/AriaLiveOutletContext.mjs 194 B +194 B (new file) πŸ†•
dist/es/components/Accessibility/hooks/useAudioPlaybackChangeAnnouncements.mjs 425 B +425 B (new file) πŸ†•
dist/es/components/Accessibility/hooks/useFocusReturn.mjs 916 B +916 B (new file) πŸ†•
dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs 1.19 kB +1.19 kB (new file) πŸ†•
dist/es/components/Accessibility/hooks/useInertWhenHidden.mjs 1.62 kB +1.62 kB (new file) πŸ†•
dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs 3.02 kB +3.02 kB (new file) πŸ†•
dist/es/components/Accessibility/NotificationAnnouncer.mjs 1.4 kB +1.4 kB (new file) πŸ†•
dist/es/components/Accessibility/scheduling/useAnnouncementQueue.mjs 793 B +793 B (new file) πŸ†•
dist/es/components/Accessibility/scheduling/useDebouncedAnnounce.mjs 1.68 kB +1.68 kB (new file) πŸ†•
dist/es/components/Accessibility/scheduling/useSettledAnnouncement.mjs 1.84 kB +1.84 kB (new file) πŸ†•
dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs 300 B +300 B (new file) πŸ†•
dist/es/components/AIStateIndicator/AIStateIndicator.mjs 458 B +458 B (new file) πŸ†•
dist/es/components/AIStateIndicator/hooks/useAIState.mjs 616 B +616 B (new file) πŸ†•
dist/es/components/Attachment/attachment-sizing.mjs 1.05 kB +1.05 kB (new file) πŸ†•
dist/es/components/Attachment/Attachment.mjs 969 B +969 B (new file) πŸ†•
dist/es/components/Attachment/AttachmentActions.mjs 1.59 kB +1.59 kB (new file) πŸ†•
dist/es/components/Attachment/AttachmentContainer.mjs 1.96 kB +1.96 kB (new file) πŸ†•
dist/es/components/Attachment/Audio.mjs 1.4 kB +1.4 kB (new file) πŸ†•
dist/es/components/Attachment/audioSampling.mjs 1.29 kB +1.29 kB (new file) πŸ†•
dist/es/components/Attachment/components/DownloadButton.mjs 669 B +669 B (new file) πŸ†•
dist/es/components/Attachment/components/FileSizeIndicator.mjs 436 B +436 B (new file) πŸ†•
dist/es/components/Attachment/FileAttachment.mjs 563 B +563 B (new file) πŸ†•
dist/es/components/Attachment/Geolocation.mjs 1.07 kB +1.07 kB (new file) πŸ†•
dist/es/components/Attachment/Giphy.mjs 1.03 kB +1.03 kB (new file) πŸ†•
dist/es/components/Attachment/giphyAccessibility.mjs 481 B +481 B (new file) πŸ†•
dist/es/components/Attachment/icons.mjs 411 B +411 B (new file) πŸ†•
dist/es/components/Attachment/Image.mjs 346 B +346 B (new file) πŸ†•
dist/es/components/Attachment/LinkPreview/Card.mjs 1.03 kB +1.03 kB (new file) πŸ†•
dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs 402 B +402 B (new file) πŸ†•
dist/es/components/Attachment/ModalGallery.mjs 1.87 kB +1.87 kB (new file) πŸ†•
dist/es/components/Attachment/UnsupportedAttachment.mjs 403 B +403 B (new file) πŸ†•
dist/es/components/Attachment/utils.mjs 740 B +740 B (new file) πŸ†•
dist/es/components/Attachment/VideoAttachment.mjs 708 B +708 B (new file) πŸ†•
dist/es/components/Attachment/VisibilityDisclaimer.mjs 354 B +354 B (new file) πŸ†•
dist/es/components/Attachment/VoiceRecording.mjs 1.65 kB +1.65 kB (new file) πŸ†•
dist/es/components/AudioPlayback/AudioPlayer.mjs 3.58 kB +3.58 kB (new file) πŸ†•
dist/es/components/AudioPlayback/AudioPlayerPool.mjs 1.01 kB +1.01 kB (new file) πŸ†•
dist/es/components/AudioPlayback/components/DurationDisplay.mjs 596 B +596 B (new file) πŸ†•
dist/es/components/AudioPlayback/components/formatTime.mjs 339 B +339 B (new file) πŸ†•
dist/es/components/AudioPlayback/components/keyboardSeek.mjs 524 B +524 B (new file) πŸ†•
dist/es/components/AudioPlayback/components/PlaybackRateButton.mjs 300 B +300 B (new file) πŸ†•
dist/es/components/AudioPlayback/components/ProgressBar.mjs 819 B +819 B (new file) πŸ†•
dist/es/components/AudioPlayback/components/progressBarA11y.mjs 460 B +460 B (new file) πŸ†•
dist/es/components/AudioPlayback/components/useInteractiveProgressBar.mjs 1.07 kB +1.07 kB (new file) πŸ†•
dist/es/components/AudioPlayback/components/WaveProgressBar.mjs 1.72 kB +1.72 kB (new file) πŸ†•
dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs 613 B +613 B (new file) πŸ†•
dist/es/components/AudioPlayback/WithAudioPlayback.mjs 1 kB +1 kB (new file) πŸ†•
dist/es/components/Avatar/Avatar.mjs 1.02 kB +1.02 kB (new file) πŸ†•
dist/es/components/Avatar/AvatarStack.mjs 669 B +669 B (new file) πŸ†•
dist/es/components/Avatar/ChannelAvatar.mjs 344 B +344 B (new file) πŸ†•
dist/es/components/Avatar/GroupAvatar.mjs 868 B +868 B (new file) πŸ†•
dist/es/components/Avatar/utils.mjs 183 B +183 B (new file) πŸ†•
dist/es/components/Badge/Badge.mjs 509 B +509 B (new file) πŸ†•
dist/es/components/Badge/MediaBadge.mjs 426 B +426 B (new file) πŸ†•
dist/es/components/BaseImage/BaseImage.mjs 682 B +682 B (new file) πŸ†•
dist/es/components/BaseImage/ImagePlaceholder.mjs 397 B +397 B (new file) πŸ†•
dist/es/components/BaseImage/toBaseImageDescriptors.mjs 547 B +547 B (new file) πŸ†•
dist/es/components/Button/Button.mjs 529 B +529 B (new file) πŸ†•
dist/es/components/Button/PlayButton.mjs 475 B +475 B (new file) πŸ†•
dist/es/components/Channel/Channel.mjs 6.56 kB +6.56 kB (new file) πŸ†•
dist/es/components/Channel/channelState.mjs 978 B +978 B (new file) πŸ†•
dist/es/components/Channel/constants.mjs 156 B +156 B (new file) πŸ†•
dist/es/components/Channel/hooks/useChannelContainerClasses.mjs 391 B +391 B (new file) πŸ†•
dist/es/components/Channel/hooks/useCreateChannelStateContext.mjs 1.1 kB +1.1 kB (new file) πŸ†•
dist/es/components/Channel/hooks/useCreateTypingContext.mjs 229 B +229 B (new file) πŸ†•
dist/es/components/Channel/hooks/useEditMessageHandler.mjs 297 B +297 B (new file) πŸ†•
dist/es/components/Channel/hooks/useIsMounted.mjs 235 B +235 B (new file) πŸ†•
dist/es/components/Channel/hooks/useMentionsHandlers.mjs 448 B +448 B (new file) πŸ†•
dist/es/components/Channel/utils.mjs 1.13 kB +1.13 kB (new file) πŸ†•
dist/es/components/ChannelHeader/ChannelHeader.mjs 927 B +927 B (new file) πŸ†•
dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs 651 B +651 B (new file) πŸ†•
dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs 599 B +599 B (new file) πŸ†•
dist/es/components/ChannelList/ChannelList.mjs 2.29 kB +2.29 kB (new file) πŸ†•
dist/es/components/ChannelList/ChannelListHeader.mjs 380 B +380 B (new file) πŸ†•
dist/es/components/ChannelList/ChannelListUI.mjs 607 B +607 B (new file) πŸ†•
dist/es/components/ChannelList/hooks/useChannelListKeyboardNavigation.mjs 1.25 kB +1.25 kB (new file) πŸ†•
dist/es/components/ChannelList/hooks/useChannelListShape.mjs 2.14 kB +2.14 kB (new file) πŸ†•
dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs 262 B +262 B (new file) πŸ†•
dist/es/components/ChannelList/hooks/useChannelMembersState.mjs 300 B +300 B (new file) πŸ†•
dist/es/components/ChannelList/hooks/useConnectionRecoveredListener.mjs 306 B +306 B (new file) πŸ†•
dist/es/components/ChannelList/hooks/usePaginatedChannels.mjs 1.59 kB +1.59 kB (new file) πŸ†•
dist/es/components/ChannelList/hooks/useSelectedChannelState.mjs 403 B +403 B (new file) πŸ†•
dist/es/components/ChannelList/utils.mjs 1.05 kB +1.05 kB (new file) πŸ†•
dist/es/components/ChannelListItem/ChannelListItem.mjs 1.3 kB +1.3 kB (new file) πŸ†•
dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs 2.46 kB +2.46 kB (new file) πŸ†•
dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs 505 B +505 B (new file) πŸ†•
dist/es/components/ChannelListItem/ChannelListItemUI.mjs 1.51 kB +1.51 kB (new file) πŸ†•
dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs 817 B +817 B (new file) πŸ†•
dist/es/components/ChannelListItem/hooks/useChannelPreviewInfo.mjs 624 B +624 B (new file) πŸ†•
dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs 671 B +671 B (new file) πŸ†•
dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs 269 B +269 B (new file) πŸ†•
dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs 830 B +830 B (new file) πŸ†•
dist/es/components/ChannelListItem/utils.a11y.mjs 2.37 kB +2.37 kB (new file) πŸ†•
dist/es/components/ChannelListItem/utils.mjs 2.59 kB +2.59 kB (new file) πŸ†•
dist/es/components/Chat/Chat.mjs 1.25 kB +1.25 kB (new file) πŸ†•
dist/es/components/Chat/hooks/useChannelsQueryState.mjs 250 B +250 B (new file) πŸ†•
dist/es/components/Chat/hooks/useChat.mjs 1.05 kB +1.05 kB (new file) πŸ†•
dist/es/components/Chat/hooks/useCreateChatClient.mjs 533 B +533 B (new file) πŸ†•
dist/es/components/Chat/hooks/useCreateChatContext.mjs 539 B +539 B (new file) πŸ†•
dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs 677 B +677 B (new file) πŸ†•
dist/es/components/Chat/hooks/useSplitActionSet.mjs 319 B +319 B (new file) πŸ†•
dist/es/components/ChatView/a11y.utility.mjs 291 B +291 B (new file) πŸ†•
dist/es/components/ChatView/mjs 2.24 kB +2.24 kB (new file) πŸ†•
dist/es/components/DateSeparator/DateSeparator.mjs 575 B +575 B (new file) πŸ†•
dist/es/components/Dialog/components/Alert.mjs 647 B +647 B (new file) πŸ†•
dist/es/components/Dialog/components/Callout.mjs 819 B +819 B (new file) πŸ†•
dist/es/components/Dialog/components/ContextMenu.mjs 5.49 kB +5.49 kB (new file) πŸ†•
dist/es/components/Dialog/components/Prompt.mjs 1.07 kB +1.07 kB (new file) πŸ†•
dist/es/components/Dialog/components/Viewer.mjs 963 B +963 B (new file) πŸ†•
dist/es/components/Dialog/hooks/useDialog.mjs 688 B +688 B (new file) πŸ†•
dist/es/components/Dialog/hooks/usePopoverPosition.mjs 839 B +839 B (new file) πŸ†•
dist/es/components/Dialog/service/DialogAnchor.mjs 2.06 kB +2.06 kB (new file) πŸ†•
dist/es/components/Dialog/service/DialogManager.mjs 1.29 kB +1.29 kB (new file) πŸ†•
dist/es/components/Dialog/service/DialogPortal.mjs 1.02 kB +1.02 kB (new file) πŸ†•
dist/es/components/DragAndDrop/DragAndDropContainer.mjs 1.16 kB +1.16 kB (new file) πŸ†•
dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs 547 B +547 B (new file) πŸ†•
dist/es/components/EventComponent/EventComponent.mjs 462 B +462 B (new file) πŸ†•
dist/es/components/FileIcon/FileIconSet.mjs 6.71 kB +6.71 kB (new file) πŸ†•
dist/es/components/FileIcon/iconMap.mjs 512 B +512 B (new file) πŸ†•
dist/es/components/FileIcon/mimeTypes.mjs 1.73 kB +1.73 kB (new file) πŸ†•
dist/es/components/FileIcon/mjs 599 B +599 B (new file) πŸ†•
dist/es/components/Form/FieldError.mjs 261 B +261 B (new file) πŸ†•
dist/es/components/Form/hooks/useFormState.mjs 550 B +550 B (new file) πŸ†•
dist/es/components/Form/mjs 1.55 kB +1.55 kB (new file) πŸ†•
dist/es/components/Form/NumericInput.mjs 1.33 kB +1.33 kB (new file) πŸ†•
dist/es/components/Form/SwitchField.mjs 1.53 kB +1.53 kB (new file) πŸ†•
dist/es/components/Form/TextInput.mjs 1.3 kB +1.3 kB (new file) πŸ†•
dist/es/components/Form/TextInputFieldSet.mjs 376 B +376 B (new file) πŸ†•
dist/es/components/Gallery/Gallery.mjs 654 B +654 B (new file) πŸ†•
dist/es/components/Gallery/GalleryContext.mjs 422 B +422 B (new file) πŸ†•
dist/es/components/Gallery/GalleryHeader.mjs 939 B +939 B (new file) πŸ†•
dist/es/components/Gallery/GalleryUI.mjs 2.02 kB +2.02 kB (new file) πŸ†•
dist/es/components/Icons/createIcon.mjs 429 B +429 B (new file) πŸ†•
dist/es/components/Icons/icons.mjs 19.3 kB +19.3 kB (new file) πŸ†•
dist/es/components/Icons/mjs 378 B +378 B (new file) πŸ†•
dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs 591 B +591 B (new file) πŸ†•
dist/es/components/InfiniteScrollPaginator/InfiniteScroll.mjs 1.34 kB +1.34 kB (new file) πŸ†•
dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs 1.03 kB +1.03 kB (new file) πŸ†•
dist/es/components/ListItemLayout/ListItemLayout.mjs 707 B +707 B (new file) πŸ†•
dist/es/components/Loading/LoadingChannel.mjs 639 B +639 B (new file) πŸ†•
dist/es/components/Loading/LoadingChannels.mjs 377 B +377 B (new file) πŸ†•
dist/es/components/Loading/LoadingErrorIndicator.mjs 395 B +395 B (new file) πŸ†•
dist/es/components/Loading/LoadingIndicator.mjs 286 B +286 B (new file) πŸ†•
dist/es/components/Loading/progress-indicators.mjs 714 B +714 B (new file) πŸ†•
dist/es/components/Loading/UploadedSizeIndicator.mjs 413 B +413 B (new file) πŸ†•
dist/es/components/Loading/UploadProgressIndicator.mjs 344 B +344 B (new file) πŸ†•
dist/es/components/LoadMore/LoadMoreButton.mjs 492 B +492 B (new file) πŸ†•
dist/es/components/LoadMore/LoadMorePaginator.mjs 378 B +378 B (new file) πŸ†•
dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs 631 B +631 B (new file) πŸ†•
dist/es/components/Location/ShareLocationDialog.mjs 2.2 kB +2.2 kB (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs 621 B +621 B (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs 1 kB +1 kB (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs 1.04 kB +1.04 kB (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs 989 B +989 B (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs 909 B +909 B (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.mjs 434 B +434 B (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/recordingStateIdentity.mjs 227 B +227 B (new file) πŸ†•
dist/es/components/MediaRecorder/AudioRecorder/RecordingTimer.mjs 322 B +322 B (new file) πŸ†•
dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs 1.05 kB +1.05 kB (new file) πŸ†•
dist/es/components/MediaRecorder/classes/BrowserPermission.mjs 749 B +749 B (new file) πŸ†•
dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs 2.53 kB +2.53 kB (new file) πŸ†•
dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs 962 B +962 B (new file) πŸ†•
dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs 353 B +353 B (new file) πŸ†•
dist/es/components/MediaRecorder/observable/mjs 186 B +186 B (new file) πŸ†•
dist/es/components/MediaRecorder/observable/Observable.mjs 310 B +310 B (new file) πŸ†•
dist/es/components/MediaRecorder/observable/Subject.mjs 548 B +548 B (new file) πŸ†•
dist/es/components/MediaRecorder/observable/Subscription.mjs 206 B +206 B (new file) πŸ†•
dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs 481 B +481 B (new file) πŸ†•
dist/es/components/MediaRecorder/transcode/audioProcessing.mjs 758 B +758 B (new file) πŸ†•
dist/es/components/MediaRecorder/transcode/index.mjs 351 B +351 B (new file) πŸ†•
dist/es/components/MediaRecorder/transcode/wav.mjs 1.33 kB +1.33 kB (new file) πŸ†•
dist/es/components/Message/emojiRegex.mjs 450 B +450 B (new file) πŸ†•
dist/es/components/Message/hooks/useActionHandler.mjs 596 B +596 B (new file) πŸ†•
dist/es/components/Message/hooks/useDeleteHandler.mjs 363 B +363 B (new file) πŸ†•
dist/es/components/Message/hooks/useFlagHandler.mjs 382 B +382 B (new file) πŸ†•
dist/es/components/Message/hooks/useMarkUnreadHandler.mjs 324 B +324 B (new file) πŸ†•
dist/es/components/Message/hooks/useMentionsHandler.mjs 455 B +455 B (new file) πŸ†•
dist/es/components/Message/hooks/useMessageReminder.mjs 300 B +300 B (new file) πŸ†•
dist/es/components/Message/hooks/useMessageTextStreaming.mjs 783 B +783 B (new file) πŸ†•
dist/es/components/Message/hooks/useMuteHandler.mjs 433 B +433 B (new file) πŸ†•
dist/es/components/Message/hooks/useOpenThreadHandler.mjs 333 B +333 B (new file) πŸ†•
dist/es/components/Message/hooks/usePinHandler.mjs 476 B +476 B (new file) πŸ†•
dist/es/components/Message/hooks/useReactionHandler.mjs 1.36 kB +1.36 kB (new file) πŸ†•
dist/es/components/Message/hooks/useReactionsFetcher.mjs 492 B +492 B (new file) πŸ†•
dist/es/components/Message/hooks/useRetryHandler.mjs 266 B +266 B (new file) πŸ†•
dist/es/components/Message/hooks/useUserHandler.mjs 255 B +255 B (new file) πŸ†•
dist/es/components/Message/hooks/useUserRole.mjs 718 B +718 B (new file) πŸ†•
dist/es/components/Message/Message.mjs 1.81 kB +1.81 kB (new file) πŸ†•
dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs 1.1 kB +1.1 kB (new file) πŸ†•
dist/es/components/Message/MessageBlocked.mjs 444 B +444 B (new file) πŸ†•
dist/es/components/Message/MessageBubble.mjs 246 B +246 B (new file) πŸ†•
dist/es/components/Message/MessageDeletedBubble.mjs 399 B +399 B (new file) πŸ†•
dist/es/components/Message/MessageEditedIndicator.mjs 692 B +692 B (new file) πŸ†•
dist/es/components/Message/MessageRepliesCountButton.mjs 744 B +744 B (new file) πŸ†•
dist/es/components/Message/MessageStatus.mjs 1.24 kB +1.24 kB (new file) πŸ†•
dist/es/components/Message/MessageText.mjs 1.62 kB +1.62 kB (new file) πŸ†•
dist/es/components/Message/MessageTimestamp.mjs 361 B +361 B (new file) πŸ†•
dist/es/components/Message/MessageTranslationIndicator.mjs 866 B +866 B (new file) πŸ†•
dist/es/components/Message/MessageUI.mjs 2.77 kB +2.77 kB (new file) πŸ†•
dist/es/components/Message/PinIndicator.mjs 610 B +610 B (new file) πŸ†•
dist/es/components/Message/QuotedMessage.mjs 424 B +424 B (new file) πŸ†•
dist/es/components/Message/ReminderNotification.mjs 947 B +947 B (new file) πŸ†•
dist/es/components/Message/renderText/componentRenderers/Anchor.mjs 406 B +406 B (new file) πŸ†•
dist/es/components/Message/renderText/componentRenderers/Emoji.mjs 246 B +246 B (new file) πŸ†•
dist/es/components/Message/renderText/componentRenderers/Mention.mjs 307 B +307 B (new file) πŸ†•
dist/es/components/Message/renderText/regex.mjs 440 B +440 B (new file) πŸ†•
dist/es/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.mjs 338 B +338 B (new file) πŸ†•
dist/es/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.mjs 1.47 kB +1.47 kB (new file) πŸ†•
dist/es/components/Message/renderText/remarkPlugins/htmlToTextPlugin.mjs 243 B +243 B (new file) πŸ†•
dist/es/components/Message/renderText/remarkPlugins/imageToLink.mjs 591 B +591 B (new file) πŸ†•
dist/es/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.mjs 824 B +824 B (new file) πŸ†•
dist/es/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.mjs 962 B +962 B (new file) πŸ†•
dist/es/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.mjs 337 B +337 B (new file) πŸ†•
dist/es/components/Message/renderText/renderText.mjs 1.58 kB +1.58 kB (new file) πŸ†•
dist/es/components/Message/StreamedMessageText.mjs 484 B +484 B (new file) πŸ†•
dist/es/components/Message/Timestamp.mjs 517 B +517 B (new file) πŸ†•
dist/es/components/Message/utils.mjs 2.65 kB +2.65 kB (new file) πŸ†•
dist/es/components/MessageActions/DeleteMessageAlert.mjs 581 B +581 B (new file) πŸ†•
dist/es/components/MessageActions/DownloadSubmenu.mjs 812 B +812 B (new file) πŸ†•
dist/es/components/MessageActions/downloadUtils.mjs 980 B +980 B (new file) πŸ†•
dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs 1.23 kB +1.23 kB (new file) πŸ†•
dist/es/components/MessageActions/MessageActions.mjs 1.19 kB +1.19 kB (new file) πŸ†•
dist/es/components/MessageActions/QuickMessageActionButton.mjs 359 B +359 B (new file) πŸ†•
dist/es/components/MessageActions/RemindMeSubmenu.mjs 997 B +997 B (new file) πŸ†•
dist/es/components/MessageBounce/MessageBounceModal.mjs 348 B +348 B (new file) πŸ†•
dist/es/components/MessageBounce/MessageBouncePrompt.mjs 772 B +772 B (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs 1.19 kB +1.19 kB (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentUploadedSizeIndicator.mjs 631 B +631 B (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs 1.72 kB +1.72 kB (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs 1 kB +1 kB (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs 715 B +715 B (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs 1.29 kB +1.29 kB (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs 529 B +529 B (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs 884 B +884 B (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs 548 B +548 B (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs 3.23 kB +3.23 kB (new file) πŸ†•
dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs 1.29 kB +1.29 kB (new file) πŸ†•
dist/es/components/MessageComposer/CommandChip.mjs 550 B +550 B (new file) πŸ†•
dist/es/components/MessageComposer/CooldownTimer.mjs 294 B +294 B (new file) πŸ†•
dist/es/components/MessageComposer/EditedMessagePreview.mjs 318 B +318 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs 405 B +405 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useAttachmentsForPreview.mjs 362 B +362 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useCanCreatePoll.mjs 285 B +285 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs 449 B +449 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs 429 B +429 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs 294 B +294 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs 374 B +374 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs 414 B +414 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs 680 B +680 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs 274 B +274 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useMessageContentIsEmpty.mjs 274 B +274 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/usePasteHandler.mjs 577 B +577 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useSubmitHandler.mjs 1.03 kB +1.03 kB (new file) πŸ†•
dist/es/components/MessageComposer/hooks/useTextareaRef.mjs 252 B +252 B (new file) πŸ†•
dist/es/components/MessageComposer/hooks/utils.mjs 324 B +324 B (new file) πŸ†•
dist/es/components/MessageComposer/icons.mjs 1.26 kB +1.26 kB (new file) πŸ†•
dist/es/components/MessageComposer/LinkPreviewList.mjs 1.07 kB +1.07 kB (new file) πŸ†•
dist/es/components/MessageComposer/MessageComposer.mjs 1.01 kB +1.01 kB (new file) πŸ†•
dist/es/components/MessageComposer/MessageComposerActions.mjs 1.31 kB +1.31 kB (new file) πŸ†•
dist/es/components/MessageComposer/MessageComposerUI.mjs 1.41 kB +1.41 kB (new file) πŸ†•
dist/es/components/MessageComposer/preEditSnapshot.mjs 627 B +627 B (new file) πŸ†•
dist/es/components/MessageComposer/QuotedMessageIndicator.mjs 263 B +263 B (new file) πŸ†•
dist/es/components/MessageComposer/QuotedMessagePreview.mjs 2.93 kB +2.93 kB (new file) πŸ†•
dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs 472 B +472 B (new file) πŸ†•
dist/es/components/MessageComposer/SendButton.mjs 483 B +483 B (new file) πŸ†•
dist/es/components/MessageComposer/SendToChannelCheckbox.mjs 748 B +748 B (new file) πŸ†•
dist/es/components/MessageComposer/StopAIGenerationButton.mjs 354 B +354 B (new file) πŸ†•
dist/es/components/MessageComposer/WithDragAndDropUpload.mjs 1.59 kB +1.59 kB (new file) πŸ†•
dist/es/components/MessageList/FloatingDateSeparator.mjs 687 B +687 B (new file) πŸ†•
dist/es/components/MessageList/GiphyPreviewMessage.mjs 278 B +278 B (new file) πŸ†•
dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs 648 B +648 B (new file) πŸ†•
dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs 933 B +933 B (new file) πŸ†•
dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs 571 B +571 B (new file) πŸ†•
dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs 1.68 kB +1.68 kB (new file) πŸ†•
dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs 2.88 kB +2.88 kB (new file) πŸ†•
dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs 1.12 kB +1.12 kB (new file) πŸ†•
dist/es/components/MessageList/hooks/useLastDeliveredData.mjs 539 B +539 B (new file) πŸ†•
dist/es/components/MessageList/hooks/useLastOwnMessage.mjs 249 B +249 B (new file) πŸ†•
dist/es/components/MessageList/hooks/useLastReadData.mjs 397 B +397 B (new file) πŸ†•
dist/es/components/MessageList/hooks/useMarkRead.mjs 1.12 kB +1.12 kB (new file) πŸ†•
dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs 475 B +475 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs 955 B +955 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs 427 B +427 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.mjs 396 B +396 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs 533 B +533 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.mjs 647 B +647 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.mjs 499 B +499 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.mjs 422 B +422 B (new file) πŸ†•
dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs 721 B +721 B (new file) πŸ†•
dist/es/components/MessageList/MessageList.mjs 3.75 kB +3.75 kB (new file) πŸ†•
dist/es/components/MessageList/MessageListMainPanel.mjs 284 B +284 B (new file) πŸ†•
dist/es/components/MessageList/NewMessageNotification.mjs 519 B +519 B (new file) πŸ†•
dist/es/components/MessageList/renderMessages.mjs 1.1 kB +1.1 kB (new file) πŸ†•
dist/es/components/MessageList/ScrollToLatestMessageButton.mjs 1.09 kB +1.09 kB (new file) πŸ†•
dist/es/components/MessageList/UnreadMessagesNotification.mjs 616 B +616 B (new file) πŸ†•
dist/es/components/MessageList/UnreadMessagesSeparator.mjs 601 B +601 B (new file) πŸ†•
dist/es/components/MessageList/utils.mjs 2.19 kB +2.19 kB (new file) πŸ†•
dist/es/components/MessageList/VirtualizedMessageList.mjs 4.12 kB +4.12 kB (new file) πŸ†•
dist/es/components/MessageList/VirtualizedMessageListComponents.mjs 1.64 kB +1.64 kB (new file) πŸ†•
dist/es/components/Modal/GlobalModal.mjs 1.81 kB +1.81 kB (new file) πŸ†•
dist/es/components/Notifications/hooks/useNotificationApi.mjs 1.27 kB +1.27 kB (new file) πŸ†•
dist/es/components/Notifications/hooks/useNotifications.mjs 569 B +569 B (new file) πŸ†•
dist/es/components/Notifications/hooks/useNotificationTarget.mjs 422 B +422 B (new file) πŸ†•
dist/es/components/Notifications/hooks/useSystemNotifications.mjs 458 B +458 B (new file) πŸ†•
dist/es/components/Notifications/Notification.mjs 1.22 kB +1.22 kB (new file) πŸ†•
dist/es/components/Notifications/NotificationConfigurationContext.mjs 386 B +386 B (new file) πŸ†•
dist/es/components/Notifications/NotificationList.mjs 3.17 kB +3.17 kB (new file) πŸ†•
dist/es/components/Notifications/notificationTarget.mjs 636 B +636 B (new file) πŸ†•
dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs 686 B +686 B (new file) πŸ†•
dist/es/components/Poll/hooks/usePollAnswerPagination.mjs 566 B +566 B (new file) πŸ†•
dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs 572 B +572 B (new file) πŸ†•
dist/es/components/Poll/mjs 872 B +872 B (new file) πŸ†•
dist/es/components/Poll/Poll.mjs 302 B +302 B (new file) πŸ†•
dist/es/components/Poll/PollActions/AddCommentPrompt.mjs 1.25 kB +1.25 kB (new file) πŸ†•
dist/es/components/Poll/PollActions/EndPollAlert.mjs 764 B +764 B (new file) πŸ†•
dist/es/components/Poll/PollActions/PollAction.mjs 492 B +492 B (new file) πŸ†•
dist/es/components/Poll/PollActions/PollActions.mjs 1.26 kB +1.26 kB (new file) πŸ†•
dist/es/components/Poll/PollActions/PollAnswerList.mjs 1.01 kB +1.01 kB (new file) πŸ†•
dist/es/components/Poll/PollActions/PollOptionsFullList.mjs 561 B +561 B (new file) πŸ†•
dist/es/components/Poll/PollActions/PollQuestion.mjs 335 B +335 B (new file) πŸ†•
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs 815 B +815 B (new file) πŸ†•
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs 684 B +684 B (new file) πŸ†•
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs 615 B +615 B (new file) πŸ†•
dist/es/components/Poll/PollActions/PollResults/PollResults.mjs 1.03 kB +1.03 kB (new file) πŸ†•
dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs 1.23 kB +1.23 kB (new file) πŸ†•
dist/es/components/Poll/PollContent.mjs 488 B +488 B (new file) πŸ†•
dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs 1.24 kB +1.24 kB (new file) πŸ†•
dist/es/components/Poll/PollCreationDialog/NameField.mjs 677 B +677 B (new file) πŸ†•
dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs 2.24 kB +2.24 kB (new file) πŸ†•
dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs 1.02 kB +1.02 kB (new file) πŸ†•
dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs 820 B +820 B (new file) πŸ†•
dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs 982 B +982 B (new file) πŸ†•
dist/es/components/Poll/PollHeader.mjs 635 B +635 B (new file) πŸ†•
dist/es/components/Poll/PollOptionList.mjs 814 B +814 B (new file) πŸ†•
dist/es/components/Poll/PollOptionSelector.mjs 1.48 kB +1.48 kB (new file) πŸ†•
dist/es/components/Portal/Portal.mjs 300 B +300 B (new file) πŸ†•
dist/es/components/ReactFileUtilities/UploadButton.mjs 803 B +803 B (new file) πŸ†•
dist/es/components/ReactFileUtilities/utils.mjs 1.06 kB +1.06 kB (new file) πŸ†•
dist/es/components/Reactions/hooks/useFetchReactions.mjs 701 B +701 B (new file) πŸ†•
dist/es/components/Reactions/hooks/useProcessReactions.mjs 1.23 kB +1.23 kB (new file) πŸ†•
dist/es/components/Reactions/MessageReactions.mjs 2.07 kB +2.07 kB (new file) πŸ†•
dist/es/components/Reactions/MessageReactionsDetail.mjs 1.89 kB +1.89 kB (new file) πŸ†•
dist/es/components/Reactions/reactionOptions.mjs 1.11 kB +1.11 kB (new file) πŸ†•
dist/es/components/Reactions/ReactionSelector.mjs 1.58 kB +1.58 kB (new file) πŸ†•
dist/es/components/Reactions/ReactionSelectorWithButton.mjs 910 B +910 B (new file) πŸ†•
dist/es/components/Reactions/SpriteImage.mjs 727 B +727 B (new file) πŸ†•
dist/es/components/Reactions/utils/utils.mjs 284 B +284 B (new file) πŸ†•
dist/es/components/SafeAnchor/SafeAnchor.mjs 336 B +336 B (new file) πŸ†•
dist/es/components/Search/hooks/useAnnounceSearchResultCount.mjs 1.31 kB +1.31 kB (new file) πŸ†•
dist/es/components/Search/hooks/useSearchFocusedMessage.mjs 296 B +296 B (new file) πŸ†•
dist/es/components/Search/hooks/useSearchQueriesInProgress.mjs 450 B +450 B (new file) πŸ†•
dist/es/components/Search/hooks/useSearchResultsKeyboardNavigation.mjs 721 B +721 B (new file) πŸ†•
dist/es/components/Search/Search.mjs 643 B +643 B (new file) πŸ†•
dist/es/components/Search/SearchBar/SearchBar.mjs 1.32 kB +1.32 kB (new file) πŸ†•
dist/es/components/Search/SearchContext.mjs 306 B +306 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchResultItem.mjs 1.27 kB +1.27 kB (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchResults.mjs 711 B +711 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchResultsHeader.mjs 856 B +856 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs 305 B +305 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchSourceResultList.mjs 649 B +649 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs 547 B +547 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchSourceResults.mjs 562 B +562 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs 308 B +308 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchSourceResultsHeader.mjs 148 B +148 B (new file) πŸ†•
dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs 375 B +375 B (new file) πŸ†•
dist/es/components/Search/SearchSourceResultsContext.mjs 316 B +316 B (new file) πŸ†•
dist/es/components/SkipNavigation/SkipNavigation.mjs 1.01 kB +1.01 kB (new file) πŸ†•
dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs 1.36 kB +1.36 kB (new file) πŸ†•
dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs 821 B +821 B (new file) πŸ†•
dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs 600 B +600 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs 481 B +481 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/EmoticonItem.mjs 508 B +508 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs 614 B +614 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.mjs 439 B +439 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.mjs 236 B +236 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/MentionItem/mjs 775 B +775 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.mjs 161 B +161 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs 590 B +590 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs 2.39 kB +2.39 kB (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs 648 B +648 B (new file) πŸ†•
dist/es/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.mjs 608 B +608 B (new file) πŸ†•
dist/es/components/TextareaComposer/TextareaComposer.mjs 3.75 kB +3.75 kB (new file) πŸ†•
dist/es/components/Thread/LegacyThreadContext.mjs 198 B +198 B (new file) πŸ†•
dist/es/components/Thread/Thread.mjs 1.39 kB +1.39 kB (new file) πŸ†•
dist/es/components/Thread/ThreadHead.mjs 416 B +416 B (new file) πŸ†•
dist/es/components/Thread/ThreadHeader.mjs 1.34 kB +1.34 kB (new file) πŸ†•
dist/es/components/Thread/ThreadStart.mjs 461 B +461 B (new file) πŸ†•
dist/es/components/Threads/ThreadContext.mjs 305 B +305 B (new file) πŸ†•
dist/es/components/Threads/ThreadList/ThreadList.mjs 1.52 kB +1.52 kB (new file) πŸ†•
dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs 390 B +390 B (new file) πŸ†•
dist/es/components/Threads/ThreadList/ThreadListHeader.mjs 395 B +395 B (new file) πŸ†•
dist/es/components/Threads/ThreadList/ThreadListItem.mjs 351 B +351 B (new file) πŸ†•
dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs 1.72 kB +1.72 kB (new file) πŸ†•
dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs 441 B +441 B (new file) πŸ†•
dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs 625 B +625 B (new file) πŸ†•
dist/es/components/Threads/ThreadList/utils.a11y.mjs 1.74 kB +1.74 kB (new file) πŸ†•
dist/es/components/Threads/UnreadCountBadge.mjs 332 B +332 B (new file) πŸ†•
dist/es/components/Tooltip/hooks/useEnterLeaveHandlers.mjs 296 B +296 B (new file) πŸ†•
dist/es/components/Tooltip/Tooltip.mjs 556 B +556 B (new file) πŸ†•
dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs 974 B +974 B (new file) πŸ†•
dist/es/components/TypingIndicator/TypingIndicator.mjs 1.22 kB +1.22 kB (new file) πŸ†•
dist/es/components/TypingIndicator/TypingIndicatorDots.mjs 411 B +411 B (new file) πŸ†•
dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs 838 B +838 B (new file) πŸ†•
dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs 384 B +384 B (new file) πŸ†•
dist/es/components/UtilityComponents/ErrorBoundary.mjs 313 B +313 B (new file) πŸ†•
dist/es/components/UtilityComponents/hooks/useMutationObserver.mjs 798 B +798 B (new file) πŸ†•
dist/es/components/UtilityComponents/NullComponent.mjs 138 B +138 B (new file) πŸ†•
dist/es/components/UtilityComponents/useStableId.mjs 455 B +455 B (new file) πŸ†•
dist/es/components/VideoPlayer/ReactPlayerWrapper.mjs 475 B +475 B (new file) πŸ†•
dist/es/components/VideoPlayer/VideoPlayer.mjs 445 B +445 B (new file) πŸ†•
dist/es/components/VideoPlayer/VideoThumbnail.mjs 550 B +550 B (new file) πŸ†•
dist/es/components/VisuallyHidden/VisuallyHidden.mjs 397 B +397 B (new file) πŸ†•
dist/es/components/Window/Window.mjs 406 B +406 B (new file) πŸ†•
dist/es/constants/messageTypes.mjs 173 B +173 B (new file) πŸ†•
dist/es/context/AttachmentSelectorContext.mjs 272 B +272 B (new file) πŸ†•
dist/es/context/ChannelActionContext.mjs 412 B +412 B (new file) πŸ†•
dist/es/context/ChannelListContext.mjs 334 B +334 B (new file) πŸ†•
dist/es/context/ChannelStateContext.mjs 453 B +453 B (new file) πŸ†•
dist/es/context/ChatContext.mjs 402 B +402 B (new file) πŸ†•
dist/es/context/ComponentContext.mjs 263 B +263 B (new file) πŸ†•
dist/es/context/DialogManagerContext.mjs 1.38 kB +1.38 kB (new file) πŸ†•
dist/es/context/MessageBounceContext.mjs 739 B +739 B (new file) πŸ†•
dist/es/context/MessageComposerContext.mjs 306 B +306 B (new file) πŸ†•
dist/es/context/MessageContext.mjs 305 B +305 B (new file) πŸ†•
dist/es/context/MessageListContext.mjs 434 B +434 B (new file) πŸ†•
dist/es/context/MessageTranslationViewContext.mjs 1.55 kB +1.55 kB (new file) πŸ†•
dist/es/context/ModalContext.mjs 385 B +385 B (new file) πŸ†•
dist/es/context/PollContext.mjs 278 B +278 B (new file) πŸ†•
dist/es/context/TranslationContext.mjs 544 B +544 B (new file) πŸ†•
dist/es/context/TypingContext.mjs 408 B +408 B (new file) πŸ†•
dist/es/context/useComponentContextIcons.mjs 564 B +564 B (new file) πŸ†•
dist/es/context/VirtualizedMessageListContext.mjs 310 B +310 B (new file) πŸ†•
dist/es/context/WithComponents.mjs 308 B +308 B (new file) πŸ†•
dist/es/emojis.mjs 126 B -2.47 kB (-95.14%) πŸ†
dist/es/i18n/de.mjs 11.5 kB +11.5 kB (new file) πŸ†•
dist/es/i18n/en.mjs 8.59 kB +8.59 kB (new file) πŸ†•
dist/es/i18n/es.mjs 11.8 kB +11.8 kB (new file) πŸ†•
dist/es/i18n/fr.mjs 12 kB +12 kB (new file) πŸ†•
dist/es/i18n/hi.mjs 12.8 kB +12.8 kB (new file) πŸ†•
dist/es/i18n/it.mjs 11.7 kB +11.7 kB (new file) πŸ†•
dist/es/i18n/ja.mjs 12.1 kB +12.1 kB (new file) πŸ†•
dist/es/i18n/ko.mjs 11.8 kB +11.8 kB (new file) πŸ†•
dist/es/i18n/nl.mjs 11.3 kB +11.3 kB (new file) πŸ†•
dist/es/i18n/pt.mjs 11.6 kB +11.6 kB (new file) πŸ†•
dist/es/i18n/ru.mjs 13.9 kB +13.9 kB (new file) πŸ†•
dist/es/i18n/Streami18n.mjs 5.08 kB +5.08 kB (new file) πŸ†•
dist/es/i18n/tr.mjs 11.4 kB +11.4 kB (new file) πŸ†•
dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs 588 B +588 B (new file) πŸ†•
dist/es/i18n/TranslationBuilder/notifications/translators.mjs 668 B +668 B (new file) πŸ†•
dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs 592 B +592 B (new file) πŸ†•
dist/es/i18n/TranslationBuilder/TranslationBuilder.mjs 741 B +741 B (new file) πŸ†•
dist/es/i18n/utils.mjs 2.04 kB +2.04 kB (new file) πŸ†•
dist/es/index.mjs 8.44 kB -233 kB (-96.5%) πŸ†
dist/es/mp3-encoder.mjs 778 B +10 B (+1.3%)
dist/es/NotificationList.mjs 0 B -87.8 kB (removed) πŸ†
dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs 703 B +703 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/ChannelDetail.mjs 944 B +944 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/ChannelDetailContext.mjs 373 B +373 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs 337 B +337 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.mjs 419 B +419 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/ChannelDetailNavButton.mjs 505 B +505 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs 567 B +567 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigator.mjs 1.79 kB +1.79 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs 832 B +832 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs 445 B +445 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs 1.48 kB +1.48 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs 1.1 kB +1.1 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs 726 B +726 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.mjs 3.67 kB +3.67 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs 3.54 kB +3.54 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs 454 B +454 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs 2.29 kB +2.29 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs 665 B +665 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs 723 B +723 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.mjs 3.26 kB +3.26 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs 1 kB +1 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs 2.21 kB +2.21 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs 1.56 kB +1.56 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.mjs 1.61 kB +1.61 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs 1.25 kB +1.25 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs 361 B +361 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.mjs 408 B +408 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.mjs 430 B +430 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.mjs 744 B +744 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs 447 B +447 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs 1.66 kB +1.66 kB (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs 447 B +447 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs 881 B +881 B (new file) πŸ†•
dist/es/plugins/ChannelDetail/VirtualizedList/VirtualizedList.mjs 670 B +670 B (new file) πŸ†•
dist/es/plugins/Emojis/EmojiPicker.mjs 1.3 kB +1.3 kB (new file) πŸ†•
dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs 1.37 kB +1.37 kB (new file) πŸ†•
dist/es/plugins/Emojis/Picker.mjs 324 B +324 B (new file) πŸ†•
dist/es/ReactPlayerWrapper.mjs 0 B -485 B (removed) πŸ†
dist/es/store/hooks/useStateStore.mjs 484 B +484 B (new file) πŸ†•
dist/es/useChannelHeaderOnlineStatus.mjs 0 B -9.21 kB (removed) πŸ†
dist/es/useInertWhenHidden.mjs 0 B -54.1 kB (removed) πŸ†
dist/es/utils/findReverse.mjs 188 B +188 B (new file) πŸ†•
dist/es/utils/getChannel.mjs 690 B +690 B (new file) πŸ†•
dist/es/utils/getChannelConfig.mjs 266 B +266 B (new file) πŸ†•
dist/es/utils/getTextareaCaretRect.mjs 856 B +856 B (new file) πŸ†•
dist/es/utils/getWholeChar.mjs 368 B +368 B (new file) πŸ†•
dist/es/utils/isDmChannel.mjs 247 B +247 B (new file) πŸ†•
dist/es/utils/mergeDeep.mjs 197 B +197 B (new file) πŸ†•
dist/es/utils/useStableCallback.mjs 831 B +831 B (new file) πŸ†•
ℹ️ View Unchanged
Filename Size
dist/cjs/audioProcessing.js 1.74 kB
dist/cjs/channel-detail.js 23.2 kB
dist/cjs/emojis.js 2.66 kB
dist/cjs/index.js 242 kB
dist/cjs/mp3-encoder.js 814 B
dist/cjs/NotificationList.js 89.6 kB
dist/cjs/ReactPlayerWrapper.js 542 B
dist/cjs/useChannelHeaderOnlineStatus.js 9.44 kB
dist/cjs/useInertWhenHidden.js 54.7 kB
dist/css/channel-detail.css 2.84 kB
dist/css/emoji-picker.css 178 B
dist/css/emoji-replacement.css 456 B
dist/css/index.css 41.4 kB

compressed-size-action

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

βœ… All modified and coverable lines are covered by tests.
βœ… Project coverage is 85.30%. Comparing base (7e8baee) to head (65bb65d).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3275      +/-   ##
==========================================
+ Coverage   85.29%   85.30%   +0.01%     
==========================================
  Files         509      509              
  Lines       15990    15990              
  Branches     5042     5042              
==========================================
+ Hits        13638    13641       +3     
+ Misses       2352     2349       -3     

β˜” View full report in Codecov by Harness.
πŸ“’ Have feedback on the report? Share it here.

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@oliverlaz
oliverlaz merged commit d70b8f9 into master Aug 24, 2026
15 checks passed
@oliverlaz
oliverlaz deleted the perf/esm-preserve-modules branch August 24, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants