Skip to content

refactor(fuselage): components take no styling props - #42974

Merged
ggazzo merged 248 commits into
developfrom
docs/fuselage-component-style-props
Oct 23, 2026
Merged

ggazzo merged 248 commits into
developfrom
docs/fuselage-component-style-props

Conversation

@ggazzo

@ggazzo ggazzo commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Proposed changes (including videos or screenshots)

Fuselage components stop taking Box styling props from their callers. A component accepts DOM/ARIA attributes and the variations it declares (no margins, sizes, flex-child props, colours, free is or rcx-* props), and the container owns the layout, mostly through gap. The rule and its reasoning are in docs/proposals/fuselage-component-style-props.md.

The lock, scripts/scan-style-props.mjs run in the lint job with --max, lives in #43056. It counts every use of a Fuselage component that passes a styling prop it doesn't declare, and every element laid out by Margins/Scrollable, starting at --max 914, the count on develop.

The pull request has two parts:

  1. The migration. One commit per component or family moves spacing to gap on the container, sizing and flex-child props to the parent's layout, and spacing that a component should own into its own styles. Fuselage's own compositions get the same treatment.

  2. The variations the migration needed. These are declared on the components instead of passed as Box props:

    • Stack and PopoverSurface;
    • Divider flush/light/vertical sizes;
    • Button compact, ButtonGroup stretch='equal', IconButton badgePosition/color;
    • Chip small/label, Tile flush;
    • Table columns and TableCell rowHeader;
    • Icon color (semantic tokens), Skeleton inverted;
    • InputBox endAddonFlush, FieldRow justify;
    • Modal sizing, ModalIcon variant.

    is is narrowed where it is legitimate: Button/IconButton to 'button' | 'a', TableCell to 'td' | 'th'.

The last commit merges the pull request's changesets into one. Once both pull requests are in, --max in #43056's CI step drops to 1.

develop this branch
Scan findings 914 1

The one finding left, the ContactInfo conflicts Callout, stays on purpose: centring its icon would need a new Callout API.

Visible changes are small and were reviewed one by one in Storybook. Most layouts are pixel-identical. The intended differences are covered by the visual regression baselines updated in this branch, and are listed in the changeset.

Issue(s)

https://rocketchat.atlassian.net/browse/ARCH-2573

Steps to test or reproduce

  • Scan, with docs: screens compose named layout containers instead of Box #43056's script: node scripts/scan-style-props.mjs --max 1 passes on this branch, and adding a styling prop to any Fuselage component makes it fail.
  • Storybook: the Fuselage visual regression suite covers the changed and the new components.
  • In the app, the screens with visible changes are:
    • the room header;
    • message attachments and UiKit blocks;
    • admin forms and settings;
    • the omnichannel filters and contact info;
    • the Marketplace;
    • login and registration.

Further comments

Merge order: #43056 (scanner and CI step) can be merged first, independently.

@ggazzo ggazzo added this to the 9.0.0 milestone Oct 20, 2026
@dionisio-bot

dionisio-bot Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Looks like this PR is not ready to merge, because of the following issues:

  • GitHub is still computing mergeability — this will refresh shortly

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@changeset-bot

changeset-bot Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d5362b4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 22 packages
Name Type
@rocket.chat/fuselage Minor
@rocket.chat/fuselage-ui-kit Patch
@rocket.chat/layout Patch
@rocket.chat/meteor Patch
@rocket.chat/onboarding-ui Patch
@rocket.chat/ui-client Patch
@rocket.chat/ui-composer Patch
@rocket.chat/ui-voip Patch
@rocket.chat/web-ui-registration Patch
@rocket.chat/uikit-playground Patch
@rocket.chat/core-typings Patch
@rocket.chat/fuselage-forms Patch
@rocket.chat/fuselage-toastbar Patch
@rocket.chat/gazzodown Patch
@rocket.chat/storybook-config Patch
@rocket.chat/ui-account Patch
@rocket.chat/ui-avatar Patch
@rocket.chat/ui-conference Patch
@rocket.chat/ui-media Patch
@rocket.chat/ui-video-conf Patch
@rocket.chat/ui-livekit Patch
@rocket.chat/rest-typings Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 631 files, which is 331 over the limit of 300.

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

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: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 079bd5fd-0d6b-4cb1-9704-49d02cc7cdd7
📥 Commits

Reviewing files that changed from the base of the PR and between c60d5bf and d5362b4.

⛔ Files ignored due to path filters: 59
  • packages/fuselage/test/snapshots/containers-cardgrid--with-item-spans-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/containers-contextualbar--default-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/containers-contextualbar--with-long-title-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/containers-modal--with-fill-content-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/containers-modal--with-fixed-size-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/containers-modal--with-icon-variants-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/containers-modal--with-subtle-tagline-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/containers-tile--flush-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-chip--label-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-chip--small-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-divider--flush-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-divider--light-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-divider--vertical-small-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-divider--vertical-stretch-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-icon--available-icons-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-icon--colors-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-statusicon--default-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-statusicon--statuses-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-table--columns-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/data-display-table--row-header-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-autocomplete--custom-selected-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-autocomplete--multiple-custom-selected-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-autocomplete--multiple-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-button--compact-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-buttongroup--stretch-equal-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-emailinput--states-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-emailinput--with-icon-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-field--with-link-at-the-end-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-iconbutton--colors-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-iconbutton--icon-button-with-badge-at-bottom-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-inputbox--date-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-inputbox--time-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-inputbox--with-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-inputbox--with-flush-end-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-inputbox--with-start-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-multiselect--with-value-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-numberinput--states-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-numberinput--with-icon-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-passwordinput--default-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-passwordinput--invalid-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-passwordinput--states-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-passwordinput--with-icon-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-passwordinput--with-placeholder-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-passwordinput--with-value-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-searchinput--states-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-searchinput--with-icon-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-textinput--states-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-textinput--with-icon-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-urlinput--states-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/inputs-urlinput--with-icon-addon-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/layout-popoversurface--default-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/layout-popoversurface--flush-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/layout-popoversurface--half-screen-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/layout-skeleton--inverted-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/layout-stack--default-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/layout-stack--header-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/layout-stack--row-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/navigation-sidepanel--default-desktop.png is excluded by !**/*.png
  • packages/fuselage/test/snapshots/navigation-tabs--stretch-desktop.png is excluded by !**/*.png
