mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-20 15:10:59 +08:00
copilot/fix-notes-bug
84 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
db4fcac768 |
feat: enhance Selector component with SearchableSelector and update exports
- Introduced a new SearchableSelector component for improved item selection with search functionality. - Updated the Selector component to streamline item selection and added type exports for better type safety. - Refactored the preferenceSchemas to use the new MathEngine type for better clarity. - Added comprehensive README documentation for the Selector component detailing usage and features. - Updated various components and stories to utilize the new Selector and SearchableSelector components. |
||
|
|
6c71b92d1d |
refactor: remove ProviderAvatar component and related files
- Deleted the ProviderAvatar component and its associated utility functions and stories to streamline the codebase. - Updated index.ts to remove the export of ProviderAvatar, ensuring a cleaner component structure. |
||
|
|
99962b740c |
feat: add EmojiAvatar component and update component exports
- Introduced a new EmojiAvatar component for enhanced avatar functionality. - Updated index.ts to export the new EmojiAvatar alongside existing components. - Removed the old display/EmojiAvatar component to streamline the codebase. - Adjusted various components to utilize the new Avatar structure and styling. |
||
|
|
ef4bede062 |
feat: introduce DescriptionSwitch component and update component exports
- Added a new DescriptionSwitch component to enhance the Switch functionality with a description feature. - Updated the exports in index.ts to include the new DescriptionSwitch alongside existing components. - Refactored the SettingsTab to utilize DescriptionSwitch for improved UI consistency. - Removed the InfoPopover component as part of the cleanup process. |
||
|
|
e6e1fb0404
|
refactor(button): migrate button from antd to heroui (#10292)
* fix(eslint): add Button to restricted antd imports * feat(ui): add Button component with Storybook stories Implement a reusable Button component wrapping HeroUIButton with proper TypeScript props. Add comprehensive Storybook stories demonstrating all button variants, colors, sizes and states. * refactor(components): update ActionIconButton implementation and usage Replace onClick with onPress prop and move icon into icon prop Update component to use @cherrystudio/ui Button instead of antd Simplify props interface and add displayName * refactor(ui): migrate antd buttons to @cherrystudio/ui components update button components across multiple files to use @cherrystudio/ui's Button component replace antd button props with equivalent @cherrystudio/ui props * refactor(InputEmbeddingDimension): replace antd Button with custom Button component Update the Button component to use the custom @cherrystudio/ui Button with updated props for better consistency and maintainability * refactor(components): migrate buttons from antd to @cherrystudio/ui Update button components in LocalBackupModals and LocalBackupManager to use @cherrystudio/ui instead of antd Add flex styling to modal footers for better button alignment * refactor(ProviderSetting): migrate Button components from antd to @cherrystudio/ui Update Button components to use @cherrystudio/ui implementation with new props like variant, color, and startContent Replace onClick handlers with onPress and adjust disabled states * refactor(ui): migrate antd buttons to cherrystudio ui buttons Update button components across multiple files to use @cherrystudio/ui Button instead of antd Button Standardize button props and behavior while maintaining existing functionality * refactor(NutstorePathSelector): update button props to use cherrystudio ui Replace antd Button with cherrystudio ui Button component and update props * refactor(S3BackupManager): migrate antd buttons to @cherrystudio/ui Update button components from antd to @cherrystudio/ui library Change button props to match new library's API (variant, color, onPress, etc) Adjust table props for consistency with new component library * refactor(TranslateButton): replace styled Button with cherrystudio Button component The custom styled Button was replaced with the cherrystudio Button component to maintain consistency across the UI and reduce custom styling code. The functionality remains the same but uses the library's built-in props for styling. * refactor(WebdavBackupManager): replace antd buttons with cherrystudio ui buttons Update button components to use cherrystudio ui library for consistency * refactor(ui): migrate buttons from antd to @cherrystudio/ui Update button components across multiple editor components to use @cherrystudio/ui's Button component instead of antd's. This includes updating props like size, variant, and event handlers to match the new component's API. * refactor(components): migrate buttons from antd to @cherrystudio/ui Update button components in HtmlArtifactsCard and HtmlArtifactsPopup to use @cherrystudio/ui's Button component instead of antd's Button. This includes updating props like icon to startContent, onClick to onPress, and type to variant/color. * refactor(ui): migrate button components from antd to hero ui - replace antd Button with hero ui Button component - update button props interface to extend hero ui props - adjust button props in OAuthButton and MinappPopupContainer * refactor(MultiSelectionPopup): migrate button components to @cherrystudio/ui Update button props to match new component library requirements * refactor(ApiKeyItem): migrate antd buttons to cherrystudio ui components Update button components in ApiKeyItem to use cherrystudio ui library instead of antd * refactor(ApiKeyListPopup): update button props to use new UI library syntax Update button components to use the new syntax from @cherrystudio/ui library, replacing antd Button props with the new variant, color, and isDisabled props. Also adjust icon placement and button types to match the new library's API. * refactor(SelectModelButton): replace antd Button with custom Button component Simplify button implementation by using custom Button component from ui library instead of antd. Remove unused styled component and event handling. * refactor(Preview): migrate ImageToolButton to use @cherrystudio/ui Update ImageToolButton component to use Button from @cherrystudio/ui instead of antd Change onClick prop to onPress to match new Button component API Update related usage in ImageToolbar component * refactor(ui): migrate buttons from antd to cherrystudio ui components Update button components across multiple files to use cherrystudio's Button component instead of antd's. This includes updating props like onClick to onPress and adjusting button styling props to match the new component's API. * refactor(ui): migrate antd buttons to @cherrystudio/ui buttons Update button components from antd to @cherrystudio/ui library Adjust button props to match new component API * refactor(components): update prop names and component usage - Rename onClick to onPress in ImageToolButton test props - Update isLoading to loading in S3BackupManager table props - Change ghost to variant in ProviderSetting button props - Replace antd Button with cherrystudio Button in PreferenceBasicTests * refactor(ImageToolButton): migrate from antd to @cherrystudio/ui * refactor(FilesPage): migrate Button components from antd to @cherrystudio/ui * refactor(SearchMessage): migrate Button components from antd to @cherrystudio/ui * refactor(TopicMessages): migrate Button components from antd to @cherrystudio/ui * refactor(TopicsHistory): migrate Button components from antd to @cherrystudio/ui * refactor(ChatNavigation): migrate Button components from antd to @cherrystudio/ui * refactor(CitationsList): migrate Button components from antd to @cherrystudio/ui * refactor(MessageGroupMenuBar): migrate Button components from antd to @cherrystudio/ui * refactor: reorganize button imports and adjust class order Consolidate Button imports from @cherrystudio/ui to be grouped with other imports Standardize className order for consistency across components * refactor(SelectModelPopup): replace HStack with Flex component for layout * feat: migrate PrivacyPopup from antd Button to @cherrystudio/ui Button - Replace antd Button import with @cherrystudio/ui Button - Update onClick to onPress event handler - Update type="primary" to variant="solid" color="primary" - Maintain existing functionality while following Hero UI API 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate NewTopicButton from antd Button to @cherrystudio/ui Button - Replace antd Button import with @cherrystudio/ui Button - Update size="small" to size="sm" - Update icon prop to startContent for Hero UI API - Update onClick to onPress event handler - Maintain existing styled-components with StyledButton wrapper 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate MessageMcpTool Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update two Button components with Hero UI API: - size="small" to size="sm" - onClick to onPress - variant="filled" to variant="solid" - Move icons to startContent prop - Maintain Dropdown.Button as antd component (not migrated) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate SettingsTab Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update settings icon button with Hero UI API: - type="text" to variant="light" - size="small" to size="sm" - icon prop to isIconOnly with child content - onClick to onPress event handler 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate AssistantTagsPopup Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update delete tag button with Hero UI API: - type="text" to variant="light" - danger prop to color="danger" - icon prop to isIconOnly with child content - onClick to onPress event handler 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate UpdateAppButton from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update styled Button component with Hero UI API: - onClick to onPress event handler - icon prop to startContent - color="orange" to color="warning" (closest equivalent) - variant="outlined" to variant="bordered" - size="small" to size="sm" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(NewTopicButton): replace styled-components with cn utility Simplify component styling by removing styled-components in favor of the cn utility * refactor: organize imports and remove unused event handlers remove duplicate Button imports and clean up stopPropagation handlers * feat: migrate KnowledgeContent Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update settings icon Button with Hero UI API: - type="text" to variant="light" - size="small" to size="sm" - icon prop to isIconOnly with child content - onClick to onPress event handler - Update ResponsiveButton styled component selector: - .ant-btn-icon + span to [data-slot="icon"] + [data-slot="label"] 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate KnowledgeDirectories Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update three Button components with Hero UI API: - Refresh button: type="text" to variant="light", icon to isIconOnly, onClick to onPress - Delete button: type="text" danger to variant="light" color="danger", icon to isIconOnly, onClick to onPress - Add directory button: type="primary" to variant="solid" color="primary", icon to startContent, disabled to isDisabled - Remove stopPropagation from add directory button as not needed with onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate KnowledgeFiles Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update three Button components with Hero UI API: - Add file button: type="primary" to variant="solid" color="primary", icon to startContent, disabled to isDisabled - Refresh button: type="text" to variant="light", icon to isIconOnly, onClick to onPress - Delete button: type="text" danger to variant="light" color="danger", icon to isIconOnly, onClick to onPress - Remove stopPropagation from add file button as not needed with onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate KnowledgeNotes Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update three Button components with Hero UI API: - Add note button: type="primary" to variant="solid" color="primary", icon to startContent, disabled to isDisabled - Edit button: type="text" to variant="light", icon to isIconOnly, onClick to onPress - Delete button: type="text" danger to variant="light" color="danger", icon to isIconOnly, onClick to onPress - Remove stopPropagation from add note button as not needed with onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate KnowledgeSitemaps Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update three Button components with Hero UI API: - Add sitemap button: type="primary" to variant="solid" color="primary", icon to startContent, disabled to isDisabled - Refresh button: type="text" to variant="light", icon to isIconOnly, onClick to onPress - Delete button: type="text" danger to variant="light" color="danger", icon to isIconOnly, onClick to onPress - Remove stopPropagation from add sitemap button as not needed with onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate KnowledgeUrls Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update three Button components with Hero UI API: - Add URL button: type="primary" to variant="solid" color="primary", icon to startContent, disabled to isDisabled - Refresh button: type="text" to variant="light", icon to isIconOnly, onClick to onPress - Delete button: type="text" danger to variant="light" color="danger", icon to isIconOnly, onClick to onPress - Remove stopPropagation from add URL button as not needed with onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate KnowledgeVideos Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update three Button components with Hero UI API: - Add video button: type="primary" to variant="solid" color="primary", icon to startContent, disabled to isDisabled - Refresh button: type="text" to variant="light", icon to isIconOnly, onClick to onPress - Delete button: type="text" danger to variant="light" color="danger", icon to isIconOnly, onClick to onPress - Remove stopPropagation from add video button as not needed with onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate MinAppsPage Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update two settings Button components with Hero UI API: - type="text" to variant="light" - icon prop to isIconOnly with child content - onClick to onPress event handler - Maintain className="nodrag" for draggable interface 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate MiniAppSettings Buttons from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update two Button components with Hero UI API: - Swap button: onClick to onPress event handler - Reset button: onClick to onPress event handler - Buttons use default Hero UI styling without additional props 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate NewAppButton from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update two Button components with Hero UI API: - Upload button: icon to startContent - Save button: type="primary" htmlType="submit" to variant="solid" color="primary" type="submit" - Maintain form submission functionality with type="submit" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: standardize button imports from @cherrystudio/ui * refactor(KnowledgeContent): replace icon prop with startContent in Button Improve consistency with component library by using startContent prop instead of children for icons * refactor(KnowledgeVideos): update button components to use startContent prop Use startContent prop for icons in buttons to improve consistency with the design system * refactor(MinAppsPage): improve button component structure by using startContent prop * feat: migrate AihubmixPage Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - size="small" to size="sm" - icon to startContent - onClick to onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate DmxapiPage Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - size="small" to size="sm" - icon to startContent - onClick to onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate NewApiPage Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - size="small" to size="sm" - icon to startContent - onClick to onPress - type="primary" to variant="solid" color="primary" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate SiliconPage Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - size="small" to size="sm" - icon to startContent - onClick to onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate TokenFluxPage Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - size="small" to size="sm" - icon to startContent - onClick to onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate ZhipuPage Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - type="text" to variant="light" - icon to startContent - onClick to onPress - disabled to isDisabled 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate Artboard Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - onClick to onPress for NavigationButton and CancelButton - type="link" to variant="light" - Maintain styled-components usage for NavigationButton and CancelButton 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate DynamicFormRender Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - icon to startContent - onClick to onPress - size="small" to size="sm" - danger to color="danger" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: convert Button inline styles to Tailwind CSS - Replace style={{borderTopLeftRadius: 0, borderBottomLeftRadius: 0, height: '32px'}} with className="rounded-l-none h-8" - Replace style={{flexShrink: 0, minWidth: 'auto', padding: '0 8px'}} with className="shrink-0 min-w-0 px-2" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate ImageUploader Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - size="small" to size="sm" - onClick to onPress 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(Artboard): replace inline styles with tailwind classes Use tailwind classes for consistent styling of navigation buttons instead of inline styles * feat: migrate AboutSettings Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - onClick to onPress for all Button components - loading to isLoading for CheckUpdateButton - disabled to isDisabled for CheckUpdateButton - Maintain CheckUpdateButton styled component 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate AssistantMemorySettings Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - type="text" to variant="light" + isIconOnly - icon to startContent - onClick to onPress - size="small" to size="sm" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate AssistantModelSettings Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - icon to startContent - onClick to onPress - variant="filled" to variant="solid" - danger + type="primary" to color="danger" variant="solid" - Add isIconOnly for icon-only buttons - Maintain ModelSelectButton styled component 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate AssistantPromptSettings Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - type="primary" to variant="solid" color="primary" - icon to startContent - onClick to onPress - Convert inline styles to Tailwind CSS: - style={{fontSize: 18, padding: '4px', minWidth: '28px', height: '28px'}} to className="text-lg p-1 min-w-7 h-7" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: consolidate Button imports from @cherrystudio/ui Move all Button imports from @cherrystudio/ui to be grouped with other imports from the same package for better consistency and maintainability * feat: migrate AssistantRegularPromptsSettings Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - type="text" to variant="light" - icon to startContent - onClick to onPress - Add isIconOnly for icon-only buttons - danger to color="danger" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: migrate DataSettings Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Update Button props with Hero UI API: - onClick to onPress for all buttons - icon to startContent for backup/restore buttons - danger to color="danger" for reset button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(NutstoreSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Update type/danger props to variant/color system - Convert loading to isLoading prop - Convert disabled to isDisabled prop - Update ghost prop to variant="ghost" - Add isIconOnly for folder icon button - Migrate startContent pattern for icons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(S3Settings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert icon props to startContent pattern - Convert loading to isLoading prop - Convert disabled to isDisabled prop 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(SiyuanSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(WebDavSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert icon props to startContent pattern - Convert loading to isLoading prop - Convert disabled to isDisabled prop 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(YuqueSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(DisplaySettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert icon props to startContent pattern - Convert variant="text" to variant="light" - Add isIconOnly for icon-only buttons - Replace inline styles with Tailwind CSS classes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(PreprocessProviderSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Convert type="text" to variant="light" - Convert size="small" to size="sm" - Convert icon to startContent pattern - Add isIconOnly for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(NotionSettings): replace antd Button with cherrystudio Button and update prop Update the Button import to use cherrystudio's component instead of antd's * refactor(settings): migrate Button props to use startContent and isDisabled Update Button components in LocalBackupSettings to use startContent instead of icon and isDisabled instead of disabled for consistency with the updated UI library * refactor(JoplinSettings): replace Button import and update onPress prop Use Button component from @cherrystudio/ui instead of antd Update onClick to onPress for consistency with component API * refactor(MarkdownExportSettings): replace antd Button with cherrystudio Button in markdown export Update the Button component import and props to use the cherrystudio UI library version instead of antd for consistency * refactor: organize imports in settings components Move Button import from cherrystudio/ui to be grouped with other imports from the same package for better consistency and readability * refactor(AddMcpServerModal): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert icon prop to startContent pattern 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(BuiltinMCPServerList): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Convert type="text" to variant="light" - Convert size="small" to size="sm" - Convert icon to startContent pattern - Convert disabled to isDisabled prop - Add isIconOnly for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(InstallNpxUv): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert type="primary" to variant="solid" color="primary" - Convert type="link" to variant="light" - Convert shape="circle" to radius="full" - Convert size="small" to size="sm" - Convert loading/disabled to isLoading/isDisabled - Convert icon to startContent pattern - Add isIconOnly for icon-only button - Convert green color to success color 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(McpServerCard): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers (removing e.stopPropagation) - Convert type="text" to variant="light" - Convert size="small" to size="sm" - Convert shape="circle" to radius="full" - Convert danger to color="danger" - Convert icon to startContent pattern - Add isIconOnly for icon-only buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(MCPSettings): reorder Button imports for consistency Move Button imports to be grouped with other UI component imports for better readability and maintainability * refactor(McpServersList): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert type="default" to variant="solid" - Convert shape="round" to radius="full" - Convert icon to startContent pattern 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(McpServerCard): remove unused event parameter from click handlers The event parameter was not being used in handleOpenUrl and onClickDetails handlers, so it was removed to simplify the code. * refactor(McpServerCard): remove data-no-dnd attribute from Button * refactor(McpSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert danger to color="danger" - Convert type="text" to variant="light" - Convert type="primary" to variant="solid" color="primary" - Convert shape="round" to radius="full" - Convert loading/disabled to isLoading/isDisabled - Convert icon to startContent pattern - Add isIconOnly for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(McpSettingsNavbar): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Convert type="text" to variant="light" - Convert size="small" to size="sm" - Convert icon to startContent pattern - Replace inline styles with Tailwind CSS classes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(NpxSearch): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Convert type="text" to variant="light" - Convert size="small" to size="sm" - Convert icon to startContent pattern - Add isIconOnly for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(SyncServersPopup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert type="default" to variant="solid" - Convert type="primary" to variant="solid" color="primary" - Convert loading/disabled to isLoading/isDisabled 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(MCPSettings/index): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert type="default" to variant="solid" - Convert shape="circle" to radius="full" - Convert icon to startContent pattern - Add isIconOnly for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(MemorySettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Convert type="text" to variant="light" - Convert type="primary" to variant="solid" color="primary" - Convert size="large" to size="lg" - Convert size="small" to size="sm" - Convert loading/disabled to isLoading/isDisabled - Convert danger to color="danger" - Convert icon to startContent pattern - Add isIconOnly for icon-only buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(UserSelector): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Convert type="default" to variant="solid" - Convert icon to startContent pattern - Add isIconOnly for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(DefaultAssistantSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Convert type="text" to variant="light" - Convert icon to startContent pattern - Add isIconOnly for icon-only button - Replace inline styles with Tailwind CSS classes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(QuickModelPopup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Change icon prop to startContent - Update type="text" to variant="light" - Add isIconOnly prop for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(NotesSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for all buttons - Change type="default" to variant="solid" - Change type="primary" to color="primary" - Update loading to isLoading prop - Update disabled to isDisabled prop - Change icon prop to startContent - Replace inline style with Tailwind CSS class (ml-2) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(AnthropicSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Change type="primary" to color="primary" - Update loading to isLoading prop 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ModelEditContent): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for all buttons - Change size="small" to size="sm" - Update icon prop to startContent for save and reset buttons - Change iconPosition="end" to endContent for more settings toggle - Update type="text" to variant="light" and add isIconOnly for reset button - Change type="primary" to color="primary" - Replace htmlType="submit" with type="submit" - Update variant="filled" to variant="solid" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ModelTypeSelector): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Change size="small" to size="sm" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(GithubCopilotSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for all buttons - Change type="primary" to color="primary" - Change type="primary" danger to color="danger" - Update size="small" to size="sm" - Update loading to isLoading prop - Update disabled to isDisabled prop - Change icon prop to startContent for copy button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(AddModelPopup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Change type="primary" to color="primary" - Replace htmlType="submit" with type="submit" - Change size="middle" to size="md" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ModelList): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for all buttons - Change type="text" to variant="light" and add isIconOnly for icon button - Change type="primary" to color="primary" - Change type="default" to variant="solid" - Update disabled to isDisabled prop - Change icon prop to startContent for all buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ModelListGroup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Change type="text" to variant="light" - Update disabled to isDisabled prop - Change icon prop to startContent - Remove e.stopPropagation() as no longer needed - Add isIconOnly prop for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ModelListItem): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for both buttons - Change type="text" to variant="light" - Update disabled to isDisabled prop - Change icon prop to startContent for both buttons - Add isIconOnly prop for icon-only buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(NewApiAddModelPopup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Change type="primary" to color="primary" - Replace htmlType="submit" with type="submit" - Change size="middle" to size="md" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(NewApiBatchAddModelPopup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Change type="primary" to color="primary" - Replace htmlType="submit" with type="submit" - Change size="middle" to size="md" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ProviderList): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Update disabled to isDisabled prop - Change icon prop to startContent - Keep existing style attributes for custom styling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ProviderOAuth): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for both buttons - Change shape="round" to radius="full" - Change icon prop to startContent for both buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(UrlSchemaInfoPopup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Change type="link" to variant="light" - Change size="small" to size="sm" - Change icon prop to startContent - Add isIconOnly prop for icon-only button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(QuickAssistantSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for both styled buttons - Change type="primary" to color="primary" - Change type="default" to color="default" - Update styled component to use new Button from @cherrystudio/ui 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(QuickPhraseSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for all buttons - Change type="text" to variant="light" - Change icon prop to startContent for all buttons - Change danger prop to color="danger" - Add isIconOnly prop for all icon-only buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(SelectionAssistantSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for both buttons - Change type="link" to variant="light" - Change icon prop to startContent - Keep existing style attributes for custom styling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ActionsListItem): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for all buttons - Change type="link" to variant="light" - Change size="small" to size="sm" - Change danger prop to color="danger" - Add isIconOnly prop for all icon-only buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(MacProcessTrustHintModal): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for both buttons - Change type="link" to variant="light" - Change type="primary" to color="primary" - Keep existing style attributes for custom styling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(SelectionActionSearchModal): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler - Change type="link" to variant="light" - Change size="small" to size="sm" - Keep existing style attributes for custom styling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(SelectionFilterListModal): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handler for both modal buttons - Change type="primary" to color="primary" - Keep existing key attributes for modal footer 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(SettingsActionsListHeader): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers - Update icon prop to startContent with Plus icon - Change disabled to isDisabled - Add color="primary" for primary button style - Update styled ResetButton to use variant="light" 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ShortcutSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for all buttons - Update icon prop to startContent for icon buttons - Change disabled to isDisabled - Convert size="small" to size="sm" - Replace shape="circle" with isIconOnly for circular buttons - Migrate reset undo button, clear button, and reset all button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(ApiServerSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for all buttons - Update icon prop to startContent for documentation and copy buttons - Change type="primary" to color="primary" - Convert type="link" to variant="light" for regenerate button - Change disabled to isDisabled for input button and regenerate button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(CustomLanguageModal): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for modal footer buttons - Change type="primary" to color="primary" for save button - Convert icon prop to startContent with isIconOnly for emoji button - Migrate cancel, save, and emoji picker buttons to Hero UI API 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(CustomLanguageSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for all buttons - Update icon prop to startContent for edit, delete, and add buttons - Change type="primary" to color="primary" for add button - Convert danger prop to color="danger" for delete button - Migrate table action buttons and primary add button to Hero UI API 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(AddSubscribePopup): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert type="primary" to color="primary" for submit button - Change htmlType="submit" to type="submit" following Hero UI API - Migrate form submit button from antd to Hero UI 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(BlacklistSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for all buttons - Change type="primary" to color="primary" for subscribe buttons - Convert ghost prop to variant="ghost" - Change disabled to isDisabled for all button states - Migrate save, add subscribe, update subscribe, and delete buttons 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(WebSearchProviderSetting): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for API key list and check buttons - Change type="text" to variant="light" for API key list button - Convert icon prop to startContent with isIconOnly for list button - Update size="small" to size="sm" - Change ghost prop to variant="ghost" and type to color for check button - Convert disabled to isDisabled for API checking state 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(TranslateSettings): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress for more settings button - Simple migration for modal footer button 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(MigrateApp): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for all migration buttons - Change type="primary" to color="primary" for primary buttons - Convert disabled to isDisabled for migration in progress button - Change size="small" to size="sm" for debug button - Convert type="dashed" to variant="bordered" for styled buttons - Migrate all buttons in migration workflow stages 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(SelectionActionApp): migrate Button from antd to @cherrystudio/ui - Replace antd Button import with @cherrystudio/ui Button - Convert onClick to onPress handlers for all window control buttons - Change type="text" to variant="light" for all title bar buttons - Update icon prop to startContent for pin, opacity, minimize, and close buttons - Add isIconOnly prop for all icon-only buttons in the title bar - Migrate styled WinButton component to use Hero UI Button as base 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * style(ActionIconButton): remove fixed dimensions and add size prop Simplify button styling by removing fixed height/width and using size="sm" prop instead * refactor(AssistantPromptSettings): migrate from antd Popover to hero-ui components Replace antd Popover with hero-ui Popover and Tooltip components for better consistency Rename EmojiButtonWrapper to EmojiDeleteButtonWrapper for clarity * style(AssistantModelSettings): add size prop to delete button in model settings * style(settings): standardize button sizes and replace Space.Compact with Flex Consistently apply 'sm' size to buttons across settings components and replace deprecated Space.Compact with Flex component for better layout consistency * refactor(ApiServerSettings): replace custom buttons with standard Button component remove custom styled InputButton and RegenerateButton components in favor of using the standard Button component with appropriate props * style(ProviderSetting): make settings button icon-only for consistency * style(ui): update icon styling and button props remove global lucide icon color override update button components to use consistent props * style(ProviderList): adjust button size to match design * feat(theme): add foreground color calculation for primary theme Calculate and set foreground color based on primary theme color to ensure proper contrast * style(KnowledgeFiles): make button size consistent with other buttons * test: update test snapshots for button components Update test snapshots to reflect changes in button styling and accessibility attributes. The changes include updated class names, ripple effects, and focus states. --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com> Co-authored-by: MyPrototypeWhat <daoquqiexing@gmail.com> |
||
|
|
8a9b633af2 | Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 | ||
|
|
5ac09d5311
|
refactor: migrate to toast from antd message (#10233)
* style(eslint): reorganize eslint config comments and rules Move comments to consistent positions above their corresponding rules Update antd import restriction to include 'message' component * fix(eslint): reorganize eslint config to enable custom rules * fix(eslint): update antd import restriction to include message Prevent direct imports of both Flex and message from antd, enforcing usage of custom components * feat(migration): add toast utilities to migrate and test apps Initialize toast utilities on window object for both migration and test applications to enable toast notifications * build(ui): add path aliases for types and utils modules * refactor(toast): move toast utilities to ui package for better reusability Centralize toast utilities in the @cherrystudio/ui package to improve code organization and reuse across multiple components. This change includes: - Moving toast implementation to ui package - Updating all imports to use the new location - Adding proper type definitions * refactor: replace antd message with window.toast for consistency Replace all instances of antd's message component with window.toast throughout the application to maintain consistent notification behavior. Also add an ignore rule for dataRefactorTest files in eslint config. |
||
|
|
d4fd8ffdcc |
refactor(SettingsTab): update Selector component usage for consistency
- Simplified Selector component usage in SettingsTab by removing deprecated props and updating to the new API. - Added size and label props to enhance accessibility and user experience. - Ensured consistent handling of selected keys and selection change events across multiple instances of Selector. |
||
|
|
a72feebead
|
refactor: migrate Switch from antd to heroui (#10237)
* refactor(eslint): reorganize eslint config for better maintainability Move ignores section and oxlint configs to be grouped with other configurations * fix(eslint): update antd import restriction to include Switch Add Switch to restricted imports from antd to enforce using custom components * feat(ui): add Switch component wrapper and update imports Add a wrapper for the Switch component from @heroui/react and export it through @cherrystudio/ui. Update eslint rules to prevent direct imports from @heroui/react and update imports in TranslateSettings to use the new wrapper * refactor(ui): replace antd Switch with custom Switch component Migrate all instances of antd Switch component to the custom Switch component from @cherrystudio/ui. This includes updating props from `checked` to `isSelected` and `onChange` to `onValueChange` to match the new component's API. Also updates size prop from `small` to `sm` where applicable. The change ensures consistency across the UI and reduces dependency on antd components. All affected files have been updated to use the new Switch component with proper prop mappings. * feat(ui): enhance Switch component with loading state Add loading state support to Switch component by showing a spinner when isLoading is true and disabling interaction during loading. Update all Switch component usages to use the new isLoading prop instead of loading. * fix(Switch): prevent thumbIcon override when isLoading is true Implement type constraints to disallow thumbIcon when isLoading is true Add ref forwarding support and export enhanced props type * fix(settings): update Switch component props to use consistent naming Change deprecated 'defaultChecked' and 'disabled' props to 'defaultSelected' and 'isDisabled' respectively to match component library updates * refactor(Switch): simplify type definition by removing redundant ref prop * refactor(Switch): simplify props type definition for loading state Remove complex union type in favor of simpler interface extending SwitchProps * docs(ui): add jsdoc for CustomizedSwitch component Add documentation for the CustomizedSwitch component to clarify its purpose and the isLoading prop usage * fix(eslint): comment out heroui import restriction rule Temporarily disable the heroui import restriction to allow direct imports while wrapped components are being updated * style: fix formatting and spacing in settings components |
||
|
|
ecc9923050 | Merge remote-tracking branch 'origin/main' into v2 | ||
|
|
e469016775 |
style(Selector.stories): simplify Selector component stories by condensing JSX structure
- Refactored the Selector component stories to use a more concise JSX format, improving readability. - Ensured consistent formatting across size variations for better maintainability. |
||
|
|
15569387c7 |
feat(ui): implement new Selector component with enhanced functionality
- Replaced the existing Selector component with a new implementation using HeroUI's Select and SelectItem. - Updated the props structure to support items and selection change handling. - Added a new story file for the Selector component, showcasing various use cases including single and multiple selection modes, size variations, and disabled states. - Improved type definitions for better clarity and usability. |
||
|
|
4f746842a5
|
refactor: migrate Flex from antd to custom Flex component (#10083)
* refactor(components): rename HStack and VStack to RowFlex and ColFlex for clarity rename HStack to RowFlex and VStack to ColFlex across all components to better reflect their purpose as flex containers with row and column directions. This improves code readability and maintainability while keeping the same functionality. All references to these components have been updated accordingly. * refactor(layout): migrate layout components from .ts to .tsx The layout components have been moved from TypeScript (.ts) to TypeScript with JSX (.tsx) to better support JSX syntax and improve type safety. The functionality remains unchanged. * refactor(Layout): convert styled Box component to functional component Improve maintainability by converting styled-component to a functional component with explicit style props. This provides better type safety through CSSProperties interface and makes the component easier to debug. * refactor(Layout): restructure Box component and convert styled components to functional - Replace styled-components with functional components for Stack and Center - Rename style variable to _style in Box component to avoid naming conflict - Add style prop to Box component to allow external style overrides * refactor(components): rename HSpaceBetweenStack to SpaceBetweenRowFlex for clarity * refactor(Layout): pass through props in Stack components Allow additional props to be passed to Stack and its variants for better flexibility. Convert RowFlex from styled component to regular component for consistency. * refactor(Layout): convert SpaceBetweenRowFlex from styled to component Improve maintainability by converting styled component to a regular component that explicitly passes justifyContent prop * refactor(Layout): convert ColFlex to component and type RowFlex props Improve type safety by explicitly omitting flexDirection from StackProps and convert ColFlex from styled component to regular component for consistency * refactor(Layout): convert BaseTypography from styled to component Improve type safety and maintainability by converting styled component to regular React component with TypeScript interface * refactor(Layout): remove unused BaseTypography component * refactor(Layout): remove unused Container component and interface * refactor(layout): rename Stack to Flex and use CSSProperties types The Stack component was renamed to Flex to better reflect its purpose and align with common naming conventions. The interface properties were also updated to use CSSProperties types for better type safety and consistency with CSS standards. * refactor(Layout): move FlexProps interface and comment out unused ButtonProps Clean up component interfaces by moving FlexProps closer to its usage and commenting out unused ButtonProps interface to reduce clutter * refactor(layout): standardize flex props from alignItems/justifyContent to align/justify The changes standardize the flex-related props in the Layout component and across multiple files from using alignItems/justifyContent to the shorter align/justify. This improves consistency and reduces verbosity in the codebase while maintaining the same functionality. All instances of alignItems have been replaced with align and justifyContent with justify in Flex, RowFlex, ColFlex and related components. The changes are purely syntactic and do not affect the actual layout behavior. This refactoring makes the code more maintainable by using a consistent naming convention for flex properties throughout the application. * refactor(Layout): extend BoxProps with React div props * feat(Layout): add flexWrap prop to Flex component interface Add flexWrap property to FlexProps interface to support CSS flex-wrap functionality. Also replace antd Flex with custom Flex component in TagFilterSection. * refactor(components): replace antd Flex with custom Layout components Consolidate Flex component usage across multiple files by replacing antd's Flex with custom Layout components (Flex, ColFlex, RowFlex) for better maintainability and consistency * refactor(components): migrate antd Flex tu custom Flex * refactor(components): update layout component usage for consistency replace RowFlex with ColFlex where appropriate and align prop names * refactor(tests): rename HStack to RowFlex in test components Update test snapshots and mock components to reflect the component name change from HStack to RowFlex Remove unused data-vertical attribute from preview container * refactor(Layout): pass through props and merge styles in Box and Flex components Improve component flexibility by allowing additional props to pass through and properly merging style objects in both Box and Flex components * refactor(Layout): make Flex component props optional with undefined defaults * test: update TagFilterSection snapshot to include wrap style * perf(Layout): optimize Box component style calculation with useMemo * docs: fix typo in Layout component comment * refactor(Layout): update BoxProps to use CSSProperties types Standardize prop types by using CSSProperties for style-related props to improve type safety and consistency with React's style system * feat(Layout): add wrap prop to Flex component * style(TagFilterSection): update snapshot styling to use flex-wrap property * refactor(Layout): simplify layout components by using Tailwind CSS classes Remove custom style calculations and props in favor of Tailwind utility classes * refactor: replace inline styles with Tailwind CSS classes for consistent styling style: update spacing and alignment utilities across components * refactor(tests): update test snapshots to use tailwind classes Replace inline styles with tailwind classes in test snapshots and update test assertions to match. This improves consistency with the codebase's styling approach. * style: adjust spacing and gaps in UI components for consistency * style: replace inline styles with tailwind classes for consistency Refactor various components to use tailwind classes instead of inline styles to maintain consistency and improve readability. Changes include: - Replacing style attributes with tailwind classes for spacing, margins, and padding - Standardizing gap sizes across components - Using tailwind for width, height, and other layout properties - Updating test files to match new class names * style(settings): replace inline styles with tailwind classes for consistency Refactor settings components to use tailwind gap utility instead of inline styles for better maintainability and consistency across the codebase * refactor(styles): replace inline styles with tailwind classes for consistency * feat(eslint): add rule to restrict antd Flex imports Enforce using custom Layout components instead of antd's Flex by adding a restricted import rule * refactor: migrate flex layout from antd props to tailwind classes - Replace antd Flex component props with tailwind classes for consistency - Update gap and alignment values to use tailwind's spacing scale - Remove unused antd Flex imports to clean up dependencies * style(settings): adjust spacing and layout in various settings components - Add gap spacing between elements in multiple settings components - Remove redundant flex class in some components - Standardize gap sizes across related components * refactor(ui): replace inline styles with tailwind classes for consistency Replace various inline style attributes with equivalent tailwind classes across multiple components to maintain consistent styling approach. Changes include margin, padding, width, and flex properties. - Convert style attributes to tailwind classes - Standardize spacing values using tailwind's spacing scale - Improve maintainability by using utility classes * style(ui): adjust spacing in model list group header * style(css): wrap base styles in @layer for better organization * style(css): fix indentation and nesting in global styles * style(settings): adjust spacing in model list and convert subtitle to cn Refactor SettingSubtitle to use cn utility for better className handling Add gap spacing between model list items for improved layout * style(css): move some styles from base layer to outer in index.css * refactor(components): replace HStack with RowFlex for consistency Update layout components to use RowFlex instead of HStack to maintain consistent naming * style: reorder imports in useAppInit and BaseApiClient files * fix(MinAppTabsPool): wrong import path * refactor: update style file extensions from scss to css Update file extensions and comments to reflect the change from SCSS to CSS stylesheets * feat(layout): add Flex component and its variants Introduce new Flex component with Box, RowFlex, SpaceBetweenRowFlex, ColFlex and Center variants to provide reusable layout components * refactor: migrate layout components to @cherrystudio/ui package This commit updates all imports of layout components (Box, Flex, RowFlex, ColFlex, etc.) from '@renderer/components/Layout' to '@cherrystudio/ui' across the codebase. The change also includes updating related test files and eslint configuration to reflect this migration. This refactoring aims to centralize layout components in a shared package for better maintainability and consistency. * docs(eslint): update comment and restricted imports rule Update comment to clarify the purpose of the rule and add a TODO note for future migration * docs(ui): update migration status for layout components Mark Layout/* components as migrated and refactored in both Chinese and English documentation * docs: update migration status for Layout components |
||
|
|
aab941d89c
|
refactor: migrate sortable (#10204)
* refactor: rename sortable dir * refactor: migrate Sortable to the ui package * feat: add stories for Sortable * refactor: add scroller to the vertical story * refactor: improve hints and width * refactor: simplify item style * fix: lint errors * chore: dependencies * refactor: move hooks * fix: import errors * style: format * style: format |
||
|
|
1b04fd065d |
refactor(ui): enhance CustomCollapse and ToolsCallingIcon components
- Refactored CustomCollapse to utilize Accordion and AccordionItem from HeroUI, simplifying props and improving functionality. - Updated ToolsCallingIcon to accept TooltipProps for better customization. - Revised stories for CustomCollapse to reflect new prop structure and added examples for various use cases. - Cleaned up unnecessary props and improved documentation in story files. |
||
|
|
76b3ba5d7e |
feat(ui): integrate @storybook/addon-themes and enhance CustomCollapse component
- Added @storybook/addon-themes to package.json and yarn.lock for theme support in Storybook. - Updated CustomCollapse component to utilize HeroUI's Accordion and AccordionItem for improved functionality and styling. - Removed the ReasoningIcon component as it was deemed unnecessary. - Enhanced ProviderAvatar component to ensure consistent className handling. - Added new stories for FileIcons, SvgSpinners180Ring, and ToolsCallingIcon to showcase their usage and variations. |
||
|
|
d4b0272fe7
|
refactor: prefer import type (#10190)
* style(linter): enable consistent-type-imports rule in typescript * chore: add biome to lint script for improved code formatting * chore: add oxlint-specific lint script for faster linting * refactor: use type-only imports for better type safety and clarity |
||
|
|
59bf94b118 |
refactor(ui): update migration status and enhance component implementations
- Increased the refactored component count to 18 and reduced pending migrations to 184 in the migration status files. - Improved the Ellipsis, ListItem, MaxContextCount, and ThinkingEffect components by simplifying their structure and enhancing styling. - Updated the tsconfig.json to adjust the root directory for better project organization. - Removed unnecessary alias configurations in tsdown.config.ts for cleaner setup. - Added new stories for Ellipsis and ListItem components to improve documentation and showcase their usage. |
||
|
|
f48674b2c7 |
refactor(ui): clean up component code and improve styling
- Refactored EmojiIcon, ExpandableText, and ProviderAvatar components for better readability and consistency. - Simplified JSX structure and improved styling in ExpandableText and EmojiAvatar stories. - Enhanced code formatting in various files for improved maintainability. |
||
|
|
56af6f43c0 |
refactor(ui): update button elements to include type attribute
- Added type="button" to button elements in DividerWithText and Icon stories for better accessibility and to prevent unintended form submissions. - Improved code consistency across button components in the UI stories. |
||
|
|
f83c3e171e |
chore(ui): update migration status and component files
- Updated migration status to reflect the migration of additional components, reducing the total migrated count to 34 and increasing the refactored count to 14. - Enhanced component files by refactoring several components to improve structure and styling, including CopyButton, CustomTag, and IndicatorLight. - Added new stories for components such as CopyButton, CustomCollapse, and DividerWithText to improve documentation and showcase usage. - Adjusted TypeScript configuration to include story files for better type checking. |
||
|
|
d397a43806 |
fix: typecheck/test:lint/format:check
feat: add data related test |
||
|
|
8cc6b08831 |
chore(ui): update package.json and migration status files
- Reformatted keywords and files array in package.json for better readability. - Updated migration status to reflect the migration of additional components, increasing the total migrated count to 46 and reducing pending migrations to 190. - Added new components to the migration status table, including ErrorBoundary and ProviderAvatar, while removing deprecated components like ErrorTag, SuccessTag, and WarnTag. |
||
|
|
ffe897d58c |
chore: update yarn.lock and refactor SettingsTab component
- Added "@typescript-eslint/visitor-keys@npm:8.43.0" to yarn.lock. - Refactored getVirtualIndexes in DraggableVirtualList to use item.index. - Replaced useSettings with usePreference for codeFancyBlock in SettingsTab. - Updated Switch component to use setCodeFancyBlock directly. |
||
|
|
c0cca4ae44 |
chore: update configuration and improve cache management
- Added "packages/ui/scripts/**" to .oxlintrc.json for linting. - Excluded ".claude/**" from biome.jsonc. - Refactored API path types in apiPaths.ts for better clarity. - Updated error handling in errorCodes.ts to ensure stack trace is always available. - Modified preferenceSchemas.ts to include new features and updated generated timestamp. - Cleaned up tsconfig.json for better organization. - Adjusted CustomTag component to improve rendering logic. - Enhanced CodeEditor utility functions for better type safety. - Improved Scrollbar story for better readability. - Refactored CacheService to streamline comments and improve documentation. - Updated useCache and useSharedCache hooks for better clarity and functionality. - Cleaned up selectionStore and settings.ts by commenting out deprecated actions. - Updated DataApiHookTests for better optimistic update handling. |
||
|
|
8981d0a09d
|
refactor(CodeEditor): decouple CodeEditor and global settings (#10163)
* refactor(CodeEditor): decouple CodeEditor and global settings * refactor: improve language extension fallbacks * refactor: make a copy of CodeEditor in the ui package * refactor: update ui CodeEditor and language list * refactor: use CodeEditor from the ui package * feat: add a story for CodeEditor |
||
|
|
79c9ed963f |
feat: update UI package with Storybook integration and Tailwind CSS v4 configuration
- Added Storybook scripts for development and building the UI components. - Updated package.json to include new dependencies for Storybook and styled-components. - Revised README to reflect changes in Tailwind CSS configuration, transitioning to v4 and removing the tailwind.config.js file. - Enhanced the tsdown configuration to mark additional peer dependencies as external. - Removed outdated Tailwind CSS configuration file to streamline the setup. |
||
|
|
04ef5edea2 |
feat: update migration status and add new UI components
- Updated migration status documentation to reflect the migration of 43 components, with 193 pending. - Enhanced the component status table with new entries for MaxContextCount, CollapsibleSearchBar, ImageToolButton, and InfoPopover. - Added implementations for the new components, improving the UI library's functionality. - Updated index.ts to export the newly added components for better accessibility. |
||
|
|
046ed3edef |
feat: update migration status and add ListItem and EditableNumber components
- Updated migration status documentation to reflect the migration of 38 components, with 198 pending. - Enhanced the component status table with new entries for ListItem and EditableNumber. - Added ListItem and EditableNumber components with their respective implementations and styles. - Updated index.ts to export the newly added components for improved accessibility. |
||
|
|
6eb9ab30b0 |
feat: update migration status and add new UI components
- Updated migration status documentation to reflect the migration of 36 components, with 200 pending. - Enhanced the component status table with new entries for CustomCollapse, EmojiAvatar, ResetIcon, OcrIcon, ToolIcon, WrapIcon, UnWrapIcon, HelpTooltip, Selector, and WarnTooltip. - Updated index.ts to export the newly added components for improved accessibility. |
||
|
|
1c27481813 |
feat: update migration status and add new UI components
- Updated migration status documentation to reflect the migration of 26 components, with 210 pending. - Enhanced the component status table with detailed descriptions and categorized components. - Introduced new components: CustomTag, ErrorTag, SuccessTag, WarnTag, CopyIcon, DeleteIcon, EditIcon, and RefreshIcon. - Updated index.ts to export the newly added components for improved accessibility. |
||
|
|
2e07b4ea58 |
feat: add migration status documentation and new UI components
- Introduced migration status documentation in both English and Chinese to track the progress of the UI component library migration. - Added new UI components including CopyButton, DividerWithText, EmojiIcon, IndicatorLight, Spinner, TextBadge, and various display and icon components. - Updated the index.ts file to export the newly added components for easier access. - Enhanced the directory structure and component classification guidelines for better organization and clarity. |
||
|
|
c936bddfe7 |
feat: add index.ts type definitions for UI components
- Introduced a new TypeScript definition file (index.ts) to support the newly added UI component library. - This file will facilitate better type checking and autocompletion for developers using the library. |
||
|
|
d3028f1dd1 |
feat: add @cherrystudio/ui component library
- Introduced a new UI component library for Cherry Studio, including various components such as buttons, inputs, and layout elements. - Updated configuration files to include the new library and its dependencies. - Enhanced the project structure to support modular imports and TypeScript definitions for better development experience. |