fix: Add dropdown size control to Select components and improve UI#5290
fix: Add dropdown size control to Select components and improve UI#5290christian-byrne merged 12 commits intomainfrom
Conversation
🎭 Playwright Test Results✅ Tests completed successfully! ⏰ Completed at: 09/11/2025, 08:02:27 AM UTC 📊 Test Reports by Browser
🎉 Click on the links above to view detailed test results for each browser configuration. |
5efe1d4 to
a44580c
Compare
There was a problem hiding this comment.
Review Summary (Automated Claude Review)
I've reviewed the dropdown size control enhancements and UI improvements. The implementation follows ComfyUI patterns well with proper Vue 3 Composition API usage and comprehensive Storybook documentation.
Key Strengths:
- Clean component architecture with appropriate separation of concerns
- Excellent TypeScript integration and prop definitions
- Comprehensive Storybook stories demonstrating all variants
- Proper i18n usage and accessibility considerations
- Maintains backward compatibility
Areas for improvement:
- Consider using Tailwind classes over inline styles for better maintainability
- Add runtime validation for CSS grid parameters
- Ensure consistent documentation across all props
- Reference existing design tokens for sizing consistency
The changes provide valuable flexibility for dropdown sizing while maintaining the established ComfyUI design patterns. Overall good implementation with room for minor refinements.
1acd20f to
423ddaa
Compare
4293ee7 to
b5783c2
Compare
|
Based on Alex (Designer)’s feedback, I updated the design and renamed some components. In addition, from the code reviews here, I refactored the long styling code to use the cn util throughout. |
af95050 to
a4883e7
Compare
a39ccbc to
a346018
Compare
DrJKL
left a comment
There was a problem hiding this comment.
A few nits, but I like moving more towards this pattern a lot.
a346018 to
a82ab5c
Compare
d86aad8 to
d24fe3c
Compare
maintainability per PR feedback - Replace CardGridList component with createGridStyle utility function - Add runtime validation for grid column values - Remove !important usage in MultiSelect, use cn() function instead - Extract popover sizing logic into usePopoverSizing composable - Improve class string readability by splitting into logical groups - Use Tailwind size utilities (size-8, size-10) instead of separate width/height - Remove magic numbers in SearchBox, align with button sizes - Rename BaseWidgetLayout to BaseModalLayout for clarity - Enhance SearchBox click area to cover entire component - Refactor long class strings using cn() utility across components
fa5b955 to
86f5798
Compare
…5290) * feature: size adjust * feature: design adjust * fix: popover width, height added * fix: li style override * refactor: improve component readability and maintainability per PR feedback - Replace CardGridList component with createGridStyle utility function - Add runtime validation for grid column values - Remove !important usage in MultiSelect, use cn() function instead - Extract popover sizing logic into usePopoverSizing composable - Improve class string readability by splitting into logical groups - Use Tailwind size utilities (size-8, size-10) instead of separate width/height - Remove magic numbers in SearchBox, align with button sizes - Rename BaseWidgetLayout to BaseModalLayout for clarity - Enhance SearchBox click area to cover entire component - Refactor long class strings using cn() utility across components * fix: BaseWidgetLayout => BaseModalLayout * fix: CardGrid deleted * fix: unused exported types * Update test expectations [skip ci] * chore: code review * Update test expectations [skip ci] * chore: restore screenshot --------- Co-authored-by: github-actions <github-actions@github.com>
## Summary - Add showScrollbar prop to BaseModalLayout component to control scrollbar visibility - Enable scrollbar in Templates dialog for better navigation when content overflows The original implementation used scrollbar-hide class by default. Since the intent behind hiding the scrollbar wasn't documented in the original PR (#5290), this change preserves the default behavior (showScrollbar: false) while allowing individual dialogs to opt-in to visible scrollbars. The Templates dialog specifically benefits from a visible scrollbar as it contains a large grid of template cards that requires scrolling. fix #6915 ## Screenshots (if applicable) <img width="2490" height="1097" alt="image" src="https://github.com/user-attachments/assets/711b060c-9752-4cee-84c0-d90210969f5a" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7226-feat-add-showScrollbar-prop-to-BaseModalLayout-2c36d73d365081b1b55bdcd50ca89030) by [Unito](https://www.unito.io)
## Summary - Add showScrollbar prop to BaseModalLayout component to control scrollbar visibility - Enable scrollbar in Templates dialog for better navigation when content overflows The original implementation used scrollbar-hide class by default. Since the intent behind hiding the scrollbar wasn't documented in the original PR (#5290), this change preserves the default behavior (showScrollbar: false) while allowing individual dialogs to opt-in to visible scrollbars. The Templates dialog specifically benefits from a visible scrollbar as it contains a large grid of template cards that requires scrolling. fix #6915 ## Screenshots (if applicable) <img width="2490" height="1097" alt="image" src="https://github.com/user-attachments/assets/711b060c-9752-4cee-84c0-d90210969f5a" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7226-feat-add-showScrollbar-prop-to-BaseModalLayout-2c36d73d365081b1b55bdcd50ca89030) by [Unito](https://www.unito.io)
Summary
Changes
Select Components Enhancement
Added three new props to both MultiSelect and SingleSelect components:
listMaxHeight: Controls the maximum height of the dropdown list containerpopoverMinWidth: Sets minimum width for the dropdown popoverpopoverMaxWidth: Sets maximum width for the dropdown popoverThese props enable better control over dropdown dimensions to handle various content sizes and improve UI consistency.
SearchBox Component
sizeprop with 'md' (default) and 'lg' variantsCardGridList Component
Test Plan
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
┆Issue is synchronized with this Notion page by Unito