Skip to content

docs(examples): add the UI Cookbook app for the React v15 docs - #3354

Open
MartinCupela wants to merge 6 commits into
masterfrom
feat/ui-cookbook
Open

MartinCupela wants to merge 6 commits into
masterfrom
feat/ui-cookbook

Conversation

@MartinCupela

Copy link
Copy Markdown
Contributor

Ticket: https://linear.app/stream/issue/REACT-1262/react-v15-docs-batch-7-recipes-and-leftovers

🎯 Goal

The React v15 docs on getstream.io get a rebuilt UI Cookbooks section: 48 recipes, each built on one base app and shot with the same theme, cast and frame. This PR adds the code those pages show, so every recipe is runnable, type-checked in CI, and its screenshots can be retaken from the app.

🛠 Implementation details

examples/cookbook (new private workspace, yarn start:cookbook, port 5176)

  • The base app every recipe starts from: Chat, ChatView, the channel list, channel and thread, the CSS layer order, and a shared side panel used by the Panels recipes.
  • One folder per recipe, src/recipes/<group>/<recipe>/, matching the docs URL /ui-cookbooks/<group>/<recipe>/. It holds exactly the code the page shows, plus a <variant>.recipe.tsx that says what the recipe changes in the base app. Open a recipe at ?recipe=<group>/<recipe>&variant=<variant>.
  • Read-only against Stream's public demo app:
    • writes are blocked, so the UI keeps its optimistic state;
    • ?writes=on turns the guard off for an app of your own;
    • scripts/seed.mjs is the only writer. It's idempotent, and it seeds the cast, channels, messages, attachments, mentions, pins, read state and receipts, invites, pinned and archived channels, reminders and drafts.
  • scripts/shots.mjs takes every screenshot the pages use (DPR 1, en-US, UTC), and scripts/check-css.mjs enforces the recipe style rules:
    • tokens only;
    • @layer stream-overrides;
    • the .cookbook- prefix;
    • no layout properties on SDK classes.
  • The cookbook theme (src/recipes/theming/brand-theme-and-dark-mode/theme.css): the theme shown on UI › Customizing › Theming, with contrast checked to WCAG AA in light and dark.

Agent skill: .agents/skills/react-ui-cookbook/SKILL.md (linked from .claude/skills) describes the look, the rules, the seed fields and the steps for adding or changing a recipe. AGENTS.md points to it.

Wiring: root scripts (start:cookbook), the workspace in package.json / yarn.lock, the cookbook in CI's examples build, and .gitignore for examples/*/.env*.local.

Separate commit: a fix to the vite example's direct-conversation lookup. It filtered with members: { $eq: [...] }, which the server refuses, so an existing 1:1 was never found.

Not included: the recipes still blocked are Saved items and reminders (reminders are off in the demo app), Drafts list (waits on REACT-1453) and Voice agent visuals (needs the next release).

Docs: the pages live in getstream.io. See https://github.com/GetStream/getstream.io/pull/805 (docs/chat/react/v15-review) and the earlier v15 docs PRs https://github.com/GetStream/getstream.io/pull/729 and https://github.com/GetStream/getstream.io/pull/730. The UI Cookbooks pages commit lands on the #805 branch.

SDK gaps found while writing the recipes, filed in Linear and linked from REACT-1262:

  • Channel list:
    • REACT-1435: each list's slots read the first list's paginator;
    • REACT-1437: a ChannelList can't be labelled;
    • REACT-1438: the first page is skipped after an event;
    • REACT-1439: a list without a fixed height loads every page;
    • REACT-1444: ChannelList always brings its own scroll container;
    • REACT-1445: no local rule for the joined / invite filters;
    • REACT-1446: invite events aren't handled.
  • Composer:
    • REACT-1441: composable MessageComposerPreviews, which the poll recipe waits on;
    • REACT-1455: StrictMode wipes a draft loaded before the composer mounts;
    • REACT-1456: a composer can't be focused from outside.
  • Header: REACT-1442: a ChannelHeader title slot, which the Channel details recipe waits on.
  • Paginators and search:
    • REACT-1443: a filtered-out page wipes the loaded items;
    • REACT-1440: no getter for the ownership resolver;
    • REACT-1447: dispose() doesn't stop a query already running;
    • REACT-1448: search results don't fit the message components;
    • REACT-1453: a drafts paginator.
  • AI:
    • REACT-1457: Escape handling;
    • REACT-1458: no way to turn off threads per list;
    • REACT-1459: the empty AI placeholder;
    • REACT-1460: the list stops following a streamed answer.
  • Other:
    • REACT-1449: HeaderEndContent shows only while a channel is open;
    • REACT-1450: renderText() has no inline mode;
    • REACT-1451: the SDK uses the deprecated client.userID.
  • Earlier batches: REACT-1407 to REACT-1434.

🎨 UI Changes

There's no SDK UI change. The recipes' screenshots are on the getstream.io pages under /chat/docs/sdk/react/v15/ui-cookbooks/.

Adds examples/cookbook: the base app and the code of every UI Cookbook
recipe in the v15 docs, with the demo-data seed, the screenshot script
and the CSS style-rule check. Adds the react-ui-cookbook agent skill
that describes how recipes are written, and wires the workspace into
the root scripts and CI.
The lookup filtered with `members: { $eq: [...] }`, which the server
refuses, so an existing 1:1 was never found. Match both members with
`$in` and `member_count: 2` instead.
@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 479 files, which is 329 over the limit of 150.

To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 465b8629-97d2-437e-8d63-32f96d3a9659
Commits

Reviewing files that changed from the base of the PR and between fc8795a and 7b92bbc.

