From 28cd5261a3630720154b54d10677d31980038a95 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sun, 31 Aug 2025 20:16:05 +0800 Subject: [PATCH] chore: ref --- src/components/chat/chat/context.ts | 2 +- src/components/chat/chat/index.tsx | 14 ++--- src/components/chat/chat/main.tsx | 26 ++++----- .../add-messages-to-page-wrapper/index.tsx | 22 ++++---- .../space-list.tsx | 16 +++--- .../view-item.tsx | 16 +++--- .../view-list.tsx | 2 +- .../ai-writer/ai-writer-menu-content.tsx | 24 ++++----- .../components/ai-writer/confirm-discard.tsx | 8 +-- .../chat/components/ai-writer/error.tsx | 8 +-- .../chat/components/ai-writer/index.tsx | 24 ++++----- .../chat/components/ai-writer/loading.tsx | 10 ++-- .../components/ai-writer/render-editor.tsx | 2 +- .../ai-writer/tools/ask-anything.tsx | 6 +-- .../ai-writer/tools/explain-toolbar.tsx | 12 ++--- .../components/ai-writer/tools/explain.tsx | 2 +- .../ai-writer/tools/fix-spelling.tsx | 8 +-- .../ai-writer/tools/improve-writing.tsx | 8 +-- .../ai-writer/tools/with-comment.tsx | 6 +-- .../ai-writer/use-ensure-bottom-visible.ts | 2 +- .../components/ai-writer/view-tree/index.tsx | 24 ++++----- .../components/ai-writer/view-tree/spaces.tsx | 12 ++--- .../components/ai-writer/writing-input.tsx | 32 +++++------ .../components/ai-writer/writing-more.tsx | 12 ++--- .../chat/components/chat-input/index.tsx | 53 +++++++++++-------- .../chat-input/model-selector/index.tsx | 18 +++---- .../chat-input/prompt-modal/index.tsx | 16 +++--- .../chat-input/prompt-modal/prompt-card.tsx | 6 +-- .../prompt-modal/prompt-category.tsx | 10 ++-- .../prompt-modal/prompt-database/index.tsx | 16 +++--- .../invalid-database-dialog.tsx | 6 +-- .../prompt-database/prompt-database-views.tsx | 6 +-- .../prompt-database/space-list.tsx | 12 ++--- .../prompt-database/view-item.tsx | 14 ++--- .../prompt-database/view-list.tsx | 2 +- .../prompt-modal/prompt-preview.tsx | 6 +-- .../chat-input/related-views/index.tsx | 22 ++++---- .../chat-input/related-views/spaces.tsx | 12 ++--- .../chat-messages/add-message-to.tsx | 12 ++--- .../components/chat-messages/ai-answer.tsx | 2 +- .../components/chat-messages/answer-md.tsx | 4 +- .../chat-messages/assistant-message.tsx | 18 +++---- .../chat-messages/empty-messages.tsx | 12 ++--- .../chat-messages/human-question.tsx | 6 +-- .../chat/components/chat-messages/index.tsx | 14 ++--- .../chat-messages/message-actions.tsx | 20 +++---- .../chat-messages/message-checkbox.tsx | 8 +-- .../chat-messages/message-sources.tsx | 14 ++--- .../chat-messages/message-suggestions.tsx | 16 +++--- .../chat/components/chat-messages/message.tsx | 12 ++--- .../chat-messages/regenerations.tsx | 26 ++++----- .../chat-messages/use-chat-messages.ts | 4 +- .../components/multi-selection/banner.tsx | 12 ++--- .../components/multi-selection/context.ts | 2 +- src/components/chat/components/ui/button.tsx | 2 +- src/components/chat/components/ui/dialog.tsx | 4 +- .../chat/components/ui/dropdown-menu.tsx | 2 +- .../chat/components/ui/format-group.tsx | 18 +++---- src/components/chat/components/ui/input.tsx | 2 +- src/components/chat/components/ui/popover.tsx | 2 +- .../chat/components/ui/search-input.tsx | 4 +- src/components/chat/components/ui/select.tsx | 2 +- src/components/chat/components/ui/switch.tsx | 2 +- .../chat/components/ui/textarea.tsx | 2 +- src/components/chat/components/ui/toast.tsx | 2 +- src/components/chat/components/ui/toaster.tsx | 2 +- src/components/chat/components/ui/tooltip.tsx | 2 +- .../chat/components/view/page-icon.tsx | 12 ++--- .../chat/components/view/space-item.tsx | 12 ++--- .../chat/components/view/view-children.tsx | 6 +-- .../chat/components/view/view-item.tsx | 16 +++--- .../chat/hooks/use-chat-settings-loader.ts | 4 +- .../chat/hooks/use-checkbox-tree.ts | 6 +-- src/components/chat/hooks/use-toast.ts | 2 +- src/components/chat/hooks/use-user-loader.ts | 4 +- .../chat/hooks/use-view-content-inserter.ts | 2 +- src/components/chat/index.ts | 10 ++-- src/components/chat/lib/utils.ts | 2 +- src/components/chat/lib/views.ts | 2 +- .../chat/provider/ai-assistant-provider.tsx | 16 +++--- .../chat/provider/editor-provider.tsx | 2 +- .../provider/messages-handler-provider.tsx | 8 +-- .../chat/provider/messages-provider.tsx | 4 +- .../chat/provider/prompt-modal-provider.tsx | 8 +-- .../provider/response-format-provider.tsx | 4 +- .../chat/provider/selection-mode-provider.tsx | 12 ++--- .../chat/provider/suggestions-provider.tsx | 6 +-- .../chat/provider/view-loader-provider.tsx | 6 +-- src/components/chat/request/chat-request.ts | 10 ++-- src/components/chat/request/writer-request.ts | 4 +- src/components/chat/types/index.ts | 9 +++- src/components/chat/writer/ai-writer-menu.tsx | 6 +-- .../chat/writer/context-placeholder.tsx | 10 ++-- src/components/chat/writer/context.ts | 2 +- src/components/chat/writer/index.ts | 2 +- tailwind.config.cjs | 6 +++ 96 files changed, 468 insertions(+), 450 deletions(-) diff --git a/src/components/chat/chat/context.ts b/src/components/chat/chat/context.ts index b652fe0e..40456af2 100644 --- a/src/components/chat/chat/context.ts +++ b/src/components/chat/chat/context.ts @@ -1,4 +1,4 @@ -import { ChatProps } from '../types'; +import { ChatProps } from '@/components/chat/types'; import { createContext, useContext } from 'react'; export const ChatContext = createContext(undefined); diff --git a/src/components/chat/chat/index.tsx b/src/components/chat/chat/index.tsx index 3a920c35..de53a58b 100644 --- a/src/components/chat/chat/index.tsx +++ b/src/components/chat/chat/index.tsx @@ -1,12 +1,12 @@ import Main from './main'; -import { TooltipProvider } from '../components/ui/tooltip'; -import { ChatI18nContext, getI18n, initI18n } from '../i18n/config'; -import { ChatProps } from '../types'; -import { Toaster } from '../components/ui/toaster'; -import '../styles/index.scss'; +import { TooltipProvider } from '@/components/chat/components/ui/tooltip'; +import { ChatI18nContext, getI18n, initI18n } from '@/components/chat/i18n/config'; +import { ChatProps } from '@/components/chat/types'; +import { Toaster } from '@/components/chat/components/ui/toaster'; +import '@/components/chat/styles/index.scss'; -export * from '../provider/prompt-modal-provider'; -export * from '../provider/view-loader-provider'; +export * from '@/components/chat/provider/prompt-modal-provider'; +export * from '@/components/chat/provider/view-loader-provider'; initI18n(); const i18n = getI18n(); diff --git a/src/components/chat/chat/main.tsx b/src/components/chat/chat/main.tsx index 706e3070..bc2ac32a 100644 --- a/src/components/chat/chat/main.tsx +++ b/src/components/chat/chat/main.tsx @@ -1,19 +1,19 @@ // Code: Chat main component import { ChatContext } from './context'; -import { ChatInput } from '../components/chat-input'; -import { ChatMessages } from '../components/chat-messages'; -import { cn } from '../lib/utils'; -import { MessageAnimationProvider } from '../provider/message-animation-provider'; -import { EditorProvider } from '../provider/editor-provider'; -import { MessagesHandlerProvider } from '../provider/messages-handler-provider'; -import { ChatMessagesProvider } from '../provider/messages-provider'; -import { PromptModalProvider } from '../provider/prompt-modal-provider'; -import { ResponseFormatProvider } from '../provider/response-format-provider'; -import { SelectionModeProvider } from '../provider/selection-mode-provider'; -import { SuggestionsProvider } from '../provider/suggestions-provider'; -import { ChatProps } from '../types'; +import { ChatInput } from '@/components/chat/components/chat-input'; +import { ChatMessages } from '@/components/chat/components/chat-messages'; +import { cn } from '@/components/chat/lib/utils'; +import { MessageAnimationProvider } from '@/components/chat/provider/message-animation-provider'; +import { EditorProvider } from '@/components/chat/provider/editor-provider'; +import { MessagesHandlerProvider } from '@/components/chat/provider/messages-handler-provider'; +import { ChatMessagesProvider } from '@/components/chat/provider/messages-provider'; +import { PromptModalProvider } from '@/components/chat/provider/prompt-modal-provider'; +import { ResponseFormatProvider } from '@/components/chat/provider/response-format-provider'; +import { SelectionModeProvider } from '@/components/chat/provider/selection-mode-provider'; +import { SuggestionsProvider } from '@/components/chat/provider/suggestions-provider'; +import { ChatProps } from '@/components/chat/types'; import { AnimatePresence, motion } from 'framer-motion'; -import { ViewLoaderProvider } from '../provider/view-loader-provider'; +import { ViewLoaderProvider } from '@/components/chat/provider/view-loader-provider'; function Main(props: ChatProps) { const { currentUser, selectionMode } = props; diff --git a/src/components/chat/components/add-messages-to-page-wrapper/index.tsx b/src/components/chat/components/add-messages-to-page-wrapper/index.tsx index 9ff98d15..09a627b7 100644 --- a/src/components/chat/components/add-messages-to-page-wrapper/index.tsx +++ b/src/components/chat/components/add-messages-to-page-wrapper/index.tsx @@ -1,16 +1,16 @@ -import { useChatContext } from '../../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; import { SpaceList } from '../add-messages-to-page-wrapper/space-list'; -import { Label } from '../ui/label'; -import { SearchInput } from '../ui/search-input'; -import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'; -import { Separator } from '../ui/separator'; -import { toast } from '../../hooks/use-toast'; -import { useViewContentInserter } from '../../hooks/use-view-content-inserter'; -import { useTranslation } from '../../i18n'; -import { useEditorContext } from '../../provider/editor-provider'; -import { ChatMessage } from '../../types'; +import { Label } from '@/components/chat/components/ui/label'; +import { SearchInput } from '@/components/chat/components/ui/search-input'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/chat/components/ui/popover'; +import { Separator } from '@/components/chat/components/ui/separator'; +import { toast } from '@/components/chat/hooks/use-toast'; +import { useViewContentInserter } from '@/components/chat/hooks/use-view-content-inserter'; +import { useTranslation } from '@/components/chat/i18n'; +import { useEditorContext } from '@/components/chat/provider/editor-provider'; +import { ChatMessage } from '@/components/chat/types'; import { useCallback, useState } from 'react'; -import { useViewLoader } from '../../provider/view-loader-provider'; +import { useViewLoader } from '@/components/chat/provider/view-loader-provider'; export function AddMessageToPageWrapper({ onFinished, messages, children }: { messages: ChatMessage[]; diff --git a/src/components/chat/components/add-messages-to-page-wrapper/space-list.tsx b/src/components/chat/components/add-messages-to-page-wrapper/space-list.tsx index bad5701d..e955dcaa 100644 --- a/src/components/chat/components/add-messages-to-page-wrapper/space-list.tsx +++ b/src/components/chat/components/add-messages-to-page-wrapper/space-list.tsx @@ -1,14 +1,14 @@ import ViewList from '../add-messages-to-page-wrapper/view-list'; -import { Button } from '../ui/button'; -import LoadingDots from '../ui/loading-dots'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip'; -import SpaceItem from '../view/space-item'; -import { useTranslation } from '../../i18n'; -import { searchViews } from '../../lib/views'; -import { View } from '../../types'; +import { Button } from '@/components/chat/components/ui/button'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import SpaceItem from '@/components/chat/components/view/space-item'; +import { useTranslation } from '@/components/chat/i18n'; +import { searchViews } from '@/components/chat/lib/views'; +import { View } from '@/components/chat/types'; import { useEffect, useMemo, useState } from 'react'; import { PlusIcon } from 'lucide-react'; -import { useViewLoader } from '../../provider/view-loader-provider'; +import { useViewLoader } from '@/components/chat/provider/view-loader-provider'; export function SpaceList({ searchValue, diff --git a/src/components/chat/components/add-messages-to-page-wrapper/view-item.tsx b/src/components/chat/components/add-messages-to-page-wrapper/view-item.tsx index 81ca226f..7629e3e4 100644 --- a/src/components/chat/components/add-messages-to-page-wrapper/view-item.tsx +++ b/src/components/chat/components/add-messages-to-page-wrapper/view-item.tsx @@ -1,13 +1,13 @@ -import { ReactComponent as ChevronDown } from '../../assets/icons/drop_menu_show.svg'; -import { Button } from '../ui/button'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip'; -import PageIcon from '../view/page-icon'; -import { useTranslation } from '../../i18n'; -import { cn } from '../../lib/utils'; -import { View } from '../../types'; +import { ReactComponent as ChevronDown } from '@/components/chat/assets/icons/drop_menu_show.svg'; +import { Button } from '@/components/chat/components/ui/button'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import PageIcon from '@/components/chat/components/view/page-icon'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn } from '@/components/chat/lib/utils'; +import { View } from '@/components/chat/types'; import { PlusIcon } from 'lucide-react'; import { useMemo, useState } from 'react'; -import { ReactComponent as AddPageIcon } from '../../assets/icons/doc-forward.svg'; +import { ReactComponent as AddPageIcon } from '@/components/chat/assets/icons/doc-forward.svg'; export function ViewItem({ view, children, onCreateViewWithContent, onInsertContentToView }: { view: View; diff --git a/src/components/chat/components/add-messages-to-page-wrapper/view-list.tsx b/src/components/chat/components/add-messages-to-page-wrapper/view-list.tsx index f149a151..bd4e66fd 100644 --- a/src/components/chat/components/add-messages-to-page-wrapper/view-list.tsx +++ b/src/components/chat/components/add-messages-to-page-wrapper/view-list.tsx @@ -1,5 +1,5 @@ import { ViewItem } from '../add-messages-to-page-wrapper/view-item'; -import { View } from '../../types'; +import { View } from '@/components/chat/types'; function ViewList({ item, diff --git a/src/components/chat/components/ai-writer/ai-writer-menu-content.tsx b/src/components/chat/components/ai-writer/ai-writer-menu-content.tsx index 84a6c229..378d6934 100644 --- a/src/components/chat/components/ai-writer/ai-writer-menu-content.tsx +++ b/src/components/chat/components/ai-writer/ai-writer-menu-content.tsx @@ -1,15 +1,15 @@ -import { Button } from '../ui/button'; -import { Separator } from '../ui/separator'; -import { useTranslation } from '../../i18n'; -import { ReactComponent as ImproveWritingIcon } from '../../assets/icons/improve-writing.svg'; -import { ReactComponent as AskAIIcon } from '../../assets/icons/ai.svg'; -import { ReactComponent as FixSpellingIcon } from '../../assets/icons/fix-spelling.svg'; -import { ReactComponent as ExplainIcon } from '../../assets/icons/explain.svg'; -import { ReactComponent as MakeLongerIcon } from '../../assets/icons/make-longer.svg'; -import { ReactComponent as MakeShorterIcon } from '../../assets/icons/make-shorter.svg'; -import { ReactComponent as ContinueWritingIcon } from '../../assets/icons/continue-writing.svg'; -import { AIAssistantType } from '../../types'; -import { useWriterContext } from '../../writer/context'; +import { Button } from '@/components/chat/components/ui/button'; +import { Separator } from '@/components/chat/components/ui/separator'; +import { useTranslation } from '@/components/chat/i18n'; +import { ReactComponent as ImproveWritingIcon } from '@/components/chat/assets/icons/improve-writing.svg'; +import { ReactComponent as AskAIIcon } from '@/components/chat/assets/icons/ai.svg'; +import { ReactComponent as FixSpellingIcon } from '@/components/chat/assets/icons/fix-spelling.svg'; +import { ReactComponent as ExplainIcon } from '@/components/chat/assets/icons/explain.svg'; +import { ReactComponent as MakeLongerIcon } from '@/components/chat/assets/icons/make-longer.svg'; +import { ReactComponent as MakeShorterIcon } from '@/components/chat/assets/icons/make-shorter.svg'; +import { ReactComponent as ContinueWritingIcon } from '@/components/chat/assets/icons/continue-writing.svg'; +import { AIAssistantType } from '@/components/chat/types'; +import { useWriterContext } from '@/components/chat/writer/context'; import { useMemo } from 'react'; export function AiWriterMenuContent({ input, onClicked, isFilterOut }: { diff --git a/src/components/chat/components/ai-writer/confirm-discard.tsx b/src/components/chat/components/ai-writer/confirm-discard.tsx index 7c3520c5..007adcca 100644 --- a/src/components/chat/components/ai-writer/confirm-discard.tsx +++ b/src/components/chat/components/ai-writer/confirm-discard.tsx @@ -1,13 +1,13 @@ -import { Button } from '../ui/button'; +import { Button } from '@/components/chat/components/ui/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, -} from '../ui/dialog'; -import { useTranslation } from '../../i18n'; -import { useWriterContext } from '../../writer/context'; +} from '@/components/chat/components/ui/dialog'; +import { useTranslation } from '@/components/chat/i18n'; +import { useWriterContext } from '@/components/chat/writer/context'; import React from 'react'; export const ConfirmDiscard = React.forwardRef CheckStatus; diff --git a/src/components/chat/components/ai-writer/writing-input.tsx b/src/components/chat/components/ai-writer/writing-input.tsx index df4566b6..8d809fb4 100644 --- a/src/components/chat/components/ai-writer/writing-input.tsx +++ b/src/components/chat/components/ai-writer/writing-input.tsx @@ -1,26 +1,26 @@ -import { ReactComponent as SendIcon } from '../../assets/icons/arrow-up.svg'; -import { ReactComponent as AutoTextIcon } from '../../assets/icons/auto-text.svg'; -import { ReactComponent as ImageTextIcon } from '../../assets/icons/image-text.svg'; +import { ReactComponent as SendIcon } from '@/components/chat/assets/icons/arrow-up.svg'; +import { ReactComponent as AutoTextIcon } from '@/components/chat/assets/icons/auto-text.svg'; +import { ReactComponent as ImageTextIcon } from '@/components/chat/assets/icons/image-text.svg'; import { ViewTree } from '../ai-writer/view-tree'; import { WritingMore } from '../ai-writer/writing-more'; -import { Button } from '../ui/button'; -import { FormatGroup } from '../ui/format-group'; -import LoadingDots from '../ui/loading-dots'; -import { Textarea } from '../ui/textarea'; +import { Button } from '@/components/chat/components/ui/button'; +import { FormatGroup } from '@/components/chat/components/ui/format-group'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import { Textarea } from '@/components/chat/components/ui/textarea'; import { Tooltip, TooltipContent, TooltipTrigger, -} from '../ui/tooltip'; -import { toast } from '../../hooks/use-toast'; -import { useTranslation } from '../../i18n'; -import { cn } from '../../lib/utils'; -import { usePromptModal } from '../../provider/prompt-modal-provider'; -import { ChatInputMode } from '../../types'; -import { AiPrompt } from '../../types/prompt'; -import { useWriterContext } from '../../writer/context'; +} from '@/components/chat/components/ui/tooltip'; +import { toast } from '@/components/chat/hooks/use-toast'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn } from '@/components/chat/lib/utils'; +import { usePromptModal } from '@/components/chat/provider/prompt-modal-provider'; +import { ChatInputMode } from '@/components/chat/types'; +import { AiPrompt } from '@/components/chat/types/prompt'; +import { useWriterContext } from '@/components/chat/writer/context'; import { useCallback, useEffect, useRef, useState } from 'react'; -import { PromptModal } from '../chat-input/prompt-modal'; +import { PromptModal } from '@/components/chat/components/chat-input/prompt-modal'; const MAX_HEIGHT = 200; // Prevent focus on page load and cause the page to scroll diff --git a/src/components/chat/components/ai-writer/writing-more.tsx b/src/components/chat/components/ai-writer/writing-more.tsx index 702c65ed..073ce819 100644 --- a/src/components/chat/components/ai-writer/writing-more.tsx +++ b/src/components/chat/components/ai-writer/writing-more.tsx @@ -1,11 +1,11 @@ import { AiWriterMenuContent } from '../ai-writer/ai-writer-menu-content'; -import { Button } from '../ui/button'; -import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'; -import { useTranslation } from '../../i18n'; -import { AIAssistantType } from '../../types'; -import { useWriterContext } from '../../writer/context'; +import { Button } from '@/components/chat/components/ui/button'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/chat/components/ui/popover'; +import { useTranslation } from '@/components/chat/i18n'; +import { AIAssistantType } from '@/components/chat/types'; +import { useWriterContext } from '@/components/chat/writer/context'; import { ChevronDown } from 'lucide-react'; -import { ReactComponent as MoreIcon } from '../../assets/icons/ai-more.svg'; +import { ReactComponent as MoreIcon } from '@/components/chat/assets/icons/ai-more.svg'; import { useCallback, useState } from 'react'; export function WritingMore({ input }: { diff --git a/src/components/chat/components/chat-input/index.tsx b/src/components/chat/components/chat-input/index.tsx index c528b693..9cca6ec7 100644 --- a/src/components/chat/components/chat-input/index.tsx +++ b/src/components/chat/components/chat-input/index.tsx @@ -1,27 +1,27 @@ import { motion } from 'framer-motion'; import { useCallback, useEffect, useRef, useState } from 'react'; -import { ReactComponent as SendIcon } from '../../assets/icons/arrow-up.svg'; -import { ReactComponent as AutoTextIcon } from '../../assets/icons/auto-text.svg'; -import { ReactComponent as ImageTextIcon } from '../../assets/icons/image-text.svg'; -import { ReactComponent as StopIcon } from '../../assets/icons/stop.svg'; -import { useChatContext } from '../../chat/context'; -import { toast } from '../../hooks/use-toast'; -import { useTranslation } from '../../i18n'; -import { MESSAGE_VARIANTS } from '../../lib/animations'; -import { useMessagesHandlerContext } from '../../provider/messages-handler-provider'; -import { usePromptModal } from '../../provider/prompt-modal-provider'; -import { useResponseFormatContext } from '../../provider/response-format-provider'; -import { ChatInputMode } from '../../types'; -import { AiPrompt } from '../../types/prompt'; -import { Button } from '../ui/button'; -import { FormatGroup } from '../ui/format-group'; -import LoadingDots from '../ui/loading-dots'; -import { Textarea } from '../ui/textarea'; +import { ReactComponent as SendIcon } from '@/components/chat/assets/icons/arrow-up.svg'; +import { ReactComponent as AutoTextIcon } from '@/components/chat/assets/icons/auto-text.svg'; +import { ReactComponent as ImageTextIcon } from '@/components/chat/assets/icons/image-text.svg'; +import { ReactComponent as StopIcon } from '@/components/chat/assets/icons/stop.svg'; +import { useChatContext } from '@/components/chat/chat/context'; +import { toast } from '@/components/chat/hooks/use-toast'; +import { useTranslation } from '@/components/chat/i18n'; +import { MESSAGE_VARIANTS } from '@/components/chat/lib/animations'; +import { useMessagesHandlerContext } from '@/components/chat/provider/messages-handler-provider'; +import { usePromptModal } from '@/components/chat/provider/prompt-modal-provider'; +import { useResponseFormatContext } from '@/components/chat/provider/response-format-provider'; +import { ChatInputMode } from '@/components/chat/types'; +import { AiPrompt } from '@/components/chat/types/prompt'; +import { Button } from '@/components/chat/components/ui/button'; +import { FormatGroup } from '@/components/chat/components/ui/format-group'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import { Textarea } from '@/components/chat/components/ui/textarea'; import { Tooltip, TooltipContent, TooltipTrigger, -} from '../ui/tooltip'; +} from '@/components/chat/components/ui/tooltip'; import { ModelSelector } from './model-selector'; import { PromptModal } from './prompt-modal'; import { RelatedViews } from './related-views'; @@ -168,7 +168,7 @@ export function ChatInput() { >
{responseMode === ChatInputMode.FormatResponse && ( @@ -240,8 +240,15 @@ export function ChatInput() { - + Test Model Button + + + @@ -318,4 +325,4 @@ export function ChatInput() {
); -} +} \ No newline at end of file diff --git a/src/components/chat/components/chat-input/model-selector/index.tsx b/src/components/chat/components/chat-input/model-selector/index.tsx index 7b6ffdfd..5499c2e9 100644 --- a/src/components/chat/components/chat-input/model-selector/index.tsx +++ b/src/components/chat/components/chat-input/model-selector/index.tsx @@ -1,20 +1,20 @@ import { Check } from 'lucide-react'; import { useCallback, useEffect, useRef, useState } from 'react'; -import { ReactComponent as AISparksIcon } from '../../../assets/icons/ai_sparks.svg'; +import { ReactComponent as AISparksIcon } from '@/components/chat/assets/icons/ai_sparks.svg'; -import { useChatContext } from '../../../chat/context'; -import { ModelCache } from '../../../lib/model-cache'; -import { cn } from '../../../lib/utils'; -import { useMessagesHandlerContext } from '../../../provider/messages-handler-provider'; -import { UpdateChatSettingsParams } from '../../../request/chat-request'; -import { AvailableModel, toModelDisplayInfo } from '../../../types/ai-model'; -import { Button } from '../../ui/button'; +import { useChatContext } from '@/components/chat/chat/context'; +import { ModelCache } from '@/components/chat/lib/model-cache'; +import { cn } from '@/components/chat/lib/utils'; +import { useMessagesHandlerContext } from '@/components/chat/provider/messages-handler-provider'; +import { UpdateChatSettingsParams } from '@/components/chat/request/chat-request'; +import { AvailableModel, toModelDisplayInfo } from '@/components/chat/types/ai-model'; +import { Button } from '@/components/chat/components/ui/button'; import { Popover, PopoverContent, PopoverTrigger, -} from '../../ui/popover'; +} from '@/components/chat/components/ui/popover'; interface ModelSelectorProps { className?: string; diff --git a/src/components/chat/components/chat-input/prompt-modal/index.tsx b/src/components/chat/components/chat-input/prompt-modal/index.tsx index 1627f5ff..3ee8fcc2 100644 --- a/src/components/chat/components/chat-input/prompt-modal/index.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/index.tsx @@ -1,7 +1,7 @@ -import { Dialog, DialogContent, DialogTitle, DialogDescription } from '../../ui/dialog'; -import { useTranslation } from '../../../i18n'; -import { usePromptModal } from '../../../provider/prompt-modal-provider'; -import { AiPrompt, AiPromptCategory } from '../../../types/prompt'; +import { Dialog, DialogContent, DialogTitle, DialogDescription } from '@/components/chat/components/ui/dialog'; +import { useTranslation } from '@/components/chat/i18n'; +import { usePromptModal } from '@/components/chat/provider/prompt-modal-provider'; +import { AiPrompt, AiPromptCategory } from '@/components/chat/types/prompt'; import { SearchIcon } from 'lucide-react'; import { forwardRef, @@ -13,12 +13,12 @@ import { } from 'react'; import { PromptCard } from './prompt-card'; import { PromptPreview } from './prompt-preview'; -import { ReactComponent as CloseCircle } from '../../../assets/icons/close_circle.svg'; +import { ReactComponent as CloseCircle } from '@/components/chat/assets/icons/close_circle.svg'; import { PromptCategory } from './prompt-category'; -import { SearchInput } from '../../ui/search-input'; -import { Button } from '../../ui/button'; +import { SearchInput } from '@/components/chat/components/ui/search-input'; +import { Button } from '@/components/chat/components/ui/button'; import { PromptDatabaseModal } from './prompt-database'; -import { useViewLoader } from '../../../provider/view-loader-provider'; +import { useViewLoader } from '@/components/chat/provider/view-loader-provider'; export const PromptModal = forwardRef< HTMLDivElement, diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-card.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-card.tsx index c62deb65..d9fa658f 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-card.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-card.tsx @@ -1,6 +1,6 @@ -import { useTranslation } from '../../../i18n'; -import { cn } from '../../../lib/utils'; -import { AiPrompt } from '../../../types/prompt'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn } from '@/components/chat/lib/utils'; +import { AiPrompt } from '@/components/chat/types/prompt'; import { useState } from 'react'; export function PromptCard({ diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-category.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-category.tsx index f460179b..92c96bf1 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-category.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-category.tsx @@ -1,9 +1,9 @@ -import { Button } from '../../ui/button'; -import { cn } from '../../../lib/utils'; -import { AiPromptCategory } from '../../../types/prompt'; -import { Separator } from '../../ui/separator'; +import { Button } from '@/components/chat/components/ui/button'; +import { cn } from '@/components/chat/lib/utils'; +import { AiPromptCategory } from '@/components/chat/types/prompt'; +import { Separator } from '@/components/chat/components/ui/separator'; import { useMemo } from 'react'; -import { useTranslation } from '../../../i18n'; +import { useTranslation } from '@/components/chat/i18n'; export function PromptCategory({ isFeaturedSelected, diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-database/index.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-database/index.tsx index 90b93dde..3225ee15 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-database/index.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-database/index.tsx @@ -1,21 +1,21 @@ -import { Button } from '../../../ui/button'; -import { Dialog, DialogContent, DialogTitle, DialogDescription } from '../../../ui/dialog'; +import { Button } from '@/components/chat/components/ui/button'; +import { Dialog, DialogContent, DialogTitle, DialogDescription } from '@/components/chat/components/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger, -} from '../../../ui/dropdown-menu'; -import { useTranslation } from '../../../../i18n'; -import { cn } from '../../../../lib/utils'; -import { usePromptModal } from '../../../../provider/prompt-modal-provider'; +} from '@/components/chat/components/ui/dropdown-menu'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn } from '@/components/chat/lib/utils'; +import { usePromptModal } from '@/components/chat/provider/prompt-modal-provider'; import { ChevronDown } from 'lucide-react'; import { useCallback, useEffect, useRef, useState } from 'react'; import { PromptDatabaseViews } from './prompt-database-views'; -import { ReactComponent as CloseCircle } from '../../../../assets/icons/close_circle.svg'; +import { ReactComponent as CloseCircle } from '@/components/chat/assets/icons/close_circle.svg'; import { InvalidDatabaseDialog } from './invalid-database-dialog'; -import { useViewLoader } from '../../../../provider/view-loader-provider'; +import { useViewLoader } from '@/components/chat/provider/view-loader-provider'; export function PromptDatabaseModal({ isOpen, diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-database/invalid-database-dialog.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-database/invalid-database-dialog.tsx index d127ed6f..4626a0e2 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-database/invalid-database-dialog.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-database/invalid-database-dialog.tsx @@ -1,4 +1,4 @@ -import { Button } from '../../../ui/button'; +import { Button } from '@/components/chat/components/ui/button'; import { Dialog, DialogContent, @@ -6,8 +6,8 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '../../../ui/dialog'; -import { useTranslation } from '../../../../i18n'; +} from '@/components/chat/components/ui/dialog'; +import { useTranslation } from '@/components/chat/i18n'; export function InvalidDatabaseDialog({ isOpen, diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-database/prompt-database-views.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-database/prompt-database-views.tsx index fb8f5be4..9a09b67d 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-database/prompt-database-views.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-database/prompt-database-views.tsx @@ -2,9 +2,9 @@ import { Popover, PopoverContent, PopoverTrigger, -} from '../../../ui/popover'; -import { SearchInput } from '../../../ui/search-input'; -import { Separator } from '../../../ui/separator'; +} from '@/components/chat/components/ui/popover'; +import { SearchInput } from '@/components/chat/components/ui/search-input'; +import { Separator } from '@/components/chat/components/ui/separator'; import { ReactNode, useState } from 'react'; import { SpaceList } from './space-list'; diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-database/space-list.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-database/space-list.tsx index d7838973..dae548be 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-database/space-list.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-database/space-list.tsx @@ -1,9 +1,9 @@ -import { useViewLoader } from '../../../../provider/view-loader-provider'; -import LoadingDots from '../../../ui/loading-dots'; -import SpaceItem from '../../../view/space-item'; -import { useTranslation } from '../../../../i18n'; -import { hasDatabaseViewChild, searchDatabaseViews } from '../../../../lib/views'; -import { View } from '../../../../types'; +import { useViewLoader } from '@/components/chat/provider/view-loader-provider'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import SpaceItem from '@/components/chat/components/view/space-item'; +import { useTranslation } from '@/components/chat/i18n'; +import { hasDatabaseViewChild, searchDatabaseViews } from '@/components/chat/lib/views'; +import { View } from '@/components/chat/types'; import { useCallback, useEffect, useMemo, useState } from 'react'; import ViewList from './view-list'; diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-item.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-item.tsx index 081791c3..882c6567 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-item.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-item.tsx @@ -1,15 +1,15 @@ -import { ReactComponent as ChevronDown } from '../../../../assets/icons/drop_menu_show.svg'; -import { Button } from '../../../ui/button'; +import { ReactComponent as ChevronDown } from '@/components/chat/assets/icons/drop_menu_show.svg'; +import { Button } from '@/components/chat/components/ui/button'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, -} from '../../../ui/tooltip'; -import PageIcon from '../../../view/page-icon'; -import { useTranslation } from '../../../../i18n'; -import { cn } from '../../../../lib/utils'; -import { View } from '../../../../types'; +} from '@/components/chat/components/ui/tooltip'; +import PageIcon from '@/components/chat/components/view/page-icon'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn } from '@/components/chat/lib/utils'; +import { View } from '@/components/chat/types'; import { useMemo, useState } from 'react'; export function ViewItem({ diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-list.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-list.tsx index ec30d6c1..54ddc704 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-list.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-database/view-list.tsx @@ -1,4 +1,4 @@ -import { View } from '../../types'; +import { View } from '@/components/chat/types'; import { ViewItem } from './view-item'; function ViewList({ diff --git a/src/components/chat/components/chat-input/prompt-modal/prompt-preview.tsx b/src/components/chat/components/chat-input/prompt-modal/prompt-preview.tsx index aac2d6c8..77541b15 100644 --- a/src/components/chat/components/chat-input/prompt-modal/prompt-preview.tsx +++ b/src/components/chat/components/chat-input/prompt-modal/prompt-preview.tsx @@ -1,6 +1,6 @@ -import { Button } from '../../ui/button'; -import { useTranslation } from '../../../i18n'; -import { AiPrompt } from '../../../types/prompt'; +import { Button } from '@/components/chat/components/ui/button'; +import { useTranslation } from '@/components/chat/i18n'; +import { AiPrompt } from '@/components/chat/types/prompt'; import { useMemo } from 'react'; export function PromptPreview({ diff --git a/src/components/chat/components/chat-input/related-views/index.tsx b/src/components/chat/components/chat-input/related-views/index.tsx index 27dfa3c4..9d621e80 100644 --- a/src/components/chat/components/chat-input/related-views/index.tsx +++ b/src/components/chat/components/chat-input/related-views/index.tsx @@ -1,18 +1,18 @@ -import LoadingDots from '../../ui/loading-dots'; -import { SearchInput } from '../../ui/search-input'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import { SearchInput } from '@/components/chat/components/ui/search-input'; import { Spaces } from './spaces'; -import { Button } from '../../ui/button'; -import { Popover, PopoverContent, PopoverTrigger } from '../../ui/popover'; -import { ReactComponent as DocIcon } from '../../../assets/icons/doc.svg'; -import { Separator } from '../../ui/separator'; -import { useChatSettingsLoader } from '../../../hooks/use-chat-settings-loader'; -import { useCheckboxTree } from '../../../hooks/use-checkbox-tree'; -import { searchViews } from '../../../lib/views'; -import { View } from '../../../types'; +import { Button } from '@/components/chat/components/ui/button'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/chat/components/ui/popover'; +import { ReactComponent as DocIcon } from '@/components/chat/assets/icons/doc.svg'; +import { Separator } from '@/components/chat/components/ui/separator'; +import { useChatSettingsLoader } from '@/components/chat/hooks/use-chat-settings-loader'; +import { useCheckboxTree } from '@/components/chat/hooks/use-checkbox-tree'; +import { searchViews } from '@/components/chat/lib/views'; +import { View } from '@/components/chat/types'; import { ChevronDown } from 'lucide-react'; import { useEffect, useMemo, useState } from 'react'; import debounce from 'lodash-es/debounce'; -import { useViewLoader } from '../../..'; +import { useViewLoader } from '@/components/chat'; export function RelatedViews() { diff --git a/src/components/chat/components/chat-input/related-views/spaces.tsx b/src/components/chat/components/chat-input/related-views/spaces.tsx index 705b81a7..572a24c4 100644 --- a/src/components/chat/components/chat-input/related-views/spaces.tsx +++ b/src/components/chat/components/chat-input/related-views/spaces.tsx @@ -1,9 +1,9 @@ -import ViewChildren from '../../view/view-children'; -import SpaceItem from '../../view/space-item'; -import LoadingDots from '../../ui/loading-dots'; -import { useTranslation } from '../../../i18n'; -import { View } from '../../../types'; -import { CheckStatus } from '../../../types/checkbox'; +import ViewChildren from '@/components/chat/components/view/view-children'; +import SpaceItem from '@/components/chat/components/view/space-item'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import { useTranslation } from '@/components/chat/i18n'; +import { View } from '@/components/chat/types'; +import { CheckStatus } from '@/components/chat/types/checkbox'; interface SpacesProps { getCheckStatus: (view: View) => CheckStatus; diff --git a/src/components/chat/components/chat-messages/add-message-to.tsx b/src/components/chat/components/chat-messages/add-message-to.tsx index f344d26a..7c917f19 100644 --- a/src/components/chat/components/chat-messages/add-message-to.tsx +++ b/src/components/chat/components/chat-messages/add-message-to.tsx @@ -1,9 +1,9 @@ -import { AddMessageToPageWrapper } from '../add-messages-to-page-wrapper'; -import { Button } from '../ui/button'; -import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip'; -import { ReactComponent as AddPageIcon } from '../../assets/icons/doc-forward.svg'; -import { useTranslation } from '../../i18n'; -import { useChatMessagesContext } from '../../provider/messages-provider'; +import { AddMessageToPageWrapper } from '@/components/chat/components/add-messages-to-page-wrapper'; +import { Button } from '@/components/chat/components/ui/button'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import { ReactComponent as AddPageIcon } from '@/components/chat/assets/icons/doc-forward.svg'; +import { useTranslation } from '@/components/chat/i18n'; +import { useChatMessagesContext } from '@/components/chat/provider/messages-provider'; export function AddMessageTo({ id }: { id: number diff --git a/src/components/chat/components/chat-messages/ai-answer.tsx b/src/components/chat/components/chat-messages/ai-answer.tsx index e740ac3c..861dde39 100644 --- a/src/components/chat/components/chat-messages/ai-answer.tsx +++ b/src/components/chat/components/chat-messages/ai-answer.tsx @@ -1,7 +1,7 @@ import { AnswerMd } from '../chat-messages/answer-md'; import { MessageActions } from '../chat-messages/message-actions'; import MessageSources from '../chat-messages/message-sources'; -import { ChatMessageMetadata } from '../../types'; +import { ChatMessageMetadata } from '@/components/chat/types'; import { EditorProvider } from '@appflowyinc/editor'; import MessageCheckbox from './message-checkbox'; diff --git a/src/components/chat/components/chat-messages/answer-md.tsx b/src/components/chat/components/chat-messages/answer-md.tsx index 201d6f04..4c6cf746 100644 --- a/src/components/chat/components/chat-messages/answer-md.tsx +++ b/src/components/chat/components/chat-messages/answer-md.tsx @@ -1,5 +1,5 @@ -import { Alert, AlertDescription } from '../ui/alert'; -import { useEditorContext } from '../../provider/editor-provider'; +import { Alert, AlertDescription } from '@/components/chat/components/ui/alert'; +import { useEditorContext } from '@/components/chat/provider/editor-provider'; import { Editor, useEditor } from '@appflowyinc/editor'; import { useEffect } from 'react'; diff --git a/src/components/chat/components/chat-messages/assistant-message.tsx b/src/components/chat/components/chat-messages/assistant-message.tsx index da1a9d54..c5829c25 100644 --- a/src/components/chat/components/chat-messages/assistant-message.tsx +++ b/src/components/chat/components/chat-messages/assistant-message.tsx @@ -2,17 +2,17 @@ import { AnswerMd } from '../chat-messages/answer-md'; import { MessageActions } from '../chat-messages/message-actions'; import MessageSources from '../chat-messages/message-sources'; import { MessageSuggestions } from '../chat-messages/message-suggestions'; -import LoadingDots from '../ui/loading-dots'; -import { useTranslation } from '../../i18n'; -import { useMessagesHandlerContext } from '../../provider/messages-handler-provider'; -import { useChatMessagesContext } from '../../provider/messages-provider'; -import { useResponseFormatContext } from '../../provider/response-format-provider'; -import { useSuggestionsContext } from '../../provider/suggestions-provider'; -import { ChatInputMode } from '../../types'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import { useTranslation } from '@/components/chat/i18n'; +import { useMessagesHandlerContext } from '@/components/chat/provider/messages-handler-provider'; +import { useChatMessagesContext } from '@/components/chat/provider/messages-provider'; +import { useResponseFormatContext } from '@/components/chat/provider/response-format-provider'; +import { useSuggestionsContext } from '@/components/chat/provider/suggestions-provider'; +import { ChatInputMode } from '@/components/chat/types'; import { useEffect, useMemo, useRef, useState } from 'react'; -import { Alert, AlertDescription } from '../ui/alert'; +import { Alert, AlertDescription } from '@/components/chat/components/ui/alert'; import { EditorProvider } from '@appflowyinc/editor'; -import { ReactComponent as Error } from '../../assets/icons/error.svg'; +import { ReactComponent as Error } from '@/components/chat/assets/icons/error.svg'; import MessageCheckbox from './message-checkbox'; export function AssistantMessage({ id, isHovered }: { id: number; isHovered: boolean }) { diff --git a/src/components/chat/components/chat-messages/empty-messages.tsx b/src/components/chat/components/chat-messages/empty-messages.tsx index 24dea343..8ffd5d06 100644 --- a/src/components/chat/components/chat-messages/empty-messages.tsx +++ b/src/components/chat/components/chat-messages/empty-messages.tsx @@ -1,9 +1,9 @@ -import { Button } from '../ui/button'; -import { Label } from '../ui/label'; -import { useTranslation } from '../../i18n'; -import { useMessagesHandlerContext } from '../../provider/messages-handler-provider'; -import { User } from '../../types'; -import { ReactComponent as Logo } from '../../assets/logo.svg'; +import { Button } from '@/components/chat/components/ui/button'; +import { Label } from '@/components/chat/components/ui/label'; +import { useTranslation } from '@/components/chat/i18n'; +import { useMessagesHandlerContext } from '@/components/chat/provider/messages-handler-provider'; +import { User } from '@/components/chat/types'; +import { ReactComponent as Logo } from '@/components/chat/assets/logo.svg'; import { useCallback } from 'react'; export function EmptyMessages({ currentUser }: { diff --git a/src/components/chat/components/chat-messages/human-question.tsx b/src/components/chat/components/chat-messages/human-question.tsx index 4b0c3f9b..a5ac21be 100644 --- a/src/components/chat/components/chat-messages/human-question.tsx +++ b/src/components/chat/components/chat-messages/human-question.tsx @@ -1,6 +1,6 @@ -import { Avatar, AvatarFallback } from '../ui/avatar'; -import { stringToColor } from '../../lib/utils'; -import { User } from '../../types'; +import { Avatar, AvatarFallback } from '@/components/chat/components/ui/avatar'; +import { stringToColor } from '@/components/chat/lib/utils'; +import { User } from '@/components/chat/types'; import { useEffect, useState } from 'react'; function HumanQuestion({ diff --git a/src/components/chat/components/chat-messages/index.tsx b/src/components/chat/components/chat-messages/index.tsx index 53534678..e41685ce 100644 --- a/src/components/chat/components/chat-messages/index.tsx +++ b/src/components/chat/components/chat-messages/index.tsx @@ -1,17 +1,17 @@ -import { useChatContext } from '../../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; import { EmptyMessages } from '../chat-messages/empty-messages'; import { Message } from '../chat-messages/message'; import { useChatMessages } from '../chat-messages/use-chat-messages'; -import { Button } from '../ui/button'; -import LoadingDots from '../ui/loading-dots'; -import { useUserLoader } from '../../hooks/use-user-loader'; -import { ANIMATION_PRESETS } from '../../lib/animations'; -import { User } from '../../types'; +import { Button } from '@/components/chat/components/ui/button'; +import LoadingDots from '@/components/chat/components/ui/loading-dots'; +import { useUserLoader } from '@/components/chat/hooks/use-user-loader'; +import { ANIMATION_PRESETS } from '@/components/chat/lib/animations'; +import { User } from '@/components/chat/types'; import { useCallback, useEffect, useRef, useState } from 'react'; import InfiniteScroll from 'react-infinite-scroll-component'; import { ArrowDown } from 'lucide-react'; import { motion } from 'framer-motion'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const LoadingIndicator = () => (
diff --git a/src/components/chat/components/chat-messages/message-actions.tsx b/src/components/chat/components/chat-messages/message-actions.tsx index 6cd570f8..99bd0b7f 100644 --- a/src/components/chat/components/chat-messages/message-actions.tsx +++ b/src/components/chat/components/chat-messages/message-actions.tsx @@ -1,16 +1,16 @@ -import { ReactComponent as CopyIcon } from '../../assets/icons/copy.svg'; +import { ReactComponent as CopyIcon } from '@/components/chat/assets/icons/copy.svg'; -import { useChatContext } from '../../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; import AddMessageTo from '../chat-messages/add-message-to'; import Regenerations from '../chat-messages/regenerations'; -import { Button } from '../ui/button'; -import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip'; -import { useToast } from '../../hooks/use-toast'; -import { useTranslation } from '../../i18n'; -import { convertToAppFlowyFragment } from '../../lib/copy'; -import { cn, convertToPageData } from '../../lib/utils'; -import { useEditorContext } from '../../provider/editor-provider'; -import { useChatMessagesContext } from '../../provider/messages-provider'; +import { Button } from '@/components/chat/components/ui/button'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import { useToast } from '@/components/chat/hooks/use-toast'; +import { useTranslation } from '@/components/chat/i18n'; +import { convertToAppFlowyFragment } from '@/components/chat/lib/copy'; +import { cn, convertToPageData } from '@/components/chat/lib/utils'; +import { useEditorContext } from '@/components/chat/provider/editor-provider'; +import { useChatMessagesContext } from '@/components/chat/provider/messages-provider'; import { useCallback, useEffect, useRef, useState } from 'react'; export function MessageActions({ diff --git a/src/components/chat/components/chat-messages/message-checkbox.tsx b/src/components/chat/components/chat-messages/message-checkbox.tsx index d8dd8a7c..5c3857f2 100644 --- a/src/components/chat/components/chat-messages/message-checkbox.tsx +++ b/src/components/chat/components/chat-messages/message-checkbox.tsx @@ -1,7 +1,7 @@ -import { useChatContext } from '../../chat/context'; -import { Button } from '../ui/button'; -import { useChatMessagesContext } from '../../provider/messages-provider'; -import { useSelectionModeContext } from '../../provider/selection-mode-provider'; +import { useChatContext } from '@/components/chat/chat/context'; +import { Button } from '@/components/chat/components/ui/button'; +import { useChatMessagesContext } from '@/components/chat/provider/messages-provider'; +import { useSelectionModeContext } from '@/components/chat/provider/selection-mode-provider'; import { useMemo } from 'react'; import { CheckSquare, Square } from 'lucide-react'; diff --git a/src/components/chat/components/chat-messages/message-sources.tsx b/src/components/chat/components/chat-messages/message-sources.tsx index c416b030..128bff39 100644 --- a/src/components/chat/components/chat-messages/message-sources.tsx +++ b/src/components/chat/components/chat-messages/message-sources.tsx @@ -1,12 +1,12 @@ -import { useChatContext } from '../../chat/context'; -import { Button } from '../ui/button'; -import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip'; -import { useTranslation } from '../../i18n'; -import { ChatMessageMetadata, View } from '../../types'; +import { useChatContext } from '@/components/chat/chat/context'; +import { Button } from '@/components/chat/components/ui/button'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import { useTranslation } from '@/components/chat/i18n'; +import { ChatMessageMetadata, View } from '@/components/chat/types'; import { ChevronDown } from 'lucide-react'; import { useEffect, useState } from 'react'; -import { ReactComponent as DocumentIcon } from '../../assets/icons/doc.svg'; -import { useViewLoader } from '../../provider/view-loader-provider'; +import { ReactComponent as DocumentIcon } from '@/components/chat/assets/icons/doc.svg'; +import { useViewLoader } from '@/components/chat/provider/view-loader-provider'; function MessageSources({ sources, diff --git a/src/components/chat/components/chat-messages/message-suggestions.tsx b/src/components/chat/components/chat-messages/message-suggestions.tsx index 19cee5d5..39406935 100644 --- a/src/components/chat/components/chat-messages/message-suggestions.tsx +++ b/src/components/chat/components/chat-messages/message-suggestions.tsx @@ -1,11 +1,11 @@ -import { useChatContext } from '../../chat/context'; -import { Button } from '../ui/button'; -import { Label } from '../ui/label'; -import { useTranslation } from '../../i18n'; -import { MESSAGE_VARIANTS } from '../../lib/animations'; -import { useMessagesHandlerContext } from '../../provider/messages-handler-provider'; -import { Suggestions } from '../../types'; -import { ReactComponent as ChatIcon } from '../../assets/icons/chat-outlined.svg'; +import { useChatContext } from '@/components/chat/chat/context'; +import { Button } from '@/components/chat/components/ui/button'; +import { Label } from '@/components/chat/components/ui/label'; +import { useTranslation } from '@/components/chat/i18n'; +import { MESSAGE_VARIANTS } from '@/components/chat/lib/animations'; +import { useMessagesHandlerContext } from '@/components/chat/provider/messages-handler-provider'; +import { Suggestions } from '@/components/chat/types'; +import { ReactComponent as ChatIcon } from '@/components/chat/assets/icons/chat-outlined.svg'; import { motion } from 'framer-motion'; interface MessageSuggestionsProps { diff --git a/src/components/chat/components/chat-messages/message.tsx b/src/components/chat/components/chat-messages/message.tsx index fb7ea5fd..fc128d10 100644 --- a/src/components/chat/components/chat-messages/message.tsx +++ b/src/components/chat/components/chat-messages/message.tsx @@ -1,12 +1,12 @@ import { AIAnswer } from '../chat-messages/ai-answer'; import { AssistantMessage } from '../chat-messages/assistant-message'; import HumanQuestion from '../chat-messages/human-question'; -import { MESSAGE_VARIANTS } from '../../lib/animations'; -import { cn } from '../../lib/utils'; -import { useMessageAnimation } from '../../provider/message-animation-provider'; -import { useChatMessagesContext } from '../../provider/messages-provider'; -import { useSelectionModeContext } from '../../provider/selection-mode-provider'; -import { AuthorType, User } from '../../types'; +import { MESSAGE_VARIANTS } from '@/components/chat/lib/animations'; +import { cn } from '@/components/chat/lib/utils'; +import { useMessageAnimation } from '@/components/chat/provider/message-animation-provider'; +import { useChatMessagesContext } from '@/components/chat/provider/messages-provider'; +import { useSelectionModeContext } from '@/components/chat/provider/selection-mode-provider'; +import { AuthorType, User } from '@/components/chat/types'; import { motion } from 'framer-motion'; import { useCallback, useMemo } from 'react'; diff --git a/src/components/chat/components/chat-messages/regenerations.tsx b/src/components/chat/components/chat-messages/regenerations.tsx index 9a778c70..e4a09a8e 100644 --- a/src/components/chat/components/chat-messages/regenerations.tsx +++ b/src/components/chat/components/chat-messages/regenerations.tsx @@ -1,16 +1,16 @@ -import { ReactComponent as RegenerateIcon } from '../../assets/icons/change-font.svg'; -import { ReactComponent as ChevronIcon } from '../../assets/icons/chevron.svg'; -import { ReactComponent as RegenerateCircleIcon } from '../../assets/icons/regenerate-circle.svg'; -import { ReactComponent as TryAgainIcon } from '../../assets/icons/undo.svg'; -import { FormatGroup } from '../ui/format-group'; -import { Button } from '../ui/button'; -import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'; -import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip'; -import { useTranslation } from '../../i18n'; -import { useMessagesHandlerContext } from '../../provider/messages-handler-provider'; -import { useChatMessagesContext } from '../../provider/messages-provider'; -import { useResponseFormatContext } from '../../provider/response-format-provider'; -import { OutputContent, OutputLayout } from '../../types'; +import { ReactComponent as RegenerateIcon } from '@/components/chat/assets/icons/change-font.svg'; +import { ReactComponent as ChevronIcon } from '@/components/chat/assets/icons/chevron.svg'; +import { ReactComponent as RegenerateCircleIcon } from '@/components/chat/assets/icons/regenerate-circle.svg'; +import { ReactComponent as TryAgainIcon } from '@/components/chat/assets/icons/undo.svg'; +import { FormatGroup } from '@/components/chat/components/ui/format-group'; +import { Button } from '@/components/chat/components/ui/button'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/chat/components/ui/popover'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import { useTranslation } from '@/components/chat/i18n'; +import { useMessagesHandlerContext } from '@/components/chat/provider/messages-handler-provider'; +import { useChatMessagesContext } from '@/components/chat/provider/messages-provider'; +import { useResponseFormatContext } from '@/components/chat/provider/response-format-provider'; +import { OutputContent, OutputLayout } from '@/components/chat/types'; import { useCallback, useState } from 'react'; export function Regenerations({ id }: { diff --git a/src/components/chat/components/chat-messages/use-chat-messages.ts b/src/components/chat/components/chat-messages/use-chat-messages.ts index a8035783..2adf0df4 100644 --- a/src/components/chat/components/chat-messages/use-chat-messages.ts +++ b/src/components/chat/components/chat-messages/use-chat-messages.ts @@ -1,5 +1,5 @@ -import { useMessagesHandlerContext } from '../../provider/messages-handler-provider'; -import { useChatMessagesContext } from '../../provider/messages-provider'; +import { useMessagesHandlerContext } from '@/components/chat/provider/messages-handler-provider'; +import { useChatMessagesContext } from '@/components/chat/provider/messages-provider'; import { useCallback, useRef, useState } from 'react'; const DEFAULT_LIMIT = 20; diff --git a/src/components/chat/components/multi-selection/banner.tsx b/src/components/chat/components/multi-selection/banner.tsx index 358bbb4f..91cbc606 100644 --- a/src/components/chat/components/multi-selection/banner.tsx +++ b/src/components/chat/components/multi-selection/banner.tsx @@ -1,9 +1,9 @@ -import { useChatContext } from '../../chat/context'; -import { AddMessageToPageWrapper } from '../add-messages-to-page-wrapper'; -import { Button } from '../ui/button'; -import { useTranslation } from '../../i18n'; -import { ChatMessage } from '../../types'; -import { CheckStatus } from '../../types/checkbox'; +import { useChatContext } from '@/components/chat/chat/context'; +import { AddMessageToPageWrapper } from '@/components/chat/components/add-messages-to-page-wrapper'; +import { Button } from '@/components/chat/components/ui/button'; +import { useTranslation } from '@/components/chat/i18n'; +import { ChatMessage } from '@/components/chat/types'; +import { CheckStatus } from '@/components/chat/types/checkbox'; import { CheckSquare, Minus, Square, X } from 'lucide-react'; import { useMemo } from 'react'; diff --git a/src/components/chat/components/multi-selection/context.ts b/src/components/chat/components/multi-selection/context.ts index e4027080..354b1c07 100644 --- a/src/components/chat/components/multi-selection/context.ts +++ b/src/components/chat/components/multi-selection/context.ts @@ -1,4 +1,4 @@ -import { ChatMessage } from '../../types'; +import { ChatMessage } from '@/components/chat/types'; import { createContext, useContext } from 'react'; interface SelectionContextType { diff --git a/src/components/chat/components/ui/button.tsx b/src/components/chat/components/ui/button.tsx index d1e7a933..210aea91 100644 --- a/src/components/chat/components/ui/button.tsx +++ b/src/components/chat/components/ui/button.tsx @@ -2,7 +2,7 @@ import { Slot } from '@radix-ui/react-slot'; import { cva, type VariantProps } from 'class-variance-authority'; import * as React from 'react'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const buttonVariants = cva( 'inline-flex items-center justify-center gap-2 whitespace-nowrap disabled:pointer-events-none [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-border-error-thick aria-invalid:border-border-error-thick-hover aria-readonly:cursor-not-allowed', diff --git a/src/components/chat/components/ui/dialog.tsx b/src/components/chat/components/ui/dialog.tsx index a3596b81..9f28a277 100644 --- a/src/components/chat/components/ui/dialog.tsx +++ b/src/components/chat/components/ui/dialog.tsx @@ -3,9 +3,9 @@ import { cva } from 'class-variance-authority'; import * as React from 'react'; import { forwardRef } from 'react'; -import { ReactComponent as Close } from '../../assets/icons/close.svg'; +import { ReactComponent as Close } from '@/components/chat/assets/icons/close.svg'; import { buttonVariants } from './button'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; function Dialog({ ...props diff --git a/src/components/chat/components/ui/dropdown-menu.tsx b/src/components/chat/components/ui/dropdown-menu.tsx index e9bf96e5..487c9170 100644 --- a/src/components/chat/components/ui/dropdown-menu.tsx +++ b/src/components/chat/components/ui/dropdown-menu.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; import { Check, ChevronRight } from 'lucide-react'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const DropdownMenu = DropdownMenuPrimitive.Root; diff --git a/src/components/chat/components/ui/format-group.tsx b/src/components/chat/components/ui/format-group.tsx index e08d42aa..954077c0 100644 --- a/src/components/chat/components/ui/format-group.tsx +++ b/src/components/chat/components/ui/format-group.tsx @@ -1,15 +1,15 @@ import { Button } from './button'; -import { ReactComponent as TextIcon } from '../../assets/icons/text.svg'; -import { ReactComponent as TextWithIcon } from '../../assets/icons/image-text.svg'; -import { ReactComponent as ImageIcon } from '../../assets/icons/image.svg'; -import { ReactComponent as ParagraphIcon } from '../../assets/icons/paragraph.svg'; -import { ReactComponent as BulletedListIcon } from '../../assets/icons/bullet-list.svg'; -import { ReactComponent as NumberedListIcon } from '../../assets/icons/num-list.svg'; -import { ReactComponent as TableIcon } from '../../assets/icons/table.svg'; +import { ReactComponent as TextIcon } from '@/components/chat/assets/icons/text.svg'; +import { ReactComponent as TextWithIcon } from '@/components/chat/assets/icons/image-text.svg'; +import { ReactComponent as ImageIcon } from '@/components/chat/assets/icons/image.svg'; +import { ReactComponent as ParagraphIcon } from '@/components/chat/assets/icons/paragraph.svg'; +import { ReactComponent as BulletedListIcon } from '@/components/chat/assets/icons/bullet-list.svg'; +import { ReactComponent as NumberedListIcon } from '@/components/chat/assets/icons/num-list.svg'; +import { ReactComponent as TableIcon } from '@/components/chat/assets/icons/table.svg'; import { Separator } from './separator'; import { Tooltip, TooltipContent, TooltipTrigger } from './tooltip'; -import { useTranslation } from '../../i18n'; -import { OutputContent, OutputLayout } from '../../types'; +import { useTranslation } from '@/components/chat/i18n'; +import { OutputContent, OutputLayout } from '@/components/chat/types'; import { useMemo } from 'react'; export function FormatGroup({ diff --git a/src/components/chat/components/ui/input.tsx b/src/components/chat/components/ui/input.tsx index 1475607d..4dc85e16 100644 --- a/src/components/chat/components/ui/input.tsx +++ b/src/components/chat/components/ui/input.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const Input = React.forwardRef>( ({ className, type, ...props }, ref) => { diff --git a/src/components/chat/components/ui/popover.tsx b/src/components/chat/components/ui/popover.tsx index 1c85505b..05347e93 100644 --- a/src/components/chat/components/ui/popover.tsx +++ b/src/components/chat/components/ui/popover.tsx @@ -1,7 +1,7 @@ import * as PopoverPrimitive from '@radix-ui/react-popover'; import { forwardRef } from 'react'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; function Popover({ ...props diff --git a/src/components/chat/components/ui/search-input.tsx b/src/components/chat/components/ui/search-input.tsx index 90558d35..c7e5eb82 100644 --- a/src/components/chat/components/ui/search-input.tsx +++ b/src/components/chat/components/ui/search-input.tsx @@ -1,6 +1,6 @@ import { Input } from './input'; -import { useTranslation } from '../../i18n'; -import { cn } from '../../lib/utils'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn } from '@/components/chat/lib/utils'; import { SearchIcon } from 'lucide-react'; import { useState } from 'react'; diff --git a/src/components/chat/components/ui/select.tsx b/src/components/chat/components/ui/select.tsx index 9604c0e0..3adc17c0 100644 --- a/src/components/chat/components/ui/select.tsx +++ b/src/components/chat/components/ui/select.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as SelectPrimitive from '@radix-ui/react-select'; import { Check, ChevronDown, ChevronUp } from 'lucide-react'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const Select = SelectPrimitive.Root; diff --git a/src/components/chat/components/ui/switch.tsx b/src/components/chat/components/ui/switch.tsx index 4607c1d2..9cf2b5c9 100644 --- a/src/components/chat/components/ui/switch.tsx +++ b/src/components/chat/components/ui/switch.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import * as SwitchPrimitives from '@radix-ui/react-switch'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const Switch = React.forwardRef< React.ElementRef, diff --git a/src/components/chat/components/ui/textarea.tsx b/src/components/chat/components/ui/textarea.tsx index 4779ee93..b08acfca 100644 --- a/src/components/chat/components/ui/textarea.tsx +++ b/src/components/chat/components/ui/textarea.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const Textarea = React.forwardRef< HTMLTextAreaElement, diff --git a/src/components/chat/components/ui/toast.tsx b/src/components/chat/components/ui/toast.tsx index 5ea98046..413f0296 100644 --- a/src/components/chat/components/ui/toast.tsx +++ b/src/components/chat/components/ui/toast.tsx @@ -4,7 +4,7 @@ import * as ToastPrimitives from '@radix-ui/react-toast'; import { cva, type VariantProps } from 'class-variance-authority'; import { X, CircleX, CircleCheck } from 'lucide-react'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const ToastContext = React.createContext<{ variant?: 'default' | 'destructive' | 'success' | null | undefined }>({}); diff --git a/src/components/chat/components/ui/toaster.tsx b/src/components/chat/components/ui/toaster.tsx index a6498b6a..08d04454 100644 --- a/src/components/chat/components/ui/toaster.tsx +++ b/src/components/chat/components/ui/toaster.tsx @@ -1,4 +1,4 @@ -import { useToast } from '../../hooks/use-toast'; +import { useToast } from '@/components/chat/hooks/use-toast'; import { Toast, ToastClose, diff --git a/src/components/chat/components/ui/tooltip.tsx b/src/components/chat/components/ui/tooltip.tsx index fbc84b02..da10458f 100644 --- a/src/components/chat/components/ui/tooltip.tsx +++ b/src/components/chat/components/ui/tooltip.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import * as TooltipPrimitive from '@radix-ui/react-tooltip'; -import { cn } from '../../lib/utils'; +import { cn } from '@/components/chat/lib/utils'; const TooltipProvider = TooltipPrimitive.Provider; diff --git a/src/components/chat/components/view/page-icon.tsx b/src/components/chat/components/view/page-icon.tsx index c12bcada..44410fa6 100644 --- a/src/components/chat/components/view/page-icon.tsx +++ b/src/components/chat/components/view/page-icon.tsx @@ -1,9 +1,9 @@ -import { ReactComponent as BoardIcon } from '../../assets/icons/board.svg'; -import { ReactComponent as CalendarIcon } from '../../assets/icons/calendar.svg'; -import { ReactComponent as DocIcon } from '../../assets/icons/doc.svg'; -import { ReactComponent as GridIcon } from '../../assets/icons/grid.svg'; -import { cn, getIcon, renderColor } from '../../lib/utils'; -import { View, ViewIconType, ViewLayout } from '../../types'; +import { ReactComponent as BoardIcon } from '@/components/chat/assets/icons/board.svg'; +import { ReactComponent as CalendarIcon } from '@/components/chat/assets/icons/calendar.svg'; +import { ReactComponent as DocIcon } from '@/components/chat/assets/icons/doc.svg'; +import { ReactComponent as GridIcon } from '@/components/chat/assets/icons/grid.svg'; +import { cn, getIcon, renderColor } from '@/components/chat/lib/utils'; +import { View, ViewIconType, ViewLayout } from '@/components/chat/types'; import DOMPurify from 'dompurify'; import { useEffect, useMemo, useState } from 'react'; diff --git a/src/components/chat/components/view/space-item.tsx b/src/components/chat/components/view/space-item.tsx index 1802cc73..ed57c171 100644 --- a/src/components/chat/components/view/space-item.tsx +++ b/src/components/chat/components/view/space-item.tsx @@ -1,11 +1,11 @@ -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip'; -import { useTranslation } from '../../i18n'; -import { cn, getIcon, renderColor, stringToColor } from '../../lib/utils'; -import { View } from '../../types'; -import { ReactComponent as ChevronDown } from '../../assets/icons/drop_menu_show.svg'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn, getIcon, renderColor, stringToColor } from '@/components/chat/lib/utils'; +import { View } from '@/components/chat/types'; +import { ReactComponent as ChevronDown } from '@/components/chat/assets/icons/drop_menu_show.svg'; import { ReactNode, useEffect, useMemo, useState } from 'react'; import DOMPurify from 'dompurify'; -import { Button } from '../ui/button'; +import { Button } from '@/components/chat/components/ui/button'; function SpaceItem({ view, diff --git a/src/components/chat/components/view/view-children.tsx b/src/components/chat/components/view/view-children.tsx index 09698fd5..8e8df19d 100644 --- a/src/components/chat/components/view/view-children.tsx +++ b/src/components/chat/components/view/view-children.tsx @@ -1,6 +1,6 @@ -import { ViewItem } from '../view/view-item'; -import { View } from '../../types'; -import { CheckStatus } from '../../types/checkbox'; +import { ViewItem } from '@/components/chat/components/view/view-item'; +import { View } from '@/components/chat/types'; +import { CheckStatus } from '@/components/chat/types/checkbox'; export function ViewChildren({ item, diff --git a/src/components/chat/components/view/view-item.tsx b/src/components/chat/components/view/view-item.tsx index 24b33821..9ae8d9a5 100644 --- a/src/components/chat/components/view/view-item.tsx +++ b/src/components/chat/components/view/view-item.tsx @@ -1,11 +1,11 @@ -import { ReactComponent as ChevronDown } from '../../assets/icons/drop_menu_show.svg'; -import { Button } from '../ui/button'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip'; -import PageIcon from '../view/page-icon'; -import { useTranslation } from '../../i18n'; -import { cn } from '../../lib/utils'; -import { View } from '../../types'; -import { CheckStatus } from '../../types/checkbox'; +import { ReactComponent as ChevronDown } from '@/components/chat/assets/icons/drop_menu_show.svg'; +import { Button } from '@/components/chat/components/ui/button'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/chat/components/ui/tooltip'; +import PageIcon from '@/components/chat/components/view/page-icon'; +import { useTranslation } from '@/components/chat/i18n'; +import { cn } from '@/components/chat/lib/utils'; +import { View } from '@/components/chat/types'; +import { CheckStatus } from '@/components/chat/types/checkbox'; import { CheckSquare, Minus, Square } from 'lucide-react'; import { useMemo, useState } from 'react'; diff --git a/src/components/chat/hooks/use-chat-settings-loader.ts b/src/components/chat/hooks/use-chat-settings-loader.ts index 09b601b1..ec956bb8 100644 --- a/src/components/chat/hooks/use-chat-settings-loader.ts +++ b/src/components/chat/hooks/use-chat-settings-loader.ts @@ -1,6 +1,6 @@ -import { useChatContext } from '../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; import { useToast } from './use-toast'; -import { ChatSettings } from '../types'; +import { ChatSettings } from '@/components/chat/types'; import { useCallback, useEffect, useState } from 'react'; export function useChatSettingsLoader() { diff --git a/src/components/chat/hooks/use-checkbox-tree.ts b/src/components/chat/hooks/use-checkbox-tree.ts index 8e6953b1..47de3b1a 100644 --- a/src/components/chat/hooks/use-checkbox-tree.ts +++ b/src/components/chat/hooks/use-checkbox-tree.ts @@ -1,6 +1,6 @@ -import { findAncestors } from '../lib/views'; -import { View } from '../types'; -import { CheckStatus } from '../types/checkbox'; +import { findAncestors } from '@/components/chat/lib/views'; +import { View } from '@/components/chat/types'; +import { CheckStatus } from '@/components/chat/types/checkbox'; import { useCallback, useEffect, useRef, useState } from 'react'; export const useCheckboxTree = (initialSelected: string[] = [], source: View[]) => { diff --git a/src/components/chat/hooks/use-toast.ts b/src/components/chat/hooks/use-toast.ts index b0a72276..a860eb3b 100644 --- a/src/components/chat/hooks/use-toast.ts +++ b/src/components/chat/hooks/use-toast.ts @@ -6,7 +6,7 @@ import * as React from 'react'; import type { ToastActionElement, ToastProps, -} from '../components/ui/toast'; +} from '@/components/chat/components/ui/toast'; const TOAST_LIMIT = 1; const TOAST_REMOVE_DELAY = 1000000; diff --git a/src/components/chat/hooks/use-user-loader.ts b/src/components/chat/hooks/use-user-loader.ts index f11e0651..9be649b2 100644 --- a/src/components/chat/hooks/use-user-loader.ts +++ b/src/components/chat/hooks/use-user-loader.ts @@ -1,5 +1,5 @@ -import { useChatContext } from '../chat/context'; -import { User } from '../types'; +import { useChatContext } from '@/components/chat/chat/context'; +import { User } from '@/components/chat/types'; import { useCallback, useRef } from 'react'; export function useUserLoader() { diff --git a/src/components/chat/hooks/use-view-content-inserter.ts b/src/components/chat/hooks/use-view-content-inserter.ts index b5495840..d0c14adc 100644 --- a/src/components/chat/hooks/use-view-content-inserter.ts +++ b/src/components/chat/hooks/use-view-content-inserter.ts @@ -1,4 +1,4 @@ -import { useChatContext } from '../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; import { EditorData } from '@appflowyinc/editor'; import { useCallback } from 'react'; diff --git a/src/components/chat/index.ts b/src/components/chat/index.ts index 8f56f5ba..ddc940a7 100644 --- a/src/components/chat/index.ts +++ b/src/components/chat/index.ts @@ -1,5 +1,5 @@ -export * from './chat'; -export * from './request'; -export * from './writer'; -export * from './types'; -export * from './provider/prompt-modal-provider'; +export * from '@/components/chat/chat'; +export * from '@/components/chat/request'; +export * from '@/components/chat/writer'; +export * from '@/components/chat/types'; +export * from '@/components/chat/provider/prompt-modal-provider'; diff --git a/src/components/chat/lib/utils.ts b/src/components/chat/lib/utils.ts index 2e8ceb5c..07259f2d 100644 --- a/src/components/chat/lib/utils.ts +++ b/src/components/chat/lib/utils.ts @@ -1,7 +1,7 @@ import { EditorData, EditorNode } from '@appflowyinc/editor'; import { clsx, type ClassValue } from 'clsx'; import { twMerge } from 'tailwind-merge'; -import { AiPrompt, AiPromptCategory, RawPromptData } from '../types/prompt'; +import { AiPrompt, AiPromptCategory, RawPromptData } from '@/components/chat/types/prompt'; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); diff --git a/src/components/chat/lib/views.ts b/src/components/chat/lib/views.ts index a5104576..67c25f46 100644 --- a/src/components/chat/lib/views.ts +++ b/src/components/chat/lib/views.ts @@ -1,4 +1,4 @@ -import { View, ViewLayout } from '../types'; +import { View, ViewLayout } from '@/components/chat/types'; export function findView(views: View[], id: string): View | undefined { for (const view of views) { diff --git a/src/components/chat/provider/ai-assistant-provider.tsx b/src/components/chat/provider/ai-assistant-provider.tsx index 929f738f..e381499c 100644 --- a/src/components/chat/provider/ai-assistant-provider.tsx +++ b/src/components/chat/provider/ai-assistant-provider.tsx @@ -1,9 +1,9 @@ -import { ConfirmDiscard } from '../components/ai-writer/confirm-discard'; -import { TooltipProvider } from '../components/ui/tooltip'; -import { toast } from '../hooks/use-toast'; -import { useTranslation } from '../i18n'; -import { ChatI18nContext, getI18n, initI18n } from '../i18n/config'; -import { WriterRequest } from '../request'; +import { ConfirmDiscard } from '@/components/chat/components/ai-writer/confirm-discard'; +import { TooltipProvider } from '@/components/chat/components/ui/tooltip'; +import { toast } from '@/components/chat/hooks/use-toast'; +import { useTranslation } from '@/components/chat/i18n'; +import { ChatI18nContext, getI18n, initI18n } from '@/components/chat/i18n/config'; +import { WriterRequest } from '@/components/chat/request'; import { AIAssistantType, ChatInputMode, @@ -12,8 +12,8 @@ import { OutputContent, OutputLayout, ResponseFormat, -} from '../types'; -import { ApplyingState, WriterContext } from '../writer/context'; +} from '@/components/chat/types'; +import { ApplyingState, WriterContext } from '@/components/chat/writer/context'; import { EditorData } from '@appflowyinc/editor'; import { findLast } from 'lodash-es'; import { ReactNode, useCallback, useEffect, useRef, useState } from 'react'; diff --git a/src/components/chat/provider/editor-provider.tsx b/src/components/chat/provider/editor-provider.tsx index cf19fe9e..97355415 100644 --- a/src/components/chat/provider/editor-provider.tsx +++ b/src/components/chat/provider/editor-provider.tsx @@ -1,6 +1,6 @@ import { AppFlowyEditor } from '@appflowyinc/editor'; import { createContext, ReactNode, useCallback, useContext, useEffect, useRef } from 'react'; -import { useChatContext } from '../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; interface EditorContextTypes { getEditor: (messageId: number) => AppFlowyEditor | undefined; diff --git a/src/components/chat/provider/messages-handler-provider.tsx b/src/components/chat/provider/messages-handler-provider.tsx index 8fad9aad..e79d28d2 100644 --- a/src/components/chat/provider/messages-handler-provider.tsx +++ b/src/components/chat/provider/messages-handler-provider.tsx @@ -1,6 +1,6 @@ -import { useChatContext } from '../chat/context'; -import { useToast } from '../hooks/use-toast'; -import { ERROR_CODE_NO_LIMIT } from '../lib/const'; +import { useChatContext } from '@/components/chat/chat/context'; +import { useToast } from '@/components/chat/hooks/use-toast'; +import { ERROR_CODE_NO_LIMIT } from '@/components/chat/lib/const'; import { useMessageAnimation } from './message-animation-provider'; import { useChatMessagesContext } from './messages-provider'; import { useResponseFormatContext } from './response-format-provider'; @@ -13,7 +13,7 @@ import { OutputContent, OutputLayout, RepeatedChatMessage, ResponseFormat, -} from '../types'; +} from '@/components/chat/types'; import { createContext, ReactNode, useCallback, useContext, useEffect, useRef, useState } from 'react'; import { usePromptModal } from './prompt-modal-provider'; diff --git a/src/components/chat/provider/messages-provider.tsx b/src/components/chat/provider/messages-provider.tsx index 4aac2434..4ad84b53 100644 --- a/src/components/chat/provider/messages-provider.tsx +++ b/src/components/chat/provider/messages-provider.tsx @@ -1,5 +1,5 @@ -import { useChatContext } from '../chat/context'; -import { ChatMessage, ChatMessageMetadata } from '../types'; +import { useChatContext } from '@/components/chat/chat/context'; +import { ChatMessage, ChatMessageMetadata } from '@/components/chat/types'; import { createContext, ReactNode, useCallback, useContext, useEffect, useRef, useState } from 'react'; export interface ChatMessagesContextTypes { diff --git a/src/components/chat/provider/prompt-modal-provider.tsx b/src/components/chat/provider/prompt-modal-provider.tsx index 01ee1be8..bde4ad56 100644 --- a/src/components/chat/provider/prompt-modal-provider.tsx +++ b/src/components/chat/provider/prompt-modal-provider.tsx @@ -7,15 +7,15 @@ import { useRef, useState, } from 'react'; -import promptsData from '../data/built_in_prompts.json'; -import { parsePromptData } from '../lib/utils'; +import promptsData from '@/components/chat/data/built_in_prompts.json'; +import { parsePromptData } from '@/components/chat/lib/utils'; import { AiPrompt, AiPromptCategory, PromptDatabaseField, RawPromptData, -} from '../types/prompt'; -import { useTranslation } from '../i18n'; +} from '@/components/chat/types/prompt'; +import { useTranslation } from '@/components/chat/i18n'; const STORAGE_KEY = 'appflowy_prompt_db_config'; diff --git a/src/components/chat/provider/response-format-provider.tsx b/src/components/chat/provider/response-format-provider.tsx index 7d1b58e4..cb8b3b53 100644 --- a/src/components/chat/provider/response-format-provider.tsx +++ b/src/components/chat/provider/response-format-provider.tsx @@ -1,5 +1,5 @@ -import { useChatContext } from '../chat/context'; -import { ChatInputMode, OutputContent, OutputLayout, ResponseFormat } from '../types'; +import { useChatContext } from '@/components/chat/chat/context'; +import { ChatInputMode, OutputContent, OutputLayout, ResponseFormat } from '@/components/chat/types'; import { createContext, ReactNode, useCallback, useContext, useEffect, useRef, useState } from 'react'; interface ResponseFormatContextTypes { diff --git a/src/components/chat/provider/selection-mode-provider.tsx b/src/components/chat/provider/selection-mode-provider.tsx index ab91565b..7a57ca83 100644 --- a/src/components/chat/provider/selection-mode-provider.tsx +++ b/src/components/chat/provider/selection-mode-provider.tsx @@ -1,12 +1,12 @@ -import { Banner } from '../components/multi-selection/banner'; -import { ANIMATION_PRESETS, MESSAGE_VARIANTS } from '../lib/animations'; -import { cn } from '../lib/utils'; +import { Banner } from '@/components/chat/components/multi-selection/banner'; +import { ANIMATION_PRESETS, MESSAGE_VARIANTS } from '@/components/chat/lib/animations'; +import { cn } from '@/components/chat/lib/utils'; import { useChatMessagesContext } from './messages-provider'; -import { AuthorType, ChatMessage } from '../types'; -import { CheckStatus } from '../types/checkbox'; +import { AuthorType, ChatMessage } from '@/components/chat/types'; +import { CheckStatus } from '@/components/chat/types/checkbox'; import { AnimatePresence, motion } from 'framer-motion'; import { createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useState } from 'react'; -import { useChatContext } from '../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; interface SelectionModeContextTypes { messages: ChatMessage[]; diff --git a/src/components/chat/provider/suggestions-provider.tsx b/src/components/chat/provider/suggestions-provider.tsx index 9be27b15..3d7710ca 100644 --- a/src/components/chat/provider/suggestions-provider.tsx +++ b/src/components/chat/provider/suggestions-provider.tsx @@ -1,7 +1,7 @@ -import { useToast } from '../hooks/use-toast'; -import { Suggestions } from '../types'; +import { useToast } from '@/components/chat/hooks/use-toast'; +import { Suggestions } from '@/components/chat/types'; import { createContext, ReactNode, useCallback, useContext, useEffect, useRef, useState } from 'react'; -import { useChatContext } from '../chat/context'; +import { useChatContext } from '@/components/chat/chat/context'; interface SuggestionsContextTypes { registerFetchSuggestions: (messageId: number) => void; diff --git a/src/components/chat/provider/view-loader-provider.tsx b/src/components/chat/provider/view-loader-provider.tsx index 16dfbe96..aadd285a 100644 --- a/src/components/chat/provider/view-loader-provider.tsx +++ b/src/components/chat/provider/view-loader-provider.tsx @@ -1,6 +1,6 @@ -import { useToast } from '../hooks/use-toast'; -import { filterDocumentViews } from '../lib/views'; -import { View } from '../types/request'; +import { useToast } from '@/components/chat/hooks/use-toast'; +import { filterDocumentViews } from '@/components/chat/lib/views'; +import { View } from '@/components/chat/types/request'; import { createContext, useCallback, useContext, useState } from 'react'; interface ViewLoaderProviderProps { diff --git a/src/components/chat/request/chat-request.ts b/src/components/chat/request/chat-request.ts index 6fc02692..245ea074 100644 --- a/src/components/chat/request/chat-request.ts +++ b/src/components/chat/request/chat-request.ts @@ -3,9 +3,9 @@ import { getAccessToken, readableStreamToAsyncIterator, requestInterceptor, -} from '../lib/requets'; -import { convertToPageData } from '../lib/utils'; -import { findView } from '../lib/views'; +} from '@/components/chat/lib/requets'; +import { convertToPageData } from '@/components/chat/lib/utils'; +import { findView } from '@/components/chat/lib/views'; import { ChatMessage, GetChatMessagesPayload, @@ -15,8 +15,8 @@ import { Suggestions, User, View, ViewLayout, ChatMessageMetadata, StreamType, -} from '../types'; -import { ModelList } from '../types/ai-model'; +} from '@/components/chat/types'; +import { ModelList } from '@/components/chat/types/ai-model'; import { EditorData } from '@appflowyinc/editor'; import { AxiosInstance } from 'axios'; diff --git a/src/components/chat/request/writer-request.ts b/src/components/chat/request/writer-request.ts index a502284a..69d1250c 100644 --- a/src/components/chat/request/writer-request.ts +++ b/src/components/chat/request/writer-request.ts @@ -3,7 +3,7 @@ import { getAccessToken, readableStreamToAsyncIterator, requestInterceptor, -} from '../lib/requets'; +} from '@/components/chat/lib/requets'; import { AIAssistantType, CompletionResult, @@ -12,7 +12,7 @@ import { ResponseFormat, StreamType, View, -} from '../types'; +} from '@/components/chat/types'; import { AxiosInstance } from 'axios'; export class WriterRequest { diff --git a/src/components/chat/types/index.ts b/src/components/chat/types/index.ts index 06a975f2..16ce020c 100644 --- a/src/components/chat/types/index.ts +++ b/src/components/chat/types/index.ts @@ -1,10 +1,15 @@ -import { ChatRequest } from '../request/chat-request'; +import { ChatRequest } from '@/components/chat/request/chat-request'; import { User } from './request'; -import { PromptDatabaseConfiguration } from '../provider/prompt-modal-provider'; +import { PromptDatabaseConfiguration } from '@/components/chat/provider/prompt-modal-provider'; import { RawPromptData, PromptDatabaseField } from './prompt'; +export * from './ai-model'; +export * from './checkbox'; +export * from './prompt'; export * from './request'; export * from './writer'; +export * from '@/components/chat/request'; +export * from '@/components/chat/writer'; export interface ChatProps { workspaceId: string; diff --git a/src/components/chat/writer/ai-writer-menu.tsx b/src/components/chat/writer/ai-writer-menu.tsx index 8ad1c9c1..57d81b4b 100644 --- a/src/components/chat/writer/ai-writer-menu.tsx +++ b/src/components/chat/writer/ai-writer-menu.tsx @@ -1,6 +1,6 @@ -import { AiWriterMenuContent } from '../components/ai-writer/ai-writer-menu-content'; -import { Popover, PopoverContent, PopoverTrigger } from '../components/ui/popover'; -import { AIAssistantType } from '../types'; +import { AiWriterMenuContent } from '@/components/chat/components/ai-writer/ai-writer-menu-content'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/chat/components/ui/popover'; +import { AIAssistantType } from '@/components/chat/types'; interface AIWriterMenuProps { children?: React.ReactNode; diff --git a/src/components/chat/writer/context-placeholder.tsx b/src/components/chat/writer/context-placeholder.tsx index 623fcc59..5e482ab8 100644 --- a/src/components/chat/writer/context-placeholder.tsx +++ b/src/components/chat/writer/context-placeholder.tsx @@ -1,8 +1,8 @@ -import { AIAssistant } from '../components/ai-writer'; -import { RenderEditor } from '../components/ai-writer/render-editor'; -import { Toaster } from '../components/ui/toaster'; -import useEnsureBottomVisible from '../components/ai-writer/use-ensure-bottom-visible'; -import { AIAssistantType } from '../types'; +import { AIAssistant } from '@/components/chat/components/ai-writer'; +import { RenderEditor } from '@/components/chat/components/ai-writer/render-editor'; +import { Toaster } from '@/components/chat/components/ui/toaster'; +import useEnsureBottomVisible from '@/components/chat/components/ai-writer/use-ensure-bottom-visible'; +import { AIAssistantType } from '@/components/chat/types'; import { useWriterContext } from './context'; import { EditorProvider } from '@appflowyinc/editor'; diff --git a/src/components/chat/writer/context.ts b/src/components/chat/writer/context.ts index c589a17c..1d90a733 100644 --- a/src/components/chat/writer/context.ts +++ b/src/components/chat/writer/context.ts @@ -1,4 +1,4 @@ -import { AIAssistantType, ChatInputMode, ResponseFormat, View } from '../types'; +import { AIAssistantType, ChatInputMode, ResponseFormat, View } from '@/components/chat/types'; import { EditorData } from '@appflowyinc/editor'; import { createContext, useContext } from 'react'; diff --git a/src/components/chat/writer/index.ts b/src/components/chat/writer/index.ts index 7c9b741d..6cf00282 100644 --- a/src/components/chat/writer/index.ts +++ b/src/components/chat/writer/index.ts @@ -1,5 +1,5 @@ export * from './use-ai-writer'; -export * from '../provider/ai-assistant-provider'; +export * from '@/components/chat/provider/ai-assistant-provider'; export * from './ai-writer-menu'; export * from './context-placeholder'; diff --git a/tailwind.config.cjs b/tailwind.config.cjs index a0fcaf00..822463ea 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -21,6 +21,12 @@ module.exports = { foreground: 'hsl(var(--primary-foreground))', }, 'chat-border': 'hsl(var(--border))', + // Missing color classes for template.css and app.scss + 'border-primary': 'var(--line-border)', + 'fill-default': 'var(--fill-default)', + }, + caretColor: { + 'fill-default': 'var(--fill-default)', }, boxShadow, borderRadius: {