📒 Files selected for processing: 631
  • .changeset/fuselage-no-styling-props.md
  • .github/workflows/ci-code-check.yml
  • apps/meteor/client/components/ABAC/AbacAttributesRemovalWarning.tsx
  • apps/meteor/client/components/ABAC/AbacMembershipPreview/AbacMembershipPreview.tsx
  • apps/meteor/client/components/ABAC/AbacMembershipPreview/AbacPreviewMemberGroup.tsx
  • apps/meteor/client/components/ABAC/AbacRoomCreation/CreateRoomModalSkeleton.tsx
  • apps/meteor/client/components/ABAC/AbacRoomCreation/CreateRoomSteps.tsx
  • apps/meteor/client/components/ABAC/AbacRoomMembershipPreview/AbacRoomPreviewLoadMore.tsx
  • apps/meteor/client/components/ABAC/AbacRoomMembershipPreview/AbacRoomPreviewMemberRow.tsx
  • apps/meteor/client/components/ABAC/AbacRoomMembershipPreview/AbacRoomPreviewSkeleton.tsx
  • apps/meteor/client/components/Backdrop.tsx
  • apps/meteor/client/components/FilterByText.tsx
  • apps/meteor/client/components/ImageGallery/ImageGallery.tsx
  • apps/meteor/client/components/ImageGallery/ImageGalleryError.tsx
  • apps/meteor/client/components/ImageGallery/ImageGalleryLoading.tsx
  • apps/meteor/client/components/PageSkeleton.tsx
  • apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.tsx
  • apps/meteor/client/components/RoomIcon/OmnichannelRoomIcon/OmnichannelAppSourceRoomIcon.tsx
  • apps/meteor/client/components/RoomIcon/OmnichannelRoomIcon/OmnichannelCoreSourceRoomIcon.tsx
  • apps/meteor/client/components/RoomIcon/OmnichannelRoomIcon/OmnichannelRoomIcon.tsx
  • apps/meteor/client/components/Sidebar/SidebarNavigationItem.tsx
  • apps/meteor/client/components/Skeleton.tsx
  • apps/meteor/client/components/TextCopy.tsx
  • apps/meteor/client/components/TwoFactorModal/TwoFactorEmailModal.tsx
  • apps/meteor/client/components/UserAndRoomAutoCompleteMultiple/UserAndRoomAutoCompleteMultiple.tsx
  • apps/meteor/client/components/UserAutoCompleteMultiple/UserAutoCompleteMultiple.tsx
  • apps/meteor/client/components/UserAutoCompleteMultiple/UserAvatarChip.tsx
  • apps/meteor/client/components/UserStatusDisabledInfo.tsx
  • apps/meteor/client/components/UserStatusMenu.tsx
  • apps/meteor/client/components/UserStatusText/UserStatusText.tsx
  • apps/meteor/client/components/WarningModal.tsx
  • apps/meteor/client/components/avatar/UserAvatarEditor/UserAvatarEditor.tsx
  • apps/meteor/client/components/avatar/UserAvatarEditor/UserAvatarSuggestions.tsx
  • apps/meteor/client/components/dashboards/DownloadDataButton.tsx
  • apps/meteor/client/components/deviceManagement/DeviceIcon.tsx
  • apps/meteor/client/components/message/MessageCollapsible.tsx
  • apps/meteor/client/components/message/ReadReceiptIndicator.tsx
  • apps/meteor/client/components/message/content/Action.tsx
  • apps/meteor/client/components/message/content/MessageActions.tsx
  • apps/meteor/client/components/message/content/ThreadMetrics.tsx
  • apps/meteor/client/components/message/content/UrlPreviews.tsx
  • apps/meteor/client/components/message/content/actions/MessageAction.tsx
  • apps/meteor/client/components/message/content/attachments/DefaultAttachment.tsx
  • apps/meteor/client/components/message/content/attachments/structure/AttachmentAuthor.tsx
  • apps/meteor/client/components/message/content/attachments/structure/AttachmentAuthorName.tsx
  • apps/meteor/client/components/message/content/attachments/structure/AttachmentMessageLink.tsx
  • apps/meteor/client/components/message/content/attachments/structure/image/Load.tsx
  • apps/meteor/client/components/message/content/attachments/structure/image/Retry.tsx
  • apps/meteor/client/components/message/content/reactions/ReactionTooltip.tsx
  • apps/meteor/client/components/message/content/urlPreviews/UrlPreview.tsx
  • apps/meteor/client/components/message/hooks/useOembedLayout.ts
  • apps/meteor/client/components/message/toolbar/items/actions/Timestamp/TimestampPicker/FormatSelector.tsx
  • apps/meteor/client/components/message/toolbar/items/actions/Timestamp/TimestampPicker/TimezoneSelector.tsx
  • apps/meteor/client/hooks/roomActions/useThreadRoomAction.tsx
  • apps/meteor/client/hooks/useUserStatusTooltip.tsx
  • apps/meteor/client/navbar/NavBarOmnichannelGroup/NavBarItemOmnichannelContact.tsx
  • apps/meteor/client/navbar/NavBarOmnichannelGroup/NavBarItemOmnichannelLivechatToggle.tsx
  • apps/meteor/client/navbar/NavBarOmnichannelGroup/NavBarItemOmnichannelQueue.tsx
  • apps/meteor/client/navbar/NavBarPagesGroup/NavBarItemDirectoryPage.tsx
  • apps/meteor/client/navbar/NavBarPagesGroup/NavBarItemHomePage.tsx
  • apps/meteor/client/navbar/NavBarPagesGroup/actions/CreateChannelModal.tsx
  • apps/meteor/client/navbar/NavBarPagesGroup/actions/CreateDirectMessage.tsx
  • apps/meteor/client/navbar/NavBarPagesGroup/actions/CreateTeamModal.tsx
  • apps/meteor/client/navbar/NavBarSearch/NavBarAISearchListbox.tsx
  • apps/meteor/client/navbar/NavBarSearch/NavBarSearchFilterChips.tsx
  • apps/meteor/client/navbar/NavBarSearch/NavBarSearchFilterTypeRow.tsx
  • apps/meteor/client/navbar/NavBarSearch/NavBarSearchFiltersView.tsx
  • apps/meteor/client/navbar/NavBarSearch/NavBarSearchInputAddon.tsx
  • apps/meteor/client/navbar/NavBarSearch/NavBarSearchIntelligentSection.tsx
  • apps/meteor/client/navbar/NavBarSearch/NavBarSearchListbox.tsx
  • apps/meteor/client/navbar/NavBarSettingsToolbar/UserMenu/EditStatusModal.tsx
  • apps/meteor/client/navbar/NavBarSettingsToolbar/UserMenu/KeyboardShortcutsModal.tsx
  • apps/meteor/client/navbar/NavBarSettingsToolbar/UserMenu/UserMenuButton.spec.tsx
  • apps/meteor/client/navbar/NavBarSettingsToolbar/UserMenu/UserMenuButton.tsx
  • apps/meteor/client/navbar/NavBarSettingsToolbar/UserMenu/hooks/useStatusItems.tsx
  • apps/meteor/client/sidebar/SidebarRail/SidebarRailLoginPage.tsx
  • apps/meteor/client/sidebar/SidebarRail/SidebarRailPhone.tsx
  • apps/meteor/client/sidebar/footer/SidebarFooterWatermark.tsx
  • apps/meteor/client/views/account/omnichannel/PreferencesConversationTranscript.tsx
  • apps/meteor/client/views/account/profile/AccountProfileForm.tsx
  • apps/meteor/client/views/account/profile/AccountProfilePage.tsx
  • apps/meteor/client/views/account/profile/ActionConfirmModal.tsx
  • apps/meteor/client/views/account/security/AccountSecurityPage.tsx
  • apps/meteor/client/views/account/security/BackupCodesModal.tsx
  • apps/meteor/client/views/account/security/ChangePassphrase.tsx
  • apps/meteor/client/views/account/security/ChangePassword.tsx
  • apps/meteor/client/views/account/security/EndToEnd.tsx
  • apps/meteor/client/views/account/security/TwoFactorEmail.tsx
  • apps/meteor/client/views/account/security/TwoFactorTOTP.tsx
  • apps/meteor/client/views/admin/ABAC/ABACAttributesTab/AttributesForm.tsx
  • apps/meteor/client/views/admin/ABAC/ABACAttributesTab/AttributesPage.tsx
  • apps/meteor/client/views/admin/ABAC/ABACLogsTab/LogsPage.tsx
  • apps/meteor/client/views/admin/ABAC/ABACRoomsTab/RoomForm.tsx
  • apps/meteor/client/views/admin/ABAC/ABACRoomsTab/RoomFormAttributeField.tsx
  • apps/meteor/client/views/admin/ABAC/ABACRoomsTab/RoomsPage.tsx
  • apps/meteor/client/views/admin/aiCenter/AICenterCapabilityCard.tsx
  • apps/meteor/client/views/admin/aiCenter/AICenterOverview.tsx
  • apps/meteor/client/views/admin/customEmoji/AddCustomEmoji.tsx
  • apps/meteor/client/views/admin/customEmoji/EditCustomEmoji.tsx
  • apps/meteor/client/views/admin/customSounds/AddCustomSound.tsx
  • apps/meteor/client/views/admin/customSounds/EditSound.tsx
  • apps/meteor/client/views/admin/customUserStatus/CustomUserStatusForm.tsx
  • apps/meteor/client/views/admin/customUserStatus/CustomUserStatusService.tsx
  • apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx
  • apps/meteor/client/views/admin/engagementDashboard/channels/ChannelsOverview.tsx
  • apps/meteor/client/views/admin/engagementDashboard/messages/MessagesPerChannelSection.tsx
  • apps/meteor/client/views/admin/engagementDashboard/users/ContentForDays.tsx
  • apps/meteor/client/views/admin/featurePreview/AdminFeaturePreviewPage.tsx
  • apps/meteor/client/views/admin/import/ImportHistoryPage.tsx
  • apps/meteor/client/views/admin/import/ImportProgressPage.tsx
  • apps/meteor/client/views/admin/import/NewImportPage.tsx
  • apps/meteor/client/views/admin/import/PrepareChannels.tsx
  • apps/meteor/client/views/admin/import/PrepareContacts.tsx
  • apps/meteor/client/views/admin/import/PrepareImportPage.tsx
  • apps/meteor/client/views/admin/import/PrepareUsers.tsx
  • apps/meteor/client/views/admin/integrations/EditIntegrationsPageWithData.tsx
  • apps/meteor/client/views/admin/integrations/NewZapier.tsx
  • apps/meteor/client/views/admin/integrations/incoming/IncomingWebhookForm.tsx
  • apps/meteor/client/views/admin/integrations/outgoing/OutgoingWebhookForm.tsx
  • apps/meteor/client/views/admin/integrations/outgoing/history/HistoryContent.tsx
  • apps/meteor/client/views/admin/integrations/outgoing/history/HistoryItem.tsx
  • apps/meteor/client/views/admin/moderation/ModConsoleReportDetails.tsx
  • apps/meteor/client/views/admin/moderation/UserMessages.tsx
  • apps/meteor/client/views/admin/moderation/UserReports/UserReportInfo.tsx
  • apps/meteor/client/views/admin/moderation/helpers/DateRangePicker.tsx
  • apps/meteor/client/views/admin/oauthApps/EditOauthApp.tsx
  • apps/meteor/client/views/admin/oauthApps/OAuthAddApp.tsx
  • apps/meteor/client/views/admin/permissions/PermissionsPage.tsx
  • apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx
  • apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx
  • apps/meteor/client/views/admin/rooms/EditRoom.tsx
  • apps/meteor/client/views/admin/rooms/RoomRow.tsx
  • apps/meteor/client/views/admin/rooms/RoomsTableFilters.tsx
  • apps/meteor/client/views/admin/settings/Setting/MemoizedSetting.tsx
  • apps/meteor/client/views/admin/settings/Setting/ResetSettingButton/ResetSettingButton.tsx
  • apps/meteor/client/views/admin/settings/Setting/Setting.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/ActionInputBase.spec.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/ActionInputBase.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/ActionSettingInput.stories.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/AssetSettingInput.spec.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/AssetSettingInput.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/BooleanSettingInput.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/CodeMirror/CodeMirrorBox.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/ColorSettingInput.tsx
  • apps/meteor/client/views/admin/settings/Setting/inputs/RangeSettingInput.tsx
  • apps/meteor/client/views/admin/settings/SettingsGroupCard.tsx
  • apps/meteor/client/views/admin/settings/SettingsSection/SettingsSection.tsx
  • apps/meteor/client/views/admin/settings/groups/SAMLGroupPage/SamlMetadataModal.tsx
  • apps/meteor/client/views/admin/statusAndPresence/UserPresenceEditorForm.tsx
  • apps/meteor/client/views/admin/subscription/SubscriptionCalloutLimits.tsx
  • apps/meteor/client/views/admin/subscription/SubscriptionPage.tsx
  • apps/meteor/client/views/admin/subscription/SubscriptionPageSkeleton.tsx
  • apps/meteor/client/views/admin/subscription/components/FeatureUsageCard.tsx
  • apps/meteor/client/views/admin/subscription/components/cards/CountMACCard.tsx
  • apps/meteor/client/views/admin/subscription/components/cards/CountSeatsCard.tsx
  • apps/meteor/client/views/admin/subscription/components/cards/FeaturesCard.tsx
  • apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardCommunity.tsx
  • apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardHeader.tsx
  • apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardPremium.tsx
  • apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardTrial.tsx
  • apps/meteor/client/views/admin/subscription/surface/UiKitSubscriptionLicenseSurface.tsx
  • apps/meteor/client/views/admin/users/AdminInviteUsers.tsx
  • apps/meteor/client/views/admin/users/AdminUserCreated.tsx
  • apps/meteor/client/views/admin/users/AdminUserForm.tsx
  • apps/meteor/client/views/admin/users/AdminUserFormWithData.tsx
  • apps/meteor/client/views/admin/users/AdminUserSetRandomPasswordContent.tsx
  • apps/meteor/client/views/admin/users/AdminUserSetRandomPasswordRadios.tsx
  • apps/meteor/client/views/admin/users/AdminUsersPage.tsx
  • apps/meteor/client/views/admin/users/UsersTable/UsersTableFilters.tsx
  • apps/meteor/client/views/admin/viewLogs/AnalyticsReports.tsx
  • apps/meteor/client/views/admin/workspace/DeploymentCard/DeploymentCard.tsx
  • apps/meteor/client/views/admin/workspace/DeploymentCard/components/InstancesModal/DescriptionList.tsx
  • apps/meteor/client/views/admin/workspace/DeploymentCard/components/InstancesModal/DescriptionListEntry.tsx
  • apps/meteor/client/views/admin/workspace/MessagesRoomsCard/MessagesRoomsCard.tsx
  • apps/meteor/client/views/admin/workspace/UsersUploadsCard/UsersUploadsCard.tsx
  • apps/meteor/client/views/admin/workspace/VersionCard/components/VersionCardSkeleton.tsx
  • apps/meteor/client/views/admin/workspace/VersionCard/modals/RegisterWorkspaceSetupModal/RegisterWorkspaceSetupStepOneModal.tsx
  • apps/meteor/client/views/admin/workspace/VersionCard/modals/RegisterWorkspaceSetupModal/RegisterWorkspaceSetupStepTwoModal.tsx
  • apps/meteor/client/views/admin/workspace/VersionCard/modals/RegisterWorkspaceTokenModal.tsx
  • apps/meteor/client/views/admin/workspace/WorkspacePage.tsx
  • apps/meteor/client/views/admin/workspace/components/WorkspaceCardTextSeparator.tsx
  • apps/meteor/client/views/audit/AuditPage.tsx
  • apps/meteor/client/views/audit/components/AuditForm.tsx
  • apps/meteor/client/views/audit/components/AuditLogTable.tsx
  • apps/meteor/client/views/audit/components/SecurityLogsTable.tsx
  • apps/meteor/client/views/audit/components/SettingSelect.tsx
  • apps/meteor/client/views/audit/components/forms/DateRangePicker.tsx
  • apps/meteor/client/views/audit/components/tabs/DirectTab.tsx
  • apps/meteor/client/views/audit/components/tabs/OmnichannelTab.tsx
  • apps/meteor/client/views/audit/components/tabs/RoomsTab.tsx
  • apps/meteor/client/views/audit/components/tabs/UsersTab.tsx
  • apps/meteor/client/views/composer/AudioMessageRecorder/AudioMessageRecorder.tsx
  • apps/meteor/client/views/composer/EmojiPicker/EmojiElement.tsx
  • apps/meteor/client/views/composer/EmojiPicker/EmojiPicker.tsx
  • apps/meteor/client/views/composer/EmojiPicker/EmojiPickerCategoryItem.tsx
  • apps/meteor/client/views/composer/EmojiPicker/EmojiPickerDesktopDropdown.tsx
  • apps/meteor/client/views/composer/EmojiPicker/ToneSelector/ToneSelector.tsx
  • apps/meteor/client/views/composer/EmojiPicker/ToneSelector/ToneSelectorWrapper.tsx
  • apps/meteor/client/views/composer/VideoMessageRecorder/VideoMessageRecorder.tsx
  • apps/meteor/client/views/directory/DirectoryPage.tsx
  • apps/meteor/client/views/directory/RoomTags.tsx
  • apps/meteor/client/views/e2e/EnterE2EPasswordModal/EnterE2EPasswordModal.tsx
  • apps/meteor/client/views/e2e/SaveE2EPasswordModal.tsx
  • apps/meteor/client/views/home/cards/CustomContentCard.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPageLoading.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppDetails/AppDetails.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppInstances/AppInstances.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/AppLogsItem.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/Filters/AppLogsFilter.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/Filters/AppLogsFilterContextualBar.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppReleases/AppReleases.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppStatus/AppStatus.tsx
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppStatus/AppStatusPriceDisplay.tsx
  • apps/meteor/client/views/marketplace/AppInstallPage.tsx
  • apps/meteor/client/views/marketplace/AppUpdateModal.tsx
  • apps/meteor/client/views/marketplace/AppsPage/AppsPageContentSkeleton.tsx
  • apps/meteor/client/views/marketplace/components/AccordionLoading.tsx
  • apps/meteor/client/views/marketplace/components/CategoryFilter/CategoryDropDownAnchor.tsx
  • apps/meteor/client/views/marketplace/components/CategoryFilter/CategoryDropDownList.tsx
  • apps/meteor/client/views/marketplace/components/RadioButtonList.tsx
  • apps/meteor/client/views/marketplace/components/ScreenshotCarousel.tsx
  • apps/meteor/client/views/marketplace/components/ScreenshotCarouselAnchor.tsx
  • apps/meteor/client/views/marketplace/hooks/useAppMenu.tsx
  • apps/meteor/client/views/mediaCallHistory/CallHistoryPageFilters.tsx
  • apps/meteor/client/views/navigation/sidebar/RoomList/OmnichannelFilters.tsx
  • apps/meteor/client/views/navigation/sidebar/RoomList/TeamCollabFilters.tsx
  • apps/meteor/client/views/navigation/sidepanel/SidePanelInternal.tsx
  • apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoom.tsx
  • apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentTeam.tsx
  • apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelTag.tsx
  • apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelTagIcon.tsx
  • apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidepanelItem.tsx
  • apps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelPriorityTag.tsx
  • apps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnit.tsx
  • apps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnits.tsx
  • apps/meteor/client/views/omnichannel/additionalForms/EeNumberInput.tsx
  • apps/meteor/client/views/omnichannel/agents/AgentsTable/AddAgent.tsx
  • apps/meteor/client/views/omnichannel/analytics/AnalyticsPage.tsx
  • apps/meteor/client/views/omnichannel/analytics/DateRangePicker.tsx
  • apps/meteor/client/views/omnichannel/businessHours/BusinessHoursForm.tsx
  • apps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponseForm.tsx
  • apps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposer.tsx
  • apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEditWithData.tsx
  • apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEditWithDepartmentData.tsx
  • apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseFilter.tsx
  • apps/meteor/client/views/omnichannel/components/AutoCompleteAgent.tsx
  • apps/meteor/client/views/omnichannel/components/AutoCompleteContact/AutoCompleteContact.tsx
  • apps/meteor/client/views/omnichannel/components/AutoCompleteDepartmentMultiple.tsx
  • apps/meteor/client/views/omnichannel/components/AutoCompleteMultipleAgent.tsx
  • apps/meteor/client/views/omnichannel/components/FormSkeleton.tsx
  • apps/meteor/client/views/omnichannel/components/NotAvailableCallout.tsx
  • apps/meteor/client/views/omnichannel/components/OmnichannelVerificationTag.tsx
  • apps/meteor/client/views/omnichannel/components/RoomActivityIcon.tsx
  • apps/meteor/client/views/omnichannel/components/Tags.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/AutoCompleteDepartmentAgent.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/AutoCompleteOutboundProvider.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/components/OutboundMessageWizardErrorState.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/components/OutboundMessageWizardSkeleton.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/components/RetryButton.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/MessageForm/MessageForm.spec.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/MessageForm/MessageForm.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/MessageForm/components/TemplateField.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RecipientForm/RecipientForm.spec.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RecipientForm/RecipientForm.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RecipientForm/components/ChannelField.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RecipientForm/components/ContactField.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RecipientForm/components/RecipientField.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RecipientForm/components/SenderField.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RepliesForm/RepliesForm.spec.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RepliesForm/RepliesForm.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RepliesForm/components/AgentField.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/components/OutboundMessageWizard/forms/RepliesForm/components/DepartmentField.tsx
  • apps/meteor/client/views/omnichannel/components/outboundMessage/modals/OutboundMessageModal/OutboundMessageModal.tsx
  • apps/meteor/client/views/omnichannel/contactHistory/MessageList/ContactHistoryMessagesList.tsx
  • apps/meteor/client/views/omnichannel/contactInfo/EditContactInfo.tsx
  • apps/meteor/client/views/omnichannel/contactInfo/tabs/ContactInfoDetails/ContactInfoDetails.tsx
  • apps/meteor/client/views/omnichannel/contactInfo/tabs/ContactInfoDetails/ContactInfoDetailsEntry.tsx
  • apps/meteor/client/views/omnichannel/contactInfo/tabs/ContactInfoHistory/ContactInfoHistory.tsx
  • apps/meteor/client/views/omnichannel/contactInfo/tabs/ContactInfoHistory/ContactInfoHistoryItem.tsx
  • apps/meteor/client/views/omnichannel/contactInfo/tabs/ContactInfoHistory/ContactInfoHistoryMessages.tsx
  • apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/AddAgent.tsx
  • apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/AgentRow.tsx
  • apps/meteor/client/views/omnichannel/departments/DepartmentTags.tsx
  • apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx
  • apps/meteor/client/views/omnichannel/directory/OmnichannelDirectoryPage.tsx
  • apps/meteor/client/views/omnichannel/directory/chats/ChatInfo/RoomEdit/RoomEdit.tsx
  • apps/meteor/client/views/omnichannel/directory/chats/ChatsFiltersContextualBar.tsx
  • apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTableFilter.tsx
  • apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTableRow.tsx
  • apps/meteor/client/views/omnichannel/directory/components/FormSkeleton.tsx
  • apps/meteor/client/views/omnichannel/hooks/useOmnichannelPrioritiesConfig.ts
  • apps/meteor/client/views/omnichannel/managers/AddManager.tsx
  • apps/meteor/client/views/omnichannel/modals/CloseChatModal.tsx
  • apps/meteor/client/views/omnichannel/modals/EnterpriseDepartmentsModal.tsx
  • apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
  • apps/meteor/client/views/omnichannel/modals/PlaceChatOnHoldModal.tsx
  • apps/meteor/client/views/omnichannel/modals/TranscriptModal.tsx
  • apps/meteor/client/views/omnichannel/monitors/MonitorsTable.tsx
  • apps/meteor/client/views/omnichannel/priorities/PriorityEditFormWithData.tsx
  • apps/meteor/client/views/omnichannel/priorities/PriorityIcon.tsx
  • apps/meteor/client/views/omnichannel/queueList/QueueListFilter.tsx
  • apps/meteor/client/views/omnichannel/realTimeMonitoring/RealTimeMonitoringPage.tsx
  • apps/meteor/client/views/omnichannel/realTimeMonitoring/counter/CounterRow.tsx
  • apps/meteor/client/views/omnichannel/reports/components/ReportCard.tsx
  • apps/meteor/client/views/omnichannel/reports/components/ReportCardEmptyState.tsx
  • apps/meteor/client/views/omnichannel/reports/components/ReportCardErrorState.tsx
  • apps/meteor/client/views/omnichannel/reports/components/ReportCardLoadingState.tsx
  • apps/meteor/client/views/omnichannel/slaPolicies/SlaEdit.tsx
  • apps/meteor/client/views/omnichannel/slaPolicies/SlaEditWithData.tsx
  • apps/meteor/client/views/omnichannel/tags/AutoCompleteTagsMultiple.tsx
  • apps/meteor/client/views/omnichannel/tags/TagEditWithData.tsx
  • apps/meteor/client/views/omnichannel/tags/TagEditWithDepartmentData.tsx
  • apps/meteor/client/views/omnichannel/triggers/actions/ActionExternalServiceUrl.tsx
  • apps/meteor/client/views/omnichannel/units/UnitEditWithData.tsx
  • apps/meteor/client/views/omnichannel/webhooks/WebhooksPage.tsx
  • apps/meteor/client/views/room/Header/FederatedRoomOriginServer.tsx
  • apps/meteor/client/views/room/Header/Omnichannel/OmnichannelRoomHeaderTag.tsx
  • apps/meteor/client/views/room/Header/ParentRoom/ParentRoomButton.tsx
  • apps/meteor/client/views/room/Header/RoomTitle.tsx
  • apps/meteor/client/views/room/Header/icons/Favorite.tsx
  • apps/meteor/client/views/room/Header/icons/RoomHeaderCategoryMenu.tsx
  • apps/meteor/client/views/room/composer/ComposerAirGappedRestricted.tsx
  • apps/meteor/client/views/room/composer/ComposerBoxPopup.tsx
  • apps/meteor/client/views/room/composer/ComposerBoxPopupPreview.tsx
  • apps/meteor/client/views/room/composer/ComposerOmnichannel/ComposerOmnichannel.tsx
  • apps/meteor/client/views/room/composer/ComposerOmnichannel/ComposerOmnichannelCallout.tsx
  • apps/meteor/client/views/room/composer/ComposerOmnichannel/ComposerOmnichannelLayout.tsx
  • apps/meteor/client/views/room/contextualBar/AbacAttributes/AbacAttributesInfo.tsx
  • apps/meteor/client/views/room/contextualBar/AutoTranslate/AutoTranslate.tsx
  • apps/meteor/client/views/room/contextualBar/BannedUsers/BannedUsersItem.tsx
  • apps/meteor/client/views/room/contextualBar/Discussions/DiscussionsList.tsx
  • apps/meteor/client/views/room/contextualBar/Info/ChannelToTeamModal/ChannelToTeamConfirmation.tsx
  • apps/meteor/client/views/room/contextualBar/Info/EditRoomInfo/EditRoomInfo.tsx
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/ABAC/RoomInfoABACSection.tsx
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.tsx
  • apps/meteor/client/views/room/contextualBar/Info/hooks/actions/useRoomConvertToTeam.tsx
  • apps/meteor/client/views/room/contextualBar/MessageSearchTab/MessageSearchTab.tsx
  • apps/meteor/client/views/room/contextualBar/MessageSearchTab/components/MessageSearchForm.tsx
  • apps/meteor/client/views/room/contextualBar/NotificationPreferences/NotificationPreferencesForm.tsx
  • apps/meteor/client/views/room/contextualBar/NotificationPreferences/components/NotificationPreference.tsx
  • apps/meteor/client/views/room/contextualBar/PruneMessages/PruneMessages.tsx
  • apps/meteor/client/views/room/contextualBar/PruneMessages/PruneMessagesDateTimeRow.tsx
  • apps/meteor/client/views/room/contextualBar/RoomMembers/AddUsers/AddMatrixUsers/AddMatrixUsersModal.tsx
  • apps/meteor/client/views/room/contextualBar/RoomMembers/AddUsers/AddUsers.tsx
  • apps/meteor/client/views/room/contextualBar/RoomMembers/AddUsers/BannedUsersUnbanModal.tsx
  • apps/meteor/client/views/room/contextualBar/RoomMembers/InviteUsers/EditInviteLink.tsx
  • apps/meteor/client/views/room/contextualBar/RoomMembers/InviteUsers/InviteLink.tsx
  • apps/meteor/client/views/room/contextualBar/RoomMembers/RoomMembers.tsx
  • apps/meteor/client/views/room/contextualBar/Threads/ThreadList.tsx
  • apps/meteor/client/views/room/contextualBar/Threads/components/ThreadChat.tsx
  • apps/meteor/client/views/room/contextualBar/UserInfo/ReportUserModal.tsx
  • apps/meteor/client/views/room/contextualBar/UserInfo/UserInfoActions.tsx
  • apps/meteor/client/views/room/contextualBar/VideoConference/VideoConfBlockModal.tsx
  • apps/meteor/client/views/room/contextualBar/VideoConference/VideoConfConfigModal.tsx
  • apps/meteor/client/views/room/contextualBar/VideoConference/VideoConfList/VideoConfListItem.tsx
  • apps/meteor/client/views/room/lib/quickActions.tsx
  • apps/meteor/client/views/room/modals/E2EEModals/ResetKeysE2EEModal.tsx
  • apps/meteor/client/views/room/modals/FileUploadModal/GenericPreview.tsx
  • apps/meteor/client/views/room/modals/FileUploadModal/MediaPreview.tsx
  • apps/meteor/client/views/search/SearchAnswerPanel.tsx
  • apps/meteor/client/views/search/SearchPage.tsx
  • apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTableRow.tsx
  • apps/meteor/client/views/teams/contextualBar/channels/AddExistingModal/AddExistingModal.tsx
  • apps/meteor/client/views/teams/contextualBar/channels/AddExistingModal/RoomsAvailableForTeamsAutoComplete.tsx
  • apps/meteor/client/views/teams/contextualBar/channels/TeamsChannels.tsx
  • apps/meteor/client/views/teams/contextualBar/info/ConvertToChannelModal/ModalSteps/SecondStep.tsx
  • apps/meteor/client/views/teams/contextualBar/info/TeamsInfo.tsx
  • apps/meteor/client/views/teams/contextualBar/members/RemoveUsersModal/RemoveUsersSecondStep.tsx
  • apps/meteor/tests/e2e/calendar.spec.ts
  • apps/meteor/tests/e2e/page-objects/admin-settings.ts
  • apps/meteor/tests/e2e/page-objects/fragments/flextabs/edit-room-flextab.ts
  • apps/meteor/tests/e2e/page-objects/fragments/modals/omnichannel-transfer-chat-modal.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel/omnichannel-agents.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel/omnichannel-business-hours.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel/omnichannel-contact-center/omnichannel-contact-center-chats.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel/omnichannel-departments.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel/omnichannel-settings.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel/omnichannel-tags.ts
  • apps/meteor/tests/e2e/page-objects/omnichannel/omnichannel-units.ts
  • apps/uikit-playground/src/Components/ComponentSideBar/SliderBtn.tsx
  • apps/uikit-playground/src/Components/CreateNewScreen/CreateNewScreenContainer.tsx
  • apps/uikit-playground/src/Components/DropDown/Items.tsx
  • apps/uikit-playground/src/Components/DropDown/ItemsIcon.tsx
  • apps/uikit-playground/src/Components/HomeContainer/HomeContainer.tsx
  • apps/uikit-playground/src/Components/NavBar/NavBar.tsx
  • apps/uikit-playground/src/Components/Preview/NavPanel/NavPanel.tsx
  • apps/uikit-playground/src/Components/ScreenThumbnail/EditMenu/EditMenu.tsx
  • apps/uikit-playground/src/Components/ScreenThumbnail/EditableLabel/EditableLabel.tsx
  • apps/uikit-playground/src/Components/ScreenThumbnail/EditableLabel/Editablelabel.scss
  • apps/uikit-playground/src/Components/Templates/Container/Payload.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Section.tsx
  • apps/uikit-playground/src/Components/Templates/Templates.tsx
  • apps/uikit-playground/src/Components/navMenu/Menu/MenuItem.tsx
  • apps/uikit-playground/src/Pages/SignInSignUp.tsx
  • docs/proposals/fuselage-component-style-props.md
  • packages/fuselage-ui-kit/src/blocks/ContextBlock.Item.tsx
  • packages/fuselage-ui-kit/src/blocks/ContextBlock.tsx
  • packages/fuselage-ui-kit/src/blocks/DividerBlock.tsx
  • packages/fuselage-ui-kit/src/blocks/HeaderBlock.tsx
  • packages/fuselage-ui-kit/src/blocks/TabNavigationBlock.tsx
  • packages/fuselage-ui-kit/src/elements/ButtonElement.tsx
  • packages/fuselage-ui-kit/src/elements/ChannelsSelectElement/ChannelsSelectElement.tsx
  • packages/fuselage-ui-kit/src/elements/IconElement.tsx
  • packages/fuselage-ui-kit/src/elements/ImageElement.styles.tsx
  • packages/fuselage-ui-kit/src/elements/ImageElement.tsx
  • packages/fuselage-ui-kit/src/elements/LinearScaleElement.tsx
  • packages/fuselage-ui-kit/src/elements/UsersSelectElement/MultiUsersSelectElement.tsx
  • packages/fuselage-ui-kit/src/elements/UsersSelectElement/UsersSelectElement.tsx
  • packages/fuselage-ui-kit/src/surfaces/BannerSurface.tsx
  • packages/fuselage-ui-kit/src/surfaces/ContextualBarSurface.tsx
  • packages/fuselage-ui-kit/src/surfaces/MessageSurface.tsx
  • packages/fuselage-ui-kit/src/surfaces/ModalSurface.tsx
  • packages/fuselage-ui-kit/src/surfaces/Surface.tsx
  • packages/fuselage/src/components/AudioPlayer/AudioPlayerControls.tsx
  • packages/fuselage/src/components/AutoComplete/AutoComplete.stories.tsx
  • packages/fuselage/src/components/AutoComplete/AutoComplete.styles.scss
  • packages/fuselage/src/components/AutoComplete/AutoComplete.tsx
  • packages/fuselage/src/components/Bubble/Bubble.styles.scss
  • packages/fuselage/src/components/Bubble/BubbleItem.tsx
  • packages/fuselage/src/components/Button/Button.spec.tsx
  • packages/fuselage/src/components/Button/Button.stories.tsx
  • packages/fuselage/src/components/Button/Button.styles.scss
  • packages/fuselage/src/components/Button/Button.tsx
  • packages/fuselage/src/components/Button/IconButton.spec.tsx
  • packages/fuselage/src/components/Button/IconButton.stories.tsx
  • packages/fuselage/src/components/Button/IconButton.tsx
  • packages/fuselage/src/components/ButtonGroup/ButtonGroup.stories.tsx
  • packages/fuselage/src/components/ButtonGroup/ButtonGroup.styles.scss
  • packages/fuselage/src/components/ButtonGroup/ButtonGroup.tsx
  • packages/fuselage/src/components/CardGrid/CardGrid.stories.tsx
  • packages/fuselage/src/components/CardGrid/CardGrid.styles.scss
  • packages/fuselage/src/components/CardGrid/CardGrid.tsx
  • packages/fuselage/src/components/CardGrid/CardGridItem.tsx
  • packages/fuselage/src/components/CardGrid/index.ts
  • packages/fuselage/src/components/Chip/Chip.stories.tsx
  • packages/fuselage/src/components/Chip/Chip.styles.scss
  • packages/fuselage/src/components/Chip/Chip.tsx
  • packages/fuselage/src/components/Contextualbar/Contextualbar.styles.scss
  • packages/fuselage/src/components/Contextualbar/ContextualbarAction.tsx
  • packages/fuselage/src/components/Contextualbar/ContextualbarIcon.tsx
  • packages/fuselage/src/components/Contextualbar/ContextualbarSkeleton.tsx
  • packages/fuselage/src/components/Divider/Divider.stories.tsx
  • packages/fuselage/src/components/Divider/Divider.styles.scss
  • packages/fuselage/src/components/Divider/Divider.tsx
  • packages/fuselage/src/components/Dropdown/DropdownDesktop.tsx
  • packages/fuselage/src/components/Dropdown/DropdownMobile.tsx
  • packages/fuselage/src/components/Field/Field.stories.tsx
  • packages/fuselage/src/components/Field/Field.styles.scss
  • packages/fuselage/src/components/Field/FieldLabel.tsx
  • packages/fuselage/src/components/Field/FieldRow.tsx
  • packages/fuselage/src/components/FramedIcon/FramedIcon.tsx
  • packages/fuselage/src/components/Icon/Icon.stories.tsx
  • packages/fuselage/src/components/Icon/Icon.styles.scss
  • packages/fuselage/src/components/Icon/Icon.tsx
  • packages/fuselage/src/components/Icon/index.ts
  • packages/fuselage/src/components/InputBox/InputBox.spec.tsx
  • packages/fuselage/src/components/InputBox/InputBox.stories.tsx
  • packages/fuselage/src/components/InputBox/InputBox.styles.scss
  • packages/fuselage/src/components/InputBox/InputBox.tsx
  • packages/fuselage/src/components/Menu/Menu.stories.tsx
  • packages/fuselage/src/components/Menu/MenuPopover.tsx
  • packages/fuselage/src/components/Message/MessageGenericPreview/MessageGenericPreview.styles.scss
  • packages/fuselage/src/components/Message/MessageGenericPreview/MessageGenericPreviewIcon.tsx
  • packages/fuselage/src/components/Message/MessageMetrics/MessageMetrics.styles.scss
  • packages/fuselage/src/components/Message/MessageMetrics/MessageMetricsFollowing.tsx
  • packages/fuselage/src/components/Message/MessageStatusIndicator/MessageStatusIndicatorItem.tsx
  • packages/fuselage/src/components/Message/Messages.styles.scss
  • packages/fuselage/src/components/Modal/Modal.stories.tsx
  • packages/fuselage/src/components/Modal/Modal.styles.scss
  • packages/fuselage/src/components/Modal/Modal.tsx
  • packages/fuselage/src/components/Modal/ModalBackdrop.tsx
  • packages/fuselage/src/components/Modal/ModalClose.tsx
  • packages/fuselage/src/components/Modal/ModalContent.tsx
  • packages/fuselage/src/components/Modal/ModalHeroImage.tsx
  • packages/fuselage/src/components/Modal/ModalIcon.tsx
  • packages/fuselage/src/components/Modal/ModalTagline.tsx
  • packages/fuselage/src/components/MultiSelect/MultiSelect.tsx
  • packages/fuselage/src/components/MultiSelect/MultiSelectFilteredAnchor.tsx
  • packages/fuselage/src/components/NavBar/NavBarDivider.tsx
  • packages/fuselage/src/components/NavBar/NavBarItem.tsx
  • packages/fuselage/src/components/Option/OptionIcon.tsx
  • packages/fuselage/src/components/Options/OptionContainer.tsx
  • packages/fuselage/src/components/Options/Options.tsx
  • packages/fuselage/src/components/OptionsPaginated/OptionsPaginated.tsx
  • packages/fuselage/src/components/PaginatedSelect/PaginatedMultiSelect.tsx
  • packages/fuselage/src/components/PaginatedSelect/PaginatedMultiSelectFiltered.tsx
  • packages/fuselage/src/components/PaginatedSelect/PaginatedSelect.tsx
  • packages/fuselage/src/components/PaginatedSelect/PaginatedSelectFiltered.tsx
  • packages/fuselage/src/components/PaginatedSelect/PaginatedSelectLabel.spec.tsx
  • packages/fuselage/src/components/PopoverSurface/PopoverSurface.spec.tsx
  • packages/fuselage/src/components/PopoverSurface/PopoverSurface.stories.tsx
  • packages/fuselage/src/components/PopoverSurface/PopoverSurface.tsx
  • packages/fuselage/src/components/PopoverSurface/index.ts
  • packages/fuselage/src/components/PositionAnimated/Position.spec.tsx
  • packages/fuselage/src/components/PositionAnimated/Position.tsx
  • packages/fuselage/src/components/Select/Select.styles.scss
  • packages/fuselage/src/components/Select/SelectAria.tsx
  • packages/fuselage/src/components/Select/SelectFilteredAnchor.tsx
  • packages/fuselage/src/components/Select/SelectLegacy.spec.tsx
  • packages/fuselage/src/components/Select/SelectLegacy.tsx
  • packages/fuselage/src/components/Sidebar/helpers.tsx
  • packages/fuselage/src/components/Sidepanel/Sidepanel.styles.scss
  • packages/fuselage/src/components/Sidepanel/SidepanelHeader.tsx
  • packages/fuselage/src/components/Skeleton/Skeleton.stories.tsx
  • packages/fuselage/src/components/Skeleton/Skeleton.styles.scss
  • packages/fuselage/src/components/Skeleton/Skeleton.tsx
  • packages/fuselage/src/components/SplitButton/SplitButtonTrigger.tsx
  • packages/fuselage/src/components/Stack/Stack.spec.tsx
  • packages/fuselage/src/components/Stack/Stack.stories.tsx
  • packages/fuselage/src/components/Stack/Stack.tsx
  • packages/fuselage/src/components/Stack/index.ts
  • packages/fuselage/src/components/States/StatesIcon.tsx
  • packages/fuselage/src/components/Table/Table.spec.tsx
  • packages/fuselage/src/components/Table/Table.stories.tsx
  • packages/fuselage/src/components/Table/Table.styles.scss
  • packages/fuselage/src/components/Table/Table.tsx
  • packages/fuselage/src/components/Table/TableCell.tsx
  • packages/fuselage/src/components/Table/TableSelection/TableSelectionButton.tsx
  • packages/fuselage/src/components/Tabs/Tabs.stories.tsx
  • packages/fuselage/src/components/Tabs/Tabs.styles.scss
  • packages/fuselage/src/components/Tabs/Tabs.tsx
  • packages/fuselage/src/components/Tag/Tag.stories.tsx
  • packages/fuselage/src/components/Tag/Tag.styles.scss
  • packages/fuselage/src/components/Tile/Tile.stories.tsx
  • packages/fuselage/src/components/Tile/Tile.tsx
  • packages/fuselage/src/components/index.scss
  • packages/fuselage/src/components/index.ts
  • packages/gazzodown/src/code/CodeBlock.tsx
  • packages/i18n/src/locales/en.i18n.json
  • packages/layout/src/components/FormPageLayout/Form.tsx
  • packages/layout/src/components/List/ListItem.tsx
  • packages/layout/src/layouts/VerticalWizardLayout/VerticalWizardLayoutForm.tsx
  • packages/onboarding-ui/src/common/AgreeTermsField.tsx
  • packages/onboarding-ui/src/forms/AdminInfoForm/AdminInfoForm.tsx
  • packages/onboarding-ui/src/forms/AwaitConfirmationForm/AwaitConfirmationForm.tsx
  • packages/onboarding-ui/src/forms/CreateCloudWorkspaceForm/CreateCloudWorkspaceForm.tsx
  • packages/onboarding-ui/src/forms/CreateFirstMemberForm/CreateFirstMemberForm.tsx
  • packages/onboarding-ui/src/forms/NewAccountForm/NewAccountForm.tsx
  • packages/onboarding-ui/src/forms/RegisterOfflineForm/steps/CopyStep.tsx
  • packages/onboarding-ui/src/forms/RegisterServerForm/RegisterServerForm.tsx
  • packages/onboarding-ui/src/forms/RequestTrialForm/RequestTrialForm.tsx
  • packages/onboarding-ui/src/pages/CreateCloudWorkspacePage/Description.tsx
  • packages/onboarding-ui/src/pages/InvalidLinkPage/InvalidLinkPage.tsx
  • packages/onboarding-ui/src/pages/LoaderPage/LoaderPage.tsx
  • packages/ui-account/src/featurePreview/views/FeaturePreviewView.tsx
  • packages/ui-account/src/preferences/views/MyDataModal.tsx
  • packages/ui-account/src/tokens/views/AddPersonalAccessTokenForm.tsx
  • packages/ui-client/src/components/Contextualbar/ContextualbarHeader.tsx
  • packages/ui-client/src/components/Contextualbar/ContextualbarSkeletonBody.tsx
  • packages/ui-client/src/components/CustomFieldsForm.tsx
  • packages/ui-client/src/components/FilePreviewIcon.tsx
  • packages/ui-client/src/components/GenericTable/GenericTableHeaderCell.tsx
  • packages/ui-client/src/components/Header/Header.stories.tsx
  • packages/ui-client/src/components/Header/Header.tsx
  • packages/ui-client/src/components/Header/HeaderContentRow.tsx
  • packages/ui-client/src/components/Header/HeaderDivider.tsx
  • packages/ui-client/src/components/Header/HeaderIcon.tsx
  • packages/ui-client/src/components/Header/HeaderState.tsx
  • packages/ui-client/src/components/Header/HeaderTag/HeaderTagIcon.tsx
  • packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarAction.tsx
  • packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarActionBadge.tsx
  • packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarDivider.tsx
  • packages/ui-client/src/components/Header/HeaderToolbar/index.ts
  • packages/ui-client/src/components/Header/index.ts
  • packages/ui-client/src/components/HoverCard/HoverCardActions.tsx
  • packages/ui-client/src/components/HoverCard/HoverCardInfoItem.tsx
  • packages/ui-client/src/components/InfoPanel/InfoPanelLabel.tsx
  • packages/ui-client/src/components/Modal/GenericModal/GenericModal.tsx
  • packages/ui-client/src/components/Modal/GenericModal/withDoNotAskAgain.tsx
  • packages/ui-client/src/components/MultiSelectCustom/MultiSelectCustomAnchor.tsx
  • packages/ui-client/src/components/MultiSelectCustom/MultiSelectCustomList.tsx
  • packages/ui-client/src/components/Page/PageHeaderNoShadow.tsx
  • packages/ui-client/src/components/PasswordVerifier/PasswordVerifierItem.tsx
  • packages/ui-client/src/components/SidebarToggler/SidebarTogglerButton.tsx
  • packages/ui-client/src/components/UserAutoComplete/UserAutoComplete.tsx
  • packages/ui-client/src/components/UserCard/UserCard.tsx
  • packages/ui-client/src/components/UserCard/UserCardAction.tsx
  • packages/ui-client/src/components/UserCard/UserCardSkeleton.tsx
  • packages/ui-client/src/components/UserInfo/UserInfo.tsx
  • packages/ui-client/src/components/UserInfo/UserInfoAction.tsx
  • packages/ui-client/src/components/UserInfo/UserInfoCopyableText.tsx
  • packages/ui-client/src/components/Wizard/WizardTabs.tsx
  • packages/ui-composer/src/MessageComposer/MessageComposerActionsDivider.tsx
  • packages/ui-composer/src/MessageComposer/MessageComposerHint.tsx
  • packages/ui-composer/src/MessageComposer/MessageComposerIcon.tsx
  • packages/ui-composer/src/MessageFooterCallout/MessageFooterCallout.tsx
  • packages/ui-composer/src/MessageFooterCallout/MessageFooterCalloutAction.tsx
  • packages/ui-composer/src/MessageFooterCallout/MessageFooterCalloutContent.tsx
  • packages/ui-composer/src/MessageFooterCallout/MessageFooterCalloutDivider.tsx
  • packages/ui-conference/src/call/tile/TileFrame.tsx
  • packages/ui-conference/src/components/CallParticipantItem/CallParticipantItem.tsx
  • packages/ui-conference/src/components/CallRaisedHands.tsx
  • packages/ui-conference/src/components/ChatAccessModal/ChatAccessModal.tsx
  • packages/ui-conference/src/components/OngoingCalls/OngoingCallsList.tsx
  • packages/ui-conference/src/components/PreflightCameraPlaceholder.tsx
  • packages/ui-conference/src/preflight/PreflightDeviceMenuButton.tsx
  • packages/ui-conference/src/views/ConferenceThreadModal.tsx
  • packages/ui-media/src/components/ToggleButton.tsx
  • packages/ui-video-conf/src/VideoConfButton/VideoConfButton.tsx
  • packages/ui-video-conf/src/VideoConfController/VideoConfController.tsx
  • packages/ui-video-conf/src/VideoConfMessage/VideoConfMessageButton.tsx
  • packages/ui-video-conf/src/VideoConfMessage/VideoConfMessageFooter.tsx
  • packages/ui-video-conf/src/VideoConfMessage/VideoConfMessageFooterText.tsx
  • packages/ui-video-conf/src/VideoConfMessage/VideoConfMessageIcon.tsx
  • packages/ui-video-conf/src/VideoConfMessage/VideoConfMessageSkeleton.tsx
  • packages/ui-video-conf/src/VideoConfMessage/VideoConfMessageUserStack.tsx
  • packages/ui-video-conf/src/VideoConfPopup/VideoConfPopupFooterButtons.tsx
  • packages/ui-video-conf/src/VideoConfPopup/VideoConfPopupSkeleton.tsx
  • packages/ui-video-conf/src/VideoConfPopup/VideoConfPopupTitle.tsx
  • packages/ui-voip/src/components/CallHistoryExternalUser.tsx
  • packages/ui-voip/src/components/CallHistoryUnknownUser.tsx
  • packages/ui-voip/src/components/Cards/CardSlot.tsx
  • packages/ui-voip/src/components/Cards/PeerCard/PeerCardSlot.tsx
  • packages/ui-voip/src/components/Keypad/Key.tsx
  • packages/ui-voip/src/components/Keypad/Keypad.tsx
  • packages/ui-voip/src/components/PeerAutocomplete.tsx
  • packages/ui-voip/src/components/PeerInfo/PhoneNumber.tsx
  • packages/ui-voip/src/components/Widget/WidgetInfo.tsx
  • packages/ui-voip/src/views/CallHistoryContextualbar/CallHistoryContextualbar.tsx
  • packages/ui-voip/src/views/MediaCallHistoryTable/CallHistoryTableDirection.tsx
  • packages/ui-voip/src/views/MediaCallHistoryTable/CallHistoryTableStatus.tsx
  • packages/ui-voip/src/views/MediaCallWidget/Dialpad.tsx
  • packages/ui-voip/src/views/MediaCallWidget/IncomingCall.tsx
  • packages/ui-voip/src/views/MediaCallWidget/NewCall.tsx
  • packages/ui-voip/src/views/MediaCallWidget/OngoingCallWithScreen.tsx
  • packages/ui-voip/src/views/MediaCallWidget/OutgoingCall.tsx
  • packages/web-ui-registration/src/LoginForm.tsx
  • packages/web-ui-registration/src/LoginServices.tsx
  • packages/web-ui-registration/src/LoginServicesButton.tsx
  • packages/web-ui-registration/src/ResetPasswordForm.tsx
  • packages/web-ui-registration/src/components/LoginSwitchLanguageFooter.tsx

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.