Files ignored due to path filters: 1
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
Files selected for processing: 479
  • .agents/skills/react-ui-cookbook/SKILL.md
  • .claude/skills/react-ui-cookbook
  • .github/workflows/ci.yml
  • .gitignore
  • AGENTS.md
  • examples/cookbook/index.html
  • examples/cookbook/package.json
  • examples/cookbook/scripts/check-css.mjs
  • examples/cookbook/scripts/seed.mjs
  • examples/cookbook/scripts/shots.mjs
  • examples/cookbook/src/base/BaseApp.tsx
  • examples/cookbook/src/base/OpenFromUrl.tsx
  • examples/cookbook/src/base/SidePanel.tsx
  • examples/cookbook/src/base/Simulate.tsx
  • examples/cookbook/src/base/base.css
  • examples/cookbook/src/base/client.ts
  • examples/cookbook/src/base/demo-data.json
  • examples/cookbook/src/base/readOnly.ts
  • examples/cookbook/src/base/recipe.ts
  • examples/cookbook/src/base/searchController.ts
  • examples/cookbook/src/base/useClickInTurn.ts
  • examples/cookbook/src/main.tsx
  • examples/cookbook/src/recipes/ai/ai-chat-widget/App.tsx
  • examples/cookbook/src/recipes/ai/ai-chat-widget/AssistantWidget.css
  • examples/cookbook/src/recipes/ai/ai-chat-widget/AssistantWidget.tsx
  • examples/cookbook/src/recipes/ai/ai-chat-widget/ChannelsWithoutAssistant.tsx
  • examples/cookbook/src/recipes/ai/ai-chat-widget/OpenWidgetFromUrl.tsx
  • examples/cookbook/src/recipes/ai/ai-chat-widget/default.recipe.tsx
  • examples/cookbook/src/recipes/ai/ai-chat-widget/demo-data.json
  • examples/cookbook/src/recipes/ai/ai-chat-widget/isMessageAIGenerated.ts
  • examples/cookbook/src/recipes/ai/ai-chat-widget/shots.json
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/AssistantStatus.css
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/AssistantStatus.tsx
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/SimulateAnswer.tsx
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/StopButton.css
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/StopButton.tsx
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/WithStreamedAnswers.tsx
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/default.recipe.tsx
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/demo-data.json
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/isMessageAIGenerated.ts
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/shots.json
  • examples/cookbook/src/recipes/ai/streamed-answers-with-stop-button/useAnswerAnnouncements.ts
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/SimulateVoice.tsx
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/SpokenMessageText.tsx
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/VoiceAgentPanel.css
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/VoiceAgentPanel.tsx
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/VoiceChannelHeader.tsx
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/VoiceSession.tsx
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/WithVoiceAgent.tsx
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/default.recipe.tsx
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/demo-data.json
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/isMessageAIGenerated.ts
  • examples/cookbook/src/recipes/ai/voice-agent-visuals/shots.json
  • examples/cookbook/src/recipes/channel-list/channel-invites/Invitations.css
  • examples/cookbook/src/recipes/channel-list/channel-invites/Invitations.tsx
  • examples/cookbook/src/recipes/channel-list/channel-invites/SimulateInvites.tsx
  • examples/cookbook/src/recipes/channel-list/channel-invites/WithChannelInvites.tsx
  • examples/cookbook/src/recipes/channel-list/channel-invites/default.recipe.tsx
  • examples/cookbook/src/recipes/channel-list/channel-invites/demo-data.json
  • examples/cookbook/src/recipes/channel-list/channel-invites/shots.json
  • examples/cookbook/src/recipes/channel-list/channel-invites/useChannelInvites.ts
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/ChannelListLoadError.tsx
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/ChannelListSkeleton.css
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/ChannelListSkeleton.tsx
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/ChannelListState.css
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/EmptyChannelList.tsx
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/SimulateChannelListState.tsx
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/WithChannelListStates.tsx
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/default.recipe.tsx
  • examples/cookbook/src/recipes/channel-list/empty-and-loading-states/shots.json
  • examples/cookbook/src/recipes/channel-list/members-and-online-status/ChannelMembers.css
  • examples/cookbook/src/recipes/channel-list/members-and-online-status/ChannelMembers.tsx
  • examples/cookbook/src/recipes/channel-list/members-and-online-status/SimulatePresence.tsx
  • examples/cookbook/src/recipes/channel-list/members-and-online-status/default.recipe.tsx
  • examples/cookbook/src/recipes/channel-list/members-and-online-status/shots.json
  • examples/cookbook/src/recipes/channel-list/pinned-and-archived-channels/SectionedChannelNavigation.css
  • examples/cookbook/src/recipes/channel-list/pinned-and-archived-channels/SectionedChannelNavigation.tsx
  • examples/cookbook/src/recipes/channel-list/pinned-and-archived-channels/SimulateSections.tsx
  • examples/cookbook/src/recipes/channel-list/pinned-and-archived-channels/default.recipe.tsx
  • examples/cookbook/src/recipes/channel-list/pinned-and-archived-channels/demo-data.json
  • examples/cookbook/src/recipes/channel-list/pinned-and-archived-channels/shots.json
  • examples/cookbook/src/recipes/channel-list/pinned-and-archived-channels/useChannelSections.ts
  • examples/cookbook/src/recipes/channel-list/preview-ui/ChannelChip.css
  • examples/cookbook/src/recipes/channel-list/preview-ui/ChannelChip.tsx
  • examples/cookbook/src/recipes/channel-list/preview-ui/CompactChannelRow.css
  • examples/cookbook/src/recipes/channel-list/preview-ui/CompactChannelRow.tsx
  • examples/cookbook/src/recipes/channel-list/preview-ui/SimulateUnread.tsx
  • examples/cookbook/src/recipes/channel-list/preview-ui/chips.recipe.tsx
  • examples/cookbook/src/recipes/channel-list/preview-ui/default.recipe.tsx
  • examples/cookbook/src/recipes/channel-list/preview-ui/recent-strip.css
  • examples/cookbook/src/recipes/channel-list/preview-ui/shots.json
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/NewConversationButton.css
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/NewConversationButton.tsx
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/NewConversationDialog.css
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/NewConversationDialog.tsx
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/SimulateNewConversation.tsx
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/default.recipe.tsx
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/shots.json
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/startConversation.ts
  • examples/cookbook/src/recipes/channel-list/starting-a-conversation/usePeopleSearch.ts
  • examples/cookbook/src/recipes/composer/attachment-previews/CustomAttachmentPreviewList.css
  • examples/cookbook/src/recipes/composer/attachment-previews/CustomAttachmentPreviewList.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/DemoAttachments.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/ImageAttachmentPreview.css
  • examples/cookbook/src/recipes/composer/attachment-previews/ImageAttachmentPreview.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/UploadPercent.css
  • examples/cookbook/src/recipes/composer/attachment-previews/UploadPercent.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/VoiceRecordingPreview.css
  • examples/cookbook/src/recipes/composer/attachment-previews/VoiceRecordingPreview.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/WithSquareImagePreviews.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/default.recipe.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/event.recipe.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/shots.json
  • examples/cookbook/src/recipes/composer/attachment-previews/upload-percent.recipe.tsx
  • examples/cookbook/src/recipes/composer/attachment-previews/voice.recipe.tsx
  • examples/cookbook/src/recipes/composer/custom-composer/AlsoSendInChannel.tsx
  • examples/cookbook/src/recipes/composer/custom-composer/CustomMessageComposer.css
  • examples/cookbook/src/recipes/composer/custom-composer/CustomMessageComposer.tsx
  • examples/cookbook/src/recipes/composer/custom-composer/PrefillComposer.tsx
  • examples/cookbook/src/recipes/composer/custom-composer/WithCustomComposer.tsx
  • examples/cookbook/src/recipes/composer/custom-composer/default.recipe.tsx
  • examples/cookbook/src/recipes/composer/custom-composer/shots.json
  • examples/cookbook/src/recipes/composer/custom-suggestions/CustomAutocompleteSuggestionItem.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/CustomSuggestionList.css
  • examples/cookbook/src/recipes/composer/custom-suggestions/CustomSuggestionList.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/GroupMentionItem.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/StyledSuggestionList.css
  • examples/cookbook/src/recipes/composer/custom-suggestions/StyledSuggestionList.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/SuggestionListWithTags.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/TypeFromUrl.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/WithCustomSuggestionList.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/default.recipe.tsx
  • examples/cookbook/src/recipes/composer/custom-suggestions/shots.json
  • examples/cookbook/src/recipes/composer/custom-suggestions/styled-list.recipe.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/DemoGifShots.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/GifAttachmentPreview.css
  • examples/cookbook/src/recipes/composer/gif-picker/GifAttachmentPreview.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/GifButton.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/GifChannel.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/GifPicker.css
  • examples/cookbook/src/recipes/composer/gif-picker/GifPicker.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/GifSearchSource.ts
  • examples/cookbook/src/recipes/composer/gif-picker/WithGifPicker.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/catalogue.ts
  • examples/cookbook/src/recipes/composer/gif-picker/default.recipe.tsx
  • examples/cookbook/src/recipes/composer/gif-picker/gif.ts
  • examples/cookbook/src/recipes/composer/gif-picker/giphy.ts
  • examples/cookbook/src/recipes/composer/gif-picker/shots.json
  • examples/cookbook/src/recipes/composer/inline-message-editing/EditFromUrl.tsx
  • examples/cookbook/src/recipes/composer/inline-message-editing/InlineEditAction.tsx
  • examples/cookbook/src/recipes/composer/inline-message-editing/InlineEditContext.tsx
  • examples/cookbook/src/recipes/composer/inline-message-editing/InlineEditor.css
  • examples/cookbook/src/recipes/composer/inline-message-editing/InlineEditor.tsx
  • examples/cookbook/src/recipes/composer/inline-message-editing/WithInlineMessageEditing.tsx
  • examples/cookbook/src/recipes/composer/inline-message-editing/default.recipe.tsx
  • examples/cookbook/src/recipes/composer/inline-message-editing/shots.json
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/AddPollDialog.css
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/AddPollDialog.tsx
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/ComposerPollPreview.css
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/ComposerPollPreview.tsx
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/DemoPollShots.tsx
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/PollChannel.tsx
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/WithPollWithText.tsx
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/default.recipe.tsx
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/installPollWithText.ts
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/removePendingPoll.ts
  • examples/cookbook/src/recipes/composer/poll-with-text-and-attachments/shots.json
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/DemoLocationShots.tsx
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/GeolocationWithMap.tsx
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/LocationColors.css
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/LocationMap.css
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/LocationMap.tsx
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/ShareLocationDialogWithMap.css
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/ShareLocationDialogWithMap.tsx
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/WithLocationMaps.tsx
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/default.recipe.tsx
  • examples/cookbook/src/recipes/custom-attachments/location-on-your-own-map/shots.json
  • examples/cookbook/src/recipes/custom-attachments/product-card/DemoProductShots.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductAttachmentPreview.css
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductAttachmentPreview.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductCard.css
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductCard.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductMessagePreview.css
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductMessagePreview.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductPicker.css
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductPicker.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/ProductQuotedMessage.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/WithProductAttachments.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/catalogue.ts
  • examples/cookbook/src/recipes/custom-attachments/product-card/default.recipe.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/demo-data.json
  • examples/cookbook/src/recipes/custom-attachments/product-card/installProductAttachments.ts
  • examples/cookbook/src/recipes/custom-attachments/product-card/product.ts
  • examples/cookbook/src/recipes/custom-attachments/product-card/productAttachmentsMiddleware.ts
  • examples/cookbook/src/recipes/custom-attachments/product-card/sdk-default.recipe.tsx
  • examples/cookbook/src/recipes/custom-attachments/product-card/shots.json
  • examples/cookbook/src/recipes/headers/channel-header/CustomChannelHeader.css
  • examples/cookbook/src/recipes/headers/channel-header/CustomChannelHeader.tsx
  • examples/cookbook/src/recipes/headers/channel-header/default.recipe.tsx
  • examples/cookbook/src/recipes/headers/channel-header/shots.json
  • examples/cookbook/src/recipes/headers/thread-header/CustomThreadHeader.css
  • examples/cookbook/src/recipes/headers/thread-header/CustomThreadHeader.tsx
  • examples/cookbook/src/recipes/headers/thread-header/ThreadPanel.tsx
  • examples/cookbook/src/recipes/headers/thread-header/default.recipe.tsx
  • examples/cookbook/src/recipes/headers/thread-header/shots.json
  • examples/cookbook/src/recipes/layout/channel-and-thread-side-by-side/default.recipe.tsx
  • examples/cookbook/src/recipes/layout/channel-and-thread-side-by-side/layout.css
  • examples/cookbook/src/recipes/layout/channel-and-thread-side-by-side/shots.json
  • examples/cookbook/src/recipes/layout/channel-and-thread-side-by-side/views.tsx
  • examples/cookbook/src/recipes/layout/collapsible-sidebar/AutoCloseSidebar.tsx
  • examples/cookbook/src/recipes/layout/collapsible-sidebar/SidebarContext.tsx
  • examples/cookbook/src/recipes/layout/collapsible-sidebar/SidebarToggle.tsx
  • examples/cookbook/src/recipes/layout/collapsible-sidebar/default.recipe.tsx
  • examples/cookbook/src/recipes/layout/collapsible-sidebar/shots.json
  • examples/cookbook/src/recipes/layout/collapsible-sidebar/sidebar.css
  • examples/cookbook/src/recipes/layout/collapsible-sidebar/views.tsx
  • examples/cookbook/src/recipes/layout/ctrl-click-opens-beside/SimulateCtrlClick.tsx
  • examples/cookbook/src/recipes/layout/ctrl-click-opens-beside/default.recipe.tsx
  • examples/cookbook/src/recipes/layout/ctrl-click-opens-beside/layout.css
  • examples/cookbook/src/recipes/layout/ctrl-click-opens-beside/shots.json
  • examples/cookbook/src/recipes/layout/ctrl-click-opens-beside/useOpenBesideOnWideWindows.ts
  • examples/cookbook/src/recipes/layout/ctrl-click-opens-beside/views.tsx
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/LayoutPersistence.tsx
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/LayoutPersistenceWithUrl.tsx
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/default.recipe.tsx
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/layoutSnapshot.ts
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/saved-layout.json
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/seedSavedLayout.ts
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/shots.json
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/storage.recipe.tsx
  • examples/cookbook/src/recipes/layout/saving-and-restoring-the-layout/views.tsx
  • examples/cookbook/src/recipes/layout/single-pane-mobile-with-back-button/BrowserBack.tsx
  • examples/cookbook/src/recipes/layout/single-pane-mobile-with-back-button/default.recipe.tsx
  • examples/cookbook/src/recipes/layout/single-pane-mobile-with-back-button/layout.css
  • examples/cookbook/src/recipes/layout/single-pane-mobile-with-back-button/shots.json
  • examples/cookbook/src/recipes/layout/single-pane-mobile-with-back-button/views.tsx
  • examples/cookbook/src/recipes/message-actions/action-bar/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-actions/action-bar/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-actions/action-bar/SimulateMessageStates.tsx
  • examples/cookbook/src/recipes/message-actions/action-bar/WithCustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-actions/action-bar/default.recipe.tsx
  • examples/cookbook/src/recipes/message-actions/action-bar/shots.json
  • examples/cookbook/src/recipes/message-actions/attachment-actions/ClickVoteLocally.tsx
  • examples/cookbook/src/recipes/message-actions/attachment-actions/VoteAttachment.tsx
  • examples/cookbook/src/recipes/message-actions/attachment-actions/VoteAttachmentActions.css
  • examples/cookbook/src/recipes/message-actions/attachment-actions/VoteAttachmentActions.tsx
  • examples/cookbook/src/recipes/message-actions/attachment-actions/default.recipe.tsx
  • examples/cookbook/src/recipes/message-actions/attachment-actions/demo-data.json
  • examples/cookbook/src/recipes/message-actions/attachment-actions/installVoteActions.ts
  • examples/cookbook/src/recipes/message-actions/attachment-actions/shots.json
  • examples/cookbook/src/recipes/message-actions/attachment-actions/voteActions.ts
  • examples/cookbook/src/recipes/message-actions/attachment-actions/voteActionsMiddleware.ts
  • examples/cookbook/src/recipes/message-actions/custom-message-actions/CustomMessageActions.tsx
  • examples/cookbook/src/recipes/message-actions/custom-message-actions/OpenMenuFromUrl.tsx
  • examples/cookbook/src/recipes/message-actions/custom-message-actions/default.recipe.tsx
  • examples/cookbook/src/recipes/message-actions/custom-message-actions/shots.json
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/EditPollAction.tsx
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/EditPollDialog.css
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/EditPollDialog.tsx
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/OpenEditPollFromUrl.tsx
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/ShowPollLocally.tsx
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/default.recipe.tsx
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/pollForm.ts
  • examples/cookbook/src/recipes/message-actions/editing-a-poll/shots.json
  • examples/cookbook/src/recipes/message-actions/reactions/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-actions/reactions/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-actions/reactions/SimulateMessageStates.tsx
  • examples/cookbook/src/recipes/message-actions/reactions/WithCustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-actions/reactions/default.recipe.tsx
  • examples/cookbook/src/recipes/message-actions/reactions/shots.json
  • examples/cookbook/src/recipes/message-list/custom-message/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-list/custom-message/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/SimulateMessageStates.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/WithCustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/avatars.recipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/default.recipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/grouped-metadata.recipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/message-text.recipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/metadata.recipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/plain-text.recipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/sender-names.recipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/shots.json
  • examples/cookbook/src/recipes/message-list/custom-message/stepRecipe.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/steps/avatars/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-list/custom-message/steps/avatars/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/steps/grouped-metadata/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-list/custom-message/steps/message-text/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-list/custom-message/steps/message-text/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/steps/metadata/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-list/custom-message/steps/metadata/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/steps/plain-text/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-list/custom-message/steps/sender-names/CustomMessageUi.css
  • examples/cookbook/src/recipes/message-list/custom-message/steps/sender-names/CustomMessageUi.tsx
  • examples/cookbook/src/recipes/message-list/giphy-preview/GiphyPreviewActions.css
  • examples/cookbook/src/recipes/message-list/giphy-preview/GiphyPreviewActions.tsx
  • examples/cookbook/src/recipes/message-list/giphy-preview/ShowGiphyPreviewLocally.tsx
  • examples/cookbook/src/recipes/message-list/giphy-preview/WithGiphyPreview.tsx
  • examples/cookbook/src/recipes/message-list/giphy-preview/default.recipe.tsx
  • examples/cookbook/src/recipes/message-list/giphy-preview/shots.json
  • examples/cookbook/src/recipes/message-list/image-gallery/ImageGrid.css
  • examples/cookbook/src/recipes/message-list/image-gallery/ImageGrid.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/Lightbox.css
  • examples/cookbook/src/recipes/message-list/image-gallery/Lightbox.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/LightboxCaption.css
  • examples/cookbook/src/recipes/message-list/image-gallery/LightboxCaption.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/LightboxMedia.css
  • examples/cookbook/src/recipes/message-list/image-gallery/LightboxMedia.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/OpenLightboxFromUrl.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/ThumbnailStrip.css
  • examples/cookbook/src/recipes/message-list/image-gallery/ThumbnailStrip.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/WithImageGallery.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/default.recipe.tsx
  • examples/cookbook/src/recipes/message-list/image-gallery/demo-data.json
  • examples/cookbook/src/recipes/message-list/image-gallery/shots.json
  • examples/cookbook/src/recipes/message-list/image-gallery/useLightboxNavigation.ts
  • examples/cookbook/src/recipes/message-list/pin-indicator/PinnedByIndicator.css
  • examples/cookbook/src/recipes/message-list/pin-indicator/PinnedByIndicator.tsx
  • examples/cookbook/src/recipes/message-list/pin-indicator/component.recipe.tsx
  • examples/cookbook/src/recipes/message-list/pin-indicator/css.recipe.tsx
  • examples/cookbook/src/recipes/message-list/pin-indicator/pin-indicator.css
  • examples/cookbook/src/recipes/message-list/pin-indicator/shots.json
  • examples/cookbook/src/recipes/message-list/pinned-messages-bar/ChannelHeaderWithPinnedBar.tsx
  • examples/cookbook/src/recipes/message-list/pinned-messages-bar/ClickPinnedBarFromUrl.tsx
  • examples/cookbook/src/recipes/message-list/pinned-messages-bar/PinnedMessagesBar.css
  • examples/cookbook/src/recipes/message-list/pinned-messages-bar/PinnedMessagesBar.tsx
  • examples/cookbook/src/recipes/message-list/pinned-messages-bar/default.recipe.tsx
  • examples/cookbook/src/recipes/message-list/pinned-messages-bar/demo-data.json
  • examples/cookbook/src/recipes/message-list/pinned-messages-bar/shots.json
  • examples/cookbook/src/recipes/message-list/read-receipt-avatars/ReadReceiptAvatars.css
  • examples/cookbook/src/recipes/message-list/read-receipt-avatars/ReadReceiptAvatars.tsx
  • examples/cookbook/src/recipes/message-list/read-receipt-avatars/ReadReceiptsChannel.tsx
  • examples/cookbook/src/recipes/message-list/read-receipt-avatars/default.recipe.tsx
  • examples/cookbook/src/recipes/message-list/read-receipt-avatars/demo-data.json
  • examples/cookbook/src/recipes/message-list/read-receipt-avatars/shots.json
  • examples/cookbook/src/recipes/message-list/system-message/AddLocalSystemMessage.tsx
  • examples/cookbook/src/recipes/message-list/system-message/CustomSystemMessage.css
  • examples/cookbook/src/recipes/message-list/system-message/CustomSystemMessage.tsx
  • examples/cookbook/src/recipes/message-list/system-message/custom.recipe.tsx
  • examples/cookbook/src/recipes/message-list/system-message/default.recipe.tsx
  • examples/cookbook/src/recipes/message-list/system-message/shots.json
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/ScreenshotHelpers.tsx
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/UnreadChannel.tsx
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/UnreadControls.css
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/UnreadControls.tsx
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/component.recipe.tsx
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/css.recipe.tsx
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/default.recipe.tsx
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/demo-data.json
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/shots.json
  • examples/cookbook/src/recipes/message-list/unread-and-scroll-controls/unread-and-scroll-controls.css
  • examples/cookbook/src/recipes/notifications/custom-snackbars/SimulateSnackbars.tsx
  • examples/cookbook/src/recipes/notifications/custom-snackbars/Snackbar.css
  • examples/cookbook/src/recipes/notifications/custom-snackbars/Snackbar.tsx
  • examples/cookbook/src/recipes/notifications/custom-snackbars/SnackbarStack.css
  • examples/cookbook/src/recipes/notifications/custom-snackbars/SnackbarStack.tsx
  • examples/cookbook/src/recipes/notifications/custom-snackbars/default.recipe.tsx
  • examples/cookbook/src/recipes/notifications/custom-snackbars/publishSnackbars.ts
  • examples/cookbook/src/recipes/notifications/custom-snackbars/shots.json
  • examples/cookbook/src/recipes/notifications/system-notification-banner/AppLayout.css
  • examples/cookbook/src/recipes/notifications/system-notification-banner/AppLayout.tsx
  • examples/cookbook/src/recipes/notifications/system-notification-banner/ConnectionStatusBanner.css
  • examples/cookbook/src/recipes/notifications/system-notification-banner/ConnectionStatusBanner.tsx
  • examples/cookbook/src/recipes/notifications/system-notification-banner/MaintenanceNotice.tsx
  • examples/cookbook/src/recipes/notifications/system-notification-banner/SimulateSystemNotification.tsx
  • examples/cookbook/src/recipes/notifications/system-notification-banner/SystemNotificationBanner.css
  • examples/cookbook/src/recipes/notifications/system-notification-banner/SystemNotificationBanner.tsx
  • examples/cookbook/src/recipes/notifications/system-notification-banner/connection.recipe.tsx
  • examples/cookbook/src/recipes/notifications/system-notification-banner/default.recipe.tsx
  • examples/cookbook/src/recipes/notifications/system-notification-banner/shots.json
  • examples/cookbook/src/recipes/panels/channel-details/ChannelDetailsPanel.css
  • examples/cookbook/src/recipes/panels/channel-details/ChannelDetailsPanel.tsx
  • examples/cookbook/src/recipes/panels/channel-details/ChannelHeaderWithDetails.css
  • examples/cookbook/src/recipes/panels/channel-details/ChannelHeaderWithDetails.tsx
  • examples/cookbook/src/recipes/panels/channel-details/MembersWithPresence.css
  • examples/cookbook/src/recipes/panels/channel-details/MembersWithPresence.tsx
  • examples/cookbook/src/recipes/panels/channel-details/OpenDetailsFromUrl.tsx
  • examples/cookbook/src/recipes/panels/channel-details/channel-details-theme.css
  • examples/cookbook/src/recipes/panels/channel-details/default.recipe.tsx
  • examples/cookbook/src/recipes/panels/channel-details/shots.json
  • examples/cookbook/src/recipes/panels/drafts-list/DraftsButton.css
  • examples/cookbook/src/recipes/panels/drafts-list/DraftsButton.tsx
  • examples/cookbook/src/recipes/panels/drafts-list/DraftsList.css
  • examples/cookbook/src/recipes/panels/drafts-list/DraftsList.tsx
  • examples/cookbook/src/recipes/panels/drafts-list/OpenDraftsFromUrl.tsx
  • examples/cookbook/src/recipes/panels/drafts-list/default.recipe.tsx
  • examples/cookbook/src/recipes/panels/drafts-list/demo-data.json
  • examples/cookbook/src/recipes/panels/drafts-list/shots.json
  • examples/cookbook/src/recipes/panels/hide-history-for-new-members/AddMembersButton.css
  • examples/cookbook/src/recipes/panels/hide-history-for-new-members/AddMembersButton.tsx
  • examples/cookbook/src/recipes/panels/hide-history-for-new-members/ChannelHeaderWithAddMembers.tsx
  • examples/cookbook/src/recipes/panels/hide-history-for-new-members/OpenHistoryDialog.tsx
  • examples/cookbook/src/recipes/panels/hide-history-for-new-members/default.recipe.tsx
  • examples/cookbook/src/recipes/panels/hide-history-for-new-members/shots.json
  • examples/cookbook/src/recipes/panels/message-info/MessageInfoAction.tsx
  • examples/cookbook/src/recipes/panels/message-info/MessageInfoPanel.css
  • examples/cookbook/src/recipes/panels/message-info/MessageInfoPanel.tsx
  • examples/cookbook/src/recipes/panels/message-info/OpenInfoFromUrl.tsx
  • examples/cookbook/src/recipes/panels/message-info/default.recipe.tsx
  • examples/cookbook/src/recipes/panels/message-info/demo-data.json
  • examples/cookbook/src/recipes/panels/message-info/shots.json
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/OpenSavedItemsFromUrl.tsx
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/SavedItems.css
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/SavedItems.tsx
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/SavedItemsButton.css
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/SavedItemsButton.tsx
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/default.recipe.tsx
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/demo-data.json
  • examples/cookbook/src/recipes/panels/saved-items-and-reminders/shots.json
  • examples/cookbook/src/recipes/panels/threads-view/OnlyCookbookThreads.tsx
  • examples/cookbook/src/recipes/panels/threads-view/ScreenshotHelpers.tsx
  • examples/cookbook/src/recipes/panels/threads-view/ThreadRow.css
  • examples/cookbook/src/recipes/panels/threads-view/ThreadRow.tsx
  • examples/cookbook/src/recipes/panels/threads-view/ThreadsView.css
  • examples/cookbook/src/recipes/panels/threads-view/ThreadsView.tsx
  • examples/cookbook/src/recipes/panels/threads-view/default.recipe.tsx
  • examples/cookbook/src/recipes/panels/threads-view/demo-data.json
  • examples/cookbook/src/recipes/panels/threads-view/shots.json
  • examples/cookbook/src/recipes/panels/user-details/MessageListWithUserDetails.tsx
  • examples/cookbook/src/recipes/panels/user-details/OpenProfileFromUrl.tsx
  • examples/cookbook/src/recipes/panels/user-details/UserDetailsPanel.css
  • examples/cookbook/src/recipes/panels/user-details/UserDetailsPanel.tsx
  • examples/cookbook/src/recipes/panels/user-details/default.recipe.tsx
  • examples/cookbook/src/recipes/panels/user-details/directConversation.ts
  • examples/cookbook/src/recipes/panels/user-details/shots.json
  • examples/cookbook/src/recipes/search/mentions-inbox/MentionsButton.css
  • examples/cookbook/src/recipes/search/mentions-inbox/MentionsButton.tsx
  • examples/cookbook/src/recipes/search/mentions-inbox/MentionsInbox.css
  • examples/cookbook/src/recipes/search/mentions-inbox/MentionsInbox.tsx
  • examples/cookbook/src/recipes/search/mentions-inbox/OpenMentionsFromUrl.tsx
  • examples/cookbook/src/recipes/search/mentions-inbox/default.recipe.tsx
  • examples/cookbook/src/recipes/search/mentions-inbox/demo-data.json
  • examples/cookbook/src/recipes/search/mentions-inbox/shots.json
  • examples/cookbook/src/recipes/search/search-customization/CompactChannelResults.css
  • examples/cookbook/src/recipes/search/search-customization/CompactChannelResults.tsx
  • examples/cookbook/src/recipes/search/search-customization/SidebarSearch.tsx
  • examples/cookbook/src/recipes/search/search-customization/SimulateSearch.tsx
  • examples/cookbook/src/recipes/search/search-customization/Workspace.css
  • examples/cookbook/src/recipes/search/search-customization/Workspace.tsx
  • examples/cookbook/src/recipes/search/search-customization/compact-results.recipe.tsx
  • examples/cookbook/src/recipes/search/search-customization/search-props.recipe.tsx
  • examples/cookbook/src/recipes/search/search-customization/shots.json
  • examples/cookbook/src/recipes/search/search-customization/top-bar.recipe.tsx
  • examples/cookbook/src/recipes/search/search-dialog/SearchDialog.css
  • examples/cookbook/src/recipes/search/search-dialog/SearchDialog.tsx
  • examples/cookbook/src/recipes/search/search-dialog/SearchDialogButton.css
  • examples/cookbook/src/recipes/search/search-dialog/SearchDialogButton.tsx
  • examples/cookbook/src/recipes/search/search-dialog/SearchFilters.css
  • examples/cookbook/src/recipes/search/search-dialog/SearchFilters.tsx
  • examples/cookbook/src/recipes/search/search-dialog/SearchResults.css
  • examples/cookbook/src/recipes/search/search-dialog/SearchResults.tsx
  • examples/cookbook/src/recipes/search/search-dialog/SimulateSearchDialog.tsx
  • examples/cookbook/src/recipes/search/search-dialog/default.recipe.tsx
  • examples/cookbook/src/recipes/search/search-dialog/searchController.ts
  • examples/cookbook/src/recipes/search/search-dialog/shots.json
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/dark.recipe.tsx
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/default.recipe.tsx
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/loadFont.ts
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/rtl.css
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/rtl.recipe.tsx
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/sdk-dark.recipe.tsx
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/shots.json
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/square.css
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/square.recipe.tsx
  • examples/cookbook/src/recipes/theming/brand-theme-and-dark-mode/theme.css
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/LucideFileIcon.tsx
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/OpenMenuFromUrl.tsx
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/WithLucideIcons.tsx
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/before.recipe.tsx
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/default.recipe.tsx
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/lucide-icons.css
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/lucideIcons.tsx
  • examples/cookbook/src/recipes/theming/replacing-the-icon-set/shots.json
  • examples/cookbook/src/vite-env.d.ts
  • examples/cookbook/tsconfig.app.json
  • examples/cookbook/tsconfig.json
  • examples/cookbook/tsconfig.node.json
  • examples/cookbook/vite.config.ts
  • examples/vite/src/NewConversation/createConversation.ts
  • package.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: -1.3 kB (-0.14%)

