cupcode / formbuilder
This is my package formbuilder
v1.0.0
2024-12-25 14:19 UTC
Requires
- php: ^8.3
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-arch: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
README
This is an example ReadMe with light selections.
Installation
composer require cupcode/formbuilder php artisan cupcode:formbuilder
Install dependencies
npm i @inertiajs/vue3 filepond filepond-plugin-image-preview filepond-plugin-file-poster @mdi/font @vitejs/plugin-vue ziggy-js vuetify vite-plugin-vuetify @tailwindcss/forms @vitejs/plugin-vue
Example
Laravel Controller
use CupCode\FormBuilder\Components\FileUpload; use CupCode\FormBuilder\Components\TextInput; public function form() :Form{ return Form::make()->schema([ TextInput::make('name'), FileUpload::make('image') ]); } public function forms() :array{ return [ 'form' => $this->form() ]; } /** * Display a listing of the resource. */ public function index() { return inertia('Home', [ 'forms' => $this->forms() ]); }
Vue Page
<template>
<div>
<Form :data="props.forms.form" />
</div>
</template>
<script setup>
import {Form, ModalForm} from 'cupcodeformbuilder'
const props = defineProps(['forms']);
</script>
Features
- Text Field
- Numric Field
- Text Area
- Select
- File Upload
- Radio Button
- Checkbox
- Group (for Design)
- Validation
- Chained method to set properties
Usage/Examples
use CupCode\FormBuilder\Components\FileUpload; use CupCode\FormBuilder\Components\TextInput; use CupCode\FormBuilder\Components\CheckboxInput; use CupCode\FormBuilder\Components\Group; use CupCode\FormBuilder\Components\RadioInput; use CupCode\FormBuilder\Components\Select; use CupCode\FormBuilder\Components\ToggleInput; [Component]::make('name')
Contributing
Contributions are always welcome!