@admin-layout/tailwind-ui 12.2.4-alpha.7 → 12.2.4-alpha.71
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/lib/components/AIToolbar/components/AIToolBar.d.ts +22 -0
- package/lib/components/AIToolbar/components/AIToolBar.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/AIToolBar.js +87 -0
- package/lib/components/AIToolbar/components/AIToolBar.js.map +1 -0
- package/lib/components/AIToolbar/components/AIToolbarPrimitives.d.ts +14 -0
- package/lib/components/AIToolbar/components/AIToolbarPrimitives.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/AIToolbarPrimitives.js +60 -0
- package/lib/components/AIToolbar/components/AIToolbarPrimitives.js.map +1 -0
- package/lib/components/AIToolbar/components/CustomCursor.d.ts +2 -0
- package/lib/components/AIToolbar/components/CustomCursor.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/CustomCursor.js +66 -0
- package/lib/components/AIToolbar/components/CustomCursor.js.map +1 -0
- package/lib/components/AIToolbar/components/DragButton.d.ts +9 -0
- package/lib/components/AIToolbar/components/DragButton.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/DragButton.js +57 -0
- package/lib/components/AIToolbar/components/DragButton.js.map +1 -0
- package/lib/components/AIToolbar/components/Markdown/copy-button.d.ts +7 -0
- package/lib/components/AIToolbar/components/Markdown/copy-button.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/Markdown/copy-button.js +30 -0
- package/lib/components/AIToolbar/components/Markdown/copy-button.js.map +1 -0
- package/lib/components/AIToolbar/components/Markdown/index.d.ts +7 -0
- package/lib/components/AIToolbar/components/Markdown/index.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/Markdown/index.js +46 -0
- package/lib/components/AIToolbar/components/Markdown/index.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/AssistantAvatar.d.ts +24 -0
- package/lib/components/AIToolbar/components/completion/AssistantAvatar.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/AssistantAvatar.js +48 -0
- package/lib/components/AIToolbar/components/completion/AssistantAvatar.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/AssistantMessageActions.d.ts +28 -0
- package/lib/components/AIToolbar/components/completion/AssistantMessageActions.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/AssistantMessageActions.js +209 -0
- package/lib/components/AIToolbar/components/completion/AssistantMessageActions.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/AssistantSenderBadge.d.ts +15 -0
- package/lib/components/AIToolbar/components/completion/AssistantSenderBadge.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/Audio.d.ts +5 -0
- package/lib/components/AIToolbar/components/completion/Audio.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/Audio.js +67 -0
- package/lib/components/AIToolbar/components/completion/Audio.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/AutoSpeechVad.d.ts +11 -0
- package/lib/components/AIToolbar/components/completion/AutoSpeechVad.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/AutoSpeechVad.js +66 -0
- package/lib/components/AIToolbar/components/completion/AutoSpeechVad.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/CharacterPicker.d.ts +5 -0
- package/lib/components/AIToolbar/components/completion/CharacterPicker.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/CharacterPicker.js +93 -0
- package/lib/components/AIToolbar/components/completion/CharacterPicker.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/Files.d.ts +7 -0
- package/lib/components/AIToolbar/components/completion/Files.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/Files.js +166 -0
- package/lib/components/AIToolbar/components/completion/Files.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/Input.d.ts +6 -0
- package/lib/components/AIToolbar/components/completion/Input.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/Input.js +287 -0
- package/lib/components/AIToolbar/components/completion/Input.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/MessageHistory.d.ts +11 -0
- package/lib/components/AIToolbar/components/completion/MessageHistory.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/MessageHistory.js +131 -0
- package/lib/components/AIToolbar/components/completion/MessageHistory.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/Screenshot.d.ts +7 -0
- package/lib/components/AIToolbar/components/completion/Screenshot.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/Screenshot.js +30 -0
- package/lib/components/AIToolbar/components/completion/Screenshot.js.map +1 -0
- package/lib/components/AIToolbar/components/completion/index.d.ts +13 -0
- package/lib/components/AIToolbar/components/completion/index.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/completion/index.js +25 -0
- package/lib/components/AIToolbar/components/completion/index.js.map +1 -0
- package/lib/components/AIToolbar/components/index.d.ts +17 -0
- package/lib/components/AIToolbar/components/index.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/Header.d.ts +14 -0
- package/lib/components/AIToolbar/components/speech/Header.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/Header.js +82 -0
- package/lib/components/AIToolbar/components/speech/Header.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/MicrophoneDiagnostics.d.ts +2 -0
- package/lib/components/AIToolbar/components/speech/MicrophoneDiagnostics.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/MicrophoneDiagnostics.js +396 -0
- package/lib/components/AIToolbar/components/speech/MicrophoneDiagnostics.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/ModeSwitcher.d.ts +8 -0
- package/lib/components/AIToolbar/components/speech/ModeSwitcher.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/ModeSwitcher.js +44 -0
- package/lib/components/AIToolbar/components/speech/ModeSwitcher.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/PermissionFlow.d.ts +13 -0
- package/lib/components/AIToolbar/components/speech/PermissionFlow.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/PermissionFlow.js +168 -0
- package/lib/components/AIToolbar/components/speech/PermissionFlow.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/QuickActions.d.ts +13 -0
- package/lib/components/AIToolbar/components/speech/QuickActions.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/QuickActions.js +100 -0
- package/lib/components/AIToolbar/components/speech/QuickActions.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/RecordingPanel.d.ts +14 -0
- package/lib/components/AIToolbar/components/speech/RecordingPanel.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/RecordingPanel.js +101 -0
- package/lib/components/AIToolbar/components/speech/RecordingPanel.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/SettingsPanel.d.ts +14 -0
- package/lib/components/AIToolbar/components/speech/SettingsPanel.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/SettingsPanel.js +293 -0
- package/lib/components/AIToolbar/components/speech/SettingsPanel.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/StatusIndicator.d.ts +10 -0
- package/lib/components/AIToolbar/components/speech/StatusIndicator.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/StatusIndicator.js +48 -0
- package/lib/components/AIToolbar/components/speech/StatusIndicator.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/Warning.d.ts +6 -0
- package/lib/components/AIToolbar/components/speech/Warning.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/Warning.js +226 -0
- package/lib/components/AIToolbar/components/speech/Warning.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/audio-visualizer.d.ts +7 -0
- package/lib/components/AIToolbar/components/speech/audio-visualizer.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/audio-visualizer.js +194 -0
- package/lib/components/AIToolbar/components/speech/audio-visualizer.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/floatArrayToWav.d.ts +2 -0
- package/lib/components/AIToolbar/components/speech/floatArrayToWav.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/floatArrayToWav.js +32 -0
- package/lib/components/AIToolbar/components/speech/floatArrayToWav.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/index.d.ts +4 -0
- package/lib/components/AIToolbar/components/speech/index.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/index.js +276 -0
- package/lib/components/AIToolbar/components/speech/index.js.map +1 -0
- package/lib/components/AIToolbar/components/speech/promptTemplates.d.ts +12 -0
- package/lib/components/AIToolbar/components/speech/promptTemplates.d.ts.map +1 -0
- package/lib/components/AIToolbar/components/speech/promptTemplates.js +114 -0
- package/lib/components/AIToolbar/components/speech/promptTemplates.js.map +1 -0
- package/lib/components/AIToolbar/components/types.d.ts +194 -0
- package/lib/components/AIToolbar/components/types.d.ts.map +1 -0
- package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.d.ts +13 -0
- package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.d.ts.map +1 -0
- package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.js +6 -0
- package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.js.map +1 -0
- package/lib/components/AIToolbar/hooks/useActiveCharacter.d.ts +54 -0
- package/lib/components/AIToolbar/hooks/useActiveCharacter.d.ts.map +1 -0
- package/lib/components/AIToolbar/hooks/useActiveCharacter.js +359 -0
- package/lib/components/AIToolbar/hooks/useActiveCharacter.js.map +1 -0
- package/lib/components/AIToolbar/hooks/useCharacterSprite.d.ts +14 -0
- package/lib/components/AIToolbar/hooks/useCharacterSprite.d.ts.map +1 -0
- package/lib/components/AIToolbar/hooks/useCharacterSprite.js +103 -0
- package/lib/components/AIToolbar/hooks/useCharacterSprite.js.map +1 -0
- package/lib/components/AIToolbar/hooks/useChatBackgroundImage.d.ts +10 -0
- package/lib/components/AIToolbar/hooks/useChatBackgroundImage.d.ts.map +1 -0
- package/lib/components/AIToolbar/hooks/useChatBackgroundImage.js +126 -0
- package/lib/components/AIToolbar/hooks/useChatBackgroundImage.js.map +1 -0
- package/lib/components/AIToolbar/index.d.ts +8 -0
- package/lib/components/AIToolbar/index.d.ts.map +1 -0
- package/lib/components/AIToolbar/utils/emotionClassifier.d.ts +19 -0
- package/lib/components/AIToolbar/utils/emotionClassifier.d.ts.map +1 -0
- package/lib/components/AIToolbar/utils/emotionClassifier.js +142 -0
- package/lib/components/AIToolbar/utils/emotionClassifier.js.map +1 -0
- package/lib/components/Button/Button.d.ts +1 -1
- package/lib/components/Button/Button.d.ts.map +1 -1
- package/lib/components/Button/Button.js +7 -6
- package/lib/components/Button/Button.js.map +1 -1
- package/lib/components/CharacterSlotPicker/CharacterSlotPicker.d.ts +20 -0
- package/lib/components/CharacterSlotPicker/CharacterSlotPicker.d.ts.map +1 -0
- package/lib/components/CharacterSlotPicker/CharacterSlotPicker.js +249 -0
- package/lib/components/CharacterSlotPicker/CharacterSlotPicker.js.map +1 -0
- package/lib/components/CharacterSlotPicker/index.d.ts +3 -0
- package/lib/components/CharacterSlotPicker/index.d.ts.map +1 -0
- package/lib/components/DatePicker/DatePicker.js +158 -140
- package/lib/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/components/Dialog/Dialog.d.ts +20 -0
- package/lib/components/Dialog/Dialog.d.ts.map +1 -0
- package/lib/components/Dialog/Dialog.js +111 -0
- package/lib/components/Dialog/Dialog.js.map +1 -0
- package/lib/components/Dialog/index.d.ts +3 -0
- package/lib/components/Dialog/index.d.ts.map +1 -0
- package/lib/components/ErrorHandlers/ApplicationErrorHandler.d.ts +1 -2
- package/lib/components/ErrorHandlers/ApplicationErrorHandler.d.ts.map +1 -1
- package/lib/components/ErrorHandlers/ApplicationErrorHandler.js +2 -2
- package/lib/components/ErrorHandlers/ErrorBoundary.d.ts +1 -2
- package/lib/components/ErrorHandlers/ErrorBoundary.d.ts.map +1 -1
- package/lib/components/ErrorHandlers/ErrorBoundary.js +35 -28
- package/lib/components/ErrorHandlers/ErrorBoundary.js.map +1 -1
- package/lib/components/ErrorHandlers/LayoutErrorBoundary.d.ts +1 -2
- package/lib/components/ErrorHandlers/LayoutErrorBoundary.d.ts.map +1 -1
- package/lib/components/ErrorHandlers/LayoutErrorBoundary.js +20 -15
- package/lib/components/ErrorHandlers/LayoutErrorBoundary.js.map +1 -1
- package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts +4 -2
- package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts.map +1 -1
- package/lib/components/ErrorHandlers/RemixErrorBoundary.js +222 -100
- package/lib/components/ErrorHandlers/RemixErrorBoundary.js.map +1 -1
- package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts +4 -2
- package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts.map +1 -1
- package/lib/components/ErrorHandlers/SPAErrorBoundary.js +247 -82
- package/lib/components/ErrorHandlers/SPAErrorBoundary.js.map +1 -1
- package/lib/components/ErrorPages/403.d.ts +1 -2
- package/lib/components/ErrorPages/403.d.ts.map +1 -1
- package/lib/components/ErrorPages/403.js +26 -18
- package/lib/components/ErrorPages/403.js.map +1 -1
- package/lib/components/ErrorPages/404.d.ts +1 -2
- package/lib/components/ErrorPages/404.d.ts.map +1 -1
- package/lib/components/ErrorPages/404.js +26 -18
- package/lib/components/ErrorPages/404.js.map +1 -1
- package/lib/components/ErrorPages/500.d.ts +1 -2
- package/lib/components/ErrorPages/500.d.ts.map +1 -1
- package/lib/components/ErrorPages/500.js +26 -18
- package/lib/components/ErrorPages/500.js.map +1 -1
- package/lib/components/Inbox/Channels/ChannelBar.d.ts +33 -0
- package/lib/components/Inbox/Channels/ChannelBar.d.ts.map +1 -0
- package/lib/components/Inbox/Channels/ChannelBar.js +79 -0
- package/lib/components/Inbox/Channels/ChannelBar.js.map +1 -0
- package/lib/components/Inbox/Channels/ChannelConnectModal.d.ts +24 -0
- package/lib/components/Inbox/Channels/ChannelConnectModal.d.ts.map +1 -0
- package/lib/components/Inbox/Channels/ChannelConnectModal.js +177 -0
- package/lib/components/Inbox/Channels/ChannelConnectModal.js.map +1 -0
- package/lib/components/Inbox/Channels/channelsMeta.d.ts +16 -0
- package/lib/components/Inbox/Channels/channelsMeta.d.ts.map +1 -0
- package/lib/components/Inbox/Channels/channelsMeta.js +127 -0
- package/lib/components/Inbox/Channels/channelsMeta.js.map +1 -0
- package/lib/components/Inbox/Channels/index.d.ts +7 -0
- package/lib/components/Inbox/Channels/index.d.ts.map +1 -0
- package/lib/components/Inbox/index.d.ts +2 -0
- package/lib/components/Inbox/index.d.ts.map +1 -0
- package/lib/components/InputToolBar/InputToolBar.d.ts +8 -0
- package/lib/components/InputToolBar/InputToolBar.d.ts.map +1 -0
- package/lib/components/InputToolBar/InputToolBar.js +469 -0
- package/lib/components/InputToolBar/InputToolBar.js.map +1 -0
- package/lib/components/InputToolBar/defaults.d.ts +15 -0
- package/lib/components/InputToolBar/defaults.d.ts.map +1 -0
- package/lib/components/InputToolBar/defaults.js +59 -0
- package/lib/components/InputToolBar/defaults.js.map +1 -0
- package/lib/components/InputToolBar/index.d.ts +5 -0
- package/lib/components/InputToolBar/index.d.ts.map +1 -0
- package/lib/components/InputToolBar/types.d.ts +153 -0
- package/lib/components/InputToolBar/types.d.ts.map +1 -0
- package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts +1 -2
- package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts.map +1 -1
- package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js +24 -19
- package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js.map +1 -1
- package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts +13 -0
- package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts.map +1 -0
- package/lib/components/Markdown/MarkdownBreadcrumbs.js +34 -0
- package/lib/components/Markdown/MarkdownBreadcrumbs.js.map +1 -0
- package/lib/components/Markdown/MarkdownCopyButton.d.ts +10 -0
- package/lib/components/Markdown/MarkdownCopyButton.d.ts.map +1 -0
- package/lib/components/Markdown/MarkdownCopyButton.js +229 -0
- package/lib/components/Markdown/MarkdownCopyButton.js.map +1 -0
- package/lib/components/Markdown/MarkdownHeader.d.ts +13 -0
- package/lib/components/Markdown/MarkdownHeader.d.ts.map +1 -0
- package/lib/components/Markdown/MarkdownHeader.js +44 -0
- package/lib/components/Markdown/MarkdownHeader.js.map +1 -0
- package/lib/components/Markdown/MarkdownNavigation.d.ts +15 -0
- package/lib/components/Markdown/MarkdownNavigation.d.ts.map +1 -0
- package/lib/components/Markdown/MarkdownNavigation.js +38 -0
- package/lib/components/Markdown/MarkdownNavigation.js.map +1 -0
- package/lib/components/Markdown/MarkdownPage.d.ts +41 -0
- package/lib/components/Markdown/MarkdownPage.d.ts.map +1 -0
- package/lib/components/Markdown/MarkdownPage.js +238 -0
- package/lib/components/Markdown/MarkdownPage.js.map +1 -0
- package/lib/components/Markdown/MarkdownTableOfContents.d.ts +15 -0
- package/lib/components/Markdown/MarkdownTableOfContents.d.ts.map +1 -0
- package/lib/components/Markdown/MarkdownTableOfContents.js +57 -0
- package/lib/components/Markdown/MarkdownTableOfContents.js.map +1 -0
- package/lib/components/Markdown/index.d.ts +7 -0
- package/lib/components/Markdown/index.d.ts.map +1 -0
- package/lib/components/OTP/OTPInput.js +32 -30
- package/lib/components/OTP/OTPInput.js.map +1 -1
- package/lib/components/OTP/OTPVerification.js +75 -55
- package/lib/components/OTP/OTPVerification.js.map +1 -1
- package/lib/components/OTP/SingleInput.js +2 -2
- package/lib/components/OTP/SingleInput.js.map +1 -1
- package/lib/components/PageContainer/PageContainer.js +29 -22
- package/lib/components/PageContainer/PageContainer.js.map +1 -1
- package/lib/components/PageLoading/index.js +8 -7
- package/lib/components/PageLoading/index.js.map +1 -1
- package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts +1 -2
- package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts.map +1 -1
- package/lib/components/ReactTable/Table.d.ts +1 -2
- package/lib/components/ReactTable/Table.d.ts.map +1 -1
- package/lib/components/ReactTable/Table.js +92 -71
- package/lib/components/ReactTable/Table.js.map +1 -1
- package/lib/components/ReactTable/TableFilters.d.ts +2 -3
- package/lib/components/ReactTable/TableFilters.d.ts.map +1 -1
- package/lib/components/ReactTable/TableFilters.js +40 -34
- package/lib/components/ReactTable/TableFilters.js.map +1 -1
- package/lib/components/Search/SearchInput.d.ts +1 -2
- package/lib/components/Search/SearchInput.d.ts.map +1 -1
- package/lib/components/Search/SearchInput.js +14 -13
- package/lib/components/Search/SearchInput.js.map +1 -1
- package/lib/components/Select/Select.d.ts +6 -6
- package/lib/components/Select/Select.d.ts.map +1 -1
- package/lib/components/Select/Select.js +60 -45
- package/lib/components/Select/Select.js.map +1 -1
- package/lib/components/Spin/index.js +14 -11
- package/lib/components/Spin/index.js.map +1 -1
- package/lib/components/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/lib/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/lib/components/ThemeProvider/ThemeProvider.js +29 -17
- package/lib/components/ThemeProvider/ThemeProvider.js.map +1 -1
- package/lib/components/ThemeProvider/ThemeToggle.js +28 -25
- package/lib/components/ThemeProvider/ThemeToggle.js.map +1 -1
- package/lib/components/ThemeProvider/types.d.ts +3 -3
- package/lib/components/ThemeProvider/types.d.ts.map +1 -1
- package/lib/components/YantraIcon.d.ts +6 -0
- package/lib/components/YantraIcon.d.ts.map +1 -0
- package/lib/components/YantraIcon.js +32 -0
- package/lib/components/YantraIcon.js.map +1 -0
- package/lib/components/index.d.ts +8 -0
- package/lib/components/index.d.ts.map +1 -1
- package/lib/hooks/activeCharacterPreference.d.ts +25 -0
- package/lib/hooks/activeCharacterPreference.d.ts.map +1 -0
- package/lib/hooks/activeCharacterPreference.js +71 -0
- package/lib/hooks/activeCharacterPreference.js.map +1 -0
- package/lib/hooks/characterOverrides.d.ts +29 -0
- package/lib/hooks/characterOverrides.d.ts.map +1 -0
- package/lib/hooks/characterOverrides.js +130 -0
- package/lib/hooks/characterOverrides.js.map +1 -0
- package/lib/hooks/characterSlotsPreference.d.ts +33 -0
- package/lib/hooks/characterSlotsPreference.d.ts.map +1 -0
- package/lib/hooks/characterSlotsPreference.js +141 -0
- package/lib/hooks/characterSlotsPreference.js.map +1 -0
- package/lib/hooks/index.d.ts +4 -0
- package/lib/hooks/index.d.ts.map +1 -1
- package/lib/hooks/useGlobalShortcutBridge.d.ts +21 -0
- package/lib/hooks/useGlobalShortcutBridge.d.ts.map +1 -0
- package/lib/hooks/useGlobalShortcutBridge.js +68 -0
- package/lib/hooks/useGlobalShortcutBridge.js.map +1 -0
- package/lib/hooks/useToast.d.ts +1 -1
- package/lib/hooks/useToast.d.ts.map +1 -1
- package/lib/hooks/useToast.js +46 -37
- package/lib/hooks/useToast.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/shardui/accordion.js +20 -16
- package/lib/shardui/accordion.js.map +1 -1
- package/lib/shardui/alert-dialog.d.ts +2 -2
- package/lib/shardui/alert-dialog.js +15 -13
- package/lib/shardui/alert-dialog.js.map +1 -1
- package/lib/shardui/alert.js +4 -4
- package/lib/shardui/alert.js.map +1 -1
- package/lib/shardui/avatar.js +4 -4
- package/lib/shardui/avatar.js.map +1 -1
- package/lib/shardui/badge.d.ts +1 -1
- package/lib/shardui/badge.d.ts.map +1 -1
- package/lib/shardui/badge.js +2 -2
- package/lib/shardui/badge.js.map +1 -1
- package/lib/shardui/breadcrumb.d.ts +2 -2
- package/lib/shardui/breadcrumb.js +19 -16
- package/lib/shardui/breadcrumb.js.map +1 -1
- package/lib/shardui/button.js +2 -2
- package/lib/shardui/button.js.map +1 -1
- package/lib/shardui/calendar.d.ts +1 -1
- package/lib/shardui/calendar.d.ts.map +1 -1
- package/lib/shardui/calendar.js +4 -4
- package/lib/shardui/card.js +7 -7
- package/lib/shardui/card.js.map +1 -1
- package/lib/shardui/carousel.js +40 -33
- package/lib/shardui/carousel.js.map +1 -1
- package/lib/shardui/chart.d.ts +1 -1
- package/lib/shardui/chart.d.ts.map +1 -1
- package/lib/shardui/chart.js +81 -66
- package/lib/shardui/chart.js.map +1 -1
- package/lib/shardui/checkbox.js +10 -8
- package/lib/shardui/checkbox.js.map +1 -1
- package/lib/shardui/command.d.ts +3 -3
- package/lib/shardui/command.d.ts.map +1 -1
- package/lib/shardui/command.js +28 -24
- package/lib/shardui/command.js.map +1 -1
- package/lib/shardui/context-menu.d.ts +1 -1
- package/lib/shardui/context-menu.js +41 -30
- package/lib/shardui/context-menu.js.map +1 -1
- package/lib/shardui/dialog.d.ts +2 -2
- package/lib/shardui/dialog.js +22 -17
- package/lib/shardui/dialog.js.map +1 -1
- package/lib/shardui/drawer.d.ts +3 -3
- package/lib/shardui/drawer.js +17 -14
- package/lib/shardui/drawer.js.map +1 -1
- package/lib/shardui/dropdown-menu.d.ts +1 -1
- package/lib/shardui/dropdown-menu.js +42 -31
- package/lib/shardui/dropdown-menu.js.map +1 -1
- package/lib/shardui/form.d.ts +1 -1
- package/lib/shardui/form.d.ts.map +1 -1
- package/lib/shardui/form.js +22 -19
- package/lib/shardui/form.js.map +1 -1
- package/lib/shardui/hover-card.js +2 -2
- package/lib/shardui/hover-card.js.map +1 -1
- package/lib/shardui/input-otp.js +16 -13
- package/lib/shardui/input-otp.js.map +1 -1
- package/lib/shardui/input.js +2 -2
- package/lib/shardui/input.js.map +1 -1
- package/lib/shardui/label.js +2 -2
- package/lib/shardui/label.js.map +1 -1
- package/lib/shardui/menubar.d.ts +1 -1
- package/lib/shardui/menubar.js +46 -35
- package/lib/shardui/menubar.js.map +1 -1
- package/lib/shardui/navigation-menu.js +28 -24
- package/lib/shardui/navigation-menu.js.map +1 -1
- package/lib/shardui/pagination.d.ts +5 -5
- package/lib/shardui/pagination.js +30 -22
- package/lib/shardui/pagination.js.map +1 -1
- package/lib/shardui/popover.js +10 -8
- package/lib/shardui/popover.js.map +1 -1
- package/lib/shardui/progress.js +10 -9
- package/lib/shardui/progress.js.map +1 -1
- package/lib/shardui/radio-group.js +11 -9
- package/lib/shardui/radio-group.js.map +1 -1
- package/lib/shardui/resizable.d.ts +3 -3
- package/lib/shardui/resizable.d.ts.map +1 -1
- package/lib/shardui/resizable.js +11 -9
- package/lib/shardui/resizable.js.map +1 -1
- package/lib/shardui/scroll-area.js +14 -11
- package/lib/shardui/scroll-area.js.map +1 -1
- package/lib/shardui/select.js +49 -35
- package/lib/shardui/select.js.map +1 -1
- package/lib/shardui/separator.js +2 -2
- package/lib/shardui/separator.js.map +1 -1
- package/lib/shardui/sheet.d.ts +2 -2
- package/lib/shardui/sheet.js +24 -19
- package/lib/shardui/sheet.js.map +1 -1
- package/lib/shardui/sidebar.js +104 -88
- package/lib/shardui/sidebar.js.map +1 -1
- package/lib/shardui/skeleton.d.ts +1 -1
- package/lib/shardui/skeleton.d.ts.map +1 -1
- package/lib/shardui/skeleton.js +2 -2
- package/lib/shardui/skeleton.js.map +1 -1
- package/lib/shardui/slider.js +12 -10
- package/lib/shardui/slider.js.map +1 -1
- package/lib/shardui/sonner.d.ts +1 -1
- package/lib/shardui/sonner.d.ts.map +1 -1
- package/lib/shardui/sonner.js +2 -2
- package/lib/shardui/sonner.js.map +1 -1
- package/lib/shardui/switch.js +7 -6
- package/lib/shardui/switch.js.map +1 -1
- package/lib/shardui/table.js +16 -15
- package/lib/shardui/table.js.map +1 -1
- package/lib/shardui/tabs.js +4 -4
- package/lib/shardui/tabs.js.map +1 -1
- package/lib/shardui/textarea.js +2 -2
- package/lib/shardui/textarea.js.map +1 -1
- package/lib/shardui/toast.js +12 -11
- package/lib/shardui/toast.js.map +1 -1
- package/lib/shardui/toaster.d.ts +1 -2
- package/lib/shardui/toaster.d.ts.map +1 -1
- package/lib/shardui/toaster.js +21 -14
- package/lib/shardui/toaster.js.map +1 -1
- package/lib/shardui/toggle-group.js +15 -12
- package/lib/shardui/toggle-group.js.map +1 -1
- package/lib/shardui/toggle.js +2 -2
- package/lib/shardui/toggle.js.map +1 -1
- package/lib/shardui/tooltip.js +2 -2
- package/lib/shardui/tooltip.js.map +1 -1
- package/package.json +10 -4
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {PaperclipIcon,PlusIcon,XIcon,TrashIcon}from'lucide-react';import {useRef}from'react';import'../../../../shardui/accordion.js';import'../../../../shardui/alert.js';import'../../../../shardui/alert-dialog.js';import'@radix-ui/react-aspect-ratio';import'../../../../shardui/avatar.js';import'../../../../shardui/badge.js';import'../../../../shardui/breadcrumb.js';import {Button}from'../../../../shardui/button.js';import'../../../../shardui/calendar.js';import'../../../../shardui/card.js';import'../../../../shardui/carousel.js';import'../../../../shardui/chart.js';import'../../../../shardui/checkbox.js';import'@radix-ui/react-collapsible';import'../../../../shardui/command.js';import'../../../../shardui/context-menu.js';import'../../../../shardui/dialog.js';import'../../../../shardui/drawer.js';import'../../../../shardui/dropdown-menu.js';import'../../../../shardui/form.js';import'../../../../shardui/hover-card.js';import'../../../../shardui/input.js';import'../../../../shardui/input-otp.js';import'../../../../shardui/label.js';import'../../../../shardui/menubar.js';import'../../../../shardui/navigation-menu.js';import'../../../../shardui/pagination.js';import {Popover,PopoverTrigger,PopoverContent}from'../../../../shardui/popover.js';import'../../../../shardui/progress.js';import'../../../../shardui/radio-group.js';import'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import {cn}from'../../../../utils/util.js';import'fast-deep-equal/react.js';import {ScrollArea}from'../../../../shardui/scroll-area.js';import'../../../../shardui/select.js';import'../../../../shardui/separator.js';import'../../../../shardui/sheet.js';import'../../../../shardui/sidebar.js';import'../../../../shardui/slider.js';import'../../../ThemeProvider/ThemeProvider.js';import'sonner';import'../../../../shardui/switch.js';import'../../../../shardui/table.js';import'../../../../shardui/tabs.js';import'../../../../shardui/textarea.js';import'../../../../shardui/toast.js';import'../../../../shardui/toggle.js';import'../../../../shardui/toggle-group.js';import'../../../../shardui/tooltip.js';const DEFAULT_MAX_FILES = 10;
|
|
2
|
+
const FILE_ACCEPT = 'image/*,.txt,.md,.markdown,text/plain,text/markdown,text/x-markdown';
|
|
3
|
+
const IMAGE_FILE_EXTENSION = /\.(png|jpe?g|gif|webp)$/i;
|
|
4
|
+
function isImageFile(file) {
|
|
5
|
+
return (file.type?.startsWith('image/') ?? false) || IMAGE_FILE_EXTENSION.test(file.name);
|
|
6
|
+
}
|
|
7
|
+
function formatFileSize(size) {
|
|
8
|
+
if (typeof size !== 'number') {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return `${(size / 1024 / 1024).toFixed(2)} MB`;
|
|
12
|
+
}
|
|
13
|
+
function getMimeType(file) {
|
|
14
|
+
return file.type && file.type.includes('/') ? file.type : 'application/octet-stream';
|
|
15
|
+
}
|
|
16
|
+
function Files({
|
|
17
|
+
attachedFiles,
|
|
18
|
+
handleFileSelect,
|
|
19
|
+
removeFile,
|
|
20
|
+
onRemoveAllFiles,
|
|
21
|
+
isLoading,
|
|
22
|
+
isFilesPopoverOpen,
|
|
23
|
+
setIsFilesPopoverOpen,
|
|
24
|
+
supportsImages,
|
|
25
|
+
maxFiles = DEFAULT_MAX_FILES,
|
|
26
|
+
toolbarShowElementTitles
|
|
27
|
+
}) {
|
|
28
|
+
const fileInputRef = useRef(null);
|
|
29
|
+
const showTitles = toolbarShowElementTitles !== false;
|
|
30
|
+
const handleAddMoreClick = () => {
|
|
31
|
+
fileInputRef.current?.click();
|
|
32
|
+
};
|
|
33
|
+
const canAddMore = attachedFiles.length < maxFiles;
|
|
34
|
+
return jsxs("div", {
|
|
35
|
+
className: "relative",
|
|
36
|
+
children: [jsxs(Popover, {
|
|
37
|
+
open: isFilesPopoverOpen,
|
|
38
|
+
onOpenChange: setIsFilesPopoverOpen,
|
|
39
|
+
children: [jsx(PopoverTrigger, {
|
|
40
|
+
asChild: true,
|
|
41
|
+
children: jsx(Button, {
|
|
42
|
+
size: "icon",
|
|
43
|
+
disabled: isLoading || supportsImages === false,
|
|
44
|
+
className: "cursor-pointer",
|
|
45
|
+
title: showTitles ? supportsImages !== false ? 'Attach files' : 'File upload not supported by current AI provider' : undefined,
|
|
46
|
+
children: jsx(PaperclipIcon, {
|
|
47
|
+
className: "h-4 w-4"
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
}), attachedFiles.length > 0 && jsx("div", {
|
|
51
|
+
className: "absolute -top-2 -right-2 bg-primary-foreground text-primary rounded-full h-5 w-5 flex border border-primary items-center justify-center text-xs font-medium",
|
|
52
|
+
children: attachedFiles.length
|
|
53
|
+
}), jsx(PopoverContent, {
|
|
54
|
+
align: "end",
|
|
55
|
+
side: "bottom",
|
|
56
|
+
className: cn('z-[200] max-h-[min(85vh,calc(100vh-2rem))] flex flex-col p-0 border shadow-lg overflow-hidden', attachedFiles.length > 0 ? 'w-[min(100vw,36rem)]' : 'w-80'),
|
|
57
|
+
sideOffset: 8,
|
|
58
|
+
children: attachedFiles.length === 0 ? jsxs("div", {
|
|
59
|
+
className: "p-4 space-y-3",
|
|
60
|
+
children: [jsx("p", {
|
|
61
|
+
className: "text-sm text-muted-foreground",
|
|
62
|
+
children: "No files attached yet. Choose files to add them to your message."
|
|
63
|
+
}), jsxs(Button, {
|
|
64
|
+
type: "button",
|
|
65
|
+
className: "w-full",
|
|
66
|
+
variant: "outline",
|
|
67
|
+
disabled: isLoading || supportsImages === false,
|
|
68
|
+
onClick: () => fileInputRef.current?.click(),
|
|
69
|
+
children: [jsx(PlusIcon, {
|
|
70
|
+
className: "h-4 w-4 mr-2"
|
|
71
|
+
}), "Choose files"]
|
|
72
|
+
})]
|
|
73
|
+
}) : jsxs(Fragment, {
|
|
74
|
+
children: [jsxs("div", {
|
|
75
|
+
className: "flex items-center justify-between px-4 py-2 border-b bg-muted/30 shrink-0",
|
|
76
|
+
children: [jsxs("h3", {
|
|
77
|
+
className: "font-semibold text-sm select-none",
|
|
78
|
+
children: ["Attached Files (", attachedFiles.length, "/", maxFiles, ")"]
|
|
79
|
+
}), jsx(Button, {
|
|
80
|
+
size: "icon",
|
|
81
|
+
variant: "ghost",
|
|
82
|
+
onClick: () => setIsFilesPopoverOpen(false),
|
|
83
|
+
className: "cursor-pointer",
|
|
84
|
+
title: showTitles ? 'Close' : undefined,
|
|
85
|
+
children: jsx(XIcon, {
|
|
86
|
+
className: "h-4 w-4"
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
}), jsx(ScrollArea, {
|
|
90
|
+
className: "p-4 min-h-0 flex-1 max-h-[min(32rem,calc(85vh-10rem))]",
|
|
91
|
+
children: jsx("div", {
|
|
92
|
+
className: `gap-3 ${attachedFiles.length <= 2 ? 'flex flex-col' : 'grid grid-cols-2'}`,
|
|
93
|
+
children: attachedFiles.map(file => {
|
|
94
|
+
const imageFile = isImageFile(file);
|
|
95
|
+
const sizeLabel = formatFileSize(file.size);
|
|
96
|
+
const mimeType = getMimeType(file);
|
|
97
|
+
return jsxs("div", {
|
|
98
|
+
className: "relative group border rounded-lg overflow-hidden bg-muted/20 min-h-[8rem]",
|
|
99
|
+
children: [imageFile && file.base64 ? jsx("img", {
|
|
100
|
+
src: `data:${mimeType};base64,${file.base64}`,
|
|
101
|
+
alt: file.name,
|
|
102
|
+
className: "w-full object-cover max-h-64"
|
|
103
|
+
}) : jsxs("div", {
|
|
104
|
+
className: "flex min-h-32 flex-col items-center justify-center gap-2 p-4 text-center",
|
|
105
|
+
children: [jsx(PaperclipIcon, {
|
|
106
|
+
className: "h-8 w-8 text-muted-foreground"
|
|
107
|
+
}), jsx("div", {
|
|
108
|
+
className: "max-w-full truncate text-sm font-medium",
|
|
109
|
+
children: file.name
|
|
110
|
+
}), sizeLabel ? jsx("div", {
|
|
111
|
+
className: "text-xs text-muted-foreground",
|
|
112
|
+
children: sizeLabel
|
|
113
|
+
}) : null]
|
|
114
|
+
}), imageFile ? jsxs("div", {
|
|
115
|
+
className: "absolute bottom-0 left-0 right-0 bg-black/70 text-white p-2 text-xs",
|
|
116
|
+
children: [jsx("div", {
|
|
117
|
+
className: "truncate font-medium",
|
|
118
|
+
children: file.name
|
|
119
|
+
}), sizeLabel ? jsx("div", {
|
|
120
|
+
className: "text-gray-300",
|
|
121
|
+
children: sizeLabel
|
|
122
|
+
}) : null]
|
|
123
|
+
}) : null, jsx(Button, {
|
|
124
|
+
size: "icon",
|
|
125
|
+
variant: "default",
|
|
126
|
+
className: "absolute top-2 right-2 h-6 w-6 cursor-pointer",
|
|
127
|
+
onClick: () => removeFile(file.id),
|
|
128
|
+
title: showTitles ? 'Remove file' : undefined,
|
|
129
|
+
children: jsx(XIcon, {
|
|
130
|
+
className: "h-3 w-3"
|
|
131
|
+
})
|
|
132
|
+
})]
|
|
133
|
+
}, file.id);
|
|
134
|
+
})
|
|
135
|
+
})
|
|
136
|
+
}), jsxs("div", {
|
|
137
|
+
className: "shrink-0 border-t bg-background p-3 flex flex-row gap-2",
|
|
138
|
+
children: [jsxs(Button, {
|
|
139
|
+
onClick: handleAddMoreClick,
|
|
140
|
+
disabled: !canAddMore || isLoading,
|
|
141
|
+
className: "w-2/4",
|
|
142
|
+
variant: "outline",
|
|
143
|
+
children: [jsx(PlusIcon, {
|
|
144
|
+
className: "h-4 w-4 mr-2"
|
|
145
|
+
}), "Add More Files ", !canAddMore && `(${maxFiles} max)`]
|
|
146
|
+
}), jsxs(Button, {
|
|
147
|
+
className: "w-2/4",
|
|
148
|
+
variant: "destructive",
|
|
149
|
+
onClick: onRemoveAllFiles,
|
|
150
|
+
children: [jsx(TrashIcon, {
|
|
151
|
+
className: "h-4 w-4 mr-2"
|
|
152
|
+
}), "Remove All Files"]
|
|
153
|
+
})]
|
|
154
|
+
})]
|
|
155
|
+
})
|
|
156
|
+
})]
|
|
157
|
+
}), jsx("input", {
|
|
158
|
+
ref: fileInputRef,
|
|
159
|
+
type: "file",
|
|
160
|
+
multiple: true,
|
|
161
|
+
accept: FILE_ACCEPT,
|
|
162
|
+
onChange: handleFileSelect,
|
|
163
|
+
className: "hidden"
|
|
164
|
+
})]
|
|
165
|
+
});
|
|
166
|
+
}export{Files};//# sourceMappingURL=Files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Files.js","sources":["../../../../../src/components/AIToolbar/components/completion/Files.tsx"],"sourcesContent":[null],"names":[],"mappings":"6nEAyCC,iBAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { UseCompletionReturn } from '../types';
|
|
2
|
+
export declare const Input: ({ isPopoverOpen, isLoading, reset, input, setInput, handleKeyPress, handlePaste, currentConversationId, conversationHistory, startNewConversation, messageHistoryOpen, setMessageHistoryOpen, error, response, cancel, scrollAreaRef, inputRef, isHidden, keepEngaged, setKeepEngaged, regenerateAssistantMessage, toolbarShowElementTitles, }: UseCompletionReturn & {
|
|
3
|
+
isHidden: boolean;
|
|
4
|
+
toolbarShowElementTitles?: boolean;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=Input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/completion/Input.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAQ/C,eAAO,MAAM,KAAK,GAAI,gVAuBnB,mBAAmB,GAAG;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACtC,4CAgUA,CAAC"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useRef,useMemo,useLayoutEffect}from'react';import {AIToolbarInputSurface}from'../AIToolbarPrimitives.js';import {XIcon,Loader2}from'lucide-react';import'../../../../shardui/accordion.js';import'../../../../shardui/alert.js';import'../../../../shardui/alert-dialog.js';import'@radix-ui/react-aspect-ratio';import'../../../../shardui/avatar.js';import'../../../../shardui/badge.js';import'../../../../shardui/breadcrumb.js';import {Button}from'../../../../shardui/button.js';import'../../../../shardui/calendar.js';import'../../../../shardui/card.js';import'../../../../shardui/carousel.js';import'../../../../shardui/chart.js';import'../../../../shardui/checkbox.js';import'@radix-ui/react-collapsible';import'../../../../shardui/command.js';import'../../../../shardui/context-menu.js';import'../../../../shardui/dialog.js';import'../../../../shardui/drawer.js';import'../../../../shardui/dropdown-menu.js';import'../../../../shardui/form.js';import'../../../../shardui/hover-card.js';import {Input as Input$1}from'../../../../shardui/input.js';import'../../../../shardui/input-otp.js';import'../../../../shardui/label.js';import'../../../../shardui/menubar.js';import'../../../../shardui/navigation-menu.js';import'../../../../shardui/pagination.js';import {Popover,PopoverContent,PopoverTrigger}from'../../../../shardui/popover.js';import'../../../../shardui/progress.js';import'../../../../shardui/radio-group.js';import'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import {cn}from'../../../../utils/util.js';import'fast-deep-equal/react.js';import'../../../../shardui/scroll-area.js';import'../../../../shardui/select.js';import'../../../../shardui/separator.js';import'../../../../shardui/sheet.js';import'../../../../shardui/sidebar.js';import'../../../../shardui/slider.js';import'../../../ThemeProvider/ThemeProvider.js';import'sonner';import {Switch}from'../../../../shardui/switch.js';import'../../../../shardui/table.js';import'../../../../shardui/tabs.js';import'../../../../shardui/textarea.js';import'../../../../shardui/toast.js';import'../../../../shardui/toggle.js';import'../../../../shardui/toggle-group.js';import'../../../../shardui/tooltip.js';import {Markdown}from'../Markdown/index.js';import {AssistantMessageActions}from'./AssistantMessageActions.js';import {CopyButton}from'../Markdown/copy-button.js';import {MessageHistory}from'./MessageHistory.js';import {useActiveCharacter}from'../../hooks/useActiveCharacter.js';import {useChatBackgroundImage}from'../../hooks/useChatBackgroundImage.js';import {AssistantAvatar}from'./AssistantAvatar.js';import {CharacterPicker}from'./CharacterPicker.js';const Input = ({
|
|
2
|
+
isPopoverOpen,
|
|
3
|
+
isLoading,
|
|
4
|
+
reset,
|
|
5
|
+
input,
|
|
6
|
+
setInput,
|
|
7
|
+
handleKeyPress,
|
|
8
|
+
handlePaste,
|
|
9
|
+
currentConversationId,
|
|
10
|
+
conversationHistory,
|
|
11
|
+
startNewConversation,
|
|
12
|
+
messageHistoryOpen,
|
|
13
|
+
setMessageHistoryOpen,
|
|
14
|
+
error,
|
|
15
|
+
response,
|
|
16
|
+
cancel,
|
|
17
|
+
scrollAreaRef,
|
|
18
|
+
inputRef,
|
|
19
|
+
isHidden,
|
|
20
|
+
keepEngaged,
|
|
21
|
+
setKeepEngaged,
|
|
22
|
+
regenerateAssistantMessage,
|
|
23
|
+
toolbarShowElementTitles
|
|
24
|
+
}) => {
|
|
25
|
+
const showTitles = toolbarShowElementTitles !== false;
|
|
26
|
+
const conversationEndRef = useRef(null);
|
|
27
|
+
const character = useActiveCharacter();
|
|
28
|
+
const assistantName = character?.name ?? 'AI';
|
|
29
|
+
const chatBgImage = useChatBackgroundImage();
|
|
30
|
+
const sortedAsc = useMemo(() => [...conversationHistory].sort((a, b) => (a.timestamp ?? 0) - (b.timestamp ?? 0)), [conversationHistory]);
|
|
31
|
+
/** In-flight assistant bubble: hide when history already contains the same assistant text (avoids double render if `response` lingers). */
|
|
32
|
+
const streamingAssistantVisible = useMemo(() => {
|
|
33
|
+
if (isLoading) return true;
|
|
34
|
+
if (!response) return false;
|
|
35
|
+
const last = sortedAsc[sortedAsc.length - 1];
|
|
36
|
+
if (last?.role === 'assistant' && last.content === response) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}, [isLoading, response, sortedAsc]);
|
|
41
|
+
/** Keep the latest assistant stream and new turns in view inside the popover scroll viewport. */
|
|
42
|
+
useLayoutEffect(() => {
|
|
43
|
+
if (!isPopoverOpen) return;
|
|
44
|
+
const anchor = conversationEndRef.current;
|
|
45
|
+
if (!anchor || !scrollAreaRef.current) return;
|
|
46
|
+
const scrollToEnd = () => {
|
|
47
|
+
anchor.scrollIntoView({
|
|
48
|
+
block: 'end',
|
|
49
|
+
behavior: 'auto',
|
|
50
|
+
inline: 'nearest'
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const outer = requestAnimationFrame(() => {
|
|
54
|
+
requestAnimationFrame(scrollToEnd);
|
|
55
|
+
});
|
|
56
|
+
return () => cancelAnimationFrame(outer);
|
|
57
|
+
}, [isPopoverOpen, sortedAsc, response, isLoading, error, streamingAssistantVisible]);
|
|
58
|
+
const copyPayload = useMemo(() => {
|
|
59
|
+
const lines = sortedAsc.map(m => m.role === 'user' ? `You:\n${m.content}` : `${assistantName}:\n${m.content}`);
|
|
60
|
+
const last = sortedAsc[sortedAsc.length - 1];
|
|
61
|
+
if (response && !(last?.role === 'assistant' && last.content === response)) {
|
|
62
|
+
lines.push(`${assistantName}:\n${response}`);
|
|
63
|
+
}
|
|
64
|
+
return lines.join('\n\n');
|
|
65
|
+
}, [sortedAsc, response, assistantName]);
|
|
66
|
+
return jsx("div", {
|
|
67
|
+
className: "relative flex-1",
|
|
68
|
+
children: jsxs(Popover, {
|
|
69
|
+
open: isPopoverOpen,
|
|
70
|
+
onOpenChange: open => {
|
|
71
|
+
if (!open && !isLoading && !keepEngaged) {
|
|
72
|
+
reset();
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
children: [jsxs(PopoverContent, {
|
|
76
|
+
align: "center",
|
|
77
|
+
side: "top",
|
|
78
|
+
sideOffset: 8,
|
|
79
|
+
collisionPadding: {
|
|
80
|
+
top: 8,
|
|
81
|
+
bottom: 8,
|
|
82
|
+
left: 8,
|
|
83
|
+
right: 8
|
|
84
|
+
},
|
|
85
|
+
className: cn('relative z-[200] flex h-[min(90vh,calc(100dvh-1rem))] flex-col overflow-hidden border p-0 text-popover-foreground shadow-lg',
|
|
86
|
+
// Solid base when no wallpaper; translucent so the wallpaper bleeds through when one is selected.
|
|
87
|
+
chatBgImage ? 'bg-popover/70' : 'bg-popover', 'w-[calc(100vw-16px)] max-w-[760px] min-w-0 rounded-md'),
|
|
88
|
+
children: [chatBgImage ? jsxs(Fragment, {
|
|
89
|
+
children: [jsx("div", {
|
|
90
|
+
"aria-hidden": true,
|
|
91
|
+
className: "pointer-events-none absolute inset-0 bg-cover bg-center",
|
|
92
|
+
style: {
|
|
93
|
+
backgroundImage: `url(${chatBgImage})`
|
|
94
|
+
}
|
|
95
|
+
}), jsx("div", {
|
|
96
|
+
"aria-hidden": true,
|
|
97
|
+
className: "pointer-events-none absolute inset-0 bg-background/30 backdrop-blur-[2px]"
|
|
98
|
+
})]
|
|
99
|
+
}) : null, jsxs("div", {
|
|
100
|
+
className: "relative z-10 flex shrink-0 items-center justify-between border-b bg-muted/30 px-4 py-2",
|
|
101
|
+
children: [jsxs("div", {
|
|
102
|
+
className: "flex flex-row items-center gap-2",
|
|
103
|
+
children: [jsx("h3", {
|
|
104
|
+
className: "select-none text-xs font-semibold",
|
|
105
|
+
children: keepEngaged ? 'Conversation Mode' : 'AI Response'
|
|
106
|
+
}), jsx(CharacterPicker, {
|
|
107
|
+
toolbarShowElementTitles: showTitles
|
|
108
|
+
}), jsx("div", {
|
|
109
|
+
className: "text-[10px] text-muted-foreground/70",
|
|
110
|
+
children: "(Use arrow keys to scroll)"
|
|
111
|
+
})]
|
|
112
|
+
}), jsxs("div", {
|
|
113
|
+
className: "flex select-none items-center gap-2",
|
|
114
|
+
children: [jsxs("div", {
|
|
115
|
+
className: "mr-2 flex flex-row items-center gap-2",
|
|
116
|
+
children: [jsx("p", {
|
|
117
|
+
className: "text-[10px]",
|
|
118
|
+
children: `Toggle ${keepEngaged ? 'AI response' : 'conversation mode'}`
|
|
119
|
+
}), jsxs("span", {
|
|
120
|
+
className: "rounded border border-input/50 bg-muted/30 px-1 py-0 text-[10px] text-muted-foreground/60",
|
|
121
|
+
children: [navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl', " + K"]
|
|
122
|
+
}), jsx(Switch, {
|
|
123
|
+
checked: keepEngaged,
|
|
124
|
+
onCheckedChange: checked => {
|
|
125
|
+
setKeepEngaged(checked);
|
|
126
|
+
setTimeout(() => {
|
|
127
|
+
inputRef?.current?.focus();
|
|
128
|
+
}, 100);
|
|
129
|
+
}
|
|
130
|
+
})]
|
|
131
|
+
}), jsx(CopyButton, {
|
|
132
|
+
content: copyPayload
|
|
133
|
+
}), jsx(Button, {
|
|
134
|
+
size: "icon",
|
|
135
|
+
variant: "ghost",
|
|
136
|
+
onClick: () => {
|
|
137
|
+
if (isLoading) {
|
|
138
|
+
cancel();
|
|
139
|
+
} else if (keepEngaged) {
|
|
140
|
+
setKeepEngaged(false);
|
|
141
|
+
startNewConversation();
|
|
142
|
+
} else {
|
|
143
|
+
reset();
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
className: "cursor-pointer",
|
|
147
|
+
title: showTitles ? isLoading ? 'Cancel loading' : keepEngaged ? 'Close and start new conversation' : 'Clear conversation' : undefined,
|
|
148
|
+
children: jsx(XIcon, {})
|
|
149
|
+
})]
|
|
150
|
+
})]
|
|
151
|
+
}), jsx("div", {
|
|
152
|
+
ref: scrollAreaRef,
|
|
153
|
+
className: cn('relative z-10 min-h-0 flex-1 basis-0 overflow-x-hidden overflow-y-scroll overscroll-contain', 'pr-1 [scrollbar-gutter:stable]'),
|
|
154
|
+
children: jsxs("div", {
|
|
155
|
+
className: "space-y-3 p-4 pb-8",
|
|
156
|
+
children: [error ? jsxs("div", {
|
|
157
|
+
className: "rounded border border-destructive/20 bg-destructive/10 p-3 text-sm text-destructive",
|
|
158
|
+
children: [jsx("strong", {
|
|
159
|
+
children: "Error:"
|
|
160
|
+
}), " ", error]
|
|
161
|
+
}) : null, sortedAsc.map((msg, idx) => jsx("div", {
|
|
162
|
+
className: cn('flex w-full gap-2', msg.role === 'user' ? 'justify-end' : 'justify-start'),
|
|
163
|
+
children: jsx("div", {
|
|
164
|
+
className: cn('rounded-xl px-3 py-2 text-sm shadow-sm', msg.role === 'user' ? 'max-w-[min(100%,40rem)] border border-border/60 bg-muted/70 text-foreground' : 'min-w-0 max-w-full flex-1 border border-border/60 bg-muted/70'),
|
|
165
|
+
children: msg.role === 'user' ? jsxs(Fragment, {
|
|
166
|
+
children: [jsxs("div", {
|
|
167
|
+
className: "mb-1.5 flex items-center gap-2",
|
|
168
|
+
children: [jsx("span", {
|
|
169
|
+
className: "text-[10px] font-semibold uppercase text-muted-foreground",
|
|
170
|
+
children: "You"
|
|
171
|
+
}), jsx("span", {
|
|
172
|
+
className: "text-[11px] text-muted-foreground",
|
|
173
|
+
children: new Date(msg.timestamp).toLocaleTimeString([], {
|
|
174
|
+
hour: '2-digit',
|
|
175
|
+
minute: '2-digit'
|
|
176
|
+
})
|
|
177
|
+
})]
|
|
178
|
+
}), jsx(Markdown, {
|
|
179
|
+
children: msg.content
|
|
180
|
+
})]
|
|
181
|
+
}) : jsxs("div", {
|
|
182
|
+
className: "flex w-full gap-3",
|
|
183
|
+
children: [jsx(AssistantAvatar, {
|
|
184
|
+
avatarSrc: character?.avatarSrc ?? null,
|
|
185
|
+
index: idx + 1,
|
|
186
|
+
characterFileName: character?.fileName ?? null,
|
|
187
|
+
text: msg.content
|
|
188
|
+
}), jsxs("div", {
|
|
189
|
+
className: "min-w-0 flex-1",
|
|
190
|
+
children: [jsxs("div", {
|
|
191
|
+
className: "mb-1 flex items-baseline gap-2",
|
|
192
|
+
children: [jsx("span", {
|
|
193
|
+
className: "text-sm font-semibold text-foreground",
|
|
194
|
+
children: assistantName
|
|
195
|
+
}), jsx("span", {
|
|
196
|
+
className: "text-[11px] text-muted-foreground",
|
|
197
|
+
children: new Date(msg.timestamp).toLocaleTimeString([], {
|
|
198
|
+
hour: '2-digit',
|
|
199
|
+
minute: '2-digit'
|
|
200
|
+
})
|
|
201
|
+
})]
|
|
202
|
+
}), jsx(Markdown, {
|
|
203
|
+
children: msg.content
|
|
204
|
+
}), jsx(AssistantMessageActions, {
|
|
205
|
+
messageId: msg.id,
|
|
206
|
+
content: msg.content,
|
|
207
|
+
onRegenerate: regenerateAssistantMessage ? id => void regenerateAssistantMessage(id) : undefined
|
|
208
|
+
})]
|
|
209
|
+
})]
|
|
210
|
+
})
|
|
211
|
+
})
|
|
212
|
+
}, msg.id)), streamingAssistantVisible ? jsx("div", {
|
|
213
|
+
className: "flex w-full justify-start",
|
|
214
|
+
children: jsx("div", {
|
|
215
|
+
className: "w-full min-w-0 max-w-full rounded-xl border border-border/60 bg-muted/70 px-3 py-2 text-sm shadow-sm",
|
|
216
|
+
children: jsxs("div", {
|
|
217
|
+
className: "flex w-full gap-3",
|
|
218
|
+
children: [jsx(AssistantAvatar, {
|
|
219
|
+
avatarSrc: character?.avatarSrc ?? null,
|
|
220
|
+
index: sortedAsc.length + 1,
|
|
221
|
+
characterFileName: character?.fileName ?? null,
|
|
222
|
+
text: response
|
|
223
|
+
}), jsxs("div", {
|
|
224
|
+
className: "min-w-0 flex-1",
|
|
225
|
+
children: [jsxs("div", {
|
|
226
|
+
className: "mb-1 flex items-baseline gap-2",
|
|
227
|
+
children: [jsx("span", {
|
|
228
|
+
className: "text-sm font-semibold text-foreground",
|
|
229
|
+
children: assistantName
|
|
230
|
+
}), isLoading && !response ? jsx(Loader2, {
|
|
231
|
+
className: "h-3.5 w-3.5 animate-spin text-muted-foreground"
|
|
232
|
+
}) : null]
|
|
233
|
+
}), response ? jsx(Markdown, {
|
|
234
|
+
children: response
|
|
235
|
+
}) : isLoading ? jsx("p", {
|
|
236
|
+
className: "text-sm text-muted-foreground",
|
|
237
|
+
children: "Generating response\u2026"
|
|
238
|
+
}) : null, response ? jsx(AssistantMessageActions, {
|
|
239
|
+
messageId: "streaming",
|
|
240
|
+
content: response,
|
|
241
|
+
visibility: {
|
|
242
|
+
regenerate: false
|
|
243
|
+
}
|
|
244
|
+
}) : null]
|
|
245
|
+
})]
|
|
246
|
+
})
|
|
247
|
+
})
|
|
248
|
+
}) : null, jsx("div", {
|
|
249
|
+
ref: conversationEndRef,
|
|
250
|
+
className: "h-0 w-full shrink-0",
|
|
251
|
+
"aria-hidden": true
|
|
252
|
+
})]
|
|
253
|
+
})
|
|
254
|
+
})]
|
|
255
|
+
}), jsx(PopoverTrigger, {
|
|
256
|
+
asChild: true,
|
|
257
|
+
children: jsxs(AIToolbarInputSurface, {
|
|
258
|
+
className: "relative select-none",
|
|
259
|
+
children: [jsx(Input$1, {
|
|
260
|
+
ref: inputRef,
|
|
261
|
+
placeholder: "Ask me anything...",
|
|
262
|
+
value: input,
|
|
263
|
+
onChange: e => setInput(e.target.value),
|
|
264
|
+
onKeyPress: handleKeyPress,
|
|
265
|
+
onPaste: handlePaste,
|
|
266
|
+
disabled: isLoading || isHidden,
|
|
267
|
+
className: cn('h-9 flex-1 border-0 bg-transparent shadow-none outline-none ring-0 ring-offset-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent', currentConversationId && conversationHistory.length > 0 ? 'pr-14' : isLoading ? 'pr-10' : isHidden ? 'pr-2' : 'pr-10')
|
|
268
|
+
}), currentConversationId && conversationHistory.length > 0 && !isLoading ? jsx("div", {
|
|
269
|
+
className: "absolute right-1 top-1/2 flex -translate-y-1/2 select-none items-center gap-1",
|
|
270
|
+
children: jsx(MessageHistory, {
|
|
271
|
+
conversationHistory: conversationHistory,
|
|
272
|
+
currentConversationId: currentConversationId,
|
|
273
|
+
onStartNewConversation: startNewConversation,
|
|
274
|
+
messageHistoryOpen: messageHistoryOpen,
|
|
275
|
+
setMessageHistoryOpen: setMessageHistoryOpen
|
|
276
|
+
})
|
|
277
|
+
}) : null, isLoading ? jsx("div", {
|
|
278
|
+
className: "absolute right-3 top-1/2 -translate-y-1/2 animate-pulse",
|
|
279
|
+
children: jsx(Loader2, {
|
|
280
|
+
className: "h-4 w-4 animate-spin text-muted-foreground"
|
|
281
|
+
})
|
|
282
|
+
}) : null]
|
|
283
|
+
})
|
|
284
|
+
})]
|
|
285
|
+
})
|
|
286
|
+
});
|
|
287
|
+
};export{Input};//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ChatMessage } from '../types';
|
|
2
|
+
interface MessageHistoryProps {
|
|
3
|
+
conversationHistory: ChatMessage[];
|
|
4
|
+
currentConversationId: string | null;
|
|
5
|
+
onStartNewConversation: () => void;
|
|
6
|
+
messageHistoryOpen: boolean;
|
|
7
|
+
setMessageHistoryOpen: (open: boolean) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const MessageHistory: ({ conversationHistory, onStartNewConversation, messageHistoryOpen, setMessageHistoryOpen, }: MessageHistoryProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=MessageHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageHistory.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/completion/MessageHistory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,UAAU,mBAAmB;IACzB,mBAAmB,EAAE,WAAW,EAAE,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,cAAc,GAAI,6FAK5B,mBAAmB,4CAyIrB,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {MessageSquareText,ChevronUp,ChevronDown}from'lucide-react';import'../../../../shardui/accordion.js';import'../../../../shardui/alert.js';import'../../../../shardui/alert-dialog.js';import'@radix-ui/react-aspect-ratio';import'../../../../shardui/avatar.js';import'../../../../shardui/badge.js';import'../../../../shardui/breadcrumb.js';import {Button}from'../../../../shardui/button.js';import'../../../../shardui/calendar.js';import'../../../../shardui/card.js';import'../../../../shardui/carousel.js';import'../../../../shardui/chart.js';import'../../../../shardui/checkbox.js';import'@radix-ui/react-collapsible';import'../../../../shardui/command.js';import'../../../../shardui/context-menu.js';import'../../../../shardui/dialog.js';import'../../../../shardui/drawer.js';import'../../../../shardui/dropdown-menu.js';import'../../../../shardui/form.js';import'../../../../shardui/hover-card.js';import'../../../../shardui/input.js';import'../../../../shardui/input-otp.js';import'../../../../shardui/label.js';import'../../../../shardui/menubar.js';import'../../../../shardui/navigation-menu.js';import'../../../../shardui/pagination.js';import {Popover,PopoverTrigger,PopoverContent}from'../../../../shardui/popover.js';import'../../../../shardui/progress.js';import'../../../../shardui/radio-group.js';import'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import'clsx';import'tailwind-merge';import'react';import'fast-deep-equal/react.js';import {ScrollArea}from'../../../../shardui/scroll-area.js';import'../../../../shardui/select.js';import'../../../../shardui/separator.js';import'../../../../shardui/sheet.js';import'../../../../shardui/sidebar.js';import'../../../../shardui/slider.js';import'../../../ThemeProvider/ThemeProvider.js';import'sonner';import'../../../../shardui/switch.js';import'../../../../shardui/table.js';import'../../../../shardui/tabs.js';import'../../../../shardui/textarea.js';import'../../../../shardui/toast.js';import'../../../../shardui/toggle.js';import'../../../../shardui/toggle-group.js';import'../../../../shardui/tooltip.js';import {Markdown}from'../Markdown/index.js';import {useActiveCharacter}from'../../hooks/useActiveCharacter.js';import {useChatBackgroundImage}from'../../hooks/useChatBackgroundImage.js';import {AssistantAvatar}from'./AssistantAvatar.js';const MessageHistory = ({
|
|
2
|
+
conversationHistory,
|
|
3
|
+
onStartNewConversation,
|
|
4
|
+
messageHistoryOpen,
|
|
5
|
+
setMessageHistoryOpen
|
|
6
|
+
}) => {
|
|
7
|
+
const character = useActiveCharacter();
|
|
8
|
+
const assistantName = character?.name ?? 'AI';
|
|
9
|
+
const chatBgImage = useChatBackgroundImage();
|
|
10
|
+
return jsxs(Popover, {
|
|
11
|
+
open: messageHistoryOpen,
|
|
12
|
+
onOpenChange: setMessageHistoryOpen,
|
|
13
|
+
children: [jsx(PopoverTrigger, {
|
|
14
|
+
asChild: true,
|
|
15
|
+
children: jsxs(Button, {
|
|
16
|
+
size: "icon",
|
|
17
|
+
variant: "outline",
|
|
18
|
+
"aria-label": "View Current Conversation",
|
|
19
|
+
className: "relative cursor-pointer w-12 h-7 px-2 bg-transparent flex gap-1 items-center justify-center",
|
|
20
|
+
children: [jsx("div", {
|
|
21
|
+
className: "flex items-center justify-center text-xs font-medium",
|
|
22
|
+
children: conversationHistory.length
|
|
23
|
+
}), jsx(MessageSquareText, {
|
|
24
|
+
className: "h-5 w-5"
|
|
25
|
+
})]
|
|
26
|
+
})
|
|
27
|
+
}), jsxs(PopoverContent, {
|
|
28
|
+
align: "end",
|
|
29
|
+
side: "bottom",
|
|
30
|
+
className: `relative z-[200] select-none w-screen max-h-[min(90vh,calc(100vh-1rem))] p-0 mt-3 border overflow-hidden border-input/50 ${chatBgImage ? 'bg-popover/70' : ''}`,
|
|
31
|
+
children: [chatBgImage ? jsxs(Fragment, {
|
|
32
|
+
children: [jsx("div", {
|
|
33
|
+
"aria-hidden": true,
|
|
34
|
+
className: "pointer-events-none absolute inset-0 bg-cover bg-center",
|
|
35
|
+
style: {
|
|
36
|
+
backgroundImage: `url(${chatBgImage})`
|
|
37
|
+
}
|
|
38
|
+
}), jsx("div", {
|
|
39
|
+
"aria-hidden": true,
|
|
40
|
+
className: "pointer-events-none absolute inset-0 bg-background/30 backdrop-blur-[2px]"
|
|
41
|
+
})]
|
|
42
|
+
}) : null, jsx("div", {
|
|
43
|
+
className: "relative z-10 border-b border-input/50 p-4",
|
|
44
|
+
children: jsxs("div", {
|
|
45
|
+
className: "flex items-center justify-between",
|
|
46
|
+
children: [jsxs("div", {
|
|
47
|
+
className: "flex items-center flex-col",
|
|
48
|
+
children: [jsx("h2", {
|
|
49
|
+
className: "text-lg font-bold bg-gradient-to-r from-primary to-primary/70 bg-clip-text text-transparent",
|
|
50
|
+
children: "Current Conversation"
|
|
51
|
+
}), jsxs("p", {
|
|
52
|
+
className: "text-xs text-muted-foreground",
|
|
53
|
+
children: [conversationHistory.length, " messages in this conversation"]
|
|
54
|
+
})]
|
|
55
|
+
}), jsxs("div", {
|
|
56
|
+
className: "flex items-center gap-2",
|
|
57
|
+
children: [jsx(Button, {
|
|
58
|
+
size: "sm",
|
|
59
|
+
onClick: () => {
|
|
60
|
+
onStartNewConversation();
|
|
61
|
+
setMessageHistoryOpen(false);
|
|
62
|
+
},
|
|
63
|
+
className: "text-xs",
|
|
64
|
+
children: "New Chat"
|
|
65
|
+
}), jsx(Button, {
|
|
66
|
+
size: "sm",
|
|
67
|
+
variant: "ghost",
|
|
68
|
+
onClick: () => setMessageHistoryOpen(false),
|
|
69
|
+
className: "text-xs",
|
|
70
|
+
children: messageHistoryOpen ? jsx(ChevronUp, {
|
|
71
|
+
className: "h-4 w-4"
|
|
72
|
+
}) : jsx(ChevronDown, {
|
|
73
|
+
className: "h-4 w-4"
|
|
74
|
+
})
|
|
75
|
+
})]
|
|
76
|
+
})]
|
|
77
|
+
})
|
|
78
|
+
}), jsx(ScrollArea, {
|
|
79
|
+
className: "relative z-10 h-[calc(100vh-10rem)]",
|
|
80
|
+
children: jsx("div", {
|
|
81
|
+
className: "p-4 space-y-4",
|
|
82
|
+
children: conversationHistory.sort((a, b) => b?.timestamp - a?.timestamp).map((message, descIdx, arr) => jsx("div", {
|
|
83
|
+
className: `p-3 rounded-lg ${message.role === 'user' ? 'bg-primary/10 border-l-4 border-primary' : 'bg-muted/50'}`,
|
|
84
|
+
children: message.role === 'user' ? jsxs(Fragment, {
|
|
85
|
+
children: [jsxs("div", {
|
|
86
|
+
className: "mb-2 flex items-center gap-2",
|
|
87
|
+
children: [jsx("span", {
|
|
88
|
+
className: "text-xs font-medium uppercase text-muted-foreground",
|
|
89
|
+
children: "You"
|
|
90
|
+
}), jsx("span", {
|
|
91
|
+
className: "text-xs text-muted-foreground",
|
|
92
|
+
children: new Date(message.timestamp).toLocaleTimeString([], {
|
|
93
|
+
hour: '2-digit',
|
|
94
|
+
minute: '2-digit'
|
|
95
|
+
})
|
|
96
|
+
})]
|
|
97
|
+
}), jsx(Markdown, {
|
|
98
|
+
children: message.content
|
|
99
|
+
})]
|
|
100
|
+
}) : jsxs("div", {
|
|
101
|
+
className: "flex w-full gap-3",
|
|
102
|
+
children: [jsx(AssistantAvatar, {
|
|
103
|
+
avatarSrc: character?.avatarSrc ?? null,
|
|
104
|
+
index: arr.length - descIdx,
|
|
105
|
+
characterFileName: character?.fileName ?? null,
|
|
106
|
+
text: message.content
|
|
107
|
+
}), jsxs("div", {
|
|
108
|
+
className: "min-w-0 flex-1",
|
|
109
|
+
children: [jsxs("div", {
|
|
110
|
+
className: "mb-1 flex items-baseline gap-2",
|
|
111
|
+
children: [jsx("span", {
|
|
112
|
+
className: "text-sm font-semibold text-foreground",
|
|
113
|
+
children: assistantName
|
|
114
|
+
}), jsx("span", {
|
|
115
|
+
className: "text-xs text-muted-foreground",
|
|
116
|
+
children: new Date(message.timestamp).toLocaleTimeString([], {
|
|
117
|
+
hour: '2-digit',
|
|
118
|
+
minute: '2-digit'
|
|
119
|
+
})
|
|
120
|
+
})]
|
|
121
|
+
}), jsx(Markdown, {
|
|
122
|
+
children: message.content
|
|
123
|
+
})]
|
|
124
|
+
})]
|
|
125
|
+
})
|
|
126
|
+
}, message.id))
|
|
127
|
+
})
|
|
128
|
+
})]
|
|
129
|
+
})]
|
|
130
|
+
});
|
|
131
|
+
};export{MessageHistory};//# sourceMappingURL=MessageHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageHistory.js","sources":["../../../../../src/components/AIToolbar/components/completion/MessageHistory.tsx"],"sourcesContent":[null],"names":[],"mappings":"i1EAcC,MAAA,cAAA,GAAA,CAAA;AAED,EAAA,mBAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UseCompletionReturn } from '../types';
|
|
2
|
+
export declare const Screenshot: ({ screenshotConfiguration, attachedFiles, isLoading, captureScreenshot, isScreenshotLoading, supportsImages, maxFiles, toolbarShowElementTitles, }: UseCompletionReturn & {
|
|
3
|
+
supportsImages?: boolean;
|
|
4
|
+
maxFiles?: number;
|
|
5
|
+
toolbarShowElementTitles?: boolean;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=Screenshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Screenshot.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/completion/Screenshot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI/C,eAAO,MAAM,UAAU,GAAI,oJASxB,mBAAmB,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAE,4CA8B3G,CAAC"}
|