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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzE0NDUsIm5iZiI6MTczODkzMTE0NSwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI1MjAtMmMzZmZlMjQtNmNiNC00ZWE1LWI3OTMtYmQ5ZDgyMjA3MzQ2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEyMjU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkMGIzNzlmMzVhYjVjMTJlODBhOGE5MjY0MzQ0ZDg2NzcyZTQ2ZmViMzRmNTk2MGFjZDU0ZmYxMWIwY2FkMmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ohxogunKUL5W1k_mz21WJZHA4H_dJXboDH0aMA7K5OQ)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzE0NDUsIm5iZiI6MTczODkzMTE0NSwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2MjUtZDUyNzA5ZjAtMDBlNC00YjMwLTlmYzEtNzRlNjkyOWYwODc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEyMjU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1OTAxNjRmNjg4ZDg3MzhmMTM1MThhMDdmZTY2MzFmMGYyNjY3ZjQzOTNlNDU3YjY0NWNhYzVjOGZjNTM0OGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.4KuP3T6m5fh9PsUSR79W-fUkDBm77uCmKvO8Yjn0YY0)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzE0NDUsIm5iZiI6MTczODkzMTE0NSwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2MzQtMDU1YTdmODUtMTNlNC00MDhmLWJlMDItNzQ5ZGFiMDg0YjIyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEyMjU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI1YzgxM2M0NGQ4YzMyOWI0MGU5N2ZhMTFiMGRmNmUwYmRiY2EyMjEzMTNjYjRmZGQ2OTRmYjg3MTQ1MDE4NGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.i5Epw0o1QfM4ZsllOrbB22Yjsi6hJ74kp2989qj9NqQ)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzE0NDUsIm5iZiI6MTczODkzMTE0NSwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2NDItNTcyOGVhNzktYThjMS00M2RiLTkzNDYtOWY5NWQ3YmUyM2M1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEyMjU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU3N2JmYzUxOWU2ZDc4YTJlNDU2NGY1NzUxMTk5YWJlYWU0ZTAyYjY3YmNkNWU3ZDUzODU4MDdkZTBmYzdkNzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.kCRevK2O5wTLM8EicfulvK9ON0a8Yn_q_t6lC89-MXk)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzE0NDUsIm5iZiI6MTczODkzMTE0NSwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2NTEtZjhlNDY4NjItOGZlYy00OWMwLWEwMGYtMDEwZTJkYzFjMzQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEyMjU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNjODlkNDRkYmZlZjEwNDUyYmRjZjJhZGI1ODQ5YjFkODQ5NjY0MDNkYzY3OGViNmY5N2IzNTg0YzZjZDI4MTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.nN9vOq5jdUuGYUfn5khSrGq5xNeadreMP3R5liRzoKw)
![Screenshot 2023-12-26 110441](https://private-user-images.githubusercontent.com/76674591/292812659-a607cc9e-7914-4592-8e30-4e5f5c58799c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzE0NDUsIm5iZiI6MTczODkzMTE0NSwicGF0aCI6Ii83NjY3NDU5MS8yOTI4MTI2NTktYTYwN2NjOWUtNzkxNC00NTkyLThlMzAtNGU1ZjVjNTg3OTljLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEyMjU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQzOGNiYzQ4NzI2OTM2ODY4NzEyODllOTBiZjI4ZjhjNWU5ZDA4N2Y3MmYwMGE0NDQ3ZTFlYTQ0ODkxZmRjYWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6FRZSDiHEe8EmzLTj4jOENiOTzsrjWP0TOJCAh4-t4M)