Total Size: 903 kB

📦 View Changed
Filename Size Change
dist/es/components/Form/mjs 274 B -1.3 kB (-82.61%) 🏆
ℹ️ View Unchanged
Filename Size
dist/cjs/ai-components.js 28.4 kB
dist/cjs/audioProcessing.js 1.53 kB
dist/cjs/channel-detail.js 24.5 kB
dist/cjs/Chart.js 1.1 kB
dist/cjs/chartTypes.js 584 B
dist/cjs/emojis.js 2.83 kB
dist/cjs/index.js 146 kB
dist/cjs/ListItemLayout.js 21.7 kB
dist/cjs/MessageComposerControllerContext.js 1.18 kB
dist/cjs/mp3-encoder.js 816 B
dist/cjs/ReactPlayerWrapper.js 521 B
dist/cjs/slot-js 2.05 kB
dist/cjs/slot-layout.js 13.9 kB
dist/cjs/Thread.js 40.5 kB
dist/cjs/useChannel.js 412 B
dist/cjs/useComponentContextIcons.js 22.2 kB
dist/cjs/useMessageTextStreaming.js 817 B
dist/cjs/usePopoverPosition.js 2.05 kB
dist/cjs/useStableCallback.js 933 B
dist/cjs/WorkspaceNavigationContext.js 19.7 kB
dist/css/ai-components.css 4.58 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 43.4 kB
dist/es/_virtual/_rolldown/runtime.mjs 252 B
dist/es/a11y/a11yUtils.mjs 630 B
dist/es/a11y/accessibleLabel.mjs 627 B
dist/es/a11y/hooks/useAriaIdentifiers.mjs 455 B
dist/es/a11y/hooks/useListboxKeyboardNavigation.mjs 1.24 kB
dist/es/a11y/hooks/useResolvedModalAriaProps.mjs 484 B
dist/es/a11y/hooks/useVirtualizedListboxKeyboardNavigation.mjs 1.18 kB
dist/es/ai-components.mjs 298 B
dist/es/channel-detail.mjs 802 B
dist/es/components/Accessibility/AriaLiveAnnouncerProvider.mjs 1.47 kB
dist/es/components/Accessibility/AriaLiveOutlet.mjs 882 B
dist/es/components/Accessibility/AriaLiveOutletContext.mjs 194 B
dist/es/components/Accessibility/hooks/useAudioPlaybackChangeAnnouncements.mjs 425 B
dist/es/components/Accessibility/hooks/useFocusReturn.mjs 551 B
dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs 1.25 kB
dist/es/components/Accessibility/hooks/useInertWhenHidden.mjs 909 B
dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs 2.64 kB
dist/es/components/Accessibility/NotificationAnnouncer.mjs 988 B
dist/es/components/Accessibility/scheduling/useAnnouncementQueue.mjs 582 B
dist/es/components/Accessibility/scheduling/useDebouncedAnnounce.mjs 747 B
dist/es/components/Accessibility/scheduling/useSettledAnnouncement.mjs 780 B
dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs 314 B
dist/es/components/AIStateIndicator/AIStateIndicator.mjs 475 B
dist/es/components/AIStateIndicator/hooks/useAIState.mjs 428 B
dist/es/components/Attachment/attachment-sizing.mjs 1.05 kB
dist/es/components/Attachment/Attachment.mjs 1.15 kB
dist/es/components/Attachment/AttachmentActions.mjs 1.64 kB
dist/es/components/Attachment/AttachmentContainer.mjs 2.4 kB
dist/es/components/Attachment/Audio.mjs 1.23 kB
dist/es/components/Attachment/audioSampling.mjs 1.39 kB
dist/es/components/Attachment/components/AttachmentUploadProgressIndicator.mjs 644 B
dist/es/components/Attachment/components/DownloadButton.mjs 692 B
dist/es/components/Attachment/components/FileSizeIndicator.mjs 436 B
dist/es/components/Attachment/FileAttachment.mjs 642 B
dist/es/components/Attachment/Geolocation.mjs 1.42 kB
dist/es/components/Attachment/Giphy.mjs 1.05 kB
dist/es/components/Attachment/giphyAccessibility.mjs 461 B
dist/es/components/Attachment/hooks/useAttachmentUploadState.mjs 1.33 kB
dist/es/components/Attachment/hooks/useLocalVideoDimensions.mjs 1.05 kB
dist/es/components/Attachment/icons.mjs 411 B
dist/es/components/Attachment/Image.mjs 344 B
dist/es/components/Attachment/LinkPreview/Card.mjs 1.02 kB
dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs 411 B
dist/es/components/Attachment/ModalGallery.mjs 2.09 kB
dist/es/components/Attachment/UnsupportedAttachment.mjs 413 B
dist/es/components/Attachment/utils.mjs 817 B
dist/es/components/Attachment/VideoAttachment.mjs 926 B
dist/es/components/Attachment/VisibilityDisclaimer.mjs 373 B
dist/es/components/Attachment/VoiceRecording.mjs 1.51 kB
dist/es/components/AudioPlayback/AudioPlaybackArbiter.mjs 939 B
dist/es/components/AudioPlayback/AudioPlayer.mjs 3.74 kB
dist/es/components/AudioPlayback/AudioPlayerPool.mjs 862 B
dist/es/components/AudioPlayback/components/DurationDisplay.mjs 596 B
dist/es/components/AudioPlayback/components/formatTime.mjs 339 B
dist/es/components/AudioPlayback/components/keyboardSeek.mjs 524 B
dist/es/components/AudioPlayback/components/PlaybackRateButton.mjs 300 B
dist/es/components/AudioPlayback/components/ProgressBar.mjs 833 B
dist/es/components/AudioPlayback/components/progressBarA11y.mjs 484 B
dist/es/components/AudioPlayback/components/useInteractiveProgressBar.mjs 1.07 kB
dist/es/components/AudioPlayback/components/WaveProgressBar.mjs 1.74 kB
dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs 659 B
dist/es/components/AudioPlayback/WithAudioPlayback.mjs 1.1 kB
dist/es/components/Avatar/Avatar.mjs 1.02 kB
dist/es/components/Avatar/AvatarStack.mjs 665 B
dist/es/components/Avatar/ChannelAvatar.mjs 344 B
dist/es/components/Avatar/GroupAvatar.mjs 850 B
dist/es/components/Avatar/utils.mjs 183 B
dist/es/components/Badge/Badge.mjs 518 B
dist/es/components/Badge/MediaBadge.mjs 439 B
dist/es/components/BaseImage/BaseImage.mjs 682 B
dist/es/components/BaseImage/ImagePlaceholder.mjs 416 B
dist/es/components/BaseImage/toBaseImageDescriptors.mjs 662 B
dist/es/components/Button/Button.mjs 529 B
dist/es/components/Button/PlayButton.mjs 493 B
dist/es/components/Button/WorkspaceNavigationButtons.mjs 1.03 kB
dist/es/components/Channel/Channel.mjs 1 kB
dist/es/components/Channel/constants.mjs 156 B
dist/es/components/Channel/hooks/useChannelCapabilities.mjs 350 B
dist/es/components/Channel/hooks/useChannelContainerClasses.mjs 346 B
dist/es/components/ChannelHeader/ChannelHeader.mjs 844 B
dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs 539 B
dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs 578 B
dist/es/components/ChannelList/ChannelList.mjs 1.16 kB
dist/es/components/ChannelList/ChannelListHeader.mjs 430 B
dist/es/components/ChannelList/ChannelLists.mjs 575 B
dist/es/components/ChannelList/ChannelNavigation.mjs 893 B
dist/es/components/ChannelList/hooks/useChannelListKeyboardNavigation.mjs 1.21 kB
dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs 230 B
dist/es/components/ChannelList/hooks/useChannelMembersState.mjs 226 B
dist/es/components/ChannelList/hooks/useChannelPaginatorState.mjs 492 B
dist/es/components/ChannelListItem/channelDisplayState.mjs 934 B
dist/es/components/ChannelListItem/ChannelListItem.mjs 1.06 kB
dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs 2.62 kB
dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs 518 B
dist/es/components/ChannelListItem/ChannelListItemUI.mjs 1.5 kB
dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs 695 B
dist/es/components/ChannelListItem/hooks/useChannelPreviewInfo.mjs 621 B
dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs 320 B
dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs 271 B
dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs 657 B
dist/es/components/ChannelListItem/utils.a11y.mjs 2.07 kB
dist/es/components/ChannelListItem/utils.mjs 2.46 kB
dist/es/components/Chat/Chat.mjs 1.26 kB
dist/es/components/Chat/hooks/useChat.mjs 580 B
dist/es/components/Chat/hooks/useCreateChatClient.mjs 766 B
dist/es/components/Chat/hooks/useCreateChatContext.mjs 445 B
dist/es/components/Chat/hooks/useNetworkConnectionState.mjs 681 B
dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs 1.5 kB
dist/es/components/Chat/hooks/useSplitActionSet.mjs 317 B
dist/es/components/Chat/hooks/useWSConnectionState.mjs 546 B
dist/es/components/DateSeparator/DateSeparator.mjs 566 B
dist/es/components/Dialog/components/Alert.mjs 647 B
dist/es/components/Dialog/components/Callout.mjs 815 B
dist/es/components/Dialog/components/ContextMenu.mjs 5.3 kB
dist/es/components/Dialog/components/Prompt.mjs 1.09 kB
dist/es/components/Dialog/components/Viewer.mjs 990 B
dist/es/components/Dialog/hooks/useDialog.mjs 688 B
dist/es/components/Dialog/hooks/usePopoverPosition.mjs 925 B
dist/es/components/Dialog/service/DialogAnchor.mjs 1.69 kB
dist/es/components/Dialog/service/DialogManager.mjs 1.18 kB
dist/es/components/Dialog/service/DialogPortal.mjs 1.02 kB
dist/es/components/DragAndDrop/DragAndDropContainer.mjs 1.16 kB
dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs 614 B
dist/es/components/EventComponent/EventComponent.mjs 470 B
dist/es/components/FileIcon/FileIconSet.mjs 6.69 kB
dist/es/components/FileIcon/iconMap.mjs 512 B
dist/es/components/FileIcon/mimeTypes.mjs 1.75 kB
dist/es/components/FileIcon/mjs 599 B
dist/es/components/Form/FieldError.mjs 261 B
dist/es/components/Form/hooks/useFormState.mjs 550 B
dist/es/components/Form/NumericInput.mjs 1.39 kB
dist/es/components/Form/SwitchField.mjs 1.54 kB
dist/es/components/Form/TextInput.mjs 1.3 kB
dist/es/components/Form/TextInputFieldSet.mjs 376 B
dist/es/components/Gallery/Gallery.mjs 654 B
dist/es/components/Gallery/GalleryContext.mjs 341 B
dist/es/components/Gallery/GalleryHeader.mjs 1.26 kB
dist/es/components/Gallery/GalleryUI.mjs 2.03 kB
dist/es/components/Icons/createIcon.mjs 429 B
dist/es/components/Icons/icons.mjs 19.3 kB
dist/es/components/Icons/mjs 378 B
dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs 598 B
dist/es/components/InfiniteScrollPaginator/InfiniteScroll.mjs 1.06 kB
dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs 1.49 kB
dist/es/components/InfiniteScrollPaginator/InfiniteScrollWithComponents.mjs 738 B
dist/es/components/ListItemLayout/ListItemLayout.mjs 707 B
dist/es/components/Loading/AttachmentUploadedSizeIndicator.mjs 523 B
dist/es/components/Loading/LoadingChannel.mjs 639 B
dist/es/components/Loading/LoadingChannels.mjs 377 B
dist/es/components/Loading/LoadingErrorIndicator.mjs 416 B
dist/es/components/Loading/LoadingIndicator.mjs 286 B
dist/es/components/Loading/progress-indicators.mjs 736 B
dist/es/components/Loading/UploadedSizeIndicator.mjs 413 B
dist/es/components/Loading/UploadProgressIndicator.mjs 366 B
dist/es/components/LoadMore/LoadMoreButton.mjs 503 B
dist/es/components/LoadMore/LoadMorePaginator.mjs 378 B
dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs 644 B
dist/es/components/Location/ShareLocationDialog.mjs 2.27 kB
dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs 627 B
dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs 1.04 kB
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs 1.06 kB
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs 1.01 kB
dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs 910 B
dist/es/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.mjs 442 B
dist/es/components/MediaRecorder/AudioRecorder/recordingStateIdentity.mjs 227 B
dist/es/components/MediaRecorder/AudioRecorder/RecordingTimer.mjs 322 B
dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs 1.07 kB
dist/es/components/MediaRecorder/classes/BrowserPermission.mjs 758 B
dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs 2.58 kB
dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs 911 B
dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs 353 B
dist/es/components/MediaRecorder/observable/mjs 186 B
dist/es/components/MediaRecorder/observable/Observable.mjs 315 B
dist/es/components/MediaRecorder/observable/Subject.mjs 550 B
dist/es/components/MediaRecorder/observable/Subscription.mjs 211 B
dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs 503 B
dist/es/components/MediaRecorder/transcode/audioProcessing.mjs 560 B
dist/es/components/MediaRecorder/transcode/index.mjs 351 B
dist/es/components/MediaRecorder/transcode/wav.mjs 1.32 kB
dist/es/components/Message/emojiRegex.mjs 350 B
dist/es/components/Message/hooks/useActionHandler.mjs 585 B
dist/es/components/Message/hooks/useDeleteHandler.mjs 610 B
dist/es/components/Message/hooks/useFlagHandler.mjs 391 B
dist/es/components/Message/hooks/useMarkUnreadHandler.mjs 414 B
dist/es/components/Message/hooks/useMentionsHandler.mjs 377 B
dist/es/components/Message/hooks/useMessageAlsoSentInChannelNavigation.mjs 927 B
dist/es/components/Message/hooks/useMessageReminder.mjs 299 B
dist/es/components/Message/hooks/useMessageTextStreaming.mjs 749 B
dist/es/components/Message/hooks/useMuteHandler.mjs 704 B
dist/es/components/Message/hooks/useOpenThreadHandler.mjs 488 B
dist/es/components/Message/hooks/usePinHandler.mjs 608 B
dist/es/components/Message/hooks/useReactionHandler.mjs 1.29 kB
dist/es/components/Message/hooks/useReactionsFetcher.mjs 500 B
dist/es/components/Message/hooks/useRetryHandler.mjs 294 B
dist/es/components/Message/hooks/useUserHandler.mjs 255 B
dist/es/components/Message/hooks/useUserRole.mjs 678 B
dist/es/components/Message/Message.mjs 1.36 kB
dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs 645 B
dist/es/components/Message/MessageBlocked.mjs 451 B
dist/es/components/Message/MessageBubble.mjs 246 B
dist/es/components/Message/MessageDeletedBubble.mjs 412 B
dist/es/components/Message/MessageEditedIndicator.mjs 722 B
dist/es/components/Message/MessageRepliesCountButton.mjs 1.11 kB
dist/es/components/Message/MessageStatus.mjs 1.29 kB
dist/es/components/Message/MessageText.mjs 1.34 kB
dist/es/components/Message/MessageTimestamp.mjs 418 B
dist/es/components/Message/MessageTranslationIndicator.mjs 896 B
dist/es/components/Message/MessageUI.mjs 2.76 kB
dist/es/components/Message/PinIndicator.mjs 638 B
dist/es/components/Message/QuotedMessage.mjs 427 B
dist/es/components/Message/ReminderNotification.mjs 1.02 kB
dist/es/components/Message/renderText/componentRenderers/Anchor.mjs 406 B
dist/es/components/Message/renderText/componentRenderers/Emoji.mjs 246 B
dist/es/components/Message/renderText/componentRenderers/Mention.mjs 307 B
dist/es/components/Message/renderText/regex.mjs 440 B
dist/es/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.mjs 338 B
dist/es/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.mjs 1.61 kB
dist/es/components/Message/renderText/remarkPlugins/htmlToTextPlugin.mjs 243 B
dist/es/components/Message/renderText/remarkPlugins/imageToLink.mjs 610 B
dist/es/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.mjs 732 B
dist/es/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.mjs 827 B
dist/es/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.mjs 316 B
dist/es/components/Message/renderText/renderText.mjs 1.58 kB
dist/es/components/Message/StreamedMessageText.mjs 500 B
dist/es/components/Message/Timestamp.mjs 525 B
dist/es/components/Message/utils.mjs 2.31 kB
dist/es/components/MessageActions/DeleteMessageAlert.mjs 616 B
dist/es/components/MessageActions/DownloadSubmenu.mjs 857 B
dist/es/components/MessageActions/downloadUtils.mjs 1.27 kB
dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs 1.33 kB
dist/es/components/MessageActions/MessageActions.mjs 4.23 kB
dist/es/components/MessageActions/QuickMessageActionButton.mjs 359 B
dist/es/components/MessageActions/RemindMeSubmenu.mjs 1.01 kB
dist/es/components/MessageBounce/MessageBounceModal.mjs 347 B
dist/es/components/MessageBounce/MessageBouncePrompt.mjs 817 B
dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs 1.19 kB
dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs 1.85 kB
dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs 1.11 kB
dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs 771 B
dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs 1.33 kB
dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs 541 B
dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs 919 B
dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs 533 B
dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs 3.3 kB
dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs 1.39 kB
dist/es/components/MessageComposer/CommandChip.mjs 569 B
dist/es/components/MessageComposer/CooldownTimer.mjs 294 B
dist/es/components/MessageComposer/EditedMessagePreview.mjs 334 B
dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs 542 B
dist/es/components/MessageComposer/hooks/useAttachmentsForPreview.mjs 362 B
dist/es/components/MessageComposer/hooks/useCanCreatePoll.mjs 285 B
dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs 342 B
dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs 419 B
dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs 274 B
dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs 348 B
dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs 414 B
dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs 467 B
dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs 274 B
dist/es/components/MessageComposer/hooks/useMessageComposerSubmitFn.mjs 412 B
dist/es/components/MessageComposer/hooks/useMessageContentIsEmpty.mjs 274 B
dist/es/components/MessageComposer/hooks/usePasteHandler.mjs 579 B
dist/es/components/MessageComposer/hooks/useTextareaRef.mjs 252 B
dist/es/components/MessageComposer/hooks/utils.mjs 339 B
dist/es/components/MessageComposer/icons.mjs 1.28 kB
dist/es/components/MessageComposer/LinkPreviewList.mjs 1.08 kB
dist/es/components/MessageComposer/MessageComposer.mjs 880 B
dist/es/components/MessageComposer/MessageComposerActions.mjs 1.16 kB
dist/es/components/MessageComposer/MessageComposerUI.mjs 1.43 kB
dist/es/components/MessageComposer/preEditSnapshot.mjs 556 B
dist/es/components/MessageComposer/QuotedMessageIndicator.mjs 263 B
dist/es/components/MessageComposer/QuotedMessagePreview.mjs 3.1 kB
dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs 609 B
dist/es/components/MessageComposer/SendButton.mjs 499 B
dist/es/components/MessageComposer/SendToChannelCheckbox.mjs 773 B
dist/es/components/MessageComposer/StopAIGenerationButton.mjs 373 B
dist/es/components/MessageComposer/WithDragAndDropUpload.mjs 1.54 kB
dist/es/components/MessageList/FloatingDateSeparator.mjs 688 B
dist/es/components/MessageList/GiphyPreviewMessage.mjs 278 B
dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs 629 B
dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs 929 B
dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs 638 B
dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs 2.26 kB
dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs 2.24 kB
dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs 1.07 kB
dist/es/components/MessageList/hooks/useCanPaginateReplies.mjs 732 B
dist/es/components/MessageList/hooks/useLastDeliveredData.mjs 244 B
dist/es/components/MessageList/hooks/useLastOwnMessage.mjs 249 B
dist/es/components/MessageList/hooks/useLastReadData.mjs 240 B
dist/es/components/MessageList/hooks/useMarkRead.mjs 1.3 kB
dist/es/components/MessageList/hooks/useReceiptsByMessageId.mjs 981 B
dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs 475 B
dist/es/components/MessageList/hooks/useThreadHead.mjs 482 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs 840 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs 434 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.mjs 383 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs 876 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.mjs 647 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollerViewport.mjs 910 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.mjs 499 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.mjs 422 B
dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs 740 B
dist/es/components/MessageList/MessageList.mjs 3.33 kB
dist/es/components/MessageList/MessageListMainPanel.mjs 284 B
dist/es/components/MessageList/messageSourceKey.mjs 691 B
dist/es/components/MessageList/NewMessageNotification.mjs 561 B
dist/es/components/MessageList/renderMessages.mjs 1.1 kB
dist/es/components/MessageList/ScrollToLatestMessageButton.mjs 1.53 kB
dist/es/components/MessageList/UnreadMessagesNotification.mjs 862 B
dist/es/components/MessageList/UnreadMessagesSeparator.mjs 752 B
dist/es/components/MessageList/utils.mjs 2.48 kB
dist/es/components/MessageList/VirtualizedMessageList.mjs 4.26 kB
dist/es/components/MessageList/VirtualizedMessageListComponents.mjs 1.64 kB
dist/es/components/Modal/GlobalModal.mjs 1.81 kB
dist/es/components/Notifications/hooks/useNotificationApi.mjs 1.29 kB
dist/es/components/Notifications/hooks/useNotifications.mjs 564 B
dist/es/components/Notifications/hooks/useNotificationTarget.mjs 415 B
dist/es/components/Notifications/hooks/useSystemNotifications.mjs 456 B
dist/es/components/Notifications/Notification.mjs 1.24 kB
dist/es/components/Notifications/NotificationConfigurationContext.mjs 386 B
dist/es/components/Notifications/NotificationList.mjs 2.79 kB
dist/es/components/Notifications/notificationTarget.mjs 699 B
dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs 686 B
dist/es/components/Poll/hooks/usePollAnswerPagination.mjs 586 B
dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs 601 B
dist/es/components/Poll/mjs 926 B
dist/es/components/Poll/Poll.mjs 302 B
dist/es/components/Poll/PollActions/AddCommentPrompt.mjs 1.32 kB
dist/es/components/Poll/PollActions/EndPollAlert.mjs 820 B
dist/es/components/Poll/PollActions/PollAction.mjs 492 B
dist/es/components/Poll/PollActions/PollActions.mjs 1.37 kB
dist/es/components/Poll/PollActions/PollAnswerList.mjs 1.05 kB
dist/es/components/Poll/PollActions/PollOptionsFullList.mjs 583 B
dist/es/components/Poll/PollActions/PollQuestion.mjs 346 B
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs 852 B
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs 723 B
dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs 614 B
dist/es/components/Poll/PollActions/PollResults/PollResults.mjs 1.11 kB
dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs 1.32 kB
dist/es/components/Poll/PollContent.mjs 489 B
dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs 1.46 kB
dist/es/components/Poll/PollCreationDialog/NameField.mjs 767 B
dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs 2.5 kB
dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs 1.11 kB
dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs 832 B
dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs 1.02 kB
dist/es/components/Poll/PollHeader.mjs 683 B
dist/es/components/Poll/PollOptionList.mjs 845 B
dist/es/components/Poll/PollOptionSelector.mjs 1.51 kB
dist/es/components/Portal/Portal.mjs 300 B
dist/es/components/ReactFileUtilities/UploadButton.mjs 813 B
dist/es/components/ReactFileUtilities/utils.mjs 1.06 kB
dist/es/components/Reactions/hooks/useFetchReactions.mjs 714 B
dist/es/components/Reactions/hooks/useProcessReactions.mjs 1.2 kB
dist/es/components/Reactions/MessageReactions.mjs 1.77 kB
dist/es/components/Reactions/MessageReactionsDetail.mjs 1.99 kB
dist/es/components/Reactions/reactionOptions.mjs 1.09 kB
dist/es/components/Reactions/ReactionSelector.mjs 1.57 kB
dist/es/components/Reactions/ReactionSelectorWithButton.mjs 877 B
dist/es/components/Reactions/SpriteImage.mjs 727 B
dist/es/components/Reactions/utils/utils.mjs 284 B
dist/es/components/SafeAnchor/SafeAnchor.mjs 365 B
dist/es/components/Search/hooks/useAnnounceSearchResultCount.mjs 926 B
dist/es/components/Search/hooks/useSearchQueriesInProgress.mjs 450 B
dist/es/components/Search/hooks/useSearchResultsKeyboardNavigation.mjs 644 B
dist/es/components/Search/Search.mjs 642 B
dist/es/components/Search/SearchBar/SearchBar.mjs 1.36 kB
dist/es/components/Search/SearchContext.mjs 333 B
dist/es/components/Search/SearchResults/SearchResultItem.mjs 1.85 kB
dist/es/components/Search/SearchResults/SearchResults.mjs 716 B
dist/es/components/Search/SearchResults/SearchResultsHeader.mjs 910 B
dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs 322 B
dist/es/components/Search/SearchResults/SearchSourceResultList.mjs 649 B
dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs 562 B
dist/es/components/Search/SearchResults/SearchSourceResults.mjs 561 B
dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs 326 B
dist/es/components/Search/SearchResults/SearchSourceResultsHeader.mjs 148 B
dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs 390 B
dist/es/components/Search/SearchSourceResultsContext.mjs 347 B
dist/es/components/SkipNavigation/SkipNavigation.mjs 1.28 kB
dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs 1.53 kB
dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs 821 B
dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs 685 B
dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs 480 B
dist/es/components/TextareaComposer/SuggestionList/EmoticonItem.mjs 508 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs 643 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.mjs 439 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.mjs 236 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/mjs 767 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.mjs 161 B
dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs 590 B
dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs 2.43 kB
dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs 649 B
dist/es/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.mjs 608 B
dist/es/components/TextareaComposer/TextareaComposer.mjs 3.34 kB
dist/es/components/Thread/Thread.mjs 947 B
dist/es/components/Thread/ThreadHead.mjs 453 B
dist/es/components/Thread/ThreadHeader.mjs 1.09 kB
dist/es/components/Thread/ThreadStart.mjs 458 B
dist/es/components/Threads/hooks/useCloseThread.mjs 524 B
dist/es/components/Threads/ThreadContext.mjs 265 B
dist/es/components/Threads/ThreadList/ThreadList.mjs 1.36 kB
dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs 397 B
dist/es/components/Threads/ThreadList/ThreadListHeader.mjs 428 B
dist/es/components/Threads/ThreadList/ThreadListItem.mjs 351 B
dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs 1.86 kB
dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs 455 B
dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs 794 B
dist/es/components/Threads/ThreadList/useThreadHighlighting.mjs 830 B
dist/es/components/Threads/ThreadList/utils.a11y.mjs 1.56 kB
dist/es/components/Threads/UnreadCountBadge.mjs 332 B
dist/es/components/Tooltip/hooks/useEnterLeaveHandlers.mjs 296 B
dist/es/components/Tooltip/Tooltip.mjs 556 B
dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs 664 B
dist/es/components/TypingIndicator/hooks/useTypingUsers.mjs 564 B
dist/es/components/TypingIndicator/TypingIndicator.mjs 1.07 kB
dist/es/components/TypingIndicator/TypingIndicatorDots.mjs 406 B
dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs 700 B
dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs 441 B
dist/es/components/UtilityComponents/ErrorBoundary.mjs 313 B
dist/es/components/UtilityComponents/hooks/useMutationObserver.mjs 684 B
dist/es/components/UtilityComponents/useStableId.mjs 468 B
dist/es/components/VideoPlayer/ReactPlayerWrapper.mjs 448 B
dist/es/components/VideoPlayer/VideoPlayer.mjs 466 B
dist/es/components/VideoPlayer/VideoThumbnail.mjs 569 B
dist/es/components/VisuallyHidden/VisuallyHidden.mjs 399 B
dist/es/constants/messageTypes.mjs 173 B
dist/es/context/AttachmentContext.mjs 344 B
dist/es/context/AttachmentSelectorContext.mjs 272 B
dist/es/context/ChannelInstanceContext.mjs 376 B
dist/es/context/ChannelListContext.mjs 313 B
dist/es/context/ChatContext.mjs 282 B
dist/es/context/ComponentContext.mjs 257 B
dist/es/context/DialogManagerContext.mjs 1.54 kB
dist/es/context/MessageBounceContext.mjs 712 B
dist/es/context/MessageComposerContext.mjs 410 B
dist/es/context/MessageComposerControllerContext.mjs 418 B
dist/es/context/MessageContext.mjs 285 B
dist/es/context/MessageListContext.mjs 325 B
dist/es/context/MessageTranslationViewContext.mjs 584 B
dist/es/context/ModalContext.mjs 403 B
dist/es/context/PollContext.mjs 300 B
dist/es/context/requireContext.mjs 364 B
dist/es/context/ThemeScopeContext.mjs 736 B
dist/es/context/TranslationContext.mjs 261 B
dist/es/context/useChannel.mjs 333 B
dist/es/context/useComponentContextIcons.mjs 402 B
dist/es/context/VirtualizedMessageListContext.mjs 338 B
dist/es/context/WithComponents.mjs 331 B
dist/es/context/WorkspaceNavigationContext.mjs 922 B
dist/es/emojis.mjs 126 B
dist/es/hooks/useIsDmChannel.mjs 469 B
dist/es/hooks/useMessagePaginator.mjs 304 B
dist/es/i18n/runtimeDefaults.mjs 909 B
dist/es/i18n/Streami18n.mjs 792 B
dist/es/i18n/TranslationBuilder/index.mjs 122 B
dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs 563 B
dist/es/i18n/TranslationBuilder/notifications/translators.mjs 669 B
dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs 954 B
dist/es/i18n/useStreami18n.mjs 587 B
dist/es/i18n/utils.mjs 335 B
dist/es/index.mjs 7.98 kB
dist/es/mp3-encoder.mjs 778 B
dist/es/plugins/AIComponents/AIMarkdown/AIMarkdown.mjs 1.19 kB
dist/es/plugins/AIComponents/AIMarkdown/tools/charts/Chart.mjs 814 B
dist/es/plugins/AIComponents/AIMarkdown/tools/charts/chartJsSchema.mjs 425 B
dist/es/plugins/AIComponents/AIMarkdown/tools/charts/chartTypes.mjs 517 B
dist/es/plugins/AIComponents/AIMarkdown/tools/charts/JsonChart.mjs 407 B
dist/es/plugins/AIComponents/AIMarkdown/tools/charts/SuspendedChart.mjs 707 B
dist/es/plugins/AIComponents/AIMessageComposer/AIMessageComposer.mjs 2.75 kB
dist/es/plugins/AIComponents/AIMessageComposer/AttachmentPreview.mjs 1.01 kB
dist/es/plugins/AIComponents/AIMessageComposer/hooks/useSpeechToText.mjs 1.12 kB
dist/es/plugins/AIComponents/AIStateIndicator/AIStateIndicator.mjs 798 B
dist/es/plugins/AIComponents/hooks/useHeardText.mjs 2.49 kB
dist/es/plugins/AIComponents/StreamingMessage/StreamingMessage.mjs 456 B
dist/es/plugins/AIComponents/VoiceVisualization/bounce.mjs 783 B
dist/es/plugins/AIComponents/VoiceVisualization/cssGlow.mjs 2.27 kB
dist/es/plugins/AIComponents/VoiceVisualization/driver.mjs 2.08 kB
dist/es/plugins/AIComponents/VoiceVisualization/hitArea.mjs 496 B
dist/es/plugins/AIComponents/VoiceVisualization/math.mjs 1.15 kB
dist/es/plugins/AIComponents/VoiceVisualization/palette.mjs 1.59 kB
dist/es/plugins/AIComponents/VoiceVisualization/renderers/glowWebGLRenderer.mjs 4.75 kB
dist/es/plugins/AIComponents/VoiceVisualization/renderers/types.mjs 216 B
dist/es/plugins/AIComponents/VoiceVisualization/renderers/waveRenderer.mjs 2.26 kB
dist/es/plugins/AIComponents/VoiceVisualization/simplex.mjs 1.26 kB
dist/es/plugins/AIComponents/VoiceVisualization/useAudioLevel.mjs 1.26 kB
dist/es/plugins/AIComponents/VoiceVisualization/useVoiceStateLabel.mjs 402 B
dist/es/plugins/AIComponents/VoiceVisualization/VoiceGlow.mjs 771 B
dist/es/plugins/AIComponents/VoiceVisualization/VoiceGlowCss.mjs 3.39 kB
dist/es/plugins/AIComponents/VoiceVisualization/VoiceVisualizationView.mjs 2.38 kB
dist/es/plugins/AIComponents/VoiceVisualization/VoiceWave.mjs 628 B
dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs 934 B
dist/es/plugins/ChannelDetail/ChannelDetail.mjs 942 B
dist/es/plugins/ChannelDetail/ChannelDetailContext.mjs 373 B
dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs 337 B
dist/es/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.mjs 419 B
dist/es/plugins/ChannelDetail/ChannelDetailNavButton.mjs 494 B
dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs 585 B
dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigator.mjs 1.79 kB
dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs 783 B
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs 465 B
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs 1.5 kB
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs 1.06 kB
dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs 723 B
dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.mjs 3.93 kB
dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs 3.61 kB
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs 482 B
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs 2.34 kB
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs 723 B
dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs 720 B
dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.mjs 3.43 kB
dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs 1.08 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs 2.32 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs 1.67 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.mjs 1.56 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs 1.31 kB
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs 369 B
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.mjs 392 B
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.mjs 417 B
dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.mjs 744 B
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs 475 B
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs 1.82 kB
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs 348 B
dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs 879 B
dist/es/plugins/ChannelDetail/VirtualizedList/VirtualizedList.mjs 579 B
dist/es/plugins/Emojis/EmojiPicker.mjs 1.32 kB
dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs 1.53 kB
dist/es/plugins/Emojis/Picker.mjs 324 B
dist/es/plugins/SlotGeometry/SlotGeometry.mjs 1.99 kB
dist/es/plugins/SlotLayout/a11y.utility.mjs 295 B
dist/es/plugins/SlotLayout/ChannelSlot.mjs 552 B
dist/es/plugins/SlotLayout/ChatViewEmptyPlaceholder.mjs 613 B
dist/es/plugins/SlotLayout/ChatViewNavigationContext.mjs 2.47 kB
dist/es/plugins/SlotLayout/DisposedChannelRelease.mjs 725 B
dist/es/plugins/SlotLayout/hooks/useLayoutViewState.mjs 470 B
dist/es/plugins/SlotLayout/hooks/useSlotEntity.mjs 1.37 kB
dist/es/plugins/SlotLayout/layout/Slot.mjs 781 B
dist/es/plugins/SlotLayout/layout/WorkspaceLayout.mjs 482 B
dist/es/plugins/SlotLayout/layoutController/LayoutController.mjs 2.67 kB
dist/es/plugins/SlotLayout/layoutController/serialization.mjs 805 B
dist/es/plugins/SlotLayout/mjs 3.68 kB
dist/es/plugins/SlotLayout/slotBinding.mjs 331 B
dist/es/plugins/SlotLayout/slotRegistry.mjs 1.12 kB
dist/es/plugins/SlotLayout/SupersededChannelSwap.mjs 992 B
dist/es/plugins/SlotLayout/ThreadListSlot.mjs 680 B
dist/es/plugins/SlotLayout/ThreadSlot.mjs 515 B
dist/es/plugins/SlotLayout/workspaceNavigationAdapter.mjs 1.57 kB
dist/es/slot-layout.mjs 524 B
dist/es/slot-mjs 125 B
dist/es/store/hooks/useStateStore.mjs 550 B
dist/es/utils/findReverse.mjs 231 B
dist/es/utils/getTextareaCaretRect.mjs 923 B
dist/es/utils/getWholeChar.mjs 626 B
dist/es/utils/isDmChannel.mjs 247 B
dist/es/utils/mergeDeep.mjs 197 B
dist/es/utils/useStableCallback.mjs 494 B

