From 7a00c66dd3e8d747f52ded90cb553caf276203a4 Mon Sep 17 00:00:00 2001 From: icarus Date: Mon, 15 Sep 2025 06:51:25 +0800 Subject: [PATCH] Revert "style: standardize quote usage and fix JSX formatting" This reverts commit 0947f8505db31000dda44a110ebcc3db8b95dd08. --- electron.vite.config.ts | 2 +- packages/aiCore/package.json | 14 ++++- .../built-in/googleToolsPlugin/index.ts | 1 + packages/aiCore/tsconfig.json | 31 +++++----- packages/extension-table-plus/package.json | 10 +++- .../assets/fonts/country-flag-fonts/flag.css | 6 +- .../src/assets/fonts/icon-fonts/iconfont.css | 56 +++++++++---------- .../src/assets/fonts/ubuntu/ubuntu.css | 32 +++++------ .../src/assets/styles/CommandListPopover.css | 9 +-- src/renderer/src/assets/styles/ant.css | 10 ++-- src/renderer/src/assets/styles/color.css | 6 +- src/renderer/src/assets/styles/container.css | 2 +- src/renderer/src/assets/styles/font.css | 22 ++++---- src/renderer/src/assets/styles/index.css | 26 ++++----- src/renderer/src/assets/styles/responsive.css | 2 +- src/renderer/src/assets/styles/richtext.css | 30 +++++----- src/renderer/src/assets/styles/scrollbar.css | 2 +- .../src/assets/styles/selection-toolbar.css | 4 +- src/renderer/src/assets/styles/tailwind.css | 2 +- .../src/components/Avatar/EmojiAvatar.tsx | 3 +- .../src/components/Avatar/ModelAvatar.tsx | 3 +- .../CodeBlockView/HtmlArtifactsPopup.tsx | 15 ++--- .../src/components/CodeBlockView/view.tsx | 3 +- .../src/components/CodeToolbar/button.tsx | 3 +- src/renderer/src/components/CodeViewer.tsx | 9 +-- .../src/components/CollapsibleSearchBar.tsx | 6 +- src/renderer/src/components/ContentSearch.tsx | 3 +- .../__tests__/DraggableVirtualList.test.tsx | 3 +- .../src/components/DraggableList/list.tsx | 3 +- .../components/DraggableList/virtual-list.tsx | 21 +++---- .../src/components/FreeTrialModelTag.tsx | 3 +- .../HealthStatusIndicator/useHealthStatus.tsx | 3 +- .../HorizontalScrollContainer/index.tsx | 3 +- .../src/components/Icons/FileIcons.tsx | 6 +- .../src/components/Icons/NutstoreIcons.tsx | 6 +- src/renderer/src/components/Icons/SVGIcon.tsx | 39 +++++-------- .../components/Icons/SvgSpinners180Ring.tsx | 6 +- .../src/components/Icons/UnWrapIcon.tsx | 3 +- .../src/components/Icons/WrapIcon.tsx | 3 +- .../src/components/LocalBackupManager.tsx | 9 +-- .../src/components/LocalBackupModals.tsx | 3 +- .../src/components/MarkdownEditor/index.tsx | 3 +- .../src/components/MinApp/MinAppTabsPool.tsx | 3 +- .../MinApp/MinappPopupContainer.tsx | 15 ++--- .../src/components/ModelIdWithTags.tsx | 3 +- src/renderer/src/components/OGCard.tsx | 6 +- .../src/components/ObsidianExportDialog.tsx | 12 ++-- .../components/Popups/AddAssistantPopup.tsx | 6 +- .../Popups/ApiKeyListPopup/item.tsx | 6 +- .../Popups/ApiKeyListPopup/list.tsx | 9 +-- .../Popups/ApiKeyListPopup/popup.tsx | 3 +- .../src/components/Popups/BackupPopup.tsx | 3 +- .../src/components/Popups/GeneralPopup.tsx | 3 +- .../components/Popups/NutsorePathPopup.tsx | 3 +- .../src/components/Popups/PromptPopup.tsx | 3 +- .../src/components/Popups/RestorePopup.tsx | 3 +- .../src/components/Popups/RichEditPopup.tsx | 3 +- .../Popups/SaveToKnowledgePopup.tsx | 15 ++--- .../src/components/Popups/SearchPopup.tsx | 3 +- .../Popups/SelectModelPopup/popup.tsx | 12 ++-- .../src/components/Popups/TemplatePopup.tsx | 3 +- .../src/components/Popups/TextEditPopup.tsx | 6 +- .../src/components/Popups/TextFilePreview.tsx | 3 +- .../src/components/Popups/UserPopup.tsx | 18 ++---- .../src/components/Popups/VideoPopup.tsx | 6 +- .../components/Preview/GraphvizPreview.tsx | 3 +- .../src/components/Preview/MermaidPreview.tsx | 3 +- .../components/Preview/PlantUmlPreview.tsx | 3 +- .../src/components/Preview/SvgPreview.tsx | 3 +- .../src/components/ProviderAvatar.tsx | 3 +- .../src/components/QuickPanel/view.tsx | 12 ++-- .../RichEditor/CommandListPopover.tsx | 6 +- .../components/RichEditor/TableOfContent.tsx | 3 +- .../RichEditor/components/ActionMenu.tsx | 3 +- .../RichEditor/components/ImageUploader.tsx | 9 +-- .../RichEditor/components/TableActionMenu.tsx | 6 +- .../components/YamlFrontMatterNodeView.tsx | 15 ++--- .../dragContextMenu/DragContextMenu.tsx | 9 +-- .../placeholder/PlaceholderBlock.tsx | 3 +- .../src/components/RichEditor/index.tsx | 3 +- .../src/components/RichEditor/toolbar.tsx | 3 +- .../src/components/S3BackupManager.tsx | 9 +-- src/renderer/src/components/S3Modals.tsx | 6 +- .../src/components/Scrollbar/index.tsx | 3 +- src/renderer/src/components/Selector.tsx | 3 +- src/renderer/src/components/Spinner.tsx | 3 +- .../src/components/Tab/TabContainer.tsx | 6 +- .../src/components/Tags/CustomTag.tsx | 3 +- .../components/Tags/Model/ReasoningTag.tsx | 3 +- .../components/Tags/Model/ToolsCallingTag.tsx | 3 +- .../src/components/Tags/Model/VisionTag.tsx | 3 +- .../components/Tags/Model/WebSearchTag.tsx | 3 +- src/renderer/src/components/Tags/WarnTag.tsx | 3 +- .../src/components/ThinkingEffect.tsx | 3 +- .../src/components/TranslateButton.tsx | 3 +- .../src/components/VirtualList/dynamic.tsx | 6 +- .../src/components/WebdavBackupManager.tsx | 9 +-- src/renderer/src/components/WebdavModals.tsx | 3 +- .../src/components/WindowControls/index.tsx | 6 +- .../src/components/app/PinnedMinapps.tsx | 6 +- src/renderer/src/components/app/Sidebar.tsx | 12 ++-- .../src/components/dnd/ItemRenderer.tsx | 6 +- src/renderer/src/components/dnd/Sortable.tsx | 6 +- src/renderer/src/context/AntdProvider.tsx | 3 +- .../src/context/StyleSheetManager.tsx | 3 +- src/renderer/src/pages/agents/AgentsPage.tsx | 6 +- .../pages/agents/components/AddAgentPopup.tsx | 15 ++--- .../src/pages/agents/components/AgentCard.tsx | 6 +- .../agents/components/ImportAgentPopup.tsx | 3 +- .../agents/components/ManageAgentsPopup.tsx | 3 +- src/renderer/src/pages/code/CodeToolsPage.tsx | 12 ++-- src/renderer/src/pages/files/FileList.tsx | 6 +- src/renderer/src/pages/files/FilesPage.tsx | 15 ++--- .../history/components/SearchResults.tsx | 3 +- src/renderer/src/pages/home/Chat.tsx | 6 +- src/renderer/src/pages/home/ChatNavbar.tsx | 3 +- src/renderer/src/pages/home/HomePage.tsx | 3 +- .../pages/home/Inputbar/AttachmentButton.tsx | 3 +- .../pages/home/Inputbar/AttachmentPreview.tsx | 9 +-- .../home/Inputbar/GenerateImageButton.tsx | 3 +- .../src/pages/home/Inputbar/Inputbar.tsx | 6 +- .../src/pages/home/Inputbar/InputbarTools.tsx | 21 +++---- .../home/Inputbar/KnowledgeBaseInput.tsx | 3 +- .../home/Inputbar/MentionModelsInput.tsx | 3 +- .../pages/home/Inputbar/NewContextButton.tsx | 3 +- .../home/Inputbar/QuickPhrasesButton.tsx | 6 +- .../pages/home/Inputbar/ThinkingButton.tsx | 3 +- .../pages/home/Inputbar/WebSearchButton.tsx | 3 +- .../pages/home/Markdown/CitationTooltip.tsx | 3 +- .../src/pages/home/Markdown/Hyperlink.tsx | 3 +- .../src/pages/home/Markdown/Markdown.tsx | 3 +- .../__tests__/CitationTooltip.test.tsx | 3 +- .../Markdown/__tests__/Hyperlink.test.tsx | 3 +- .../pages/home/Messages/Blocks/ErrorBlock.tsx | 3 +- .../home/Messages/Blocks/ThinkingBlock.tsx | 6 +- .../Blocks/__tests__/ThinkingBlock.test.tsx | 9 +-- .../src/pages/home/Messages/Blocks/index.tsx | 6 +- .../pages/home/Messages/ChatFlowHistory.tsx | 9 +-- .../pages/home/Messages/ChatNavigation.tsx | 3 +- .../src/pages/home/Messages/CitationsList.tsx | 6 +- .../src/pages/home/Messages/Message.tsx | 9 +-- .../pages/home/Messages/MessageAnchorLine.tsx | 12 ++-- .../pages/home/Messages/MessageContent.tsx | 4 +- .../src/pages/home/Messages/MessageEditor.tsx | 12 ++-- .../src/pages/home/Messages/MessageGroup.tsx | 15 ++--- .../home/Messages/MessageGroupMenuBar.tsx | 6 +- .../home/Messages/MessageGroupModelList.tsx | 9 +-- .../home/Messages/MessageGroupSettings.tsx | 3 +- .../src/pages/home/Messages/MessageHeader.tsx | 3 +- .../pages/home/Messages/MessageMenubar.tsx | 48 ++++++---------- .../src/pages/home/Messages/Messages.tsx | 6 +- .../home/Messages/Tools/MessageMcpTool.tsx | 30 ++++------ src/renderer/src/pages/home/Navbar.tsx | 9 +-- .../src/pages/home/Tabs/AssistantsTab.tsx | 6 +- .../src/pages/home/Tabs/SettingsTab.tsx | 3 +- .../src/pages/home/Tabs/TopicsTab.tsx | 15 ++--- .../home/Tabs/components/AssistantItem.tsx | 3 +- .../Tabs/components/AssistantTagsPopup.tsx | 3 +- src/renderer/src/pages/home/Tabs/index.tsx | 3 +- .../home/components/AssistantsDrawer.tsx | 3 +- .../pages/home/components/UpdateAppButton.tsx | 3 +- .../src/pages/knowledge/KnowledgePage.tsx | 3 +- .../__tests__/GeneralSettingsPanel.test.tsx | 9 +-- .../__tests__/KnowledgeBaseFormModal.test.tsx | 3 +- .../components/EditKnowledgeBasePopup.tsx | 9 +-- .../components/KnowledgeSearchPopup.tsx | 3 +- .../KnowledgeBaseFormModal.tsx | 3 +- .../knowledge/components/MigrationInfoTag.tsx | 3 +- .../knowledge/items/KnowledgeDirectories.tsx | 6 +- .../pages/knowledge/items/KnowledgeFiles.tsx | 12 ++-- .../pages/knowledge/items/KnowledgeNotes.tsx | 6 +- .../knowledge/items/KnowledgeSitemaps.tsx | 6 +- .../pages/knowledge/items/KnowledgeUrls.tsx | 9 +-- .../pages/knowledge/items/KnowledgeVideos.tsx | 6 +- .../src/pages/memory/settings-modal.tsx | 15 ++--- .../MiniappSettings/MinappSettingsPopup.tsx | 3 +- .../src/pages/minapps/NewAppButton.tsx | 15 ++--- .../minapps/components/MinimalToolbar.tsx | 6 +- src/renderer/src/pages/notes/HeaderNavbar.tsx | 9 +-- src/renderer/src/pages/notes/NotesEditor.tsx | 3 +- src/renderer/src/pages/notes/NotesPage.tsx | 3 +- src/renderer/src/pages/notes/NotesSidebar.tsx | 9 +-- .../src/pages/notes/NotesSidebarHeader.tsx | 3 +- .../src/pages/paintings/AihubmixPage.tsx | 6 +- .../src/pages/paintings/DmxapiPage.tsx | 9 +-- .../src/pages/paintings/NewApiPage.tsx | 18 ++---- .../src/pages/paintings/SiliconPage.tsx | 6 +- .../src/pages/paintings/TokenFluxPage.tsx | 9 +-- .../src/pages/paintings/ZhipuPage.tsx | 3 +- .../components/DynamicFormRender.tsx | 9 +-- .../paintings/components/ImageUploader.tsx | 9 +-- .../paintings/components/PaintingsList.tsx | 9 +-- .../src/pages/settings/AboutSettings.tsx | 9 +-- .../AssistantMCPSettings.tsx | 3 +- .../AssistantMemorySettings.tsx | 3 +- .../AssistantModelSettings.tsx | 6 +- .../AssistantPromptSettings.tsx | 9 +-- .../AssistantRegularPromptsSettings.tsx | 9 +-- .../settings/AssistantSettings/index.tsx | 3 +- .../settings/DataSettings/DataSettings.tsx | 12 ++-- .../DataSettings/NutstoreSettings.tsx | 3 +- .../DataSettings/ObsidianSettings.tsx | 3 +- .../settings/DataSettings/S3Settings.tsx | 6 +- .../DisplaySettings/DisplaySettings.tsx | 3 +- .../PreprocessProviderSettings.tsx | 3 +- .../MCPSettings/AddMcpServerModal.tsx | 12 ++-- .../MCPSettings/BuiltinMCPServerList.tsx | 3 +- .../settings/MCPSettings/EditMcpJsonPopup.tsx | 3 +- .../settings/MCPSettings/InstallNpxUv.tsx | 12 ++-- .../pages/settings/MCPSettings/McpPrompt.tsx | 6 +- .../settings/MCPSettings/McpResource.tsx | 3 +- .../settings/MCPSettings/McpServerCard.tsx | 3 +- .../settings/MCPSettings/McpServersList.tsx | 3 +- .../settings/MCPSettings/McpSettings.tsx | 36 ++++-------- .../MCPSettings/McpSettingsNavbar.tsx | 3 +- .../pages/settings/MCPSettings/McpTool.tsx | 9 +-- .../pages/settings/MCPSettings/NpxSearch.tsx | 6 +- .../settings/MCPSettings/SyncServersPopup.tsx | 6 +- .../MemorySettings/MemorySettings.tsx | 21 +++---- .../DefaultAssistantSettings.tsx | 9 +-- .../ModelSettings/QuickModelPopup.tsx | 3 +- .../src/pages/settings/NotesSettings.tsx | 3 +- .../ProviderSettings/AddProviderPopup.tsx | 12 ++-- .../ProviderSettings/AnthropicSettings.tsx | 3 +- .../ApiOptionsSettingsPopup.tsx | 3 +- .../ProviderSettings/CustomHeaderPopup.tsx | 3 +- .../ProviderSettings/DMXAPISettings.tsx | 3 +- .../EditModelPopup/ModelEditContent.tsx | 24 +++----- .../GithubCopilotSettings.tsx | 6 +- .../ModelList/AddModelPopup.tsx | 15 ++--- .../ModelList/HealthCheckPopup.tsx | 6 +- .../ModelList/ManageModelsList.tsx | 6 +- .../ModelList/ManageModelsPopup.tsx | 9 +-- .../ModelList/ModelListGroup.tsx | 6 +- .../ModelList/NewApiAddModelPopup.tsx | 18 ++---- .../ModelList/NewApiBatchAddModelPopup.tsx | 9 +-- .../ProviderSettings/ModelNotesPopup.tsx | 3 +- .../ProviderSettings/ProviderList.tsx | 9 +-- .../ProviderSettings/ProviderSetting.tsx | 9 +-- .../SelectProviderModelPopup.tsx | 3 +- .../ProviderSettings/UrlSchemaInfoPopup.tsx | 3 +- .../pages/settings/QuickAssistantSettings.tsx | 9 +-- .../pages/settings/QuickPhraseSettings.tsx | 9 +-- .../SelectionAssistantSettings.tsx | 12 ++-- .../components/ActionsListItem.tsx | 3 +- .../components/MacProcessTrustHintModal.tsx | 3 +- .../components/SelectionActionSearchModal.tsx | 12 ++-- .../components/SelectionActionUserModal.tsx | 18 ++---- .../components/SelectionFilterListModal.tsx | 3 +- .../components/SettingsActionsListHeader.tsx | 6 +- .../src/pages/settings/SettingGroup.tsx | 6 +- .../ApiServerSettings/ApiServerSettings.tsx | 9 +-- .../CustomLanguageModal.tsx | 12 ++-- .../CustomLanguageSettings.tsx | 6 +- .../TranslateSettingsPopup.tsx | 3 +- .../WebSearchSettings/AddSubscribePopup.tsx | 6 +- .../WebSearchSettings/BlacklistSettings.tsx | 6 +- .../WebSearchProviderSetting.tsx | 12 ++-- .../src/pages/translate/TranslateHistory.tsx | 9 +-- .../src/pages/translate/TranslatePage.tsx | 9 +-- .../src/pages/translate/TranslateSettings.tsx | 6 +- src/renderer/src/services/BackupService.ts | 12 +--- src/renderer/src/trace/pages/Component.tsx | 15 ++--- src/renderer/src/trace/pages/ProgressBar.tsx | 3 +- src/renderer/src/trace/pages/SpanDetail.tsx | 6 +- src/renderer/src/trace/pages/Trace.css | 12 ++-- src/renderer/src/trace/pages/TraceTree.tsx | 6 +- .../windows/mini/chat/components/Message.tsx | 6 +- .../mini/home/components/ClipboardPreview.tsx | 3 +- .../windows/mini/home/components/Footer.tsx | 9 +-- .../selection/action/SelectionActionApp.tsx | 6 +- .../action/components/WindowFooter.tsx | 3 +- 272 files changed, 724 insertions(+), 1281 deletions(-) diff --git a/electron.vite.config.ts b/electron.vite.config.ts index af821caa64..83f82b5f4c 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -4,7 +4,7 @@ import { defineConfig, externalizeDepsPlugin } from 'electron-vite' import { resolve } from 'path' import { visualizer } from 'rollup-plugin-visualizer' -import pkg from './package.json' +import pkg from './package.json' assert { type: 'json' } const visualizerPlugin = (type: 'renderer' | 'main') => { return process.env[`VISUALIZER_${type.toUpperCase()}`] ? [visualizer({ open: true })] : [] diff --git a/packages/aiCore/package.json b/packages/aiCore/package.json index cdf68d9018..e61db529e2 100644 --- a/packages/aiCore/package.json +++ b/packages/aiCore/package.json @@ -13,7 +13,15 @@ "test": "vitest run", "test:watch": "vitest" }, - "keywords": ["ai", "sdk", "openai", "anthropic", "google", "cherry-studio", "vercel-ai-sdk"], + "keywords": [ + "ai", + "sdk", + "openai", + "anthropic", + "google", + "cherry-studio", + "vercel-ai-sdk" + ], "author": "Cherry Studio", "license": "MIT", "repository": { @@ -48,7 +56,9 @@ "engines": { "node": ">=18.0.0" }, - "files": ["dist"], + "files": [ + "dist" + ], "exports": { ".": { "types": "./dist/index.d.ts", diff --git a/packages/aiCore/src/core/plugins/built-in/googleToolsPlugin/index.ts b/packages/aiCore/src/core/plugins/built-in/googleToolsPlugin/index.ts index 09a741d9f2..cb581e17c6 100644 --- a/packages/aiCore/src/core/plugins/built-in/googleToolsPlugin/index.ts +++ b/packages/aiCore/src/core/plugins/built-in/googleToolsPlugin/index.ts @@ -24,6 +24,7 @@ export const googleToolsPlugin = (config?: ToolConfig) => if (!typedParams.tools) { typedParams.tools = {} } + // 使用类型安全的方式遍历配置 ;(Object.keys(config) as ToolConfigKey[]).forEach((key) => { if (config[key] && key in toolNameMap && key in google.tools) { diff --git a/packages/aiCore/tsconfig.json b/packages/aiCore/tsconfig.json index 110b2106e0..9ee30166c1 100644 --- a/packages/aiCore/tsconfig.json +++ b/packages/aiCore/tsconfig.json @@ -1,21 +1,26 @@ { "compilerOptions": { - "allowSyntheticDefaultImports": true, - "declaration": true, - "emitDecoratorMetadata": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "forceConsistentCasingInFileNames": true, + "target": "ES2020", "module": "ESNext", "moduleResolution": "bundler", - "noEmitOnError": false, + "declaration": true, "outDir": "./dist", - "resolveJsonModule": true, "rootDir": "./src", - "skipLibCheck": true, "strict": true, - "target": "ES2020" + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "noEmitOnError": false, + "experimentalDecorators": true, + "emitDecoratorMetadata": true }, - "exclude": ["node_modules", "dist"], - "include": ["src/**/*"] -} + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "dist" + ] +} \ No newline at end of file diff --git a/packages/extension-table-plus/package.json b/packages/extension-table-plus/package.json index 0128bd2962..d34c25ccd7 100755 --- a/packages/extension-table-plus/package.json +++ b/packages/extension-table-plus/package.json @@ -3,7 +3,10 @@ "description": "table extension for tiptap forked from tiptap/extension-table", "version": "3.0.11", "homepage": "https://cherry-ai.com", - "keywords": ["tiptap", "tiptap extension"], + "keywords": [ + "tiptap", + "tiptap extension" + ], "license": "MIT", "type": "module", "exports": { @@ -59,7 +62,10 @@ "main": "dist/index.cjs", "module": "dist/index.js", "types": "dist/index.d.ts", - "files": ["src", "dist"], + "files": [ + "src", + "dist" + ], "devDependencies": { "@tiptap/core": "^3.2.0", "@tiptap/pm": "^3.2.0", diff --git a/src/renderer/src/assets/fonts/country-flag-fonts/flag.css b/src/renderer/src/assets/fonts/country-flag-fonts/flag.css index 50447f4136..b73d4ae76f 100644 --- a/src/renderer/src/assets/fonts/country-flag-fonts/flag.css +++ b/src/renderer/src/assets/fonts/country-flag-fonts/flag.css @@ -1,13 +1,13 @@ @font-face { - font-family: "Twemoji Country Flags"; + font-family: 'Twemoji Country Flags'; unicode-range: U+1F1E6-1F1FF, U+1F3F4, U+E0062-E0063, U+E0065, U+E0067, U+E006C, U+E006E, U+E0073-E0074, U+E0077, U+E007F; /*https://github.com/beyondkmp/country-flag-emoji-polyfill/blob/master/font/TwemojiCountryFlags.woff2 */ - src: url("TwemojiCountryFlags.woff2") format("woff2"); + src: url('TwemojiCountryFlags.woff2') format('woff2'); font-display: swap; } /* 国旗字体样式类 */ .country-flag-font { - font-family: "Twemoji Country Flags", "Apple Color Emoji", "Segoe UI Emoji", sans-serif; + font-family: 'Twemoji Country Flags', 'Apple Color Emoji', 'Segoe UI Emoji', sans-serif; } diff --git a/src/renderer/src/assets/fonts/icon-fonts/iconfont.css b/src/renderer/src/assets/fonts/icon-fonts/iconfont.css index dbb0603adc..ae76c0026c 100644 --- a/src/renderer/src/assets/fonts/icon-fonts/iconfont.css +++ b/src/renderer/src/assets/fonts/icon-fonts/iconfont.css @@ -1,10 +1,10 @@ @font-face { - font-family: "iconfont"; /* Project id 4753420 */ - src: url("iconfont.woff2?t=1742793497518") format("woff2"); + font-family: 'iconfont'; /* Project id 4753420 */ + src: url('iconfont.woff2?t=1742793497518') format('woff2'); } .iconfont { - font-family: "iconfont" !important; + font-family: 'iconfont' !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; @@ -12,101 +12,101 @@ } .icon-plugin:before { - content: "\e612"; + content: '\e612'; } .icon-tools:before { - content: "\e762"; + content: '\e762'; } .icon-OCRshibie:before { - content: "\e658"; + content: '\e658'; } .icon-obsidian:before { - content: "\e677"; + content: '\e677'; } .icon-notion:before { - content: "\e690"; + content: '\e690'; } .icon-thinking:before { - content: "\e65b"; + content: '\e65b'; } .icon-at:before { - content: "\e623"; + content: '\e623'; } .icon-icon-adaptive-width:before { - content: "\e87a"; + content: '\e87a'; } .icon-at1:before { - content: "\e630"; + content: '\e630'; } .icon-ai-model:before { - content: "\e827"; + content: '\e827'; } .icon-ai-model1:before { - content: "\ec09"; + content: '\ec09'; } .icon-gridlines:before { - content: "\e942"; + content: '\e942'; } .icon-inbox:before { - content: "\e869"; + content: '\e869'; } .icon-business-smart-assistant:before { - content: "\e601"; + content: '\e601'; } .icon-copy:before { - content: "\e6ae"; + content: '\e6ae'; } .icon-ic_send:before { - content: "\e795"; + content: '\e795'; } .icon-dark1:before { - content: "\e72f"; + content: '\e72f'; } .icon-theme-light:before { - content: "\e6b7"; + content: '\e6b7'; } .icon-translate_line:before { - content: "\e7de"; + content: '\e7de'; } .icon-history:before { - content: "\e758"; + content: '\e758'; } .icon-hide-sidebar:before { - content: "\e8eb"; + content: '\e8eb'; } .icon-show-sidebar:before { - content: "\e944"; + content: '\e944'; } .icon-appstore:before { - content: "\e792"; + content: '\e792'; } .icon-chat:before { - content: "\e615"; + content: '\e615'; } .icon-setting:before { - content: "\e78e"; + content: '\e78e'; } diff --git a/src/renderer/src/assets/fonts/ubuntu/ubuntu.css b/src/renderer/src/assets/fonts/ubuntu/ubuntu.css index 12fc9e1f94..0a0317a9db 100644 --- a/src/renderer/src/assets/fonts/ubuntu/ubuntu.css +++ b/src/renderer/src/assets/fonts/ubuntu/ubuntu.css @@ -1,55 +1,55 @@ @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-Regular.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-Regular.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-Italic.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-Italic.ttf') format('truetype'); font-weight: normal; font-style: italic; } @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-Bold.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-Bold.ttf') format('truetype'); font-weight: bold; font-style: normal; } @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-BoldItalic.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-BoldItalic.ttf') format('truetype'); font-weight: bold; font-style: italic; } @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-Light.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-Light.ttf') format('truetype'); font-weight: 300; font-style: normal; } @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-LightItalic.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-LightItalic.ttf') format('truetype'); font-weight: 300; font-style: italic; } @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-Medium.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-Medium.ttf') format('truetype'); font-weight: 500; font-style: normal; } @font-face { - font-family: "Ubuntu"; - src: url("Ubuntu-MediumItalic.ttf") format("truetype"); + font-family: 'Ubuntu'; + src: url('Ubuntu-MediumItalic.ttf') format('truetype'); font-weight: 500; font-style: italic; } diff --git a/src/renderer/src/assets/styles/CommandListPopover.css b/src/renderer/src/assets/styles/CommandListPopover.css index 9cc915de34..a1bb27ec57 100644 --- a/src/renderer/src/assets/styles/CommandListPopover.css +++ b/src/renderer/src/assets/styles/CommandListPopover.css @@ -1,23 +1,24 @@ .command-list-popover { /* Base styles are handled inline for theme support */ + /* Arrow styles based on placement */ } -.command-list-popover[data-placement^="bottom"] { +.command-list-popover[data-placement^='bottom'] { transform-origin: top center; animation: slideDownAndFadeIn 0.15s ease-out; } -.command-list-popover[data-placement^="top"] { +.command-list-popover[data-placement^='top'] { transform-origin: bottom center; animation: slideUpAndFadeIn 0.15s ease-out; } -.command-list-popover[data-placement*="start"] { +.command-list-popover[data-placement*='start'] { transform-origin: left center; } -.command-list-popover[data-placement*="end"] { +.command-list-popover[data-placement*='end'] { transform-origin: right center; } diff --git a/src/renderer/src/assets/styles/ant.css b/src/renderer/src/assets/styles/ant.css index 0bd4499c10..30005ff738 100644 --- a/src/renderer/src/assets/styles/ant.css +++ b/src/renderer/src/assets/styles/ant.css @@ -1,4 +1,4 @@ -@import "./container.css"; +@import './container.css'; /* Modal 关闭按钮不应该可拖拽,以确保点击正常 */ .ant-modal-close { @@ -76,19 +76,19 @@ background-color: transparent !important; } -[navbar-position="left"] .minapp-drawer { +[navbar-position='left'] .minapp-drawer { max-width: calc(100vw - var(--sidebar-width)); } -[navbar-position="left"] .minapp-drawer .ant-drawer-header { +[navbar-position='left'] .minapp-drawer .ant-drawer-header { width: calc(100vw - var(--sidebar-width)); } -[navbar-position="top"] .minapp-drawer { +[navbar-position='top'] .minapp-drawer { max-width: 100vw; } -[navbar-position="top"] .minapp-drawer .ant-drawer-header { +[navbar-position='top'] .minapp-drawer .ant-drawer-header { width: 100vw; } diff --git a/src/renderer/src/assets/styles/color.css b/src/renderer/src/assets/styles/color.css index 411ecbcacf..5d625937e7 100644 --- a/src/renderer/src/assets/styles/color.css +++ b/src/renderer/src/assets/styles/color.css @@ -70,7 +70,7 @@ --color-status-warning: #faad14; } -[theme-mode="light"] { +[theme-mode='light'] { --color-white: #ffffff; --color-white-soft: rgba(0, 0, 0, 0.04); --color-white-mute: #eee; @@ -136,12 +136,12 @@ --chat-text-user: var(--color-text); } -[navbar-position="left"][theme-mode="light"] { +[navbar-position='left'][theme-mode='light'] { --color-list-item: #eee; --color-list-item-hover: #f5f5f5; } -[navbar-position="left"][theme-mode="dark"] { +[navbar-position='left'][theme-mode='dark'] { --color-list-item: #252525; --color-list-item-hover: #1e1e1e; } diff --git a/src/renderer/src/assets/styles/container.css b/src/renderer/src/assets/styles/container.css index 68024ff791..a8a1852e64 100644 --- a/src/renderer/src/assets/styles/container.css +++ b/src/renderer/src/assets/styles/container.css @@ -2,7 +2,7 @@ background-color: var(--color-background); } -[navbar-position="left"] #content-container { +[navbar-position='left'] #content-container { border-top: 0.5px solid var(--color-border); border-top-left-radius: 10px; border-left: 0.5px solid var(--color-border); diff --git a/src/renderer/src/assets/styles/font.css b/src/renderer/src/assets/styles/font.css index f7729b8244..8e122fe887 100644 --- a/src/renderer/src/assets/styles/font.css +++ b/src/renderer/src/assets/styles/font.css @@ -1,24 +1,24 @@ :root { --font-family: - var(--user-font-family), Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, Oxygen, - Cantarell, "Open Sans", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", - "Segoe UI Symbol", "Noto Color Emoji"; + var(--user-font-family), Ubuntu, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, Roboto, Oxygen, + Cantarell, 'Open Sans', 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', + 'Segoe UI Symbol', 'Noto Color Emoji'; --font-family-serif: - serif, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Ubuntu, Roboto, Oxygen, Cantarell, "Open Sans", - "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, Ubuntu, Roboto, Oxygen, Cantarell, 'Open Sans', + 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --code-font-family: var(--user-code-font-family), "Cascadia Code", "Fira Code", "Consolas", Menlo, Courier, monospace; + --code-font-family: var(--user-code-font-family), 'Cascadia Code', 'Fira Code', 'Consolas', Menlo, Courier, monospace; } /* Windows系统专用字体配置 */ -body[os="windows"] { +body[os='windows'] { --font-family: - var(--user-font-family), "Twemoji Country Flags", Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, - Roboto, Oxygen, Cantarell, "Open Sans", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", - "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + var(--user-font-family), 'Twemoji Country Flags', Ubuntu, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, + Roboto, Oxygen, Cantarell, 'Open Sans', 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', + 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --code-font-family: - var(--user-code-font-family), "Cascadia Code", "Fira Code", "Consolas", "Sarasa Mono SC", "Microsoft YaHei UI", + var(--user-code-font-family), 'Cascadia Code', 'Fira Code', 'Consolas', 'Sarasa Mono SC', 'Microsoft YaHei UI', Courier, monospace; } diff --git a/src/renderer/src/assets/styles/index.css b/src/renderer/src/assets/styles/index.css index d3492ced0f..b344e60ae6 100644 --- a/src/renderer/src/assets/styles/index.css +++ b/src/renderer/src/assets/styles/index.css @@ -1,15 +1,15 @@ -@import "./color.css"; -@import "./font.css"; -@import "./markdown.css"; -@import "./ant.css"; -@import "./scrollbar.css"; -@import "./container.css"; -@import "./animation.css"; -@import "./richtext.css"; -@import "./responsive.css"; -@import "../fonts/icon-fonts/iconfont.css"; -@import "../fonts/ubuntu/ubuntu.css"; -@import "../fonts/country-flag-fonts/flag.css"; +@import './color.css'; +@import './font.css'; +@import './markdown.css'; +@import './ant.css'; +@import './scrollbar.css'; +@import './container.css'; +@import './animation.css'; +@import './richtext.css'; +@import './responsive.css'; +@import '../fonts/icon-fonts/iconfont.css'; +@import '../fonts/ubuntu/ubuntu.css'; +@import '../fonts/country-flag-fonts/flag.css'; *, *::before, @@ -64,7 +64,7 @@ body { input, textarea, -[contenteditable="true"], +[contenteditable='true'], .markdown, #messages, .selectable, diff --git a/src/renderer/src/assets/styles/responsive.css b/src/renderer/src/assets/styles/responsive.css index 4b299b7509..e84cc1e69b 100644 --- a/src/renderer/src/assets/styles/responsive.css +++ b/src/renderer/src/assets/styles/responsive.css @@ -12,7 +12,7 @@ --scrollbar-width: 5px; } -[navbar-position="left"] { +[navbar-position='left'] { --navbar-height: 42px; --list-item-border-radius: 20px; } diff --git a/src/renderer/src/assets/styles/richtext.css b/src/renderer/src/assets/styles/richtext.css index 1110276b3b..547a5e17bb 100644 --- a/src/renderer/src/assets/styles/richtext.css +++ b/src/renderer/src/assets/styles/richtext.css @@ -217,7 +217,7 @@ } .tiptap .selectedCell::after { - content: ""; + content: ''; position: absolute; inset: 0; pointer-events: none; @@ -283,8 +283,8 @@ grid-template-columns: 1fr 25px; grid-template-rows: 1fr 25px; grid-template-areas: - "table column-btn" - "row-btn corner"; + 'table column-btn' + 'row-btn corner'; gap: 5px; } @@ -348,7 +348,7 @@ .tiptap .tableWrapper .add-row-button::before, .tiptap .tableWrapper .add-column-button::before { - content: "+"; + content: '+'; font-weight: bold; } @@ -402,7 +402,7 @@ .tiptap .tableWrapper .row-action-trigger::before, .tiptap .tableWrapper .column-action-trigger::before { - content: "•••"; + content: '•••'; } .tiptap.resize-cursor { @@ -438,18 +438,18 @@ list-style: decimal; } -.tiptap ul[data-type="taskList"] { +.tiptap ul[data-type='taskList'] { list-style: none; margin-left: 0; padding: 0; } -.tiptap ul[data-type="taskList"] li { +.tiptap ul[data-type='taskList'] li { align-items: center; display: flex; } -.tiptap ul[data-type="taskList"] li > label { +.tiptap ul[data-type='taskList'] li > label { flex: 0 0 auto; margin-right: 0.5rem; user-select: none; @@ -457,32 +457,32 @@ align-items: center; } -.tiptap ul[data-type="taskList"] li > div { +.tiptap ul[data-type='taskList'] li > div { flex: 1 1 auto; } -.tiptap ul[data-type="taskList"] li > div p { +.tiptap ul[data-type='taskList'] li > div p { margin: 0; } /* Checked task item appearance */ -.tiptap ul[data-type="taskList"] li[data-checked="true"] > div { +.tiptap ul[data-type='taskList'] li[data-checked='true'] > div { color: var(--color-text-2); text-decoration: line-through; } -.tiptap ul[data-type="taskList"] input[type="checkbox"] { +.tiptap ul[data-type='taskList'] input[type='checkbox'] { cursor: pointer; } /* Use primary color for checked checkbox */ -.tiptap ul[data-type="taskList"] input[type="checkbox"]:checked { +.tiptap ul[data-type='taskList'] input[type='checkbox']:checked { accent-color: var(--color-primary); background-color: var(--color-primary); border-color: var(--color-primary); } -.tiptap ul[data-type="taskList"] ul[data-type="taskList"] { +.tiptap ul[data-type='taskList'] ul[data-type='taskList'] { margin: 0; } @@ -496,7 +496,7 @@ /* Bottom spacer to create viewport padding */ .tiptap::after { - content: ""; + content: ''; display: block; height: 50px; pointer-events: none; diff --git a/src/renderer/src/assets/styles/scrollbar.css b/src/renderer/src/assets/styles/scrollbar.css index d58088b2c7..461384381e 100644 --- a/src/renderer/src/assets/styles/scrollbar.css +++ b/src/renderer/src/assets/styles/scrollbar.css @@ -12,7 +12,7 @@ --scrollbar-thumb-radius: 10px; } -body[theme-mode="light"] { +body[theme-mode='light'] { --color-scrollbar-thumb: var(--color-scrollbar-thumb-light); --color-scrollbar-thumb-hover: var(--color-scrollbar-thumb-light-hover); } diff --git a/src/renderer/src/assets/styles/selection-toolbar.css b/src/renderer/src/assets/styles/selection-toolbar.css index dc5c4f0970..6efcb57d1f 100644 --- a/src/renderer/src/assets/styles/selection-toolbar.css +++ b/src/renderer/src/assets/styles/selection-toolbar.css @@ -1,4 +1,4 @@ -@import "./font.css"; +@import './font.css'; html { font-family: var(--font-family); @@ -56,7 +56,7 @@ html { --selection-toolbar-button-bgcolor-hover: #333333; } -[theme-mode="light"] { +[theme-mode='light'] { --selection-toolbar-border: none; --selection-toolbar-box-shadow: 0px 2px 3px rgba(50, 50, 50, 0.1); --selection-toolbar-background: rgba(245, 245, 245, 0.95); diff --git a/src/renderer/src/assets/styles/tailwind.css b/src/renderer/src/assets/styles/tailwind.css index cabf5fb6ca..4d9e0d4f00 100644 --- a/src/renderer/src/assets/styles/tailwind.css +++ b/src/renderer/src/assets/styles/tailwind.css @@ -1,5 +1,5 @@ @import 'tailwindcss' source('../../../../renderer'); -@import "tw-animate-css"; +@import 'tw-animate-css'; /* heroui */ @plugin '../../hero.ts'; diff --git a/src/renderer/src/components/Avatar/EmojiAvatar.tsx b/src/renderer/src/components/Avatar/EmojiAvatar.tsx index 6803156f59..e01024735a 100644 --- a/src/renderer/src/components/Avatar/EmojiAvatar.tsx +++ b/src/renderer/src/components/Avatar/EmojiAvatar.tsx @@ -25,8 +25,7 @@ const EmojiAvatar = ({ $fontSize={fontSize ?? size * 0.5} onClick={onClick} className={className} - style={style} - > + style={style}> {children} ) diff --git a/src/renderer/src/components/Avatar/ModelAvatar.tsx b/src/renderer/src/components/Avatar/ModelAvatar.tsx index b2b4634ec8..d1a6f98be9 100644 --- a/src/renderer/src/components/Avatar/ModelAvatar.tsx +++ b/src/renderer/src/components/Avatar/ModelAvatar.tsx @@ -25,8 +25,7 @@ const ModelAvatar: FC = ({ model, size, props, className }) => { justifyContent: 'center' }} {...props} - className={className} - > + className={className}> {first(model?.name)} ) diff --git a/src/renderer/src/components/CodeBlockView/HtmlArtifactsPopup.tsx b/src/renderer/src/components/CodeBlockView/HtmlArtifactsPopup.tsx index 9cee54603a..9453866f20 100644 --- a/src/renderer/src/components/CodeBlockView/HtmlArtifactsPopup.tsx +++ b/src/renderer/src/components/CodeBlockView/HtmlArtifactsPopup.tsx @@ -82,24 +82,21 @@ const HtmlArtifactsPopup: React.FC = ({ open, title, ht size="small" type={viewMode === 'split' ? 'primary' : 'default'} icon={} - onClick={() => setViewMode('split')} - > + onClick={() => setViewMode('split')}> {t('html_artifacts.split')} } - onClick={() => setViewMode('code')} - > + onClick={() => setViewMode('code')}> {t('html_artifacts.code')} } - onClick={() => setViewMode('preview')} - > + onClick={() => setViewMode('preview')}> {t('html_artifacts.preview')} @@ -123,8 +120,7 @@ const HtmlArtifactsPopup: React.FC = ({ open, title, ht onClick: () => handleCapture('clipboard') } ] - }} - > + }}> @@ -233,15 +232,13 @@ export function LocalBackupManager({ visible, onClose, localBackupDir, restoreMe icon={} onClick={handleDeleteSelected} disabled={selectedRowKeys.length === 0 || deleting} - loading={deleting} - > + loading={deleting}> {t('settings.data.local.backup.manager.delete.selected')} ({selectedRowKeys.length}) , - ]} - > + ]}> {t('common.confirm')} - ]} - > + ]}> setCustomFileName(e.target.value)} diff --git a/src/renderer/src/components/MarkdownEditor/index.tsx b/src/renderer/src/components/MarkdownEditor/index.tsx index e6bacb5f6e..427ff1ccc8 100644 --- a/src/renderer/src/components/MarkdownEditor/index.tsx +++ b/src/renderer/src/components/MarkdownEditor/index.tsx @@ -44,8 +44,7 @@ const MarkdownEditor: FC = ({ + rehypePlugins={[rehypeRaw, rehypeKatex]}> {inputValue || t('settings.provider.notes.markdown_editor_default_value')} diff --git a/src/renderer/src/components/MinApp/MinAppTabsPool.tsx b/src/renderer/src/components/MinApp/MinAppTabsPool.tsx index 6cebf23c75..af2c255f5f 100644 --- a/src/renderer/src/components/MinApp/MinAppTabsPool.tsx +++ b/src/renderer/src/components/MinApp/MinAppTabsPool.tsx @@ -99,8 +99,7 @@ const MinAppTabsPool: React.FC = () => { : { visibility: 'hidden' } } data-minapp-tabs-pool - aria-hidden={!shouldShow} - > + aria-hidden={!shouldShow}> {apps.map((app) => ( { root: { maxWidth: '400px' } - }} - > + }}> handleCopyUrl(e, url ?? appInfo.url)}>{appInfo.name} {appInfo.canOpenExternalLink && ( @@ -432,8 +431,7 @@ const MinappPopupContainer: React.FC = () => { + isTopNavbar={isTopNavbar}> handleGoBack(appInfo.id)}> @@ -461,8 +459,7 @@ const MinappPopupContainer: React.FC = () => { : t('minapp.add_to_sidebar') } mouseEnterDelay={0.8} - placement="bottom" - > + placement="bottom"> handleTogglePin(appInfo.id)} className={appInfo.isPinned ? 'pinned' : ''}> @@ -475,8 +472,7 @@ const MinappPopupContainer: React.FC = () => { : t('minapp.popup.open_link_external_off') } mouseEnterDelay={0.8} - placement="bottom" - > + placement="bottom"> @@ -551,8 +547,7 @@ const MinappPopupContainer: React.FC = () => { body: { borderTopLeftRadius: '10px' } - }} - > + }}> {/* 在所有小程序中显示GoogleLoginTip */} {!isReady && ( diff --git a/src/renderer/src/components/ModelIdWithTags.tsx b/src/renderer/src/components/ModelIdWithTags.tsx index 4556fb9787..bf902ae1c4 100644 --- a/src/renderer/src/components/ModelIdWithTags.tsx +++ b/src/renderer/src/components/ModelIdWithTags.tsx @@ -33,8 +33,7 @@ const ModelIdWithTags = ({ } mouseEnterDelay={0.5} - placement="top" - > + placement="top"> {model.name} diff --git a/src/renderer/src/components/OGCard.tsx b/src/renderer/src/components/OGCard.tsx index 1399c9e434..93446b6749 100644 --- a/src/renderer/src/components/OGCard.tsx +++ b/src/renderer/src/components/OGCard.tsx @@ -67,8 +67,7 @@ export const OGCard = ({ link, show }: Props) => { fontSize: '14px', lineHeight: '1.2', color: 'var(--color-text)' - }} - > + }}> {metadata['og:title'] || hostname} @@ -79,8 +78,7 @@ export const OGCard = ({ link, show }: Props) => { fontSize: '12px', lineHeight: '1.2', color: 'var(--color-text-secondary)' - }} - > + }}> {metadata['og:description'] || link} diff --git a/src/renderer/src/components/ObsidianExportDialog.tsx b/src/renderer/src/components/ObsidianExportDialog.tsx index 259410426c..0c3d1c0038 100644 --- a/src/renderer/src/components/ObsidianExportDialog.tsx +++ b/src/renderer/src/components/ObsidianExportDialog.tsx @@ -316,8 +316,7 @@ const PopupContainer: React.FC = ({ disabled: vaults.length === 0 || loading || !!error }} okText={i18n.t('chat.topics.export.obsidian_btn')} - afterClose={() => setOpen(open)} - > + afterClose={() => setOpen(open)}> {error && }
@@ -334,8 +333,7 @@ const PopupContainer: React.FC = ({ value={selectedVault} onChange={handleVaultChange} placeholder={i18n.t('chat.topics.export.obsidian_vault_placeholder')} - style={{ width: '100%' }} - > + style={{ width: '100%' }}> {vaults.map((vault) => (