@codecov

codecov Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 81.24098% with 260 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.05%. Comparing base (c60d5bf) to head (d5362b4).
⚠️ Report is 3 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #42974      +/-   ##
===========================================
+ Coverage    71.98%   72.05%   +0.07%     
===========================================
  Files         5274     5281       +7     
  Lines       224972   225469     +497     
  Branches     41644    41811     +167     
===========================================
+ Hits        161939   162467     +528     
+ Misses       57807    57778      -29     
+ Partials      5226     5224       -2     
Flag Coverage Δ
e2e 61.12% <43.37%> (+0.08%) ⬆️
e2e-api 49.37% <ø> (-0.03%) ⬇️
unit 72.06% <82.94%> (+0.08%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@ggazzo
ggazzo force-pushed the docs/fuselage-component-style-props branch from 5e87038 to 143f1dc Compare October 22, 2026 00:35
@ggazzo ggazzo added the preview Builds a UI preview that Rocket.Chat Desktop can load label Oct 22, 2026
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

🖥️ UI preview

Removed from ghcr.io/rocketchat/rocket.chat-web. Add the preview label again to publish a new one.

@ggazzo
ggazzo force-pushed the docs/fuselage-component-style-props branch 2 times, most recently from 476f070 to bff57bf Compare October 23, 2026 02:19
@ggazzo ggazzo changed the title docs(fuselage): propose that components take no styling props refactor(fuselage): components take no styling props Oct 23, 2026
@ggazzo
ggazzo force-pushed the docs/fuselage-component-style-props branch 2 times, most recently from 4837b0e to 65df6ae Compare October 23, 2026 11:28
@ggazzo
ggazzo marked this pull request as ready for review October 23, 2026 11:43
@ggazzo
ggazzo requested a review from a team as a code owner October 23, 2026 11:43
@hacktron-app

hacktron-app Bot commented Oct 23, 2026

Copy link
Copy Markdown

Hacktron Security Check - Skipped

Reason: This PR exceeds Hacktron's 500-file review cap and will not be scanned. Split the PR into smaller changes for review coverage.

Split the PR into smaller commits or open separate PRs for unrelated changes.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9 issues found across 687 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/meteor/client/views/admin/moderation/UserReports/UserReportInfo.tsx">

<violation number="1" location="apps/meteor/client/views/admin/moderation/UserReports/UserReportInfo.tsx:89">
P2: The role badges lose the `spacing={1}` gap because `FieldRow` now contains only the wrapper; add the gap to the inner flex container so adjacent roles retain their previous spacing.</violation>
</file>

<file name="apps/meteor/client/components/TwoFactorModal/TwoFactorEmailModal.tsx">

<violation number="1" location="apps/meteor/client/components/TwoFactorModal/TwoFactorEmailModal.tsx:128">
P2: This changes the resend action from right-aligned to left-aligned: the old full-width flex button justified its content to the end, while `ButtonGroup` defaults to start alignment and keeps the button intrinsic-width. Preserve the existing layout with `align='end'`.</violation>
</file>

<file name="apps/meteor/client/views/audit/components/AuditLogTable.tsx">

<violation number="1" location="apps/meteor/client/views/audit/components/AuditLogTable.tsx:72">
P2: This still passes the arbitrary `flexGrow` styling prop through `DateRangePicker`, whose props are inherited from `Box`; move the growth to a wrapping `Box` and keep the picker on its DOM/value props so this composition follows the new styling boundary.</violation>
</file>

<file name="apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardHeader.tsx">

<violation number="1" location="apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardHeader.tsx:8">
P2: Removing `marginInlineEnd={4}` changes the plan-card header spacing by 4px because `CardHeader` already supplies an 8px gap. Preserve the previous 12px separation through the parent layout rather than dropping the margin without an equivalent gap.</violation>
</file>

<file name="apps/meteor/client/components/ABAC/AbacRoomCreation/CreateRoomModalSkeleton.tsx">

<violation number="1" location="apps/meteor/client/components/ABAC/AbacRoomCreation/CreateRoomModalSkeleton.tsx:19">
P2: This replaces each skeleton's trailing `16px` margin with a flex gap, which only applies between children, so the modal loses 16px of bottom spacing. Preserve the former trailing space with `paddingBlockEnd={16}` (or an equivalent bottom spacing declaration) on this container.</violation>
</file>

<file name="apps/meteor/client/views/account/omnichannel/PreferencesConversationTranscript.tsx">

<violation number="1" location="apps/meteor/client/views/account/omnichannel/PreferencesConversationTranscript.tsx:25">
P2: These label wrappers cannot wrap their text and tag, so long translations can overflow the `FieldRow` on narrow screens where the previous inline content wrapped normally. Add `flexWrap='wrap'` to both wrappers.</violation>
</file>

<file name="apps/meteor/client/views/admin/users/AdminInviteUsers.tsx">

<violation number="1" location="apps/meteor/client/views/admin/users/AdminInviteUsers.tsx:68">
P2: Removing `flexGrow={0}` changes the textarea from a fixed five-row flex item to one that grows in the scrollable column, potentially filling the contextual bar and changing its layout. Keep the layout on a parent container, such as a non-growing flex wrapper around the textarea.</violation>
</file>

<file name="apps/meteor/client/views/admin/import/PrepareImportPage.tsx">

<violation number="1" location="apps/meteor/client/views/admin/import/PrepareImportPage.tsx:213">
P2: This unconditional bottom padding adds 24px of extra blank space below the loaded table and pagination views. The old `Margins` transform does not reach the final native `Pagination` `nav`, so only the outer `marginBlock` supplied bottom spacing in those states; apply this padding only while the preparation indicator is shown, or otherwise preserve the loaded-state bottom spacing.</violation>
</file>

<file name="apps/meteor/client/components/UserAutoCompleteMultiple/UserAvatarChip.tsx">

<violation number="1" location="apps/meteor/client/components/UserAutoCompleteMultiple/UserAvatarChip.tsx:15">
P2: This removes the 20px height from every `UserAvatarChip`, so autocomplete selections now render as the default 28px Chip instead of their previous 20px height. Use Chip's declared `small` variation to preserve the existing layout.</violation>
</file>

Note: This PR contains a large number of files. cubic selects up to 200 of the highest-priority eligible files for this review, so some files may not have been reviewed.

View guided diff | Re-trigger cubic

<UserCardRole key={index}>{role}</UserCardRole>
))}
<FieldRow spacing={1}>
<Box display='flex' alignItems='center' minWidth={0}>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The role badges lose the spacing={1} gap because FieldRow now contains only the wrapper; add the gap to the inner flex container so adjacent roles retain their previous spacing.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At apps/meteor/client/views/admin/moderation/UserReports/UserReportInfo.tsx, line 89:

