A React application that dynamically renders forms based on a provided UI schema. Built with React, TypeScript, and Tailwind CSS.
- React: A JavaScript library for building user interfaces.
- TypeScript: A superset of JavaScript that adds static typing to the language.
- Tailwind CSS: A utility-first CSS framework for building modern designs.
.
├── public
├── src
│ ├── components
│ │ ├── elements
│ │ │ ├── Input.tsx
│ │ │ ├── Radio.tsx
│ │ │ ├── Select.tsx
│ │ │ ├── Switch.tsx
│ │ │ └── Toggle.tsx
│ │ ├── ElementRenderer.tsx
│ │ ├── ToolTip.tsx
│ │ └── UiComponents.tsx
│ ├── context
│ │ └── Provider.tsx
│ ├── types
│ │ ├── component.ts
│ │ └── form.ts
│ ├── utils
│ │ └── parse-label.ts
│ ├── App.css
│ ├── App.tsx
│ └── index.tsx
│
│
├── .gitignore
├── tailwind.config.js
├── package.json
└── README.md
Provide JSON Schema:
- Upon accessing the application, you'll see a screen with a text bar on the left side.
- In the text bar, paste or provide your JSON schema for the form.
![Screenshot 2023-12-26 110101](https://private-user-images.githubusercontent.com/76674591/292812520-2c3ffe24-6cb4-4ea5-b793-bd9d82207346.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDYxMjAsIm5iZiI6MTczOTM0NTgyMCwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI1MjAtMmMzZmZlMjQtNmNiNC00ZWE1LWI3OTMtYmQ5ZDgyMjA3MzQ2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDA3MzcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIxMjdiY2RhMjczYWUwOTNlNGM1NGQyOWQ2NWYwYTdlM2ZkZGVhYmUzYzVhMDYwMWI2YzljZDYwY2VjNTBlN2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.kETpkmALdz4aJkmLCEkg0oF0mpWcTQLd4VYLTBNXvqQ)
Generate Form:
- After providing the JSON schema, press the "Generate Form" button.
- On the right side, a form will be dynamically rendered based on the provided schema.
![Screenshot 2023-12-26 110149](https://private-user-images.githubusercontent.com/76674591/292812625-d52709f0-00e4-4b30-9fc1-74e6929f0876.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDYxMjAsIm5iZiI6MTczOTM0NTgyMCwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2MjUtZDUyNzA5ZjAtMDBlNC00YjMwLTlmYzEtNzRlNjkyOWYwODc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDA3MzcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZiYTVkOTE1MTgwMTc5NjBlOTYyZjVkNTEwN2JjYmUyMzQzYzM1N2JjZjgyYmU5MDgxYmQ0ZjRmODdjYjM0ZmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.hFgvrsoFxdJ1gALMJrB3XXGnqLF9ycBKQNmu3II9i2c)
Complete the Form:
- The rendered form will contain fields based on the JSON schema.
- Fill in the required details using your preferences, for example, choose between Naples Style Pizza and New York Style Pizza.
![Screenshot 2023-12-26 110259](https://private-user-images.githubusercontent.com/76674591/292812634-055a7f85-13e4-408f-be02-749dab084b22.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDYxMjAsIm5iZiI6MTczOTM0NTgyMCwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2MzQtMDU1YTdmODUtMTNlNC00MDhmLWJlMDItNzQ5ZGFiMDg0YjIyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDA3MzcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyNWFmMTY3MDJmZjEyMGViN2QzNDc1NjI3ZjgyOTA4ZjFhNGM3YTM5YmJiMTYwYzhhNDkwMjNlZjY5ZjExOTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QMNCCHs6UABb5Az3M4UMVuMb2r7fVSOfWW_rdc3dfzo)
Submit the Form:
- Once you have provided the necessary details, click the "Submit" button.
- After submission, a modal will appear displaying the JSON details of your order.
![Screenshot 2023-12-26 110327](https://private-user-images.githubusercontent.com/76674591/292812642-5728ea79-a8c1-43db-9346-9f95d7be23c5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDYxMjAsIm5iZiI6MTczOTM0NTgyMCwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2NDItNTcyOGVhNzktYThjMS00M2RiLTkzNDYtOWY5NWQ3YmUyM2M1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDA3MzcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA5ZjcxNmZhNWZjYTdiZTdkMGQwMGVjNDE1MTEwZWU3OWM0OTk3MTMyYmM4ZjhmZGE3YmMzY2IzMTMwZTFkMTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.St6fpD-I59ahhksdXEFP2a7D6FPNZI7c6bk7d26pihU)
For Pasta Form Choose the JSON
![Screenshot 2023-12-26 110419](https://private-user-images.githubusercontent.com/76674591/292812651-f8e46862-8fec-49c0-a00f-010e2dc1c347.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDYxMjAsIm5iZiI6MTczOTM0NTgyMCwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2NTEtZjhlNDY4NjItOGZlYy00OWMwLWEwMGYtMDEwZTJkYzFjMzQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDA3MzcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM0MWIyOTFhMGY2OTM1YTFhNjJmYmQwOGY0NGNkY2JhMzIzZDNiODZhNWI0OWZmOWQwODA0NzVhMWM0NDg2MWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.u_Q8gl_OltmrB85jHeusQ7jHJIjtoTsNycIAvBeP6Pg)
![Screenshot 2023-12-26 110441](https://private-user-images.githubusercontent.com/76674591/292812659-a607cc9e-7914-4592-8e30-4e5f5c58799c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDYxMjAsIm5iZiI6MTczOTM0NTgyMCwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2NTktYTYwN2NjOWUtNzkxNC00NTkyLThlMzAtNGU1ZjVjNTg3OTljLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDA3MzcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk5NGJjZDMwYzU3YWY5MGY0ZTlhN2UwMjJiZmYxMzliOTNhYmIyOGNlNmY5MmI1Y2U5MjMyN2ZmYzU0YTIzOTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.zpr7bmn71QV9O5YCC--F_j1HASML_HxL2bwJkSVSMzE)