{"id":24570834,"url":"https://github.com/davidcova/cova-forms","last_synced_at":"2026-05-20T15:02:05.721Z","repository":{"id":56963228,"uuid":"387817953","full_name":"DavidCova/cova-forms","owner":"DavidCova","description":"Customizable inputs, forms, buttons etc.","archived":false,"fork":false,"pushed_at":"2024-03-30T22:59:38.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T17:37:45.116Z","etag":null,"topics":["forms","inputs","laravel","livewire"],"latest_commit_sha":null,"homepage":"","language":"Blade","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DavidCova.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-20T14:27:43.000Z","updated_at":"2021-11-12T15:34:09.000Z","dependencies_parsed_at":"2024-11-16T17:40:52.488Z","dependency_job_id":"51309454-bcae-4a80-a46d-55ac6b9e815d","html_url":"https://github.com/DavidCova/cova-forms","commit_stats":{"total_commits":70,"total_committers":1,"mean_commits":70.0,"dds":0.0,"last_synced_commit":"845565ebe3ac6a060bd841d8ed6c0c5200501e86"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCova%2Fcova-forms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCova%2Fcova-forms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCova%2Fcova-forms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidCova%2Fcova-forms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DavidCova","download_url":"https://codeload.github.com/DavidCova/cova-forms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243997041,"owners_count":20380980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["forms","inputs","laravel","livewire"],"created_at":"2025-01-23T17:32:47.914Z","updated_at":"2026-05-20T15:02:00.687Z","avatar_url":"https://github.com/DavidCova.png","language":"Blade","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cova Forms\r\nThis is a guide to help you interact with the include blade directive from laravel to pass variables to form inputs to minimize time required and faulty forms.\r\n### Publishing assets\r\n\r\nViews\r\n```\r\nphp artisan vendor:publish --tag=cova-forms\r\n```\r\nLivewire components\r\n```\r\nphp artisan vendor:publish --tag=cova-livewire\r\n```\r\n###### Example\r\n```blade\r\n\u003cform action=\"{{route('training.store')}}\" method=\"post\"\u003e\r\n@csrf\r\n@include('blocks.forms.errors')\r\n@include('blocks.forms.input-text',            ['identifier' =\u003e \"name\",'label' =\u003e \"Name\",'required' =\u003e 'required'])\r\n@include('blocks.forms.input-text',            ['identifier' =\u003e \"speaker\",'label' =\u003e \"Speaker\",'required' =\u003e 'required'])\r\n@include('blocks.forms.input-text',            ['identifier' =\u003e \"price\",'label' =\u003e \"Price\",'required' =\u003e 'required'])\r\n@include('blocks.forms.input-number',          ['identifier' =\u003e \"hours\",'required' =\u003e 'required'])\r\n@include('blocks.forms.input-select',          ['identifier' =\u003e \"type\",'label' =\u003e \"Type\",'required' =\u003e 'required','options' =\u003e ['Hard Skills','Soft Skills']])\r\n@include('blocks.forms.input-money',           ['identifier' =\u003e \"total_avg_admission_cost\",'label' =\u003e 'total','required' =\u003e 'required','readonly' =\u003e 'readonly','step' =\u003e '0.01'])\r\n@include('blocks.forms.input-date',            ['identifier' =\u003e \"from\",'label' =\u003e \"From\",'required' =\u003e 'required','min' =\u003eCarbon\\Carbon::now('Europe/Lisbon')-\u003eformat('Y-m-d'),'max' =\u003e \"\"])\r\n@include('blocks.forms.input-date',            ['identifier' =\u003e \"to\",'label' =\u003e \"To\",'required' =\u003e 'required','min' =\u003eCarbon\\Carbon::now('Europe/Lisbon')-\u003eformat('Y-m-d'),'max' =\u003e \"\"])\r\n@include('blocks.forms.input-select',          ['identifier' =\u003e \"status\",'required' =\u003e 'required','options' =\u003e ['Expired','Finished','Ongoing','Registered']])\r\n@include('blocks.forms.input-select',          ['identifier' =\u003e \"company\",'required' =\u003e 'required','options' =\u003e $companies,'key' =\u003e 'id','val' =\u003e \"name\"])\r\n@include('blocks.forms.input-select-multiple', ['identifier' =\u003e \"employees\",'label' =\u003e \"Employees\",'required' =\u003e 'required','options' =\u003e $employees,'key' =\u003e 'id','val' =\u003e \"known_name\"])\r\n@include('blocks.forms.input-textarea',        ['identifier' =\u003e \"body\",'label' =\u003e 'Description','required' =\u003e 'required','cols' =\u003e 60,'rows'=\u003e1])\r\n@include('blocks.forms.input-hidden',          ['identifier' =\u003e 'employee_id','val' =\u003e $employee-\u003eid,'required' =\u003e 'required'])\r\n@include('blocks.forms.input-select',          ['identifier' =\u003e \"status\",'required' =\u003e 'required','options' =\u003e json_encode([['id' =\u003e 1,'name' =\u003e 'Active'],['id' =\u003e 0,'name' =\u003e 'Inactive']]),'key' =\u003e 'id','val' =\u003e \"name\"]) \r\n@include('blocks.forms.input-file',            ['identifier' =\u003e 'file_path[]','label' =\u003e 'Documents','multiple' =\u003e 'multiple','filetypes' =\u003e ['application/pdf','.doc','.docx']])\r\n\u003cdiv class=\"py-2\"\u003e\r\n@include('blocks.buttons.submit-create')\r\n\u003c/div\u003e\r\n```\r\n```blade\r\n@include('blocks.forms.input-text',   ['identifier' =\u003e \"position\",'label' =\u003e \"Job position\",'required' =\u003e 'required'])\r\n@include('blocks.forms.input-select', ['identifier' =\u003e \"company\",'required' =\u003e 'required','options' =\u003e $companies,'key' =\u003e 'id','val' =\u003e \"name\"])\r\n@include('blocks.forms.input-select', ['identifier' =\u003e \"type\",'required' =\u003e 'required','options' =\u003e ['Full-time','Permanent Contract','Temporary','Part-time','Volunteer','Internship']])\r\n@include('blocks.forms.input-select', ['identifier' =\u003e \"experience\",'required' =\u003e 'required','options' =\u003e ['Entry level','Associate','Senior','Internship','Director','Executive']])\r\n@include('blocks.forms.input-select', ['identifier' =\u003e \"remote\",'label' =\u003e 'Remote Work','required' =\u003e 'required','options' =\u003e json_encode([['id' =\u003e 1,'name' =\u003e 'Yes'],['id' =\u003e 0,'name' =\u003e 'No'],['id' =\u003e 2,'name' =\u003e 'Mixed']]),'key' =\u003e 'id','val' =\u003e \"name\"])\r\n@include('blocks.forms.input-select', ['identifier' =\u003e \"status\",'required' =\u003e 'required','options' =\u003e json_encode([['id' =\u003e 1,'name' =\u003e 'Active'],['id' =\u003e 0,'name' =\u003e 'Inactive']]),'key' =\u003e 'id','val' =\u003e \"name\"])                                 \r\n@include('blocks.forms.input-text',   ['identifier' =\u003e \"location\",'required' =\u003e 'required'])\r\n\u003c/form\u003e\r\n```\r\n```blade\r\n@include('blocks.buttons.submit-create')\r\n@include('blocks.buttons.submit-send')\r\n@include('blocks.buttons.submit-delete')\r\n@include('blocks.buttons.submit-edit')\r\n@include('blocks.buttons.submit-update')\r\n@include('blocks.buttons.submit')\r\n```\r\n\r\n### File input\r\n**Attributes**\r\n- identifier\r\n- label\r\n- filetypes\r\n- multiple\r\n- required\r\n\r\n**Multiple**\r\n\r\nWhen multiple is used, make sure to call the identifier as an array as such:\r\n```blade\r\n'identifier' =\u003e 'file_path[]','multiple' =\u003e 'multiple'\r\n```\r\nAlso make sure the form as the correct enctype=\"multipart/form-data\"\r\n\r\n**Filetypes**\r\n\r\nFiletypes can be defined as such:\r\n```blade\r\n'filetypes' =\u003e ['application/pdf','.doc','.docx']\r\n'filetypes' =\u003e ['image/jpeg,image/gif,image/png,application/pdf']\r\n'filetypes' =\u003e ['jpg,png,jpeg,PNG,JPEG,JPG,GIF,gif']\r\n```\r\n### Select input example\r\nUsing json_encode\r\n\r\n```blade\r\n @include('blocks.forms.input-select',[\r\n 'identifier' =\u003e 'fruits_types',\r\n 'label'      =\u003e 'Fruits',\r\n 'options'    =\u003e json_encode(\r\n     [\r\n         ['id' =\u003e 0,'name' =\u003e 'Apple'],\r\n         ['id' =\u003e 1,'name' =\u003e 'Banana'],\r\n         ['id' =\u003e 2,'name' =\u003e 'Cherry'],\r\n         ['id' =\u003e 3,'name' =\u003e 'Dragon Fruit'],\r\n         ['id' =\u003e 4,'name' =\u003e 'Elder Berry'],\r\n         ['id' =\u003e 5,'name' =\u003e 'Fig'],\r\n     ]\r\n ),\r\n 'key'     =\u003e 'id',\r\n 'value'   =\u003e 'name',\r\n 'current' =\u003e $basket-\u003efavorite_fruit\r\n ])\r\n```\r\n## Livewire live update inputs\r\n\r\n**Usage example**\r\n\r\nInput File\r\n\r\n```blade\r\n\u003cdiv class=\"mt-2\"\u003eFinance File\u003c/div\u003e\r\n@livewire('updater-file', [\r\n'col'       =\u003e 'finance_file',\r\n'model'     =\u003e $investor,\r\n'rules'     =\u003e ['file','max:1024'],\r\n'save_path' =\u003e 'people/'.$person-\u003eid.'-'.str_replace(' ', '-', strtolower($person-\u003ename)).'/investor/'.$investor-\u003eid.''\r\n]) \r\n```\r\nInput Number\r\n```blade\r\n@livewire('updater-number', [\r\n'col'     =\u003e 'investment_performance',\r\n'current' =\u003e $investor-\u003einvestment_performance,\r\n'model'   =\u003e $investor,\r\n'step'    =\u003e 0.01\r\n])\r\n```\r\nInput Text\r\n```blade\r\n@livewire('updater-text', [\r\n'col'     =\u003e 'motivation',\r\n'current' =\u003e $investor-\u003emotivation,\r\n'model'   =\u003e $investor\r\n])\r\n```\r\nSelect\r\n```blade\r\n @livewire('updater-select', [\r\n'col'     =\u003e 'ownership',\r\n'current' =\u003e $investor-\u003eownership,\r\n'model'   =\u003e $investor,\r\n'label'   =\u003e false,\r\n'options' =\u003e ['Full','Partnership']\r\n])\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcova%2Fcova-forms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidcova%2Fcova-forms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcova%2Fcova-forms/lists"}