{"id":13552003,"url":"https://github.com/TinoGuo/pin_input_text_field","last_synced_at":"2025-04-03T02:32:37.643Z","repository":{"id":43088876,"uuid":"162907718","full_name":"TinoGuo/pin_input_text_field","owner":"TinoGuo","description":"A textField widget to help display different style pin","archived":false,"fork":false,"pushed_at":"2024-04-08T08:06:39.000Z","size":165660,"stargazers_count":364,"open_issues_count":6,"forks_count":79,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-08T09:34:59.327Z","etag":null,"topics":["dart","flutter","pin","pub","textfield-widget"],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TinoGuo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2018-12-23T16:41:14.000Z","updated_at":"2024-04-15T09:32:37.796Z","dependencies_parsed_at":"2023-09-22T17:39:20.111Z","dependency_job_id":"2c9ca662-3e2d-4eba-9119-820f3a3619d4","html_url":"https://github.com/TinoGuo/pin_input_text_field","commit_stats":{"total_commits":165,"total_committers":9,"mean_commits":"18.333333333333332","dds":0.2727272727272727,"last_synced_commit":"d51bb122b5bf56c17fbe1b0b8858cefd1cb39698"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TinoGuo%2Fpin_input_text_field","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TinoGuo%2Fpin_input_text_field/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TinoGuo%2Fpin_input_text_field/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TinoGuo%2Fpin_input_text_field/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TinoGuo","download_url":"https://codeload.github.com/TinoGuo/pin_input_text_field/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246925510,"owners_count":20855893,"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":["dart","flutter","pin","pub","textfield-widget"],"created_at":"2024-08-01T12:01:57.324Z","updated_at":"2025-04-03T02:32:34.672Z","avatar_url":"https://github.com/TinoGuo.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"![](https://github.com/TinoGuo/pin_input_text_field/workflows/Flutter%20Build%20Test%20CI/badge.svg?branch=master)\n[![pub package](https://img.shields.io/pub/v/pin_input_text_field.svg)](https://pub.dartlang.org/packages/pin_input_text_field)\n![GitHub](https://img.shields.io/github/license/TinoGuo/pin_input_text_field)\n![GitHub top language](https://img.shields.io/github/languages/top/TinoGuo/pin_input_text_field)\n\n# pin_input_text_field\n\n[中文](./README_CN.md)\nPinInputTextField is a TextField widget to help display different style pin. It supports all the platforms [flutter](https://github.com/flutter/flutter) supports.\n\n## Notes 🚨\n**please use 4.4.1 for flutter version is below 3.7.0**\n\n## Feature 🌟\n* allow you customized the shape, any!\n* built-in 4 commonly used pin styles of shape\n* obscure support\n* solid support\n* enterColor support\n* cursor support\n* support all the textField properties theoretically\n* Flutter all platform support\n\n## Example 🦀\n\nThanks to the [Flutter Web](https://flutter.dev/web), you can enjoy the preview by [website](https://tinoguo.github.io/pin_input_text_field/) without any installation. \n\n### Decoration \n\n**UnderlineDecoration**\n\n\u003cimg src=\"gifs/underline.gif\" width=\"375\" /\u003e\n\n**BoxLooseDecoration**\n\n\u003cimg src=\"gifs/boxloose.gif\" width=\"375\" /\u003e\n\n**BoxTightDecoration**\n\n\u003cimg src=\"gifs/boxtight.gif\" width=\"375\" /\u003e\n\n**CircleDecoration**\n\n\u003cimg src=\"gifs/circle.gif\" width=\"375\" /\u003e\n\n## Installing 🔧\nInstall the latest version from [pub](https://pub.dartlang.org/packages/pin_input_text_field).\n\n## Usage ✍️\n\n### Attributes\nCustomizable attributes for PinInputTextField\n\u003ctable\u003e\n    \u003cth\u003eAttribute Name\u003c/th\u003e\n    \u003cth\u003eExample Value\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n    \u003ctr\u003e\n        \u003ctd\u003epinLength\u003c/td\u003e\n        \u003ctd\u003e6\u003c/td\u003e\n        \u003ctd\u003eThe max length of pin, the default is 6\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eonSubmit\u003c/td\u003e\n        \u003ctd\u003e(String pin){}\u003c/td\u003e\n        \u003ctd\u003eThe callback will execute when user click done, sometimes is not working in Android.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003edecoration\u003c/td\u003e\n        \u003ctd\u003eBoxLooseDecoration\u003c/td\u003e\n        \u003ctd\u003eDecorate the pin, there are 3 inside styles, the default is BoxLooseDecoration\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003einputFormatters\u003c/td\u003e\n        \u003ctd\u003eWhitelistingTextInputFormatter.digitsOnly\u003c/td\u003e\n        \u003ctd\u003eJust like TextField's inputFormatter, the default is WhitelistingTextInputFormatter.digitsOnly\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ekeyboardType\u003c/td\u003e\n        \u003ctd\u003eTextInputType.phone\u003c/td\u003e\n        \u003ctd\u003eJust like TextField's keyboardType, the default is TextInputType.phone\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003epinEditingController\u003c/td\u003e\n        \u003ctd\u003ePinEditingController\u003c/td\u003e\n        \u003ctd\u003eControls the pin being edited. If null, this widget will create its own PinEditingController\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eautoFocus\u003c/td\u003e\n        \u003ctd\u003efalse\u003c/td\u003e\n        \u003ctd\u003eSame as TextField's autoFocus, the default is false\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003efocusNode\u003c/td\u003e\n        \u003ctd\u003eFocusNode\u003c/td\u003e\n        \u003ctd\u003eSame as TextField's focusNode\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003etextInputAction\u003c/td\u003e\n        \u003ctd\u003eTextInputAction.done\u003c/td\u003e\n        \u003ctd\u003eSame as TextField's textInputAction, not working in digit mode\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eenabled\u003c/td\u003e\n        \u003ctd\u003etrue\u003c/td\u003e\n        \u003ctd\u003eSame as TextField's enabled, the default is true\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eonChanged\u003c/td\u003e\n        \u003ctd\u003e(String pin){}\u003c/td\u003e\n        \u003ctd\u003eSame as TextField's onChanged\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003etextCapitalization\u003c/td\u003e\n        \u003ctd\u003eTextCapitalization.words\u003c/td\u003e\n        \u003ctd\u003eSame as TextField's textCapitalization\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ecursor\u003c/td\u003e\n        \u003ctd\u003eCursor.disabled()\u003c/td\u003e\n        \u003ctd\u003eThe cursor of the pin, default is not enabled\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n### FormField\nInstead of using PinInputTextField, using PinInputTextFormField to control validate.\n\n### ObscureStyle \n\n```\n/// Determine whether replace [obscureText] with number.\nfinal bool isTextObscure;\n/// The display text when [isTextObscure] is true, emoji supported\nfinal String obscureText;\n```\n\n## Known Issue 🥶\n\nThe `PinEditingController` listener will execute more than once when programmatically set text, you can filter some duplicate values in your code.\n\n## License\n\n```text\nCopyright 2019 Tino Guo.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTinoGuo%2Fpin_input_text_field","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTinoGuo%2Fpin_input_text_field","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTinoGuo%2Fpin_input_text_field/lists"}