Forms - v1.0.0-beta1

Forms Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0-beta1] - 2026-01-08

First Beta Release

This is the first beta release of ArtisanPack UI Forms, a comprehensive form builder and management package for Laravel applications built on Livewire 3.

Highlights

  • Complete Form Builder: Visual drag-and-drop interface for creating forms
  • 20+ Field Types: Comprehensive set of form fields for any use case
  • Full Test Coverage: 592 tests ensuring reliability
  • Laravel 11 and 12 Support: Compatible with current Laravel versions
  • Livewire 3.6+ Compatible: Built for the latest Livewire features
  • Comprehensive Documentation: Detailed guides and API reference

Added

Core Features

  • Form Builder Component: Drag-and-drop Livewire component for visual form creation
  • Form Renderer Component: Livewire component for displaying forms to users
  • Forms List Component: Management interface for viewing and managing forms
  • Submissions List Component: View and manage form submissions
  • Submission Detail Component: Detailed submission view with file downloads
  • Notification Editor Component: Configure email notifications per form

Field Types

  • Basic Fields: Text, Email, URL, Phone, Number, Password, Hidden
  • Text Fields: Textarea, Rich Text Editor (TinyMCE/Trix support)
  • Selection Fields: Select, Multi-Select, Checkbox, Checkbox Group, Radio, Toggle
  • Date/Time Fields: Date, Time, DateTime with picker support
  • File Fields: File Upload with drag-and-drop, Multiple Files
  • Layout Fields: Heading, Paragraph, Divider, HTML

Form Features

  • Multi-Step Forms: Wizard-style forms with step navigation and progress indicators
  • Conditional Logic: Show/hide fields and steps based on user input
  • Field Validation: Required, min/max length, patterns, custom rules
  • Success/Error Messages: Customizable messages and redirects

Submissions

  • Submission Storage: Store all form submissions with field values
  • File Attachments: Secure file storage linked to submissions
  • Export to CSV: Export submissions with field headers
  • Retention Settings: Automatic pruning of old submissions
  • Prune Command: forms:prune-submissions Artisan command

Notifications

  • Admin Notifications: Email notifications on new submissions
  • Autoresponders: Automatic replies to form submitters
  • Template Variables: Dynamic content using form field values
  • Queue Support: Notifications processed via Laravel queues

File Uploads

  • Secure Storage: Private disk storage with configurable disk
  • MIME Validation: Whitelist allowed file types
  • Size Limits: Configurable maximum file sizes
  • Multiple Files: Support for multiple file uploads per field

Webhooks

  • Webhook Endpoints: Send submission data to external URLs
  • HMAC Signatures: Secure webhook payloads with signatures
  • Retry Logic: Automatic retries for failed webhooks
  • Queue Support: Webhooks processed via Laravel queues

Spam Protection

  • Honeypot Fields: Hidden fields to catch bots
  • Rate Limiting: Configurable submission rate limits
  • Integration Ready: Hooks for reCAPTCHA and other services

Authorization

  • Form Policy: Control who can create, view, edit, delete forms
  • Submission Policy: Control access to submission data
  • Ownership Support: Restrict access to form owners
  • Admin Bypass: Allow admins to bypass ownership restrictions

Events

  • FormCreated: Dispatched when a form is created
  • FormUpdated: Dispatched when a form is updated
  • FormDeleted: Dispatched when a form is deleted
  • FormSubmitted: Dispatched when a form is submitted
  • SubmissionUpdated: Dispatched when a submission is updated
  • SubmissionDeleted: Dispatched when a submission is deleted

Services

  • FormService: Create, update, duplicate forms
  • FieldService: Manage form fields
  • StepService: Manage multi-step form steps
  • SubmissionService: Process and store submissions
  • NotificationService: Send email notifications
  • ConditionalLogicService: Evaluate field/step conditions
  • ExportService: Export submissions to various formats
  • IntegrationService: Handle external integrations

Extensibility

  • Filter Hooks: Add custom field types via forms.field_types filter
  • Action Hooks: Hook into form lifecycle events
  • Publishable Views: Customize all Blade views
  • Publishable Config: Full configuration customization

Infrastructure

  • Comprehensive Test Suite: 592 tests with Pest PHP
  • Code Style: PHP-CS-Fixer and PHPCS with ArtisanPackUI standards
  • Static Analysis: PHPStan level 5 analysis
  • GitLab CI/CD: Multi-PHP version testing (8.2, 8.3, 8.4)
  • Code Coverage: Coverage reporting with Cobertura format
  • Security Scanning: SAST, Secret Detection, Dependency Scanning
  • Documentation: MkDocs deployment to GitLab Pages
  • WordPress-Style Documentation: Full PHPDoc blocks on all classes and methods