--- name: new-component description: Create new GPUI components. Use when building components, writing UI elements, or creating new component implementations. --- ## Instructions When creating new GPUI components: 1. **Follow existing patterns**: Base implementation on components in `crates/ui/src` (examples: `Button`, `Select`) 2. **Style consistency**: Follow existing component styles and Shadcn UI patterns 3. **Component type decision**: - Use stateless elements for simple components (like `Button`) - Use stateful elements for complex components with data (like `Select` and `SelectState`) 4. **API consistency**: Maintain the same API style as other elements 5. **Documentation**: Create component documentation 6. **Stories**: Write component stories in the story folder ## Component Types - **Stateless**: Pure presentation components without internal state - **Stateful**: Components that manage their own state and data