@wzh-/ai-chat-example 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +6 -0
- package/README.md +5 -0
- package/auto-imports.d.ts +73 -0
- package/components.d.ts +312 -0
- package/components.json +21 -0
- package/index.html +13 -0
- package/package.json +60 -0
- package/public/vite.svg +1 -0
- package/src/App.vue +68 -0
- package/src/components/ChatConversation/ChatConversation.vue +97 -0
- package/src/components/ChatConversation/index.ts +1 -0
- package/src/components/ChatPromptInputProvider/ChatPromptInputProvider.vue +47 -0
- package/src/components/ChatPromptInputProvider/index.ts +1 -0
- package/src/components/ai-elements/artifact/Artifact.vue +23 -0
- package/src/components/ai-elements/artifact/ArtifactAction.vue +72 -0
- package/src/components/ai-elements/artifact/ArtifactActions.vue +19 -0
- package/src/components/ai-elements/artifact/ArtifactClose.vue +39 -0
- package/src/components/ai-elements/artifact/ArtifactContent.vue +20 -0
- package/src/components/ai-elements/artifact/ArtifactDescription.vue +20 -0
- package/src/components/ai-elements/artifact/ArtifactHeader.vue +23 -0
- package/src/components/ai-elements/artifact/ArtifactTitle.vue +20 -0
- package/src/components/ai-elements/artifact/index.ts +8 -0
- package/src/components/ai-elements/canvas/Canvas.vue +37 -0
- package/src/components/ai-elements/canvas/index.ts +1 -0
- package/src/components/ai-elements/chain-of-thought/ChainOfThought.vue +41 -0
- package/src/components/ai-elements/chain-of-thought/ChainOfThoughtContent.vue +32 -0
- package/src/components/ai-elements/chain-of-thought/ChainOfThoughtHeader.vue +43 -0
- package/src/components/ai-elements/chain-of-thought/ChainOfThoughtImage.vue +25 -0
- package/src/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResult.vue +24 -0
- package/src/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResults.vue +17 -0
- package/src/components/ai-elements/chain-of-thought/ChainOfThoughtStep.vue +54 -0
- package/src/components/ai-elements/chain-of-thought/context.ts +22 -0
- package/src/components/ai-elements/chain-of-thought/index.ts +7 -0
- package/src/components/ai-elements/checkpoint/Checkpoint.vue +19 -0
- package/src/components/ai-elements/checkpoint/CheckpointIcon.vue +19 -0
- package/src/components/ai-elements/checkpoint/CheckpointTrigger.vue +46 -0
- package/src/components/ai-elements/checkpoint/index.ts +3 -0
- package/src/components/ai-elements/code-block/CodeBlock.vue +84 -0
- package/src/components/ai-elements/code-block/CodeBlockCopyButton.vue +84 -0
- package/src/components/ai-elements/code-block/context.ts +7 -0
- package/src/components/ai-elements/code-block/index.ts +2 -0
- package/src/components/ai-elements/code-block/utils.ts +46 -0
- package/src/components/ai-elements/confirmation/Confirmation.vue +30 -0
- package/src/components/ai-elements/confirmation/ConfirmationAccepted.vue +18 -0
- package/src/components/ai-elements/confirmation/ConfirmationAction.vue +9 -0
- package/src/components/ai-elements/confirmation/ConfirmationActions.vue +23 -0
- package/src/components/ai-elements/confirmation/ConfirmationRejected.vue +18 -0
- package/src/components/ai-elements/confirmation/ConfirmationRequest.vue +11 -0
- package/src/components/ai-elements/confirmation/ConfirmationTitle.vue +18 -0
- package/src/components/ai-elements/confirmation/context.ts +46 -0
- package/src/components/ai-elements/confirmation/index.ts +7 -0
- package/src/components/ai-elements/connection/Connection.vue +36 -0
- package/src/components/ai-elements/connection/index.ts +1 -0
- package/src/components/ai-elements/context/Context.vue +29 -0
- package/src/components/ai-elements/context/ContextCacheUsage.vue +45 -0
- package/src/components/ai-elements/context/ContextContent.vue +20 -0
- package/src/components/ai-elements/context/ContextContentBody.vue +14 -0
- package/src/components/ai-elements/context/ContextContentFooter.vue +49 -0
- package/src/components/ai-elements/context/ContextContentHeader.vue +49 -0
- package/src/components/ai-elements/context/ContextIcon.vue +62 -0
- package/src/components/ai-elements/context/ContextInputUsage.vue +46 -0
- package/src/components/ai-elements/context/ContextOutputUsage.vue +45 -0
- package/src/components/ai-elements/context/ContextReasoningUsage.vue +48 -0
- package/src/components/ai-elements/context/ContextTrigger.vue +32 -0
- package/src/components/ai-elements/context/TokensWithCost.vue +25 -0
- package/src/components/ai-elements/context/context.ts +23 -0
- package/src/components/ai-elements/context/index.ts +12 -0
- package/src/components/ai-elements/controls/Controls.vue +25 -0
- package/src/components/ai-elements/controls/index.ts +1 -0
- package/src/components/ai-elements/conversation/Conversation.vue +37 -0
- package/src/components/ai-elements/conversation/ConversationContent.vue +21 -0
- package/src/components/ai-elements/conversation/ConversationEmptyState.vue +40 -0
- package/src/components/ai-elements/conversation/ConversationScrollButton.vue +34 -0
- package/src/components/ai-elements/conversation/index.ts +4 -0
- package/src/components/ai-elements/edge/Animated.vue +91 -0
- package/src/components/ai-elements/edge/Temporary.vue +28 -0
- package/src/components/ai-elements/edge/index.ts +2 -0
- package/src/components/ai-elements/image/Image.vue +29 -0
- package/src/components/ai-elements/image/index.ts +1 -0
- package/src/components/ai-elements/inline-citation/InlineCitation.vue +14 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCard.vue +17 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCardBody.vue +15 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCardTrigger.vue +35 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCarousel.vue +15 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCarouselContent.vue +9 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCarouselHeader.vue +16 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCarouselIndex.vue +46 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCarouselItem.vue +15 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCarouselNext.vue +23 -0
- package/src/components/ai-elements/inline-citation/InlineCitationCarouselPrev.vue +23 -0
- package/src/components/ai-elements/inline-citation/InlineCitationQuote.vue +16 -0
- package/src/components/ai-elements/inline-citation/InlineCitationSource.vue +26 -0
- package/src/components/ai-elements/inline-citation/InlineCitationText.vue +14 -0
- package/src/components/ai-elements/inline-citation/index.ts +14 -0
- package/src/components/ai-elements/loader/Loader.vue +23 -0
- package/src/components/ai-elements/loader/LoaderIcon.vue +38 -0
- package/src/components/ai-elements/loader/index.ts +2 -0
- package/src/components/ai-elements/message/Message.vue +27 -0
- package/src/components/ai-elements/message/MessageAction.vue +45 -0
- package/src/components/ai-elements/message/MessageActions.vue +19 -0
- package/src/components/ai-elements/message/MessageAttachment.vue +87 -0
- package/src/components/ai-elements/message/MessageAttachments.vue +25 -0
- package/src/components/ai-elements/message/MessageAvatar.vue +22 -0
- package/src/components/ai-elements/message/MessageBranch.vue +66 -0
- package/src/components/ai-elements/message/MessageBranchContent.vue +51 -0
- package/src/components/ai-elements/message/MessageBranchNext.vue +23 -0
- package/src/components/ai-elements/message/MessageBranchPage.vue +28 -0
- package/src/components/ai-elements/message/MessageBranchPrevious.vue +23 -0
- package/src/components/ai-elements/message/MessageBranchSelector.vue +23 -0
- package/src/components/ai-elements/message/MessageContent.vue +26 -0
- package/src/components/ai-elements/message/MessageResponse.vue +42 -0
- package/src/components/ai-elements/message/MessageToolbar.vue +24 -0
- package/src/components/ai-elements/message/context.ts +22 -0
- package/src/components/ai-elements/message/index.ts +15 -0
- package/src/components/ai-elements/model-selector/ModelSelector.vue +9 -0
- package/src/components/ai-elements/model-selector/ModelSelectorContent.vue +29 -0
- package/src/components/ai-elements/model-selector/ModelSelectorDialog.vue +9 -0
- package/src/components/ai-elements/model-selector/ModelSelectorEmpty.vue +9 -0
- package/src/components/ai-elements/model-selector/ModelSelectorGroup.vue +9 -0
- package/src/components/ai-elements/model-selector/ModelSelectorInput.vue +18 -0
- package/src/components/ai-elements/model-selector/ModelSelectorItem.vue +10 -0
- package/src/components/ai-elements/model-selector/ModelSelectorList.vue +9 -0
- package/src/components/ai-elements/model-selector/ModelSelectorLogo.vue +22 -0
- package/src/components/ai-elements/model-selector/ModelSelectorLogoGroup.vue +24 -0
- package/src/components/ai-elements/model-selector/ModelSelectorName.vue +19 -0
- package/src/components/ai-elements/model-selector/ModelSelectorSeparator.vue +7 -0
- package/src/components/ai-elements/model-selector/ModelSelectorShortcut.vue +9 -0
- package/src/components/ai-elements/model-selector/ModelSelectorTrigger.vue +9 -0
- package/src/components/ai-elements/model-selector/index.ts +14 -0
- package/src/components/ai-elements/node/Node.vue +31 -0
- package/src/components/ai-elements/node/NodeAction.vue +9 -0
- package/src/components/ai-elements/node/NodeContent.vue +15 -0
- package/src/components/ai-elements/node/NodeDescription.vue +9 -0
- package/src/components/ai-elements/node/NodeFooter.vue +15 -0
- package/src/components/ai-elements/node/NodeHeader.vue +15 -0
- package/src/components/ai-elements/node/NodeTitle.vue +9 -0
- package/src/components/ai-elements/node/index.ts +7 -0
- package/src/components/ai-elements/open-in-chat/OpenIn.vue +20 -0
- package/src/components/ai-elements/open-in-chat/OpenInContent.vue +25 -0
- package/src/components/ai-elements/open-in-chat/OpenInItemLink.vue +30 -0
- package/src/components/ai-elements/open-in-chat/OpenInTrigger.vue +16 -0
- package/src/components/ai-elements/open-in-chat/context.ts +20 -0
- package/src/components/ai-elements/open-in-chat/index.ts +9 -0
- package/src/components/ai-elements/open-in-chat/providers/icons/ChatGPT.vue +13 -0
- package/src/components/ai-elements/open-in-chat/providers/icons/Claude.vue +15 -0
- package/src/components/ai-elements/open-in-chat/providers/icons/Cursor.vue +13 -0
- package/src/components/ai-elements/open-in-chat/providers/icons/Github.vue +8 -0
- package/src/components/ai-elements/open-in-chat/providers/icons/Scira.vue +58 -0
- package/src/components/ai-elements/open-in-chat/providers/icons/V0.vue +15 -0
- package/src/components/ai-elements/open-in-chat/providers/icons/index.ts +6 -0
- package/src/components/ai-elements/open-in-chat/providers/index.ts +69 -0
- package/src/components/ai-elements/open-in-chat/providers/items/OpenInChatGPT.vue +18 -0
- package/src/components/ai-elements/open-in-chat/providers/items/OpenInClaude.vue +18 -0
- package/src/components/ai-elements/open-in-chat/providers/items/OpenInCursor.vue +18 -0
- package/src/components/ai-elements/open-in-chat/providers/items/OpenInScira.vue +18 -0
- package/src/components/ai-elements/open-in-chat/providers/items/OpenInT3.vue +18 -0
- package/src/components/ai-elements/open-in-chat/providers/items/OpenInv0.vue +18 -0
- package/src/components/ai-elements/panel/Panel.vue +28 -0
- package/src/components/ai-elements/panel/index.ts +1 -0
- package/src/components/ai-elements/plan/Plan.vue +32 -0
- package/src/components/ai-elements/plan/PlanAction.vue +9 -0
- package/src/components/ai-elements/plan/PlanContent.vue +12 -0
- package/src/components/ai-elements/plan/PlanDescription.vue +25 -0
- package/src/components/ai-elements/plan/PlanFooter.vue +9 -0
- package/src/components/ai-elements/plan/PlanHeader.vue +18 -0
- package/src/components/ai-elements/plan/PlanTitle.vue +16 -0
- package/src/components/ai-elements/plan/PlanTrigger.vue +25 -0
- package/src/components/ai-elements/plan/context.ts +20 -0
- package/src/components/ai-elements/plan/index.ts +8 -0
- package/src/components/ai-elements/prompt-input/PromptInput.vue +116 -0
- package/src/components/ai-elements/prompt-input/PromptInputActionAddAttachments.vue +22 -0
- package/src/components/ai-elements/prompt-input/PromptInputActionMenu.vue +15 -0
- package/src/components/ai-elements/prompt-input/PromptInputActionMenuContent.vue +21 -0
- package/src/components/ai-elements/prompt-input/PromptInputActionMenuItem.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputActionMenuTrigger.vue +22 -0
- package/src/components/ai-elements/prompt-input/PromptInputAttachment.vue +94 -0
- package/src/components/ai-elements/prompt-input/PromptInputAttachments.vue +22 -0
- package/src/components/ai-elements/prompt-input/PromptInputBody.vue +12 -0
- package/src/components/ai-elements/prompt-input/PromptInputButton.vue +56 -0
- package/src/components/ai-elements/prompt-input/PromptInputCommand.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputCommandEmpty.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputCommandGroup.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputCommandInput.vue +17 -0
- package/src/components/ai-elements/prompt-input/PromptInputCommandItem.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputCommandList.vue +17 -0
- package/src/components/ai-elements/prompt-input/PromptInputCommandSeparator.vue +16 -0
- package/src/components/ai-elements/prompt-input/PromptInputFooter.vue +23 -0
- package/src/components/ai-elements/prompt-input/PromptInputHeader.vue +23 -0
- package/src/components/ai-elements/prompt-input/PromptInputHoverCard.vue +23 -0
- package/src/components/ai-elements/prompt-input/PromptInputHoverCardContent.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputHoverCardTrigger.vue +15 -0
- package/src/components/ai-elements/prompt-input/PromptInputProvider.vue +32 -0
- package/src/components/ai-elements/prompt-input/PromptInputSelect.vue +15 -0
- package/src/components/ai-elements/prompt-input/PromptInputSelectContent.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputSelectItem.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputSelectTrigger.vue +26 -0
- package/src/components/ai-elements/prompt-input/PromptInputSelectValue.vue +19 -0
- package/src/components/ai-elements/prompt-input/PromptInputSpeechButton.vue +137 -0
- package/src/components/ai-elements/prompt-input/PromptInputSubmit.vue +60 -0
- package/src/components/ai-elements/prompt-input/PromptInputTab.vue +16 -0
- package/src/components/ai-elements/prompt-input/PromptInputTabBody.vue +16 -0
- package/src/components/ai-elements/prompt-input/PromptInputTabItem.vue +16 -0
- package/src/components/ai-elements/prompt-input/PromptInputTabLabel.vue +16 -0
- package/src/components/ai-elements/prompt-input/PromptInputTabsList.vue +16 -0
- package/src/components/ai-elements/prompt-input/PromptInputTextarea.vue +78 -0
- package/src/components/ai-elements/prompt-input/PromptInputTools.vue +12 -0
- package/src/components/ai-elements/prompt-input/context.ts +223 -0
- package/src/components/ai-elements/prompt-input/index.ts +39 -0
- package/src/components/ai-elements/prompt-input/types.ts +28 -0
- package/src/components/ai-elements/queue/Queue.vue +21 -0
- package/src/components/ai-elements/queue/QueueItem.vue +21 -0
- package/src/components/ai-elements/queue/QueueItemAction.vue +25 -0
- package/src/components/ai-elements/queue/QueueItemActions.vue +14 -0
- package/src/components/ai-elements/queue/QueueItemAttachment.vue +14 -0
- package/src/components/ai-elements/queue/QueueItemContent.vue +32 -0
- package/src/components/ai-elements/queue/QueueItemDescription.vue +32 -0
- package/src/components/ai-elements/queue/QueueItemFile.vue +25 -0
- package/src/components/ai-elements/queue/QueueItemImage.vue +18 -0
- package/src/components/ai-elements/queue/QueueItemIndicator.vue +30 -0
- package/src/components/ai-elements/queue/QueueList.vue +22 -0
- package/src/components/ai-elements/queue/QueueSection.vue +26 -0
- package/src/components/ai-elements/queue/QueueSectionContent.vue +15 -0
- package/src/components/ai-elements/queue/QueueSectionLabel.vue +26 -0
- package/src/components/ai-elements/queue/QueueSectionTrigger.vue +25 -0
- package/src/components/ai-elements/queue/index.ts +15 -0
- package/src/components/ai-elements/reasoning/Reasoning.vue +94 -0
- package/src/components/ai-elements/reasoning/ReasoningContent.vue +41 -0
- package/src/components/ai-elements/reasoning/ReasoningTrigger.vue +61 -0
- package/src/components/ai-elements/reasoning/context.ts +19 -0
- package/src/components/ai-elements/reasoning/index.ts +3 -0
- package/src/components/ai-elements/shimmer/Shimmer.vue +69 -0
- package/src/components/ai-elements/shimmer/index.ts +1 -0
- package/src/components/ai-elements/sources/Source.vue +26 -0
- package/src/components/ai-elements/sources/Sources.vue +17 -0
- package/src/components/ai-elements/sources/SourcesContent.vue +23 -0
- package/src/components/ai-elements/sources/SourcesTrigger.vue +24 -0
- package/src/components/ai-elements/sources/index.ts +4 -0
- package/src/components/ai-elements/suggestion/Suggestion.vue +38 -0
- package/src/components/ai-elements/suggestion/Suggestions.vue +20 -0
- package/src/components/ai-elements/suggestion/index.ts +2 -0
- package/src/components/ai-elements/task/Task.vue +32 -0
- package/src/components/ai-elements/task/TaskContent.vue +27 -0
- package/src/components/ai-elements/task/TaskItem.vue +16 -0
- package/src/components/ai-elements/task/TaskItemFile.vue +18 -0
- package/src/components/ai-elements/task/TaskTrigger.vue +33 -0
- package/src/components/ai-elements/task/index.ts +5 -0
- package/src/components/ai-elements/tool/Tool.vue +18 -0
- package/src/components/ai-elements/tool/ToolContent.vue +23 -0
- package/src/components/ai-elements/tool/ToolHeader.vue +38 -0
- package/src/components/ai-elements/tool/ToolInput.vue +32 -0
- package/src/components/ai-elements/tool/ToolOutput.vue +69 -0
- package/src/components/ai-elements/tool/ToolStatusBadge.vue +63 -0
- package/src/components/ai-elements/tool/index.ts +5 -0
- package/src/components/ai-elements/toolbar/Toolbar.vue +32 -0
- package/src/components/ai-elements/toolbar/index.ts +1 -0
- package/src/components/ai-elements/web-preview/WebPreview.vue +60 -0
- package/src/components/ai-elements/web-preview/WebPreviewBody.vue +34 -0
- package/src/components/ai-elements/web-preview/WebPreviewConsole.vue +92 -0
- package/src/components/ai-elements/web-preview/WebPreviewNavigation.vue +21 -0
- package/src/components/ai-elements/web-preview/WebPreviewNavigationButton.vue +45 -0
- package/src/components/ai-elements/web-preview/WebPreviewUrl.vue +43 -0
- package/src/components/ai-elements/web-preview/context.ts +25 -0
- package/src/components/ai-elements/web-preview/index.ts +7 -0
- package/src/components/ui/alert/Alert.vue +21 -0
- package/src/components/ui/alert/AlertDescription.vue +17 -0
- package/src/components/ui/alert/AlertTitle.vue +17 -0
- package/src/components/ui/alert/index.ts +24 -0
- package/src/components/ui/avatar/Avatar.vue +18 -0
- package/src/components/ui/avatar/AvatarFallback.vue +21 -0
- package/src/components/ui/avatar/AvatarImage.vue +16 -0
- package/src/components/ui/avatar/index.ts +3 -0
- package/src/components/ui/badge/Badge.vue +26 -0
- package/src/components/ui/badge/index.ts +26 -0
- package/src/components/ui/button/Button.vue +29 -0
- package/src/components/ui/button/index.ts +38 -0
- package/src/components/ui/button-group/ButtonGroup.vue +22 -0
- package/src/components/ui/button-group/ButtonGroupSeparator.vue +24 -0
- package/src/components/ui/button-group/ButtonGroupText.vue +29 -0
- package/src/components/ui/button-group/index.ts +25 -0
- package/src/components/ui/card/Card.vue +22 -0
- package/src/components/ui/card/CardAction.vue +17 -0
- package/src/components/ui/card/CardContent.vue +17 -0
- package/src/components/ui/card/CardDescription.vue +17 -0
- package/src/components/ui/card/CardFooter.vue +17 -0
- package/src/components/ui/card/CardHeader.vue +17 -0
- package/src/components/ui/card/CardTitle.vue +17 -0
- package/src/components/ui/card/index.ts +7 -0
- package/src/components/ui/carousel/Carousel.vue +53 -0
- package/src/components/ui/carousel/CarouselContent.vue +33 -0
- package/src/components/ui/carousel/CarouselItem.vue +24 -0
- package/src/components/ui/carousel/CarouselNext.vue +41 -0
- package/src/components/ui/carousel/CarouselPrevious.vue +41 -0
- package/src/components/ui/carousel/index.ts +10 -0
- package/src/components/ui/carousel/interface.ts +26 -0
- package/src/components/ui/carousel/useCarousel.ts +56 -0
- package/src/components/ui/collapsible/Collapsible.vue +19 -0
- package/src/components/ui/collapsible/CollapsibleContent.vue +15 -0
- package/src/components/ui/collapsible/CollapsibleTrigger.vue +15 -0
- package/src/components/ui/collapsible/index.ts +3 -0
- package/src/components/ui/command/Command.vue +87 -0
- package/src/components/ui/command/CommandDialog.vue +31 -0
- package/src/components/ui/command/CommandEmpty.vue +27 -0
- package/src/components/ui/command/CommandGroup.vue +45 -0
- package/src/components/ui/command/CommandInput.vue +39 -0
- package/src/components/ui/command/CommandItem.vue +76 -0
- package/src/components/ui/command/CommandList.vue +25 -0
- package/src/components/ui/command/CommandSeparator.vue +21 -0
- package/src/components/ui/command/CommandShortcut.vue +17 -0
- package/src/components/ui/command/index.ts +25 -0
- package/src/components/ui/dialog/Dialog.vue +19 -0
- package/src/components/ui/dialog/DialogClose.vue +15 -0
- package/src/components/ui/dialog/DialogContent.vue +53 -0
- package/src/components/ui/dialog/DialogDescription.vue +23 -0
- package/src/components/ui/dialog/DialogFooter.vue +15 -0
- package/src/components/ui/dialog/DialogHeader.vue +17 -0
- package/src/components/ui/dialog/DialogOverlay.vue +21 -0
- package/src/components/ui/dialog/DialogScrollContent.vue +59 -0
- package/src/components/ui/dialog/DialogTitle.vue +23 -0
- package/src/components/ui/dialog/DialogTrigger.vue +15 -0
- package/src/components/ui/dialog/index.ts +10 -0
- package/src/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
- package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
- package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
- package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
- package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
- package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
- package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +30 -0
- package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/src/components/ui/dropdown-menu/index.ts +16 -0
- package/src/components/ui/hover-card/HoverCard.vue +19 -0
- package/src/components/ui/hover-card/HoverCardContent.vue +43 -0
- package/src/components/ui/hover-card/HoverCardTrigger.vue +15 -0
- package/src/components/ui/hover-card/index.ts +3 -0
- package/src/components/ui/input/Input.vue +33 -0
- package/src/components/ui/input/index.ts +1 -0
- package/src/components/ui/input-group/InputGroup.vue +37 -0
- package/src/components/ui/input-group/InputGroupAddon.vue +36 -0
- package/src/components/ui/input-group/InputGroupButton.vue +21 -0
- package/src/components/ui/input-group/InputGroupInput.vue +19 -0
- package/src/components/ui/input-group/InputGroupText.vue +19 -0
- package/src/components/ui/input-group/InputGroupTextarea.vue +19 -0
- package/src/components/ui/input-group/index.ts +59 -0
- package/src/components/ui/progress/Progress.vue +38 -0
- package/src/components/ui/progress/index.ts +1 -0
- package/src/components/ui/scroll-area/ScrollArea.vue +33 -0
- package/src/components/ui/scroll-area/ScrollBar.vue +32 -0
- package/src/components/ui/scroll-area/index.ts +2 -0
- package/src/components/ui/select/Select.vue +19 -0
- package/src/components/ui/select/SelectContent.vue +51 -0
- package/src/components/ui/select/SelectGroup.vue +15 -0
- package/src/components/ui/select/SelectItem.vue +44 -0
- package/src/components/ui/select/SelectItemText.vue +15 -0
- package/src/components/ui/select/SelectLabel.vue +17 -0
- package/src/components/ui/select/SelectScrollDownButton.vue +26 -0
- package/src/components/ui/select/SelectScrollUpButton.vue +26 -0
- package/src/components/ui/select/SelectSeparator.vue +19 -0
- package/src/components/ui/select/SelectTrigger.vue +33 -0
- package/src/components/ui/select/SelectValue.vue +15 -0
- package/src/components/ui/select/index.ts +11 -0
- package/src/components/ui/separator/Separator.vue +29 -0
- package/src/components/ui/separator/index.ts +1 -0
- package/src/components/ui/textarea/Textarea.vue +28 -0
- package/src/components/ui/textarea/index.ts +1 -0
- package/src/components/ui/tooltip/Tooltip.vue +19 -0
- package/src/components/ui/tooltip/TooltipContent.vue +34 -0
- package/src/components/ui/tooltip/TooltipProvider.vue +14 -0
- package/src/components/ui/tooltip/TooltipTrigger.vue +15 -0
- package/src/components/ui/tooltip/index.ts +4 -0
- package/src/composables/useChat.ts +46 -0
- package/src/index.ts +3 -0
- package/src/lib/utils.ts +7 -0
- package/src/main.ts +5 -0
- package/src/request/index.ts +41 -0
- package/src/style.css +120 -0
- package/tsconfig.app.json +25 -0
- package/tsconfig.json +13 -0
- package/tsconfig.node.json +26 -0
- package/vite.config.ts +26 -0
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Vue 3 + TypeScript + Vite
|
|
2
|
+
|
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
|
4
|
+
|
|
5
|
+
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/* prettier-ignore */
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
// noinspection JSUnusedGlobalSymbols
|
|
5
|
+
// Generated by unplugin-auto-import
|
|
6
|
+
// biome-ignore lint: disable
|
|
7
|
+
export {}
|
|
8
|
+
declare global {
|
|
9
|
+
const EffectScope: typeof import('vue').EffectScope
|
|
10
|
+
const computed: typeof import('vue').computed
|
|
11
|
+
const createApp: typeof import('vue').createApp
|
|
12
|
+
const customRef: typeof import('vue').customRef
|
|
13
|
+
const defineAsyncComponent: typeof import('vue').defineAsyncComponent
|
|
14
|
+
const defineComponent: typeof import('vue').defineComponent
|
|
15
|
+
const effectScope: typeof import('vue').effectScope
|
|
16
|
+
const getCurrentInstance: typeof import('vue').getCurrentInstance
|
|
17
|
+
const getCurrentScope: typeof import('vue').getCurrentScope
|
|
18
|
+
const getCurrentWatcher: typeof import('vue').getCurrentWatcher
|
|
19
|
+
const h: typeof import('vue').h
|
|
20
|
+
const inject: typeof import('vue').inject
|
|
21
|
+
const isProxy: typeof import('vue').isProxy
|
|
22
|
+
const isReactive: typeof import('vue').isReactive
|
|
23
|
+
const isReadonly: typeof import('vue').isReadonly
|
|
24
|
+
const isRef: typeof import('vue').isRef
|
|
25
|
+
const isShallow: typeof import('vue').isShallow
|
|
26
|
+
const markRaw: typeof import('vue').markRaw
|
|
27
|
+
const nextTick: typeof import('vue').nextTick
|
|
28
|
+
const onActivated: typeof import('vue').onActivated
|
|
29
|
+
const onBeforeMount: typeof import('vue').onBeforeMount
|
|
30
|
+
const onBeforeUnmount: typeof import('vue').onBeforeUnmount
|
|
31
|
+
const onBeforeUpdate: typeof import('vue').onBeforeUpdate
|
|
32
|
+
const onDeactivated: typeof import('vue').onDeactivated
|
|
33
|
+
const onErrorCaptured: typeof import('vue').onErrorCaptured
|
|
34
|
+
const onMounted: typeof import('vue').onMounted
|
|
35
|
+
const onRenderTracked: typeof import('vue').onRenderTracked
|
|
36
|
+
const onRenderTriggered: typeof import('vue').onRenderTriggered
|
|
37
|
+
const onScopeDispose: typeof import('vue').onScopeDispose
|
|
38
|
+
const onServerPrefetch: typeof import('vue').onServerPrefetch
|
|
39
|
+
const onUnmounted: typeof import('vue').onUnmounted
|
|
40
|
+
const onUpdated: typeof import('vue').onUpdated
|
|
41
|
+
const onWatcherCleanup: typeof import('vue').onWatcherCleanup
|
|
42
|
+
const provide: typeof import('vue').provide
|
|
43
|
+
const reactive: typeof import('vue').reactive
|
|
44
|
+
const readonly: typeof import('vue').readonly
|
|
45
|
+
const ref: typeof import('vue').ref
|
|
46
|
+
const resolveComponent: typeof import('vue').resolveComponent
|
|
47
|
+
const shallowReactive: typeof import('vue').shallowReactive
|
|
48
|
+
const shallowReadonly: typeof import('vue').shallowReadonly
|
|
49
|
+
const shallowRef: typeof import('vue').shallowRef
|
|
50
|
+
const toRaw: typeof import('vue').toRaw
|
|
51
|
+
const toRef: typeof import('vue').toRef
|
|
52
|
+
const toRefs: typeof import('vue').toRefs
|
|
53
|
+
const toValue: typeof import('vue').toValue
|
|
54
|
+
const triggerRef: typeof import('vue').triggerRef
|
|
55
|
+
const unref: typeof import('vue').unref
|
|
56
|
+
const useAttrs: typeof import('vue').useAttrs
|
|
57
|
+
const useCssModule: typeof import('vue').useCssModule
|
|
58
|
+
const useCssVars: typeof import('vue').useCssVars
|
|
59
|
+
const useId: typeof import('vue').useId
|
|
60
|
+
const useModel: typeof import('vue').useModel
|
|
61
|
+
const useSlots: typeof import('vue').useSlots
|
|
62
|
+
const useTemplateRef: typeof import('vue').useTemplateRef
|
|
63
|
+
const watch: typeof import('vue').watch
|
|
64
|
+
const watchEffect: typeof import('vue').watchEffect
|
|
65
|
+
const watchPostEffect: typeof import('vue').watchPostEffect
|
|
66
|
+
const watchSyncEffect: typeof import('vue').watchSyncEffect
|
|
67
|
+
}
|
|
68
|
+
// for type re-export
|
|
69
|
+
declare global {
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, ShallowRef, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
|
72
|
+
import('vue')
|
|
73
|
+
}
|
package/components.d.ts
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
// biome-ignore lint: disable
|
|
4
|
+
// oxlint-disable
|
|
5
|
+
// ------
|
|
6
|
+
// Generated by unplugin-vue-components
|
|
7
|
+
// Read more: https://github.com/vuejs/core/pull/3399
|
|
8
|
+
|
|
9
|
+
export {}
|
|
10
|
+
|
|
11
|
+
/* prettier-ignore */
|
|
12
|
+
declare module 'vue' {
|
|
13
|
+
export interface GlobalComponents {
|
|
14
|
+
Alert: typeof import('./src/components/ui/alert/Alert.vue')['default']
|
|
15
|
+
AlertDescription: typeof import('./src/components/ui/alert/AlertDescription.vue')['default']
|
|
16
|
+
AlertTitle: typeof import('./src/components/ui/alert/AlertTitle.vue')['default']
|
|
17
|
+
Animated: typeof import('./src/components/ai-elements/edge/Animated.vue')['default']
|
|
18
|
+
Artifact: typeof import('./src/components/ai-elements/artifact/Artifact.vue')['default']
|
|
19
|
+
ArtifactAction: typeof import('./src/components/ai-elements/artifact/ArtifactAction.vue')['default']
|
|
20
|
+
ArtifactActions: typeof import('./src/components/ai-elements/artifact/ArtifactActions.vue')['default']
|
|
21
|
+
ArtifactClose: typeof import('./src/components/ai-elements/artifact/ArtifactClose.vue')['default']
|
|
22
|
+
ArtifactContent: typeof import('./src/components/ai-elements/artifact/ArtifactContent.vue')['default']
|
|
23
|
+
ArtifactDescription: typeof import('./src/components/ai-elements/artifact/ArtifactDescription.vue')['default']
|
|
24
|
+
ArtifactHeader: typeof import('./src/components/ai-elements/artifact/ArtifactHeader.vue')['default']
|
|
25
|
+
ArtifactTitle: typeof import('./src/components/ai-elements/artifact/ArtifactTitle.vue')['default']
|
|
26
|
+
Avatar: typeof import('./src/components/ui/avatar/Avatar.vue')['default']
|
|
27
|
+
AvatarFallback: typeof import('./src/components/ui/avatar/AvatarFallback.vue')['default']
|
|
28
|
+
AvatarImage: typeof import('./src/components/ui/avatar/AvatarImage.vue')['default']
|
|
29
|
+
Badge: typeof import('./src/components/ui/badge/Badge.vue')['default']
|
|
30
|
+
Button: typeof import('./src/components/ui/button/Button.vue')['default']
|
|
31
|
+
ButtonGroup: typeof import('./src/components/ui/button-group/ButtonGroup.vue')['default']
|
|
32
|
+
ButtonGroupSeparator: typeof import('./src/components/ui/button-group/ButtonGroupSeparator.vue')['default']
|
|
33
|
+
ButtonGroupText: typeof import('./src/components/ui/button-group/ButtonGroupText.vue')['default']
|
|
34
|
+
Canvas: typeof import('./src/components/ai-elements/canvas/Canvas.vue')['default']
|
|
35
|
+
Card: typeof import('./src/components/ui/card/Card.vue')['default']
|
|
36
|
+
CardAction: typeof import('./src/components/ui/card/CardAction.vue')['default']
|
|
37
|
+
CardContent: typeof import('./src/components/ui/card/CardContent.vue')['default']
|
|
38
|
+
CardDescription: typeof import('./src/components/ui/card/CardDescription.vue')['default']
|
|
39
|
+
CardFooter: typeof import('./src/components/ui/card/CardFooter.vue')['default']
|
|
40
|
+
CardHeader: typeof import('./src/components/ui/card/CardHeader.vue')['default']
|
|
41
|
+
CardTitle: typeof import('./src/components/ui/card/CardTitle.vue')['default']
|
|
42
|
+
Carousel: typeof import('./src/components/ui/carousel/Carousel.vue')['default']
|
|
43
|
+
CarouselContent: typeof import('./src/components/ui/carousel/CarouselContent.vue')['default']
|
|
44
|
+
CarouselItem: typeof import('./src/components/ui/carousel/CarouselItem.vue')['default']
|
|
45
|
+
CarouselNext: typeof import('./src/components/ui/carousel/CarouselNext.vue')['default']
|
|
46
|
+
CarouselPrevious: typeof import('./src/components/ui/carousel/CarouselPrevious.vue')['default']
|
|
47
|
+
ChainOfThought: typeof import('./src/components/ai-elements/chain-of-thought/ChainOfThought.vue')['default']
|
|
48
|
+
ChainOfThoughtContent: typeof import('./src/components/ai-elements/chain-of-thought/ChainOfThoughtContent.vue')['default']
|
|
49
|
+
ChainOfThoughtHeader: typeof import('./src/components/ai-elements/chain-of-thought/ChainOfThoughtHeader.vue')['default']
|
|
50
|
+
ChainOfThoughtImage: typeof import('./src/components/ai-elements/chain-of-thought/ChainOfThoughtImage.vue')['default']
|
|
51
|
+
ChainOfThoughtSearchResult: typeof import('./src/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResult.vue')['default']
|
|
52
|
+
ChainOfThoughtSearchResults: typeof import('./src/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResults.vue')['default']
|
|
53
|
+
ChainOfThoughtStep: typeof import('./src/components/ai-elements/chain-of-thought/ChainOfThoughtStep.vue')['default']
|
|
54
|
+
ChatConversation: typeof import('./src/components/ChatConversation/ChatConversation.vue')['default']
|
|
55
|
+
ChatGPT: typeof import('./src/components/ai-elements/open-in-chat/providers/icons/ChatGPT.vue')['default']
|
|
56
|
+
ChatPromptInputProvider: typeof import('./src/components/ChatPromptInputProvider/ChatPromptInputProvider.vue')['default']
|
|
57
|
+
Checkpoint: typeof import('./src/components/ai-elements/checkpoint/Checkpoint.vue')['default']
|
|
58
|
+
CheckpointIcon: typeof import('./src/components/ai-elements/checkpoint/CheckpointIcon.vue')['default']
|
|
59
|
+
CheckpointTrigger: typeof import('./src/components/ai-elements/checkpoint/CheckpointTrigger.vue')['default']
|
|
60
|
+
Claude: typeof import('./src/components/ai-elements/open-in-chat/providers/icons/Claude.vue')['default']
|
|
61
|
+
CodeBlock: typeof import('./src/components/ai-elements/code-block/CodeBlock.vue')['default']
|
|
62
|
+
CodeBlockCopyButton: typeof import('./src/components/ai-elements/code-block/CodeBlockCopyButton.vue')['default']
|
|
63
|
+
Collapsible: typeof import('./src/components/ui/collapsible/Collapsible.vue')['default']
|
|
64
|
+
CollapsibleContent: typeof import('./src/components/ui/collapsible/CollapsibleContent.vue')['default']
|
|
65
|
+
CollapsibleTrigger: typeof import('./src/components/ui/collapsible/CollapsibleTrigger.vue')['default']
|
|
66
|
+
Command: typeof import('./src/components/ui/command/Command.vue')['default']
|
|
67
|
+
CommandDialog: typeof import('./src/components/ui/command/CommandDialog.vue')['default']
|
|
68
|
+
CommandEmpty: typeof import('./src/components/ui/command/CommandEmpty.vue')['default']
|
|
69
|
+
CommandGroup: typeof import('./src/components/ui/command/CommandGroup.vue')['default']
|
|
70
|
+
CommandInput: typeof import('./src/components/ui/command/CommandInput.vue')['default']
|
|
71
|
+
CommandItem: typeof import('./src/components/ui/command/CommandItem.vue')['default']
|
|
72
|
+
CommandList: typeof import('./src/components/ui/command/CommandList.vue')['default']
|
|
73
|
+
CommandSeparator: typeof import('./src/components/ui/command/CommandSeparator.vue')['default']
|
|
74
|
+
CommandShortcut: typeof import('./src/components/ui/command/CommandShortcut.vue')['default']
|
|
75
|
+
Confirmation: typeof import('./src/components/ai-elements/confirmation/Confirmation.vue')['default']
|
|
76
|
+
ConfirmationAccepted: typeof import('./src/components/ai-elements/confirmation/ConfirmationAccepted.vue')['default']
|
|
77
|
+
ConfirmationAction: typeof import('./src/components/ai-elements/confirmation/ConfirmationAction.vue')['default']
|
|
78
|
+
ConfirmationActions: typeof import('./src/components/ai-elements/confirmation/ConfirmationActions.vue')['default']
|
|
79
|
+
ConfirmationRejected: typeof import('./src/components/ai-elements/confirmation/ConfirmationRejected.vue')['default']
|
|
80
|
+
ConfirmationRequest: typeof import('./src/components/ai-elements/confirmation/ConfirmationRequest.vue')['default']
|
|
81
|
+
ConfirmationTitle: typeof import('./src/components/ai-elements/confirmation/ConfirmationTitle.vue')['default']
|
|
82
|
+
Connection: typeof import('./src/components/ai-elements/connection/Connection.vue')['default']
|
|
83
|
+
Context: typeof import('./src/components/ai-elements/context/Context.vue')['default']
|
|
84
|
+
ContextCacheUsage: typeof import('./src/components/ai-elements/context/ContextCacheUsage.vue')['default']
|
|
85
|
+
ContextContent: typeof import('./src/components/ai-elements/context/ContextContent.vue')['default']
|
|
86
|
+
ContextContentBody: typeof import('./src/components/ai-elements/context/ContextContentBody.vue')['default']
|
|
87
|
+
ContextContentFooter: typeof import('./src/components/ai-elements/context/ContextContentFooter.vue')['default']
|
|
88
|
+
ContextContentHeader: typeof import('./src/components/ai-elements/context/ContextContentHeader.vue')['default']
|
|
89
|
+
ContextIcon: typeof import('./src/components/ai-elements/context/ContextIcon.vue')['default']
|
|
90
|
+
ContextInputUsage: typeof import('./src/components/ai-elements/context/ContextInputUsage.vue')['default']
|
|
91
|
+
ContextOutputUsage: typeof import('./src/components/ai-elements/context/ContextOutputUsage.vue')['default']
|
|
92
|
+
ContextReasoningUsage: typeof import('./src/components/ai-elements/context/ContextReasoningUsage.vue')['default']
|
|
93
|
+
ContextTrigger: typeof import('./src/components/ai-elements/context/ContextTrigger.vue')['default']
|
|
94
|
+
Controls: typeof import('./src/components/ai-elements/controls/Controls.vue')['default']
|
|
95
|
+
Conversation: typeof import('./src/components/ai-elements/conversation/Conversation.vue')['default']
|
|
96
|
+
ConversationContent: typeof import('./src/components/ai-elements/conversation/ConversationContent.vue')['default']
|
|
97
|
+
ConversationEmptyState: typeof import('./src/components/ai-elements/conversation/ConversationEmptyState.vue')['default']
|
|
98
|
+
ConversationScrollButton: typeof import('./src/components/ai-elements/conversation/ConversationScrollButton.vue')['default']
|
|
99
|
+
Cursor: typeof import('./src/components/ai-elements/open-in-chat/providers/icons/Cursor.vue')['default']
|
|
100
|
+
Dialog: typeof import('./src/components/ui/dialog/Dialog.vue')['default']
|
|
101
|
+
DialogClose: typeof import('./src/components/ui/dialog/DialogClose.vue')['default']
|
|
102
|
+
DialogContent: typeof import('./src/components/ui/dialog/DialogContent.vue')['default']
|
|
103
|
+
DialogDescription: typeof import('./src/components/ui/dialog/DialogDescription.vue')['default']
|
|
104
|
+
DialogFooter: typeof import('./src/components/ui/dialog/DialogFooter.vue')['default']
|
|
105
|
+
DialogHeader: typeof import('./src/components/ui/dialog/DialogHeader.vue')['default']
|
|
106
|
+
DialogOverlay: typeof import('./src/components/ui/dialog/DialogOverlay.vue')['default']
|
|
107
|
+
DialogScrollContent: typeof import('./src/components/ui/dialog/DialogScrollContent.vue')['default']
|
|
108
|
+
DialogTitle: typeof import('./src/components/ui/dialog/DialogTitle.vue')['default']
|
|
109
|
+
DialogTrigger: typeof import('./src/components/ui/dialog/DialogTrigger.vue')['default']
|
|
110
|
+
DropdownMenu: typeof import('./src/components/ui/dropdown-menu/DropdownMenu.vue')['default']
|
|
111
|
+
DropdownMenuCheckboxItem: typeof import('./src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue')['default']
|
|
112
|
+
DropdownMenuContent: typeof import('./src/components/ui/dropdown-menu/DropdownMenuContent.vue')['default']
|
|
113
|
+
DropdownMenuGroup: typeof import('./src/components/ui/dropdown-menu/DropdownMenuGroup.vue')['default']
|
|
114
|
+
DropdownMenuItem: typeof import('./src/components/ui/dropdown-menu/DropdownMenuItem.vue')['default']
|
|
115
|
+
DropdownMenuLabel: typeof import('./src/components/ui/dropdown-menu/DropdownMenuLabel.vue')['default']
|
|
116
|
+
DropdownMenuRadioGroup: typeof import('./src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue')['default']
|
|
117
|
+
DropdownMenuRadioItem: typeof import('./src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue')['default']
|
|
118
|
+
DropdownMenuSeparator: typeof import('./src/components/ui/dropdown-menu/DropdownMenuSeparator.vue')['default']
|
|
119
|
+
DropdownMenuShortcut: typeof import('./src/components/ui/dropdown-menu/DropdownMenuShortcut.vue')['default']
|
|
120
|
+
DropdownMenuSub: typeof import('./src/components/ui/dropdown-menu/DropdownMenuSub.vue')['default']
|
|
121
|
+
DropdownMenuSubContent: typeof import('./src/components/ui/dropdown-menu/DropdownMenuSubContent.vue')['default']
|
|
122
|
+
DropdownMenuSubTrigger: typeof import('./src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue')['default']
|
|
123
|
+
DropdownMenuTrigger: typeof import('./src/components/ui/dropdown-menu/DropdownMenuTrigger.vue')['default']
|
|
124
|
+
Github: typeof import('./src/components/ai-elements/open-in-chat/providers/icons/Github.vue')['default']
|
|
125
|
+
HoverCard: typeof import('./src/components/ui/hover-card/HoverCard.vue')['default']
|
|
126
|
+
HoverCardContent: typeof import('./src/components/ui/hover-card/HoverCardContent.vue')['default']
|
|
127
|
+
HoverCardTrigger: typeof import('./src/components/ui/hover-card/HoverCardTrigger.vue')['default']
|
|
128
|
+
Image: typeof import('./src/components/ai-elements/image/Image.vue')['default']
|
|
129
|
+
InlineCitation: typeof import('./src/components/ai-elements/inline-citation/InlineCitation.vue')['default']
|
|
130
|
+
InlineCitationCard: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCard.vue')['default']
|
|
131
|
+
InlineCitationCardBody: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCardBody.vue')['default']
|
|
132
|
+
InlineCitationCardTrigger: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCardTrigger.vue')['default']
|
|
133
|
+
InlineCitationCarousel: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCarousel.vue')['default']
|
|
134
|
+
InlineCitationCarouselContent: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCarouselContent.vue')['default']
|
|
135
|
+
InlineCitationCarouselHeader: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCarouselHeader.vue')['default']
|
|
136
|
+
InlineCitationCarouselIndex: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCarouselIndex.vue')['default']
|
|
137
|
+
InlineCitationCarouselItem: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCarouselItem.vue')['default']
|
|
138
|
+
InlineCitationCarouselNext: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCarouselNext.vue')['default']
|
|
139
|
+
InlineCitationCarouselPrev: typeof import('./src/components/ai-elements/inline-citation/InlineCitationCarouselPrev.vue')['default']
|
|
140
|
+
InlineCitationQuote: typeof import('./src/components/ai-elements/inline-citation/InlineCitationQuote.vue')['default']
|
|
141
|
+
InlineCitationSource: typeof import('./src/components/ai-elements/inline-citation/InlineCitationSource.vue')['default']
|
|
142
|
+
InlineCitationText: typeof import('./src/components/ai-elements/inline-citation/InlineCitationText.vue')['default']
|
|
143
|
+
Input: typeof import('./src/components/ui/input/Input.vue')['default']
|
|
144
|
+
InputGroup: typeof import('./src/components/ui/input-group/InputGroup.vue')['default']
|
|
145
|
+
InputGroupAddon: typeof import('./src/components/ui/input-group/InputGroupAddon.vue')['default']
|
|
146
|
+
InputGroupButton: typeof import('./src/components/ui/input-group/InputGroupButton.vue')['default']
|
|
147
|
+
InputGroupInput: typeof import('./src/components/ui/input-group/InputGroupInput.vue')['default']
|
|
148
|
+
InputGroupText: typeof import('./src/components/ui/input-group/InputGroupText.vue')['default']
|
|
149
|
+
InputGroupTextarea: typeof import('./src/components/ui/input-group/InputGroupTextarea.vue')['default']
|
|
150
|
+
Loader: typeof import('./src/components/ai-elements/loader/Loader.vue')['default']
|
|
151
|
+
LoaderIcon: typeof import('./src/components/ai-elements/loader/LoaderIcon.vue')['default']
|
|
152
|
+
Message: typeof import('./src/components/ai-elements/message/Message.vue')['default']
|
|
153
|
+
MessageAction: typeof import('./src/components/ai-elements/message/MessageAction.vue')['default']
|
|
154
|
+
MessageActions: typeof import('./src/components/ai-elements/message/MessageActions.vue')['default']
|
|
155
|
+
MessageAttachment: typeof import('./src/components/ai-elements/message/MessageAttachment.vue')['default']
|
|
156
|
+
MessageAttachments: typeof import('./src/components/ai-elements/message/MessageAttachments.vue')['default']
|
|
157
|
+
MessageAvatar: typeof import('./src/components/ai-elements/message/MessageAvatar.vue')['default']
|
|
158
|
+
MessageBranch: typeof import('./src/components/ai-elements/message/MessageBranch.vue')['default']
|
|
159
|
+
MessageBranchContent: typeof import('./src/components/ai-elements/message/MessageBranchContent.vue')['default']
|
|
160
|
+
MessageBranchNext: typeof import('./src/components/ai-elements/message/MessageBranchNext.vue')['default']
|
|
161
|
+
MessageBranchPage: typeof import('./src/components/ai-elements/message/MessageBranchPage.vue')['default']
|
|
162
|
+
MessageBranchPrevious: typeof import('./src/components/ai-elements/message/MessageBranchPrevious.vue')['default']
|
|
163
|
+
MessageBranchSelector: typeof import('./src/components/ai-elements/message/MessageBranchSelector.vue')['default']
|
|
164
|
+
MessageContent: typeof import('./src/components/ai-elements/message/MessageContent.vue')['default']
|
|
165
|
+
MessageResponse: typeof import('./src/components/ai-elements/message/MessageResponse.vue')['default']
|
|
166
|
+
MessageToolbar: typeof import('./src/components/ai-elements/message/MessageToolbar.vue')['default']
|
|
167
|
+
ModelSelector: typeof import('./src/components/ai-elements/model-selector/ModelSelector.vue')['default']
|
|
168
|
+
ModelSelectorContent: typeof import('./src/components/ai-elements/model-selector/ModelSelectorContent.vue')['default']
|
|
169
|
+
ModelSelectorDialog: typeof import('./src/components/ai-elements/model-selector/ModelSelectorDialog.vue')['default']
|
|
170
|
+
ModelSelectorEmpty: typeof import('./src/components/ai-elements/model-selector/ModelSelectorEmpty.vue')['default']
|
|
171
|
+
ModelSelectorGroup: typeof import('./src/components/ai-elements/model-selector/ModelSelectorGroup.vue')['default']
|
|
172
|
+
ModelSelectorInput: typeof import('./src/components/ai-elements/model-selector/ModelSelectorInput.vue')['default']
|
|
173
|
+
ModelSelectorItem: typeof import('./src/components/ai-elements/model-selector/ModelSelectorItem.vue')['default']
|
|
174
|
+
ModelSelectorList: typeof import('./src/components/ai-elements/model-selector/ModelSelectorList.vue')['default']
|
|
175
|
+
ModelSelectorLogo: typeof import('./src/components/ai-elements/model-selector/ModelSelectorLogo.vue')['default']
|
|
176
|
+
ModelSelectorLogoGroup: typeof import('./src/components/ai-elements/model-selector/ModelSelectorLogoGroup.vue')['default']
|
|
177
|
+
ModelSelectorName: typeof import('./src/components/ai-elements/model-selector/ModelSelectorName.vue')['default']
|
|
178
|
+
ModelSelectorSeparator: typeof import('./src/components/ai-elements/model-selector/ModelSelectorSeparator.vue')['default']
|
|
179
|
+
ModelSelectorShortcut: typeof import('./src/components/ai-elements/model-selector/ModelSelectorShortcut.vue')['default']
|
|
180
|
+
ModelSelectorTrigger: typeof import('./src/components/ai-elements/model-selector/ModelSelectorTrigger.vue')['default']
|
|
181
|
+
Node: typeof import('./src/components/ai-elements/node/Node.vue')['default']
|
|
182
|
+
NodeAction: typeof import('./src/components/ai-elements/node/NodeAction.vue')['default']
|
|
183
|
+
NodeContent: typeof import('./src/components/ai-elements/node/NodeContent.vue')['default']
|
|
184
|
+
NodeDescription: typeof import('./src/components/ai-elements/node/NodeDescription.vue')['default']
|
|
185
|
+
NodeFooter: typeof import('./src/components/ai-elements/node/NodeFooter.vue')['default']
|
|
186
|
+
NodeHeader: typeof import('./src/components/ai-elements/node/NodeHeader.vue')['default']
|
|
187
|
+
NodeTitle: typeof import('./src/components/ai-elements/node/NodeTitle.vue')['default']
|
|
188
|
+
OpenIn: typeof import('./src/components/ai-elements/open-in-chat/OpenIn.vue')['default']
|
|
189
|
+
OpenInChatGPT: typeof import('./src/components/ai-elements/open-in-chat/providers/items/OpenInChatGPT.vue')['default']
|
|
190
|
+
OpenInClaude: typeof import('./src/components/ai-elements/open-in-chat/providers/items/OpenInClaude.vue')['default']
|
|
191
|
+
OpenInContent: typeof import('./src/components/ai-elements/open-in-chat/OpenInContent.vue')['default']
|
|
192
|
+
OpenInCursor: typeof import('./src/components/ai-elements/open-in-chat/providers/items/OpenInCursor.vue')['default']
|
|
193
|
+
OpenInItemLink: typeof import('./src/components/ai-elements/open-in-chat/OpenInItemLink.vue')['default']
|
|
194
|
+
OpenInScira: typeof import('./src/components/ai-elements/open-in-chat/providers/items/OpenInScira.vue')['default']
|
|
195
|
+
OpenInT3: typeof import('./src/components/ai-elements/open-in-chat/providers/items/OpenInT3.vue')['default']
|
|
196
|
+
OpenInTrigger: typeof import('./src/components/ai-elements/open-in-chat/OpenInTrigger.vue')['default']
|
|
197
|
+
OpenInv0: typeof import('./src/components/ai-elements/open-in-chat/providers/items/OpenInv0.vue')['default']
|
|
198
|
+
Panel: typeof import('./src/components/ai-elements/panel/Panel.vue')['default']
|
|
199
|
+
Plan: typeof import('./src/components/ai-elements/plan/Plan.vue')['default']
|
|
200
|
+
PlanAction: typeof import('./src/components/ai-elements/plan/PlanAction.vue')['default']
|
|
201
|
+
PlanContent: typeof import('./src/components/ai-elements/plan/PlanContent.vue')['default']
|
|
202
|
+
PlanDescription: typeof import('./src/components/ai-elements/plan/PlanDescription.vue')['default']
|
|
203
|
+
PlanFooter: typeof import('./src/components/ai-elements/plan/PlanFooter.vue')['default']
|
|
204
|
+
PlanHeader: typeof import('./src/components/ai-elements/plan/PlanHeader.vue')['default']
|
|
205
|
+
PlanTitle: typeof import('./src/components/ai-elements/plan/PlanTitle.vue')['default']
|
|
206
|
+
PlanTrigger: typeof import('./src/components/ai-elements/plan/PlanTrigger.vue')['default']
|
|
207
|
+
Progress: typeof import('./src/components/ui/progress/Progress.vue')['default']
|
|
208
|
+
PromptInput: typeof import('./src/components/ai-elements/prompt-input/PromptInput.vue')['default']
|
|
209
|
+
PromptInputActionAddAttachments: typeof import('./src/components/ai-elements/prompt-input/PromptInputActionAddAttachments.vue')['default']
|
|
210
|
+
PromptInputActionMenu: typeof import('./src/components/ai-elements/prompt-input/PromptInputActionMenu.vue')['default']
|
|
211
|
+
PromptInputActionMenuContent: typeof import('./src/components/ai-elements/prompt-input/PromptInputActionMenuContent.vue')['default']
|
|
212
|
+
PromptInputActionMenuItem: typeof import('./src/components/ai-elements/prompt-input/PromptInputActionMenuItem.vue')['default']
|
|
213
|
+
PromptInputActionMenuTrigger: typeof import('./src/components/ai-elements/prompt-input/PromptInputActionMenuTrigger.vue')['default']
|
|
214
|
+
PromptInputAttachment: typeof import('./src/components/ai-elements/prompt-input/PromptInputAttachment.vue')['default']
|
|
215
|
+
PromptInputAttachments: typeof import('./src/components/ai-elements/prompt-input/PromptInputAttachments.vue')['default']
|
|
216
|
+
PromptInputBody: typeof import('./src/components/ai-elements/prompt-input/PromptInputBody.vue')['default']
|
|
217
|
+
PromptInputButton: typeof import('./src/components/ai-elements/prompt-input/PromptInputButton.vue')['default']
|
|
218
|
+
PromptInputCommand: typeof import('./src/components/ai-elements/prompt-input/PromptInputCommand.vue')['default']
|
|
219
|
+
PromptInputCommandEmpty: typeof import('./src/components/ai-elements/prompt-input/PromptInputCommandEmpty.vue')['default']
|
|
220
|
+
PromptInputCommandGroup: typeof import('./src/components/ai-elements/prompt-input/PromptInputCommandGroup.vue')['default']
|
|
221
|
+
PromptInputCommandInput: typeof import('./src/components/ai-elements/prompt-input/PromptInputCommandInput.vue')['default']
|
|
222
|
+
PromptInputCommandItem: typeof import('./src/components/ai-elements/prompt-input/PromptInputCommandItem.vue')['default']
|
|
223
|
+
PromptInputCommandList: typeof import('./src/components/ai-elements/prompt-input/PromptInputCommandList.vue')['default']
|
|
224
|
+
PromptInputCommandSeparator: typeof import('./src/components/ai-elements/prompt-input/PromptInputCommandSeparator.vue')['default']
|
|
225
|
+
PromptInputFooter: typeof import('./src/components/ai-elements/prompt-input/PromptInputFooter.vue')['default']
|
|
226
|
+
PromptInputHeader: typeof import('./src/components/ai-elements/prompt-input/PromptInputHeader.vue')['default']
|
|
227
|
+
PromptInputHoverCard: typeof import('./src/components/ai-elements/prompt-input/PromptInputHoverCard.vue')['default']
|
|
228
|
+
PromptInputHoverCardContent: typeof import('./src/components/ai-elements/prompt-input/PromptInputHoverCardContent.vue')['default']
|
|
229
|
+
PromptInputHoverCardTrigger: typeof import('./src/components/ai-elements/prompt-input/PromptInputHoverCardTrigger.vue')['default']
|
|
230
|
+
PromptInputProvider: typeof import('./src/components/ai-elements/prompt-input/PromptInputProvider.vue')['default']
|
|
231
|
+
PromptInputSelect: typeof import('./src/components/ai-elements/prompt-input/PromptInputSelect.vue')['default']
|
|
232
|
+
PromptInputSelectContent: typeof import('./src/components/ai-elements/prompt-input/PromptInputSelectContent.vue')['default']
|
|
233
|
+
PromptInputSelectItem: typeof import('./src/components/ai-elements/prompt-input/PromptInputSelectItem.vue')['default']
|
|
234
|
+
PromptInputSelectTrigger: typeof import('./src/components/ai-elements/prompt-input/PromptInputSelectTrigger.vue')['default']
|
|
235
|
+
PromptInputSelectValue: typeof import('./src/components/ai-elements/prompt-input/PromptInputSelectValue.vue')['default']
|
|
236
|
+
PromptInputSpeechButton: typeof import('./src/components/ai-elements/prompt-input/PromptInputSpeechButton.vue')['default']
|
|
237
|
+
PromptInputSubmit: typeof import('./src/components/ai-elements/prompt-input/PromptInputSubmit.vue')['default']
|
|
238
|
+
PromptInputTab: typeof import('./src/components/ai-elements/prompt-input/PromptInputTab.vue')['default']
|
|
239
|
+
PromptInputTabBody: typeof import('./src/components/ai-elements/prompt-input/PromptInputTabBody.vue')['default']
|
|
240
|
+
PromptInputTabItem: typeof import('./src/components/ai-elements/prompt-input/PromptInputTabItem.vue')['default']
|
|
241
|
+
PromptInputTabLabel: typeof import('./src/components/ai-elements/prompt-input/PromptInputTabLabel.vue')['default']
|
|
242
|
+
PromptInputTabsList: typeof import('./src/components/ai-elements/prompt-input/PromptInputTabsList.vue')['default']
|
|
243
|
+
PromptInputTextarea: typeof import('./src/components/ai-elements/prompt-input/PromptInputTextarea.vue')['default']
|
|
244
|
+
PromptInputTools: typeof import('./src/components/ai-elements/prompt-input/PromptInputTools.vue')['default']
|
|
245
|
+
Queue: typeof import('./src/components/ai-elements/queue/Queue.vue')['default']
|
|
246
|
+
QueueItem: typeof import('./src/components/ai-elements/queue/QueueItem.vue')['default']
|
|
247
|
+
QueueItemAction: typeof import('./src/components/ai-elements/queue/QueueItemAction.vue')['default']
|
|
248
|
+
QueueItemActions: typeof import('./src/components/ai-elements/queue/QueueItemActions.vue')['default']
|
|
249
|
+
QueueItemAttachment: typeof import('./src/components/ai-elements/queue/QueueItemAttachment.vue')['default']
|
|
250
|
+
QueueItemContent: typeof import('./src/components/ai-elements/queue/QueueItemContent.vue')['default']
|
|
251
|
+
QueueItemDescription: typeof import('./src/components/ai-elements/queue/QueueItemDescription.vue')['default']
|
|
252
|
+
QueueItemFile: typeof import('./src/components/ai-elements/queue/QueueItemFile.vue')['default']
|
|
253
|
+
QueueItemImage: typeof import('./src/components/ai-elements/queue/QueueItemImage.vue')['default']
|
|
254
|
+
QueueItemIndicator: typeof import('./src/components/ai-elements/queue/QueueItemIndicator.vue')['default']
|
|
255
|
+
QueueList: typeof import('./src/components/ai-elements/queue/QueueList.vue')['default']
|
|
256
|
+
QueueSection: typeof import('./src/components/ai-elements/queue/QueueSection.vue')['default']
|
|
257
|
+
QueueSectionContent: typeof import('./src/components/ai-elements/queue/QueueSectionContent.vue')['default']
|
|
258
|
+
QueueSectionLabel: typeof import('./src/components/ai-elements/queue/QueueSectionLabel.vue')['default']
|
|
259
|
+
QueueSectionTrigger: typeof import('./src/components/ai-elements/queue/QueueSectionTrigger.vue')['default']
|
|
260
|
+
Reasoning: typeof import('./src/components/ai-elements/reasoning/Reasoning.vue')['default']
|
|
261
|
+
ReasoningContent: typeof import('./src/components/ai-elements/reasoning/ReasoningContent.vue')['default']
|
|
262
|
+
ReasoningTrigger: typeof import('./src/components/ai-elements/reasoning/ReasoningTrigger.vue')['default']
|
|
263
|
+
Scira: typeof import('./src/components/ai-elements/open-in-chat/providers/icons/Scira.vue')['default']
|
|
264
|
+
ScrollArea: typeof import('./src/components/ui/scroll-area/ScrollArea.vue')['default']
|
|
265
|
+
ScrollBar: typeof import('./src/components/ui/scroll-area/ScrollBar.vue')['default']
|
|
266
|
+
Select: typeof import('./src/components/ui/select/Select.vue')['default']
|
|
267
|
+
SelectContent: typeof import('./src/components/ui/select/SelectContent.vue')['default']
|
|
268
|
+
SelectGroup: typeof import('./src/components/ui/select/SelectGroup.vue')['default']
|
|
269
|
+
SelectItem: typeof import('./src/components/ui/select/SelectItem.vue')['default']
|
|
270
|
+
SelectItemText: typeof import('./src/components/ui/select/SelectItemText.vue')['default']
|
|
271
|
+
SelectLabel: typeof import('./src/components/ui/select/SelectLabel.vue')['default']
|
|
272
|
+
SelectScrollDownButton: typeof import('./src/components/ui/select/SelectScrollDownButton.vue')['default']
|
|
273
|
+
SelectScrollUpButton: typeof import('./src/components/ui/select/SelectScrollUpButton.vue')['default']
|
|
274
|
+
SelectSeparator: typeof import('./src/components/ui/select/SelectSeparator.vue')['default']
|
|
275
|
+
SelectTrigger: typeof import('./src/components/ui/select/SelectTrigger.vue')['default']
|
|
276
|
+
SelectValue: typeof import('./src/components/ui/select/SelectValue.vue')['default']
|
|
277
|
+
Separator: typeof import('./src/components/ui/separator/Separator.vue')['default']
|
|
278
|
+
Shimmer: typeof import('./src/components/ai-elements/shimmer/Shimmer.vue')['default']
|
|
279
|
+
Source: typeof import('./src/components/ai-elements/sources/Source.vue')['default']
|
|
280
|
+
Sources: typeof import('./src/components/ai-elements/sources/Sources.vue')['default']
|
|
281
|
+
SourcesContent: typeof import('./src/components/ai-elements/sources/SourcesContent.vue')['default']
|
|
282
|
+
SourcesTrigger: typeof import('./src/components/ai-elements/sources/SourcesTrigger.vue')['default']
|
|
283
|
+
Suggestion: typeof import('./src/components/ai-elements/suggestion/Suggestion.vue')['default']
|
|
284
|
+
Suggestions: typeof import('./src/components/ai-elements/suggestion/Suggestions.vue')['default']
|
|
285
|
+
Task: typeof import('./src/components/ai-elements/task/Task.vue')['default']
|
|
286
|
+
TaskContent: typeof import('./src/components/ai-elements/task/TaskContent.vue')['default']
|
|
287
|
+
TaskItem: typeof import('./src/components/ai-elements/task/TaskItem.vue')['default']
|
|
288
|
+
TaskItemFile: typeof import('./src/components/ai-elements/task/TaskItemFile.vue')['default']
|
|
289
|
+
TaskTrigger: typeof import('./src/components/ai-elements/task/TaskTrigger.vue')['default']
|
|
290
|
+
Temporary: typeof import('./src/components/ai-elements/edge/Temporary.vue')['default']
|
|
291
|
+
Textarea: typeof import('./src/components/ui/textarea/Textarea.vue')['default']
|
|
292
|
+
TokensWithCost: typeof import('./src/components/ai-elements/context/TokensWithCost.vue')['default']
|
|
293
|
+
Tool: typeof import('./src/components/ai-elements/tool/Tool.vue')['default']
|
|
294
|
+
Toolbar: typeof import('./src/components/ai-elements/toolbar/Toolbar.vue')['default']
|
|
295
|
+
ToolContent: typeof import('./src/components/ai-elements/tool/ToolContent.vue')['default']
|
|
296
|
+
ToolHeader: typeof import('./src/components/ai-elements/tool/ToolHeader.vue')['default']
|
|
297
|
+
ToolInput: typeof import('./src/components/ai-elements/tool/ToolInput.vue')['default']
|
|
298
|
+
ToolOutput: typeof import('./src/components/ai-elements/tool/ToolOutput.vue')['default']
|
|
299
|
+
ToolStatusBadge: typeof import('./src/components/ai-elements/tool/ToolStatusBadge.vue')['default']
|
|
300
|
+
Tooltip: typeof import('./src/components/ui/tooltip/Tooltip.vue')['default']
|
|
301
|
+
TooltipContent: typeof import('./src/components/ui/tooltip/TooltipContent.vue')['default']
|
|
302
|
+
TooltipProvider: typeof import('./src/components/ui/tooltip/TooltipProvider.vue')['default']
|
|
303
|
+
TooltipTrigger: typeof import('./src/components/ui/tooltip/TooltipTrigger.vue')['default']
|
|
304
|
+
V0: typeof import('./src/components/ai-elements/open-in-chat/providers/icons/V0.vue')['default']
|
|
305
|
+
WebPreview: typeof import('./src/components/ai-elements/web-preview/WebPreview.vue')['default']
|
|
306
|
+
WebPreviewBody: typeof import('./src/components/ai-elements/web-preview/WebPreviewBody.vue')['default']
|
|
307
|
+
WebPreviewConsole: typeof import('./src/components/ai-elements/web-preview/WebPreviewConsole.vue')['default']
|
|
308
|
+
WebPreviewNavigation: typeof import('./src/components/ai-elements/web-preview/WebPreviewNavigation.vue')['default']
|
|
309
|
+
WebPreviewNavigationButton: typeof import('./src/components/ai-elements/web-preview/WebPreviewNavigationButton.vue')['default']
|
|
310
|
+
WebPreviewUrl: typeof import('./src/components/ai-elements/web-preview/WebPreviewUrl.vue')['default']
|
|
311
|
+
}
|
|
312
|
+
}
|
package/components.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://shadcn-vue.com/schema.json",
|
|
3
|
+
"style": "new-york",
|
|
4
|
+
"typescript": true,
|
|
5
|
+
"tailwind": {
|
|
6
|
+
"config": "",
|
|
7
|
+
"css": "src/style.css",
|
|
8
|
+
"baseColor": "neutral",
|
|
9
|
+
"cssVariables": true,
|
|
10
|
+
"prefix": ""
|
|
11
|
+
},
|
|
12
|
+
"iconLibrary": "lucide",
|
|
13
|
+
"aliases": {
|
|
14
|
+
"components": "@/components",
|
|
15
|
+
"utils": "@/lib/utils",
|
|
16
|
+
"ui": "@/components/ui",
|
|
17
|
+
"lib": "@/lib",
|
|
18
|
+
"composables": "@/composables"
|
|
19
|
+
},
|
|
20
|
+
"registries": {}
|
|
21
|
+
}
|
package/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>vue-template</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="app"></div>
|
|
11
|
+
<script type="module" src="/src/main.ts"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wzh-/ai-chat-example",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"dev": "vite",
|
|
9
|
+
"build": "vue-tsc -b && vite build",
|
|
10
|
+
"preview": "vite preview",
|
|
11
|
+
"pub":"npm publish"
|
|
12
|
+
},
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@ai-sdk/vue": "^3.0.1",
|
|
18
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
19
|
+
"@vue-flow/background": "^1.3.2",
|
|
20
|
+
"@vue-flow/controls": "^1.1.3",
|
|
21
|
+
"@vue-flow/core": "^1.48.0",
|
|
22
|
+
"@vue-flow/node-toolbar": "^1.1.1",
|
|
23
|
+
"@vueuse/core": "^14.1.0",
|
|
24
|
+
"ai": "^6.0.1",
|
|
25
|
+
"class-variance-authority": "^0.7.1",
|
|
26
|
+
"clsx": "^2.1.1",
|
|
27
|
+
"embla-carousel-vue": "^8.6.0",
|
|
28
|
+
"lucide-vue-next": "^0.561.0",
|
|
29
|
+
"motion-v": "^1.7.4",
|
|
30
|
+
"nanoid": "^5.1.6",
|
|
31
|
+
"reka-ui": "^2.6.1",
|
|
32
|
+
"shiki": "^3.20.0",
|
|
33
|
+
"streamdown-vue": "^1.0.29",
|
|
34
|
+
"tailwind-merge": "^3.4.0",
|
|
35
|
+
"tailwindcss": "^4.1.18",
|
|
36
|
+
"tokenlens": "^1.3.1",
|
|
37
|
+
"vue": "^3.5.24",
|
|
38
|
+
"vue-stick-to-bottom": "^0.1.0",
|
|
39
|
+
"zod": "^4.2.1",
|
|
40
|
+
"axios": "^1.6.5"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/node": "^24.10.1",
|
|
44
|
+
"@vitejs/plugin-vue": "^6.0.1",
|
|
45
|
+
"@vue/tsconfig": "^0.8.1",
|
|
46
|
+
"tw-animate-css": "^1.4.0",
|
|
47
|
+
"typescript": "~5.9.3",
|
|
48
|
+
"unplugin-auto-import": "^20.3.0",
|
|
49
|
+
"unplugin-vue-components": "^30.0.0",
|
|
50
|
+
"vite": "npm:rolldown-vite@7.2.5",
|
|
51
|
+
"vite-tsconfig-paths": "^6.0.1",
|
|
52
|
+
"vue-tsc": "^3.1.4"
|
|
53
|
+
},
|
|
54
|
+
"pnpm": {
|
|
55
|
+
"overrides": {
|
|
56
|
+
"vite": "npm:rolldown-vite@7.2.5"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"packageManager": "pnpm@10.12.1+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac"
|
|
60
|
+
}
|
package/public/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/src/App.vue
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
|
|
4
|
+
type DataUIPart,
|
|
5
|
+
type ToolUIPart,
|
|
6
|
+
type UIDataTypes,
|
|
7
|
+
type UIMessagePart,
|
|
8
|
+
type UITools,
|
|
9
|
+
} from "ai";
|
|
10
|
+
import { useChat } from "./composables/useChat";
|
|
11
|
+
import ChatConversation from "@/components/ChatConversation/ChatConversation.vue";
|
|
12
|
+
import ChatPromptInputProvider from "@/components/ChatPromptInputProvider/ChatPromptInputProvider.vue";
|
|
13
|
+
import request from "./request";
|
|
14
|
+
|
|
15
|
+
const api = 'http://192.168.10.98:3090/main/xiao-mian/chat'
|
|
16
|
+
const Authorization = "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiZmFjdG9yeV9pZCI6MSwiaWF0IjoxNzY2MTA4MjMyLCJleHAiOjE3NjY3MTMwMzJ9.kBbSifm4CdLy4A2RjhQHJ51_zsr8EKwukhUMsb0QdTM"
|
|
17
|
+
|
|
18
|
+
const { messages, status, handleSubmit } = useChat(api, Authorization)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
function isStreamingPart(messageIndex: number, partIndex: number) {
|
|
22
|
+
const lastMsg = messages.value[messages.value.length - 1];
|
|
23
|
+
const msg = messages.value[messageIndex];
|
|
24
|
+
|
|
25
|
+
if (!lastMsg || msg?.id !== lastMsg.id) return false;
|
|
26
|
+
|
|
27
|
+
const isLastPart =
|
|
28
|
+
msg?.parts?.length > 0 && partIndex === msg?.parts?.length - 1;
|
|
29
|
+
return status.value === "streaming" && isLastPart;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function isToolPart(partType: string): partType is `tool-${string}` {
|
|
33
|
+
return partType.startsWith("tool-");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function isDataPart(partType: string): partType is `data-${string}` {
|
|
37
|
+
return partType.startsWith("data-");
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function toolPart(part: UIMessagePart<UIDataTypes, UITools>) {
|
|
41
|
+
return part as ToolUIPart<UITools>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function dataPart(part: UIMessagePart<UIDataTypes, UITools>) {
|
|
45
|
+
return part as DataUIPart<UIDataTypes>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const uploadImages = async (files: File[]) => {
|
|
49
|
+
const formData = new FormData();
|
|
50
|
+
files.forEach(file => {
|
|
51
|
+
formData.append('files', file);
|
|
52
|
+
})
|
|
53
|
+
const res = await request.post('/main/file/uploadImages', formData)
|
|
54
|
+
console.log(res);
|
|
55
|
+
|
|
56
|
+
return res.map((item: any) => ({ name: item.name, path: item.path }))
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<template>
|
|
62
|
+
<div class="fixed bottom-0 top-0 left-0 right-0 p-4">
|
|
63
|
+
<div class="relative flex size-full flex-col overflow-hidden">
|
|
64
|
+
<ChatConversation :messages="messages" :status="status" />
|
|
65
|
+
<ChatPromptInputProvider :status="status" @submit="handleSubmit" :uploadImages="uploadImages" />
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</template>
|