v1.1.0
·
26 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Added
REST API
- Full REST API: Complete set of RESTful endpoints for forms, fields, steps, submissions, and notifications under
api/v1/forms - Public Endpoints: Unauthenticated endpoints for rendering forms (
GET /render) and submitting responses (POST /submit) with honeypot and rate limiting - Authenticated Endpoints: Full CRUD for forms, fields, steps, submissions, and notifications secured with Laravel Sanctum
- Submission Management API: Bulk actions (mark read/unread/spam, delete), CSV export, and file download endpoints
- Field & Step Reordering: Dedicated reorder endpoints for drag-and-drop ordering via API
- Pagination: Consistent paginated responses with configurable per-page via
artisanpack.forms.api.per_page
API Resources
- FormResource: JSON transformation for form models with conditional relationship loading and submission counts
- FormRenderResource: Public-facing form payload with honeypot and display configuration
- FormFieldResource: Field serialization with validation rules, conditional logic, and options
- FormStepResource: Step serialization with nested fields
- FormSubmissionResource: Submission data with values and uploads
- FormSubmissionValueResource: Individual field value serialization
- FormUploadResource: File upload metadata with download URLs
- FormNotificationResource: Notification configuration serialization
- PaginatedResourceCollection: Consistent pagination wrapper with meta and links
Form Request Validation (API)
- StoreFormApiRequest / UpdateFormApiRequest: Form creation and update validation
- StoreFieldApiRequest / UpdateFieldApiRequest: Field management validation
- StoreStepApiRequest / UpdateStepApiRequest: Step management validation
- ReorderFieldsApiRequest / ReorderStepsApiRequest: Reorder validation
- SubmitFormApiRequest: Public form submission validation
- UpdateSubmissionApiRequest: Submission metadata update validation
- BulkSubmissionApiRequest: Bulk action validation
- StoreNotificationApiRequest / UpdateNotificationApiRequest: Notification validation
TypeScript Type Definitions
- Published Type Definitions: Full TypeScript definitions for all form models, API request/response types, field types, conditional logic operators, and pagination structures via
artisanpack-forms.d.ts
React Components
- FormRenderer: Full-featured React form renderer with API integration, multi-step support, conditional logic, client-side validation, honeypot protection, and customizable loading/error/success states
- MultiStepForm: Multi-step form wrapper with progress bar and step navigation
- Field Components: TextField, EmailField, PhoneField, NumberField, UrlField, TextareaField, SelectField, RadioField, CheckboxField, CheckboxGroupField, SelectMultipleField, FileField, DateField, TimeField, HiddenField, HeadingField, ParagraphField, DividerField, HtmlField
- useForm Hook: Manages form state, validation, step navigation, file uploads, and submission
- useApi Hook: Type-safe API client with error handling (ApiError, ApiValidationError)
- useAutoSave Hook: Automatic form draft saving
- Admin Components: FormsList, FormBuilder, FieldEditor, FieldPalette, ConditionalLogicEditor, NotificationEditor, SubmissionsList, SubmissionDetail
Vue Components
- FormRenderer: Vue 3 form renderer with Composition API, slots for loading/error/success customization, and full feature parity with React
- MultiStepForm: Multi-step form wrapper with progress bar and step navigation
- HoneypotField: Dedicated honeypot field component
- Field Components: TextField, ChoiceField, AdvancedField, LayoutField, FieldRenderer
- useForm Composable: Reactive form state management with step navigation and submission
- useApi Composable: Type-safe API client with error handling
- useAutoSave Composable: Automatic form draft saving
- Admin Components: FormsList, FormBuilder, FieldEditor, FieldPalette, ConditionalLogicEditor, NotificationEditor, SubmissionsList, SubmissionDetail
Shared Frontend Utilities
- Validation Module: Client-side field validation for all 18+ field types with min/max, pattern, file size/type, and required checks
- Conditional Logic Module: Client-side conditional logic evaluation with 19 operators, AND/OR logic, and show/hide actions
Frontend Scaffolding Command
forms:install-frontend: Artisan command to publish React or Vue components, shared utilities, and TypeScript types toresources/js/vendor/artisanpack-forms/with--stackand--forceoptions
CI/CD
- GitHub Actions CI: Lint job (PHP-CS-Fixer + PHPCS) and matrix test job (PHP 8.2, 8.3, 8.4)
- GitHub Actions Release: Separate release workflow triggered by version tags with CHANGELOG extraction, GitHub Release creation, and Packagist update
Fixed
- Select Multiple Field: Added missing
select_multiplefield view, factory state, and test - Pagination Links: Preserved query parameters in pagination links for API resources
Changed
- GitHub Migration: Migrated repository from GitLab to GitHub with updated issue templates, PR templates, and CI workflows