Forms - v1.0.0
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:::
<livewire:forms::form-renderer />
<livewire:forms::forms-list />
<livewire:forms::form-builder />
Component Categories
Admin Components
These components are used in the admin interface for form management:
{{-- List all forms --}}
<livewire:forms::forms-list />
{{-- Build/edit a form --}}
<livewire:forms::form-builder :form="$form" />
{{-- List submissions for a form --}}
<livewire:forms::submissions-list :form="$form" />
{{-- View submission details --}}
<livewire:forms::submission-detail :submission="$submission" />
{{-- Configure notifications --}}
<livewire:forms::notification-editor :form="$form" />
Public Components
These components are for end-user facing pages:
{{-- Display a form --}}
<livewire:forms::form-renderer slug="contact" />
Publishing Views
Customize component views by publishing:
php artisan vendor:publish --tag=forms-views
Views are published to resources/views/vendor/forms/livewire/.
Component Properties
Most components accept properties for customization:
<livewire:forms::form-renderer
slug="contact"
success-message="Thank you!"
:show-title="false"
/>
Events
Components emit Livewire events you can listen to:
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:
- CSS Classes - Pass custom classes to components
- Published Views - Edit the Blade templates
- CSS Variables - Override CSS custom properties
<livewire:forms::form-renderer
slug="contact"
css-class="my-custom-form bg-white p-6 rounded-lg"
/>
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 component
- FormRenderer - Form display component
- FormsList - Form listing component