From b71a82d0e92cba89ad7f820a415ff03f3e16f7b6 Mon Sep 17 00:00:00 2001 From: Marco Beretta <81851188+berry-13@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:51:45 +0200 Subject: [PATCH] feat: /client transition to @librechat/client --- client/src/App.jsx | 5 ++-- client/src/Providers/index.ts | 2 -- client/src/a11y/LiveAnnouncer.tsx | 3 +- client/src/components/Artifacts/Artifacts.tsx | 2 +- client/src/components/Artifacts/Code.tsx | 7 ++--- .../components/Artifacts/DownloadArtifact.tsx | 2 +- client/src/components/Artifacts/Mermaid.tsx | 3 +- client/src/components/Audio/TTS.tsx | 2 +- client/src/components/Audio/Voices.tsx | 2 +- client/src/components/Auth/AuthLayout.tsx | 4 +-- client/src/components/Auth/Login.tsx | 4 +-- client/src/components/Auth/LoginForm.tsx | 6 ++-- client/src/components/Auth/Registration.tsx | 4 +-- .../components/Auth/RequestPasswordReset.tsx | 4 +-- client/src/components/Auth/ResetPassword.tsx | 2 +- .../src/components/Auth/SocialLoginRender.tsx | 2 +- .../src/components/Auth/TwoFactorScreen.tsx | 4 +-- client/src/components/Auth/VerifyEmail.tsx | 5 ++-- .../Bookmarks/BookmarkEditDialog.tsx | 4 +-- .../src/components/Bookmarks/BookmarkForm.tsx | 3 +- .../src/components/Bookmarks/BookmarkItem.tsx | 2 +- .../Bookmarks/DeleteBookmarkButton.tsx | 13 +++++++-- .../Bookmarks/EditBookmarkButton.tsx | 4 +-- client/src/components/Chat/AddMultiConvo.tsx | 2 +- client/src/components/Chat/ChatView.tsx | 2 +- .../components/Chat/ExportAndShareMenu.tsx | 4 +-- client/src/components/Chat/Header.tsx | 3 +- .../src/components/Chat/Input/Artifacts.tsx | 2 +- .../Chat/Input/ArtifactsSubMenu.tsx | 2 +- .../components/Chat/Input/AudioRecorder.tsx | 5 ++-- client/src/components/Chat/Input/BadgeRow.tsx | 2 +- client/src/components/Chat/Input/ChatForm.tsx | 2 +- .../components/Chat/Input/CircleRender.tsx | 2 +- .../components/Chat/Input/CodeInterpreter.tsx | 2 +- .../components/Chat/Input/CollapseChat.tsx | 2 +- .../src/components/Chat/Input/EditBadges.tsx | 2 +- .../src/components/Chat/Input/FileSearch.tsx | 3 +- .../Chat/Input/Files/AttachFile.tsx | 2 +- .../Chat/Input/Files/AttachFileMenu.tsx | 6 ++-- .../Chat/Input/Files/DragDropModal.tsx | 2 +- .../Chat/Input/Files/FilePreview.tsx | 4 +-- .../components/Chat/Input/Files/FileRow.tsx | 4 +-- .../components/Chat/Input/Files/FilesView.tsx | 2 +- .../Chat/Input/Files/ImagePreview.tsx | 8 ++--- .../Chat/Input/Files/Table/Columns.tsx | 11 +++++-- .../Chat/Input/Files/Table/DataTable.tsx | 13 +++++---- .../Input/Files/Table/SortFilterHeader.tsx | 4 +-- .../Chat/Input/Files/Table/TemplateTable.tsx | 2 +- .../components/Chat/Input/HeaderOptions.tsx | 6 ++-- .../components/Chat/Input/MCPConfigDialog.tsx | 2 +- .../src/components/Chat/Input/MCPSubMenu.tsx | 4 +-- client/src/components/Chat/Input/Mention.tsx | 5 ++-- .../components/Chat/Input/OptionsPopover.tsx | 5 ++-- .../components/Chat/Input/PopoverButtons.tsx | 3 +- .../components/Chat/Input/PromptsCommand.tsx | 4 +-- .../src/components/Chat/Input/SendButton.tsx | 3 +- .../src/components/Chat/Input/StopButton.tsx | 2 +- .../components/Chat/Input/ToolsDropdown.tsx | 3 +- .../src/components/Chat/Input/WebSearch.tsx | 2 +- client/src/components/Chat/Landing.tsx | 2 +- .../components/Chat/Menus/BookmarkMenu.tsx | 4 +-- .../Menus/Bookmarks/BookmarkMenuItems.tsx | 2 +- .../Endpoints/components/EndpointItem.tsx | 2 +- .../components/Chat/Menus/HeaderNewChat.tsx | 3 +- .../src/components/Chat/Menus/OpenSidebar.tsx | 3 +- .../Chat/Menus/Presets/EditPresetDialog.tsx | 16 +++++----- .../Chat/Menus/Presets/PresetItems.tsx | 14 ++++++--- .../src/components/Chat/Menus/PresetsMenu.tsx | 2 +- .../components/Chat/Menus/UI/TitleButton.tsx | 2 +- .../Chat/Messages/Content/ContentParts.tsx | 2 +- .../Chat/Messages/Content/DialogImage.tsx | 2 +- .../Chat/Messages/Content/EditMessage.tsx | 4 +-- .../Chat/Messages/Content/Image.tsx | 2 +- .../Messages/Content/MarkdownComponents.tsx | 5 ++-- .../Chat/Messages/Content/MessageContent.tsx | 2 +- .../Messages/Content/Parts/EditTextPart.tsx | 2 +- .../Chat/Messages/Content/Parts/LogLink.tsx | 2 +- .../Parts/OpenAIImageGen/OpenAIImageGen.tsx | 2 +- .../Chat/Messages/Content/ProgressText.tsx | 2 +- .../Chat/Messages/Content/SearchContent.tsx | 2 +- .../Chat/Messages/Content/ToolCall.tsx | 2 +- .../src/components/Chat/Messages/Feedback.tsx | 16 +++++----- client/src/components/Chat/Messages/Fork.tsx | 2 +- .../components/Chat/Messages/HoverButtons.tsx | 2 +- .../components/Chat/Messages/MessageParts.tsx | 1 - .../Chat/Messages/MinimalHoverButtons.tsx | 2 +- .../components/Chat/Messages/MultiMessage.tsx | 3 -- client/src/components/Chat/TemporaryChat.tsx | 2 +- .../Conversations/Conversations.tsx | 4 +-- client/src/components/Conversations/Convo.tsx | 4 +-- .../ConvoOptions/ConvoOptions.tsx | 4 +-- .../ConvoOptions/DeleteButton.tsx | 6 ++-- .../ConvoOptions/ShareButton.tsx | 3 +- .../ConvoOptions/SharedLinkButton.tsx | 12 ++++++-- client/src/components/Endpoints/Icon.tsx | 22 +++++++------- .../Endpoints/MessageEndpointIcon.tsx | 2 +- .../src/components/Endpoints/MinimalIcon.tsx | 2 +- .../Endpoints/SaveAsPresetDialog.tsx | 10 +++---- .../Endpoints/Settings/Advanced.tsx | 10 +++---- .../Endpoints/Settings/AgentSettings.tsx | 4 +-- .../Endpoints/Settings/Assistants.tsx | 6 ++-- .../Endpoints/Settings/Examples.tsx | 6 ++-- .../components/Endpoints/Settings/Google.tsx | 14 +++++---- .../Endpoints/Settings/OptionHover.tsx | 4 +-- .../components/Endpoints/Settings/Plugins.tsx | 8 ++--- client/src/components/Files/ActionButton.tsx | 2 +- .../src/components/Files/DeleteIconButton.tsx | 3 +- .../Files/FileList/DataTableFile.tsx | 11 +++---- .../Files/FileList/FileListItem.tsx | 5 ++-- .../Files/FileList/FileListItem2.tsx | 7 ++--- .../components/Files/FileList/FilePreview.tsx | 9 +++--- .../Files/FileList/FileSidePanel.tsx | 5 ++-- .../Files/FileList/FileTableColumns.tsx | 9 ++---- .../Files/FileList/UploadFileButton.tsx | 4 +-- .../Files/FileList/UploadFileModal.tsx | 3 +- .../Files/VectorStore/VectorStoreButton.tsx | 4 +-- .../Files/VectorStore/VectorStoreListItem.tsx | 3 +- .../Files/VectorStore/VectorStorePreview.tsx | 5 ++-- .../VectorStore/VectorStoreSidePanel.tsx | 9 ++---- .../Input/Generations/Regenerate.tsx | 4 +-- .../src/components/Input/Generations/Stop.tsx | 6 ++-- .../Input/ModelSelect/Anthropic.tsx | 2 +- .../components/Input/ModelSelect/ChatGPT.tsx | 2 +- .../components/Input/ModelSelect/Google.tsx | 2 +- .../Input/ModelSelect/MultiSelectDropDown.tsx | 4 +-- .../Input/ModelSelect/MultiSelectPop.tsx | 2 +- .../components/Input/ModelSelect/OpenAI.tsx | 2 +- .../Input/ModelSelect/PluginsByIndex.tsx | 10 +++++-- .../Input/ModelSelect/SelectDropDownPop.tsx | 2 +- .../Input/SetKeyDialog/GoogleConfig.tsx | 2 +- .../Input/SetKeyDialog/InputWithLabel.tsx | 2 +- .../Input/SetKeyDialog/SetKeyDialog.tsx | 8 ++--- .../components/Messages/Content/CodeBlock.tsx | 7 ++--- .../src/components/Messages/Content/Error.tsx | 2 +- .../components/Messages/Content/Plugin.tsx | 10 +++---- .../components/Messages/Content/RunCode.tsx | 9 +++--- client/src/components/Nav/AccountSettings.tsx | 3 +- .../components/Nav/Bookmarks/BookmarkNav.tsx | 2 +- .../Nav/ExportConversation/ExportModal.tsx | 11 +++++-- client/src/components/Nav/Nav.tsx | 2 +- client/src/components/Nav/NavToggle.tsx | 4 +-- client/src/components/Nav/NewChat.tsx | 3 +- client/src/components/Nav/Settings.tsx | 29 ++++++++++++------- .../Nav/SettingsTabs/Account/Avatar.tsx | 6 ++-- .../SettingsTabs/Account/BackupCodesItem.tsx | 4 +-- .../SettingsTabs/Account/DeleteAccount.tsx | 4 +-- .../Account/DisableTwoFactorToggle.tsx | 2 +- .../Account/DisplayUsernameMessages.tsx | 2 +- .../Account/TwoFactorAuthentication.tsx | 18 ++++++++---- .../Account/TwoFactorPhases/BackupPhase.tsx | 2 +- .../Account/TwoFactorPhases/DisablePhase.tsx | 2 +- .../Account/TwoFactorPhases/QRPhase.tsx | 2 +- .../Account/TwoFactorPhases/SetupPhase.tsx | 2 +- .../Account/TwoFactorPhases/VerifyPhase.tsx | 8 ++++- .../Balance/AutoRefillSettings.tsx | 4 +-- .../SettingsTabs/Balance/TokenCreditsItem.tsx | 4 +-- .../Nav/SettingsTabs/Chat/ChatDirection.tsx | 2 +- .../SettingsTabs/Chat/FontSizeSelector.tsx | 3 +- .../Nav/SettingsTabs/Chat/ForkSettings.tsx | 4 +-- .../Nav/SettingsTabs/Chat/SaveBadgesState.tsx | 4 +-- .../Nav/SettingsTabs/Chat/ShowThinking.tsx | 4 +-- .../SettingsTabs/Commands/AtCommandSwitch.tsx | 2 +- .../Commands/PlusCommandSwitch.tsx | 2 +- .../Commands/SlashCommandSwitch.tsx | 2 +- .../Nav/SettingsTabs/DangerButton.tsx | 5 ++-- .../Nav/SettingsTabs/Data/ClearChats.tsx | 12 ++++++-- .../components/Nav/SettingsTabs/Data/Data.tsx | 2 +- .../Nav/SettingsTabs/Data/DeleteCache.tsx | 13 +++++++-- .../SettingsTabs/Data/ImportConversations.tsx | 3 +- .../Nav/SettingsTabs/Data/RevokeAllKeys.tsx | 2 +- .../SettingsTabs/Data/RevokeKeysButton.tsx | 12 ++++++-- .../Nav/SettingsTabs/Data/SharedLinks.tsx | 7 +++-- .../SettingsTabs/General/ArchivedChats.tsx | 3 +- .../General/ArchivedChatsTable.tsx | 9 +++--- .../Nav/SettingsTabs/General/General.tsx | 4 +-- .../Nav/SettingsTabs/HoverCardSettings.tsx | 9 ++++-- .../Nav/SettingsTabs/Personalization.tsx | 3 +- .../Speech/ConversationModeSwitch.tsx | 2 +- .../Speech/STT/AutoSendTextSelector.tsx | 2 +- .../Speech/STT/AutoTranscribeAudioSwitch.tsx | 2 +- .../Speech/STT/DecibelSelector.tsx | 8 +++-- .../Speech/STT/EngineSTTDropdown.tsx | 2 +- .../Speech/STT/LanguageSTTDropdown.tsx | 2 +- .../Speech/STT/SpeechToTextSwitch.tsx | 2 +- .../Nav/SettingsTabs/Speech/Speech.tsx | 5 ++-- .../Speech/TTS/AutomaticPlaybackSwitch.tsx | 2 +- .../Speech/TTS/CacheTTSSwitch.tsx | 2 +- .../Speech/TTS/CloudBrowserVoicesSwitch.tsx | 2 +- .../Speech/TTS/EngineTTSDropdown.tsx | 2 +- .../SettingsTabs/Speech/TTS/PlaybackRate.tsx | 8 +++-- .../Speech/TTS/TextToSpeechSwitch.tsx | 2 +- .../SettingsTabs/Speech/TTS/VoiceDropdown.tsx | 2 +- .../Nav/SettingsTabs/ToggleSwitch.tsx | 7 ++--- .../Plugins/Store/PluginAuthForm.tsx | 2 +- .../Plugins/Store/PluginTooltip.tsx | 2 +- .../src/components/Prompts/AdminSettings.tsx | 10 +++---- client/src/components/Prompts/BackToChat.tsx | 4 +-- client/src/components/Prompts/Command.tsx | 2 +- .../src/components/Prompts/DeleteVersion.tsx | 3 +- client/src/components/Prompts/Description.tsx | 2 +- .../Prompts/Groups/AlwaysMakeProd.tsx | 2 +- .../Prompts/Groups/AutoSendPrompt.tsx | 2 +- .../Prompts/Groups/CategorySelector.tsx | 4 +-- .../Prompts/Groups/ChatGroupItem.tsx | 4 +-- .../Prompts/Groups/CreatePromptForm.tsx | 4 +-- .../Prompts/Groups/DashGroupItem.tsx | 14 ++++++--- .../Prompts/Groups/FilterPrompts.tsx | 8 ++--- .../Prompts/Groups/GroupSidePanel.tsx | 3 +- client/src/components/Prompts/Groups/List.tsx | 2 +- .../components/Prompts/Groups/ListCard.tsx | 5 ++-- .../Prompts/Groups/NoPromptGroup.tsx | 2 +- .../Prompts/Groups/PanelNavigation.tsx | 2 +- .../Prompts/Groups/VariableDialog.tsx | 2 +- .../Prompts/Groups/VariableForm.tsx | 2 +- .../src/components/Prompts/ManagePrompts.tsx | 2 +- .../src/components/Prompts/PreviewLabels.tsx | 2 +- .../src/components/Prompts/PreviewPrompt.tsx | 2 +- .../src/components/Prompts/PromptDetails.tsx | 2 +- .../src/components/Prompts/PromptEditor.tsx | 17 +++++------ client/src/components/Prompts/PromptForm.tsx | 29 +++++++++---------- client/src/components/Prompts/PromptName.tsx | 2 +- .../components/Prompts/PromptVariables.tsx | 2 +- .../src/components/Prompts/PromptVersions.tsx | 2 +- client/src/components/Prompts/SharePrompt.tsx | 14 ++++----- .../src/components/Prompts/SkeletonForm.tsx | 2 +- .../components/Prompts/VariablesDropdown.tsx | 2 +- client/src/components/Share/MessageIcon.tsx | 2 +- client/src/components/Share/ShareView.tsx | 2 +- .../SidePanel/Agents/ActionsInput.tsx | 7 ++--- .../SidePanel/Agents/ActionsPanel.tsx | 15 ++++++---- .../SidePanel/Agents/AdminSettings.tsx | 13 +++++++-- .../Agents/Advanced/AdvancedButton.tsx | 2 +- .../SidePanel/Agents/Advanced/AgentChain.tsx | 11 +++++-- .../Agents/Advanced/MaxAgentSteps.tsx | 6 ++-- .../SidePanel/Agents/AgentAvatar.tsx | 4 +-- .../SidePanel/Agents/AgentConfig.tsx | 3 +- .../SidePanel/Agents/AgentFooter.tsx | 4 +-- .../SidePanel/Agents/AgentPanel.tsx | 3 +- .../SidePanel/Agents/AgentPanelSkeleton.tsx | 2 +- .../SidePanel/Agents/AgentSelect.tsx | 2 +- .../components/SidePanel/Agents/AgentTool.tsx | 18 ++++++++---- .../components/SidePanel/Agents/Artifacts.tsx | 6 ++-- .../SidePanel/Agents/Code/Action.tsx | 6 ++-- .../SidePanel/Agents/Code/ApiKeyDialog.tsx | 5 ++-- .../SidePanel/Agents/Code/Files.tsx | 2 +- .../SidePanel/Agents/DeleteButton.tsx | 13 ++++++--- .../SidePanel/Agents/DuplicateAgent.tsx | 2 +- .../SidePanel/Agents/FileContext.tsx | 10 +++++-- .../SidePanel/Agents/FileSearch.tsx | 2 +- .../SidePanel/Agents/FileSearchCheckbox.tsx | 6 ++-- .../SidePanel/Agents/ImageVision.tsx | 6 ++-- .../SidePanel/Agents/Instructions.tsx | 6 ++-- .../components/SidePanel/Agents/MCPIcon.tsx | 2 +- .../components/SidePanel/Agents/MCPInput.tsx | 6 ++-- .../components/SidePanel/Agents/MCPPanel.tsx | 24 ++++++++------- .../SidePanel/Agents/MCPSection.tsx | 2 +- .../SidePanel/Agents/ModelPanel.tsx | 4 +-- .../components/SidePanel/Agents/Retrieval.tsx | 4 +-- .../SidePanel/Agents/Search/Action.tsx | 6 ++-- .../SidePanel/Agents/Search/ApiKeyDialog.tsx | 3 +- .../SidePanel/Agents/Search/InputSection.tsx | 7 ++--- .../SidePanel/Agents/ShareAgent.tsx | 6 ++-- .../Agents/Version/VersionButton.tsx | 4 +-- .../Agents/Version/VersionContent.tsx | 6 ++-- .../SidePanel/Agents/Version/VersionPanel.tsx | 5 ++-- .../Version/__tests__/VersionContent.spec.tsx | 2 +- .../SidePanel/Bookmarks/BookmarkTable.tsx | 4 +-- .../SidePanel/Bookmarks/BookmarkTableRow.tsx | 3 +- .../components/SidePanel/Builder/Action.tsx | 2 +- .../SidePanel/Builder/ActionCallback.tsx | 3 +- .../SidePanel/Builder/ActionsAuth.tsx | 2 +- .../SidePanel/Builder/ActionsInput.tsx | 6 ++-- .../SidePanel/Builder/ActionsPanel.tsx | 17 +++++++---- .../SidePanel/Builder/AppendDateCheckbox.tsx | 8 ++--- .../SidePanel/Builder/AssistantAvatar.tsx | 9 +++--- .../Builder/AssistantConversationStarters.tsx | 2 +- .../SidePanel/Builder/AssistantPanel.tsx | 7 ++--- .../SidePanel/Builder/AssistantSelect.tsx | 8 ++--- .../SidePanel/Builder/AssistantTool.tsx | 14 +++++---- .../src/components/SidePanel/Builder/Code.tsx | 8 ++--- .../SidePanel/Builder/CodeFiles.tsx | 2 +- .../SidePanel/Builder/ContextButton.tsx | 15 ++++++---- .../SidePanel/Builder/ImageVision.tsx | 6 ++-- .../SidePanel/Builder/Knowledge.tsx | 2 +- .../src/components/SidePanel/Builder/MCP.tsx | 3 +- .../components/SidePanel/Builder/MCPAuth.tsx | 2 +- .../SidePanel/Builder/Retrieval.tsx | 6 ++-- .../SidePanel/Files/PanelColumns.tsx | 4 +-- .../components/SidePanel/Files/PanelTable.tsx | 24 +++++++-------- .../src/components/SidePanel/MCP/MCPPanel.tsx | 7 ++--- .../SidePanel/MCP/MCPPanelSkeleton.tsx | 2 +- .../SidePanel/Memories/AdminSettings.tsx | 13 +++++++-- .../SidePanel/Memories/MemoryCreateDialog.tsx | 4 +-- .../SidePanel/Memories/MemoryEditDialog.tsx | 12 ++++++-- .../SidePanel/Memories/MemoryViewer.tsx | 8 ++--- client/src/components/SidePanel/Nav.tsx | 2 +- .../SidePanel/Parameters/DynamicCheckbox.tsx | 2 +- .../SidePanel/Parameters/DynamicCombobox.tsx | 19 ++++++++---- .../SidePanel/Parameters/DynamicDropdown.tsx | 16 +++++++--- .../SidePanel/Parameters/DynamicInput.tsx | 2 +- .../SidePanel/Parameters/DynamicSlider.tsx | 2 +- .../SidePanel/Parameters/DynamicSwitch.tsx | 2 +- .../SidePanel/Parameters/DynamicTags.tsx | 6 ++-- .../SidePanel/Parameters/DynamicTextarea.tsx | 18 ++++++++---- .../SidePanel/Parameters/OptionHover.tsx | 2 +- .../components/SidePanel/Parameters/Panel.tsx | 4 +-- client/src/components/SidePanel/SidePanel.tsx | 4 +-- .../components/SidePanel/SidePanelGroup.tsx | 8 +++-- client/src/components/Web/Sources.tsx | 12 ++++---- .../components/svg/{Files => }/CodePaths.tsx | 0 .../components/svg/{Files => }/FileIcon.tsx | 0 .../components/svg/{Files => }/FilePaths.tsx | 0 .../components/svg/{Files => }/SheetPaths.tsx | 0 .../components/svg/{Files => }/TextPaths.tsx | 0 client/src/components/svg/index.ts | 5 ++++ .../components/ui/TermsAndConditionsModal.tsx | 4 +-- client/src/components/ui/index.ts | 1 + client/src/data-provider/Files/mutations.ts | 2 +- client/src/hooks/Conversations/usePresets.ts | 5 ++-- client/src/hooks/Endpoint/Icons.tsx | 6 ++-- client/src/hooks/Endpoint/UnknownIcon.tsx | 2 +- .../src/hooks/Files/useDelayedUploadToast.ts | 4 +-- client/src/hooks/Files/useFileHandling.ts | 2 +- client/src/hooks/Input/index.ts | 1 - .../src/hooks/Input/useSpeechToTextBrowser.ts | 2 +- .../hooks/Input/useSpeechToTextExternal.ts | 2 +- .../hooks/Input/useTextToSpeechExternal.ts | 6 ++-- client/src/hooks/Input/useTextarea.ts | 2 +- client/src/hooks/Nav/useSideNavLinks.ts | 2 +- client/src/hooks/Plugins/useAuthCodeTool.ts | 2 -- client/src/hooks/Prompts/useCategories.tsx | 2 +- client/src/hooks/ScreenshotContext.tsx | 2 +- client/src/routes/ChatRoute.tsx | 2 +- client/src/routes/Layouts/DashBreadcrumb.tsx | 2 +- client/src/routes/Root.tsx | 2 +- client/src/routes/RouteErrorBoundary.tsx | 2 +- client/src/routes/Search.tsx | 4 +-- client/src/utils/files.ts | 5 +--- client/src/utils/index.ts | 1 - .../client}/src/Providers/ToastContext.tsx | 4 +-- packages/client/src/Providers/index.ts | 2 ++ .../client/src/components/DialogTemplate.tsx | 2 +- packages/client/src/components/Resizable.tsx | 8 ++--- packages/client/src/components/Toast.tsx | 2 +- packages/client/src/components/index.ts | 7 +++++ packages/client/src/index.ts | 11 ++++++- packages/client/src/svgs/index.ts | 1 + 347 files changed, 913 insertions(+), 771 deletions(-) rename client/src/components/svg/{Files => }/CodePaths.tsx (100%) rename client/src/components/svg/{Files => }/FileIcon.tsx (100%) rename client/src/components/svg/{Files => }/FilePaths.tsx (100%) rename client/src/components/svg/{Files => }/SheetPaths.tsx (100%) rename client/src/components/svg/{Files => }/TextPaths.tsx (100%) create mode 100644 client/src/components/svg/index.ts create mode 100644 client/src/components/ui/index.ts rename {client => packages/client}/src/Providers/ToastContext.tsx (77%) create mode 100644 packages/client/src/Providers/index.ts diff --git a/client/src/App.jsx b/client/src/App.jsx index 81dbb7a059..83c6108a65 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,13 +1,12 @@ import { RecoilRoot } from 'recoil'; import { DndProvider } from 'react-dnd'; -import { Toast } from '@librechat/client'; import { RouterProvider } from 'react-router-dom'; import * as RadixToast from '@radix-ui/react-toast'; import { HTML5Backend } from 'react-dnd-html5-backend'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; +import { Toast, ThemeProvider, ToastProvider } from '@librechat/client'; import { QueryClient, QueryClientProvider, QueryCache } from '@tanstack/react-query'; -import { ScreenshotProvider, ThemeProvider, useApiErrorBoundary } from './hooks'; -import { ToastProvider } from './Providers'; +import { ScreenshotProvider, useApiErrorBoundary } from './hooks'; import { LiveAnnouncer } from '~/a11y'; import { router } from './routes'; diff --git a/client/src/Providers/index.ts b/client/src/Providers/index.ts index caf5b82b73..7300813aec 100644 --- a/client/src/Providers/index.ts +++ b/client/src/Providers/index.ts @@ -1,11 +1,9 @@ export { default as AssistantsProvider } from './AssistantsContext'; export { default as AgentsProvider } from './AgentsContext'; -export { default as ToastProvider } from './ToastContext'; export * from './ActivePanelContext'; export * from './AgentPanelContext'; export * from './ChatContext'; export * from './ShareContext'; -export * from './ToastContext'; export * from './FileMapContext'; export * from './AddedChatContext'; export * from './EditorContext'; diff --git a/client/src/a11y/LiveAnnouncer.tsx b/client/src/a11y/LiveAnnouncer.tsx index 29912b49af..9a02711556 100644 --- a/client/src/a11y/LiveAnnouncer.tsx +++ b/client/src/a11y/LiveAnnouncer.tsx @@ -1,8 +1,7 @@ -// client/src/a11y/LiveAnnouncer.tsx import React, { useState, useCallback, useRef, useEffect, useMemo } from 'react'; import type { AnnounceOptions } from '~/common'; import AnnouncerContext from '~/Providers/AnnouncerContext'; -import useLocalize from '~/hooks/useLocalize'; +import { useLocalize } from '~/hooks'; import Announcer from './Announcer'; interface LiveAnnouncerProps { diff --git a/client/src/components/Artifacts/Artifacts.tsx b/client/src/components/Artifacts/Artifacts.tsx index 4268ef5fe3..41c6201025 100644 --- a/client/src/components/Artifacts/Artifacts.tsx +++ b/client/src/components/Artifacts/Artifacts.tsx @@ -6,9 +6,9 @@ import type { SandpackPreviewRef, CodeEditorRef } from '@codesandbox/sandpack-re import useArtifacts from '~/hooks/Artifacts/useArtifacts'; import DownloadArtifact from './DownloadArtifact'; import { useEditorContext } from '~/Providers'; -import useLocalize from '~/hooks/useLocalize'; import ArtifactTabs from './ArtifactTabs'; import { CopyCodeButton } from './Code'; +import { useLocalize } from '~/hooks'; import store from '~/store'; export default function Artifacts() { diff --git a/client/src/components/Artifacts/Code.tsx b/client/src/components/Artifacts/Code.tsx index 21db2055d7..4b6d1a0065 100644 --- a/client/src/components/Artifacts/Code.tsx +++ b/client/src/components/Artifacts/Code.tsx @@ -1,12 +1,11 @@ import React, { memo, useEffect, useRef, useState } from 'react'; +import copy from 'copy-to-clipboard'; import rehypeKatex from 'rehype-katex'; import ReactMarkdown from 'react-markdown'; import rehypeHighlight from 'rehype-highlight'; -import copy from 'copy-to-clipboard'; +import { Clipboard, CheckMark } from '@librechat/client'; import { handleDoubleClick, langSubset } from '~/utils'; -import Clipboard from '~/components/svg/Clipboard'; -import CheckMark from '~/components/svg/CheckMark'; -import useLocalize from '~/hooks/useLocalize'; +import { useLocalize } from '~/hooks'; type TCodeProps = { inline: boolean; diff --git a/client/src/components/Artifacts/DownloadArtifact.tsx b/client/src/components/Artifacts/DownloadArtifact.tsx index a4b6f5031c..afced5a37f 100644 --- a/client/src/components/Artifacts/DownloadArtifact.tsx +++ b/client/src/components/Artifacts/DownloadArtifact.tsx @@ -1,9 +1,9 @@ import React, { useState } from 'react'; import { Download } from 'lucide-react'; import type { Artifact } from '~/common'; +import { CheckMark } from '@librechat/client'; import useArtifactProps from '~/hooks/Artifacts/useArtifactProps'; import { useEditorContext } from '~/Providers'; -import { CheckMark } from '~/components/svg'; import { useLocalize } from '~/hooks'; const DownloadArtifact = ({ diff --git a/client/src/components/Artifacts/Mermaid.tsx b/client/src/components/Artifacts/Mermaid.tsx index 551a5a5a78..f7291998a4 100644 --- a/client/src/components/Artifacts/Mermaid.tsx +++ b/client/src/components/Artifacts/Mermaid.tsx @@ -1,8 +1,7 @@ import React, { useEffect, useRef, useState } from 'react'; import mermaid from 'mermaid'; +import { Button } from '@librechat/client'; import { TransformWrapper, TransformComponent, ReactZoomPanPinchRef } from 'react-zoom-pan-pinch'; -// import { Button } from '/components/ui/Button'; // Live component -import { Button } from '~/components/ui/Button'; import { ZoomIn, ZoomOut, RefreshCw } from 'lucide-react'; interface MermaidDiagramProps { diff --git a/client/src/components/Audio/TTS.tsx b/client/src/components/Audio/TTS.tsx index 9343b483d2..0d9351703e 100644 --- a/client/src/components/Audio/TTS.tsx +++ b/client/src/components/Audio/TTS.tsx @@ -2,8 +2,8 @@ import { useEffect } from 'react'; import { useRecoilValue } from 'recoil'; import type { TMessageAudio } from '~/common'; +import { VolumeIcon, VolumeMuteIcon, Spinner } from '@librechat/client'; import { useLocalize, useTTSBrowser, useTTSExternal } from '~/hooks'; -import { VolumeIcon, VolumeMuteIcon, Spinner } from '~/components'; import { logger } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Audio/Voices.tsx b/client/src/components/Audio/Voices.tsx index 985e5e32d8..6064a16624 100644 --- a/client/src/components/Audio/Voices.tsx +++ b/client/src/components/Audio/Voices.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { useRecoilState } from 'recoil'; +import { Dropdown } from '@librechat/client'; import type { Option } from '~/common'; import { useLocalize, useTTSBrowser, useTTSExternal } from '~/hooks'; -import { Dropdown } from '~/components/ui'; import { logger } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Auth/AuthLayout.tsx b/client/src/components/Auth/AuthLayout.tsx index 02b3802917..c49ba2a7da 100644 --- a/client/src/components/Auth/AuthLayout.tsx +++ b/client/src/components/Auth/AuthLayout.tsx @@ -1,9 +1,9 @@ -import { TranslationKeys, useLocalize } from '~/hooks'; +import { ThemeSelector } from '@librechat/client'; import { TStartupConfig } from 'librechat-data-provider'; import { ErrorMessage } from '~/components/Auth/ErrorMessage'; +import { TranslationKeys, useLocalize } from '~/hooks'; import SocialLoginRender from './SocialLoginRender'; import { BlinkAnimation } from './BlinkAnimation'; -import { ThemeSelector } from '~/components'; import { Banner } from '../Banners'; import Footer from './Footer'; diff --git a/client/src/components/Auth/Login.tsx b/client/src/components/Auth/Login.tsx index ee0b87246c..39406e300f 100644 --- a/client/src/components/Auth/Login.tsx +++ b/client/src/components/Auth/Login.tsx @@ -1,10 +1,10 @@ import { useOutletContext, useSearchParams } from 'react-router-dom'; import { useEffect, useState } from 'react'; -import { useAuthContext } from '~/hooks/AuthContext'; +import { OpenIDIcon } from '@librechat/client'; import type { TLoginLayoutContext } from '~/common'; import { ErrorMessage } from '~/components/Auth/ErrorMessage'; import SocialButton from '~/components/Auth/SocialButton'; -import { OpenIDIcon } from '~/components'; +import { useAuthContext } from '~/hooks/AuthContext'; import { getLoginError } from '~/utils'; import { useLocalize } from '~/hooks'; import LoginForm from './LoginForm'; diff --git a/client/src/components/Auth/LoginForm.tsx b/client/src/components/Auth/LoginForm.tsx index c13535db23..c7a469fc2e 100644 --- a/client/src/components/Auth/LoginForm.tsx +++ b/client/src/components/Auth/LoginForm.tsx @@ -1,11 +1,11 @@ -import { useForm } from 'react-hook-form'; import React, { useState, useEffect, useContext } from 'react'; +import { useForm } from 'react-hook-form'; import { Turnstile } from '@marsidev/react-turnstile'; +import { ThemeContext, Spinner, Button } from '@librechat/client'; import type { TLoginUser, TStartupConfig } from 'librechat-data-provider'; import type { TAuthContext } from '~/common'; import { useResendVerificationEmail, useGetStartupConfig } from '~/data-provider'; -import { ThemeContext, useLocalize } from '~/hooks'; -import { Spinner, Button } from '~/components'; +import { useLocalize } from '~/hooks'; type TLoginFormProps = { onSubmit: (data: TLoginUser) => void; diff --git a/client/src/components/Auth/Registration.tsx b/client/src/components/Auth/Registration.tsx index b193cff11c..2e915e0137 100644 --- a/client/src/components/Auth/Registration.tsx +++ b/client/src/components/Auth/Registration.tsx @@ -1,12 +1,12 @@ import { useForm } from 'react-hook-form'; import React, { useContext, useState } from 'react'; import { Turnstile } from '@marsidev/react-turnstile'; +import { ThemeContext, Spinner, Button } from '@librechat/client'; import { useNavigate, useOutletContext, useLocation } from 'react-router-dom'; import { useRegisterUserMutation } from 'librechat-data-provider/react-query'; import type { TRegisterUser, TError } from 'librechat-data-provider'; -import { useLocalize, TranslationKeys, ThemeContext } from '~/hooks'; import type { TLoginLayoutContext } from '~/common'; -import { Spinner, Button } from '~/components'; +import { useLocalize, TranslationKeys } from '~/hooks'; import { ErrorMessage } from './ErrorMessage'; const Registration: React.FC = () => { diff --git a/client/src/components/Auth/RequestPasswordReset.tsx b/client/src/components/Auth/RequestPasswordReset.tsx index c0ef5751ca..9f50a7e42c 100644 --- a/client/src/components/Auth/RequestPasswordReset.tsx +++ b/client/src/components/Auth/RequestPasswordReset.tsx @@ -1,11 +1,11 @@ import { useForm } from 'react-hook-form'; import { useState, ReactNode } from 'react'; +import { Spinner, Button } from '@librechat/client'; import { useOutletContext } from 'react-router-dom'; import { useRequestPasswordResetMutation } from 'librechat-data-provider/react-query'; import type { TRequestPasswordReset, TRequestPasswordResetResponse } from 'librechat-data-provider'; -import type { FC } from 'react'; import type { TLoginLayoutContext } from '~/common'; -import { Spinner, Button } from '~/components'; +import type { FC } from 'react'; import { useLocalize } from '~/hooks'; const BodyTextWrapper: FC<{ children: ReactNode }> = ({ children }) => { diff --git a/client/src/components/Auth/ResetPassword.tsx b/client/src/components/Auth/ResetPassword.tsx index 231c501cb8..2882e1dc53 100644 --- a/client/src/components/Auth/ResetPassword.tsx +++ b/client/src/components/Auth/ResetPassword.tsx @@ -1,10 +1,10 @@ import { useForm } from 'react-hook-form'; +import { Spinner, Button } from '@librechat/client'; import { useOutletContext } from 'react-router-dom'; import { useNavigate, useSearchParams } from 'react-router-dom'; import { useResetPasswordMutation } from 'librechat-data-provider/react-query'; import type { TResetPassword } from 'librechat-data-provider'; import type { TLoginLayoutContext } from '~/common'; -import { Spinner, Button } from '~/components'; import { useLocalize } from '~/hooks'; function ResetPassword() { diff --git a/client/src/components/Auth/SocialLoginRender.tsx b/client/src/components/Auth/SocialLoginRender.tsx index 55a8ade6ba..ad76354a53 100644 --- a/client/src/components/Auth/SocialLoginRender.tsx +++ b/client/src/components/Auth/SocialLoginRender.tsx @@ -6,7 +6,7 @@ import { DiscordIcon, AppleIcon, SamlIcon, -} from '~/components'; +} from '@librechat/client'; import SocialButton from './SocialButton'; diff --git a/client/src/components/Auth/TwoFactorScreen.tsx b/client/src/components/Auth/TwoFactorScreen.tsx index 04f89d7cea..11eab660c7 100644 --- a/client/src/components/Auth/TwoFactorScreen.tsx +++ b/client/src/components/Auth/TwoFactorScreen.tsx @@ -1,10 +1,10 @@ import React, { useState, useCallback } from 'react'; import { useSearchParams } from 'react-router-dom'; +import { useToastContext } from '@librechat/client'; import { useForm, Controller } from 'react-hook-form'; import { REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS } from 'input-otp'; -import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label } from '~/components'; +import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label } from '@librechat/client'; import { useVerifyTwoFactorTempMutation } from '~/data-provider'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; interface VerifyPayload { diff --git a/client/src/components/Auth/VerifyEmail.tsx b/client/src/components/Auth/VerifyEmail.tsx index 9c143224b2..fb5c787196 100644 --- a/client/src/components/Auth/VerifyEmail.tsx +++ b/client/src/components/Auth/VerifyEmail.tsx @@ -1,8 +1,7 @@ -import { useSearchParams, useNavigate } from 'react-router-dom'; import { useState, useEffect, useMemo, useCallback } from 'react'; +import { Spinner, ThemeSelector } from '@librechat/client'; +import { useSearchParams, useNavigate } from 'react-router-dom'; import { useVerifyEmailMutation, useResendVerificationEmail } from '~/data-provider'; -import { ThemeSelector } from '~/components/ui'; -import { Spinner } from '~/components/svg'; import { useLocalize } from '~/hooks'; function RequestPasswordReset() { diff --git a/client/src/components/Bookmarks/BookmarkEditDialog.tsx b/client/src/components/Bookmarks/BookmarkEditDialog.tsx index ae81c3b81e..7c0b494d7d 100644 --- a/client/src/components/Bookmarks/BookmarkEditDialog.tsx +++ b/client/src/components/Bookmarks/BookmarkEditDialog.tsx @@ -1,10 +1,8 @@ import React, { useRef, Dispatch, SetStateAction } from 'react'; import { TConversationTag } from 'librechat-data-provider'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; +import { OGDialogTemplate, OGDialog, Button, Spinner, useToastContext } from '@librechat/client'; import { useConversationTagMutation } from '~/data-provider'; -import { OGDialog, Button, Spinner } from '~/components'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; import BookmarkForm from './BookmarkForm'; import { useLocalize } from '~/hooks'; import { logger } from '~/utils'; diff --git a/client/src/components/Bookmarks/BookmarkForm.tsx b/client/src/components/Bookmarks/BookmarkForm.tsx index c866216be0..857eacb10c 100644 --- a/client/src/components/Bookmarks/BookmarkForm.tsx +++ b/client/src/components/Bookmarks/BookmarkForm.tsx @@ -2,11 +2,10 @@ import React, { useEffect } from 'react'; import { QueryKeys } from 'librechat-data-provider'; import { Controller, useForm } from 'react-hook-form'; import { useQueryClient } from '@tanstack/react-query'; +import { Checkbox, Label, TextareaAutosize, Input, useToastContext } from '@librechat/client'; import type { TConversationTag, TConversationTagRequest } from 'librechat-data-provider'; -import { Checkbox, Label, TextareaAutosize, Input } from '~/components'; import { useBookmarkContext } from '~/Providers/BookmarkContext'; import { useConversationTagMutation } from '~/data-provider'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; import { cn, logger } from '~/utils'; diff --git a/client/src/components/Bookmarks/BookmarkItem.tsx b/client/src/components/Bookmarks/BookmarkItem.tsx index 60698a3165..b12a5b5ac5 100644 --- a/client/src/components/Bookmarks/BookmarkItem.tsx +++ b/client/src/components/Bookmarks/BookmarkItem.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; +import { Spinner } from '@librechat/client'; import { MenuItem } from '@headlessui/react'; import { BookmarkFilledIcon, BookmarkIcon } from '@radix-ui/react-icons'; import type { FC } from 'react'; -import { Spinner } from '~/components/svg'; type MenuItemProps = { tag: string | React.ReactNode; diff --git a/client/src/components/Bookmarks/DeleteBookmarkButton.tsx b/client/src/components/Bookmarks/DeleteBookmarkButton.tsx index 911659de74..e63feb7621 100644 --- a/client/src/components/Bookmarks/DeleteBookmarkButton.tsx +++ b/client/src/components/Bookmarks/DeleteBookmarkButton.tsx @@ -1,10 +1,17 @@ import { useCallback, useState } from 'react'; +import { + Button, + TrashIcon, + Label, + OGDialog, + OGDialogTrigger, + TooltipAnchor, + OGDialogTemplate, + useToastContext, +} from '@librechat/client'; import type { FC } from 'react'; -import { Button, TrashIcon, Label, OGDialog, OGDialogTrigger, TooltipAnchor } from '~/components'; import { useDeleteConversationTagMutation } from '~/data-provider'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; const DeleteBookmarkButton: FC<{ diff --git a/client/src/components/Bookmarks/EditBookmarkButton.tsx b/client/src/components/Bookmarks/EditBookmarkButton.tsx index 6e976a53cf..7c4355be81 100644 --- a/client/src/components/Bookmarks/EditBookmarkButton.tsx +++ b/client/src/components/Bookmarks/EditBookmarkButton.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; -import type { FC } from 'react'; +import { TooltipAnchor, OGDialogTrigger, EditIcon, Button } from '@librechat/client'; import type { TConversationTag } from 'librechat-data-provider'; -import { TooltipAnchor, OGDialogTrigger, EditIcon, Button } from '~/components'; +import type { FC } from 'react'; import BookmarkEditDialog from './BookmarkEditDialog'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Chat/AddMultiConvo.tsx b/client/src/components/Chat/AddMultiConvo.tsx index 79131dfdb0..26395c7a6f 100644 --- a/client/src/components/Chat/AddMultiConvo.tsx +++ b/client/src/components/Chat/AddMultiConvo.tsx @@ -1,8 +1,8 @@ import { PlusCircle } from 'lucide-react'; +import { TooltipAnchor } from '@librechat/client'; import { isAssistantsEndpoint } from 'librechat-data-provider'; import type { TConversation } from 'librechat-data-provider'; import { useChatContext, useAddedChatContext } from '~/Providers'; -import { TooltipAnchor } from '~/components'; import { mainTextareaId } from '~/common'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Chat/ChatView.tsx b/client/src/components/Chat/ChatView.tsx index a554c5f7d1..f488d76b27 100644 --- a/client/src/components/Chat/ChatView.tsx +++ b/client/src/components/Chat/ChatView.tsx @@ -1,6 +1,7 @@ import { memo, useCallback } from 'react'; import { useRecoilValue } from 'recoil'; import { useForm } from 'react-hook-form'; +import { Spinner } from '@librechat/client'; import { useParams } from 'react-router-dom'; import { Constants } from 'librechat-data-provider'; import type { TMessage } from 'librechat-data-provider'; @@ -10,7 +11,6 @@ import { useChatHelpers, useAddedResponse, useSSE } from '~/hooks'; import ConversationStarters from './Input/ConversationStarters'; import { useGetMessagesByConvoId } from '~/data-provider'; import MessagesView from './Messages/MessagesView'; -import { Spinner } from '~/components/svg'; import Presentation from './Presentation'; import { buildTree, cn } from '~/utils'; import ChatForm from './Input/ChatForm'; diff --git a/client/src/components/Chat/ExportAndShareMenu.tsx b/client/src/components/Chat/ExportAndShareMenu.tsx index aa9ee8be9b..207efcbc8d 100644 --- a/client/src/components/Chat/ExportAndShareMenu.tsx +++ b/client/src/components/Chat/ExportAndShareMenu.tsx @@ -2,11 +2,11 @@ import { useState, useId, useRef } from 'react'; import { useRecoilValue } from 'recoil'; import * as Ariakit from '@ariakit/react'; import { Upload, Share2 } from 'lucide-react'; +import { DropdownPopup, TooltipAnchor, useMediaQuery } from '@librechat/client'; import type * as t from '~/common'; import ExportModal from '~/components/Nav/ExportConversation/ExportModal'; import { ShareButton } from '~/components/Conversations/ConvoOptions'; -import { DropdownPopup, TooltipAnchor } from '~/components/ui'; -import { useMediaQuery, useLocalize } from '~/hooks'; +import { useLocalize } from '~/hooks'; import store from '~/store'; export default function ExportAndShareMenu({ diff --git a/client/src/components/Chat/Header.tsx b/client/src/components/Chat/Header.tsx index 93a265f4a2..d252e58df3 100644 --- a/client/src/components/Chat/Header.tsx +++ b/client/src/components/Chat/Header.tsx @@ -1,4 +1,5 @@ import { useMemo } from 'react'; +import { useMediaQuery } from '@librechat/client'; import { useOutletContext } from 'react-router-dom'; import { getConfigDefaults, PermissionTypes, Permissions } from 'librechat-data-provider'; import type { ContextType } from '~/common'; @@ -6,10 +7,10 @@ import ModelSelector from './Menus/Endpoints/ModelSelector'; import { PresetsMenu, HeaderNewChat, OpenSidebar } from './Menus'; import { useGetStartupConfig } from '~/data-provider'; import ExportAndShareMenu from './ExportAndShareMenu'; -import { useMediaQuery, useHasAccess } from '~/hooks'; import BookmarkMenu from './Menus/BookmarkMenu'; import { TemporaryChat } from './TemporaryChat'; import AddMultiConvo from './AddMultiConvo'; +import { useHasAccess } from '~/hooks'; const defaultInterface = getConfigDefaults().interface; diff --git a/client/src/components/Chat/Input/Artifacts.tsx b/client/src/components/Chat/Input/Artifacts.tsx index eb2c49572f..493f126e3c 100644 --- a/client/src/components/Chat/Input/Artifacts.tsx +++ b/client/src/components/Chat/Input/Artifacts.tsx @@ -1,8 +1,8 @@ import React, { memo, useState, useCallback, useMemo } from 'react'; import * as Ariakit from '@ariakit/react'; +import { CheckboxButton } from '@librechat/client'; import { ArtifactModes } from 'librechat-data-provider'; import { WandSparkles, ChevronDown } from 'lucide-react'; -import CheckboxButton from '~/components/ui/CheckboxButton'; import { useBadgeRowContext } from '~/Providers'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/ArtifactsSubMenu.tsx b/client/src/components/Chat/Input/ArtifactsSubMenu.tsx index 944ecb66c7..654c129fba 100644 --- a/client/src/components/Chat/Input/ArtifactsSubMenu.tsx +++ b/client/src/components/Chat/Input/ArtifactsSubMenu.tsx @@ -1,8 +1,8 @@ import React from 'react'; import * as Ariakit from '@ariakit/react'; +import { PinIcon } from '@librechat/client'; import { ChevronRight, WandSparkles } from 'lucide-react'; import { ArtifactModes } from 'librechat-data-provider'; -import { PinIcon } from '~/components/svg'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/AudioRecorder.tsx b/client/src/components/Chat/Input/AudioRecorder.tsx index eae7c266cf..ae4252f4f9 100644 --- a/client/src/components/Chat/Input/AudioRecorder.tsx +++ b/client/src/components/Chat/Input/AudioRecorder.tsx @@ -1,8 +1,7 @@ import { useCallback } from 'react'; -import { useChatFormContext, useToastContext } from '~/Providers'; -import { ListeningIcon, Spinner } from '~/components/svg'; +import { useToastContext, TooltipAnchor, ListeningIcon, Spinner } from '@librechat/client'; import { useLocalize, useSpeechToText } from '~/hooks'; -import { TooltipAnchor } from '~/components/ui'; +import { useChatFormContext } from '~/Providers'; import { globalAudioId } from '~/common'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/BadgeRow.tsx b/client/src/components/Chat/Input/BadgeRow.tsx index d77fc5426c..5036dcd5e4 100644 --- a/client/src/components/Chat/Input/BadgeRow.tsx +++ b/client/src/components/Chat/Input/BadgeRow.tsx @@ -8,6 +8,7 @@ import React, { useReducer, useCallback, } from 'react'; +import { Badge } from '@librechat/client'; import { useRecoilValue, useRecoilCallback } from 'recoil'; import type { LucideIcon } from 'lucide-react'; import CodeInterpreter from './CodeInterpreter'; @@ -15,7 +16,6 @@ import { BadgeRowProvider } from '~/Providers'; import ToolsDropdown from './ToolsDropdown'; import type { BadgeItem } from '~/common'; import { useChatBadges } from '~/hooks'; -import { Badge } from '~/components/ui'; import ToolDialogs from './ToolDialogs'; import FileSearch from './FileSearch'; import Artifacts from './Artifacts'; diff --git a/client/src/components/Chat/Input/ChatForm.tsx b/client/src/components/Chat/Input/ChatForm.tsx index 0ca6448094..50fa318b3e 100644 --- a/client/src/components/Chat/Input/ChatForm.tsx +++ b/client/src/components/Chat/Input/ChatForm.tsx @@ -1,5 +1,6 @@ import { memo, useRef, useMemo, useEffect, useState, useCallback } from 'react'; import { useWatch } from 'react-hook-form'; +import { TextareaAutosize } from '@librechat/client'; import { useRecoilState, useRecoilValue } from 'recoil'; import { Constants, isAssistantsEndpoint, isAgentsEndpoint } from 'librechat-data-provider'; import { @@ -20,7 +21,6 @@ import { import { mainTextareaId, BadgeItem } from '~/common'; import AttachFileChat from './Files/AttachFileChat'; import FileFormChat from './Files/FileFormChat'; -import { TextareaAutosize } from '~/components'; import { cn, removeFocusRings } from '~/utils'; import TextareaHeader from './TextareaHeader'; import PromptsCommand from './PromptsCommand'; diff --git a/client/src/components/Chat/Input/CircleRender.tsx b/client/src/components/Chat/Input/CircleRender.tsx index 88b7947633..5b46f65744 100644 --- a/client/src/components/Chat/Input/CircleRender.tsx +++ b/client/src/components/Chat/Input/CircleRender.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { CircleIcon, CircleDotsIcon } from '~/components/svg'; import { ECallState } from 'librechat-data-provider'; +import { CircleIcon, CircleDotsIcon } from '@librechat/client'; const CircleRender = ({ rmsLevel, isCameraOn, state }) => { const getIconComponent = (state) => { diff --git a/client/src/components/Chat/Input/CodeInterpreter.tsx b/client/src/components/Chat/Input/CodeInterpreter.tsx index f2d9760cca..6805c3300c 100644 --- a/client/src/components/Chat/Input/CodeInterpreter.tsx +++ b/client/src/components/Chat/Input/CodeInterpreter.tsx @@ -1,7 +1,7 @@ import React, { memo } from 'react'; import { TerminalSquareIcon } from 'lucide-react'; +import { CheckboxButton } from '@librechat/client'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; -import CheckboxButton from '~/components/ui/CheckboxButton'; import { useLocalize, useHasAccess } from '~/hooks'; import { useBadgeRowContext } from '~/Providers'; diff --git a/client/src/components/Chat/Input/CollapseChat.tsx b/client/src/components/Chat/Input/CollapseChat.tsx index 1bec592177..1ae0caf794 100644 --- a/client/src/components/Chat/Input/CollapseChat.tsx +++ b/client/src/components/Chat/Input/CollapseChat.tsx @@ -1,6 +1,6 @@ import React from 'react'; +import { TooltipAnchor } from '@librechat/client'; import { ChevronDown, ChevronUp } from 'lucide-react'; -import { TooltipAnchor } from '~/components/ui'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/EditBadges.tsx b/client/src/components/Chat/Input/EditBadges.tsx index 0c9c0b5b22..821fdd4b31 100644 --- a/client/src/components/Chat/Input/EditBadges.tsx +++ b/client/src/components/Chat/Input/EditBadges.tsx @@ -1,9 +1,9 @@ import React, { useCallback } from 'react'; import { Edit3, Check, X } from 'lucide-react'; +import { Button, Badge } from '@librechat/client'; import type { LucideIcon } from 'lucide-react'; import type { BadgeItem } from '~/common'; import { useChatBadges, useLocalize } from '~/hooks'; -import { Button, Badge } from '~/components/ui'; interface EditBadgesProps { isEditingChatBadges: boolean; diff --git a/client/src/components/Chat/Input/FileSearch.tsx b/client/src/components/Chat/Input/FileSearch.tsx index 4de6c35b6b..b5106dd054 100644 --- a/client/src/components/Chat/Input/FileSearch.tsx +++ b/client/src/components/Chat/Input/FileSearch.tsx @@ -1,9 +1,8 @@ import React, { memo } from 'react'; +import { CheckboxButton, VectorIcon } from '@librechat/client'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; -import CheckboxButton from '~/components/ui/CheckboxButton'; import { useLocalize, useHasAccess } from '~/hooks'; import { useBadgeRowContext } from '~/Providers'; -import { VectorIcon } from '~/components/svg'; function FileSearch() { const localize = useLocalize(); diff --git a/client/src/components/Chat/Input/Files/AttachFile.tsx b/client/src/components/Chat/Input/Files/AttachFile.tsx index fe8c03c80a..c896109abb 100644 --- a/client/src/components/Chat/Input/Files/AttachFile.tsx +++ b/client/src/components/Chat/Input/Files/AttachFile.tsx @@ -1,5 +1,5 @@ import React, { useRef } from 'react'; -import { FileUpload, TooltipAnchor, AttachmentIcon } from '~/components'; +import { FileUpload, TooltipAnchor, AttachmentIcon } from '@librechat/client'; import { useLocalize, useFileHandling } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/Files/AttachFileMenu.tsx b/client/src/components/Chat/Input/Files/AttachFileMenu.tsx index 9fe2988606..5e42dd063a 100644 --- a/client/src/components/Chat/Input/Files/AttachFileMenu.tsx +++ b/client/src/components/Chat/Input/Files/AttachFileMenu.tsx @@ -1,11 +1,11 @@ -import { useSetRecoilState } from 'recoil'; -import * as Ariakit from '@ariakit/react'; import React, { useRef, useState, useMemo } from 'react'; +import * as Ariakit from '@ariakit/react'; +import { useSetRecoilState } from 'recoil'; import { FileSearch, ImageUpIcon, TerminalSquareIcon, FileType2Icon } from 'lucide-react'; +import { FileUpload, TooltipAnchor, DropdownPopup, AttachmentIcon } from '@librechat/client'; import { EToolResources, EModelEndpoint, defaultAgentCapabilities } from 'librechat-data-provider'; import type { EndpointFileConfig } from 'librechat-data-provider'; import { useLocalize, useGetAgentsConfig, useFileHandling, useAgentCapabilities } from '~/hooks'; -import { FileUpload, TooltipAnchor, DropdownPopup, AttachmentIcon } from '~/components'; import { ephemeralAgentByConvoId } from '~/store'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/Files/DragDropModal.tsx b/client/src/components/Chat/Input/Files/DragDropModal.tsx index f80af70def..c3b337b42d 100644 --- a/client/src/components/Chat/Input/Files/DragDropModal.tsx +++ b/client/src/components/Chat/Input/Files/DragDropModal.tsx @@ -1,8 +1,8 @@ import React, { useMemo } from 'react'; +import { OGDialog, OGDialogTemplate } from '@librechat/client'; import { ImageUpIcon, FileSearch, TerminalSquareIcon, FileType2Icon } from 'lucide-react'; import { EToolResources, defaultAgentCapabilities } from 'librechat-data-provider'; import { useLocalize, useGetAgentsConfig, useAgentCapabilities } from '~/hooks'; -import { OGDialog, OGDialogTemplate } from '~/components/ui'; interface DragDropModalProps { onOptionSelect: (option: EToolResources | undefined) => void; diff --git a/client/src/components/Chat/Input/Files/FilePreview.tsx b/client/src/components/Chat/Input/Files/FilePreview.tsx index 400834a5b5..6000922786 100644 --- a/client/src/components/Chat/Input/Files/FilePreview.tsx +++ b/client/src/components/Chat/Input/Files/FilePreview.tsx @@ -1,7 +1,7 @@ +import { Spinner } from '@librechat/client'; import type { TFile } from 'librechat-data-provider'; import type { ExtendedFile } from '~/common'; -import FileIcon from '~/components/svg/Files/FileIcon'; -import { Spinner } from '~/components'; +import { FileIcon } from '~/components/svg'; import SourceIcon from './SourceIcon'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/Files/FileRow.tsx b/client/src/components/Chat/Input/Files/FileRow.tsx index 67d687eefd..47da77bbf9 100644 --- a/client/src/components/Chat/Input/Files/FileRow.tsx +++ b/client/src/components/Chat/Input/Files/FileRow.tsx @@ -1,11 +1,11 @@ import { useEffect } from 'react'; +import { useToastContext } from '@librechat/client'; import { EToolResources } from 'librechat-data-provider'; import type { ExtendedFile } from '~/common'; import { useDeleteFilesMutation } from '~/data-provider'; -import { useToastContext } from '~/Providers'; -import { useLocalize } from '~/hooks'; import { useFileDeletion } from '~/hooks/Files'; import FileContainer from './FileContainer'; +import { useLocalize } from '~/hooks'; import { logger } from '~/utils'; import Image from './Image'; diff --git a/client/src/components/Chat/Input/Files/FilesView.tsx b/client/src/components/Chat/Input/Files/FilesView.tsx index afffa34c19..13a378b93d 100644 --- a/client/src/components/Chat/Input/Files/FilesView.tsx +++ b/client/src/components/Chat/Input/Files/FilesView.tsx @@ -1,6 +1,6 @@ import { FileSources, FileContext } from 'librechat-data-provider'; import type { TFile } from 'librechat-data-provider'; -import { OGDialog, OGDialogContent, OGDialogHeader, OGDialogTitle } from '~/components'; +import { OGDialog, OGDialogContent, OGDialogHeader, OGDialogTitle } from '@librechat/client'; import { useGetFiles } from '~/data-provider'; import { DataTable, columns } from './Table'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Chat/Input/Files/ImagePreview.tsx b/client/src/components/Chat/Input/Files/ImagePreview.tsx index fe761da862..37d4e79008 100644 --- a/client/src/components/Chat/Input/Files/ImagePreview.tsx +++ b/client/src/components/Chat/Input/Files/ImagePreview.tsx @@ -1,7 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; import { Maximize2 } from 'lucide-react'; -import { OGDialog, OGDialogContent } from '~/components/ui'; import { FileSources } from 'librechat-data-provider'; +import { OGDialog, OGDialogContent } from '@librechat/client'; import ProgressCircle from './ProgressCircle'; import SourceIcon from './SourceIcon'; import { cn } from '~/utils'; @@ -93,9 +93,9 @@ const ImagePreview = ({ const style: styleProps = imageUrl ? { - ...baseStyle, - backgroundImage: `url(${imageUrl})`, - } + ...baseStyle, + backgroundImage: `url(${imageUrl})`, + } : baseStyle; if (typeof style.backgroundImage !== 'string' || style.backgroundImage.length === 0) { diff --git a/client/src/components/Chat/Input/Files/Table/Columns.tsx b/client/src/components/Chat/Input/Files/Table/Columns.tsx index bc60de361f..fb0eccee67 100644 --- a/client/src/components/Chat/Input/Files/Table/Columns.tsx +++ b/client/src/components/Chat/Input/Files/Table/Columns.tsx @@ -1,14 +1,19 @@ /* eslint-disable react-hooks/rules-of-hooks */ - import { ArrowUpDown, Database } from 'lucide-react'; import { FileSources, FileContext } from 'librechat-data-provider'; +import { + Button, + Checkbox, + OpenAIMinimalIcon, + AzureMinimalIcon, + useMediaQuery, +} from '@librechat/client'; import type { ColumnDef } from '@tanstack/react-table'; import type { TFile } from 'librechat-data-provider'; -import { Button, Checkbox, OpenAIMinimalIcon, AzureMinimalIcon } from '~/components'; import ImagePreview from '~/components/Chat/Input/Files/ImagePreview'; import FilePreview from '~/components/Chat/Input/Files/FilePreview'; +import { TranslationKeys, useLocalize } from '~/hooks'; import { SortFilterHeader } from './SortFilterHeader'; -import { TranslationKeys, useLocalize, useMediaQuery } from '~/hooks'; import { formatDate, getFileType } from '~/utils'; const contextMap: Record = { diff --git a/client/src/components/Chat/Input/Files/Table/DataTable.tsx b/client/src/components/Chat/Input/Files/Table/DataTable.tsx index c8c3190bcb..ffb3e2825b 100644 --- a/client/src/components/Chat/Input/Files/Table/DataTable.tsx +++ b/client/src/components/Chat/Input/Files/Table/DataTable.tsx @@ -16,8 +16,6 @@ import type { ColumnFiltersState, } from '@tanstack/react-table'; import { FileContext } from 'librechat-data-provider'; -import type { AugmentedColumnDef } from '~/common'; -import type { TFile } from 'librechat-data-provider'; import { Button, Input, @@ -31,11 +29,14 @@ import { DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuTrigger, -} from '~/components/ui'; + TrashIcon, + Spinner, + useMediaQuery, +} from '@librechat/client'; +import type { TFile } from 'librechat-data-provider'; +import type { AugmentedColumnDef } from '~/common'; import { useDeleteFilesFromTable } from '~/hooks/Files'; -import { TrashIcon, Spinner } from '~/components/svg'; -import useLocalize from '~/hooks/useLocalize'; -import { useMediaQuery } from '~/hooks'; +import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Chat/Input/Files/Table/SortFilterHeader.tsx b/client/src/components/Chat/Input/Files/Table/SortFilterHeader.tsx index bb9247c15a..d275044eef 100644 --- a/client/src/components/Chat/Input/Files/Table/SortFilterHeader.tsx +++ b/client/src/components/Chat/Input/Files/Table/SortFilterHeader.tsx @@ -2,13 +2,13 @@ import { Column } from '@tanstack/react-table'; import { ListFilter, FilterX } from 'lucide-react'; import { ArrowDownIcon, ArrowUpIcon, CaretSortIcon } from '@radix-ui/react-icons'; import { + Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from '~/components/ui/DropdownMenu'; -import { Button } from '~/components/ui/Button'; +} from '@librechat/client'; import { useLocalize, TranslationKeys } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/Files/Table/TemplateTable.tsx b/client/src/components/Chat/Input/Files/Table/TemplateTable.tsx index dc288c73a9..9f6b78f91c 100644 --- a/client/src/components/Chat/Input/Files/Table/TemplateTable.tsx +++ b/client/src/components/Chat/Input/Files/Table/TemplateTable.tsx @@ -1,4 +1,4 @@ -import { DotsIcon, TrashIcon } from '~/components/svg'; +import { DotsIcon, TrashIcon } from '@librechat/client'; export default function Template() { return ( diff --git a/client/src/components/Chat/Input/HeaderOptions.tsx b/client/src/components/Chat/Input/HeaderOptions.tsx index ac4b039768..5ba2639412 100644 --- a/client/src/components/Chat/Input/HeaderOptions.tsx +++ b/client/src/components/Chat/Input/HeaderOptions.tsx @@ -2,12 +2,12 @@ import { useRecoilState } from 'recoil'; import { Settings2 } from 'lucide-react'; import { useState, useEffect, useMemo } from 'react'; import { Root, Anchor } from '@radix-ui/react-popover'; -import { EModelEndpoint, isParamEndpoint, tConvoUpdateSchema } from 'librechat-data-provider'; +import { PluginStoreDialog, TooltipAnchor } from '@librechat/client'; import { useUserKeyQuery } from 'librechat-data-provider/react-query'; +import { EModelEndpoint, isParamEndpoint, tConvoUpdateSchema } from 'librechat-data-provider'; import type { TPreset, TInterfaceConfig } from 'librechat-data-provider'; import { EndpointSettings, SaveAsPresetDialog, AlternativeSettings } from '~/components/Endpoints'; -import { useSetIndexOptions, useMediaQuery, useLocalize } from '~/hooks'; -import { PluginStoreDialog, TooltipAnchor } from '~/components'; +import { useSetIndexOptions, useLocalize } from '~/hooks'; import { useGetEndpointsQuery } from '~/data-provider'; import OptionsPopover from './OptionsPopover'; import PopoverButtons from './PopoverButtons'; diff --git a/client/src/components/Chat/Input/MCPConfigDialog.tsx b/client/src/components/Chat/Input/MCPConfigDialog.tsx index ed0adf92d1..5cb2170869 100644 --- a/client/src/components/Chat/Input/MCPConfigDialog.tsx +++ b/client/src/components/Chat/Input/MCPConfigDialog.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from 'react'; import { useForm, Controller } from 'react-hook-form'; -import { Button, Input, Label, OGDialog, OGDialogTemplate } from '~/components'; +import { Button, Input, Label, OGDialog, OGDialogTemplate } from '@librechat/client'; import { useLocalize } from '~/hooks'; export interface ConfigFieldDetail { diff --git a/client/src/components/Chat/Input/MCPSubMenu.tsx b/client/src/components/Chat/Input/MCPSubMenu.tsx index 8f271c0b6c..2caca7953d 100644 --- a/client/src/components/Chat/Input/MCPSubMenu.tsx +++ b/client/src/components/Chat/Input/MCPSubMenu.tsx @@ -1,10 +1,10 @@ import React from 'react'; import * as Ariakit from '@ariakit/react'; import { ChevronRight } from 'lucide-react'; -import { PinIcon, MCPIcon } from '~/components/svg'; -import MCPConfigDialog from '~/components/ui/MCP/MCPConfigDialog'; +import { PinIcon, MCPIcon } from '@librechat/client'; import MCPServerStatusIcon from '~/components/ui/MCP/MCPServerStatusIcon'; import { useMCPServerManager } from '~/hooks/MCP/useMCPServerManager'; +import MCPConfigDialog from '~/components/ui/MCP/MCPConfigDialog'; import { cn } from '~/utils'; interface MCPSubMenuProps { diff --git a/client/src/components/Chat/Input/Mention.tsx b/client/src/components/Chat/Input/Mention.tsx index 067383711e..e3472a2aa0 100644 --- a/client/src/components/Chat/Input/Mention.tsx +++ b/client/src/components/Chat/Input/Mention.tsx @@ -1,12 +1,13 @@ import { useState, useRef, useEffect } from 'react'; +import { useCombobox } from '@librechat/client'; import { AutoSizer, List } from 'react-virtualized'; import { EModelEndpoint } from 'librechat-data-provider'; -import type { SetterOrUpdater } from 'recoil'; import type { MentionOption, ConvoGenerator } from '~/common'; +import type { SetterOrUpdater } from 'recoil'; import useSelectMention from '~/hooks/Input/useSelectMention'; +import { useLocalize, TranslationKeys } from '~/hooks'; import { useAssistantsMapContext } from '~/Providers'; import useMentions from '~/hooks/Input/useMentions'; -import { useLocalize, useCombobox, TranslationKeys } from '~/hooks'; import { removeCharIfLast } from '~/utils'; import MentionItem from './MentionItem'; diff --git a/client/src/components/Chat/Input/OptionsPopover.tsx b/client/src/components/Chat/Input/OptionsPopover.tsx index a49d31f334..f3102bd27c 100644 --- a/client/src/components/Chat/Input/OptionsPopover.tsx +++ b/client/src/components/Chat/Input/OptionsPopover.tsx @@ -1,11 +1,10 @@ import { useRef } from 'react'; import { Save } from 'lucide-react'; import { Portal, Content } from '@radix-ui/react-popover'; +import { Button, CrossIcon, useOnClickOutside } from '@librechat/client'; import type { ReactNode } from 'react'; -import { useLocalize, useOnClickOutside } from '~/hooks'; import { cn, removeFocusOutlines } from '~/utils'; -import { CrossIcon } from '~/components/svg'; -import { Button } from '~/components/ui'; +import { useLocalize } from '~/hooks'; type TOptionsPopoverProps = { children: ReactNode; diff --git a/client/src/components/Chat/Input/PopoverButtons.tsx b/client/src/components/Chat/Input/PopoverButtons.tsx index fa2211ecc6..31bb6ee2f6 100644 --- a/client/src/components/Chat/Input/PopoverButtons.tsx +++ b/client/src/components/Chat/Input/PopoverButtons.tsx @@ -1,9 +1,8 @@ import { useRecoilState } from 'recoil'; import { EModelEndpoint, SettingsViews } from 'librechat-data-provider'; +import { Button, MessagesSquared, GPTIcon, AssistantIcon, DataIcon } from '@librechat/client'; import type { ReactNode } from 'react'; -import { MessagesSquared, GPTIcon, AssistantIcon, DataIcon } from '~/components/svg'; import { useChatContext } from '~/Providers'; -import { Button } from '~/components/ui'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils/'; import store from '~/store'; diff --git a/client/src/components/Chat/Input/PromptsCommand.tsx b/client/src/components/Chat/Input/PromptsCommand.tsx index 835c7cd31d..0756be17e8 100644 --- a/client/src/components/Chat/Input/PromptsCommand.tsx +++ b/client/src/components/Chat/Input/PromptsCommand.tsx @@ -1,5 +1,6 @@ import { useState, useRef, useEffect, useMemo, memo, useCallback } from 'react'; import { AutoSizer, List } from 'react-virtualized'; +import { Spinner, useCombobox } from '@librechat/client'; import { useSetRecoilState, useRecoilValue } from 'recoil'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; import type { TPromptGroup } from 'librechat-data-provider'; @@ -7,9 +8,8 @@ import type { PromptOption } from '~/common'; import { removeCharIfLast, mapPromptGroups, detectVariables } from '~/utils'; import VariableDialog from '~/components/Prompts/Groups/VariableDialog'; import CategoryIcon from '~/components/Prompts/Groups/CategoryIcon'; -import { useLocalize, useCombobox, useHasAccess } from '~/hooks'; +import { useLocalize, useHasAccess } from '~/hooks'; import { useGetAllPromptGroups } from '~/data-provider'; -import { Spinner } from '~/components/svg'; import MentionItem from './MentionItem'; import store from '~/store'; diff --git a/client/src/components/Chat/Input/SendButton.tsx b/client/src/components/Chat/Input/SendButton.tsx index 52a2b4bed4..14c21f0586 100644 --- a/client/src/components/Chat/Input/SendButton.tsx +++ b/client/src/components/Chat/Input/SendButton.tsx @@ -1,8 +1,7 @@ import React, { forwardRef } from 'react'; import { useWatch } from 'react-hook-form'; import type { Control } from 'react-hook-form'; -import { TooltipAnchor } from '~/components/ui'; -import { SendIcon } from '~/components/svg'; +import { SendIcon, TooltipAnchor } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/StopButton.tsx b/client/src/components/Chat/Input/StopButton.tsx index 6c785811cd..4a058777f1 100644 --- a/client/src/components/Chat/Input/StopButton.tsx +++ b/client/src/components/Chat/Input/StopButton.tsx @@ -1,4 +1,4 @@ -import { TooltipAnchor } from '~/components/ui'; +import { TooltipAnchor } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/ToolsDropdown.tsx b/client/src/components/Chat/Input/ToolsDropdown.tsx index 159fe455d6..6116fcc6bb 100644 --- a/client/src/components/Chat/Input/ToolsDropdown.tsx +++ b/client/src/components/Chat/Input/ToolsDropdown.tsx @@ -1,6 +1,7 @@ import React, { useState, useMemo, useCallback } from 'react'; import * as Ariakit from '@ariakit/react'; import { Globe, Settings, Settings2, TerminalSquareIcon } from 'lucide-react'; +import { TooltipAnchor, DropdownPopup, PinIcon, VectorIcon } from '@librechat/client'; import type { MenuItemProps } from '~/common'; import { AuthType, @@ -9,11 +10,9 @@ import { PermissionTypes, defaultAgentCapabilities, } from 'librechat-data-provider'; -import { TooltipAnchor, DropdownPopup } from '~/components'; import { useLocalize, useHasAccess, useAgentCapabilities } from '~/hooks'; import ArtifactsSubMenu from '~/components/Chat/Input/ArtifactsSubMenu'; import MCPSubMenu from '~/components/Chat/Input/MCPSubMenu'; -import { PinIcon, VectorIcon } from '~/components/svg'; import { useBadgeRowContext } from '~/Providers'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Input/WebSearch.tsx b/client/src/components/Chat/Input/WebSearch.tsx index f5139509fc..a6ca908411 100644 --- a/client/src/components/Chat/Input/WebSearch.tsx +++ b/client/src/components/Chat/Input/WebSearch.tsx @@ -1,7 +1,7 @@ import React, { memo } from 'react'; import { Globe } from 'lucide-react'; +import { CheckboxButton } from '@librechat/client'; import { Permissions, PermissionTypes } from 'librechat-data-provider'; -import CheckboxButton from '~/components/ui/CheckboxButton'; import { useLocalize, useHasAccess } from '~/hooks'; import { useBadgeRowContext } from '~/Providers'; diff --git a/client/src/components/Chat/Landing.tsx b/client/src/components/Chat/Landing.tsx index 655fa67401..15e53abaf0 100644 --- a/client/src/components/Chat/Landing.tsx +++ b/client/src/components/Chat/Landing.tsx @@ -1,9 +1,9 @@ import { useMemo, useCallback, useState, useEffect, useRef } from 'react'; import { easings } from '@react-spring/web'; import { EModelEndpoint } from 'librechat-data-provider'; +import { BirthdayIcon, TooltipAnchor, SplitText } from '@librechat/client'; import { useChatContext, useAgentsMapContext, useAssistantsMapContext } from '~/Providers'; import { useGetEndpointsQuery, useGetStartupConfig } from '~/data-provider'; -import { BirthdayIcon, TooltipAnchor, SplitText } from '~/components'; import ConvoIcon from '~/components/Endpoints/ConvoIcon'; import { useLocalize, useAuthContext } from '~/hooks'; import { getIconEndpoint, getEntity } from '~/utils'; diff --git a/client/src/components/Chat/Menus/BookmarkMenu.tsx b/client/src/components/Chat/Menus/BookmarkMenu.tsx index 1f31249bda..f8ee05b2a4 100644 --- a/client/src/components/Chat/Menus/BookmarkMenu.tsx +++ b/client/src/components/Chat/Menus/BookmarkMenu.tsx @@ -5,17 +5,15 @@ import { BookmarkPlusIcon } from 'lucide-react'; import { useQueryClient } from '@tanstack/react-query'; import { Constants, QueryKeys } from 'librechat-data-provider'; import { BookmarkFilledIcon, BookmarkIcon } from '@radix-ui/react-icons'; +import { DropdownPopup, TooltipAnchor, Spinner, useToastContext } from '@librechat/client'; import type { TConversationTag } from 'librechat-data-provider'; import type { FC } from 'react'; import type * as t from '~/common'; import { useConversationTagsQuery, useTagConversationMutation } from '~/data-provider'; -import { DropdownPopup, TooltipAnchor } from '~/components/ui'; import { BookmarkContext } from '~/Providers/BookmarkContext'; import { BookmarkEditDialog } from '~/components/Bookmarks'; import { useBookmarkSuccess, useLocalize } from '~/hooks'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; -import { Spinner } from '~/components'; import { cn, logger } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Chat/Menus/Bookmarks/BookmarkMenuItems.tsx b/client/src/components/Chat/Menus/Bookmarks/BookmarkMenuItems.tsx index 3bae5af3ab..327ec75202 100644 --- a/client/src/components/Chat/Menus/Bookmarks/BookmarkMenuItems.tsx +++ b/client/src/components/Chat/Menus/Bookmarks/BookmarkMenuItems.tsx @@ -1,8 +1,8 @@ import React, { useState } from 'react'; import { BookmarkPlusIcon } from 'lucide-react'; +import { OGDialogTrigger } from '@librechat/client'; import type { FC } from 'react'; import { BookmarkEditDialog, BookmarkItems, BookmarkItem } from '~/components/Bookmarks'; -import { OGDialogTrigger } from '~/components/ui'; import { useLocalize } from '~/hooks'; export const BookmarkMenuItems: FC<{ diff --git a/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx b/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx index 19a1731652..6541383f39 100644 --- a/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx +++ b/client/src/components/Chat/Menus/Endpoints/components/EndpointItem.tsx @@ -1,11 +1,11 @@ import { useMemo } from 'react'; import { SettingsIcon } from 'lucide-react'; +import { TooltipAnchor, Spinner } from '@librechat/client'; import { EModelEndpoint, isAgentsEndpoint, isAssistantsEndpoint } from 'librechat-data-provider'; import type { Endpoint } from '~/common'; import { CustomMenu as Menu, CustomMenuItem as MenuItem } from '../CustomMenu'; import { useModelSelectorContext } from '../ModelSelectorContext'; import { renderEndpointModels } from './EndpointModelItem'; -import { TooltipAnchor, Spinner } from '~/components'; import { filterModels } from '../utils'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Menus/HeaderNewChat.tsx b/client/src/components/Chat/Menus/HeaderNewChat.tsx index 44e4384d3e..b2dc6416ab 100644 --- a/client/src/components/Chat/Menus/HeaderNewChat.tsx +++ b/client/src/components/Chat/Menus/HeaderNewChat.tsx @@ -1,8 +1,7 @@ import { useQueryClient } from '@tanstack/react-query'; import { QueryKeys, Constants } from 'librechat-data-provider'; +import { TooltipAnchor, Button, NewChatIcon } from '@librechat/client'; import type { TMessage } from 'librechat-data-provider'; -import { TooltipAnchor, Button } from '~/components/ui'; -import { NewChatIcon } from '~/components/svg'; import { useChatContext } from '~/Providers'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Chat/Menus/OpenSidebar.tsx b/client/src/components/Chat/Menus/OpenSidebar.tsx index 4c4f29414f..2c6e331233 100644 --- a/client/src/components/Chat/Menus/OpenSidebar.tsx +++ b/client/src/components/Chat/Menus/OpenSidebar.tsx @@ -1,5 +1,4 @@ -import { TooltipAnchor, Button } from '~/components/ui'; -import { Sidebar } from '~/components/svg'; +import { TooltipAnchor, Button, Sidebar } from '@librechat/client'; import { useLocalize } from '~/hooks'; export default function OpenSidebar({ diff --git a/client/src/components/Chat/Menus/Presets/EditPresetDialog.tsx b/client/src/components/Chat/Menus/Presets/EditPresetDialog.tsx index 9a723d94fa..bd64665cd5 100644 --- a/client/src/components/Chat/Menus/Presets/EditPresetDialog.tsx +++ b/client/src/components/Chat/Menus/Presets/EditPresetDialog.tsx @@ -2,6 +2,14 @@ import { useRecoilState } from 'recoil'; import { useCallback, useEffect, useMemo } from 'react'; import { useQueryClient } from '@tanstack/react-query'; import { QueryKeys, isAgentsEndpoint } from 'librechat-data-provider'; +import { + Input, + Label, + OGDialog, + OGDialogTitle, + SelectDropDown, + OGDialogContent, +} from '@librechat/client'; import type { TModelsConfig, TEndpointsConfig } from 'librechat-data-provider'; import { cn, @@ -10,14 +18,6 @@ import { mapEndpoints, getConvoSwitchLogic, } from '~/utils'; -import { - Input, - Label, - OGDialog, - OGDialogTitle, - SelectDropDown, - OGDialogContent, -} from '~/components'; import { useSetIndexOptions, useLocalize, useDebouncedInput } from '~/hooks'; import PopoverButtons from '~/components/Chat/Input/PopoverButtons'; import { EndpointSettings } from '~/components/Endpoints'; diff --git a/client/src/components/Chat/Menus/Presets/PresetItems.tsx b/client/src/components/Chat/Menus/Presets/PresetItems.tsx index f1e8e738a1..4e7710e0a7 100644 --- a/client/src/components/Chat/Menus/Presets/PresetItems.tsx +++ b/client/src/components/Chat/Menus/Presets/PresetItems.tsx @@ -1,13 +1,19 @@ import { useRecoilValue } from 'recoil'; import { Close } from '@radix-ui/react-popover'; import { Flipper, Flipped } from 'react-flip-toolkit'; -import type { FC } from 'react'; +import { + Dialog, + DialogTrigger, + Label, + DialogTemplate, + PinIcon, + EditIcon, + TrashIcon, +} from '@librechat/client'; import type { TPreset } from 'librechat-data-provider'; +import type { FC } from 'react'; import { getPresetTitle, getEndpointField, getIconKey } from '~/utils'; import FileUpload from '~/components/Chat/Input/Files/FileUpload'; -import { PinIcon, EditIcon, TrashIcon } from '~/components/svg'; -import { Dialog, DialogTrigger, Label } from '~/components/ui'; -import DialogTemplate from '~/components/ui/DialogTemplate'; import { useGetEndpointsQuery } from '~/data-provider'; import { MenuSeparator, MenuItem } from '../UI'; import { icons } from '~/hooks/Endpoint/Icons'; diff --git a/client/src/components/Chat/Menus/PresetsMenu.tsx b/client/src/components/Chat/Menus/PresetsMenu.tsx index a0d0790f99..2c05eff866 100644 --- a/client/src/components/Chat/Menus/PresetsMenu.tsx +++ b/client/src/components/Chat/Menus/PresetsMenu.tsx @@ -1,10 +1,10 @@ import type { FC } from 'react'; import { BookCopy } from 'lucide-react'; +import { TooltipAnchor } from '@librechat/client'; import { Content, Portal, Root, Trigger } from '@radix-ui/react-popover'; import { EditPresetDialog, PresetItems } from './Presets'; import { useLocalize, usePresets } from '~/hooks'; import { useChatContext } from '~/Providers'; -import { TooltipAnchor } from '~/components'; const PresetsMenu: FC = () => { const localize = useLocalize(); diff --git a/client/src/components/Chat/Menus/UI/TitleButton.tsx b/client/src/components/Chat/Menus/UI/TitleButton.tsx index c23fdeb3ab..d6f7dec095 100644 --- a/client/src/components/Chat/Menus/UI/TitleButton.tsx +++ b/client/src/components/Chat/Menus/UI/TitleButton.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { ChevronDown } from 'lucide-react'; import { Trigger } from '@radix-ui/react-popover'; -import useLocalize from '~/hooks/useLocalize'; +import { useLocalize } from '~/hooks'; export default function TitleButton({ primaryText = '', secondaryText = '' }) { const localize = useLocalize(); diff --git a/client/src/components/Chat/Messages/Content/ContentParts.tsx b/client/src/components/Chat/Messages/Content/ContentParts.tsx index 49f6be255a..9c38dd92d9 100644 --- a/client/src/components/Chat/Messages/Content/ContentParts.tsx +++ b/client/src/components/Chat/Messages/Content/ContentParts.tsx @@ -11,9 +11,9 @@ import { ThinkingButton } from '~/components/Artifacts/Thinking'; import { MessageContext, SearchContext } from '~/Providers'; import MemoryArtifacts from './MemoryArtifacts'; import Sources from '~/components/Web/Sources'; -import useLocalize from '~/hooks/useLocalize'; import { mapAttachments } from '~/utils/map'; import { EditTextPart } from './Parts'; +import { useLocalize } from '~/hooks'; import store from '~/store'; import Part from './Part'; diff --git a/client/src/components/Chat/Messages/Content/DialogImage.tsx b/client/src/components/Chat/Messages/Content/DialogImage.tsx index 0711757df1..9eb5f9e71f 100644 --- a/client/src/components/Chat/Messages/Content/DialogImage.tsx +++ b/client/src/components/Chat/Messages/Content/DialogImage.tsx @@ -1,6 +1,6 @@ import { useState, useEffect, useCallback, useRef } from 'react'; +import { Button, OGDialog, OGDialogContent, TooltipAnchor } from '@librechat/client'; import { X, ArrowDownToLine, PanelLeftOpen, PanelLeftClose, RotateCcw } from 'lucide-react'; -import { Button, OGDialog, OGDialogContent, TooltipAnchor } from '~/components'; import { useLocalize } from '~/hooks'; const getQualityStyles = (quality: string): string => { diff --git a/client/src/components/Chat/Messages/Content/EditMessage.tsx b/client/src/components/Chat/Messages/Content/EditMessage.tsx index e2781aaa5f..e873210901 100644 --- a/client/src/components/Chat/Messages/Content/EditMessage.tsx +++ b/client/src/components/Chat/Messages/Content/EditMessage.tsx @@ -1,10 +1,10 @@ import { useRef, useEffect, useCallback } from 'react'; -import { useRecoilState, useRecoilValue } from 'recoil'; import { useForm } from 'react-hook-form'; +import { useRecoilState, useRecoilValue } from 'recoil'; +import { TextareaAutosize, TooltipAnchor } from '@librechat/client'; import { useUpdateMessageMutation } from 'librechat-data-provider/react-query'; import type { TEditProps } from '~/common'; import { useChatContext, useAddedChatContext } from '~/Providers'; -import { TextareaAutosize, TooltipAnchor } from '~/components/ui'; import { cn, removeFocusRings } from '~/utils'; import { useLocalize } from '~/hooks'; import Container from './Container'; diff --git a/client/src/components/Chat/Messages/Content/Image.tsx b/client/src/components/Chat/Messages/Content/Image.tsx index ba4f65671a..450ed0fc22 100644 --- a/client/src/components/Chat/Messages/Content/Image.tsx +++ b/client/src/components/Chat/Messages/Content/Image.tsx @@ -1,8 +1,8 @@ import React, { useState, useRef, useMemo } from 'react'; +import { Skeleton } from '@librechat/client'; import { LazyLoadImage } from 'react-lazy-load-image-component'; import { cn, scaleImage } from '~/utils'; import DialogImage from './DialogImage'; -import { Skeleton } from '~/components'; const Image = ({ imagePath, diff --git a/client/src/components/Chat/Messages/Content/MarkdownComponents.tsx b/client/src/components/Chat/Messages/Content/MarkdownComponents.tsx index e0a381ff52..de1e82443e 100644 --- a/client/src/components/Chat/Messages/Content/MarkdownComponents.tsx +++ b/client/src/components/Chat/Messages/Content/MarkdownComponents.tsx @@ -1,12 +1,13 @@ import React, { memo, useMemo, useRef, useEffect } from 'react'; import { useRecoilValue } from 'recoil'; +import { useToastContext } from '@librechat/client'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; -import { useToastContext, useCodeBlockContext } from '~/Providers'; import CodeBlock from '~/components/Messages/Content/CodeBlock'; import useHasAccess from '~/hooks/Roles/useHasAccess'; import { useFileDownload } from '~/data-provider'; -import useLocalize from '~/hooks/useLocalize'; +import { useCodeBlockContext } from '~/Providers'; import { handleDoubleClick } from '~/utils'; +import { useLocalize } from '~/hooks'; import store from '~/store'; type TCodeProps = { diff --git a/client/src/components/Chat/Messages/Content/MessageContent.tsx b/client/src/components/Chat/Messages/Content/MessageContent.tsx index f70a15b779..dd3433d564 100644 --- a/client/src/components/Chat/Messages/Content/MessageContent.tsx +++ b/client/src/components/Chat/Messages/Content/MessageContent.tsx @@ -1,10 +1,10 @@ import { memo, Suspense, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; +import { DelayedRender } from '@librechat/client'; import type { TMessage } from 'librechat-data-provider'; import type { TMessageContentProps, TDisplayProps } from '~/common'; import Error from '~/components/Messages/Content/Error'; import Thinking from '~/components/Artifacts/Thinking'; -import { DelayedRender } from '~/components/ui'; import { useChatContext } from '~/Providers'; import MarkdownLite from './MarkdownLite'; import EditMessage from './EditMessage'; diff --git a/client/src/components/Chat/Messages/Content/Parts/EditTextPart.tsx b/client/src/components/Chat/Messages/Content/Parts/EditTextPart.tsx index ab15355d1e..1898920eaf 100644 --- a/client/src/components/Chat/Messages/Content/Parts/EditTextPart.tsx +++ b/client/src/components/Chat/Messages/Content/Parts/EditTextPart.tsx @@ -1,5 +1,6 @@ import { useRef, useEffect, useCallback, useMemo } from 'react'; import { useForm } from 'react-hook-form'; +import { TextareaAutosize } from '@librechat/client'; import { ContentTypes } from 'librechat-data-provider'; import { useRecoilState, useRecoilValue } from 'recoil'; import { useUpdateMessageContentMutation } from 'librechat-data-provider/react-query'; @@ -7,7 +8,6 @@ import type { Agents } from 'librechat-data-provider'; import type { TEditProps } from '~/common'; import Container from '~/components/Chat/Messages/Content/Container'; import { useChatContext, useAddedChatContext } from '~/Providers'; -import { TextareaAutosize } from '~/components/ui'; import { cn, removeFocusRings } from '~/utils'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Chat/Messages/Content/Parts/LogLink.tsx b/client/src/components/Chat/Messages/Content/Parts/LogLink.tsx index 590b6d7b8a..d328f202ee 100644 --- a/client/src/components/Chat/Messages/Content/Parts/LogLink.tsx +++ b/client/src/components/Chat/Messages/Content/Parts/LogLink.tsx @@ -1,6 +1,6 @@ import React from 'react'; +import { useToastContext } from '@librechat/client'; import { useCodeOutputDownload } from '~/data-provider'; -import { useToastContext } from '~/Providers'; interface LogLinkProps { href: string; diff --git a/client/src/components/Chat/Messages/Content/Parts/OpenAIImageGen/OpenAIImageGen.tsx b/client/src/components/Chat/Messages/Content/Parts/OpenAIImageGen/OpenAIImageGen.tsx index ef24c3553e..c0f77b14f2 100644 --- a/client/src/components/Chat/Messages/Content/Parts/OpenAIImageGen/OpenAIImageGen.tsx +++ b/client/src/components/Chat/Messages/Content/Parts/OpenAIImageGen/OpenAIImageGen.tsx @@ -1,8 +1,8 @@ import { useState, useEffect, useRef, useCallback } from 'react'; +import { PixelCard } from '@librechat/client'; import type { TAttachment, TFile, TAttachmentMetadata } from 'librechat-data-provider'; import Image from '~/components/Chat/Messages/Content/Image'; import ProgressText from './ProgressText'; -import { PixelCard } from '~/components'; import { scaleImage } from '~/utils'; export default function OpenAIImageGen({ diff --git a/client/src/components/Chat/Messages/Content/ProgressText.tsx b/client/src/components/Chat/Messages/Content/ProgressText.tsx index 1d80309071..e131579f6d 100644 --- a/client/src/components/Chat/Messages/Content/ProgressText.tsx +++ b/client/src/components/Chat/Messages/Content/ProgressText.tsx @@ -1,8 +1,8 @@ import * as Popover from '@radix-ui/react-popover'; +import { Spinner } from '@librechat/client'; import { ChevronDown, ChevronUp } from 'lucide-react'; import CancelledIcon from './CancelledIcon'; import FinishedIcon from './FinishedIcon'; -import { Spinner } from '~/components'; import { cn } from '~/utils'; const wrapperClass = diff --git a/client/src/components/Chat/Messages/Content/SearchContent.tsx b/client/src/components/Chat/Messages/Content/SearchContent.tsx index 8b409804bf..81752ddf9c 100644 --- a/client/src/components/Chat/Messages/Content/SearchContent.tsx +++ b/client/src/components/Chat/Messages/Content/SearchContent.tsx @@ -1,5 +1,6 @@ import { Suspense, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; +import { DelayedRender } from '@librechat/client'; import { ContentTypes } from 'librechat-data-provider'; import type { Agents, @@ -9,7 +10,6 @@ import type { TMessageContentParts, } from 'librechat-data-provider'; import { UnfinishedMessage } from './MessageContent'; -import { DelayedRender } from '~/components/ui'; import Sources from '~/components/Web/Sources'; import { cn, mapAttachments } from '~/utils'; import { SearchContext } from '~/Providers'; diff --git a/client/src/components/Chat/Messages/Content/ToolCall.tsx b/client/src/components/Chat/Messages/Content/ToolCall.tsx index 3408ba5a58..84fc8cdf74 100644 --- a/client/src/components/Chat/Messages/Content/ToolCall.tsx +++ b/client/src/components/Chat/Messages/Content/ToolCall.tsx @@ -1,4 +1,5 @@ import { useMemo, useState, useEffect, useRef, useLayoutEffect } from 'react'; +import { Button } from '@librechat/client'; import { TriangleAlert } from 'lucide-react'; import { actionDelimiter, actionDomainSeparator, Constants } from 'librechat-data-provider'; import type { TAttachment } from 'librechat-data-provider'; @@ -6,7 +7,6 @@ import { useLocalize, useProgress } from '~/hooks'; import { AttachmentGroup } from './Parts'; import ToolCallInfo from './ToolCallInfo'; import ProgressText from './ProgressText'; -import { Button } from '~/components'; import { logger, cn } from '~/utils'; export default function ToolCall({ diff --git a/client/src/components/Chat/Messages/Feedback.tsx b/client/src/components/Chat/Messages/Feedback.tsx index 4879808d90..a43b9700ee 100644 --- a/client/src/components/Chat/Messages/Feedback.tsx +++ b/client/src/components/Chat/Messages/Feedback.tsx @@ -1,6 +1,14 @@ import React, { useState, useCallback, useMemo, useEffect } from 'react'; import * as Ariakit from '@ariakit/react'; import { TFeedback, TFeedbackTag, getTagsForRating } from 'librechat-data-provider'; +import { + Button, + OGDialog, + OGDialogContent, + OGDialogTitle, + ThumbUpIcon, + ThumbDownIcon, +} from '@librechat/client'; import { AlertCircle, PenTool, @@ -11,14 +19,6 @@ import { Lightbulb, Search, } from 'lucide-react'; -import { - Button, - OGDialog, - OGDialogContent, - OGDialogTitle, - ThumbUpIcon, - ThumbDownIcon, -} from '~/components'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Chat/Messages/Fork.tsx b/client/src/components/Chat/Messages/Fork.tsx index 0a0c0a1141..810692c328 100644 --- a/client/src/components/Chat/Messages/Fork.tsx +++ b/client/src/components/Chat/Messages/Fork.tsx @@ -3,11 +3,11 @@ import { useRecoilState } from 'recoil'; import * as Ariakit from '@ariakit/react'; import { VisuallyHidden } from '@ariakit/react'; import { GitFork, InfoIcon } from 'lucide-react'; +import { useToastContext } from '@librechat/client'; import { ForkOptions } from 'librechat-data-provider'; import { GitCommit, GitBranchPlus, ListTree } from 'lucide-react'; import { TranslationKeys, useLocalize, useNavigateToConvo } from '~/hooks'; import { useForkConvoMutation } from '~/data-provider'; -import { useToastContext } from '~/Providers'; import { cn } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Chat/Messages/HoverButtons.tsx b/client/src/components/Chat/Messages/HoverButtons.tsx index a13266f04c..8c90673747 100644 --- a/client/src/components/Chat/Messages/HoverButtons.tsx +++ b/client/src/components/Chat/Messages/HoverButtons.tsx @@ -1,7 +1,7 @@ import React, { useState, useMemo, memo } from 'react'; import { useRecoilState } from 'recoil'; import type { TConversation, TMessage, TFeedback } from 'librechat-data-provider'; -import { EditIcon, Clipboard, CheckMark, ContinueIcon, RegenerateIcon } from '~/components'; +import { EditIcon, Clipboard, CheckMark, ContinueIcon, RegenerateIcon } from '@librechat/client'; import { useGenerationsByLatest, useLocalize } from '~/hooks'; import { Fork } from '~/components/Conversations'; import MessageAudio from './MessageAudio'; diff --git a/client/src/components/Chat/Messages/MessageParts.tsx b/client/src/components/Chat/Messages/MessageParts.tsx index 889e75d4eb..d53522e641 100644 --- a/client/src/components/Chat/Messages/MessageParts.tsx +++ b/client/src/components/Chat/Messages/MessageParts.tsx @@ -6,7 +6,6 @@ import { useMessageHelpers, useLocalize, useAttachments } from '~/hooks'; import MessageIcon from '~/components/Chat/Messages/MessageIcon'; import ContentParts from './Content/ContentParts'; import SiblingSwitch from './SiblingSwitch'; - import MultiMessage from './MultiMessage'; import HoverButtons from './HoverButtons'; import SubRow from './SubRow'; diff --git a/client/src/components/Chat/Messages/MinimalHoverButtons.tsx b/client/src/components/Chat/Messages/MinimalHoverButtons.tsx index 150cc59f7c..3f4e1711a6 100644 --- a/client/src/components/Chat/Messages/MinimalHoverButtons.tsx +++ b/client/src/components/Chat/Messages/MinimalHoverButtons.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; +import { Clipboard, CheckMark } from '@librechat/client'; import type { TMessage, TAttachment, SearchResultData } from 'librechat-data-provider'; import { useLocalize, useCopyToClipboard } from '~/hooks'; -import { Clipboard, CheckMark } from '~/components/svg'; type THoverButtons = { message: TMessage; diff --git a/client/src/components/Chat/Messages/MultiMessage.tsx b/client/src/components/Chat/Messages/MultiMessage.tsx index 9050a6149f..99733143f3 100644 --- a/client/src/components/Chat/Messages/MultiMessage.tsx +++ b/client/src/components/Chat/Messages/MultiMessage.tsx @@ -3,11 +3,8 @@ import { useEffect, useCallback } from 'react'; import { isAssistantsEndpoint } from 'librechat-data-provider'; import type { TMessage } from 'librechat-data-provider'; import type { TMessageProps } from '~/common'; - import MessageContent from '~/components/Messages/MessageContent'; - import MessageParts from './MessageParts'; - import Message from './Message'; import store from '~/store'; diff --git a/client/src/components/Chat/TemporaryChat.tsx b/client/src/components/Chat/TemporaryChat.tsx index 69e39a1a6c..a134379497 100644 --- a/client/src/components/Chat/TemporaryChat.tsx +++ b/client/src/components/Chat/TemporaryChat.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { motion } from 'framer-motion'; +import { TooltipAnchor } from '@librechat/client'; import { MessageCircleDashed } from 'lucide-react'; import { useRecoilState, useRecoilCallback } from 'recoil'; -import { TooltipAnchor } from '~/components/ui'; import { useChatContext } from '~/Providers'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Conversations/Conversations.tsx b/client/src/components/Conversations/Conversations.tsx index 46f217a83c..10203c89e3 100644 --- a/client/src/components/Conversations/Conversations.tsx +++ b/client/src/components/Conversations/Conversations.tsx @@ -1,11 +1,11 @@ import { useMemo, memo, type FC, useCallback } from 'react'; import throttle from 'lodash/throttle'; import { parseISO, isToday } from 'date-fns'; +import { Spinner, useMediaQuery } from '@librechat/client'; import { List, AutoSizer, CellMeasurer, CellMeasurerCache } from 'react-virtualized'; -import { useLocalize, TranslationKeys, useMediaQuery } from '~/hooks'; import { TConversation } from 'librechat-data-provider'; +import { useLocalize, TranslationKeys } from '~/hooks'; import { groupConversationsByDate } from '~/utils'; -import { Spinner } from '~/components/svg'; import Convo from './Convo'; interface ConversationsProps { diff --git a/client/src/components/Conversations/Convo.tsx b/client/src/components/Conversations/Convo.tsx index afd14a4cb5..3804cbf2bc 100644 --- a/client/src/components/Conversations/Convo.tsx +++ b/client/src/components/Conversations/Convo.tsx @@ -2,14 +2,14 @@ import React, { useState, useEffect, useRef, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; import { useParams } from 'react-router-dom'; import { Constants } from 'librechat-data-provider'; +import { useToastContext, useMediaQuery } from '@librechat/client'; import type { TConversation } from 'librechat-data-provider'; -import { useNavigateToConvo, useMediaQuery, useLocalize } from '~/hooks'; import { useUpdateConversationMutation } from '~/data-provider'; import EndpointIcon from '~/components/Endpoints/EndpointIcon'; +import { useNavigateToConvo, useLocalize } from '~/hooks'; import { useGetEndpointsQuery } from '~/data-provider'; import { NotificationSeverity } from '~/common'; import { ConvoOptions } from './ConvoOptions'; -import { useToastContext } from '~/Providers'; import RenameForm from './RenameForm'; import ConvoLink from './ConvoLink'; import { cn } from '~/utils'; diff --git a/client/src/components/Conversations/ConvoOptions/ConvoOptions.tsx b/client/src/components/Conversations/ConvoOptions/ConvoOptions.tsx index 87211c1a66..7affbd8e93 100644 --- a/client/src/components/Conversations/ConvoOptions/ConvoOptions.tsx +++ b/client/src/components/Conversations/ConvoOptions/ConvoOptions.tsx @@ -1,6 +1,7 @@ import { useState, useId, useRef, memo, useCallback, useMemo } from 'react'; import * as Menu from '@ariakit/react/menu'; import { useParams, useNavigate } from 'react-router-dom'; +import { DropdownPopup, Spinner, useToastContext } from '@librechat/client'; import { Ellipsis, Share2, Copy, Archive, Pen, Trash } from 'lucide-react'; import type { MouseEvent } from 'react'; import { @@ -9,9 +10,8 @@ import { useArchiveConvoMutation, } from '~/data-provider'; import { useLocalize, useNavigateToConvo, useNewConvo } from '~/hooks'; -import { useToastContext, useChatContext } from '~/Providers'; -import { DropdownPopup, Spinner } from '~/components'; import { NotificationSeverity } from '~/common'; +import { useChatContext } from '~/Providers'; import DeleteButton from './DeleteButton'; import ShareButton from './ShareButton'; import { cn } from '~/utils'; diff --git a/client/src/components/Conversations/ConvoOptions/DeleteButton.tsx b/client/src/components/Conversations/ConvoOptions/DeleteButton.tsx index c40ca52959..3c34cb8c3c 100644 --- a/client/src/components/Conversations/ConvoOptions/DeleteButton.tsx +++ b/client/src/components/Conversations/ConvoOptions/DeleteButton.tsx @@ -2,7 +2,6 @@ import React, { useCallback, useState } from 'react'; import { QueryKeys } from 'librechat-data-provider'; import { useQueryClient } from '@tanstack/react-query'; import { useParams, useNavigate } from 'react-router-dom'; -import type { TMessage } from 'librechat-data-provider'; import { Button, Spinner, @@ -10,11 +9,12 @@ import { OGDialogTitle, OGDialogHeader, OGDialogContent, -} from '~/components'; + useToastContext, +} from '@librechat/client'; +import type { TMessage } from 'librechat-data-provider'; import { useDeleteConversationMutation } from '~/data-provider'; import { useLocalize, useNewConvo } from '~/hooks'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; type DeleteButtonProps = { conversationId: string; diff --git a/client/src/components/Conversations/ConvoOptions/ShareButton.tsx b/client/src/components/Conversations/ConvoOptions/ShareButton.tsx index c979019f01..177dd5ae5f 100644 --- a/client/src/components/Conversations/ConvoOptions/ShareButton.tsx +++ b/client/src/components/Conversations/ConvoOptions/ShareButton.tsx @@ -2,9 +2,8 @@ import React, { useState, useEffect } from 'react'; import { QRCodeSVG } from 'qrcode.react'; import { Copy, CopyCheck } from 'lucide-react'; import { useGetSharedLinkQuery } from 'librechat-data-provider/react-query'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; +import { OGDialogTemplate, Button, Spinner, OGDialog } from '@librechat/client'; import { useLocalize, useCopyToClipboard } from '~/hooks'; -import { Button, Spinner, OGDialog } from '~/components'; import SharedLinkButton from './SharedLinkButton'; import { cn } from '~/utils'; diff --git a/client/src/components/Conversations/ConvoOptions/SharedLinkButton.tsx b/client/src/components/Conversations/ConvoOptions/SharedLinkButton.tsx index 4255515745..35609ba5ec 100644 --- a/client/src/components/Conversations/ConvoOptions/SharedLinkButton.tsx +++ b/client/src/components/Conversations/ConvoOptions/SharedLinkButton.tsx @@ -1,15 +1,21 @@ import { useState, useCallback } from 'react'; import { QrCode, RotateCw, Trash2 } from 'lucide-react'; +import { + Button, + OGDialog, + Spinner, + TooltipAnchor, + Label, + OGDialogTemplate, + useToastContext, +} from '@librechat/client'; import type { TSharedLinkGetResponse } from 'librechat-data-provider'; import { useCreateSharedLinkMutation, useUpdateSharedLinkMutation, useDeleteSharedLinkMutation, } from '~/data-provider'; -import { Button, OGDialog, Spinner, TooltipAnchor, Label } from '~/components'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; export default function SharedLinkButton({ diff --git a/client/src/components/Endpoints/Icon.tsx b/client/src/components/Endpoints/Icon.tsx index aa9f4d16c3..acc6027697 100644 --- a/client/src/components/Endpoints/Icon.tsx +++ b/client/src/components/Endpoints/Icon.tsx @@ -1,11 +1,11 @@ import React, { memo, useState } from 'react'; +import { UserIcon } from '@librechat/client'; import type { TUser } from 'librechat-data-provider'; import type { IconProps } from '~/common'; import MessageEndpointIcon from './MessageEndpointIcon'; import { useAuthContext } from '~/hooks/AuthContext'; import useAvatar from '~/hooks/Messages/useAvatar'; -import useLocalize from '~/hooks/useLocalize'; -import { UserIcon } from '~/components/svg'; +import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; type UserAvatarProps = { @@ -48,15 +48,15 @@ const UserAvatar = memo(({ size, user, avatarSrc, username, className }: UserAva > {(!(user?.avatar ?? '') && (!(user?.username ?? '') || user?.username.trim() === '')) || imageError ? ( - renderDefaultAvatar() - ) : ( - avatar - )} + renderDefaultAvatar() + ) : ( + avatar + )} ); }); diff --git a/client/src/components/Endpoints/MessageEndpointIcon.tsx b/client/src/components/Endpoints/MessageEndpointIcon.tsx index e405c01d31..1eb859c069 100644 --- a/client/src/components/Endpoints/MessageEndpointIcon.tsx +++ b/client/src/components/Endpoints/MessageEndpointIcon.tsx @@ -12,7 +12,7 @@ import { AnthropicIcon, AzureMinimalIcon, CustomMinimalIcon, -} from '~/components/svg'; +} from '@librechat/client'; import UnknownIcon from '~/hooks/Endpoint/UnknownIcon'; import { IconProps } from '~/common'; import { cn } from '~/utils'; diff --git a/client/src/components/Endpoints/MinimalIcon.tsx b/client/src/components/Endpoints/MinimalIcon.tsx index 953859c43a..f21cad1e08 100644 --- a/client/src/components/Endpoints/MinimalIcon.tsx +++ b/client/src/components/Endpoints/MinimalIcon.tsx @@ -10,7 +10,7 @@ import { AnthropicIcon, BedrockIcon, Sparkles, -} from '~/components/svg'; +} from '@librechat/client'; import UnknownIcon from '~/hooks/Endpoint/UnknownIcon'; import { IconProps } from '~/common'; import { cn } from '~/utils'; diff --git a/client/src/components/Endpoints/SaveAsPresetDialog.tsx b/client/src/components/Endpoints/SaveAsPresetDialog.tsx index b827a2d8c2..6467a4a408 100644 --- a/client/src/components/Endpoints/SaveAsPresetDialog.tsx +++ b/client/src/components/Endpoints/SaveAsPresetDialog.tsx @@ -1,11 +1,9 @@ import React, { useEffect, useState } from 'react'; import { useCreatePresetMutation } from 'librechat-data-provider/react-query'; +import { OGDialogTemplate, OGDialog, Input, Label, useToastContext } from '@librechat/client'; import type { TEditPresetProps } from '~/common'; -import { cn, removeFocusOutlines, cleanupPreset, defaultTextProps } from '~/utils/'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { OGDialog, Input, Label } from '~/components/ui/'; +import { cn, removeFocusOutlines, cleanupPreset, defaultTextProps } from '~/utils'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; const SaveAsPresetDialog = ({ open, onOpenChange, preset }: TEditPresetProps) => { @@ -23,7 +21,7 @@ const SaveAsPresetDialog = ({ open, onOpenChange, preset }: TEditPresetProps) => }); const toastTitle = - _preset.title ?? '' ? `\`${_preset.title}\`` : localize('com_endpoint_preset_title'); + (_preset.title ?? '') ? `\`${_preset.title}\`` : localize('com_endpoint_preset_title'); createPresetMutation.mutate(_preset, { onSuccess: () => { @@ -76,7 +74,7 @@ const SaveAsPresetDialog = ({ open, onOpenChange, preset }: TEditPresetProps) => aria-label={localize('com_endpoint_preset_name')} className={cn( defaultTextProps, - 'flex h-10 max-h-10 w-full resize-none border-border-medium px-3 py-2 ', + 'flex h-10 max-h-10 w-full resize-none border-border-medium px-3 py-2', removeFocusOutlines, )} /> diff --git a/client/src/components/Endpoints/Settings/Advanced.tsx b/client/src/components/Endpoints/Settings/Advanced.tsx index 601e9a675c..d0beaa9020 100644 --- a/client/src/components/Endpoints/Settings/Advanced.tsx +++ b/client/src/components/Endpoints/Settings/Advanced.tsx @@ -1,7 +1,5 @@ import TextareaAutosize from 'react-textarea-autosize'; import { ImageDetail, imageDetailNumeric, imageDetailValue } from 'librechat-data-provider'; -import type { ValueType } from '@rc-component/mini-decimal'; -import type { TModelSelectProps } from '~/common'; import { Input, Label, @@ -10,8 +8,10 @@ import { HoverCard, InputNumber, HoverCardTrigger, -} from '~/components/ui'; -import { cn, defaultTextProps, optionText, removeFocusOutlines } from '~/utils/'; +} from '@librechat/client'; +import type { ValueType } from '@rc-component/mini-decimal'; +import type { TModelSelectProps } from '~/common'; +import { cn, defaultTextProps, optionText, removeFocusOutlines } from '~/utils'; import { useLocalize, useDebouncedInput } from '~/hooks'; import OptionHover from './OptionHover'; import { ESide } from '~/common'; @@ -109,7 +109,7 @@ export default function Settings({ placeholder={localize('com_endpoint_openai_prompt_prefix_placeholder')} className={cn( defaultTextProps, - 'flex max-h-[138px] min-h-[100px] w-full resize-none px-3 py-2 ', + 'flex max-h-[138px] min-h-[100px] w-full resize-none px-3 py-2', )} /> diff --git a/client/src/components/Endpoints/Settings/AgentSettings.tsx b/client/src/components/Endpoints/Settings/AgentSettings.tsx index 8ba20f2508..f41a8bc19e 100644 --- a/client/src/components/Endpoints/Settings/AgentSettings.tsx +++ b/client/src/components/Endpoints/Settings/AgentSettings.tsx @@ -1,4 +1,3 @@ -import type { TModelSelectProps } from '~/common'; import { Switch, Label, @@ -7,7 +6,8 @@ import { InputNumber, SelectDropDown, HoverCardTrigger, -} from '~/components'; +} from '@librechat/client'; +import type { TModelSelectProps } from '~/common'; import { cn, optionText, defaultTextProps, removeFocusRings } from '~/utils'; import OptionHover from './OptionHover'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Endpoints/Settings/Assistants.tsx b/client/src/components/Endpoints/Settings/Assistants.tsx index a35f9f7eb3..4e285b6859 100644 --- a/client/src/components/Endpoints/Settings/Assistants.tsx +++ b/client/src/components/Endpoints/Settings/Assistants.tsx @@ -1,5 +1,6 @@ import { useState, useMemo, useEffect } from 'react'; import TextareaAutosize from 'react-textarea-autosize'; +import { Label, HoverCard, SelectDropDown, HoverCardTrigger } from '@librechat/client'; import type { Assistant, TPreset } from 'librechat-data-provider'; import type { TModelSelectProps, Option } from '~/common'; import { @@ -9,7 +10,6 @@ import { mapAssistants, createDropdownSetter, } from '~/utils'; -import { Label, HoverCard, SelectDropDown, HoverCardTrigger } from '~/components/ui'; import { useLocalize, useDebouncedInput, useAssistantListMap } from '~/hooks'; import OptionHover from './OptionHover'; import { ESide } from '~/common'; @@ -161,7 +161,7 @@ export default function Settings({ conversation, setOption, models, readonly }: placeholder={localize('com_endpoint_prompt_prefix_assistants_placeholder')} className={cn( defaultTextProps, - 'flex max-h-[240px] min-h-[80px] w-full resize-none px-3 py-2 ', + 'flex max-h-[240px] min-h-[80px] w-full resize-none px-3 py-2', )} /> @@ -178,7 +178,7 @@ export default function Settings({ conversation, setOption, models, readonly }: placeholder={localize('com_endpoint_instructions_assistants_placeholder')} className={cn( defaultTextProps, - 'flex max-h-[240px] min-h-[80px] w-full resize-none px-3 py-2 ', + 'flex max-h-[240px] min-h-[80px] w-full resize-none px-3 py-2', )} /> diff --git a/client/src/components/Endpoints/Settings/Examples.tsx b/client/src/components/Endpoints/Settings/Examples.tsx index 98dac9ea94..10f6236855 100644 --- a/client/src/components/Endpoints/Settings/Examples.tsx +++ b/client/src/components/Endpoints/Settings/Examples.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Plus, Minus } from 'lucide-react'; +import { Button, Label } from '@librechat/client'; import TextareaAutosize from 'react-textarea-autosize'; import type { TExample } from 'librechat-data-provider'; import type { TSetExample } from '~/common'; -import { Button, Label } from '~/components/ui'; import { cn, defaultTextProps } from '~/utils/'; import { useLocalize } from '~/hooks'; @@ -42,7 +42,7 @@ function Examples({ readonly, examples, setExample, addExample, removeExample }: placeholder="Set example input. Example is ignored if empty." className={cn( defaultTextProps, - 'flex max-h-[138px] min-h-[75px] w-full resize-none px-3 py-2 ', + 'flex max-h-[138px] min-h-[75px] w-full resize-none px-3 py-2', )} /> @@ -67,7 +67,7 @@ function Examples({ readonly, examples, setExample, addExample, removeExample }: placeholder={'Set example output. Example is ignored if empty.'} className={cn( defaultTextProps, - 'flex max-h-[300px] min-h-[75px] w-full resize-none px-3 py-2 ', + 'flex max-h-[300px] min-h-[75px] w-full resize-none px-3 py-2', )} /> diff --git a/client/src/components/Endpoints/Settings/Google.tsx b/client/src/components/Endpoints/Settings/Google.tsx index 063d5f098e..4d01585c1d 100644 --- a/client/src/components/Endpoints/Settings/Google.tsx +++ b/client/src/components/Endpoints/Settings/Google.tsx @@ -1,6 +1,5 @@ import TextareaAutosize from 'react-textarea-autosize'; import { EModelEndpoint, endpointSettings } from 'librechat-data-provider'; -import type { TModelSelectProps, OnInputNumberChange } from '~/common'; import { Input, Label, @@ -9,7 +8,8 @@ import { InputNumber, SelectDropDown, HoverCardTrigger, -} from '~/components/ui'; +} from '@librechat/client'; +import type { TModelSelectProps, OnInputNumberChange } from '~/common'; import { cn, defaultTextProps, optionText, removeFocusOutlines, removeFocusRings } from '~/utils'; import OptionHoverAlt from '~/components/SidePanel/Parameters/OptionHover'; import { useLocalize, useDebouncedInput } from '~/hooks'; @@ -94,7 +94,7 @@ export default function Settings({ conversation, setOption, models, readonly }: placeholder={localize('com_endpoint_prompt_prefix_placeholder')} className={cn( defaultTextProps, - 'flex max-h-[138px] min-h-[100px] w-full resize-none px-3 py-2 ', + 'flex max-h-[138px] min-h-[100px] w-full resize-none px-3 py-2', )} /> @@ -221,7 +221,7 @@ export default function Settings({ conversation, setOption, models, readonly }: {localize('com_endpoint_max_output_tokens')}{' '} - ({localize('com_endpoint_default_with_num', { 0: google.maxOutputTokens.default + '' })}) + ( + {localize('com_endpoint_default_with_num', { + 0: google.maxOutputTokens.default + '', + })} + ) void; diff --git a/client/src/components/Files/FileList/DataTableFile.tsx b/client/src/components/Files/FileList/DataTableFile.tsx index d64699e2ea..269001d0a3 100644 --- a/client/src/components/Files/FileList/DataTableFile.tsx +++ b/client/src/components/Files/FileList/DataTableFile.tsx @@ -16,27 +16,28 @@ import type { ColumnFiltersState, } from '@tanstack/react-table'; import { FileContext } from 'librechat-data-provider'; -import type { AugmentedColumnDef } from '~/common'; -import type { TFile } from 'librechat-data-provider'; import { Input, Table, Button, + Spinner, TableRow, TableBody, TableCell, TableHead, + TrashIcon, TableHeader, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, DropdownMenuCheckboxItem, -} from '~/components/ui'; +} from '@librechat/client'; +import type { TFile } from 'librechat-data-provider'; +import type { AugmentedColumnDef } from '~/common'; import ActionButton from '~/components/Files/ActionButton'; import { useDeleteFilesFromTable } from '~/hooks/Files'; -import { TrashIcon, Spinner } from '~/components/svg'; import UploadFileButton from './UploadFileButton'; -import useLocalize from '~/hooks/useLocalize'; +import { useLocalize } from '~/hooks'; import store from '~/store'; interface DataTableProps { diff --git a/client/src/components/Files/FileList/FileListItem.tsx b/client/src/components/Files/FileList/FileListItem.tsx index 5760b2917b..e7ee5d1d29 100644 --- a/client/src/components/Files/FileList/FileListItem.tsx +++ b/client/src/components/Files/FileList/FileListItem.tsx @@ -1,7 +1,6 @@ -import type { TFile } from 'librechat-data-provider'; import React from 'react'; -import { TrashIcon } from '~/components/svg'; -import { Button } from '~/components/ui'; +import { Button, TrashIcon } from '@librechat/client'; +import type { TFile } from 'librechat-data-provider'; type FileListItemProps = { file: TFile; diff --git a/client/src/components/Files/FileList/FileListItem2.tsx b/client/src/components/Files/FileList/FileListItem2.tsx index 2b8ff1d6a9..b692a69625 100644 --- a/client/src/components/Files/FileList/FileListItem2.tsx +++ b/client/src/components/Files/FileList/FileListItem2.tsx @@ -1,9 +1,8 @@ -import type { TFile } from 'librechat-data-provider'; -import { FileIcon, PlusIcon } from 'lucide-react'; import React from 'react'; +import { FileIcon, PlusIcon } from 'lucide-react'; +import { Button, DotsIcon, TrashIcon } from '@librechat/client'; +import type { TFile } from 'librechat-data-provider'; import { useNavigate } from 'react-router-dom'; -import { DotsIcon, TrashIcon } from '~/components/svg'; -import { Button } from '~/components/ui'; type FileListItemProps = { file: TFile; diff --git a/client/src/components/Files/FileList/FilePreview.tsx b/client/src/components/Files/FileList/FilePreview.tsx index e0c2624b34..0b416fa704 100644 --- a/client/src/components/Files/FileList/FilePreview.tsx +++ b/client/src/components/Files/FileList/FilePreview.tsx @@ -1,11 +1,10 @@ -import { TFile } from 'librechat-data-provider/dist/types'; import React, { useState } from 'react'; -import { TThread, TVectorStore } from '~/common'; -import { CheckMark, TrashIcon } from '~/components/svg'; -import { Button } from '~/components/ui'; -import DeleteIconButton from '../DeleteIconButton'; +import { TFile } from 'librechat-data-provider/dist/types'; +import { CheckMark, TrashIcon, Button } from '@librechat/client'; import VectorStoreButton from '../VectorStore/VectorStoreButton'; import { CircleIcon, Clock3Icon, InfoIcon } from 'lucide-react'; +import DeleteIconButton from '../DeleteIconButton'; +import { TThread, TVectorStore } from '~/common'; import { useParams } from 'react-router-dom'; const tempFile: TFile = { diff --git a/client/src/components/Files/FileList/FileSidePanel.tsx b/client/src/components/Files/FileList/FileSidePanel.tsx index e1552d2a8d..5b59678426 100644 --- a/client/src/components/Files/FileList/FileSidePanel.tsx +++ b/client/src/components/Files/FileList/FileSidePanel.tsx @@ -1,10 +1,9 @@ import React from 'react'; import FileList from './FileList'; +import { Button, Input } from '@librechat/client'; import { TFile } from 'librechat-data-provider/dist/types'; -import FilesSectionSelector from '../FilesSectionSelector'; -import { Button, Input } from '~/components/ui'; -import { ListFilter } from 'lucide-react'; import UploadFileButton from './UploadFileButton'; +import { ListFilter } from 'lucide-react'; import { useLocalize } from '~/hooks'; const fakeFiles = [ diff --git a/client/src/components/Files/FileList/FileTableColumns.tsx b/client/src/components/Files/FileList/FileTableColumns.tsx index 8e670aa805..754cb061db 100644 --- a/client/src/components/Files/FileList/FileTableColumns.tsx +++ b/client/src/components/Files/FileList/FileTableColumns.tsx @@ -1,13 +1,10 @@ /* eslint-disable react-hooks/rules-of-hooks */ -import { FileSources, FileContext } from 'librechat-data-provider'; +import { PlusIcon } from 'lucide-react'; +import { Button, Checkbox, DotsIcon, FileIcon } from '@librechat/client'; import type { ColumnDef } from '@tanstack/react-table'; import type { TFile } from 'librechat-data-provider'; -import { CrossIcon, DotsIcon } from '~/components/svg'; -import { Button, Checkbox } from '~/components/ui'; import { formatDate, getFileType } from '~/utils'; -import useLocalize from '~/hooks/useLocalize'; -import FileIcon from '~/components/svg/Files/FileIcon'; -import { PlusIcon } from 'lucide-react'; +import { useLocalize } from '~/hooks'; export const fileTableColumns: ColumnDef[] = [ { diff --git a/client/src/components/Files/FileList/UploadFileButton.tsx b/client/src/components/Files/FileList/UploadFileButton.tsx index e2b8acdd09..0823f706e3 100644 --- a/client/src/components/Files/FileList/UploadFileButton.tsx +++ b/client/src/components/Files/FileList/UploadFileButton.tsx @@ -1,6 +1,6 @@ -import { PlusIcon } from 'lucide-react'; import React from 'react'; -import { Button } from '~/components/ui'; +import { PlusIcon } from 'lucide-react'; +import { Button } from '@librechat/client'; type UploadFileProps = { onClick: () => void; diff --git a/client/src/components/Files/FileList/UploadFileModal.tsx b/client/src/components/Files/FileList/UploadFileModal.tsx index 4e2e31e278..7be59184a5 100644 --- a/client/src/components/Files/FileList/UploadFileModal.tsx +++ b/client/src/components/Files/FileList/UploadFileModal.tsx @@ -1,6 +1,5 @@ import React, { useState, ChangeEvent } from 'react'; -import AttachFile from '~/components/Chat/Input/Files/AttachFile'; -import { Button, Dialog, DialogContent, DialogHeader, DialogTitle, Input } from '~/components/ui'; +import { Button, Dialog, DialogContent, DialogHeader, DialogTitle, Input } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Files/VectorStore/VectorStoreButton.tsx b/client/src/components/Files/VectorStore/VectorStoreButton.tsx index dc3e34c4f2..6eb0f35a26 100644 --- a/client/src/components/Files/VectorStore/VectorStoreButton.tsx +++ b/client/src/components/Files/VectorStore/VectorStoreButton.tsx @@ -1,6 +1,6 @@ -import { PlusIcon } from 'lucide-react'; import React from 'react'; -import { Button } from '~/components/ui'; +import { PlusIcon } from 'lucide-react'; +import { Button } from '@librechat/client'; type VectorStoreButtonProps = { onClick: () => void; diff --git a/client/src/components/Files/VectorStore/VectorStoreListItem.tsx b/client/src/components/Files/VectorStore/VectorStoreListItem.tsx index 720ebd0afe..66a54b1593 100644 --- a/client/src/components/Files/VectorStore/VectorStoreListItem.tsx +++ b/client/src/components/Files/VectorStore/VectorStoreListItem.tsx @@ -1,8 +1,7 @@ import React from 'react'; import { useNavigate } from 'react-router-dom'; +import { Button, DotsIcon, TrashIcon } from '@librechat/client'; import { TVectorStore } from '~/common'; -import { DotsIcon, TrashIcon } from '~/components/svg'; -import { Button } from '~/components/ui'; type VectorStoreListItemProps = { vectorStore: TVectorStore; diff --git a/client/src/components/Files/VectorStore/VectorStorePreview.tsx b/client/src/components/Files/VectorStore/VectorStorePreview.tsx index c1d70107fa..d75a827425 100644 --- a/client/src/components/Files/VectorStore/VectorStorePreview.tsx +++ b/client/src/components/Files/VectorStore/VectorStorePreview.tsx @@ -1,7 +1,6 @@ import React, { useState } from 'react'; import DeleteIconButton from '../DeleteIconButton'; -import { Button } from '~/components/ui'; -import { TrashIcon } from '~/components/svg'; +import { TrashIcon, Button } from '@librechat/client'; import { TFile } from 'librechat-data-provider/dist/types'; import UploadFileButton from '../FileList/UploadFileButton'; import UploadFileModal from '../FileList/UploadFileModal'; @@ -99,7 +98,7 @@ export default function VectorStorePreview() { const params = useParams(); return ( -
+
VECTOR STORE diff --git a/client/src/components/Files/VectorStore/VectorStoreSidePanel.tsx b/client/src/components/Files/VectorStore/VectorStoreSidePanel.tsx index b1d0fe166a..0616bcc7ba 100644 --- a/client/src/components/Files/VectorStore/VectorStoreSidePanel.tsx +++ b/client/src/components/Files/VectorStore/VectorStoreSidePanel.tsx @@ -1,12 +1,9 @@ import React from 'react'; +import { ListFilter } from 'lucide-react'; +import { Button, Input } from '@librechat/client'; +import VectorStoreButton from './VectorStoreButton'; import VectorStoreList from './VectorStoreList'; import { TVectorStore } from '~/common'; -import VectorStoreButton from './VectorStoreButton'; -import { Button, Input } from '~/components/ui'; -import FilesSectionSelector from '../FilesSectionSelector'; -import ActionButton from '../ActionButton'; -import DeleteIconButton from '../DeleteIconButton'; -import { ListFilter } from 'lucide-react'; import { useLocalize } from '~/hooks'; const fakeVectorStores: TVectorStore[] = [ diff --git a/client/src/components/Input/Generations/Regenerate.tsx b/client/src/components/Input/Generations/Regenerate.tsx index 83eabf493f..715168cb92 100644 --- a/client/src/components/Input/Generations/Regenerate.tsx +++ b/client/src/components/Input/Generations/Regenerate.tsx @@ -1,7 +1,7 @@ +import { RegenerateIcon } from '@librechat/client'; import type { TGenButtonProps } from '~/common'; -import { RegenerateIcon } from '~/components/svg'; -import Button from './Button'; import { useLocalize } from '~/hooks'; +import Button from './Button'; export default function Regenerate({ onClick }: TGenButtonProps) { const localize = useLocalize(); diff --git a/client/src/components/Input/Generations/Stop.tsx b/client/src/components/Input/Generations/Stop.tsx index 8214152c47..d66baa9450 100644 --- a/client/src/components/Input/Generations/Stop.tsx +++ b/client/src/components/Input/Generations/Stop.tsx @@ -1,14 +1,14 @@ +import { StopGeneratingIcon } from '@librechat/client'; import type { TGenButtonProps } from '~/common'; -import { StopGeneratingIcon } from '~/components/svg'; -import Button from './Button'; import { useLocalize } from '~/hooks'; +import Button from './Button'; export default function Stop({ onClick }: TGenButtonProps) { const localize = useLocalize(); return ( ); diff --git a/client/src/components/Input/ModelSelect/Anthropic.tsx b/client/src/components/Input/ModelSelect/Anthropic.tsx index bbe634478b..38669871ea 100644 --- a/client/src/components/Input/ModelSelect/Anthropic.tsx +++ b/client/src/components/Input/ModelSelect/Anthropic.tsx @@ -1,4 +1,4 @@ -import { SelectDropDown, SelectDropDownPop } from '~/components/ui'; +import { SelectDropDown, SelectDropDownPop } from '@librechat/client'; import type { TModelSelectProps } from '~/common'; import { cn, cardStyle } from '~/utils/'; diff --git a/client/src/components/Input/ModelSelect/ChatGPT.tsx b/client/src/components/Input/ModelSelect/ChatGPT.tsx index 89c884429e..1405bcdbd6 100644 --- a/client/src/components/Input/ModelSelect/ChatGPT.tsx +++ b/client/src/components/Input/ModelSelect/ChatGPT.tsx @@ -1,4 +1,4 @@ -import { SelectDropDown, SelectDropDownPop } from '~/components/ui'; +import { SelectDropDown, SelectDropDownPop } from '@librechat/client'; import type { TModelSelectProps } from '~/common'; import { cn, cardStyle } from '~/utils/'; diff --git a/client/src/components/Input/ModelSelect/Google.tsx b/client/src/components/Input/ModelSelect/Google.tsx index eab7f95393..eb04adc9e4 100644 --- a/client/src/components/Input/ModelSelect/Google.tsx +++ b/client/src/components/Input/ModelSelect/Google.tsx @@ -1,4 +1,4 @@ -import { SelectDropDown, SelectDropDownPop } from '~/components/ui'; +import { SelectDropDown, SelectDropDownPop } from '@librechat/client'; import type { TModelSelectProps } from '~/common'; import { cn, cardStyle } from '~/utils/'; diff --git a/client/src/components/Input/ModelSelect/MultiSelectDropDown.tsx b/client/src/components/Input/ModelSelect/MultiSelectDropDown.tsx index 7ec928e0e0..6a1deee152 100644 --- a/client/src/components/Input/ModelSelect/MultiSelectDropDown.tsx +++ b/client/src/components/Input/ModelSelect/MultiSelectDropDown.tsx @@ -1,5 +1,6 @@ import React, { useState, useRef } from 'react'; import { Wrench, ArrowRight } from 'lucide-react'; +import { CheckMark, useOnClickOutside, useMultiSearch } from '@librechat/client'; import { Listbox, ListboxButton, @@ -9,9 +10,6 @@ import { Transition, } from '@headlessui/react'; import type { TPlugin } from 'librechat-data-provider'; -import { useMultiSearch } from '~/components/MultiSearch'; -import { useOnClickOutside } from '~/hooks'; -import { CheckMark } from '~/svgs'; import { cn } from '~/utils/'; export type TMultiSelectDropDownProps = { diff --git a/client/src/components/Input/ModelSelect/MultiSelectPop.tsx b/client/src/components/Input/ModelSelect/MultiSelectPop.tsx index 05c760b355..8421c673ae 100644 --- a/client/src/components/Input/ModelSelect/MultiSelectPop.tsx +++ b/client/src/components/Input/ModelSelect/MultiSelectPop.tsx @@ -1,8 +1,8 @@ import { Wrench } from 'lucide-react'; +import { useMultiSearch } from '@librechat/client'; import { Root, Trigger, Content, Portal } from '@radix-ui/react-popover'; import type { TPlugin } from 'librechat-data-provider'; import MenuItem from '~/components/Chat/Menus/UI/MenuItem'; -import { useMultiSearch } from '~/components'; import { cn } from '~/utils/'; type SelectDropDownProps = { diff --git a/client/src/components/Input/ModelSelect/OpenAI.tsx b/client/src/components/Input/ModelSelect/OpenAI.tsx index 5b68cb440c..daf64d0581 100644 --- a/client/src/components/Input/ModelSelect/OpenAI.tsx +++ b/client/src/components/Input/ModelSelect/OpenAI.tsx @@ -1,4 +1,4 @@ -import { SelectDropDown, SelectDropDownPop } from '~/components/ui'; +import { SelectDropDown, SelectDropDownPop } from '@librechat/clienti'; import type { TModelSelectProps } from '~/common'; import { cn, cardStyle } from '~/utils/'; diff --git a/client/src/components/Input/ModelSelect/PluginsByIndex.tsx b/client/src/components/Input/ModelSelect/PluginsByIndex.tsx index 6e8d3e75e4..6e11a87fe0 100644 --- a/client/src/components/Input/ModelSelect/PluginsByIndex.tsx +++ b/client/src/components/Input/ModelSelect/PluginsByIndex.tsx @@ -2,10 +2,16 @@ import { useRecoilValue } from 'recoil'; import { ChevronDownIcon } from 'lucide-react'; import { useState, useEffect, useMemo } from 'react'; import { useAvailablePluginsQuery } from 'librechat-data-provider/react-query'; +import { + Button, + SelectDropDown, + SelectDropDownPop, + MultiSelectDropDown, + useMediaQuery, +} from '@librechat/client'; import type { TPlugin } from 'librechat-data-provider'; import type { TModelSelectProps } from '~/common'; -import { Button, SelectDropDown, SelectDropDownPop, MultiSelectDropDown } from '~/components/ui'; -import { useSetIndexOptions, useAuthContext, useMediaQuery, useLocalize } from '~/hooks'; +import { useSetIndexOptions, useAuthContext, useLocalize } from '~/hooks'; import { cn, cardStyle, selectPlugins, processPlugins } from '~/utils'; import MultiSelectPop from './MultiSelectPop'; import store from '~/store'; diff --git a/client/src/components/Input/ModelSelect/SelectDropDownPop.tsx b/client/src/components/Input/ModelSelect/SelectDropDownPop.tsx index 3fd465310e..cfb1c33b12 100644 --- a/client/src/components/Input/ModelSelect/SelectDropDownPop.tsx +++ b/client/src/components/Input/ModelSelect/SelectDropDownPop.tsx @@ -1,7 +1,7 @@ import React from 'react'; +import { useMultiSearch } from '@librechat/client'; import { Root, Trigger, Content, Portal } from '@radix-ui/react-popover'; import MenuItem from '~/components/Chat/Menus/UI/MenuItem'; -import { useMultiSearch } from '~/components'; import type { Option } from '~/common'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils/'; diff --git a/client/src/components/Input/SetKeyDialog/GoogleConfig.tsx b/client/src/components/Input/SetKeyDialog/GoogleConfig.tsx index c6f2eafd24..3efeb5c09c 100644 --- a/client/src/components/Input/SetKeyDialog/GoogleConfig.tsx +++ b/client/src/components/Input/SetKeyDialog/GoogleConfig.tsx @@ -1,11 +1,11 @@ import React from 'react'; import { object, string } from 'zod'; +import { Label } from '@librechat/client'; import { AuthKeys } from 'librechat-data-provider'; import type { TConfigProps } from '~/common'; import FileUpload from '~/components/Chat/Input/Files/FileUpload'; import { useLocalize, useMultipleKeys } from '~/hooks'; import InputWithLabel from './InputWithLabel'; -import { Label } from '~/components/ui'; const CredentialsSchema = object({ client_email: string().email().min(3), diff --git a/client/src/components/Input/SetKeyDialog/InputWithLabel.tsx b/client/src/components/Input/SetKeyDialog/InputWithLabel.tsx index a45ab02325..38eb512f41 100644 --- a/client/src/components/Input/SetKeyDialog/InputWithLabel.tsx +++ b/client/src/components/Input/SetKeyDialog/InputWithLabel.tsx @@ -1,7 +1,7 @@ import { forwardRef } from 'react'; +import { Input, Label } from '@librechat/client'; import type { ChangeEvent, FC, Ref } from 'react'; import { cn, defaultTextPropsLabel, removeFocusOutlines, defaultTextProps } from '~/utils/'; -import { Input, Label } from '~/components/ui'; import { useLocalize } from '~/hooks'; interface InputWithLabelProps { diff --git a/client/src/components/Input/SetKeyDialog/SetKeyDialog.tsx b/client/src/components/Input/SetKeyDialog/SetKeyDialog.tsx index 0cd8cf3d72..dc71e87f8b 100644 --- a/client/src/components/Input/SetKeyDialog/SetKeyDialog.tsx +++ b/client/src/components/Input/SetKeyDialog/SetKeyDialog.tsx @@ -1,13 +1,11 @@ import React, { useState } from 'react'; import { useForm, FormProvider } from 'react-hook-form'; +import { OGDialogTemplate, OGDialog, Dropdown, useToastContext } from '@librechat/client'; import { EModelEndpoint, alternateName, isAssistantsEndpoint } from 'librechat-data-provider'; import type { TDialogProps } from '~/common'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import { useGetEndpointsQuery } from '~/data-provider'; -import { OGDialog, Dropdown } from '~/components/ui'; import { RevokeKeysButton } from '~/components/Nav'; import { useUserKey, useLocalize } from '~/hooks'; -import { useToastContext } from '~/Providers'; import CustomConfig from './CustomEndpoint'; import GoogleConfig from './GoogleConfig'; import OpenAIConfig from './OpenAIConfig'; @@ -171,8 +169,8 @@ const SetKeyDialog = ({ {expiryTime === 'never' ? localize('com_endpoint_config_key_never_expires') : `${localize('com_endpoint_config_key_encryption')} ${new Date( - expiryTime ?? 0, - ).toLocaleString()}`} + expiryTime ?? 0, + ).toLocaleString()}`} = ({ plugin }) => { if (!plugin.loading && latestPlugin === 'self reflection') { return 'Finished'; } else if (latestPlugin === 'self reflection') { - return 'I\'m thinking...'; + return "I'm thinking..."; } else { return ( <> @@ -112,9 +112,7 @@ const Plugin: React.FC = ({ plugin }) => { /> {plugin.outputs && plugin.outputs.length > 0 && ( = React.memo(({ lang, codeRef, blockIndex }) => { const localize = useLocalize(); diff --git a/client/src/components/Nav/AccountSettings.tsx b/client/src/components/Nav/AccountSettings.tsx index fc76e440a0..9b1f4ea92e 100644 --- a/client/src/components/Nav/AccountSettings.tsx +++ b/client/src/components/Nav/AccountSettings.tsx @@ -2,12 +2,11 @@ import { useState, memo } from 'react'; import { useRecoilState } from 'recoil'; import * as Select from '@ariakit/react/select'; import { FileText, LogOut } from 'lucide-react'; -import { LinkIcon, GearIcon, DropdownMenuSeparator } from '~/components'; +import { LinkIcon, GearIcon, DropdownMenuSeparator, UserIcon } from '@librechat/client'; import { useGetStartupConfig, useGetUserBalance } from '~/data-provider'; import FilesView from '~/components/Chat/Input/Files/FilesView'; import { useAuthContext } from '~/hooks/AuthContext'; import useAvatar from '~/hooks/Messages/useAvatar'; -import { UserIcon } from '~/components/svg'; import { useLocalize } from '~/hooks'; import Settings from './Settings'; import store from '~/store'; diff --git a/client/src/components/Nav/Bookmarks/BookmarkNav.tsx b/client/src/components/Nav/Bookmarks/BookmarkNav.tsx index c67ddd12fb..54a000df5e 100644 --- a/client/src/components/Nav/Bookmarks/BookmarkNav.tsx +++ b/client/src/components/Nav/Bookmarks/BookmarkNav.tsx @@ -1,12 +1,12 @@ import { useMemo } from 'react'; import type { FC } from 'react'; import { useRecoilValue } from 'recoil'; +import { TooltipAnchor } from '@librechat/client'; import { Menu, MenuButton, MenuItems } from '@headlessui/react'; import { BookmarkFilledIcon, BookmarkIcon } from '@radix-ui/react-icons'; import { BookmarkContext } from '~/Providers/BookmarkContext'; import { useGetConversationTags } from '~/data-provider'; import BookmarkNavItems from './BookmarkNavItems'; -import { TooltipAnchor } from '~/components/ui'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Nav/ExportConversation/ExportModal.tsx b/client/src/components/Nav/ExportConversation/ExportModal.tsx index ad36a107f8..85a1f9be3c 100644 --- a/client/src/components/Nav/ExportConversation/ExportModal.tsx +++ b/client/src/components/Nav/ExportConversation/ExportModal.tsx @@ -1,8 +1,15 @@ import filenamify from 'filenamify'; import { useEffect, useState, useMemo, useCallback } from 'react'; +import { + OGDialogTemplate, + OGDialog, + Button, + Input, + Label, + Checkbox, + Dropdown, +} from '@librechat/client'; import type { TConversation } from 'librechat-data-provider'; -import { OGDialog, Button, Input, Label, Checkbox, Dropdown } from '~/components/ui'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import { useLocalize, useExportConversation } from '~/hooks'; const TYPE_OPTIONS = [ diff --git a/client/src/components/Nav/Nav.tsx b/client/src/components/Nav/Nav.tsx index a692274719..2862e816de 100644 --- a/client/src/components/Nav/Nav.tsx +++ b/client/src/components/Nav/Nav.tsx @@ -1,12 +1,12 @@ import { useCallback, useEffect, useState, useMemo, memo, lazy, Suspense, useRef } from 'react'; import { useRecoilValue } from 'recoil'; +import { useMediaQuery } from '@librechat/client'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; import type { ConversationListResponse } from 'librechat-data-provider'; import type { InfiniteQueryObserverResult } from '@tanstack/react-query'; import { useLocalize, useHasAccess, - useMediaQuery, useAuthContext, useLocalStorage, useNavScrolling, diff --git a/client/src/components/Nav/NavToggle.tsx b/client/src/components/Nav/NavToggle.tsx index ec8dad939d..002ab5dd89 100644 --- a/client/src/components/Nav/NavToggle.tsx +++ b/client/src/components/Nav/NavToggle.tsx @@ -1,5 +1,5 @@ +import { TooltipAnchor } from '@librechat/client'; import { useLocalize } from '~/hooks'; -import { TooltipAnchor } from '~/components/ui'; import { cn } from '~/utils'; export default function NavToggle({ @@ -35,7 +35,7 @@ export default function NavToggle({ className, '-translate-y-1/2 transition-transform', navVisible ? 'rotate-0' : 'rotate-180', - navVisible && translateX ? 'translate-x-[260px]' : 'translate-x-0 ', + navVisible && translateX ? 'translate-x-[260px]' : 'translate-x-0', )} onMouseEnter={() => setIsHovering(true)} onMouseLeave={() => setIsHovering(false)} diff --git a/client/src/components/Nav/NewChat.tsx b/client/src/components/Nav/NewChat.tsx index ede40688cd..e7e0c1f54b 100644 --- a/client/src/components/Nav/NewChat.tsx +++ b/client/src/components/Nav/NewChat.tsx @@ -3,10 +3,9 @@ import { useRecoilValue } from 'recoil'; import { useNavigate } from 'react-router-dom'; import { useQueryClient } from '@tanstack/react-query'; import { QueryKeys, Constants } from 'librechat-data-provider'; +import { NewChatIcon, MobileSidebar, Sidebar, TooltipAnchor, Button } from '@librechat/client'; import type { TMessage, TStartupConfig } from 'librechat-data-provider'; -import { NewChatIcon, MobileSidebar, Sidebar } from '~/components/svg'; import { getDefaultModelSpec, getModelSpecPreset } from '~/utils'; -import { TooltipAnchor, Button } from '~/components/ui'; import { useLocalize, useNewConvo } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/Settings.tsx b/client/src/components/Nav/Settings.tsx index a0b6535210..d1c05b7bbc 100644 --- a/client/src/components/Nav/Settings.tsx +++ b/client/src/components/Nav/Settings.tsx @@ -1,23 +1,30 @@ import React, { useState, useRef } from 'react'; import * as Tabs from '@radix-ui/react-tabs'; -import { MessageSquare, Command, DollarSign } from 'lucide-react'; import { SettingsTabValues } from 'librechat-data-provider'; -import { useGetStartupConfig } from '~/data-provider'; -import type { TDialogProps } from '~/common'; +import { MessageSquare, Command, DollarSign } from 'lucide-react'; import { Dialog, DialogPanel, DialogTitle, Transition, TransitionChild } from '@headlessui/react'; import { - Personalization, - Commands, + GearIcon, + DataIcon, + UserIcon, + SpeechIcon, + useMediaQuery, + PersonalizationIcon, +} from '@librechat/client'; +import type { TDialogProps } from '~/common'; +import { General, - Account, - Balance, - Speech, - Data, Chat, + Commands, + Speech, + Personalization, + Data, + Balance, + Account, } from './SettingsTabs'; -import { GearIcon, DataIcon, SpeechIcon, UserIcon, PersonalizationIcon } from '~/components/svg'; import usePersonalizationAccess from '~/hooks/usePersonalizationAccess'; -import { useMediaQuery, useLocalize, TranslationKeys } from '~/hooks'; +import { useLocalize, TranslationKeys } from '~/hooks'; +import { useGetStartupConfig } from '~/data-provider'; import { cn } from '~/utils'; export default function Settings({ open, onOpenChange }: TDialogProps) { diff --git a/client/src/components/Nav/SettingsTabs/Account/Avatar.tsx b/client/src/components/Nav/SettingsTabs/Account/Avatar.tsx index 5ecdb5a990..0ce86231a7 100644 --- a/client/src/components/Nav/SettingsTabs/Account/Avatar.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/Avatar.tsx @@ -3,7 +3,6 @@ import { useSetRecoilState } from 'recoil'; import AvatarEditor from 'react-avatar-editor'; import { FileImage, RotateCw, Upload } from 'lucide-react'; import { fileConfig as defaultFileConfig, mergeFileConfig } from 'librechat-data-provider'; -import type { TUser } from 'librechat-data-provider'; import { Slider, Button, @@ -13,9 +12,10 @@ import { OGDialogHeader, OGDialogTitle, OGDialogTrigger, -} from '~/components'; + useToastContext, +} from '@librechat/client'; +import type { TUser } from 'librechat-data-provider'; import { useUploadAvatarMutation, useGetFileConfig } from '~/data-provider'; -import { useToastContext } from '~/Providers'; import { cn, formatBytes } from '~/utils'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Account/BackupCodesItem.tsx b/client/src/components/Nav/SettingsTabs/Account/BackupCodesItem.tsx index a034e2773a..cb05670736 100644 --- a/client/src/components/Nav/SettingsTabs/Account/BackupCodesItem.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/BackupCodesItem.tsx @@ -11,10 +11,10 @@ import { Label, Spinner, TooltipAnchor, -} from '~/components'; + useToastContext, +} from '@librechat/client'; import { useRegenerateBackupCodesMutation } from '~/data-provider'; import { useAuthContext, useLocalize } from '~/hooks'; -import { useToastContext } from '~/Providers'; import { useSetRecoilState } from 'recoil'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Account/DeleteAccount.tsx b/client/src/components/Nav/SettingsTabs/Account/DeleteAccount.tsx index b00e7498bc..bd2e36c45f 100644 --- a/client/src/components/Nav/SettingsTabs/Account/DeleteAccount.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/DeleteAccount.tsx @@ -9,12 +9,12 @@ import { OGDialogTrigger, OGDialogHeader, OGDialogTitle, -} from '~/components'; +} from '@librechat/client'; import { useDeleteUserMutation } from '~/data-provider'; import { useAuthContext } from '~/hooks/AuthContext'; +import { LocalizeFunction } from '~/common'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; -import { LocalizeFunction } from '~/common'; const DeleteAccount = ({ disabled = false }: { title?: string; disabled?: boolean }) => { const localize = useLocalize(); diff --git a/client/src/components/Nav/SettingsTabs/Account/DisableTwoFactorToggle.tsx b/client/src/components/Nav/SettingsTabs/Account/DisableTwoFactorToggle.tsx index e6e44f213a..4d4d83844e 100644 --- a/client/src/components/Nav/SettingsTabs/Account/DisableTwoFactorToggle.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/DisableTwoFactorToggle.tsx @@ -1,7 +1,7 @@ import React from 'react'; // import { motion } from 'framer-motion'; // import { LockIcon, UnlockIcon } from 'lucide-react'; -import { Label, Button } from '~/components'; +import { Label, Button } from '@librechat/client'; import { useLocalize } from '~/hooks'; interface DisableTwoFactorToggleProps { diff --git a/client/src/components/Nav/SettingsTabs/Account/DisplayUsernameMessages.tsx b/client/src/components/Nav/SettingsTabs/Account/DisplayUsernameMessages.tsx index b72adcdb3f..011edc4685 100644 --- a/client/src/components/Nav/SettingsTabs/Account/DisplayUsernameMessages.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/DisplayUsernameMessages.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useRecoilState } from 'recoil'; +import { Switch, Label } from '@librechat/client'; import HoverCardSettings from '../HoverCardSettings'; -import { Switch, Label } from '~/components/ui'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Account/TwoFactorAuthentication.tsx b/client/src/components/Nav/SettingsTabs/Account/TwoFactorAuthentication.tsx index eb88b594ce..0541ffced2 100644 --- a/client/src/components/Nav/SettingsTabs/Account/TwoFactorAuthentication.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/TwoFactorAuthentication.tsx @@ -2,19 +2,25 @@ import React, { useCallback, useState } from 'react'; import { useSetRecoilState } from 'recoil'; import { SmartphoneIcon } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; +import { + OGDialog, + useToastContext, + OGDialogContent, + OGDialogHeader, + OGDialogTitle, + Progress, +} from '@librechat/client'; import type { TUser, TVerify2FARequest } from 'librechat-data-provider'; -import { OGDialog, OGDialogContent, OGDialogHeader, OGDialogTitle, Progress } from '~/components'; -import { SetupPhase, QRPhase, VerifyPhase, BackupPhase, DisablePhase } from './TwoFactorPhases'; -import { DisableTwoFactorToggle } from './DisableTwoFactorToggle'; -import { useAuthContext, useLocalize } from '~/hooks'; -import { useToastContext } from '~/Providers'; -import store from '~/store'; import { useConfirmTwoFactorMutation, useDisableTwoFactorMutation, useEnableTwoFactorMutation, useVerifyTwoFactorMutation, } from '~/data-provider'; +import { SetupPhase, QRPhase, VerifyPhase, BackupPhase, DisablePhase } from './TwoFactorPhases'; +import { DisableTwoFactorToggle } from './DisableTwoFactorToggle'; +import { useAuthContext, useLocalize } from '~/hooks'; +import store from '~/store'; export type Phase = 'setup' | 'qr' | 'verify' | 'backup' | 'disable'; diff --git a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/BackupPhase.tsx b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/BackupPhase.tsx index 67e05a1423..cc986ceda1 100644 --- a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/BackupPhase.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/BackupPhase.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { motion } from 'framer-motion'; import { Download } from 'lucide-react'; -import { Button, Label } from '~/components'; +import { Button, Label } from '@librechat/client'; import { useLocalize } from '~/hooks'; const fadeAnimation = { diff --git a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/DisablePhase.tsx b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/DisablePhase.tsx index fc444b918c..23017bec12 100644 --- a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/DisablePhase.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/DisablePhase.tsx @@ -8,7 +8,7 @@ import { InputOTPSlot, InputOTPSeparator, Spinner, -} from '~/components'; +} from '@librechat/client'; import { useLocalize } from '~/hooks'; const fadeAnimation = { diff --git a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/QRPhase.tsx b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/QRPhase.tsx index 7a0eccae3f..246a090861 100644 --- a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/QRPhase.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/QRPhase.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import { motion } from 'framer-motion'; import { QRCodeSVG } from 'qrcode.react'; import { Copy, Check } from 'lucide-react'; -import { Input, Button, Label } from '~/components'; +import { Input, Button, Label } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/SetupPhase.tsx b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/SetupPhase.tsx index feca4d3254..14910df786 100644 --- a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/SetupPhase.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/SetupPhase.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { QrCode } from 'lucide-react'; import { motion } from 'framer-motion'; -import { Button, Spinner } from '~/components'; +import { Button, Spinner } from '@librechat/client'; import { useLocalize } from '~/hooks'; const fadeAnimation = { diff --git a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/VerifyPhase.tsx b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/VerifyPhase.tsx index e872dfa0d2..b6c4acdb47 100644 --- a/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/VerifyPhase.tsx +++ b/client/src/components/Nav/SettingsTabs/Account/TwoFactorPhases/VerifyPhase.tsx @@ -1,6 +1,12 @@ import React from 'react'; import { motion } from 'framer-motion'; -import { Button, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from '~/components'; +import { + Button, + InputOTP, + InputOTPGroup, + InputOTPSeparator, + InputOTPSlot, +} from '@librechat/client'; import { REGEXP_ONLY_DIGITS } from 'input-otp'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Nav/SettingsTabs/Balance/AutoRefillSettings.tsx b/client/src/components/Nav/SettingsTabs/Balance/AutoRefillSettings.tsx index f34e2bed23..f423980327 100644 --- a/client/src/components/Nav/SettingsTabs/Balance/AutoRefillSettings.tsx +++ b/client/src/components/Nav/SettingsTabs/Balance/AutoRefillSettings.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { TranslationKeys, useLocalize } from '~/hooks'; -import { Label } from '~/components'; +import { Label } from '@librechat/client'; import HoverCardSettings from '~/components/Nav/SettingsTabs/HoverCardSettings'; +import { TranslationKeys, useLocalize } from '~/hooks'; interface AutoRefillSettingsProps { lastRefill: Date; diff --git a/client/src/components/Nav/SettingsTabs/Balance/TokenCreditsItem.tsx b/client/src/components/Nav/SettingsTabs/Balance/TokenCreditsItem.tsx index 745f401b7c..d96ecd98ed 100644 --- a/client/src/components/Nav/SettingsTabs/Balance/TokenCreditsItem.tsx +++ b/client/src/components/Nav/SettingsTabs/Balance/TokenCreditsItem.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { useLocalize } from '~/hooks'; -import { Label } from '~/components'; +import { Label } from '@librechat/client'; import HoverCardSettings from '~/components/Nav/SettingsTabs/HoverCardSettings'; +import { useLocalize } from '~/hooks'; interface TokenCreditsItemProps { tokenCredits?: number; diff --git a/client/src/components/Nav/SettingsTabs/Chat/ChatDirection.tsx b/client/src/components/Nav/SettingsTabs/Chat/ChatDirection.tsx index e4bb42a627..7676617d32 100644 --- a/client/src/components/Nav/SettingsTabs/Chat/ChatDirection.tsx +++ b/client/src/components/Nav/SettingsTabs/Chat/ChatDirection.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useRecoilState } from 'recoil'; +import { Button } from '@librechat/client'; import { useLocalize } from '~/hooks'; -import { Button } from '~/components'; import store from '~/store'; const ChatDirection = () => { diff --git a/client/src/components/Nav/SettingsTabs/Chat/FontSizeSelector.tsx b/client/src/components/Nav/SettingsTabs/Chat/FontSizeSelector.tsx index 211a2bd1d3..c638244bcf 100644 --- a/client/src/components/Nav/SettingsTabs/Chat/FontSizeSelector.tsx +++ b/client/src/components/Nav/SettingsTabs/Chat/FontSizeSelector.tsx @@ -1,6 +1,5 @@ import { useRecoilState } from 'recoil'; -import { Dropdown } from '~/components/ui'; -import { applyFontSize } from '~/utils'; +import { Dropdown, applyFontSize } from '@librechat/client'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Chat/ForkSettings.tsx b/client/src/components/Nav/SettingsTabs/Chat/ForkSettings.tsx index a01fb6ab51..465fa1637a 100644 --- a/client/src/components/Nav/SettingsTabs/Chat/ForkSettings.tsx +++ b/client/src/components/Nav/SettingsTabs/Chat/ForkSettings.tsx @@ -1,7 +1,7 @@ import { useRecoilState } from 'recoil'; -import HoverCardSettings from '../HoverCardSettings'; +import { Dropdown, Switch } from '@librechat/client'; import { ForkOptions } from 'librechat-data-provider'; -import { Dropdown, Switch } from '~/components/ui'; +import HoverCardSettings from '../HoverCardSettings'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Chat/SaveBadgesState.tsx b/client/src/components/Nav/SettingsTabs/Chat/SaveBadgesState.tsx index 1be0171117..31b128bacf 100644 --- a/client/src/components/Nav/SettingsTabs/Chat/SaveBadgesState.tsx +++ b/client/src/components/Nav/SettingsTabs/Chat/SaveBadgesState.tsx @@ -1,7 +1,7 @@ import { useRecoilState } from 'recoil'; +import { Switch } from '@librechat/client'; import HoverCardSettings from '../HoverCardSettings'; -import { Switch } from '~/components/ui'; -import useLocalize from '~/hooks/useLocalize'; +import { useLocalize } from '~/hooks'; import store from '~/store'; export default function SaveBadgesState({ diff --git a/client/src/components/Nav/SettingsTabs/Chat/ShowThinking.tsx b/client/src/components/Nav/SettingsTabs/Chat/ShowThinking.tsx index 6cd20c3040..15342fd945 100644 --- a/client/src/components/Nav/SettingsTabs/Chat/ShowThinking.tsx +++ b/client/src/components/Nav/SettingsTabs/Chat/ShowThinking.tsx @@ -1,7 +1,7 @@ import { useRecoilState } from 'recoil'; +import { Switch } from '@librechat/client'; import HoverCardSettings from '../HoverCardSettings'; -import { Switch } from '~/components/ui'; -import useLocalize from '~/hooks/useLocalize'; +import { useLocalize } from '~/hooks'; import store from '~/store'; export default function SaveDraft({ diff --git a/client/src/components/Nav/SettingsTabs/Commands/AtCommandSwitch.tsx b/client/src/components/Nav/SettingsTabs/Commands/AtCommandSwitch.tsx index 1c4b8242ab..ab30c44dc0 100644 --- a/client/src/components/Nav/SettingsTabs/Commands/AtCommandSwitch.tsx +++ b/client/src/components/Nav/SettingsTabs/Commands/AtCommandSwitch.tsx @@ -1,5 +1,5 @@ import { useRecoilState } from 'recoil'; -import { Switch } from '~/components/ui'; +import { Switch } from '@librechat/client'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Commands/PlusCommandSwitch.tsx b/client/src/components/Nav/SettingsTabs/Commands/PlusCommandSwitch.tsx index 2351633945..2125f94a19 100644 --- a/client/src/components/Nav/SettingsTabs/Commands/PlusCommandSwitch.tsx +++ b/client/src/components/Nav/SettingsTabs/Commands/PlusCommandSwitch.tsx @@ -1,5 +1,5 @@ import { useRecoilState } from 'recoil'; -import { Switch } from '~/components/ui'; +import { Switch } from '@librechat/client'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Commands/SlashCommandSwitch.tsx b/client/src/components/Nav/SettingsTabs/Commands/SlashCommandSwitch.tsx index 18c24583fa..68b4636365 100644 --- a/client/src/components/Nav/SettingsTabs/Commands/SlashCommandSwitch.tsx +++ b/client/src/components/Nav/SettingsTabs/Commands/SlashCommandSwitch.tsx @@ -1,5 +1,5 @@ import { useRecoilState } from 'recoil'; -import { Switch } from '~/components/ui'; +import { Switch } from '@librechat/client'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/DangerButton.tsx b/client/src/components/Nav/SettingsTabs/DangerButton.tsx index c2bdae6cbf..be29d10cc2 100644 --- a/client/src/components/Nav/SettingsTabs/DangerButton.tsx +++ b/client/src/components/Nav/SettingsTabs/DangerButton.tsx @@ -1,12 +1,11 @@ import { forwardRef } from 'react'; import type { ForwardedRef } from 'react'; import { CheckIcon } from 'lucide-react'; -import { DialogButton } from '~/components/ui'; -import { Spinner } from '~/components/svg'; +import { Spinner, DialogButton } from '@librechat/client'; +import HoverCardSettings from './HoverCardSettings'; import type { TDangerButtonProps } from '~/common'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; -import HoverCardSettings from './HoverCardSettings'; const DangerButton = (props: TDangerButtonProps, ref: ForwardedRef) => { const { diff --git a/client/src/components/Nav/SettingsTabs/Data/ClearChats.tsx b/client/src/components/Nav/SettingsTabs/Data/ClearChats.tsx index 11e53ba570..bd745dcee8 100644 --- a/client/src/components/Nav/SettingsTabs/Data/ClearChats.tsx +++ b/client/src/components/Nav/SettingsTabs/Data/ClearChats.tsx @@ -1,9 +1,15 @@ import React, { useState } from 'react'; import { useClearConversationsMutation } from 'librechat-data-provider/react-query'; -import { Label, Button, OGDialog, OGDialogTrigger, Spinner } from '~/components'; -import { useLocalize, useNewConvo } from '~/hooks'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; +import { + OGDialogTemplate, + Label, + Button, + OGDialog, + OGDialogTrigger, + Spinner, +} from '@librechat/client'; import { clearAllConversationStorage } from '~/utils'; +import { useLocalize, useNewConvo } from '~/hooks'; export const ClearChats = () => { const localize = useLocalize(); diff --git a/client/src/components/Nav/SettingsTabs/Data/Data.tsx b/client/src/components/Nav/SettingsTabs/Data/Data.tsx index f2ee695504..8b35691613 100644 --- a/client/src/components/Nav/SettingsTabs/Data/Data.tsx +++ b/client/src/components/Nav/SettingsTabs/Data/Data.tsx @@ -1,8 +1,8 @@ import React, { useState, useRef } from 'react'; +import { useOnClickOutside } from '@librechat/client'; import ImportConversations from './ImportConversations'; import { RevokeAllKeys } from './RevokeAllKeys'; import { DeleteCache } from './DeleteCache'; -import { useOnClickOutside } from '~/hooks'; import { ClearChats } from './ClearChats'; import SharedLinks from './SharedLinks'; diff --git a/client/src/components/Nav/SettingsTabs/Data/DeleteCache.tsx b/client/src/components/Nav/SettingsTabs/Data/DeleteCache.tsx index a2d36da586..573a87e7a4 100644 --- a/client/src/components/Nav/SettingsTabs/Data/DeleteCache.tsx +++ b/client/src/components/Nav/SettingsTabs/Data/DeleteCache.tsx @@ -1,7 +1,14 @@ import React, { useState, useCallback, useRef, useEffect } from 'react'; -import { Label, Button, OGDialog, OGDialogTrigger, Spinner } from '~/components'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { useOnClickOutside, useLocalize } from '~/hooks'; +import { + OGDialogTemplate, + Label, + Button, + OGDialog, + OGDialogTrigger, + Spinner, + useOnClickOutside, +} from '@librechat/client'; +import { useLocalize } from '~/hooks'; export const DeleteCache = ({ disabled = false }: { disabled?: boolean }) => { const localize = useLocalize(); diff --git a/client/src/components/Nav/SettingsTabs/Data/ImportConversations.tsx b/client/src/components/Nav/SettingsTabs/Data/ImportConversations.tsx index e3bafd9152..7837a052c0 100644 --- a/client/src/components/Nav/SettingsTabs/Data/ImportConversations.tsx +++ b/client/src/components/Nav/SettingsTabs/Data/ImportConversations.tsx @@ -1,9 +1,8 @@ import { useState, useRef } from 'react'; import { Import } from 'lucide-react'; +import { Spinner, useToastContext } from '@librechat/client'; import type { TError } from 'librechat-data-provider'; import { useUploadConversationsMutation } from '~/data-provider'; -import { useToastContext } from '~/Providers'; -import { Spinner } from '~/components/svg'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Nav/SettingsTabs/Data/RevokeAllKeys.tsx b/client/src/components/Nav/SettingsTabs/Data/RevokeAllKeys.tsx index 1c03bc58f5..2b98e94c04 100644 --- a/client/src/components/Nav/SettingsTabs/Data/RevokeAllKeys.tsx +++ b/client/src/components/Nav/SettingsTabs/Data/RevokeAllKeys.tsx @@ -1,6 +1,6 @@ import React from 'react'; +import { Label } from '@librechat/client'; import { RevokeKeysButton } from './RevokeKeysButton'; -import { Label } from '~/components/ui'; import { useLocalize } from '~/hooks'; export const RevokeAllKeys = () => { diff --git a/client/src/components/Nav/SettingsTabs/Data/RevokeKeysButton.tsx b/client/src/components/Nav/SettingsTabs/Data/RevokeKeysButton.tsx index 19f706eded..51cf386a5d 100644 --- a/client/src/components/Nav/SettingsTabs/Data/RevokeKeysButton.tsx +++ b/client/src/components/Nav/SettingsTabs/Data/RevokeKeysButton.tsx @@ -1,10 +1,16 @@ +import React, { useState } from 'react'; import { useRevokeAllUserKeysMutation, useRevokeUserKeyMutation, } from 'librechat-data-provider/react-query'; -import React, { useState } from 'react'; -import { Button, Label, OGDialog, OGDialogTrigger, Spinner } from '~/components'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; +import { + OGDialogTemplate, + Button, + Label, + OGDialog, + OGDialogTrigger, + Spinner, +} from '@librechat/client'; import { useLocalize } from '~/hooks'; export const RevokeKeysButton = ({ diff --git a/client/src/components/Nav/SettingsTabs/Data/SharedLinks.tsx b/client/src/components/Nav/SettingsTabs/Data/SharedLinks.tsx index 75143ad8c5..5f24a5770c 100644 --- a/client/src/components/Nav/SettingsTabs/Data/SharedLinks.tsx +++ b/client/src/components/Nav/SettingsTabs/Data/SharedLinks.tsx @@ -6,9 +6,11 @@ import { TrashIcon, MessageSquare, ArrowUpDown, ArrowUp, ArrowDown } from 'lucid import type { SharedLinkItem, SharedLinksListParams } from 'librechat-data-provider'; import { OGDialog, + useToastContext, OGDialogTemplate, OGDialogTrigger, OGDialogContent, + useMediaQuery, OGDialogHeader, OGDialogTitle, TooltipAnchor, @@ -16,11 +18,10 @@ import { Spinner, Button, Label, -} from '~/components'; +} from '@librechat/client'; import { useDeleteSharedLinkMutation, useSharedLinksQuery } from '~/data-provider'; -import { useLocalize, useMediaQuery } from '~/hooks'; +import { useLocalize } from '~/hooks'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; import { formatDate } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/General/ArchivedChats.tsx b/client/src/components/Nav/SettingsTabs/General/ArchivedChats.tsx index 3904d3d554..2e6f6df07d 100644 --- a/client/src/components/Nav/SettingsTabs/General/ArchivedChats.tsx +++ b/client/src/components/Nav/SettingsTabs/General/ArchivedChats.tsx @@ -1,6 +1,5 @@ import { useState } from 'react'; -import { OGDialog, OGDialogTrigger, Button } from '~/components'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; +import { OGDialogTemplate, OGDialog, OGDialogTrigger, Button } from '@librechat/client'; import ArchivedChatsTable from './ArchivedChatsTable'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Nav/SettingsTabs/General/ArchivedChatsTable.tsx b/client/src/components/Nav/SettingsTabs/General/ArchivedChatsTable.tsx index 573dd15729..ad79aed383 100644 --- a/client/src/components/Nav/SettingsTabs/General/ArchivedChatsTable.tsx +++ b/client/src/components/Nav/SettingsTabs/General/ArchivedChatsTable.tsx @@ -2,7 +2,6 @@ import { useState, useCallback, useMemo, useEffect } from 'react'; import debounce from 'lodash/debounce'; import { useRecoilValue } from 'recoil'; import { TrashIcon, ArchiveRestore, ArrowUp, ArrowDown, ArrowUpDown } from 'lucide-react'; -import type { ConversationListParams, TConversation } from 'librechat-data-provider'; import { Button, OGDialog, @@ -13,16 +12,18 @@ import { TooltipAnchor, Spinner, DataTable, -} from '~/components'; + useToastContext, + useMediaQuery, +} from '@librechat/client'; +import type { ConversationListParams, TConversation } from 'librechat-data-provider'; import { useArchiveConvoMutation, useConversationsInfiniteQuery, useDeleteConversationMutation, } from '~/data-provider'; -import { useLocalize, useMediaQuery } from '~/hooks'; import { MinimalIcon } from '~/components/Endpoints'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; +import { useLocalize } from '~/hooks'; import { formatDate } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/General/General.tsx b/client/src/components/Nav/SettingsTabs/General/General.tsx index 4b87e74765..886867980a 100644 --- a/client/src/components/Nav/SettingsTabs/General/General.tsx +++ b/client/src/components/Nav/SettingsTabs/General/General.tsx @@ -1,10 +1,10 @@ import React, { useContext, useCallback } from 'react'; import Cookies from 'js-cookie'; import { useRecoilState } from 'recoil'; -import { ThemeContext, useLocalize } from '~/hooks'; +import { Dropdown, ThemeContext } from '@librechat/client'; import ArchivedChats from './ArchivedChats'; import ToggleSwitch from '../ToggleSwitch'; -import { Dropdown } from '~/components'; +import { useLocalize } from '~/hooks'; import store from '~/store'; const toggleSwitchConfigs = [ diff --git a/client/src/components/Nav/SettingsTabs/HoverCardSettings.tsx b/client/src/components/Nav/SettingsTabs/HoverCardSettings.tsx index 27d4ba7db5..04dcada200 100644 --- a/client/src/components/Nav/SettingsTabs/HoverCardSettings.tsx +++ b/client/src/components/Nav/SettingsTabs/HoverCardSettings.tsx @@ -1,6 +1,11 @@ import React from 'react'; -import { HoverCard, HoverCardTrigger, HoverCardPortal, HoverCardContent } from '~/components/ui'; -import { CircleHelpIcon } from '~/components/svg'; +import { + CircleHelpIcon, + HoverCard, + HoverCardTrigger, + HoverCardPortal, + HoverCardContent, +} from '@librechat/client'; import { useLocalize } from '~/hooks'; const HoverCardSettings = ({ side, text }) => { diff --git a/client/src/components/Nav/SettingsTabs/Personalization.tsx b/client/src/components/Nav/SettingsTabs/Personalization.tsx index 929646a440..50ce452783 100644 --- a/client/src/components/Nav/SettingsTabs/Personalization.tsx +++ b/client/src/components/Nav/SettingsTabs/Personalization.tsx @@ -1,7 +1,6 @@ import { useState, useEffect } from 'react'; +import { Switch, useToastContext } from '@librechat/client'; import { useGetUserQuery, useUpdateMemoryPreferencesMutation } from '~/data-provider'; -import { useToastContext } from '~/Providers'; -import { Switch } from '~/components/ui'; import { useLocalize } from '~/hooks'; interface PersonalizationProps { diff --git a/client/src/components/Nav/SettingsTabs/Speech/ConversationModeSwitch.tsx b/client/src/components/Nav/SettingsTabs/Speech/ConversationModeSwitch.tsx index 3fb662e3c9..5745943e57 100644 --- a/client/src/components/Nav/SettingsTabs/Speech/ConversationModeSwitch.tsx +++ b/client/src/components/Nav/SettingsTabs/Speech/ConversationModeSwitch.tsx @@ -1,5 +1,5 @@ +import { Switch } from '@librechat/client'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { Switch } from '~/components/ui'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Speech/STT/AutoSendTextSelector.tsx b/client/src/components/Nav/SettingsTabs/Speech/STT/AutoSendTextSelector.tsx index 89a910f090..5c5e8e3da3 100644 --- a/client/src/components/Nav/SettingsTabs/Speech/STT/AutoSendTextSelector.tsx +++ b/client/src/components/Nav/SettingsTabs/Speech/STT/AutoSendTextSelector.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useRecoilState, useRecoilValue } from 'recoil'; +import { Slider, InputNumber } from '@librechat/client'; import { cn, defaultTextProps, optionText } from '~/utils/'; -import { Slider, InputNumber } from '~/components/ui'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Speech/STT/AutoTranscribeAudioSwitch.tsx b/client/src/components/Nav/SettingsTabs/Speech/STT/AutoTranscribeAudioSwitch.tsx index a2f3bebc9e..1304f35c63 100644 --- a/client/src/components/Nav/SettingsTabs/Speech/STT/AutoTranscribeAudioSwitch.tsx +++ b/client/src/components/Nav/SettingsTabs/Speech/STT/AutoTranscribeAudioSwitch.tsx @@ -1,5 +1,5 @@ +import { Switch } from '@librechat/client'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { Switch } from '~/components/ui'; import { useLocalize } from '~/hooks'; import store from '~/store'; diff --git a/client/src/components/Nav/SettingsTabs/Speech/STT/DecibelSelector.tsx b/client/src/components/Nav/SettingsTabs/Speech/STT/DecibelSelector.tsx index b7fa279ece..f23de198c6 100755 --- a/client/src/components/Nav/SettingsTabs/Speech/STT/DecibelSelector.tsx +++ b/client/src/components/Nav/SettingsTabs/Speech/STT/DecibelSelector.tsx @@ -1,9 +1,9 @@ import React from 'react'; +import { Slider, InputNumber } from '@librechat/client'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { Slider, InputNumber } from '~/components/ui'; +import { cn, defaultTextProps, optionText } from '~/utils'; import { useLocalize } from '~/hooks'; import store from '~/store'; -import { cn, defaultTextProps, optionText } from '~/utils/'; export default function DecibelSelector() { const localize = useLocalize(); @@ -15,7 +15,9 @@ export default function DecibelSelector() {
{localize('com_nav_db_sensitivity')}
- ({localize('com_endpoint_default_with_num', { 0: '-45' })}) + + ({localize('com_endpoint_default_with_num', { 0: '-45' })}) +
{localize('com_nav_playback_rate')}
- ({localize('com_endpoint_default_with_num', { 0: '1' })}) + + ({localize('com_endpoint_default_with_num', { 0: '1' })}) +
; diff --git a/client/src/components/Plugins/Store/PluginAuthForm.tsx b/client/src/components/Plugins/Store/PluginAuthForm.tsx index 2275bbe96f..f7a214e88b 100644 --- a/client/src/components/Plugins/Store/PluginAuthForm.tsx +++ b/client/src/components/Plugins/Store/PluginAuthForm.tsx @@ -1,7 +1,7 @@ import { Save } from 'lucide-react'; import { useForm } from 'react-hook-form'; +import { HoverCard, HoverCardTrigger } from '@librechat/client'; import { TPlugin, TPluginAuthConfig, TPluginAction } from 'librechat-data-provider'; -import { HoverCard, HoverCardTrigger } from '~/components/ui'; import PluginTooltip from './PluginTooltip'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/Plugins/Store/PluginTooltip.tsx b/client/src/components/Plugins/Store/PluginTooltip.tsx index 0a7df905b2..2f60d1e11f 100644 --- a/client/src/components/Plugins/Store/PluginTooltip.tsx +++ b/client/src/components/Plugins/Store/PluginTooltip.tsx @@ -1,4 +1,4 @@ -import { HoverCardPortal, HoverCardContent } from '~/components/ui'; +import { HoverCardPortal, HoverCardContent } from '@librechat/client'; import './styles.module.css'; type TPluginTooltipProps = { diff --git a/client/src/components/Prompts/AdminSettings.tsx b/client/src/components/Prompts/AdminSettings.tsx index c281cc6bf8..98d2ca8465 100644 --- a/client/src/components/Prompts/AdminSettings.tsx +++ b/client/src/components/Prompts/AdminSettings.tsx @@ -1,10 +1,9 @@ +import { useMemo, useEffect, useState } from 'react'; import * as Ariakit from '@ariakit/react'; import { ExternalLink } from 'lucide-react'; -import { useMemo, useEffect, useState } from 'react'; import { ShieldEllipsis } from 'lucide-react'; import { useForm, Controller } from 'react-hook-form'; import { Permissions, SystemRoles, roleDefaults, PermissionTypes } from 'librechat-data-provider'; -import type { Control, UseFormSetValue, UseFormGetValues } from 'react-hook-form'; import { OGDialog, OGDialogTitle, @@ -13,11 +12,12 @@ import { Button, Switch, DropdownPopup, -} from '~/components/ui'; + OGDialogTemplate, + useToastContext, +} from '@librechat/client'; +import type { Control, UseFormSetValue, UseFormGetValues } from 'react-hook-form'; import { useUpdatePromptPermissionsMutation } from '~/data-provider'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import { useLocalize, useAuthContext } from '~/hooks'; -import { useToastContext } from '~/Providers'; type FormValues = Record; diff --git a/client/src/components/Prompts/BackToChat.tsx b/client/src/components/Prompts/BackToChat.tsx index ea233b72e2..db107c08be 100644 --- a/client/src/components/Prompts/BackToChat.tsx +++ b/client/src/components/Prompts/BackToChat.tsx @@ -1,6 +1,6 @@ -import { useNavigate } from 'react-router-dom'; import { ArrowLeft } from 'lucide-react'; -import { buttonVariants } from '~/components/ui'; +import { useNavigate } from 'react-router-dom'; +import { buttonVariants } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Prompts/Command.tsx b/client/src/components/Prompts/Command.tsx index e670410ae8..e2b8e7af82 100644 --- a/client/src/components/Prompts/Command.tsx +++ b/client/src/components/Prompts/Command.tsx @@ -1,7 +1,7 @@ +import { Input } from '@librechat/client'; import { SquareSlash } from 'lucide-react'; import { Constants } from 'librechat-data-provider'; import { useState, useEffect } from 'react'; -import { Input } from '~/components/ui'; import { useLocalize } from '~/hooks'; const Command = ({ diff --git a/client/src/components/Prompts/DeleteVersion.tsx b/client/src/components/Prompts/DeleteVersion.tsx index ad2852111a..541549145f 100644 --- a/client/src/components/Prompts/DeleteVersion.tsx +++ b/client/src/components/Prompts/DeleteVersion.tsx @@ -1,6 +1,5 @@ import { Trash2 } from 'lucide-react'; -import { Button, OGDialog, OGDialogTrigger, Label } from '~/components/ui'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; +import { Button, OGDialog, OGDialogTrigger, Label, OGDialogTemplate } from '@librechat/client'; import { useLocalize } from '~/hooks'; const DeleteVersion = ({ diff --git a/client/src/components/Prompts/Description.tsx b/client/src/components/Prompts/Description.tsx index 70c1086940..d28a44259d 100644 --- a/client/src/components/Prompts/Description.tsx +++ b/client/src/components/Prompts/Description.tsx @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react'; -import { Input } from '~/components/ui'; +import { Input } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { Info } from 'lucide-react'; diff --git a/client/src/components/Prompts/Groups/AlwaysMakeProd.tsx b/client/src/components/Prompts/Groups/AlwaysMakeProd.tsx index 6a3132775e..17c82c648d 100644 --- a/client/src/components/Prompts/Groups/AlwaysMakeProd.tsx +++ b/client/src/components/Prompts/Groups/AlwaysMakeProd.tsx @@ -1,5 +1,5 @@ import { useRecoilState } from 'recoil'; -import { Switch } from '~/components/ui'; +import { Switch } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Prompts/Groups/AutoSendPrompt.tsx b/client/src/components/Prompts/Groups/AutoSendPrompt.tsx index ce4ae1e051..430506a748 100644 --- a/client/src/components/Prompts/Groups/AutoSendPrompt.tsx +++ b/client/src/components/Prompts/Groups/AutoSendPrompt.tsx @@ -1,5 +1,5 @@ import { useRecoilState } from 'recoil'; -import { Switch } from '~/components/ui'; +import { Switch } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Prompts/Groups/CategorySelector.tsx b/client/src/components/Prompts/Groups/CategorySelector.tsx index 3c57778924..3ceb7242b7 100644 --- a/client/src/components/Prompts/Groups/CategorySelector.tsx +++ b/client/src/components/Prompts/Groups/CategorySelector.tsx @@ -1,9 +1,9 @@ import React, { useMemo } from 'react'; +import { Dropdown } from '@librechat/client'; import { useTranslation } from 'react-i18next'; -import type { ReactNode } from 'react'; import { useFormContext, Controller } from 'react-hook-form'; import { LocalStorageKeys } from 'librechat-data-provider'; -import { Dropdown } from '~/components/ui'; +import type { ReactNode } from 'react'; import { useCategories } from '~/hooks'; interface CategorySelectorProps { diff --git a/client/src/components/Prompts/Groups/ChatGroupItem.tsx b/client/src/components/Prompts/Groups/ChatGroupItem.tsx index f8818b9f68..818b018cfe 100644 --- a/client/src/components/Prompts/Groups/ChatGroupItem.tsx +++ b/client/src/components/Prompts/Groups/ChatGroupItem.tsx @@ -1,13 +1,13 @@ import { useState, useMemo, memo } from 'react'; import { Menu as MenuIcon, Edit as EditIcon, EarthIcon, TextSearch } from 'lucide-react'; -import type { TPromptGroup } from 'librechat-data-provider'; import { DropdownMenu, DropdownMenuItem, DropdownMenuGroup, DropdownMenuContent, DropdownMenuTrigger, -} from '~/components/ui'; +} from '@librechat/client'; +import type { TPromptGroup } from 'librechat-data-provider'; import { useLocalize, useSubmitMessage, useCustomLink, useAuthContext } from '~/hooks'; import VariableDialog from '~/components/Prompts/Groups/VariableDialog'; import PreviewPrompt from '~/components/Prompts/PreviewPrompt'; diff --git a/client/src/components/Prompts/Groups/CreatePromptForm.tsx b/client/src/components/Prompts/Groups/CreatePromptForm.tsx index 02642745fd..0cb04c3779 100644 --- a/client/src/components/Prompts/Groups/CreatePromptForm.tsx +++ b/client/src/components/Prompts/Groups/CreatePromptForm.tsx @@ -1,13 +1,13 @@ import { useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; +import { Button, TextareaAutosize, Input } from '@librechat/client'; import { useForm, Controller, FormProvider } from 'react-hook-form'; import { LocalStorageKeys, PermissionTypes, Permissions } from 'librechat-data-provider'; import CategorySelector from '~/components/Prompts/Groups/CategorySelector'; +import VariablesDropdown from '~/components/Prompts/VariablesDropdown'; import PromptVariables from '~/components/Prompts/PromptVariables'; -import { Button, TextareaAutosize, Input } from '~/components/ui'; import Description from '~/components/Prompts/Description'; import { useLocalize, useHasAccess } from '~/hooks'; -import VariablesDropdown from '~/components/Prompts/VariablesDropdown'; import Command from '~/components/Prompts/Command'; import { useCreatePrompt } from '~/data-provider'; import { cn } from '~/utils'; diff --git a/client/src/components/Prompts/Groups/DashGroupItem.tsx b/client/src/components/Prompts/Groups/DashGroupItem.tsx index 7fb46df047..0a849ec2c9 100644 --- a/client/src/components/Prompts/Groups/DashGroupItem.tsx +++ b/client/src/components/Prompts/Groups/DashGroupItem.tsx @@ -2,13 +2,19 @@ import { memo, useState, useRef, useMemo, useCallback, KeyboardEvent } from 'rea import { EarthIcon, Pen } from 'lucide-react'; import { useNavigate, useParams } from 'react-router-dom'; import { SystemRoles, type TPromptGroup } from 'librechat-data-provider'; +import { + Input, + Label, + Button, + OGDialog, + OGDialogTrigger, + OGDialogTemplate, + TrashIcon, +} from '@librechat/client'; import { useDeletePromptGroup, useUpdatePromptGroup } from '~/data-provider'; -import { Input, Label, Button, OGDialog, OGDialogTrigger } from '~/components/ui'; import CategoryIcon from '~/components/Prompts/Groups/CategoryIcon'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import { useLocalize, useAuthContext } from '~/hooks'; -import { TrashIcon } from '~/components/svg'; -import { cn } from '~/utils/'; +import { cn } from '~/utils'; interface DashGroupItemProps { group: TPromptGroup; diff --git a/client/src/components/Prompts/Groups/FilterPrompts.tsx b/client/src/components/Prompts/Groups/FilterPrompts.tsx index 19d2cde1f9..47608eba9b 100644 --- a/client/src/components/Prompts/Groups/FilterPrompts.tsx +++ b/client/src/components/Prompts/Groups/FilterPrompts.tsx @@ -1,10 +1,10 @@ -import { ListFilter, User, Share2 } from 'lucide-react'; import React, { useState, useCallback, useMemo, useEffect } from 'react'; -import { useRecoilValue, useSetRecoilState } from 'recoil'; +import { ListFilter, User, Share2 } from 'lucide-react'; import { SystemCategories } from 'librechat-data-provider'; -import { usePromptGroupsNav, useLocalize, useCategories } from '~/hooks'; -import { Dropdown, AnimatedSearchInput } from '~/components/ui'; +import { useRecoilValue, useSetRecoilState } from 'recoil'; +import { Dropdown, AnimatedSearchInput } from '@librechat/client'; import type { Option } from '~/common'; +import { usePromptGroupsNav, useLocalize, useCategories } from '~/hooks'; import { cn } from '~/utils'; import store from '~/store'; diff --git a/client/src/components/Prompts/Groups/GroupSidePanel.tsx b/client/src/components/Prompts/Groups/GroupSidePanel.tsx index e359d13ea0..ae263dca54 100644 --- a/client/src/components/Prompts/Groups/GroupSidePanel.tsx +++ b/client/src/components/Prompts/Groups/GroupSidePanel.tsx @@ -1,9 +1,10 @@ import { useMemo } from 'react'; import { useLocation } from 'react-router-dom'; +import { useMediaQuery } from '@librechat/client'; import PanelNavigation from '~/components/Prompts/Groups/PanelNavigation'; import ManagePrompts from '~/components/Prompts/ManagePrompts'; -import { useMediaQuery, usePromptGroupsNav } from '~/hooks'; import List from '~/components/Prompts/Groups/List'; +import { usePromptGroupsNav } from '~/hooks'; import { cn } from '~/utils'; export default function GroupSidePanel({ diff --git a/client/src/components/Prompts/Groups/List.tsx b/client/src/components/Prompts/Groups/List.tsx index 6a7feae40e..dca07b07b0 100644 --- a/client/src/components/Prompts/Groups/List.tsx +++ b/client/src/components/Prompts/Groups/List.tsx @@ -1,12 +1,12 @@ import { Plus } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; +import { Button, Skeleton } from '@librechat/client'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; import type { TPromptGroup, TStartupConfig } from 'librechat-data-provider'; import DashGroupItem from '~/components/Prompts/Groups/DashGroupItem'; import ChatGroupItem from '~/components/Prompts/Groups/ChatGroupItem'; import { useGetStartupConfig } from '~/data-provider'; import { useLocalize, useHasAccess } from '~/hooks'; -import { Button, Skeleton } from '~/components/ui'; export default function List({ groups = [], diff --git a/client/src/components/Prompts/Groups/ListCard.tsx b/client/src/components/Prompts/Groups/ListCard.tsx index 4de783caaa..61f64fef7c 100644 --- a/client/src/components/Prompts/Groups/ListCard.tsx +++ b/client/src/components/Prompts/Groups/ListCard.tsx @@ -1,6 +1,6 @@ import React from 'react'; +import { Label } from '@librechat/client'; import CategoryIcon from '~/components/Prompts/Groups/CategoryIcon'; -import { Label } from '~/components/ui'; export default function ListCard({ category, @@ -26,8 +26,7 @@ export default function ListCard({
{ const [labelInput, setLabelInput] = useState(''); diff --git a/client/src/components/Prompts/PreviewPrompt.tsx b/client/src/components/Prompts/PreviewPrompt.tsx index b36cf15993..b16443cb75 100644 --- a/client/src/components/Prompts/PreviewPrompt.tsx +++ b/client/src/components/Prompts/PreviewPrompt.tsx @@ -1,5 +1,5 @@ +import { OGDialogContent, OGDialog } from '@librechat/client'; import type { TPromptGroup } from 'librechat-data-provider'; -import { OGDialogContent, OGDialog } from '~/components/ui'; import PromptDetails from './PromptDetails'; const PreviewPrompt = ({ diff --git a/client/src/components/Prompts/PromptDetails.tsx b/client/src/components/Prompts/PromptDetails.tsx index 62e9d02e34..f759079d18 100644 --- a/client/src/components/Prompts/PromptDetails.tsx +++ b/client/src/components/Prompts/PromptDetails.tsx @@ -4,6 +4,7 @@ import remarkGfm from 'remark-gfm'; import rehypeKatex from 'rehype-katex'; import remarkMath from 'remark-math'; import supersub from 'remark-supersub'; +import { Label } from '@librechat/client'; import rehypeHighlight from 'rehype-highlight'; import { replaceSpecialVars } from 'librechat-data-provider'; import type { TPromptGroup } from 'librechat-data-provider'; @@ -12,7 +13,6 @@ import { useLocalize, useAuthContext } from '~/hooks'; import CategoryIcon from './Groups/CategoryIcon'; import PromptVariables from './PromptVariables'; import { PromptVariableGfm } from './Markdown'; -import { Label } from '~/components/ui'; import Description from './Description'; import Command from './Command'; diff --git a/client/src/components/Prompts/PromptEditor.tsx b/client/src/components/Prompts/PromptEditor.tsx index 75584f8495..3d7af5ec01 100644 --- a/client/src/components/Prompts/PromptEditor.tsx +++ b/client/src/components/Prompts/PromptEditor.tsx @@ -1,19 +1,18 @@ import { useMemo, memo } from 'react'; +import remarkGfm from 'remark-gfm'; +import remarkMath from 'remark-math'; +import rehypeKatex from 'rehype-katex'; +import supersub from 'remark-supersub'; import { useRecoilValue } from 'recoil'; import { EditIcon } from 'lucide-react'; -import type { PluggableList } from 'unified'; -import rehypeHighlight from 'rehype-highlight'; -import { Controller, useFormContext, useFormState } from 'react-hook-form'; -import remarkGfm from 'remark-gfm'; -import rehypeKatex from 'rehype-katex'; -import remarkMath from 'remark-math'; -import supersub from 'remark-supersub'; import ReactMarkdown from 'react-markdown'; +import rehypeHighlight from 'rehype-highlight'; +import { SaveIcon, CrossIcon, TextareaAutosize } from '@librechat/client'; +import { Controller, useFormContext, useFormState } from 'react-hook-form'; +import type { PluggableList } from 'unified'; import { codeNoExecution } from '~/components/Chat/Messages/Content/MarkdownComponents'; import AlwaysMakeProd from '~/components/Prompts/Groups/AlwaysMakeProd'; -import { SaveIcon, CrossIcon } from '~/components/svg'; import VariablesDropdown from './VariablesDropdown'; -import { TextareaAutosize } from '~/components/ui'; import { PromptVariableGfm } from './Markdown'; import { PromptsEditorMode } from '~/common'; import { cn, langSubset } from '~/utils'; diff --git a/client/src/components/Prompts/PromptForm.tsx b/client/src/components/Prompts/PromptForm.tsx index e66e539d2c..32277d5b6d 100644 --- a/client/src/components/Prompts/PromptForm.tsx +++ b/client/src/components/Prompts/PromptForm.tsx @@ -1,11 +1,12 @@ +import { useEffect, useState, useMemo, useCallback, useRef } from 'react'; import debounce from 'lodash/debounce'; import { useRecoilValue } from 'recoil'; import { Menu, Rocket } from 'lucide-react'; import { useForm, FormProvider } from 'react-hook-form'; import { useParams, useOutletContext } from 'react-router-dom'; -import { useEffect, useState, useMemo, useCallback, useRef } from 'react'; -import type { TCreatePrompt } from 'librechat-data-provider'; +import { Button, Skeleton, useToastContext } from '@librechat/client'; import { SystemRoles, PermissionTypes, Permissions } from 'librechat-data-provider'; +import type { TCreatePrompt } from 'librechat-data-provider'; import { useCreatePrompt, useGetPrompts, @@ -17,10 +18,8 @@ import { import { useAuthContext, usePromptGroupsNav, useHasAccess, useLocalize } from '~/hooks'; import CategorySelector from './Groups/CategorySelector'; import NoPromptGroup from './Groups/NoPromptGroup'; -import { Button, Skeleton } from '~/components/ui'; import PromptVariables from './PromptVariables'; import { cn, findPromptGroup } from '~/utils'; -import { useToastContext } from '~/Providers'; import PromptVersions from './PromptVersions'; import { PromptsEditorMode } from '~/common'; import DeleteConfirm from './DeleteVersion'; @@ -287,18 +286,18 @@ const PromptForm = () => { {editorMode === PromptsEditorMode.ADVANCED && (isLoadingPrompts ? Array.from({ length: 6 }).map((_, index: number) => ( -
- -
- )) +
+ +
+ )) : prompts.length > 0 && ( - - ))} + + ))}
); diff --git a/client/src/components/Prompts/PromptName.tsx b/client/src/components/Prompts/PromptName.tsx index 3066d629e6..cfb18ec973 100644 --- a/client/src/components/Prompts/PromptName.tsx +++ b/client/src/components/Prompts/PromptName.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState, useRef } from 'react'; -import { Button, Label, Input, EditIcon, SaveIcon } from '~/components'; +import { Button, Label, Input, EditIcon, SaveIcon } from '@librechat/client'; type Props = { name?: string; diff --git a/client/src/components/Prompts/PromptVariables.tsx b/client/src/components/Prompts/PromptVariables.tsx index 783b56cba3..c08ae8cd87 100644 --- a/client/src/components/Prompts/PromptVariables.tsx +++ b/client/src/components/Prompts/PromptVariables.tsx @@ -1,10 +1,10 @@ import React, { useMemo } from 'react'; import { Variable } from 'lucide-react'; import ReactMarkdown from 'react-markdown'; +import { Separator } from '@librechat/client'; import { specialVariables } from 'librechat-data-provider'; import { cn, extractUniqueVariables } from '~/utils'; import { CodeVariableGfm } from './Markdown'; -import { Separator } from '~/components/ui'; import { useLocalize } from '~/hooks'; const specialVariableClasses = diff --git a/client/src/components/Prompts/PromptVersions.tsx b/client/src/components/Prompts/PromptVersions.tsx index b221087de4..cce643edcd 100644 --- a/client/src/components/Prompts/PromptVersions.tsx +++ b/client/src/components/Prompts/PromptVersions.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { format } from 'date-fns'; import { Layers3, Crown, Zap } from 'lucide-react'; +import { Tag, TooltipAnchor, Label } from '@librechat/client'; import type { TPrompt, TPromptGroup } from 'librechat-data-provider'; -import { Tag, TooltipAnchor, Label } from '~/components/ui'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/Prompts/SharePrompt.tsx b/client/src/components/Prompts/SharePrompt.tsx index 2aa9f23b70..8127afe282 100644 --- a/client/src/components/Prompts/SharePrompt.tsx +++ b/client/src/components/Prompts/SharePrompt.tsx @@ -2,11 +2,6 @@ import React, { useEffect, useMemo } from 'react'; import { Share2Icon } from 'lucide-react'; import { useForm, Controller } from 'react-hook-form'; import { Permissions } from 'librechat-data-provider'; -import type { - TPromptGroup, - TStartupConfig, - TUpdatePromptGroupPayload, -} from 'librechat-data-provider'; import { Button, Switch, @@ -15,9 +10,14 @@ import { OGDialogClose, OGDialogContent, OGDialogTrigger, -} from '~/components/ui'; + useToastContext, +} from '@librechat/client'; +import type { + TPromptGroup, + TStartupConfig, + TUpdatePromptGroupPayload, +} from 'librechat-data-provider'; import { useUpdatePromptGroup, useGetStartupConfig } from '~/data-provider'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; type FormValues = { diff --git a/client/src/components/Prompts/SkeletonForm.tsx b/client/src/components/Prompts/SkeletonForm.tsx index f97838c0d0..fbaf17f3a1 100644 --- a/client/src/components/Prompts/SkeletonForm.tsx +++ b/client/src/components/Prompts/SkeletonForm.tsx @@ -1,4 +1,4 @@ -import { Skeleton } from '~/components/ui'; +import { Skeleton } from '@librechat/client'; export default function SkeletonForm() { return ( diff --git a/client/src/components/Prompts/VariablesDropdown.tsx b/client/src/components/Prompts/VariablesDropdown.tsx index e91ded0e6b..072fc91f5e 100644 --- a/client/src/components/Prompts/VariablesDropdown.tsx +++ b/client/src/components/Prompts/VariablesDropdown.tsx @@ -2,9 +2,9 @@ import { useState, useId } from 'react'; import { PlusCircle } from 'lucide-react'; import * as Menu from '@ariakit/react/menu'; import { useFormContext } from 'react-hook-form'; +import { DropdownPopup } from '@librechat/client'; import { specialVariables } from 'librechat-data-provider'; import type { TSpecialVarLabel } from 'librechat-data-provider'; -import { DropdownPopup } from '~/components'; import { useLocalize } from '~/hooks'; interface VariableOption { diff --git a/client/src/components/Share/MessageIcon.tsx b/client/src/components/Share/MessageIcon.tsx index 0d198bf139..2e7d6989be 100644 --- a/client/src/components/Share/MessageIcon.tsx +++ b/client/src/components/Share/MessageIcon.tsx @@ -1,10 +1,10 @@ import { useMemo } from 'react'; +import { UserIcon } from '@librechat/client'; import type { TMessage, Assistant, Agent } from 'librechat-data-provider'; import type { TMessageProps } from '~/common'; import MessageEndpointIcon from '../Endpoints/MessageEndpointIcon'; import ConvoIconURL from '~/components/Endpoints/ConvoIconURL'; import { getIconEndpoint } from '~/utils'; -import { UserIcon } from '../svg'; export default function MessageIcon( props: Pick & { diff --git a/client/src/components/Share/ShareView.tsx b/client/src/components/Share/ShareView.tsx index 8929e99b1b..2d1f52ac79 100644 --- a/client/src/components/Share/ShareView.tsx +++ b/client/src/components/Share/ShareView.tsx @@ -1,10 +1,10 @@ import { memo } from 'react'; +import { Spinner } from '@librechat/client'; import { useParams } from 'react-router-dom'; import { useGetSharedMessages } from 'librechat-data-provider/react-query'; import { useLocalize, useDocumentTitle } from '~/hooks'; import { useGetStartupConfig } from '~/data-provider'; import { ShareContext } from '~/Providers'; -import { Spinner } from '~/components/svg'; import MessagesView from './MessagesView'; import { buildTree } from '~/utils'; import Footer from '../Chat/Footer'; diff --git a/client/src/components/SidePanel/Agents/ActionsInput.tsx b/client/src/components/SidePanel/Agents/ActionsInput.tsx index b2c2b9d51b..9aeca38114 100644 --- a/client/src/components/SidePanel/Agents/ActionsInput.tsx +++ b/client/src/components/SidePanel/Agents/ActionsInput.tsx @@ -1,6 +1,7 @@ -import debounce from 'lodash/debounce'; import { useState, useEffect } from 'react'; +import debounce from 'lodash/debounce'; import { useFormContext } from 'react-hook-form'; +import { Spinner, useToastContext } from '@librechat/client'; import { validateAndParseOpenAPISpec, openapiToFunction, @@ -17,9 +18,7 @@ import type { Spec } from './ActionsTable'; import ActionCallback from '~/components/SidePanel/Builder/ActionCallback'; import { ActionsTable, columns } from './ActionsTable'; import { useUpdateAgentAction } from '~/data-provider'; -import { useToastContext } from '~/Providers'; -import useLocalize from '~/hooks/useLocalize'; -import { Spinner } from '~/components/svg'; +import { useLocalize } from '~/hooks'; import { logger } from '~/utils'; const debouncedValidation = debounce( diff --git a/client/src/components/SidePanel/Agents/ActionsPanel.tsx b/client/src/components/SidePanel/Agents/ActionsPanel.tsx index 89b9a87f92..bbd9a2978c 100644 --- a/client/src/components/SidePanel/Agents/ActionsPanel.tsx +++ b/client/src/components/SidePanel/Agents/ActionsPanel.tsx @@ -1,21 +1,26 @@ import { useEffect } from 'react'; import { ChevronLeft } from 'lucide-react'; import { useForm, FormProvider } from 'react-hook-form'; + import { AuthTypeEnum, AuthorizationTypeEnum, TokenExchangeMethodEnum, } from 'librechat-data-provider'; +import { + OGDialogTemplate, + TrashIcon, + OGDialog, + OGDialogTrigger, + Label, + useToastContext, +} from '@librechat/client'; import ActionsAuth from '~/components/SidePanel/Builder/ActionsAuth'; import { useAgentPanelContext } from '~/Providers/AgentPanelContext'; -import { OGDialog, OGDialogTrigger, Label } from '~/components/ui'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import { useDeleteAgentAction } from '~/data-provider'; import type { ActionAuthForm } from '~/common'; -import useLocalize from '~/hooks/useLocalize'; -import { useToastContext } from '~/Providers'; -import { TrashIcon } from '~/components/svg'; import ActionsInput from './ActionsInput'; +import { useLocalize } from '~/hooks'; import { Panel } from '~/common'; export default function ActionsPanel() { diff --git a/client/src/components/SidePanel/Agents/AdminSettings.tsx b/client/src/components/SidePanel/Agents/AdminSettings.tsx index fe2c62cb5c..35a6b6c6a6 100644 --- a/client/src/components/SidePanel/Agents/AdminSettings.tsx +++ b/client/src/components/SidePanel/Agents/AdminSettings.tsx @@ -3,12 +3,19 @@ import { useMemo, useEffect, useState } from 'react'; import { ShieldEllipsis } from 'lucide-react'; import { useForm, Controller } from 'react-hook-form'; import { Permissions, SystemRoles, roleDefaults, PermissionTypes } from 'librechat-data-provider'; +import { + OGDialog, + OGDialogTitle, + OGDialogContent, + OGDialogTrigger, + Button, + Switch, + DropdownPopup, + useToastContext, +} from '@librechat/client'; import type { Control, UseFormSetValue, UseFormGetValues } from 'react-hook-form'; -import { OGDialog, OGDialogTitle, OGDialogContent, OGDialogTrigger } from '~/components/ui'; import { useUpdateAgentPermissionsMutation } from '~/data-provider'; -import { Button, Switch, DropdownPopup } from '~/components/ui'; import { useLocalize, useAuthContext } from '~/hooks'; -import { useToastContext } from '~/Providers'; type FormValues = Record; diff --git a/client/src/components/SidePanel/Agents/Advanced/AdvancedButton.tsx b/client/src/components/SidePanel/Agents/Advanced/AdvancedButton.tsx index e75047b76d..e22d6aa513 100644 --- a/client/src/components/SidePanel/Agents/Advanced/AdvancedButton.tsx +++ b/client/src/components/SidePanel/Agents/Advanced/AdvancedButton.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Settings2 } from 'lucide-react'; -import { Button } from '~/components/ui'; +import { Button } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { Panel } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/Advanced/AgentChain.tsx b/client/src/components/SidePanel/Agents/Advanced/AgentChain.tsx index 0a60705ce2..d4575d3b26 100644 --- a/client/src/components/SidePanel/Agents/Advanced/AgentChain.tsx +++ b/client/src/components/SidePanel/Agents/Advanced/AgentChain.tsx @@ -1,13 +1,18 @@ import { X, Link2, PlusCircle } from 'lucide-react'; import { EModelEndpoint } from 'librechat-data-provider'; import React, { useState, useMemo, useCallback, useEffect } from 'react'; +import { + ControlCombobox, + HoverCard, + HoverCardPortal, + HoverCardContent, + HoverCardTrigger, + CircleHelpIcon, +} from '@librechat/client'; import type { ControllerRenderProps } from 'react-hook-form'; import type { TMessage } from 'librechat-data-provider'; import type { AgentForm, OptionWithIcon } from '~/common'; -import ControlCombobox from '~/components/ui/ControlCombobox'; -import { HoverCard, HoverCardPortal, HoverCardContent, HoverCardTrigger } from '~/components/ui'; import MessageIcon from '~/components/Share/MessageIcon'; -import { CircleHelpIcon } from '~/components/svg'; import { useAgentsMapContext } from '~/Providers'; import { useLocalize } from '~/hooks'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/Advanced/MaxAgentSteps.tsx b/client/src/components/SidePanel/Agents/Advanced/MaxAgentSteps.tsx index 5e334282f9..09af3fd154 100644 --- a/client/src/components/SidePanel/Agents/Advanced/MaxAgentSteps.tsx +++ b/client/src/components/SidePanel/Agents/Advanced/MaxAgentSteps.tsx @@ -1,13 +1,13 @@ import { useFormContext, Controller } from 'react-hook-form'; -import type { AgentForm } from '~/common'; import { HoverCard, FormInput, HoverCardPortal, HoverCardContent, HoverCardTrigger, -} from '~/components/ui'; -import { CircleHelpIcon } from '~/components/svg'; + CircleHelpIcon, +} from '@librechat/client'; +import type { AgentForm } from '~/common'; import { useLocalize } from '~/hooks'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/AgentAvatar.tsx b/client/src/components/SidePanel/Agents/AgentAvatar.tsx index 80b58e787b..5d0790012b 100644 --- a/client/src/components/SidePanel/Agents/AgentAvatar.tsx +++ b/client/src/components/SidePanel/Agents/AgentAvatar.tsx @@ -1,5 +1,6 @@ -import * as Popover from '@radix-ui/react-popover'; import { useState, useEffect, useRef } from 'react'; +import * as Popover from '@radix-ui/react-popover'; +import { useToastContext } from '@librechat/client'; import { useQueryClient } from '@tanstack/react-query'; import { fileConfig as defaultFileConfig, @@ -16,7 +17,6 @@ import type { } from 'librechat-data-provider'; import { useUploadAgentAvatarMutation, useGetFileConfig } from '~/data-provider'; import { AgentAvatarRender, NoImage, AvatarMenu } from './Images'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; import { formatBytes } from '~/utils'; diff --git a/client/src/components/SidePanel/Agents/AgentConfig.tsx b/client/src/components/SidePanel/Agents/AgentConfig.tsx index 84229174cf..1acd35b65f 100644 --- a/client/src/components/SidePanel/Agents/AgentConfig.tsx +++ b/client/src/components/SidePanel/Agents/AgentConfig.tsx @@ -1,4 +1,5 @@ import React, { useState, useMemo, useCallback } from 'react'; +import { useToastContext } from '@librechat/client'; import { EModelEndpoint } from 'librechat-data-provider'; import { Controller, useWatch, useFormContext } from 'react-hook-form'; import type { AgentForm, AgentPanelProps, IconComponentTypes } from '~/common'; @@ -10,7 +11,7 @@ import { getIconKey, cn, } from '~/utils'; -import { useToastContext, useFileMapContext, useAgentPanelContext } from '~/Providers'; +import { useFileMapContext, useAgentPanelContext } from '~/Providers'; import useAgentCapabilities from '~/hooks/Agents/useAgentCapabilities'; import Action from '~/components/SidePanel/Builder/Action'; import { ToolSelectDialog } from '~/components/Tools'; diff --git a/client/src/components/SidePanel/Agents/AgentFooter.tsx b/client/src/components/SidePanel/Agents/AgentFooter.tsx index 2b3aa1bcd7..d0c5ab3e7a 100644 --- a/client/src/components/SidePanel/Agents/AgentFooter.tsx +++ b/client/src/components/SidePanel/Agents/AgentFooter.tsx @@ -1,16 +1,16 @@ +import { Spinner } from '@librechat/client'; import { useWatch, useFormContext } from 'react-hook-form'; import { SystemRoles, Permissions, PermissionTypes } from 'librechat-data-provider'; import type { AgentForm, AgentPanelProps } from '~/common'; import { useLocalize, useAuthContext, useHasAccess } from '~/hooks'; import { useUpdateAgentMutation } from '~/data-provider'; import AdvancedButton from './Advanced/AdvancedButton'; +import VersionButton from './Version/VersionButton'; import DuplicateAgent from './DuplicateAgent'; import AdminSettings from './AdminSettings'; import DeleteButton from './DeleteButton'; -import { Spinner } from '~/components'; import ShareAgent from './ShareAgent'; import { Panel } from '~/common'; -import VersionButton from './Version/VersionButton'; export default function AgentFooter({ activePanel, diff --git a/client/src/components/SidePanel/Agents/AgentPanel.tsx b/client/src/components/SidePanel/Agents/AgentPanel.tsx index 1df54f829d..37a7d33d59 100644 --- a/client/src/components/SidePanel/Agents/AgentPanel.tsx +++ b/client/src/components/SidePanel/Agents/AgentPanel.tsx @@ -1,5 +1,6 @@ import { Plus } from 'lucide-react'; import React, { useMemo, useCallback } from 'react'; +import { Button, useToastContext } from '@librechat/client'; import { useWatch, useForm, FormProvider } from 'react-hook-form'; import { useGetModelsQuery } from 'librechat-data-provider/react-query'; import { @@ -20,11 +21,9 @@ import { useSelectAgent, useLocalize, useAuthContext } from '~/hooks'; import { useAgentPanelContext } from '~/Providers/AgentPanelContext'; import AgentPanelSkeleton from './AgentPanelSkeleton'; import AdvancedPanel from './Advanced/AdvancedPanel'; -import { useToastContext } from '~/Providers'; import AgentConfig from './AgentConfig'; import AgentSelect from './AgentSelect'; import AgentFooter from './AgentFooter'; -import { Button } from '~/components'; import ModelPanel from './ModelPanel'; import { Panel } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/AgentPanelSkeleton.tsx b/client/src/components/SidePanel/Agents/AgentPanelSkeleton.tsx index d10271f112..8ecc13e0c4 100644 --- a/client/src/components/SidePanel/Agents/AgentPanelSkeleton.tsx +++ b/client/src/components/SidePanel/Agents/AgentPanelSkeleton.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Skeleton } from '~/components/ui'; +import { Skeleton } from '@librechat/client'; export default function AgentPanelSkeleton() { return ( diff --git a/client/src/components/SidePanel/Agents/AgentSelect.tsx b/client/src/components/SidePanel/Agents/AgentSelect.tsx index 496dd4ee6d..af852c5cfe 100644 --- a/client/src/components/SidePanel/Agents/AgentSelect.tsx +++ b/client/src/components/SidePanel/Agents/AgentSelect.tsx @@ -1,4 +1,5 @@ import { EarthIcon } from 'lucide-react'; +import { ControlCombobox } from '@librechat/client'; import { useCallback, useEffect, useRef } from 'react'; import { useFormContext, Controller } from 'react-hook-form'; import { AgentCapabilities, defaultAgentFormValues } from 'librechat-data-provider'; @@ -7,7 +8,6 @@ import type { Agent, AgentCreateParams } from 'librechat-data-provider'; import type { TAgentCapabilities, AgentForm } from '~/common'; import { cn, createProviderOption, processAgentOption, getDefaultAgentFormValues } from '~/utils'; import { useListAgentsQuery, useGetStartupConfig } from '~/data-provider'; -import ControlCombobox from '~/components/ui/ControlCombobox'; import { useLocalize } from '~/hooks'; const keys = new Set(Object.keys(defaultAgentFormValues)); diff --git a/client/src/components/SidePanel/Agents/AgentTool.tsx b/client/src/components/SidePanel/Agents/AgentTool.tsx index 5703cede0a..07857c7be0 100644 --- a/client/src/components/SidePanel/Agents/AgentTool.tsx +++ b/client/src/components/SidePanel/Agents/AgentTool.tsx @@ -4,13 +4,21 @@ import { ChevronDown } from 'lucide-react'; import { useFormContext } from 'react-hook-form'; import * as AccordionPrimitive from '@radix-ui/react-accordion'; import { useUpdateUserPluginsMutation } from 'librechat-data-provider/react-query'; +import { + Accordion, + AccordionItem, + AccordionContent, + TrashIcon, + CircleHelpIcon, + OGDialog, + OGDialogTrigger, + Label, + Checkbox, + OGDialogTemplate, + useToastContext, +} from '@librechat/client'; import type { AgentToolType } from 'librechat-data-provider'; import type { AgentForm } from '~/common'; -import { Accordion, AccordionItem, AccordionContent } from '~/components/ui/Accordion'; -import { OGDialog, OGDialogTrigger, Label, Checkbox } from '~/components/ui'; -import { TrashIcon, CircleHelpIcon } from '~/components/svg'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/SidePanel/Agents/Artifacts.tsx b/client/src/components/SidePanel/Agents/Artifacts.tsx index a8b0bba7c6..4d401a1e1e 100644 --- a/client/src/components/SidePanel/Agents/Artifacts.tsx +++ b/client/src/components/SidePanel/Agents/Artifacts.tsx @@ -1,15 +1,15 @@ import { useFormContext } from 'react-hook-form'; import { ArtifactModes, AgentCapabilities } from 'librechat-data-provider'; -import type { AgentForm } from '~/common'; import { Switch, HoverCard, HoverCardPortal, HoverCardContent, HoverCardTrigger, -} from '~/components/ui'; + CircleHelpIcon, +} from '@librechat/client'; +import type { AgentForm } from '~/common'; import { useLocalize } from '~/hooks'; -import { CircleHelpIcon } from '~/components/svg'; import { ESide } from '~/common'; export default function Artifacts() { diff --git a/client/src/components/SidePanel/Agents/Code/Action.tsx b/client/src/components/SidePanel/Agents/Code/Action.tsx index e655101b76..526e3c7311 100644 --- a/client/src/components/SidePanel/Agents/Code/Action.tsx +++ b/client/src/components/SidePanel/Agents/Code/Action.tsx @@ -1,16 +1,16 @@ import { KeyRoundIcon } from 'lucide-react'; import { AuthType, AgentCapabilities } from 'librechat-data-provider'; import { useFormContext, Controller, useWatch } from 'react-hook-form'; -import type { AgentForm } from '~/common'; import { Checkbox, HoverCard, + CircleHelpIcon, HoverCardContent, HoverCardPortal, HoverCardTrigger, -} from '~/components/ui'; +} from '@librechat/client'; +import type { AgentForm } from '~/common'; import { useLocalize, useCodeApiKeyForm } from '~/hooks'; -import { CircleHelpIcon } from '~/components/svg'; import ApiKeyDialog from './ApiKeyDialog'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/Code/ApiKeyDialog.tsx b/client/src/components/SidePanel/Agents/Code/ApiKeyDialog.tsx index b2fcac1b5a..af586cdb99 100644 --- a/client/src/components/SidePanel/Agents/Code/ApiKeyDialog.tsx +++ b/client/src/components/SidePanel/Agents/Code/ApiKeyDialog.tsx @@ -1,9 +1,8 @@ +import { OGDialogTemplate, Input, Button, OGDialog } from '@librechat/client'; import type { UseFormRegister, UseFormHandleSubmit } from 'react-hook-form'; import type { ApiKeyFormData } from '~/common'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { Input, Button, OGDialog } from '~/components/ui'; -import { useLocalize } from '~/hooks'; import type { RefObject } from 'react'; +import { useLocalize } from '~/hooks'; export default function ApiKeyDialog({ isOpen, diff --git a/client/src/components/SidePanel/Agents/Code/Files.tsx b/client/src/components/SidePanel/Agents/Code/Files.tsx index 1775ee88a9..412004b92b 100644 --- a/client/src/components/SidePanel/Agents/Code/Files.tsx +++ b/client/src/components/SidePanel/Agents/Code/Files.tsx @@ -1,5 +1,6 @@ import { useState, useRef } from 'react'; import { useFormContext } from 'react-hook-form'; +import { AttachmentIcon } from '@librechat/client'; import { EToolResources, EModelEndpoint, @@ -12,7 +13,6 @@ import type { ExtendedFile, AgentForm } from '~/common'; import { useFileHandling, useLocalize, useLazyEffect } from '~/hooks'; import FileRow from '~/components/Chat/Input/Files/FileRow'; import { useGetFileConfig } from '~/data-provider'; -import { AttachmentIcon } from '~/components/svg'; import { useChatContext } from '~/Providers'; const tool_resource = EToolResources.execute_code; diff --git a/client/src/components/SidePanel/Agents/DeleteButton.tsx b/client/src/components/SidePanel/Agents/DeleteButton.tsx index bfe08c666f..d6e0da5485 100644 --- a/client/src/components/SidePanel/Agents/DeleteButton.tsx +++ b/client/src/components/SidePanel/Agents/DeleteButton.tsx @@ -1,13 +1,18 @@ import { useFormContext } from 'react-hook-form'; +import { + OGDialog, + OGDialogTrigger, + Label, + OGDialogTemplate, + TrashIcon, + useToastContext, +} from '@librechat/client'; import type { Agent, AgentCreateParams } from 'librechat-data-provider'; import type { UseMutationResult } from '@tanstack/react-query'; import { cn, logger, removeFocusOutlines, getDefaultAgentFormValues } from '~/utils'; -import { OGDialog, OGDialogTrigger, Label } from '~/components/ui'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { useChatContext, useToastContext } from '~/Providers'; import { useLocalize, useSetIndexOptions } from '~/hooks'; import { useDeleteAgentMutation } from '~/data-provider'; -import { TrashIcon } from '~/components/svg'; +import { useChatContext } from '~/Providers'; export default function DeleteButton({ agent_id, diff --git a/client/src/components/SidePanel/Agents/DuplicateAgent.tsx b/client/src/components/SidePanel/Agents/DuplicateAgent.tsx index 35ffd51754..3d0151d302 100644 --- a/client/src/components/SidePanel/Agents/DuplicateAgent.tsx +++ b/client/src/components/SidePanel/Agents/DuplicateAgent.tsx @@ -1,7 +1,7 @@ import { CopyIcon } from 'lucide-react'; +import { useToastContext } from '@librechat/client'; import { useDuplicateAgentMutation } from '~/data-provider'; import { cn, removeFocusOutlines } from '~/utils'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; export default function DuplicateAgent({ agent_id }: { agent_id: string }) { diff --git a/client/src/components/SidePanel/Agents/FileContext.tsx b/client/src/components/SidePanel/Agents/FileContext.tsx index eb0e9e9a13..299967579b 100644 --- a/client/src/components/SidePanel/Agents/FileContext.tsx +++ b/client/src/components/SidePanel/Agents/FileContext.tsx @@ -5,12 +5,18 @@ import { mergeFileConfig, fileConfig as defaultFileConfig, } from 'librechat-data-provider'; +import { + HoverCard, + HoverCardContent, + HoverCardPortal, + HoverCardTrigger, + AttachmentIcon, + CircleHelpIcon, +} from '@librechat/client'; import type { ExtendedFile } from '~/common'; import { useFileHandling, useLocalize, useLazyEffect } from '~/hooks'; import FileRow from '~/components/Chat/Input/Files/FileRow'; import { useGetFileConfig } from '~/data-provider'; -import { HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger } from '~/components/ui'; -import { AttachmentIcon, CircleHelpIcon } from '~/components/svg'; import { useChatContext } from '~/Providers'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/FileSearch.tsx b/client/src/components/SidePanel/Agents/FileSearch.tsx index ad640dbcf1..3eb55a81fc 100644 --- a/client/src/components/SidePanel/Agents/FileSearch.tsx +++ b/client/src/components/SidePanel/Agents/FileSearch.tsx @@ -1,5 +1,6 @@ import { useState, useRef } from 'react'; import { useFormContext } from 'react-hook-form'; +import { AttachmentIcon } from '@librechat/client'; import { EModelEndpoint, EToolResources, @@ -12,7 +13,6 @@ import { useFileHandling, useLocalize, useLazyEffect } from '~/hooks'; import FileRow from '~/components/Chat/Input/Files/FileRow'; import FileSearchCheckbox from './FileSearchCheckbox'; import { useGetFileConfig } from '~/data-provider'; -import { AttachmentIcon } from '~/components/svg'; import { useChatContext } from '~/Providers'; export default function FileSearch({ diff --git a/client/src/components/SidePanel/Agents/FileSearchCheckbox.tsx b/client/src/components/SidePanel/Agents/FileSearchCheckbox.tsx index b0e3e4cbca..174123f388 100644 --- a/client/src/components/SidePanel/Agents/FileSearchCheckbox.tsx +++ b/client/src/components/SidePanel/Agents/FileSearchCheckbox.tsx @@ -1,15 +1,15 @@ import { memo } from 'react'; import { AgentCapabilities } from 'librechat-data-provider'; import { useFormContext, Controller } from 'react-hook-form'; -import type { AgentForm } from '~/common'; import { Checkbox, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, -} from '~/components/ui'; -import { CircleHelpIcon } from '~/components/svg'; + CircleHelpIcon, +} from '@librechat/client'; +import type { AgentForm } from '~/common'; import { useLocalize } from '~/hooks'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/ImageVision.tsx b/client/src/components/SidePanel/Agents/ImageVision.tsx index 4be2443145..bc4e117896 100644 --- a/client/src/components/SidePanel/Agents/ImageVision.tsx +++ b/client/src/components/SidePanel/Agents/ImageVision.tsx @@ -1,7 +1,7 @@ -import { useFormContext, Controller } from 'react-hook-form'; +import { Checkbox } from '@librechat/client'; import { Capabilities } from 'librechat-data-provider'; +import { useFormContext, Controller } from 'react-hook-form'; import type { AgentForm } from '~/common'; -import { Checkbox } from '~/components/ui'; import { useLocalize } from '~/hooks'; export default function ImageVision() { @@ -19,7 +19,7 @@ export default function ImageVision() { {...field} checked={field.value} onCheckedChange={field.onChange} - className="relative float-left mr-2 inline-flex h-4 w-4 cursor-pointer" + className="relative float-left mr-2 inline-flex h-4 w-4 cursor-pointer" value={field.value?.toString()} /> )} diff --git a/client/src/components/SidePanel/Agents/Instructions.tsx b/client/src/components/SidePanel/Agents/Instructions.tsx index 2bad496673..d2ea7f212d 100644 --- a/client/src/components/SidePanel/Agents/Instructions.tsx +++ b/client/src/components/SidePanel/Agents/Instructions.tsx @@ -1,13 +1,13 @@ import React, { useState, useId } from 'react'; import { PlusCircle } from 'lucide-react'; import * as Menu from '@ariakit/react/menu'; +import { DropdownPopup } from '@librechat/client'; import { specialVariables } from 'librechat-data-provider'; -import type { TSpecialVarLabel } from 'librechat-data-provider'; import { Controller, useFormContext } from 'react-hook-form'; +import type { TSpecialVarLabel } from 'librechat-data-provider'; import type { AgentForm } from '~/common'; import { cn, defaultTextProps, removeFocusOutlines } from '~/utils'; -// import ControlCombobox from '~/components/ui/ControlCombobox'; -import { DropdownPopup } from '~/components'; +// import { ControlCombobox } from '@librechat/client'; import { useLocalize } from '~/hooks'; const inputClass = cn( diff --git a/client/src/components/SidePanel/Agents/MCPIcon.tsx b/client/src/components/SidePanel/Agents/MCPIcon.tsx index 101abb4c9e..46caee1a53 100644 --- a/client/src/components/SidePanel/Agents/MCPIcon.tsx +++ b/client/src/components/SidePanel/Agents/MCPIcon.tsx @@ -1,5 +1,5 @@ import { useState, useEffect, useRef } from 'react'; -import SquirclePlusIcon from '~/components/svg/SquirclePlusIcon'; +import { SquirclePlusIcon } from '@librechat/client'; import { useLocalize } from '~/hooks'; interface MCPIconProps { diff --git a/client/src/components/SidePanel/Agents/MCPInput.tsx b/client/src/components/SidePanel/Agents/MCPInput.tsx index 6c2f2ce51e..6add301d85 100644 --- a/client/src/components/SidePanel/Agents/MCPInput.tsx +++ b/client/src/components/SidePanel/Agents/MCPInput.tsx @@ -1,13 +1,11 @@ import { useState, useEffect } from 'react'; import { useFormContext, Controller } from 'react-hook-form'; +import { Label, Checkbox, Spinner, useToastContext } from '@librechat/client'; import type { MCP } from 'librechat-data-provider'; import MCPAuth from '~/components/SidePanel/Builder/MCPAuth'; import MCPIcon from '~/components/SidePanel/Agents/MCPIcon'; -import { Label, Checkbox } from '~/components/ui'; -import useLocalize from '~/hooks/useLocalize'; -import { useToastContext } from '~/Providers'; -import { Spinner } from '~/components/svg'; import { MCPForm } from '~/common/types'; +import { useLocalize } from '~/hooks'; function useUpdateAgentMCP({ onSuccess, diff --git a/client/src/components/SidePanel/Agents/MCPPanel.tsx b/client/src/components/SidePanel/Agents/MCPPanel.tsx index 016e445e4f..6e793f13f6 100644 --- a/client/src/components/SidePanel/Agents/MCPPanel.tsx +++ b/client/src/components/SidePanel/Agents/MCPPanel.tsx @@ -1,21 +1,25 @@ import { useEffect } from 'react'; import { ChevronLeft } from 'lucide-react'; import { useForm, FormProvider } from 'react-hook-form'; -import { useAgentPanelContext } from '~/Providers/AgentPanelContext'; -import { OGDialog, OGDialogTrigger, Label } from '~/components/ui'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { defaultMCPFormValues } from '~/common/mcp'; -import useLocalize from '~/hooks/useLocalize'; -import { useToastContext } from '~/Providers'; -import { TrashIcon } from '~/components/svg'; -import type { MCPForm } from '~/common'; -import MCPInput from './MCPInput'; -import { Panel } from '~/common'; import { AuthTypeEnum, AuthorizationTypeEnum, TokenExchangeMethodEnum, } from 'librechat-data-provider'; +import { + OGDialog, + OGDialogTrigger, + Label, + OGDialogTemplate, + TrashIcon, + useToastContext, +} from '@librechat/client'; +import { useAgentPanelContext } from '~/Providers/AgentPanelContext'; +import { defaultMCPFormValues } from '~/common/mcp'; +import type { MCPForm } from '~/common'; +import { useLocalize } from '~/hooks'; +import MCPInput from './MCPInput'; +import { Panel } from '~/common'; // TODO: Add MCP delete (for now mocked for ui) // import { useDeleteAgentMCP } from '~/data-provider'; diff --git a/client/src/components/SidePanel/Agents/MCPSection.tsx b/client/src/components/SidePanel/Agents/MCPSection.tsx index 4575eb8f25..14d643a62c 100644 --- a/client/src/components/SidePanel/Agents/MCPSection.tsx +++ b/client/src/components/SidePanel/Agents/MCPSection.tsx @@ -1,6 +1,6 @@ import { useCallback } from 'react'; import { useLocalize } from '~/hooks'; -import { useToastContext } from '~/Providers'; +import { useToastContext } from '@librechat/client'; import { useAgentPanelContext } from '~/Providers/AgentPanelContext'; import MCP from '~/components/SidePanel/Builder/MCP'; import { Panel } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/ModelPanel.tsx b/client/src/components/SidePanel/Agents/ModelPanel.tsx index 3987f24dcf..972ad8e788 100644 --- a/client/src/components/SidePanel/Agents/ModelPanel.tsx +++ b/client/src/components/SidePanel/Agents/ModelPanel.tsx @@ -1,5 +1,6 @@ -import keyBy from 'lodash/keyBy'; import React, { useMemo, useEffect } from 'react'; +import keyBy from 'lodash/keyBy'; +import { ControlCombobox } from '@librechat/client'; import { ChevronLeft, RotateCcw } from 'lucide-react'; import { useFormContext, useWatch, Controller } from 'react-hook-form'; import { componentMapping } from '~/components/SidePanel/Parameters/components'; @@ -12,7 +13,6 @@ import { } from 'librechat-data-provider'; import type * as t from 'librechat-data-provider'; import type { AgentForm, AgentModelPanelProps, StringOption } from '~/common'; -import ControlCombobox from '~/components/ui/ControlCombobox'; import { useGetEndpointsQuery } from '~/data-provider'; import { getEndpointField, cn } from '~/utils'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/SidePanel/Agents/Retrieval.tsx b/client/src/components/SidePanel/Agents/Retrieval.tsx index 1900ae9f44..c23797b403 100644 --- a/client/src/components/SidePanel/Agents/Retrieval.tsx +++ b/client/src/components/SidePanel/Agents/Retrieval.tsx @@ -4,12 +4,12 @@ import { useFormContext, Controller, useWatch } from 'react-hook-form'; import { Checkbox, HoverCard, + CircleHelpIcon, HoverCardContent, HoverCardPortal, HoverCardTrigger, -} from '~/components/ui'; +} from '@librechat/client'; import OptionHover from '~/components/SidePanel/Parameters/OptionHover'; -import { CircleHelpIcon } from '~/components/svg'; import type { AgentForm } from '~/common'; import { useLocalize } from '~/hooks'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/Search/Action.tsx b/client/src/components/SidePanel/Agents/Search/Action.tsx index df8ebaa9bf..1cc8d36e41 100644 --- a/client/src/components/SidePanel/Agents/Search/Action.tsx +++ b/client/src/components/SidePanel/Agents/Search/Action.tsx @@ -1,16 +1,16 @@ import { KeyRoundIcon } from 'lucide-react'; import { AuthType, AgentCapabilities } from 'librechat-data-provider'; import { useFormContext, Controller, useWatch } from 'react-hook-form'; -import type { AgentForm } from '~/common'; import { + CircleHelpIcon, Checkbox, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, -} from '~/components/ui'; +} from '@librechat/client'; +import type { AgentForm } from '~/common'; import { useLocalize, useSearchApiKeyForm } from '~/hooks'; -import { CircleHelpIcon } from '~/components/svg'; import ApiKeyDialog from './ApiKeyDialog'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Agents/Search/ApiKeyDialog.tsx b/client/src/components/SidePanel/Agents/Search/ApiKeyDialog.tsx index 3058f4e140..ceda0ab346 100644 --- a/client/src/components/SidePanel/Agents/Search/ApiKeyDialog.tsx +++ b/client/src/components/SidePanel/Agents/Search/ApiKeyDialog.tsx @@ -1,4 +1,5 @@ import { useState } from 'react'; +import { Button, OGDialog, OGDialogTemplate } from '@librechat/client'; import { AuthType, SearchCategories, @@ -9,8 +10,6 @@ import { import type { SearchApiKeyFormData } from '~/hooks/Plugins/useAuthSearchTool'; import type { UseFormRegister, UseFormHandleSubmit } from 'react-hook-form'; import InputSection, { type DropdownOption } from './InputSection'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { Button, OGDialog } from '~/components/ui'; import { useGetStartupConfig } from '~/data-provider'; import { useLocalize } from '~/hooks'; diff --git a/client/src/components/SidePanel/Agents/Search/InputSection.tsx b/client/src/components/SidePanel/Agents/Search/InputSection.tsx index e80e442603..a99abb0172 100644 --- a/client/src/components/SidePanel/Agents/Search/InputSection.tsx +++ b/client/src/components/SidePanel/Agents/Search/InputSection.tsx @@ -1,11 +1,10 @@ import { useState } from 'react'; -import { ChevronDown, Eye, EyeOff } from 'lucide-react'; import * as Menu from '@ariakit/react/menu'; -import type { UseFormRegister } from 'react-hook-form'; +import { ChevronDown, Eye, EyeOff } from 'lucide-react'; +import { Input, Label, DropdownPopup } from '@librechat/client'; import type { SearchApiKeyFormData } from '~/hooks/Plugins/useAuthSearchTool'; +import type { UseFormRegister } from 'react-hook-form'; import type { MenuItemProps } from '~/common'; -import { Input, Label } from '~/components/ui'; -import DropdownPopup from '~/components/ui/DropdownPopup'; import { useLocalize } from '~/hooks'; interface InputConfig { diff --git a/client/src/components/SidePanel/Agents/ShareAgent.tsx b/client/src/components/SidePanel/Agents/ShareAgent.tsx index 7f025ef248..f095879518 100644 --- a/client/src/components/SidePanel/Agents/ShareAgent.tsx +++ b/client/src/components/SidePanel/Agents/ShareAgent.tsx @@ -2,7 +2,6 @@ import React, { useEffect, useMemo } from 'react'; import { Share2Icon } from 'lucide-react'; import { useForm, Controller } from 'react-hook-form'; import { Permissions } from 'librechat-data-provider'; -import type { TStartupConfig, AgentUpdateParams } from 'librechat-data-provider'; import { Button, Switch, @@ -11,10 +10,11 @@ import { OGDialogClose, OGDialogContent, OGDialogTrigger, -} from '~/components/ui'; + useToastContext, +} from '@librechat/client'; +import type { TStartupConfig, AgentUpdateParams } from 'librechat-data-provider'; import { useUpdateAgentMutation, useGetStartupConfig } from '~/data-provider'; import { cn, removeFocusOutlines } from '~/utils'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; type FormValues = { diff --git a/client/src/components/SidePanel/Agents/Version/VersionButton.tsx b/client/src/components/SidePanel/Agents/Version/VersionButton.tsx index 5708bd392f..a35c6b69d5 100644 --- a/client/src/components/SidePanel/Agents/Version/VersionButton.tsx +++ b/client/src/components/SidePanel/Agents/Version/VersionButton.tsx @@ -1,7 +1,7 @@ import { History } from 'lucide-react'; -import { Panel } from '~/common'; -import { Button } from '~/components/ui'; +import { Button } from '@librechat/client'; import { useLocalize } from '~/hooks'; +import { Panel } from '~/common'; interface VersionButtonProps { setActivePanel: (panel: Panel) => void; diff --git a/client/src/components/SidePanel/Agents/Version/VersionContent.tsx b/client/src/components/SidePanel/Agents/Version/VersionContent.tsx index 0aa1fc4af8..f2f449cb1f 100644 --- a/client/src/components/SidePanel/Agents/Version/VersionContent.tsx +++ b/client/src/components/SidePanel/Agents/Version/VersionContent.tsx @@ -1,7 +1,7 @@ -import { Spinner } from '~/components/svg'; -import { useLocalize } from '~/hooks'; -import VersionItem from './VersionItem'; +import { Spinner } from '@librechat/client'; import type { VersionContext } from './types'; +import VersionItem from './VersionItem'; +import { useLocalize } from '~/hooks'; type VersionContentProps = { selectedAgentId: string; diff --git a/client/src/components/SidePanel/Agents/Version/VersionPanel.tsx b/client/src/components/SidePanel/Agents/Version/VersionPanel.tsx index 57048f66f7..871e92bce2 100644 --- a/client/src/components/SidePanel/Agents/Version/VersionPanel.tsx +++ b/client/src/components/SidePanel/Agents/Version/VersionPanel.tsx @@ -1,16 +1,17 @@ import { ChevronLeft } from 'lucide-react'; import { useCallback, useMemo } from 'react'; +import { useToastContext } from '@librechat/client'; import { useGetAgentByIdQuery, useRevertAgentVersionMutation } from '~/data-provider'; import type { AgentWithVersions, VersionContext } from './types'; import { isActiveVersion } from './isActiveVersion'; import { useAgentPanelContext } from '~/Providers'; -import { useLocalize, useToast } from '~/hooks'; import VersionContent from './VersionContent'; +import { useLocalize } from '~/hooks'; import { Panel } from '~/common'; export default function VersionPanel() { const localize = useLocalize(); - const { showToast } = useToast(); + const { showToast } = useToastContext(); const { agent_id, setActivePanel } = useAgentPanelContext(); const selectedAgentId = agent_id ?? ''; diff --git a/client/src/components/SidePanel/Agents/Version/__tests__/VersionContent.spec.tsx b/client/src/components/SidePanel/Agents/Version/__tests__/VersionContent.spec.tsx index 36cbf9eff5..3669fa75e0 100644 --- a/client/src/components/SidePanel/Agents/Version/__tests__/VersionContent.spec.tsx +++ b/client/src/components/SidePanel/Agents/Version/__tests__/VersionContent.spec.tsx @@ -32,7 +32,7 @@ jest.mock('~/hooks', () => ({ }), })); -jest.mock('~/components/svg', () => ({ +jest.mock('@librechat/client', () => ({ Spinner: () =>
, })); diff --git a/client/src/components/SidePanel/Bookmarks/BookmarkTable.tsx b/client/src/components/SidePanel/Bookmarks/BookmarkTable.tsx index 0506b3b0dd..738a628f0b 100644 --- a/client/src/components/SidePanel/Bookmarks/BookmarkTable.tsx +++ b/client/src/components/SidePanel/Bookmarks/BookmarkTable.tsx @@ -1,6 +1,5 @@ import React, { useCallback, useEffect, useState } from 'react'; import { BookmarkPlusIcon } from 'lucide-react'; -import type { ConversationTagsResponse, TConversationTag } from 'librechat-data-provider'; import { Table, Input, @@ -11,7 +10,8 @@ import { TableCell, TableHeader, OGDialogTrigger, -} from '~/components/ui'; +} from '@librechat/client'; +import type { ConversationTagsResponse, TConversationTag } from 'librechat-data-provider'; import { BookmarkContext, useBookmarkContext } from '~/Providers/BookmarkContext'; import { BookmarkEditDialog } from '~/components/Bookmarks'; import BookmarkTableRow from './BookmarkTableRow'; diff --git a/client/src/components/SidePanel/Bookmarks/BookmarkTableRow.tsx b/client/src/components/SidePanel/Bookmarks/BookmarkTableRow.tsx index 42fea897b3..a013e63ee6 100644 --- a/client/src/components/SidePanel/Bookmarks/BookmarkTableRow.tsx +++ b/client/src/components/SidePanel/Bookmarks/BookmarkTableRow.tsx @@ -1,11 +1,10 @@ import React, { useRef } from 'react'; import { useDrag, useDrop } from 'react-dnd'; import type { TConversationTag } from 'librechat-data-provider'; +import { TableRow, TableCell, useToastContext } from '@librechat/client'; import { DeleteBookmarkButton, EditBookmarkButton } from '~/components/Bookmarks'; import { useConversationTagMutation } from '~/data-provider'; -import { TableRow, TableCell } from '~/components/ui'; import { NotificationSeverity } from '~/common'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; interface BookmarkTableRowProps { diff --git a/client/src/components/SidePanel/Builder/Action.tsx b/client/src/components/SidePanel/Builder/Action.tsx index 656888a3d7..2cedf0c557 100644 --- a/client/src/components/SidePanel/Builder/Action.tsx +++ b/client/src/components/SidePanel/Builder/Action.tsx @@ -1,6 +1,6 @@ import { useState } from 'react'; +import { GearIcon } from '@librechat/client'; import type { Action } from 'librechat-data-provider'; -import GearIcon from '~/components/svg/GearIcon'; import { cn } from '~/utils'; export default function Action({ action, onClick }: { action: Action; onClick: () => void }) { diff --git a/client/src/components/SidePanel/Builder/ActionCallback.tsx b/client/src/components/SidePanel/Builder/ActionCallback.tsx index 851607f22f..f0e6006e52 100644 --- a/client/src/components/SidePanel/Builder/ActionCallback.tsx +++ b/client/src/components/SidePanel/Builder/ActionCallback.tsx @@ -2,9 +2,8 @@ import { useState } from 'react'; import { Copy, CopyCheck } from 'lucide-react'; import { useFormContext } from 'react-hook-form'; import { AuthTypeEnum } from 'librechat-data-provider'; +import { Button, useToastContext } from '@librechat/client'; import { useLocalize, useCopyToClipboard } from '~/hooks'; -import { useToastContext } from '~/Providers'; -import { Button } from '~/components/ui'; import { cn } from '~/utils'; export default function ActionCallback({ action_id }: { action_id?: string }) { diff --git a/client/src/components/SidePanel/Builder/ActionsAuth.tsx b/client/src/components/SidePanel/Builder/ActionsAuth.tsx index 1d0c3eea1f..15ff89626e 100644 --- a/client/src/components/SidePanel/Builder/ActionsAuth.tsx +++ b/client/src/components/SidePanel/Builder/ActionsAuth.tsx @@ -13,7 +13,7 @@ import { OGDialogHeader, OGDialogContent, OGDialogTrigger, -} from '~/components/ui'; +} from '@librechat/client'; import { TranslationKeys, useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/SidePanel/Builder/ActionsInput.tsx b/client/src/components/SidePanel/Builder/ActionsInput.tsx index 410df8e9a3..84b72be682 100644 --- a/client/src/components/SidePanel/Builder/ActionsInput.tsx +++ b/client/src/components/SidePanel/Builder/ActionsInput.tsx @@ -1,6 +1,7 @@ import debounce from 'lodash/debounce'; import { useState, useEffect } from 'react'; import { useFormContext } from 'react-hook-form'; +import { Spinner, useToastContext } from '@librechat/client'; import { validateAndParseOpenAPISpec, openapiToFunction, @@ -16,11 +17,10 @@ import type { import type { ActionAuthForm, ActionWithNullableMetadata } from '~/common'; import type { Spec } from './ActionsTable'; import ActionCallback from '~/components/SidePanel/Builder/ActionCallback'; -import { useAssistantsMapContext, useToastContext } from '~/Providers'; +import { useAssistantsMapContext } from '~/Providers'; import { ActionsTable, columns } from './ActionsTable'; import { useUpdateAction } from '~/data-provider'; -import useLocalize from '~/hooks/useLocalize'; -import { Spinner } from '~/components/svg'; +import { useLocalize } from '~/hooks'; const debouncedValidation = debounce( (input: string, callback: (result: ValidationResult) => void) => { diff --git a/client/src/components/SidePanel/Builder/ActionsPanel.tsx b/client/src/components/SidePanel/Builder/ActionsPanel.tsx index 23071f5c70..13b605bc8a 100644 --- a/client/src/components/SidePanel/Builder/ActionsPanel.tsx +++ b/client/src/components/SidePanel/Builder/ActionsPanel.tsx @@ -1,20 +1,25 @@ import { useEffect } from 'react'; +import { ChevronLeft } from 'lucide-react'; import { useForm, FormProvider } from 'react-hook-form'; import { AuthTypeEnum, AuthorizationTypeEnum, TokenExchangeMethodEnum, } from 'librechat-data-provider'; -import { ChevronLeft } from 'lucide-react'; +import { + OGDialog, + OGDialogTrigger, + Label, + OGDialogTemplate, + useToastContext, + TrashIcon, +} from '@librechat/client'; import type { AssistantPanelProps, ActionAuthForm } from '~/common'; -import { useAssistantsMapContext, useToastContext } from '~/Providers'; -import { OGDialog, OGDialogTrigger, Label } from '~/components/ui'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; +import { useAssistantsMapContext } from '~/Providers'; import { useDeleteAction } from '~/data-provider'; -import { TrashIcon } from '~/components/svg'; -import useLocalize from '~/hooks/useLocalize'; import ActionsInput from './ActionsInput'; import ActionsAuth from './ActionsAuth'; +import { useLocalize } from '~/hooks'; import { Panel } from '~/common'; export default function ActionsPanel({ diff --git a/client/src/components/SidePanel/Builder/AppendDateCheckbox.tsx b/client/src/components/SidePanel/Builder/AppendDateCheckbox.tsx index cad4a7fc62..df68bce522 100644 --- a/client/src/components/SidePanel/Builder/AppendDateCheckbox.tsx +++ b/client/src/components/SidePanel/Builder/AppendDateCheckbox.tsx @@ -1,15 +1,15 @@ import { Control, Controller, UseFormSetValue, UseFormGetValues } from 'react-hook-form'; -import { CircleHelpIcon } from '~/components/svg'; -import { useLocalize } from '~/hooks'; import { + CircleHelpIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, Checkbox, -} from '~/components/ui'; -import { ESide } from '~/common'; +} from '@librechat/client'; import type { AssistantForm } from '~/common'; +import { useLocalize } from '~/hooks'; +import { ESide } from '~/common'; interface AppendDateCheckboxProps { control: Control; diff --git a/client/src/components/SidePanel/Builder/AssistantAvatar.tsx b/client/src/components/SidePanel/Builder/AssistantAvatar.tsx index 4433cf1535..08f6bdb8ad 100644 --- a/client/src/components/SidePanel/Builder/AssistantAvatar.tsx +++ b/client/src/components/SidePanel/Builder/AssistantAvatar.tsx @@ -1,5 +1,6 @@ -import * as Popover from '@radix-ui/react-popover'; import { useState, useEffect, useRef, useMemo } from 'react'; +import * as Popover from '@radix-ui/react-popover'; +import { useToastContext } from '@librechat/client'; import { useQueryClient } from '@tanstack/react-query'; import { fileConfig as defaultFileConfig, @@ -7,7 +8,6 @@ import { defaultOrderQuery, mergeFileConfig, } from 'librechat-data-provider'; -import type { UseMutationResult } from '@tanstack/react-query'; import type { Metadata, Assistant, @@ -15,10 +15,11 @@ import type { AssistantCreateParams, AssistantListResponse, } from 'librechat-data-provider'; +import type { UseMutationResult } from '@tanstack/react-query'; import { useUploadAssistantAvatarMutation, useGetFileConfig } from '~/data-provider'; -import { useToastContext, useAssistantsMapContext } from '~/Providers'; import { AssistantAvatar, NoImage, AvatarMenu } from './Images'; -// import { Spinner } from '~/components/svg'; +import { useAssistantsMapContext } from '~/Providers'; +// import { Spinner } from '@librechat/client'; import { useLocalize } from '~/hooks'; import { formatBytes } from '~/utils'; diff --git a/client/src/components/SidePanel/Builder/AssistantConversationStarters.tsx b/client/src/components/SidePanel/Builder/AssistantConversationStarters.tsx index 30b9157f1c..9c8da37b1b 100644 --- a/client/src/components/SidePanel/Builder/AssistantConversationStarters.tsx +++ b/client/src/components/SidePanel/Builder/AssistantConversationStarters.tsx @@ -1,8 +1,8 @@ import React, { useRef, useState } from 'react'; import { Plus, X } from 'lucide-react'; +import { TooltipAnchor } from '@librechat/client'; import { Transition } from 'react-transition-group'; import { Constants } from 'librechat-data-provider'; -import { TooltipAnchor } from '~/components/ui'; import { useLocalize } from '~/hooks'; interface AssistantConversationStartersProps { diff --git a/client/src/components/SidePanel/Builder/AssistantPanel.tsx b/client/src/components/SidePanel/Builder/AssistantPanel.tsx index 4c3a794823..c47a9aea53 100644 --- a/client/src/components/SidePanel/Builder/AssistantPanel.tsx +++ b/client/src/components/SidePanel/Builder/AssistantPanel.tsx @@ -1,6 +1,7 @@ import { useState, useMemo } from 'react'; -import { useForm, FormProvider, Controller, useWatch } from 'react-hook-form'; import { useGetModelsQuery } from 'librechat-data-provider/react-query'; +import { Spinner, useToastContext, SelectDropDown } from '@librechat/client'; +import { useForm, FormProvider, Controller, useWatch } from 'react-hook-form'; import { Tools, Capabilities, @@ -18,16 +19,14 @@ import { import { cn, cardStyle, defaultTextProps, removeFocusOutlines } from '~/utils'; import AssistantConversationStarters from './AssistantConversationStarters'; import AssistantToolsDialog from '~/components/Tools/AssistantToolsDialog'; -import { useAssistantsMapContext, useToastContext } from '~/Providers'; import { useSelectAssistant, useLocalize } from '~/hooks'; +import { useAssistantsMapContext } from '~/Providers'; import AppendDateCheckbox from './AppendDateCheckbox'; import CapabilitiesForm from './CapabilitiesForm'; -import { SelectDropDown } from '~/components/ui'; import AssistantAvatar from './AssistantAvatar'; import AssistantSelect from './AssistantSelect'; import ContextButton from './ContextButton'; import AssistantTool from './AssistantTool'; -import { Spinner } from '~/components/svg'; import Knowledge from './Knowledge'; import { Panel } from '~/common'; import Action from './Action'; diff --git a/client/src/components/SidePanel/Builder/AssistantSelect.tsx b/client/src/components/SidePanel/Builder/AssistantSelect.tsx index 99f840e6d4..7d64cc62c5 100644 --- a/client/src/components/SidePanel/Builder/AssistantSelect.tsx +++ b/client/src/components/SidePanel/Builder/AssistantSelect.tsx @@ -1,5 +1,6 @@ -import { Plus } from 'lucide-react'; import { useMemo, useCallback, useEffect, useRef } from 'react'; +import { Plus } from 'lucide-react'; +import { SelectDropDown } from '@librechat/client'; import { Tools, FileSources, @@ -9,8 +10,6 @@ import { isImageVisionTool, defaultAssistantFormValues, } from 'librechat-data-provider'; -import type { UseFormReset } from 'react-hook-form'; -import type { UseMutationResult } from '@tanstack/react-query'; import type { TPlugin, Assistant, @@ -25,7 +24,8 @@ import type { TAssistantOption, LastSelectedModels, } from '~/common'; -import SelectDropDown from '~/components/ui/SelectDropDown'; +import type { UseMutationResult } from '@tanstack/react-query'; +import type { UseFormReset } from 'react-hook-form'; import { useListAssistantsQuery } from '~/data-provider'; import { useLocalize, useLocalStorage } from '~/hooks'; import { cn, createDropdownSetter } from '~/utils'; diff --git a/client/src/components/SidePanel/Builder/AssistantTool.tsx b/client/src/components/SidePanel/Builder/AssistantTool.tsx index 317f6264dd..bd60216f91 100644 --- a/client/src/components/SidePanel/Builder/AssistantTool.tsx +++ b/client/src/components/SidePanel/Builder/AssistantTool.tsx @@ -1,11 +1,15 @@ import React, { useState } from 'react'; import { useFormContext } from 'react-hook-form'; -import type { TPlugin } from 'librechat-data-provider'; import { useUpdateUserPluginsMutation } from 'librechat-data-provider/react-query'; -import { OGDialog, OGDialogTrigger, Label } from '~/components/ui'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; -import { useToastContext } from '~/Providers'; -import { TrashIcon } from '~/components/svg'; +import { + OGDialog, + OGDialogTrigger, + Label, + OGDialogTemplate, + TrashIcon, + useToastContext, +} from '@librechat/client'; +import type { TPlugin } from 'librechat-data-provider'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/SidePanel/Builder/Code.tsx b/client/src/components/SidePanel/Builder/Code.tsx index 54341194fe..55937ff156 100644 --- a/client/src/components/SidePanel/Builder/Code.tsx +++ b/client/src/components/SidePanel/Builder/Code.tsx @@ -1,14 +1,14 @@ import { Capabilities } from 'librechat-data-provider'; import { useFormContext, Controller } from 'react-hook-form'; -import type { AssistantForm } from '~/common'; import { Checkbox, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, -} from '~/components/ui'; -import { CircleHelpIcon } from '~/components/svg'; + CircleHelpIcon, +} from '@librechat/client'; +import type { AssistantForm } from '~/common'; import { useLocalize } from '~/hooks'; import { ESide } from '~/common'; @@ -29,7 +29,7 @@ export default function Code({ version }: { version: number | string }) { {...field} checked={field.value} onCheckedChange={field.onChange} - className="relative float-left mr-2 inline-flex h-4 w-4 cursor-pointer" + className="relative float-left mr-2 inline-flex h-4 w-4 cursor-pointer" value={field.value.toString()} /> )} diff --git a/client/src/components/SidePanel/Builder/CodeFiles.tsx b/client/src/components/SidePanel/Builder/CodeFiles.tsx index 22be0a5dcd..451bcf8cab 100644 --- a/client/src/components/SidePanel/Builder/CodeFiles.tsx +++ b/client/src/components/SidePanel/Builder/CodeFiles.tsx @@ -9,8 +9,8 @@ import type { ExtendedFile } from '~/common'; import FileRow from '~/components/Chat/Input/Files/FileRow'; import { useGetFileConfig } from '~/data-provider'; import { useFileHandling } from '~/hooks/Files'; -import useLocalize from '~/hooks/useLocalize'; import { useChatContext } from '~/Providers'; +import { useLocalize } from '~/hooks'; const tool_resource = EToolResources.code_interpreter; diff --git a/client/src/components/SidePanel/Builder/ContextButton.tsx b/client/src/components/SidePanel/Builder/ContextButton.tsx index 6bd0e7245c..f84039ea64 100644 --- a/client/src/components/SidePanel/Builder/ContextButton.tsx +++ b/client/src/components/SidePanel/Builder/ContextButton.tsx @@ -1,12 +1,17 @@ +import { + Dialog, + DialogTrigger, + Label, + DialogTemplate, + useToastContext, + TrashIcon, +} from '@librechat/client'; import type { Assistant, AssistantCreateParams, AssistantsEndpoint } from 'librechat-data-provider'; import type { UseMutationResult } from '@tanstack/react-query'; -import { Dialog, DialogTrigger, Label } from '~/components/ui'; -import { useChatContext, useToastContext } from '~/Providers'; import { useDeleteAssistantMutation } from '~/data-provider'; -import DialogTemplate from '~/components/ui/DialogTemplate'; import { useLocalize, useSetIndexOptions } from '~/hooks'; -import { cn, removeFocusOutlines } from '~/utils/'; -import { TrashIcon } from '~/components/svg'; +import { cn, removeFocusOutlines } from '~/utils'; +import { useChatContext } from '~/Providers'; export default function ContextButton({ activeModel, diff --git a/client/src/components/SidePanel/Builder/ImageVision.tsx b/client/src/components/SidePanel/Builder/ImageVision.tsx index 162151da81..8929a0cc30 100644 --- a/client/src/components/SidePanel/Builder/ImageVision.tsx +++ b/client/src/components/SidePanel/Builder/ImageVision.tsx @@ -1,7 +1,7 @@ -import { useFormContext, Controller } from 'react-hook-form'; import { Capabilities } from 'librechat-data-provider'; +import { Checkbox, QuestionMark } from '@librechat/client'; +import { useFormContext, Controller } from 'react-hook-form'; import type { AssistantForm } from '~/common'; -import { Checkbox, QuestionMark } from '~/components/ui'; import { useLocalize } from '~/hooks'; export default function ImageVision() { @@ -19,7 +19,7 @@ export default function ImageVision() { {...field} checked={field.value} onCheckedChange={field.onChange} - className="relative float-left mr-2 inline-flex h-4 w-4 cursor-pointer" + className="relative float-left mr-2 inline-flex h-4 w-4 cursor-pointer" value={field.value.toString()} /> )} diff --git a/client/src/components/SidePanel/Builder/Knowledge.tsx b/client/src/components/SidePanel/Builder/Knowledge.tsx index 01042cab4b..bf5263120e 100644 --- a/client/src/components/SidePanel/Builder/Knowledge.tsx +++ b/client/src/components/SidePanel/Builder/Knowledge.tsx @@ -9,8 +9,8 @@ import type { ExtendedFile } from '~/common'; import FileRow from '~/components/Chat/Input/Files/FileRow'; import { useGetFileConfig } from '~/data-provider'; import { useFileHandling } from '~/hooks/Files'; -import useLocalize from '~/hooks/useLocalize'; import { useChatContext } from '~/Providers'; +import { useLocalize } from '~/hooks'; const CodeInterpreterFiles = ({ children }: { children: React.ReactNode }) => { const localize = useLocalize(); diff --git a/client/src/components/SidePanel/Builder/MCP.tsx b/client/src/components/SidePanel/Builder/MCP.tsx index f632b6c00d..64ea37c51b 100644 --- a/client/src/components/SidePanel/Builder/MCP.tsx +++ b/client/src/components/SidePanel/Builder/MCP.tsx @@ -1,7 +1,6 @@ import { useState } from 'react'; +import { GearIcon, MCPIcon } from '@librechat/client'; import type { MCP } from 'librechat-data-provider'; -import GearIcon from '~/components/svg/GearIcon'; -import MCPIcon from '~/components/svg/MCPIcon'; import { cn } from '~/utils'; type MCPProps = { diff --git a/client/src/components/SidePanel/Builder/MCPAuth.tsx b/client/src/components/SidePanel/Builder/MCPAuth.tsx index 4ea3faae61..2486f84d40 100644 --- a/client/src/components/SidePanel/Builder/MCPAuth.tsx +++ b/client/src/components/SidePanel/Builder/MCPAuth.tsx @@ -1,11 +1,11 @@ import { useEffect } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; -import ActionsAuth from '~/components/SidePanel/Builder/ActionsAuth'; import { AuthorizationTypeEnum, TokenExchangeMethodEnum, AuthTypeEnum, } from 'librechat-data-provider'; +import ActionsAuth from '~/components/SidePanel/Builder/ActionsAuth'; export default function MCPAuth() { // Create a separate form for auth diff --git a/client/src/components/SidePanel/Builder/Retrieval.tsx b/client/src/components/SidePanel/Builder/Retrieval.tsx index 6a6ce8bbdc..ce226e8991 100644 --- a/client/src/components/SidePanel/Builder/Retrieval.tsx +++ b/client/src/components/SidePanel/Builder/Retrieval.tsx @@ -8,13 +8,13 @@ import { HoverCardContent, HoverCardPortal, HoverCardTrigger, -} from '~/components/ui'; + CircleHelpIcon, +} from '@librechat/client'; import OptionHover from '~/components/SidePanel/Parameters/OptionHover'; -import { CircleHelpIcon } from '~/components/svg'; import type { AssistantForm } from '~/common'; import { useLocalize } from '~/hooks'; import { ESide } from '~/common'; -import { cn } from '~/utils/'; +import { cn } from '~/utils'; export default function Retrieval({ version, diff --git a/client/src/components/SidePanel/Files/PanelColumns.tsx b/client/src/components/SidePanel/Files/PanelColumns.tsx index 5d199dfc9a..123b511b4b 100644 --- a/client/src/components/SidePanel/Files/PanelColumns.tsx +++ b/client/src/components/SidePanel/Files/PanelColumns.tsx @@ -1,9 +1,9 @@ import { ArrowUpDown } from 'lucide-react'; +import { Button } from '@librechat/client'; import type { ColumnDef } from '@tanstack/react-table'; import type { TFile } from 'librechat-data-provider'; -import useLocalize from '~/hooks/useLocalize'; import PanelFileCell from './PanelFileCell'; -import { Button } from '~/components/ui'; +import { useLocalize } from '~/hooks'; import { formatDate } from '~/utils'; export const columns: ColumnDef[] = [ diff --git a/client/src/components/SidePanel/Files/PanelTable.tsx b/client/src/components/SidePanel/Files/PanelTable.tsx index 87a965a968..f341f2f00a 100644 --- a/client/src/components/SidePanel/Files/PanelTable.tsx +++ b/client/src/components/SidePanel/Files/PanelTable.tsx @@ -1,6 +1,17 @@ import { useState, useCallback, useMemo } from 'react'; import { ArrowUpLeft } from 'lucide-react'; import { useSetRecoilState } from 'recoil'; +import { + Button, + Input, + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, + useToastContext, +} from '@librechat/client'; import { flexRender, getCoreRowModel, @@ -21,18 +32,7 @@ import { isAssistantsEndpoint, type TFile, } from 'librechat-data-provider'; - -import { - Button, - Input, - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from '~/components/ui'; -import { useFileMapContext, useChatContext, useToastContext } from '~/Providers'; +import { useFileMapContext, useChatContext } from '~/Providers'; import { useLocalize, useUpdateFiles } from '~/hooks'; import { useGetFileConfig } from '~/data-provider'; import store from '~/store'; diff --git a/client/src/components/SidePanel/MCP/MCPPanel.tsx b/client/src/components/SidePanel/MCP/MCPPanel.tsx index e6a5266f84..f6ce99b54e 100644 --- a/client/src/components/SidePanel/MCP/MCPPanel.tsx +++ b/client/src/components/SidePanel/MCP/MCPPanel.tsx @@ -1,16 +1,15 @@ +import React, { useState, useMemo, useCallback } from 'react'; import { ChevronLeft } from 'lucide-react'; import { useQueryClient } from '@tanstack/react-query'; -import React, { useState, useMemo, useCallback } from 'react'; +import { Button, useToastContext } from '@librechat/client'; import { Constants, QueryKeys } from 'librechat-data-provider'; -import type { TUpdateUserPlugins } from 'librechat-data-provider'; import { useUpdateUserPluginsMutation } from 'librechat-data-provider/react-query'; +import type { TUpdateUserPlugins } from 'librechat-data-provider'; import ServerInitializationSection from '~/components/ui/MCP/ServerInitializationSection'; import CustomUserVarsSection from '~/components/ui/MCP/CustomUserVarsSection'; import { useMCPConnectionStatusQuery } from '~/data-provider/Tools/queries'; import { useGetStartupConfig } from '~/data-provider'; import MCPPanelSkeleton from './MCPPanelSkeleton'; -import { useToastContext } from '~/Providers'; -import { Button } from '~/components/ui'; import { useLocalize } from '~/hooks'; export default function MCPPanel() { diff --git a/client/src/components/SidePanel/MCP/MCPPanelSkeleton.tsx b/client/src/components/SidePanel/MCP/MCPPanelSkeleton.tsx index 61afbfcc2f..f28c98fe8a 100644 --- a/client/src/components/SidePanel/MCP/MCPPanelSkeleton.tsx +++ b/client/src/components/SidePanel/MCP/MCPPanelSkeleton.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Skeleton } from '~/components/ui'; +import { Skeleton } from '@librechat/client'; export default function MCPPanelSkeleton() { return ( diff --git a/client/src/components/SidePanel/Memories/AdminSettings.tsx b/client/src/components/SidePanel/Memories/AdminSettings.tsx index fcb347228d..f9c3e12f48 100644 --- a/client/src/components/SidePanel/Memories/AdminSettings.tsx +++ b/client/src/components/SidePanel/Memories/AdminSettings.tsx @@ -3,12 +3,19 @@ import { useMemo, useEffect, useState } from 'react'; import { ShieldEllipsis } from 'lucide-react'; import { useForm, Controller } from 'react-hook-form'; import { Permissions, SystemRoles, roleDefaults, PermissionTypes } from 'librechat-data-provider'; +import { + OGDialog, + OGDialogTitle, + OGDialogContent, + OGDialogTrigger, + Button, + Switch, + DropdownPopup, + useToastContext, +} from '@librechat/client'; import type { Control, UseFormSetValue, UseFormGetValues } from 'react-hook-form'; -import { OGDialog, OGDialogTitle, OGDialogContent, OGDialogTrigger } from '~/components/ui'; import { useUpdateMemoryPermissionsMutation } from '~/data-provider'; -import { Button, Switch, DropdownPopup } from '~/components/ui'; import { useLocalize, useAuthContext } from '~/hooks'; -import { useToastContext } from '~/Providers'; type FormValues = Record; diff --git a/client/src/components/SidePanel/Memories/MemoryCreateDialog.tsx b/client/src/components/SidePanel/Memories/MemoryCreateDialog.tsx index 3f916872cb..5627433a77 100644 --- a/client/src/components/SidePanel/Memories/MemoryCreateDialog.tsx +++ b/client/src/components/SidePanel/Memories/MemoryCreateDialog.tsx @@ -1,10 +1,8 @@ import React, { useState } from 'react'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; -import { OGDialog, OGDialogTemplate, Button, Label, Input } from '~/components/ui'; +import { OGDialog, OGDialogTemplate, Button, Label, Input, Spinner, useToastContext } from '@librechat/client'; import { useCreateMemoryMutation } from '~/data-provider'; import { useLocalize, useHasAccess } from '~/hooks'; -import { useToastContext } from '~/Providers'; -import { Spinner } from '~/components/svg'; interface MemoryCreateDialogProps { open: boolean; diff --git a/client/src/components/SidePanel/Memories/MemoryEditDialog.tsx b/client/src/components/SidePanel/Memories/MemoryEditDialog.tsx index 6793bf3d6b..b55e8612b6 100644 --- a/client/src/components/SidePanel/Memories/MemoryEditDialog.tsx +++ b/client/src/components/SidePanel/Memories/MemoryEditDialog.tsx @@ -1,11 +1,17 @@ import React, { useState, useEffect } from 'react'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; +import { + OGDialog, + OGDialogTemplate, + Button, + Label, + Input, + Spinner, + useToastContext, +} from '@librechat/client'; import type { TUserMemory } from 'librechat-data-provider'; -import { OGDialog, OGDialogTemplate, Button, Label, Input } from '~/components/ui'; import { useUpdateMemoryMutation, useMemoriesQuery } from '~/data-provider'; import { useLocalize, useHasAccess } from '~/hooks'; -import { useToastContext } from '~/Providers'; -import { Spinner } from '~/components/svg'; interface MemoryEditDialogProps { memory: TUserMemory | null; diff --git a/client/src/components/SidePanel/Memories/MemoryViewer.tsx b/client/src/components/SidePanel/Memories/MemoryViewer.tsx index 638321f4f7..89459d66e3 100644 --- a/client/src/components/SidePanel/Memories/MemoryViewer.tsx +++ b/client/src/components/SidePanel/Memories/MemoryViewer.tsx @@ -3,7 +3,6 @@ import { useMemo, useState, useRef, useEffect } from 'react'; import { Plus } from 'lucide-react'; import { matchSorter } from 'match-sorter'; import { SystemRoles, PermissionTypes, Permissions } from 'librechat-data-provider'; -import type { TUserMemory } from 'librechat-data-provider'; import { Spinner, EditIcon, @@ -20,8 +19,11 @@ import { TableCell, TableHeader, TooltipAnchor, + useToastContext, OGDialogTrigger, -} from '~/components'; + OGDialogTemplate, +} from '@librechat/client'; +import type { TUserMemory } from 'librechat-data-provider'; import { useGetUserQuery, useMemoriesQuery, @@ -29,10 +31,8 @@ import { useUpdateMemoryPreferencesMutation, } from '~/data-provider'; import { useLocalize, useAuthContext, useHasAccess } from '~/hooks'; -import OGDialogTemplate from '~/components/ui/OGDialogTemplate'; import MemoryCreateDialog from './MemoryCreateDialog'; import MemoryEditDialog from './MemoryEditDialog'; -import { useToastContext } from '~/Providers'; import AdminSettings from './AdminSettings'; import { cn } from '~/utils'; diff --git a/client/src/components/SidePanel/Nav.tsx b/client/src/components/SidePanel/Nav.tsx index fa6d8751b1..416e617639 100644 --- a/client/src/components/SidePanel/Nav.tsx +++ b/client/src/components/SidePanel/Nav.tsx @@ -1,6 +1,6 @@ import * as AccordionPrimitive from '@radix-ui/react-accordion'; +import { AccordionContent, AccordionItem, TooltipAnchor, Accordion, Button } from '@librechat/client'; import type { NavLink, NavProps } from '~/common'; -import { AccordionContent, AccordionItem, TooltipAnchor, Accordion, Button } from '~/components/ui'; import { ActivePanelProvider, useActivePanel } from '~/Providers'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; diff --git a/client/src/components/SidePanel/Parameters/DynamicCheckbox.tsx b/client/src/components/SidePanel/Parameters/DynamicCheckbox.tsx index 1c4b23aa5c..277186e8b2 100644 --- a/client/src/components/SidePanel/Parameters/DynamicCheckbox.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicCheckbox.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import { OptionTypes } from 'librechat-data-provider'; import type { DynamicSettingProps } from 'librechat-data-provider'; -import { Label, Checkbox, HoverCard, HoverCardTrigger } from '~/components/ui'; +import { Label, Checkbox, HoverCard, HoverCardTrigger } from '@librechat/client'; import { TranslationKeys, useLocalize, useDebouncedInput, useParameterEffects } from '~/hooks'; import { useChatContext } from '~/Providers'; import OptionHover from './OptionHover'; diff --git a/client/src/components/SidePanel/Parameters/DynamicCombobox.tsx b/client/src/components/SidePanel/Parameters/DynamicCombobox.tsx index 0d7479d64f..7bc1a2b2d7 100644 --- a/client/src/components/SidePanel/Parameters/DynamicCombobox.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicCombobox.tsx @@ -1,7 +1,6 @@ import { useMemo, useState, useCallback } from 'react'; import type { DynamicSettingProps } from 'librechat-data-provider'; -import { Label, HoverCard, HoverCardTrigger } from '~/components/ui'; -import ControlCombobox from '~/components/ui/ControlCombobox'; +import { Label, HoverCard, HoverCardTrigger, ControlCombobox } from '@librechat/client'; import { TranslationKeys, useLocalize, useParameterEffects } from '~/hooks'; import { useChatContext } from '~/Providers'; import OptionHover from './OptionHover'; @@ -85,7 +84,7 @@ function DynamicCombobox({ htmlFor={`${settingKey}-dynamic-combobox`} className="text-left text-sm font-medium" > - {labelCode ? localize(label as TranslationKeys) ?? label : label || settingKey} + {labelCode ? (localize(label as TranslationKeys) ?? label) : label || settingKey} {showDefault && ( ({localize('com_endpoint_default')}: {defaultValue}) @@ -97,10 +96,14 @@ function DynamicCombobox({ {description && ( )} diff --git a/client/src/components/SidePanel/Parameters/DynamicDropdown.tsx b/client/src/components/SidePanel/Parameters/DynamicDropdown.tsx index 0797c75a57..4814241e23 100644 --- a/client/src/components/SidePanel/Parameters/DynamicDropdown.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicDropdown.tsx @@ -1,7 +1,7 @@ import { useMemo, useState } from 'react'; import { OptionTypes } from 'librechat-data-provider'; +import { Label, HoverCard, HoverCardTrigger, SelectDropDown } from '@librechat/client'; import type { DynamicSettingProps } from 'librechat-data-provider'; -import { Label, HoverCard, HoverCardTrigger, SelectDropDown } from '~/components/ui'; import { TranslationKeys, useLocalize, useParameterEffects } from '~/hooks'; import { useChatContext } from '~/Providers'; import OptionHover from './OptionHover'; @@ -78,7 +78,7 @@ function DynamicDropdown({ htmlFor={`${settingKey}-dynamic-dropdown`} className="text-left text-sm font-medium" > - {labelCode ? localize(label as TranslationKeys) ?? label : label || settingKey} + {labelCode ? (localize(label as TranslationKeys) ?? label) : label || settingKey} {showDefault && ( ({localize('com_endpoint_default')}: {defaultValue}) @@ -96,12 +96,20 @@ function DynamicDropdown({ availableValues={options} containerClassName="w-full" id={`${settingKey}-dynamic-dropdown`} - placeholder={placeholderCode ? localize(placeholder as TranslationKeys) ?? placeholder : placeholder} + placeholder={ + placeholderCode + ? (localize(placeholder as TranslationKeys) ?? placeholder) + : placeholder + } /> {description && ( )} diff --git a/client/src/components/SidePanel/Parameters/DynamicInput.tsx b/client/src/components/SidePanel/Parameters/DynamicInput.tsx index 57e55d75ca..f9d27dd86a 100644 --- a/client/src/components/SidePanel/Parameters/DynamicInput.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicInput.tsx @@ -1,7 +1,7 @@ import { OptionTypes } from 'librechat-data-provider'; +import { Label, Input, HoverCard, HoverCardTrigger } from '@librechat/client'; import type { DynamicSettingProps } from 'librechat-data-provider'; import { useLocalize, useDebouncedInput, useParameterEffects, TranslationKeys } from '~/hooks'; -import { Label, Input, HoverCard, HoverCardTrigger } from '~/components/ui'; import { useChatContext } from '~/Providers'; import OptionHover from './OptionHover'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Parameters/DynamicSlider.tsx b/client/src/components/SidePanel/Parameters/DynamicSlider.tsx index 9651110842..a9a2910c8f 100644 --- a/client/src/components/SidePanel/Parameters/DynamicSlider.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicSlider.tsx @@ -1,7 +1,7 @@ import { useMemo, useCallback } from 'react'; import { OptionTypes } from 'librechat-data-provider'; import type { DynamicSettingProps } from 'librechat-data-provider'; -import { Label, Slider, HoverCard, Input, InputNumber, HoverCardTrigger } from '~/components/ui'; +import { Label, Slider, HoverCard, Input, InputNumber, HoverCardTrigger } from '@librechat/client'; import { useLocalize, useDebouncedInput, useParameterEffects, TranslationKeys } from '~/hooks'; import { cn, defaultTextProps, optionText } from '~/utils'; import { ESide, defaultDebouncedDelay } from '~/common'; diff --git a/client/src/components/SidePanel/Parameters/DynamicSwitch.tsx b/client/src/components/SidePanel/Parameters/DynamicSwitch.tsx index eff11f3453..4305ca1849 100644 --- a/client/src/components/SidePanel/Parameters/DynamicSwitch.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicSwitch.tsx @@ -1,6 +1,6 @@ import { useState } from 'react'; import type { DynamicSettingProps } from 'librechat-data-provider'; -import { Label, Switch, HoverCard, HoverCardTrigger } from '~/components/ui'; +import { Label, Switch, HoverCard, HoverCardTrigger } from '@librechat/client'; import { TranslationKeys, useLocalize, useParameterEffects } from '~/hooks'; import { useChatContext } from '~/Providers'; import OptionHover from './OptionHover'; diff --git a/client/src/components/SidePanel/Parameters/DynamicTags.tsx b/client/src/components/SidePanel/Parameters/DynamicTags.tsx index 413a18e062..e5c1f69c86 100644 --- a/client/src/components/SidePanel/Parameters/DynamicTags.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicTags.tsx @@ -1,11 +1,11 @@ import { useState, useMemo, useCallback, useRef } from 'react'; import type { DynamicSettingProps } from 'librechat-data-provider'; -import { Label, Input, HoverCard, HoverCardTrigger, Tag } from '~/components/ui'; -import { useChatContext, useToastContext } from '~/Providers'; +import { Label, Input, HoverCard, HoverCardTrigger, Tag, useToastContext } from '@librechat/client'; import { TranslationKeys, useLocalize, useParameterEffects } from '~/hooks'; -import { cn } from '~/utils'; +import { useChatContext } from '~/Providers'; import OptionHover from './OptionHover'; import { ESide } from '~/common'; +import { cn } from '~/utils'; function DynamicTags({ label = '', diff --git a/client/src/components/SidePanel/Parameters/DynamicTextarea.tsx b/client/src/components/SidePanel/Parameters/DynamicTextarea.tsx index d4f0221394..dde7309e3c 100644 --- a/client/src/components/SidePanel/Parameters/DynamicTextarea.tsx +++ b/client/src/components/SidePanel/Parameters/DynamicTextarea.tsx @@ -1,11 +1,11 @@ import { OptionTypes } from 'librechat-data-provider'; import type { DynamicSettingProps } from 'librechat-data-provider'; -import { Label, TextareaAutosize, HoverCard, HoverCardTrigger } from '~/components/ui'; import { useLocalize, useDebouncedInput, useParameterEffects, TranslationKeys } from '~/hooks'; -import { cn } from '~/utils'; +import { Label, TextareaAutosize, HoverCard, HoverCardTrigger } from '@librechat/client'; import { useChatContext } from '~/Providers'; import OptionHover from './OptionHover'; import { ESide } from '~/common'; +import { cn } from '~/utils'; function DynamicTextarea({ label = '', @@ -58,7 +58,7 @@ function DynamicTextarea({ htmlFor={`${settingKey}-dynamic-textarea`} className="text-left text-sm font-medium" > - {labelCode ? localize(label as TranslationKeys) ?? label : label || settingKey}{' '} + {labelCode ? (localize(label as TranslationKeys) ?? label) : label || settingKey}{' '} {showDefault && ( ( @@ -75,7 +75,11 @@ function DynamicTextarea({ disabled={readonly} value={inputValue ?? ''} onChange={setInputValue} - placeholder={placeholderCode ? localize(placeholder as TranslationKeys) ?? placeholder : placeholder} + placeholder={ + placeholderCode + ? (localize(placeholder as TranslationKeys) ?? placeholder) + : placeholder + } className={cn( // TODO: configurable max height 'flex max-h-[138px] min-h-[100px] w-full resize-none rounded-lg bg-surface-secondary px-3 py-2 focus:outline-none', @@ -84,7 +88,11 @@ function DynamicTextarea({ {description && ( )} diff --git a/client/src/components/SidePanel/Parameters/OptionHover.tsx b/client/src/components/SidePanel/Parameters/OptionHover.tsx index 51c4670b83..be23d66297 100644 --- a/client/src/components/SidePanel/Parameters/OptionHover.tsx +++ b/client/src/components/SidePanel/Parameters/OptionHover.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { HoverCardPortal, HoverCardContent } from '~/components/ui'; +import { HoverCardPortal, HoverCardContent } from '@librechat/client'; import { TranslationKeys, useLocalize } from '~/hooks'; import { ESide } from '~/common'; diff --git a/client/src/components/SidePanel/Parameters/Panel.tsx b/client/src/components/SidePanel/Parameters/Panel.tsx index 64742a7167..6f539a5f95 100644 --- a/client/src/components/SidePanel/Parameters/Panel.tsx +++ b/client/src/components/SidePanel/Parameters/Panel.tsx @@ -1,5 +1,6 @@ -import { RotateCcw } from 'lucide-react'; import React, { useMemo, useState, useEffect, useCallback } from 'react'; +import keyBy from 'lodash/keyBy'; +import { RotateCcw } from 'lucide-react'; import { excludedKeys, paramSettings, @@ -14,7 +15,6 @@ import { useGetEndpointsQuery } from '~/data-provider'; import { getEndpointField, logger } from '~/utils'; import { componentMapping } from './components'; import { useChatContext } from '~/Providers'; -import keyBy from 'lodash/keyBy'; export default function Parameters() { const localize = useLocalize(); diff --git a/client/src/components/SidePanel/SidePanel.tsx b/client/src/components/SidePanel/SidePanel.tsx index cf36ae6c54..865fce20a9 100644 --- a/client/src/components/SidePanel/SidePanel.tsx +++ b/client/src/components/SidePanel/SidePanel.tsx @@ -1,10 +1,10 @@ import { useState, useCallback, useMemo, memo } from 'react'; import { useUserKeyQuery } from 'librechat-data-provider/react-query'; +import { ResizableHandleAlt, ResizablePanel, useMediaQuery } from '@librechat/client'; import type { TEndpointsConfig, TInterfaceConfig } from 'librechat-data-provider'; import type { ImperativePanelHandle } from 'react-resizable-panels'; -import { ResizableHandleAlt, ResizablePanel } from '~/components/ui/Resizable'; -import { useMediaQuery, useLocalStorage, useLocalize } from '~/hooks'; import useSideNavLinks from '~/hooks/Nav/useSideNavLinks'; +import { useLocalStorage, useLocalize } from '~/hooks'; import { useGetEndpointsQuery } from '~/data-provider'; import NavToggle from '~/components/Nav/NavToggle'; import { useSidePanelContext } from '~/Providers'; diff --git a/client/src/components/SidePanel/SidePanelGroup.tsx b/client/src/components/SidePanel/SidePanelGroup.tsx index 8c67d6bc4c..ad2b6d7e11 100644 --- a/client/src/components/SidePanel/SidePanelGroup.tsx +++ b/client/src/components/SidePanel/SidePanelGroup.tsx @@ -2,11 +2,15 @@ import { useState, useRef, useCallback, useEffect, useMemo, memo } from 'react'; import throttle from 'lodash/throttle'; import { useRecoilValue } from 'recoil'; import { getConfigDefaults } from 'librechat-data-provider'; +import { + ResizableHandleAlt, + ResizablePanel, + ResizablePanelGroup, + useMediaQuery, +} from '@librechat/client'; import type { ImperativePanelHandle } from 'react-resizable-panels'; -import { ResizableHandleAlt, ResizablePanel, ResizablePanelGroup } from '~/components/ui/Resizable'; import { useGetStartupConfig } from '~/data-provider'; import { normalizeLayout } from '~/utils'; -import { useMediaQuery } from '~/hooks'; import SidePanel from './SidePanel'; import store from '~/store'; diff --git a/client/src/components/Web/Sources.tsx b/client/src/components/Web/Sources.tsx index 3acd106988..2e865dbc78 100644 --- a/client/src/components/Web/Sources.tsx +++ b/client/src/components/Web/Sources.tsx @@ -2,18 +2,18 @@ import React, { useMemo } from 'react'; import * as Ariakit from '@ariakit/react'; import { VisuallyHidden } from '@ariakit/react'; import { X, Globe, Newspaper, Image, ChevronDown } from 'lucide-react'; -import type { ValidSource, ImageResult } from 'librechat-data-provider'; -import { FaviconImage, getCleanDomain } from '~/components/Web/SourceHovercard'; -import { useSearchContext } from '~/Providers'; -import { AnimatedTabs } from '~/components/ui'; -import { useLocalize } from '~/hooks'; import { + AnimatedTabs, OGDialog, OGDialogClose, OGDialogTitle, OGDialogContent, OGDialogTrigger, -} from '~/components/ui/OriginalDialog'; +} from '@librechat/client'; +import type { ValidSource, ImageResult } from 'librechat-data-provider'; +import { FaviconImage, getCleanDomain } from '~/components/Web/SourceHovercard'; +import { useSearchContext } from '~/Providers'; +import { useLocalize } from '~/hooks'; interface SourceItemProps { source: ValidSource; diff --git a/client/src/components/svg/Files/CodePaths.tsx b/client/src/components/svg/CodePaths.tsx similarity index 100% rename from client/src/components/svg/Files/CodePaths.tsx rename to client/src/components/svg/CodePaths.tsx diff --git a/client/src/components/svg/Files/FileIcon.tsx b/client/src/components/svg/FileIcon.tsx similarity index 100% rename from client/src/components/svg/Files/FileIcon.tsx rename to client/src/components/svg/FileIcon.tsx diff --git a/client/src/components/svg/Files/FilePaths.tsx b/client/src/components/svg/FilePaths.tsx similarity index 100% rename from client/src/components/svg/Files/FilePaths.tsx rename to client/src/components/svg/FilePaths.tsx diff --git a/client/src/components/svg/Files/SheetPaths.tsx b/client/src/components/svg/SheetPaths.tsx similarity index 100% rename from client/src/components/svg/Files/SheetPaths.tsx rename to client/src/components/svg/SheetPaths.tsx diff --git a/client/src/components/svg/Files/TextPaths.tsx b/client/src/components/svg/TextPaths.tsx similarity index 100% rename from client/src/components/svg/Files/TextPaths.tsx rename to client/src/components/svg/TextPaths.tsx diff --git a/client/src/components/svg/index.ts b/client/src/components/svg/index.ts new file mode 100644 index 0000000000..308c24759a --- /dev/null +++ b/client/src/components/svg/index.ts @@ -0,0 +1,5 @@ +export { default as CodePaths } from './CodePaths'; +export { default as FileIcon } from './FileIcon'; +export { default as FilePaths } from './FilePaths'; +export { default as SheetPaths } from './SheetPaths'; +export { default as TextPaths } from './TextPaths'; diff --git a/client/src/components/ui/TermsAndConditionsModal.tsx b/client/src/components/ui/TermsAndConditionsModal.tsx index 272bcdaf8d..0736e422f1 100644 --- a/client/src/components/ui/TermsAndConditionsModal.tsx +++ b/client/src/components/ui/TermsAndConditionsModal.tsx @@ -1,10 +1,8 @@ import { useMemo } from 'react'; +import { OGDialog, DialogTemplate, useToastContext } from '@librechat/client'; import type { TTermsOfService } from 'librechat-data-provider'; import MarkdownLite from '~/components/Chat/Messages/Content/MarkdownLite'; -import DialogTemplate from '~/components/ui/DialogTemplate'; import { useAcceptTermsMutation } from '~/data-provider'; -import { useToastContext } from '~/Providers'; -import { OGDialog } from '~/components'; import { useLocalize } from '~/hooks'; const TermsAndConditionsModal = ({ diff --git a/client/src/components/ui/index.ts b/client/src/components/ui/index.ts new file mode 100644 index 0000000000..259f52a76a --- /dev/null +++ b/client/src/components/ui/index.ts @@ -0,0 +1 @@ +export { default as TermsAndConditionsModal } from './TermsAndConditionsModal'; diff --git a/client/src/data-provider/Files/mutations.ts b/client/src/data-provider/Files/mutations.ts index 04700fe552..715cd6457d 100644 --- a/client/src/data-provider/Files/mutations.ts +++ b/client/src/data-provider/Files/mutations.ts @@ -1,3 +1,4 @@ +import { useToastContext } from '@librechat/client'; import { EToolResources } from 'librechat-data-provider'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { @@ -9,7 +10,6 @@ import { } from 'librechat-data-provider'; import type * as t from 'librechat-data-provider'; import type { UseMutationResult } from '@tanstack/react-query'; -import { useToastContext } from '~/Providers'; import { useLocalize } from '~/hooks'; export const useUploadFileMutation = ( diff --git a/client/src/hooks/Conversations/usePresets.ts b/client/src/hooks/Conversations/usePresets.ts index a0ff9a2517..b2bb156638 100644 --- a/client/src/hooks/Conversations/usePresets.ts +++ b/client/src/hooks/Conversations/usePresets.ts @@ -1,5 +1,6 @@ import filenamify from 'filenamify'; import exportFromJSON from 'export-from-json'; +import { useToastContext } from '@librechat/client'; import { QueryKeys } from 'librechat-data-provider'; import { useCallback, useEffect, useRef } from 'react'; import { useQueryClient } from '@tanstack/react-query'; @@ -13,11 +14,11 @@ import { } from '~/data-provider'; import { cleanupPreset, removeUnavailableTools, getConvoSwitchLogic } from '~/utils'; import useDefaultConvo from '~/hooks/Conversations/useDefaultConvo'; -import { useChatContext, useToastContext } from '~/Providers'; import { useAuthContext } from '~/hooks/AuthContext'; import { NotificationSeverity } from '~/common'; -import useLocalize from '~/hooks/useLocalize'; import useNewConvo from '~/hooks/useNewConvo'; +import { useChatContext } from '~/Providers'; +import { useLocalize } from '~/hooks'; import store from '~/store'; export default function usePresets() { diff --git a/client/src/hooks/Endpoint/Icons.tsx b/client/src/hooks/Endpoint/Icons.tsx index f69ee71c23..f5280cd7f3 100644 --- a/client/src/hooks/Endpoint/Icons.tsx +++ b/client/src/hooks/Endpoint/Icons.tsx @@ -1,6 +1,5 @@ -import { EModelEndpoint } from 'librechat-data-provider'; -import type { IconMapProps, AgentIconMapProps, IconsRecord } from '~/common'; import { Feather } from 'lucide-react'; +import { EModelEndpoint } from 'librechat-data-provider'; import { MinimalPlugin, GPTIcon, @@ -12,7 +11,8 @@ import { LightningIcon, BedrockIcon, Sparkles, -} from '~/components/svg'; +} from '@librechat/client'; +import type { IconMapProps, AgentIconMapProps, IconsRecord } from '~/common'; import UnknownIcon from './UnknownIcon'; import { cn } from '~/utils'; diff --git a/client/src/hooks/Endpoint/UnknownIcon.tsx b/client/src/hooks/Endpoint/UnknownIcon.tsx index dc2ad086b5..157c35dedb 100644 --- a/client/src/hooks/Endpoint/UnknownIcon.tsx +++ b/client/src/hooks/Endpoint/UnknownIcon.tsx @@ -1,6 +1,6 @@ import { memo } from 'react'; +import { CustomMinimalIcon, XAIcon } from '@librechat/client'; import { EModelEndpoint, KnownEndpoints } from 'librechat-data-provider'; -import { CustomMinimalIcon, XAIcon } from '~/components/svg'; import { IconContext } from '~/common'; import { cn } from '~/utils'; diff --git a/client/src/hooks/Files/useDelayedUploadToast.ts b/client/src/hooks/Files/useDelayedUploadToast.ts index 3b0fd90ae5..53434e7d3a 100644 --- a/client/src/hooks/Files/useDelayedUploadToast.ts +++ b/client/src/hooks/Files/useDelayedUploadToast.ts @@ -1,6 +1,6 @@ import { useState } from 'react'; -import { useToastContext } from '~/Providers/ToastContext'; -import useLocalize from '~/hooks/useLocalize'; +import { useToastContext } from '@librechat/client'; +import { useLocalize } from '~/hooks'; export const useDelayedUploadToast = () => { const localize = useLocalize(); diff --git a/client/src/hooks/Files/useFileHandling.ts b/client/src/hooks/Files/useFileHandling.ts index 3438417769..8c8f33e57e 100644 --- a/client/src/hooks/Files/useFileHandling.ts +++ b/client/src/hooks/Files/useFileHandling.ts @@ -1,5 +1,6 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { v4 } from 'uuid'; +import { useToastContext } from '@librechat/client'; import { useQueryClient } from '@tanstack/react-query'; import { QueryKeys, @@ -17,7 +18,6 @@ import { useGetFileConfig, useUploadFileMutation } from '~/data-provider'; import useLocalize, { TranslationKeys } from '~/hooks/useLocalize'; import { useDelayedUploadToast } from './useDelayedUploadToast'; import { processFileForUpload } from '~/utils/heicConverter'; -import { useToastContext } from '~/Providers/ToastContext'; import { useChatContext } from '~/Providers/ChatContext'; import { logger, validateFiles } from '~/utils'; import useClientResize from './useClientResize'; diff --git a/client/src/hooks/Input/index.ts b/client/src/hooks/Input/index.ts index bfc40ebb3e..dc959e3577 100644 --- a/client/src/hooks/Input/index.ts +++ b/client/src/hooks/Input/index.ts @@ -2,7 +2,6 @@ export * from './useAutoSave'; export { default as useUserKey } from './useUserKey'; export { default as useDebounce } from './useDebounce'; export { default as useTextarea } from './useTextarea'; -export { default as useCombobox } from './useCombobox'; export { default as useQueryParams } from './useQueryParams'; export { default as useHandleKeyUp } from './useHandleKeyUp'; export { default as useRequiresKey } from './useRequiresKey'; diff --git a/client/src/hooks/Input/useSpeechToTextBrowser.ts b/client/src/hooks/Input/useSpeechToTextBrowser.ts index 1d31c3348d..d4c301367f 100644 --- a/client/src/hooks/Input/useSpeechToTextBrowser.ts +++ b/client/src/hooks/Input/useSpeechToTextBrowser.ts @@ -1,8 +1,8 @@ import { useEffect, useRef, useMemo } from 'react'; import { useRecoilState } from 'recoil'; +import { useToastContext } from '@librechat/client'; import SpeechRecognition, { useSpeechRecognition } from 'react-speech-recognition'; import useGetAudioSettings from './useGetAudioSettings'; -import { useToastContext } from '~/Providers'; import store from '~/store'; const useSpeechToTextBrowser = ( diff --git a/client/src/hooks/Input/useSpeechToTextExternal.ts b/client/src/hooks/Input/useSpeechToTextExternal.ts index 3160696e9c..b375e425b3 100644 --- a/client/src/hooks/Input/useSpeechToTextExternal.ts +++ b/client/src/hooks/Input/useSpeechToTextExternal.ts @@ -1,8 +1,8 @@ import { useState, useEffect, useRef } from 'react'; import { useRecoilState } from 'recoil'; +import { useToastContext } from '@librechat/client'; import { useSpeechToTextMutation } from '~/data-provider'; import useGetAudioSettings from './useGetAudioSettings'; -import { useToastContext } from '~/Providers'; import store from '~/store'; const useSpeechToTextExternal = ( diff --git a/client/src/hooks/Input/useTextToSpeechExternal.ts b/client/src/hooks/Input/useTextToSpeechExternal.ts index cf8edb0382..99c1a2344e 100644 --- a/client/src/hooks/Input/useTextToSpeechExternal.ts +++ b/client/src/hooks/Input/useTextToSpeechExternal.ts @@ -1,8 +1,8 @@ -import { useRecoilValue } from 'recoil'; import { useState, useMemo, useRef, useCallback, useEffect } from 'react'; +import { useRecoilValue } from 'recoil'; +import { useToastContext } from '@librechat/client'; import { useTextToSpeechMutation, useVoicesQuery } from '~/data-provider'; -import { useToastContext } from '~/Providers/ToastContext'; -import useLocalize from '~/hooks/useLocalize'; +import { useLocalize } from '~/hooks'; import store from '~/store'; const createFormData = (text: string, voice: string) => { diff --git a/client/src/hooks/Input/useTextarea.ts b/client/src/hooks/Input/useTextarea.ts index 7a0711e7ae..7d32cbbe02 100644 --- a/client/src/hooks/Input/useTextarea.ts +++ b/client/src/hooks/Input/useTextarea.ts @@ -16,8 +16,8 @@ import useGetSender from '~/hooks/Conversations/useGetSender'; import useFileHandling from '~/hooks/Files/useFileHandling'; import { useInteractionHealthCheck } from '~/data-provider'; import { useChatContext } from '~/Providers/ChatContext'; -import useLocalize from '~/hooks/useLocalize'; import { globalAudioId } from '~/common'; +import { useLocalize } from '~/hooks'; import store from '~/store'; type KeyEvent = KeyboardEvent; diff --git a/client/src/hooks/Nav/useSideNavLinks.ts b/client/src/hooks/Nav/useSideNavLinks.ts index 728b856735..7345415215 100644 --- a/client/src/hooks/Nav/useSideNavLinks.ts +++ b/client/src/hooks/Nav/useSideNavLinks.ts @@ -1,4 +1,5 @@ import { useMemo } from 'react'; +import { Blocks, MCPIcon, AttachmentIcon } from '@librechat/client'; import { MessageSquareQuote, ArrowRightToLine, Settings2, Database, Bookmark } from 'lucide-react'; import { isAssistantsEndpoint, @@ -15,7 +16,6 @@ import BookmarkPanel from '~/components/SidePanel/Bookmarks/BookmarkPanel'; import MemoryViewer from '~/components/SidePanel/Memories/MemoryViewer'; import PanelSwitch from '~/components/SidePanel/Builder/PanelSwitch'; import PromptsAccordion from '~/components/Prompts/PromptsAccordion'; -import { Blocks, MCPIcon, AttachmentIcon } from '~/components/svg'; import Parameters from '~/components/SidePanel/Parameters/Panel'; import FilesPanel from '~/components/SidePanel/Files/Panel'; import MCPPanel from '~/components/SidePanel/MCP/MCPPanel'; diff --git a/client/src/hooks/Plugins/useAuthCodeTool.ts b/client/src/hooks/Plugins/useAuthCodeTool.ts index b33e05c169..f523fd01ef 100644 --- a/client/src/hooks/Plugins/useAuthCodeTool.ts +++ b/client/src/hooks/Plugins/useAuthCodeTool.ts @@ -2,10 +2,8 @@ import { useCallback } from 'react'; import { useQueryClient } from '@tanstack/react-query'; import { AuthType, Tools, QueryKeys } from 'librechat-data-provider'; import { useUpdateUserPluginsMutation } from 'librechat-data-provider/react-query'; -// import { useToastContext } from '~/Providers'; const useAuthCodeTool = (options?: { isEntityTool: boolean }) => { - // const { showToast } = useToastContext(); const queryClient = useQueryClient(); const isEntityTool = options?.isEntityTool ?? true; const updateUserPlugins = useUpdateUserPluginsMutation({ diff --git a/client/src/hooks/Prompts/useCategories.tsx b/client/src/hooks/Prompts/useCategories.tsx index a5083f8ed0..b4611e8dcc 100644 --- a/client/src/hooks/Prompts/useCategories.tsx +++ b/client/src/hooks/Prompts/useCategories.tsx @@ -1,6 +1,6 @@ import { useGetCategories } from '~/data-provider'; import CategoryIcon from '~/components/Prompts/Groups/CategoryIcon'; -import useLocalize, { TranslationKeys } from '~/hooks/useLocalize'; +import { useLocalize, TranslationKeys } from '~/hooks'; const loadingCategories: { label: TranslationKeys; value: string }[] = [ { diff --git a/client/src/hooks/ScreenshotContext.tsx b/client/src/hooks/ScreenshotContext.tsx index 2f9069c5f1..435327e571 100644 --- a/client/src/hooks/ScreenshotContext.tsx +++ b/client/src/hooks/ScreenshotContext.tsx @@ -1,6 +1,6 @@ import { createContext, useRef, useContext, RefObject } from 'react'; import { toCanvas } from 'html-to-image'; -import { ThemeContext } from '~/hooks/ThemeContext'; +import { ThemeContext } from '@librechat/client'; type ScreenshotContextType = { ref?: RefObject; diff --git a/client/src/routes/ChatRoute.tsx b/client/src/routes/ChatRoute.tsx index 77c6d73976..d81cbc075c 100644 --- a/client/src/routes/ChatRoute.tsx +++ b/client/src/routes/ChatRoute.tsx @@ -1,4 +1,5 @@ import { useEffect } from 'react'; +import { Spinner } from '@librechat/client'; import { useParams } from 'react-router-dom'; import { Constants, EModelEndpoint } from 'librechat-data-provider'; import { useGetModelsQuery } from 'librechat-data-provider/react-query'; @@ -10,7 +11,6 @@ import { ToolCallsMapProvider } from '~/Providers'; import ChatView from '~/components/Chat/ChatView'; import useAuthRedirect from './useAuthRedirect'; import temporaryStore from '~/store/temporary'; -import { Spinner } from '~/components/svg'; import { useRecoilCallback } from 'recoil'; import store from '~/store'; diff --git a/client/src/routes/Layouts/DashBreadcrumb.tsx b/client/src/routes/Layouts/DashBreadcrumb.tsx index 0138e63abc..c6db3a18bc 100644 --- a/client/src/routes/Layouts/DashBreadcrumb.tsx +++ b/client/src/routes/Layouts/DashBreadcrumb.tsx @@ -14,7 +14,7 @@ import { // DropdownMenuItem, // DropdownMenuContent, // DropdownMenuTrigger, -} from '~/components/ui'; +} from '@librechat/client'; import { useLocalize, useCustomLink, useAuthContext } from '~/hooks'; import AdvancedSwitch from '~/components/Prompts/AdvancedSwitch'; // import { RightPanel } from '../../components/Prompts/RightPanel'; diff --git a/client/src/routes/Root.tsx b/client/src/routes/Root.tsx index a1d39a4f1f..bede0ba54f 100644 --- a/client/src/routes/Root.tsx +++ b/client/src/routes/Root.tsx @@ -14,8 +14,8 @@ import { FileMapContext, SetConvoProvider, } from '~/Providers'; -import TermsAndConditionsModal from '~/components/ui'; // TODO: remove this comment after updating the import path of all components import { useUserTermsQuery, useGetStartupConfig } from '~/data-provider'; +import { TermsAndConditionsModal } from '~/components/ui'; import { Nav, MobileNav } from '~/components/Nav'; import { useHealthCheck } from '~/data-provider'; import { Banner } from '~/components/Banners'; diff --git a/client/src/routes/RouteErrorBoundary.tsx b/client/src/routes/RouteErrorBoundary.tsx index 6221ab25b8..cf6633f984 100644 --- a/client/src/routes/RouteErrorBoundary.tsx +++ b/client/src/routes/RouteErrorBoundary.tsx @@ -1,5 +1,5 @@ +import { Button } from '@librechat/client'; import { useRouteError } from 'react-router-dom'; -import { Button } from '~/components/ui'; import logger from '~/utils/logger'; interface UserAgentData { diff --git a/client/src/routes/Search.tsx b/client/src/routes/Search.tsx index 9508806dfc..c5863010e9 100644 --- a/client/src/routes/Search.tsx +++ b/client/src/routes/Search.tsx @@ -1,11 +1,11 @@ import { useEffect, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; +import { Spinner, useToastContext } from '@librechat/client'; import MinimalMessagesWrapper from '~/components/Chat/Messages/MinimalMessages'; import { useNavScrolling, useLocalize, useAuthContext } from '~/hooks'; import SearchMessage from '~/components/Chat/Messages/SearchMessage'; -import { useToastContext, useFileMapContext } from '~/Providers'; import { useMessagesInfiniteQuery } from '~/data-provider'; -import { Spinner } from '~/components'; +import { useFileMapContext } from '~/Providers'; import { buildTree } from '~/utils'; import store from '~/store'; diff --git a/client/src/utils/files.ts b/client/src/utils/files.ts index 3ca07e51d0..e989090127 100644 --- a/client/src/utils/files.ts +++ b/client/src/utils/files.ts @@ -1,3 +1,4 @@ +import { SheetPaths, TextPaths, FilePaths, CodePaths } from '~/components/svg'; import { megabyte, QueryKeys, @@ -8,10 +9,6 @@ import { import type { TFile, EndpointFileConfig } from 'librechat-data-provider'; import type { QueryClient } from '@tanstack/react-query'; import type { ExtendedFile } from '~/common'; -import SheetPaths from '~/components/svg/Files/SheetPaths'; -import TextPaths from '~/components/svg/Files/TextPaths'; -import FilePaths from '~/components/svg/Files/FilePaths'; -import CodePaths from '~/components/svg/Files/CodePaths'; export const partialTypes = ['text/x-']; diff --git a/client/src/utils/index.ts b/client/src/utils/index.ts index 82bf1f8a49..5b62ffbf2e 100644 --- a/client/src/utils/index.ts +++ b/client/src/utils/index.ts @@ -4,7 +4,6 @@ export * from './map'; export * from './json'; export * from './files'; export * from './latex'; -export * from './theme'; export * from './forms'; export * from './drafts'; export * from './convos'; diff --git a/client/src/Providers/ToastContext.tsx b/packages/client/src/Providers/ToastContext.tsx similarity index 77% rename from client/src/Providers/ToastContext.tsx rename to packages/client/src/Providers/ToastContext.tsx index 2f0e5efcf6..afe24995d2 100644 --- a/client/src/Providers/ToastContext.tsx +++ b/packages/client/src/Providers/ToastContext.tsx @@ -1,4 +1,4 @@ -import { createContext, useContext } from 'react'; +import { createContext, useContext, ReactNode } from 'react'; import type { TShowToast } from '~/common'; import useToast from '~/hooks/useToast'; @@ -14,7 +14,7 @@ export function useToastContext() { return useContext(ToastContext); } -export default function ToastProvider({ children }) { +export default function ToastProvider({ children }: { children: ReactNode }) { const { showToast } = useToast(); return {children}; diff --git a/packages/client/src/Providers/index.ts b/packages/client/src/Providers/index.ts new file mode 100644 index 0000000000..41cb62ae9c --- /dev/null +++ b/packages/client/src/Providers/index.ts @@ -0,0 +1,2 @@ +export { default as ToastProvider } from './ToastContext'; +export * from './ToastContext'; diff --git a/packages/client/src/components/DialogTemplate.tsx b/packages/client/src/components/DialogTemplate.tsx index e795d71553..d3ee806641 100644 --- a/packages/client/src/components/DialogTemplate.tsx +++ b/packages/client/src/components/DialogTemplate.tsx @@ -6,7 +6,7 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from './'; +} from './Dialog'; import { cn } from '~/utils/'; type SelectionProps = { diff --git a/packages/client/src/components/Resizable.tsx b/packages/client/src/components/Resizable.tsx index fc9a32df82..19d3c50e34 100644 --- a/packages/client/src/components/Resizable.tsx +++ b/packages/client/src/components/Resizable.tsx @@ -24,13 +24,13 @@ const ResizableHandle = ({ }) => ( div]:rotate-90', + 'relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90', className, )} {...props} > {withHandle && ( -
+
)} @@ -46,13 +46,13 @@ const ResizableHandleAlt = ({ }) => ( div]:rotate-90', + 'group relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90', className, )} {...props} > {withHandle && ( -
+
)} diff --git a/packages/client/src/components/Toast.tsx b/packages/client/src/components/Toast.tsx index 54dcc4ed0e..34ca1a0531 100644 --- a/packages/client/src/components/Toast.tsx +++ b/packages/client/src/components/Toast.tsx @@ -2,7 +2,7 @@ import * as RadixToast from '@radix-ui/react-toast'; import { NotificationSeverity } from '~/common/types'; import { useToast } from '~/hooks'; -export default function Toast() { +export function Toast() { const { toast, onOpenChange } = useToast(); const severityClassName = { [NotificationSeverity.INFO]: 'border-gray-500 bg-gray-500', diff --git a/packages/client/src/components/index.ts b/packages/client/src/components/index.ts index cb59792a49..f166e8103f 100644 --- a/packages/client/src/components/index.ts +++ b/packages/client/src/components/index.ts @@ -29,18 +29,25 @@ export * from './Tooltip'; export * from './Pagination'; export * from './Progress'; export * from './InputOTP'; +export * from './MultiSearch'; +export * from './Resizable'; export { default as Badge } from './Badge'; export { default as Combobox } from './Combobox'; export { default as Dropdown } from './Dropdown'; export { default as SplitText } from './SplitText'; +export { default as DataTable } from './DataTable'; export { default as FormInput } from './FormInput'; export { default as PixelCard } from './PixelCard'; export { default as FileUpload } from './FileUpload'; +export { default as MultiSelect } from './MultiSelect'; export { default as DropdownPopup } from './DropdownPopup'; export { default as DelayedRender } from './DelayedRender'; export { default as ThemeSelector } from './ThemeSelector'; +export { default as CheckboxButton } from './CheckboxButton'; +export { default as DialogTemplate } from './DialogTemplate'; export { default as SelectDropDown } from './SelectDropDown'; export { default as ModelParameters } from './ModelParameters'; +export { default as ControlCombobox } from './ControlCombobox'; export { default as OGDialogTemplate } from './OGDialogTemplate'; export { default as InputWithDropdown } from './InputWithDropDown'; export { default as AnimatedSearchInput } from './AnimatedSearchInput'; diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index 8c1da90fd7..b1b10a4b67 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -4,9 +4,18 @@ export * from './components'; // Hooks export * from './hooks'; +// Common export * from './common'; -// Common types export * from './common/types'; // Store export * from './store'; + +// SVGs +export * from './svgs'; + +// Utils +export * from './utils'; + +// Providers +export * from './Providers'; diff --git a/packages/client/src/svgs/index.ts b/packages/client/src/svgs/index.ts index 9efffb91c1..9c975a8e82 100644 --- a/packages/client/src/svgs/index.ts +++ b/packages/client/src/svgs/index.ts @@ -64,3 +64,4 @@ export { default as XAIcon } from './XAIcon'; export { default as PersonalizationIcon } from './PersonalizationIcon'; export { default as MCPIcon } from './MCPIcon'; export { default as VectorIcon } from './VectorIcon'; +export { default as SquirclePlusIcon } from './SquirclePlusIcon';