---
name: component-hierarchy
description: Guide component selection in ResRequest Vue projects. Ensures correct usage of ShadCN-Vue vs custom components, proper imports, and design system compliance. Activates when creating or modifying Vue components.
---
# Component Hierarchy
Follow this selection order when choosing components for ResRequest projects.
## Selection Priority
### 1. ShadCN-Vue Components (First Choice)
Located at `@/components/ui/`
Always check ShadCN-Vue first. These are the base UI components.
**NEVER modify files in `@/components/ui/`** - these are managed by ShadCN.
### 2. Custom Components (Second Choice)
Located at `@/components/custom/`
Project-specific wrappers and extensions of ShadCN components.
### 3. Feature Components (Third Choice)
Located at `@/components/[feature]/`
Domain-specific components for features like email-threads, comments, bookings.
## ShadCN-Vue Component Reference
### Buttons
```typescript
import { Button } from '@/components/ui/button'
```
### Form Inputs
```typescript
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
import { Textarea } from '@/components/ui/textarea'
import { Checkbox } from '@/components/ui/checkbox'
import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'
import { Switch } from '@/components/ui/switch'
// Basic input