---
title: Components Overview
---
# Components Overview
ArtisanPack UI Forms includes pre-built Livewire components for common form operations.
## Available Components
| Component | Description | Context |
|-----------|-------------|---------|
| `FormBuilder` | Drag-and-drop form builder | Admin |
| `FormRenderer` | Displays forms to end users | Public |
| `FormsList` | Lists all forms with actions | Admin |
| `SubmissionsList` | Lists form submissions | Admin |
| `SubmissionDetail` | Shows submission details | Admin |
| `NotificationEditor` | Configures email notifications | Admin |
## Component Namespacing
All components are namespaced under `forms::`:
```blade
```
## Component Categories
### Admin Components
These components are used in the admin interface for form management:
```blade
{{-- List all forms --}}
{{-- Build/edit a form --}}
{{-- List submissions for a form --}}
{{-- View submission details --}}
{{-- Configure notifications --}}
```
### Public Components
These components are for end-user facing pages:
```blade
{{-- Display a form --}}
```
## Publishing Views
Customize component views by publishing:
```bash
php artisan vendor:publish --tag=forms-views
```
Views are published to `resources/views/vendor/forms/livewire/`.
## Component Properties
Most components accept properties for customization:
```blade
```
## Events
Components emit Livewire events you can listen to:
```javascript
Livewire.on('form-submitted', (event) => {
console.log('Form submitted:', event.formId);
});
Livewire.on('submission-deleted', (event) => {
console.log('Submission deleted:', event.submissionId);
});
```
## Styling
Components use minimal default styling and can be customized via:
1. **CSS Classes** - Pass custom classes to components
2. **Published Views** - Edit the Blade templates
3. **CSS Variables** - Override CSS custom properties
```blade
```
## Component Architecture
Each component follows this structure:
```
src/Livewire/
├── FormBuilder.php # Component class
└── ...
resources/views/livewire/
├── form-builder.blade.php # Component view
└── ...
```
## Next Steps
- [FormBuilder](./form-builder.md) - Form builder component
- [FormRenderer](./form-renderer.md) - Form display component
- [FormsList](./forms-list.md) - Form listing component