diff --git a/apps/meteor/client/providers/LayoutProvider.tsx b/apps/meteor/client/providers/LayoutProvider.tsx index 9623e17018cef..fbfdbbf3cf62e 100644 --- a/apps/meteor/client/providers/LayoutProvider.tsx +++ b/apps/meteor/client/providers/LayoutProvider.tsx @@ -24,6 +24,7 @@ const LayoutProvider = ({ children }: LayoutProviderProps) => { const breakpoints = useBreakpoints(); // ["xs", "sm", "md", "lg", "xl", xxl"] const [hiddenActions, setHiddenActions] = useState(hiddenActionsDefaultValue); const enhancedNavigationEnabled = useFeaturePreview('newNavigation'); + const secondSidebarEnabled = useFeaturePreview('secondarySidebar'); const router = useRouter(); // Once the layout is embedded, it can't be changed @@ -34,6 +35,7 @@ const LayoutProvider = ({ children }: LayoutProviderProps) => { const shouldToggle = enhancedNavigationEnabled ? isTablet || isMobile : isMobile; const shouldDisplaySidePanel = !isTablet || displaySidePanel; + const defaultSidebarWidth = secondSidebarEnabled ? '220px' : '240px'; useEffect(() => { setIsCollapsed(shouldToggle); @@ -80,7 +82,7 @@ const LayoutProvider = ({ children }: LayoutProviderProps) => { openSidePanel: () => setDisplaySidePanel(true), }, size: { - sidebar: isTablet ? '280px' : '240px', + sidebar: isTablet ? '280px' : defaultSidebarWidth, // eslint-disable-next-line no-nested-ternary contextualBar: breakpoints.includes('sm') ? (breakpoints.includes('xl') ? '38%' : '380px') : '100%', }, @@ -100,6 +102,7 @@ const LayoutProvider = ({ children }: LayoutProviderProps) => { isCollapsed, shouldToggle, shouldDisplaySidePanel, + defaultSidebarWidth, breakpoints, hiddenActions, router, diff --git a/apps/meteor/client/views/navigation/sidebar/RoomList/RoomListFilters.tsx b/apps/meteor/client/views/navigation/sidebar/RoomList/RoomListFilters.tsx index bc83715a7c81b..039b68ef52841 100644 --- a/apps/meteor/client/views/navigation/sidebar/RoomList/RoomListFilters.tsx +++ b/apps/meteor/client/views/navigation/sidebar/RoomList/RoomListFilters.tsx @@ -1,4 +1,4 @@ -import { Divider, Box } from '@rocket.chat/fuselage'; +import { Box } from '@rocket.chat/fuselage'; import { forwardRef } from 'react'; import type { Components } from 'react-virtuoso'; @@ -12,7 +12,6 @@ const RoomListFilters: Components['Header'] = forwardRef(function RoomListWrappe return ( - {showOmnichannel && } ); diff --git a/apps/meteor/client/views/navigation/sidebar/RoomList/TeamCollabFilters.tsx b/apps/meteor/client/views/navigation/sidebar/RoomList/TeamCollabFilters.tsx index 478dd82a60beb..e8ad1faa58f28 100644 --- a/apps/meteor/client/views/navigation/sidebar/RoomList/TeamCollabFilters.tsx +++ b/apps/meteor/client/views/navigation/sidebar/RoomList/TeamCollabFilters.tsx @@ -1,4 +1,4 @@ -import { Box } from '@rocket.chat/fuselage'; +import { Divider, Box } from '@rocket.chat/fuselage'; import { useSetting } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; @@ -10,11 +10,14 @@ const TeamCollabFilters = () => { const isDiscussionEnabled = useSetting('Discussion_enabled'); return ( - - - - {isDiscussionEnabled && } - + <> + + + + {isDiscussionEnabled && } + + + ); }; diff --git a/apps/meteor/client/views/navigation/sidebar/hooks/useShortcutOpenMenu.ts b/apps/meteor/client/views/navigation/sidebar/hooks/useShortcutOpenMenu.ts index 9898e67040e13..84ff9f7cf5b61 100644 --- a/apps/meteor/client/views/navigation/sidebar/hooks/useShortcutOpenMenu.ts +++ b/apps/meteor/client/views/navigation/sidebar/hooks/useShortcutOpenMenu.ts @@ -7,7 +7,7 @@ export const useShortcutOpenMenu = (ref: RefObject): void => { useEffect(() => { const unsubscribe = tinykeys(ref.current as HTMLElement, { Alt: (event) => { - if (!(event.target as HTMLElement).className.includes('rcx-sidebar-item')) { + if (!(event.target as HTMLElement).className.includes('rcx-sidebar-v2-item')) { return; } event.preventDefault(); diff --git a/apps/meteor/client/views/navigation/sidepanel/SidePanel.tsx b/apps/meteor/client/views/navigation/sidepanel/SidePanel.tsx index 1c4c773b3400c..ea87e078b2ddf 100644 --- a/apps/meteor/client/views/navigation/sidepanel/SidePanel.tsx +++ b/apps/meteor/client/views/navigation/sidepanel/SidePanel.tsx @@ -49,7 +49,7 @@ const SidePanel = ({ title, currentTab, unreadOnly, toggleUnreadOnly, rooms }: S - + {rooms && rooms.length === 0 && } {avatar && {avatar}} {icon} {title} - {time && {formatDate(time)}} + {time && {formatDate(time)}} {subtitle} diff --git a/apps/meteor/client/views/navigation/sidepanel/SidepanelListWrapper.tsx b/apps/meteor/client/views/navigation/sidepanel/SidepanelListWrapper.tsx index b03f022a24672..b362c6b98cd2d 100644 --- a/apps/meteor/client/views/navigation/sidepanel/SidepanelListWrapper.tsx +++ b/apps/meteor/client/views/navigation/sidepanel/SidepanelListWrapper.tsx @@ -1,14 +1,12 @@ import { SidepanelList } from '@rocket.chat/fuselage'; import { useMergedRefs } from '@rocket.chat/fuselage-hooks'; -import type { ForwardedRef, HTMLAttributes } from 'react'; import { forwardRef } from 'react'; import { useTranslation } from 'react-i18next'; +import type { Components } from 'react-virtuoso'; -import { useSidebarListNavigation } from '../../../sidebar/RoomList/useSidebarListNavigation'; +import { useSidebarListNavigation } from '../sidebar/RoomList/useSidebarListNavigation'; -type SidepanelListWrapperProps = HTMLAttributes; - -const SidepanelListWrapper = forwardRef(function SidepanelListWrapper(props: SidepanelListWrapperProps, ref: ForwardedRef) { +const SidepanelListWrapper: Components['List'] = forwardRef(function SidepanelListWrapper(props, ref) { const { t } = useTranslation(); const { sidebarListRef } = useSidebarListNavigation(); const mergedRefs = useMergedRefs(ref, sidebarListRef); diff --git a/apps/meteor/package.json b/apps/meteor/package.json index b97f7dded3dd6..b6917575594e7 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -253,7 +253,7 @@ "@rocket.chat/emitter": "~0.31.25", "@rocket.chat/favicon": "workspace:^", "@rocket.chat/freeswitch": "workspace:^", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-forms": "^0.1.0", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", diff --git a/apps/uikit-playground/package.json b/apps/uikit-playground/package.json index a6222b30a2478..179ef643a2fa5 100644 --- a/apps/uikit-playground/package.json +++ b/apps/uikit-playground/package.json @@ -18,7 +18,7 @@ "@lezer/highlight": "^1.2.1", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-toastbar": "^0.35.0", diff --git a/ee/packages/ui-theming/package.json b/ee/packages/ui-theming/package.json index c0a3453f03a54..b6a998a1f6ae6 100644 --- a/ee/packages/ui-theming/package.json +++ b/ee/packages/ui-theming/package.json @@ -5,7 +5,7 @@ "devDependencies": { "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/emitter": "~0.31.25", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/fuselage-ui-kit/package.json b/packages/fuselage-ui-kit/package.json index 8ca01c4298352..d513621be72d7 100644 --- a/packages/fuselage-ui-kit/package.json +++ b/packages/fuselage-ui-kit/package.json @@ -53,7 +53,7 @@ "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/emitter": "~0.31.25", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/gazzodown/package.json b/packages/gazzodown/package.json index e1bac75a10381..befdb8c5d3c08 100644 --- a/packages/gazzodown/package.json +++ b/packages/gazzodown/package.json @@ -32,7 +32,7 @@ "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/emitter": "~0.31.25", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json index 3084f69a15451..91e76019cb96f 100644 --- a/packages/i18n/src/locales/en.i18n.json +++ b/packages/i18n/src/locales/en.i18n.json @@ -3614,11 +3614,11 @@ "No_departments_yet_description": "Organize agents into departments, set how tickets get forwarded and monitor their performance.", "No_direct_messages_yet": "No Direct Messages.", "No_channels_or_discussions": "No channels or discussions", - "No_channels_or_discussions_description": "Channels and discussions belonging to this team will appear hear.", + "No_channels_or_discussions_description": "Channels and discussions belonging to this team will appear here.", "No_discussions": "No discussions", - "No_discussions_description": "Discussions you've joined will appear hear.", - "No_discussions_channels_filter_description": "Discussions belonging to this channel will appear hear.", - "No_discussions_dms_filter_description": "Discussions belonging to this user will appear hear.", + "No_discussions_description": "Discussions you’ve joined will appear here.", + "No_discussions_channels_filter_description": "Discussions belonging to this channel will appear here.", + "No_discussions_dms_filter_description": "Discussions belonging to this user will appear here.", "No_discussions_yet": "No discussions yet", "No_emojis_found": "No emojis found", "No_feature_to_preview": "No feature to preview", diff --git a/packages/storybook-config/package.json b/packages/storybook-config/package.json index ad7db5f0ba2cf..0ec45484646e9 100644 --- a/packages/storybook-config/package.json +++ b/packages/storybook-config/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@rocket.chat/eslint-config": "workspace:~", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/icons": "^0.43.0", "@rocket.chat/tsconfig": "workspace:*", "@storybook/react": "^8.6.14", diff --git a/packages/ui-avatar/package.json b/packages/ui-avatar/package.json index 9389fdc7b7a05..8f8fc5a987ea1 100644 --- a/packages/ui-avatar/package.json +++ b/packages/ui-avatar/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.26.10", "@rocket.chat/core-typings": "workspace:~", "@rocket.chat/emitter": "~0.31.25", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/ui-client/package.json b/packages/ui-client/package.json index 791898e3e8751..b038a56783bd5 100644 --- a/packages/ui-client/package.json +++ b/packages/ui-client/package.json @@ -23,7 +23,7 @@ "@rocket.chat/core-typings": "workspace:~", "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/emitter": "~0.31.25", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/ui-composer/package.json b/packages/ui-composer/package.json index a5cd00c2cfee4..11a95813b9e54 100644 --- a/packages/ui-composer/package.json +++ b/packages/ui-composer/package.json @@ -24,7 +24,7 @@ "@react-aria/toolbar": "^3.0.0-nightly.5042", "@rocket.chat/emitter": "~0.31.25", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/ui-video-conf/package.json b/packages/ui-video-conf/package.json index 832aa36b2d904..ff9ad4a250546 100644 --- a/packages/ui-video-conf/package.json +++ b/packages/ui-video-conf/package.json @@ -24,7 +24,7 @@ "@babel/core": "~7.26.10", "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/ui-voip/package.json b/packages/ui-voip/package.json index 10f8c0a129a9b..683646ccbf11f 100644 --- a/packages/ui-voip/package.json +++ b/packages/ui-voip/package.json @@ -31,7 +31,7 @@ "@react-spectrum/test-utils": "~1.0.0-alpha.8", "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/packages/web-ui-registration/package.json b/packages/web-ui-registration/package.json index c8c88f3d8c413..667e69517ba75 100644 --- a/packages/web-ui-registration/package.json +++ b/packages/web-ui-registration/package.json @@ -24,7 +24,7 @@ "@rocket.chat/core-typings": "workspace:~", "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/emitter": "~0.31.25", - "@rocket.chat/fuselage": "^0.66.0", + "@rocket.chat/fuselage": "^0.66.3", "@rocket.chat/fuselage-hooks": "^0.37.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-tokens": "~0.33.2", diff --git a/yarn.lock b/yarn.lock index e04f45742aeeb..e71feabc3330d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7389,7 +7389,7 @@ __metadata: "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/emitter": "npm:~0.31.25" "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -7451,9 +7451,9 @@ __metadata: languageName: unknown linkType: soft -"@rocket.chat/fuselage@npm:^0.66.0": - version: 0.66.0 - resolution: "@rocket.chat/fuselage@npm:0.66.0" +"@rocket.chat/fuselage@npm:^0.66.3": + version: 0.66.3 + resolution: "@rocket.chat/fuselage@npm:0.66.3" dependencies: "@rocket.chat/css-in-js": "npm:^0.31.25" "@rocket.chat/css-supports": "npm:^0.31.25" @@ -7471,7 +7471,7 @@ __metadata: react: "*" react-dom: "*" react-virtuoso: "*" - checksum: 10/5a4c1b1edf6e75ff609c7cc2fd3bf34bc0e7e8a344dbf01decb4cfc38a048c40c2226aab5830d4048eff42b8ed788278b0248cc4ce9ddbc36702190c2188cae0 + checksum: 10/874f7d4158a1780fac526b855ccedaca7fec76c0ab08e8c3a902b298bd4b26a30ee918b765493ba2438defd50798bfe030702662644e7985d2a8f44d1c5e63f4 languageName: node linkType: hard @@ -7483,7 +7483,7 @@ __metadata: "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/css-in-js": "npm:~0.31.25" "@rocket.chat/emitter": "npm:~0.31.25" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -7901,7 +7901,7 @@ __metadata: "@rocket.chat/eslint-config": "workspace:^" "@rocket.chat/favicon": "workspace:^" "@rocket.chat/freeswitch": "workspace:^" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-forms": "npm:^0.1.0" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" @@ -8808,7 +8808,7 @@ __metadata: dependencies: "@rocket.chat/emitter": "npm:~0.31.25" "@rocket.chat/eslint-config": "workspace:~" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -8944,7 +8944,7 @@ __metadata: "@babel/core": "npm:~7.26.10" "@rocket.chat/core-typings": "workspace:~" "@rocket.chat/emitter": "npm:~0.31.25" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -8977,7 +8977,7 @@ __metadata: "@rocket.chat/core-typings": "workspace:~" "@rocket.chat/css-in-js": "npm:~0.31.25" "@rocket.chat/emitter": "npm:~0.31.25" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -9031,7 +9031,7 @@ __metadata: "@react-aria/toolbar": "npm:^3.0.0-nightly.5042" "@rocket.chat/emitter": "npm:~0.31.25" "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -9134,7 +9134,7 @@ __metadata: dependencies: "@rocket.chat/css-in-js": "npm:~0.31.25" "@rocket.chat/emitter": "npm:~0.31.25" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -9170,7 +9170,7 @@ __metadata: "@rocket.chat/css-in-js": "npm:~0.31.25" "@rocket.chat/emitter": "npm:~0.31.25" "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -9228,7 +9228,7 @@ __metadata: "@rocket.chat/css-in-js": "npm:~0.31.25" "@rocket.chat/emitter": "npm:~0.31.25" "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -9298,7 +9298,7 @@ __metadata: "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/css-in-js": "npm:~0.31.25" "@rocket.chat/emitter": "npm:~0.31.25" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-toastbar": "npm:^0.35.0" @@ -9348,7 +9348,7 @@ __metadata: "@rocket.chat/core-typings": "workspace:~" "@rocket.chat/css-in-js": "npm:~0.31.25" "@rocket.chat/emitter": "npm:~0.31.25" - "@rocket.chat/fuselage": "npm:^0.66.0" + "@rocket.chat/fuselage": "npm:^0.66.3" "@rocket.chat/fuselage-hooks": "npm:^0.37.0" "@rocket.chat/fuselage-polyfills": "npm:~0.31.25" "@rocket.chat/fuselage-tokens": "npm:~0.33.2" @@ -9387,7 +9387,7 @@ __metadata: peerDependencies: "@rocket.chat/layout": "*" "@rocket.chat/tools": 0.2.3 - "@rocket.chat/ui-contexts": 22.0.0-rc.1 + "@rocket.chat/ui-contexts": 22.0.0-rc.2 "@tanstack/react-query": "*" react: "*" react-hook-form: "*"