{"_id":"ink-form","_rev":"8-13dc6d93558b02c75d02fea8adc55e35","name":"ink-form","dist-tags":{"latest":"2.0.2"},"versions":{"1.0.0":{"name":"ink-form","version":"1.0.0","keywords":["react","cli","ui","component","input","forms","reusable","ink","commandline","cmd"],"author":{"name":"Lukas Bach","email":"lbach@outlook.de"},"license":"MIT","_id":"ink-form@1.0.0","maintainers":[{"name":"lukasbach","email":"lbach@outlook.de"}],"bugs":{"url":"https://github.com/lukasbach/ink-form/issues"},"dist":{"shasum":"4515517d8052996f6f83184af484aedb510074d9","tarball":"https://registry.npmjs.org/ink-form/-/ink-form-1.0.0.tgz","fileCount":53,"integrity":"sha512-UaeWbf+lGACD++IZGszu+bZdJDfZOm2/Oa8JkOkuPYG7KUR+fmUdExXpRJda8IiEs9du6MCCqD3pKBtvymexaA==","signatures":[{"sig":"MEUCIQDj6946gXh1sVUHopYzoz/tZ6FFZyO11yCYlEtImK4SZwIgGZieVpalVSG3TtIXP6yFjofJa6NCn/6nqT2N3Jm4GWQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQr+QCRA9TVsSAnZWagAAXIcP/3yaCRwWULPiTL3CVW4/\n/JWiJzGgFwCQiRNli7GtgmxvAvGWrCvkMy7+Q8gc5G6Au7iLm6bx3vmWUwEo\ndyeyABXp9IqYVeQkMFllnAlj1Yxho5Cy5FImCgtdzxr8Vl6+sxRDm6efuCck\nsDstp5r6+Hb25MU4ScmJkSFaqj0SdT+iAopNIdUEkaYTl3bWcIrUDPxc2BKK\nrKv5YmVRpV+Aozp87S9MAGcSoYnc08QOkqgTDX8wOMB4Lm/U8jTdgiS/EtR/\ncIneI4mmitZLMFqZ5CC61JgCUwg8N8lbhINUbr1wGuJHT+t81Ys+N+/ASHVL\n2noWHM9/gQJ8tF4DRKXS+Yqv7aQsS3rCqovF1fhqWGZWvKxPMSw7tvT+GOxL\nkvFd4oDSTWH7m0pbB29zNNSaY3TJjdKrGFS3eY9ZHggiaBPllwy0VFDd1YPJ\nLkr1aWuuU41jFfv7d4PMqcvpWiHlbnkogjQ2rocX9GkpQEMmj0u5nFautn42\nfe1WRca73eftY/MO/v8A+xGcgUQdbkaZWINtik110Dzl6KIT1GYFaDklWb6Q\n1aREBt1Zo0o2QyPifPmPh+Qx6hOQqEZpCd7UncfjNlzc5A+w3eBYQDM9J7aq\n3fEdZTV+DVlHo+6X1RAtVnzwe3siaF9cxQIugLySMRqRBex51Ub4tdJKPJxG\nyYJZ\r\n=BP3a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","start":"ts-node src/demo/overview.tsx","build:docs":"typedoc --out docs src/index.ts","demo:overview":"ts-node src/demo/overview.tsx","demo:imperative":"ts-node src/demo/imperative.ts","demo:packagejson":"ts-node src/demo/packagejson.tsx","demo:custommanager":"ts-node src/demo/custommanager.tsx"},"_npmUser":{"name":"lukasbach","email":"lbach@outlook.de"},"repository":{"url":"https://github.com/lukasbach/ink-form","type":"git"},"description":"Complex user-friendly form component for React Ink","directories":{},"dependencies":{"ink-text-input":"^4.0.1","ink-multi-select":"^2.0.0","ink-select-input":"^4.2.0","ink-quicksearch-input":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","react":"^17.0.1","ts-node":"^9.1.1","typedoc":"^0.20.29","prettier":"^2.2.1","typescript":"^4.2.3","@types/node":"^14.14.31","@types/react":"^17.0.2"},"peerDependencies":{"ink":"^3.0.8","react":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ink-form_1.0.0_1614987152252_0.22249511401912558","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"ink-form","version":"1.0.1","keywords":["react","cli","ui","component","input","forms","reusable","ink","commandline","cmd"],"author":{"name":"Lukas Bach","email":"lbach@outlook.de"},"license":"MIT","_id":"ink-form@1.0.1","maintainers":[{"name":"lukasbach","email":"lbach@outlook.de"}],"bugs":{"url":"https://github.com/lukasbach/ink-form/issues"},"dist":{"shasum":"e8e8ff2d053aba3ca536700bcd7e776779761eab","tarball":"https://registry.npmjs.org/ink-form/-/ink-form-1.0.1.tgz","fileCount":53,"integrity":"sha512-zUJP5EVNkl0bYCNr+wqT7IHYTblp8a/ApiUO6tjDI3Y175k9HdeYx1buDI/w9rWmIYNKCmUPNhzForN17YvQ7w==","signatures":[{"sig":"MEUCICG1TUHyaAL7KuBRd+PjT0oNs7tYlTFwfArgej9XzO6+AiEA97r0qLQUu1S2yCbKUh5NEGfJezO3DTWlqPtbi54Ulkk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62891,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQr/VCRA9TVsSAnZWagAAssMQAKE77I6JSaoC18Z3cbM+\ncxIxKzwvCXikaddCJilBHAqDwGvwsIc4SCPbMOyWY+H6voox+iNW06eSwbgC\nK519he9Kt4AEPJv1AB7z/vxn8p7nYtX4Emdnv8GNFX062QdGQD69Y9AmH8ji\nEdKQDVwWRLx6PHlIt31/cz69K7FSvkY20bkKAiWswbZLZsUYQuvm/TFhAus9\n5jUAAAmPjQyF0IOJWS/H35KNTWHE3jqEXh9oFEuqZ2DmDgtyjcUSJxhteras\nXh7c9AfZcDzeL03CtnnAebz1d97gjhtb6ISIihUapjaYF60GCrg3aSh54dc/\nCKz97O+7DWxgNZA6lX/F02vQt/7AY+J4uSzYEj7ojVfxj4MoqydiQ08n9X1v\nNO62VUukUxT3ZTwMCGn11e8/Bb0awCv585OzY7yFMuxqQwv46275zEhtWcXy\nZi8xDreGecURaaxeHeNylUbIwQCLzQrnx54DsAToK5YCbgSitlobbgQLopTB\nP3YwTYMlViKKnOW72J4wue2dHsWpRzImUTBEaS8+CbToX2QNMkS9YSkT2qmv\ny8qf0JJTxgKopckvEkhfRw/Tkq/NjiZS9VdmD09jsH/NjuE6yGTJw4ZWuJXu\nh9kuwFvL/G6D+b7cyc9EIe9xrhlgfbcQF9ewYidJih+Wq3sLugGH/oxeAjDx\nTtX/\r\n=rj9Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","start":"ts-node src/demo/overview.tsx","build:docs":"typedoc --out docs src/index.ts","demo:overview":"ts-node src/demo/overview.tsx","demo:imperative":"ts-node src/demo/imperative.ts","demo:packagejson":"ts-node src/demo/packagejson.tsx","demo:custommanager":"ts-node src/demo/custommanager.tsx"},"_npmUser":{"name":"lukasbach","email":"lbach@outlook.de"},"repository":{"url":"https://github.com/lukasbach/ink-form","type":"git"},"description":"Complex user-friendly form component for React Ink","directories":{},"dependencies":{"ink":"^3.0.8","react":"^17.0.1","ink-text-input":"^4.0.1","ink-multi-select":"^2.0.0","ink-select-input":"^4.2.0","ink-quicksearch-input":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^9.1.1","typedoc":"^0.20.29","prettier":"^2.2.1","typescript":"^4.2.3","@types/node":"^14.14.31","@types/react":"^17.0.2"},"peerDependencies":{"ink":"^3.0.8","react":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ink-form_1.0.1_1614987221196_0.7410642548772586","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"ink-form","version":"1.0.2","keywords":["react","cli","ui","component","input","forms","reusable","ink","commandline","cmd"],"author":{"name":"Lukas Bach","email":"lbach@outlook.de"},"license":"MIT","_id":"ink-form@1.0.2","maintainers":[{"name":"lukasbach","email":"lbach@outlook.de"}],"bugs":{"url":"https://github.com/lukasbach/ink-form/issues"},"dist":{"shasum":"b92f3edde3075459a558094d69972c7da780900b","tarball":"https://registry.npmjs.org/ink-form/-/ink-form-1.0.2.tgz","fileCount":57,"integrity":"sha512-coM7HGFI5HunCxIdZyNFX1fA7HCrDMODAJzt3fQXxcL1UzfEMUOoXZ9Ulsrv+LiTOCN252htP+vSsAlFy+3nMg==","signatures":[{"sig":"MEQCIDkPsiwqlVv5xODLm1H8ZRGDx+lzvr7svSGCZraTWd3WAiANm8QO9dhjv39R0CNIiaigC1CvWyURV+/UChWZ6mmmgQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZA0fACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5DQ//UHzonJYldegs74r1cuJiyw3BESv4A/RCJn5WvHAPlbJOHEc1\r\nzoalkVbTDMZDXG07IS2glx9NjT40pIZJgI9UJm/CKugnbTShEnOtiksVMNIn\r\nPXKcnM+szz309vBrhX+Lmsb1KMCm9+nJbN6tX4k1J5Msj/HjQGIKB66tvzUH\r\nSJAPsVaABH/IqMBN42aPfskCrFkKEGnVjB4aaz0ABpCIqQ+tUVPiw75NPLTw\r\nia19AD2yn7utP64NSMMYdtZ6hEZcwtotI9G4rSxZzAHbYUyNZe/kqDu8XG+d\r\n7rsiHAdba7Ky5HeIV51mLHsG975C7Wt/IgG0VEDwtzYndry11UsLQOhXj14L\r\n51l4bKs4iSuIIedsChFieGkhpAmImVED0h8V3egvGXYNqPk9gvZVjM+om0aV\r\nAb2B7W5Tqn8I/I9Q76R5NgDMSJCXnIqAbtJYUcDXWxn/2HRiRjpJvx0d08PG\r\nNCg8AQnALQmEQjYZM8vsc1ZlqI0Uvanz8XkY2WlhYNA5vQQzRsPXpTJHXolG\r\nJ0P83HNnRi4x7nRfRLVZgW2WuR4i/dReUqoEPNZQJUG/eaomj4PrQ/tPIkZi\r\nTA3+PV1st4iICAMgJhtaN0ICxnD0yFHucDSdY4EZzgMhrOfWH2ew4JdQG/qO\r\nwit48tfowh8LilUCz0vosyBmOd6f12/MTzE=\r\n=+4q5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","start":"ts-node src/demo/overview.tsx","build:docs":"typedoc --out docs src/index.ts","demo:overview":"ts-node src/demo/overview.tsx","prettier:check":"prettier --check .","prettier:write":"prettier --write .","demo:imperative":"ts-node src/demo/imperative.ts","demo:packagejson":"ts-node src/demo/packagejson.tsx","demo:custommanager":"ts-node src/demo/custommanager.tsx"},"_npmUser":{"name":"lukasbach","email":"lbach@outlook.de"},"repository":{"url":"https://github.com/lukasbach/ink-form","type":"git"},"description":"Complex user-friendly form component for React Ink","directories":{},"dependencies":{"ink":"^3.0.8","react":"^17.0.1","ink-text-input":"^4.0.1","ink-multi-select":"^2.0.0","ink-select-input":"^4.2.0","ink-quicksearch-input":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^9.1.1","typedoc":"^0.20.29","prettier":"^2.2.1","typescript":"^4.2.3","@types/node":"^14.14.31","@types/react":"^17.0.2"},"peerDependencies":{"ink":"^3.0.8","react":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ink-form_1.0.2_1650724127793_0.3622796126452439","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"ink-form","version":"2.0.0","keywords":["react","cli","ui","component","input","forms","reusable","ink","commandline","cmd"],"author":{"name":"Lukas Bach","email":"lbach@outlook.de"},"license":"MIT","_id":"ink-form@2.0.0","maintainers":[{"name":"lukasbach","email":"lbach@outlook.de"}],"homepage":"https://github.com/lukasbach/ink-form#readme","bugs":{"url":"https://github.com/lukasbach/ink-form/issues"},"dist":{"shasum":"2c9e39ea47ef4b9e7d05c9e956bb03102319c845","tarball":"https://registry.npmjs.org/ink-form/-/ink-form-2.0.0.tgz","fileCount":41,"integrity":"sha512-PpS+TaSGjFMxA0whXZSoITgMKNN91Yh6P+coTdEmk4NsS9IhSOyQLSiCXuTvTn1NId6TnesoDURtZwPlLIGD9Q==","signatures":[{"sig":"MEUCIQCOC9Q/eaP9mh3QuAXo9Z/WDbHjrKjki/rYqqYVH/mbZAIgELT6VORYkaoFqxWws0KpU56GZyb8gvlvFbZPm1EX6Xs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113247},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","exports":"./lib/index.js","gitHead":"70ab43446fe4126b3a63b8970317c43046528eb2","scripts":{"lint":"prettier --check .","build":"tsc","start":"ts-node-esm src/demo/overview.tsx","build:docs":"typedoc --out docs src/index.ts","demo:overview":"ts-node-esm src/demo/overview.tsx","prettier:check":"prettier --check .","prettier:write":"prettier --write .","demo:imperative":"ts-node-esm src/demo/imperative.ts","demo:packagejson":"ts-node-esm src/demo/packagejson.tsx","demo:custommanager":"ts-node-esm src/demo/custommanager.tsx"},"_npmUser":{"name":"lukasbach","email":"lbach@outlook.de"},"repository":{"url":"git+https://github.com/lukasbach/ink-form.git","type":"git"},"_npmVersion":"9.8.1","description":"Complex user-friendly form component for React Ink","directories":{},"_nodeVersion":"18.17.0","dependencies":{"ink-text-input":"^5.0.1","ink-select-input":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^4.4.1","react":"^18.2.0","ts-node":"^10.9.1","typedoc":"^0.25.4","prettier":"^2.2.1","typescript":"^5.3.2","@types/node":"^14.14.45","@types/react":"^18.2.41"},"peerDependencies":{"ink":">4","react":">17"},"_npmOperationalInternal":{"tmp":"tmp/ink-form_2.0.0_1701722410461_0.8298938972126666","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"ink-form","version":"2.0.1","keywords":["react","cli","ui","component","input","forms","reusable","ink","commandline","cmd"],"author":{"name":"Lukas Bach","email":"lbach@outlook.de"},"license":"MIT","_id":"ink-form@2.0.1","maintainers":[{"name":"lukasbach","email":"lbach@outlook.de"}],"homepage":"https://github.com/lukasbach/ink-form#readme","bugs":{"url":"https://github.com/lukasbach/ink-form/issues"},"dist":{"shasum":"21a7c31a5cead22c085bdb3c710ac5416b46b329","tarball":"https://registry.npmjs.org/ink-form/-/ink-form-2.0.1.tgz","fileCount":192,"integrity":"sha512-vo0VMwHf+HOOJo7026K4vJEN8xm4sP9iWlQLx4bngNEEY5K8t30CUvVjQCCNAV6Mt2ODt2Aq+2crCuBONReJUg==","signatures":[{"sig":"MEQCIBDFYf4dZOcQ9lCyQ/lR3+7DgVmlhFTGEER98fFzMk2NAiBRb7NxsKWfNZNeEqyq5RnOfl+HBtrmzoMwMnp9TVYarA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24928956},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","exports":"./lib/index.js","gitHead":"af553b24a716cc78a59232e2d6a1acd4b5ecc783","publish":{"preScripts":"build,build:docs,lint","releaseNotesSource":"next-releasenotes.md"},"scripts":{"lint":"prettier --check .","build":"tsc","start":"ts-node-esm src/demo/overview.tsx","release":"publish-fast","build:docs":"typedoc --out docs src/index.ts","demo:overview":"ts-node-esm src/demo/overview.tsx","prettier:check":"prettier --check .","prettier:write":"prettier --write .","demo:imperative":"ts-node-esm src/demo/imperative.ts","demo:packagejson":"ts-node-esm src/demo/packagejson.tsx","demo:custommanager":"ts-node-esm src/demo/custommanager.tsx"},"_npmUser":{"name":"lukasbach","email":"lbach@outlook.de"},"repository":{"url":"git+https://github.com/lukasbach/ink-form.git","type":"git"},"_npmVersion":"9.8.1","description":"Complex user-friendly form component for React Ink","directories":{},"_nodeVersion":"18.17.0","dependencies":{"ink-text-input":"^6.0.0","ink-select-input":"^5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^4.4.1","react":"^18.2.0","ts-node":"^10.9.1","typedoc":"^0.25.4","prettier":"^2.2.1","typescript":"^5.3.2","@types/node":"^14.14.45","@types/react":"^18.2.41","publish-fast":"^0.0.20"},"peerDependencies":{"ink":">=4","react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ink-form_2.0.1_1716041166153_0.9248034003086616","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"ink-form","type":"module","version":"2.0.2","description":"Complex user-friendly form component for React Ink","main":"lib/index.js","exports":"./lib/index.js","types":"lib/index.d.ts","keywords":["react","cli","ui","component","input","forms","reusable","ink","commandline","cmd"],"repository":{"type":"git","url":"git+https://github.com/lukasbach/ink-form.git"},"author":{"name":"Lukas Bach","email":"lbach@outlook.de"},"license":"MIT","bugs":{"url":"https://github.com/lukasbach/ink-form/issues"},"devDependencies":{"@types/node":"^14.14.45","@types/react":"^18.2.41","ink":"^4.4.1","prettier":"^2.2.1","publish-fast":"^0.0.20","react":"^18.2.0","ts-node":"^10.9.1","typedoc":"^0.25.4","typescript":"^5.3.2"},"scripts":{"start":"ts-node-esm src/demo/overview.tsx","demo:overview":"ts-node-esm src/demo/overview.tsx","demo:packagejson":"ts-node-esm src/demo/packagejson.tsx","demo:custommanager":"ts-node-esm src/demo/custommanager.tsx","demo:imperative":"ts-node-esm src/demo/imperative.ts","build":"tsc","build:docs":"typedoc --out docs src/index.ts","lint":"prettier --check .","prettier:check":"prettier --check .","prettier:write":"prettier --write .","release":"publish-fast"},"peerDependencies":{"ink":">=4","react":">=18"},"dependencies":{"ink-select-input":"^5.0.0","ink-text-input":"^6.0.0"},"publishConfig":{"access":"public"},"publish":{"preScripts":"build,build:docs,lint","releaseNotesSource":"next-releasenotes.md"},"_id":"ink-form@2.0.2","gitHead":"cdbf70658676a9db452aee4f93fe60096ac04af0","homepage":"https://github.com/lukasbach/ink-form#readme","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-dAXnXjAip5EGyYo9TwMuY6ONd5WWVo/KgSxtaC4V9fIkcXzxIvpsagwLZbKsT0VBOTBMAGefOJMZX7tVNO9VtQ==","shasum":"a8be1a3cc7278d7cc91828b7707e817ac7c72b96","tarball":"https://registry.npmjs.org/ink-form/-/ink-form-2.0.2.tgz","fileCount":192,"unpackedSize":24922136,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFQ7AeYWmBel0yAroR/yB4BGDXyPFICcmI/RR21XkCmHAiEA1XiCC4lztJC1664aBqhQX5w8Z5QF0iv2HRxhfuc73JU="}]},"_npmUser":{"name":"lukasbach","email":"lbach@outlook.de"},"directories":{},"maintainers":[{"name":"lukasbach","email":"lbach@outlook.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ink-form_2.0.2_1787361830430_0.9163693008925635"},"_hasShrinkwrap":false}},"time":{"created":"2021-03-05T23:32:32.252Z","modified":"2026-08-22T01:23:51.036Z","1.0.0":"2021-03-05T23:32:32.379Z","1.0.1":"2021-03-05T23:33:41.351Z","1.0.2":"2022-04-23T14:28:47.950Z","2.0.0":"2023-12-04T20:40:10.699Z","2.0.1":"2024-05-18T14:06:06.617Z","2.0.2":"2026-08-22T01:23:50.878Z"},"bugs":{"url":"https://github.com/lukasbach/ink-form/issues"},"author":{"name":"Lukas Bach","email":"lbach@outlook.de"},"license":"MIT","homepage":"https://github.com/lukasbach/ink-form#readme","keywords":["react","cli","ui","component","input","forms","reusable","ink","commandline","cmd"],"repository":{"type":"git","url":"git+https://github.com/lukasbach/ink-form.git"},"description":"Complex user-friendly form component for React Ink","maintainers":[{"name":"lukasbach","email":"lbach@outlook.de"}],"readme":"# ink-form\n\n`ink-form` is a Node library for displaying a user-friendly form in a terminal window.\nIt can be used in two ways, either by using the React Ink component `Form` exported by\nthe package, or by using the imperative API `openForm(options)`.\n\n![alt text](https://github.com/lukasbach/ink-form/raw/main/demo/overview.gif 'Demo 1')\n![alt text](https://github.com/lukasbach/ink-form/raw/main/demo/packagejson.gif 'Demo 2')\n\n## Example usage\n\n    npm install ink-form react ink\n\n```typescript jsx\nconst options = [\n  { label: 'Opt 1', value: 'a' },\n  { label: 'Opt 2', value: 'b' },\n];\n\nconst form: FormProps = {\n  form: {\n    title: 'Form title',\n    sections: [\n      {\n        title: 'Text and Number fields',\n        fields: [\n          { type: 'string', name: 'field1', label: 'Input with initial value', initialValue: 'Initial value' },\n          { type: 'string', name: 'field2', label: 'Masked input', mask: '*' },\n          { type: 'integer', name: 'field3', label: 'Integer between -5 and 8, stepsize 2', min: -5, max: 8, step: 2 },\n          { type: 'float', name: 'field4', label: 'Float between 0 and 5, stepsize 0.1', min: 0, max: 5, step: 0.1 },\n        ],\n      },\n      {\n        title: 'Select and boolean fields',\n        fields: [\n          { type: 'select', name: 'field5', label: 'Select', options },\n          { type: 'multiselect', name: 'field6', label: 'Multi Select', options },\n          { type: 'boolean', name: 'field7', label: 'Boolean select', options },\n        ],\n      },\n    ],\n  },\n};\n\n// either:\n(async () => {\n  const result = await openForm(form);\n  console.log(`Finished with value`, result);\n})();\n\n// or:\nrender(\n  <Form\n    {...form}\n    onSubmit={result => {\n      console.log(`Finished with value`, result);\n    }}\n  />\n);\n```\n\nIf you want to see how using `ink-form` feels, you can clone this repo, run `yarn` to install\ndependencies and then run one of the demo scripts:\n\n- `yarn demo:overview` ([See Code](https://github.com/lukasbach/ink-form/blob/main/src/demo/overview.tsx))\n- `yarn demo:packagejson` ([See Code](https://github.com/lukasbach/ink-form/blob/main/src/demo/packagejson.tsx))\n- `yarn demo:custommanager` ([See Code](https://github.com/lukasbach/ink-form/blob/main/src/demo/custommanager.tsx))\n- `yarn demo:imperative` ([See Code](https://github.com/lukasbach/ink-form/blob/main/src/demo/imperative.ts))\n\n## Update Note\n\nThis package is now pure ESM as of 2.0.0. (Details: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)\n\nWith that upgrade, I had to remove the multi select component as its dependency does not support ESM. Please\nuse the v1x version branch with CJS if you need that.\n\n## Documentation\n\nDetailed documentation is available at [lukasbach.github.io/ink-form](https://lukasbach.github.io/ink-form/).\nInstall the package with `npm install ink-form --save` or `yarn add ink-form` to your project.\n\nThen, render the form by invoking the [imperative interface](https://lukasbach.github.io/ink-form/modules.html#openform)\nor by rendering the [React Ink component](https://lukasbach.github.io/ink-form/modules.html#form).\nBoth take [`FormProps`](https://lukasbach.github.io/ink-form/interfaces/formprops.html) as parameters.\n\nThe most important property is the `form`-property, which dictates how the form fields are structured. It follows\nthe [`FormStructure`](https://lukasbach.github.io/ink-form/interfaces/formstructure.html)-interface. Look into the\nexample above to see an example.\n\n## Custom fields\n\nA form field describes a type of input, i.e. text input, number input etc.\nIncluded are:\n\n- FormFieldString\n- FormFieldInteger\n- FormFieldFloat\n- FormFieldSelect\n- FormFieldMultiSelect\n- FormFieldBoolean\n\nYou can add your own form field by extending\n[`AbstractFormField`](https://lukasbach.github.io/ink-form/modules.html#abstractformfield)\nand implementing an associated\n[`FormFieldManager<CustomFormField>`](https://lukasbach.github.io/ink-form/interfaces/formfieldmanager.html).\n\n![alt text](https://github.com/lukasbach/ink-form/raw/main/demo/customfield.gif 'Demo 3')\n","readmeFilename":"readme.md","users":{"flumpus-dev":true}}