{"id":23850571,"url":"https://github.com/manojadams/metaforms-core","last_synced_at":"2025-09-07T23:31:39.902Z","repository":{"id":57749435,"uuid":"524181826","full_name":"manojadams/metaforms-core","owner":"manojadams","description":"A framework for building react form libraries.","archived":false,"fork":false,"pushed_at":"2024-04-12T21:21:16.000Z","size":1416,"stargazers_count":3,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-14T07:09:28.210Z","etag":null,"topics":["forms","react","react-form-library","react-forms"],"latest_commit_sha":null,"homepage":"https://manojadams.github.io/metaforms-core/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manojadams.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-08-12T18:05:01.000Z","updated_at":"2024-05-10T13:28:12.641Z","dependencies_parsed_at":"2024-03-18T19:56:44.322Z","dependency_job_id":"ac619b80-920c-4e8c-b697-37cb88ec252f","html_url":"https://github.com/manojadams/metaforms-core","commit_stats":null,"previous_names":["manojgetwealthy/metaforms-core"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manojadams%2Fmetaforms-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manojadams%2Fmetaforms-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manojadams%2Fmetaforms-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manojadams%2Fmetaforms-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manojadams","download_url":"https://codeload.github.com/manojadams/metaforms-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232265453,"owners_count":18496974,"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","react","react-form-library","react-forms"],"created_at":"2025-01-02T22:30:50.349Z","updated_at":"2025-09-07T23:31:39.881Z","avatar_url":"https://github.com/manojadams.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# metaform-core\nA framework for building react form libraries. Create your react form components and use this framework for adding form behavior using JSON-based schema.\n\n## Change logs\n- [fix #90: fix validation errors with autofill](https://github.com/manojadams/metaforms-core/issues/90)\n\n## Introduction\nThis library reads the JSON-based schema and lays out beautiful forms.\nIt acts as a base for creating a dynamic form library.\n\n## Main features\n- Layouting configuration\n- Support for multiple-page forms\n- Support for field dependencies\n- Support custom components\n\n## Core components/concepts\n- Form control (BaseFormControl)\n- Form group (BaseFormGroup)\n- Form stepper (BaseFormStepper)\n\n### Form control (BaseFormControl)\n  This is a class containing declarations of basic form controls as well as some other advanced form controls. \n  \n### Form group (BaseFormGroup)\n  Contains declarations of basic form grouping controls.\n\n### Form stepper (BasicFormStepper)\n  This is another type of form grouping that contains declarations to implement stepper functionalities for your form.\n\n## How to use\n  This library contains abstract declarations and requires the user to implement his own core components.\n  - BasicFormControl - for basic components\n  - BasicFormGroup - for basic form grouping\n  - BasicFormStepper = for stepper functionalities\n  - Write your classes (typescript) and extend the above controls.\n  - To know details, check the documentation.\n  \n## Implement an `email` control\n````typescript\nclass MyFormControl extends CoreFormControl {\n  /**\n   * Implement email\n   */\n  email() {\n    return (\n      \u003cdiv className=\"form-group\"\u003e\n        \u003clabel forName=\"exampleInputEmail1\"\u003eEmail address\u003c/label\u003e\n        \u003cinput\n          type=\"email\"\n          className=\"form-control\"\n          id=\"exampleInputEmail1\"\n          aria-describedby=\"emailHelp\"\n          placeholder=\"Enter email\"\n          onChange={this.handleChange}\n        \u003e\n      \u003c/div\u003e\n    )\n  }\n}\n````\n\n## Implement a `phone` control\n````typescript\nclass MyFormControl extends CoreFormControl {\n  /**\n   * Implement phone\n   */\n  phone() {\n    return (\n      \u003cdiv className=\"form-group\"\u003e\n        \u003clabel forName=\"phone\"\u003eYour Phone\u003c/label\u003e\n        \u003cinput\n          type=\"tel\"\n          className=\"form-control\"\n          id=\"phone\" aria-describedby=\"phoneHelp\"\n          placeholder=\"Enter your phone\"\n          onChange={this.handleChange}\n        \u003e\n      \u003c/div\u003e\n    )\n  }\n}\n````\n  \n## Install\n\n```bash\nnpm install --save @manojadams/metaform-core\n```\n\n## Basic usage of the library\n```tsx\nimport MetaformRenderer from \"@manojadams/metaforms-core\";\nimport React from \"react\";\nimport FormControl from \"./forms/FormControl\";      // your form control implementation\nimport FormGroup from \"./forms/FormGroup\";          // your form group implementation\nimport { FormStepper } from \"./forms/FormStepper\";  // your form stepper implementation\n\nclass FormRenderer extends React.Component {\n\n  constructor(props: IFormRenderer) {\n    super(props);\n  }\n\n  render() {\n    return (\n      \u003cMetaformRenderer \n        {...this.props} \n        baseFormControl={FormControl}\n        baseFormGroup={FormGroup}\n        baseFormStepper={FormStepper}\n      /\u003e\n    )\n  }\n}\n\nexport default FormRenderer;\n```\n\n## License\n\nMIT © [manojadams](https://github.com/manojadams)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanojadams%2Fmetaforms-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanojadams%2Fmetaforms-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanojadams%2Fmetaforms-core/lists"}