{"id":19661711,"url":"https://github.com/hkk97/country_selector_widget","last_synced_at":"2025-07-29T11:33:39.572Z","repository":{"id":136911375,"uuid":"564673584","full_name":"hkk97/country_selector_widget","owner":"hkk97","description":"Country Selector Widget written by Dart and Fluter supports three locales with the country's name, achieved lazy loading, and animation FadeIn. This package provides CountrySelectorWidget and showCountrySelectorBottomSheet to fulfill the needed usage.","archived":false,"fork":false,"pushed_at":"2024-03-22T19:59:57.000Z","size":24160,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-08T08:06:04.365Z","etag":null,"topics":["country-selector-widget","dart","dart-library","flutter","flutter-library"],"latest_commit_sha":null,"homepage":"https://hkk97.github.io/country_selector_widget/#/","language":"Dart","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/hkk97.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-11T08:22:55.000Z","updated_at":"2024-08-20T04:23:34.000Z","dependencies_parsed_at":"2025-05-01T10:51:46.144Z","dependency_job_id":"3429ab39-1301-497a-98c0-fe1e39075b9c","html_url":"https://github.com/hkk97/country_selector_widget","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hkk97/country_selector_widget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkk97%2Fcountry_selector_widget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkk97%2Fcountry_selector_widget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkk97%2Fcountry_selector_widget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkk97%2Fcountry_selector_widget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hkk97","download_url":"https://codeload.github.com/hkk97/country_selector_widget/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkk97%2Fcountry_selector_widget/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267678448,"owners_count":24126333,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["country-selector-widget","dart","dart-library","flutter","flutter-library"],"created_at":"2024-11-11T16:08:18.380Z","updated_at":"2025-07-29T11:33:39.541Z","avatar_url":"https://github.com/hkk97.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Country Selector Widget\n\nCountry Selector Widget written by Dart and Flutter supports three locales with the country's name, achieved lazy loading, and animation FadeIn. This package provides CountrySelectorWidget and showCountrySelectorBottomSheet to fulfill the needed usage.\n\n\u003cp align=\"center\"\u003e\n     \u003ca href=\"https://github.com/flutter/flutter/tree/3.3.8\" alt=\"Flutter\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Flutter-v3.3.8 (stable)-4BC51D.svg?style=flat\" /\u003e\u003c/a\u003e\n     \u003ca alt=\"Dart\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Dart-v2.18.4 (stable)-4BC51D.svg?style=flat\" /\u003e\u003c/a\u003e\n     \u003ca alt=\"DevTools\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/DevTools-v2.15.0 (stable)-4BC51D.svg?style=flat\" /\u003e\u003c/a\u003e\n     \u003ca alt=\"VS Code\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/VS Code-v1.68.1-4BC51D.svg?style=flat\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n|             | Android | iOS  | Linux | macOS  | Web | Windows     |\n|-------------|---------|------|-------|--------|-----|-------------|\n| **Support** | Any | Any | Any   | Any | Any | Any         |\n\nTo see examples of the following animations on a device or simulator:\n\n```bash\ncd example/\nflutter run\n```\n\n## Usage\n\nTo use this plugin, add `country_selector_widget` as a [dependency in your pubspec.yaml file].\n\n### Examples\n\nHere are the examples that show you how to use the CountrySelectorWidget and showCountrySelectorBottomSheet.\n\n#### Usage of CountrySelectorWidget\n\n- the default locale is SelectedLocale.en, you would change to SelectedLocale.zhCH or SelectedLocale.zhHK\n- once the country is selected and clicked the continue btn it will trigger the valueChangedCallback called onSelectedCountry and return the Country\n\n```dart\nCountrySelectorWidget(\n    onSelectedCountry: (Country country) async {\n        // selected country callback \n    },\n)\n```\n\n#### Usage of showCountrySelectorBottomSheet\n\n- the different between CountrySelectorWidget and showCountrySelectorBottomSheet are showCountrySelectorBottomSheet is wrap with the showModalBottomSheet\n- showCountrySelectorBottomSheet will also do the Navigator.pop(context) for you once the continue button are clicked\n\n```dart\nshowCountrySelectorBottomSheet(\n    context: context,\n    onSelectedCountry: (Country country) async {\n        // selected country callback \n    };\n```\n\n## Parameters\n\n| Parameter | Description |\n|---|---|\n| `withDialCode` | Used to determine whether show the dialCode of country or not |\n| `refCountryCode` | Sets the default selected country |\n| `customAppBar` | Sets the Custom AppBar instead of using provided default AppBar  |\n| `bottomAppBarHeight` | Sets the height for the bottom `Continue Section` widget |\n| `continueBtnPadding` | The Padding between the bottom `Continue Section` and `Continue Button` widget |\n| `selectedLocale` | Uses to determine the default label with locale, there are three `SelectedLocale`. They are `SelectedLocale.en`, `SelectedLocale.zhCH` and `SelectedLocale.zhHK` |\n| `showSelectedWidget` | Uses to determine wether show the `CountryCardWidget` or not when the country is selected in the ListView |\n| `aniDuration` | Duration of the FadeIn Animation of `CountryCardWidget` |\n| `onSelectedCountry` | Callback of onSelectedCountry when the country is selected from ListView and ContinueButton is Clicked |\n| `appBarText` | Uses to replace the default text of the AppBar |\n| `searchText` | Uses to replace the hintText of `TextField` |\n| `selectedCountryText` | Uses to replcae the title of the `SelectedCountryCardWidget` |\n| `withoutMatchText` |  Uses to replace the hintText when there are does not country match with the search pattern |\n| `continueBtnText` | Uses to replace the text of the `Continue Button` |\n| `textFieldTextStyle` | Uses to determine the textStyle of the `TextField` |\n| `appBarTextStyle` | Uses to determine the textStyle of the `AppBar` |\n| `searchTextStyle` | Uses to determine the textStyle of the SearchText |\n| `selectedCountryTextStyle` | Uses to determine the textStyle of the selectedCountry |\n| `withoutMatchTextStyle` | Uses to determine the textStyle of the WitoutMatchText when there does not the match match with serach pattern |\n| `continueBtnTextStyle` | Uses to determine the textStyle of Continue Button |\n| `focusedBorderColor` | Uses to determine the borderColor of `TextField` when it is selected |\n| `selectedCardColor` | Uses to determine the color of Card when the `CountryCardWidget` is selected |\n| `continueBtnBgColor` | Uses to determine the background color of Contuinue Button |\n| `continueBtnOverlayColor` | Uses to determine overlay color of Contuinue Button |\n| `textFieldborderRadius` | Uses to determine borderRadius of `TextField` |\n| `continueBtnRadius` | Uses to determine borderRadius of Continue Button |\n\n## Demonstration of CountrySelectorWidget - Flutter Web\n\n![\"CountrySelectorWidget - SelectedLocale.zhCH\"](example/demo_gifs/countrySelectorWidget_demo.gif)\n\n## Demonstration of showCountrySelectorBottomSheet - Flutter Web\n\n![\"showCountrySelectorBottomSheet - SelectedLocale.en\"](example/demo_gifs/showCountrySelectorBottomSheet.gif)\n\n## Demonstration of CountrySelectorWidget - Android\n\n![\"Demonstration of showCountrySelectorBottomSheet - Android\"](example/demo_gifs/android_demo.gif)\n\n## Demonstration of CountrySelectorWidget - IOS\n\n![\"Demonstration of showCountrySelectorBottomSheet - IOS\"](example/demo_gifs/ios_demo.gif)\n\n## Demonstration of showCountrySelectorBottomSheet - MacOS\n\n![\"Demonstration of showCountrySelectorBottomSheet - MacOS\"](example/demo_gifs/mac_os_demo.gif)\n\n## MIT License\n\n```\nCopyright (c) 2022 hkk97\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkk97%2Fcountry_selector_widget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhkk97%2Fcountry_selector_widget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkk97%2Fcountry_selector_widget/lists"}