<comment>The role badges lose the `spacing={1}` gap because `FieldRow` now contains only the wrapper; add the gap to the inner flex container so adjacent roles retain their previous spacing.</comment>

<file context>
@@ -85,10 +85,12 @@ const UserReportInfo = ({ userId }: UserReportInfoProps) => {
-											<UserCardRole key={index}>{role}</UserCardRole>
-										))}
+									<FieldRow spacing={1}>
+										<Box display='flex' alignItems='center' minWidth={0}>
+											{report.user.roles.map((role, index) => (
+												<UserCardRole key={index}>{role}</UserCardRole>
</file context>
Suggested change
<Box display='flex' alignItems='center' minWidth={0}>
<Box display='flex' alignItems='center' minWidth={0} gap={1}>

Comment thread apps/meteor/client/hooks/roomActions/useThreadRoomAction.tsx
Comment thread apps/meteor/client/views/directory/RoomTags.tsx Outdated
<Chip height='x20' {...props}>
{federated ? <Icon size='x20' name='globe' verticalAlign='middle' /> : <UserAvatar size='x20' username={username} />}
<Box is='span' margin='none' marginInlineStart={4} verticalAlign='middle'>
<Chip {...props}>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This removes the 20px height from every UserAvatarChip, so autocomplete selections now render as the default 28px Chip instead of their previous 20px height. Use Chip's declared small variation to preserve the existing layout.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At apps/meteor/client/components/UserAutoCompleteMultiple/UserAvatarChip.tsx, line 15:

<comment>This removes the 20px height from every `UserAvatarChip`, so autocomplete selections now render as the default 28px Chip instead of their previous 20px height. Use Chip's declared `small` variation to preserve the existing layout.</comment>

<file context>
@@ -12,9 +12,9 @@ export type UserAvatarChipProps = ComponentProps<typeof Chip> & {
-		<Chip height='x20' {...props}>
-			{federated ? <Icon size='x20' name='globe' verticalAlign='middle' /> : <UserAvatar size='x20' username={username} />}
-			<Box is='span' margin='none' marginInlineStart={4} verticalAlign='middle'>
+		<Chip {...props}>
+			<Box is='span' display='inline-flex' alignItems='center' gap={4}>
+				{federated ? <Icon size='x20' name='globe' /> : <UserAvatar size='x20' username={username} />}
</file context>
Suggested change
<Chip {...props}>
<Chip small {...props}>

display='flex'
flexDirection='column'
gap={24}
paddingBlockEnd={24}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This unconditional bottom padding adds 24px of extra blank space below the loaded table and pagination views. The old Margins transform does not reach the final native Pagination nav, so only the outer marginBlock supplied bottom spacing in those states; apply this padding only while the preparation indicator is shown, or otherwise preserve the loaded-state bottom spacing.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At apps/meteor/client/views/admin/import/PrepareImportPage.tsx, line 213:

<comment>This unconditional bottom padding adds 24px of extra blank space below the loaded table and pagination views. The old `Margins` transform does not reach the final native `Pagination` `nav`, so only the outer `marginBlock` supplied bottom spacing in those states; apply this padding only while the preparation indicator is shown, or otherwise preserve the loaded-state bottom spacing.</comment>

<file context>
@@ -202,50 +202,59 @@ function PrepareImportPage() {
+					display='flex'
+					flexDirection='column'
+					gap={24}
+					paddingBlockEnd={24}
+				>
+					<Box>
</file context>
Suggested change
paddingBlockEnd={24}
paddingBlockEnd={isPreparing ? 24 : 0}

Comment thread apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx Outdated
Comment thread apps/meteor/client/views/admin/settings/Setting/inputs/ActionInputBase.tsx Outdated
Comment thread apps/meteor/client/views/admin/moderation/UserMessages.tsx
Comment thread apps/meteor/client/navbar/NavBarSettingsToolbar/UserMenu/UserMenuButton.tsx Outdated
tassoevan
tassoevan previously approved these changes Oct 23, 2026

@tassoevan tassoevan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leitura-dinamica.mp4

@rc-layne

rc-layne Bot commented Oct 23, 2026

Copy link
Copy Markdown

⚠️ Layne — scan incomplete

Layne could not analyze all changed content. Review the Check Run summary before merging.

@ggazzo ggazzo added the stat: QA assured Means it has been tested and approved by a company insider label Oct 23, 2026
@dionisio-bot dionisio-bot Bot added the stat: ready to merge PR tested and approved waiting for merge label Oct 23, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 issues found across 13 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx">

<violation number="1" location="apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx:69">
P2: The loading wrapper now uses baseline alignment, so the spinner is not vertically centered with the checkbox as it was in the previous flex layout. Add `verticalAlign='middle'` to this wrapper.</violation>

<violation number="2" location="apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx:69">
P3: This span contains a `Throbber` whose root element is a `div`, producing invalid `span > div` markup. Remove `is='span'` from the wrapper or render the Throbber as a span.</violation>
</file>

<file name="apps/meteor/client/components/UserAutoCompleteMultiple/UserAvatarChip.tsx">

<violation number="1" location="apps/meteor/client/components/UserAutoCompleteMultiple/UserAvatarChip.tsx:16">
P2: This explicit `margin='none'` overrides `Chip`'s `<Margins all='x4'>`, removing the chip's normal outer spacing around the wrapped avatar and name. Remove the override so the wrapper receives the chip's 4px margin.</violation>
</file>

Reply with feedback, questions, or to request a fix.

View guided diff | Re-trigger cubic

</Box>
)}
{loading && (
<Box is='span' display='inline-block' marginInline={2}>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The loading wrapper now uses baseline alignment, so the spinner is not vertically centered with the checkbox as it was in the previous flex layout. Add verticalAlign='middle' to this wrapper.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx, line 69:

<comment>The loading wrapper now uses baseline alignment, so the spinner is not vertically centered with the checkbox as it was in the previous flex layout. Add `verticalAlign='middle'` to this wrapper.</comment>

<file context>
@@ -57,15 +57,19 @@ const RoleCell = ({ _id, name, description, onChange, permissionId, permissionNa
+				</Box>
+			)}
+			{loading && (
+				<Box is='span' display='inline-block' marginInline={2}>
+					<Throbber size='x12' />
+				</Box>
</file context>
Suggested change
<Box is='span' display='inline-block' marginInline={2}>
<Box is='span' display='inline-block' verticalAlign='middle' marginInline={2}>

{federated ? <Icon size='x20' name='globe' verticalAlign='middle' /> : <UserAvatar size='x20' username={username} />}
<Box is='span' margin='none' marginInlineStart={4} verticalAlign='middle'>
<Chip {...props}>
<Box is='span' display='flex' alignItems='center' gap={4} margin='none'>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This explicit margin='none' overrides Chip's <Margins all='x4'>, removing the chip's normal outer spacing around the wrapped avatar and name. Remove the override so the wrapper receives the chip's 4px margin.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At apps/meteor/client/components/UserAutoCompleteMultiple/UserAvatarChip.tsx, line 16:

<comment>This explicit `margin='none'` overrides `Chip`'s `<Margins all='x4'>`, removing the chip's normal outer spacing around the wrapped avatar and name. Remove the override so the wrapper receives the chip's 4px margin.</comment>

<file context>
@@ -13,7 +13,7 @@ const UserAvatarChip = ({ federated, username, name, ...props }: UserAvatarChipP
 	return (
 		<Chip {...props}>
-			<Box is='span' display='inline-flex' alignItems='center' gap={4}>
+			<Box is='span' display='flex' alignItems='center' gap={4} margin='none'>
 				{federated ? <Icon size='x20' name='globe' /> : <UserAvatar size='x20' username={username} />}
 				{displayName}
</file context>
Suggested change
<Box is='span' display='flex' alignItems='center' gap={4} margin='none'>
<Box is='span' display='flex' alignItems='center' gap={4}>

</Box>
)}
{loading && (
<Box is='span' display='inline-block' marginInline={2}>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: This span contains a Throbber whose root element is a div, producing invalid span > div markup. Remove is='span' from the wrapper or render the Throbber as a span.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx, line 69:

<comment>This span contains a `Throbber` whose root element is a `div`, producing invalid `span > div` markup. Remove `is='span'` from the wrapper or render the Throbber as a span.</comment>

<file context>
@@ -57,15 +57,19 @@ const RoleCell = ({ _id, name, description, onChange, permissionId, permissionNa
+				</Box>
+			)}
+			{loading && (
+				<Box is='span' display='inline-block' marginInline={2}>
+					<Throbber size='x12' />
+				</Box>
</file context>
Suggested change
<Box is='span' display='inline-block' marginInline={2}>
<Box display='inline-block' marginInline={2}>

The press animation sets `transform: translateY(1px)` on every child of an IconButton but a `role='status'` one. The badge wrapper has no role, so on press that transform replaced the badge's own `translate(30%, ±30%)` and the badge jumped toward the button's center. Positioning it with the `translate` property lets both apply: the badge keeps its corner, top-end or bottom-end, and moves 1px with the icon.
@dionisio-bot dionisio-bot Bot removed the stat: ready to merge PR tested and approved waiting for merge label Oct 23, 2026
@ggazzo
ggazzo merged commit cea4d44 into develop Oct 23, 2026
64 checks passed
@ggazzo
ggazzo deleted the docs/fuselage-component-style-props branch October 23, 2026 15:42
gabriellsh added a commit that referenced this pull request Oct 23, 2026
Follows #42974: containers space their children with gap, the number
input and its remove button share a Stack row, and the dividers around
the phone list are flush.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gabriellsh added a commit that referenced this pull request Oct 23, 2026
Follows #42974: containers space their children with gap, the number
input and its remove button share a Stack row, and the dividers around
the phone list are flush.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ggazzo added a commit that referenced this pull request Oct 23, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 24, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 24, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
mrityunjay-pandey added a commit to mrityunjay-pandey/Rocket.Chat that referenced this pull request Oct 25, 2026
Reimplements the row and cell vertical alignment on top of the variant props from RocketChat#42974 and RocketChat#43100, which removed the Box styling props the first version relied on.
ggazzo added a commit that referenced this pull request Oct 26, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 26, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 26, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 26, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 26, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 27, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
ggazzo added a commit that referenced this pull request Oct 27, 2026
#42974

Ports #42974 onto the frames, which won the rebase over develop's Box and SCSS versions: Button compact and link types, IconButton badge position, ButtonGroup stretch='equal', Chip small and label, Divider light, flush, small and stretch, Tag gap, Icon colors, Table columns and row headers, Tabs stretch, Tile flush, Skeleton inverted, Modal hidden, ModalBackdrop transparent, ModalTagline subtle, InputBox end-addon-flush, FieldRow justify, and the internal compositions that stopped passing styling props. CardGrid's and Tile's class rules, which develop styles in SCSS, move to plain CSS. Button's block padding follows the size scale, as #43021 did.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview Builds a UI preview that Rocket.Chat Desktop can load stat: QA assured Means it has been tested and approved by a company insider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants