We currently have components for fields that can be used to generate forms, but we should also build form elements as components to improve dynamic forms further.
Elements
[ ] Table + Table Rows
[ ] Tabs
[ ] Drag and Drop
[ ] Grid (Widget Placement)
Allow elements to be placed in a specific amount of Rows and Columns
Ex: The page could have 2 columns where the first is a small card with information and the second is a set of Tabs with different information in each
[ ] Accordion
[ ] Group
Ability to add multiple fields to a single line of a form
Fields
[ ] Dependent Fields
[ ] Dependent Search
Example: See Filter Rules in 2.0
Intended Outcome of the feature
Once built out, we should be able to generate forms in the backend using Form Classes, Elements, and Fields. We should be able to pass in information from the database to populate the fields and format them to properly render in React components.
Approach
In the backend, we will need classes to be made for the new elements that will format the data for the frontend.
Ex: DynamicFormElements.php + child classes for each element.
It would be helpful to write an artisan command that will automatically build a skeleton form that we can use as a template to quickly build out the UI.
Feature Summary
We currently have components for fields that can be used to generate forms, but we should also build form elements as components to improve dynamic forms further.
Elements
Fields
Intended Outcome of the feature
Once built out, we should be able to generate forms in the backend using Form Classes, Elements, and Fields. We should be able to pass in information from the database to populate the fields and format them to properly render in React components.
Approach
In the backend, we will need classes to be made for the new elements that will format the data for the frontend. Ex: DynamicFormElements.php + child classes for each element.
It would be helpful to write an artisan command that will automatically build a skeleton form that we can use as a template to quickly build out the UI.