compressed-size-action

Comment thread examples/cookbook/src/base/OpenFromUrl.tsx Fixed
variant = 'default',
): Promise<RecipeConfig | undefined> => {
const load = recipeModules[`../recipes/${id}/${variant}.recipe.tsx`];
return load ? (await load()).default : undefined;
@codecov

codecov Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.70%. Comparing base (b793352) to head (7b92bbc).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3354      +/-   ##
==========================================
+ Coverage   88.63%   88.70%   +0.07%     
==========================================
  Files         563      563              
  Lines       17138    17139       +1     
  Branches     5246     5246              
==========================================
+ Hits        15190    15204      +14     
+ Misses       1948     1935      -13     

☔ 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.

Addresses the two CodeQL findings on the cookbook base app: URL values
are passed to console.warn/error as arguments rather than interpolated
into the format string, and loadRecipe only looks up the glob's own
keys.
Adds examples/cookbook/src/recipes/ai/voice-agent-visuals: a voice
strip under the channel header with VoiceGlow and VoiceWave, the spoken
reply revealed with useHeardText, and a simulator that freezes the
animation for stable screenshots. The base app now loads the
ai-components stylesheet in the stream layer.
The cookbook no longer loads a custom theme for every recipe, so the
recipes and their screenshots show the SDK's default look. Only the
Theming recipe loads its own theme, now in green shades instead of
violet. Recipe CSS written for the violet own bubble is removed.
…skill

Recipe pages open with a "What you'll build" note listing the
features. Every screenshot has a caption above it and sits between
two horizontal rules.

This branch was successfully deployed

2 active deployments
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