{"id":32282812,"url":"https://github.com/stanislavworldin/country_search","last_synced_at":"2026-04-17T08:31:37.596Z","repository":{"id":307166635,"uuid":"1028619590","full_name":"stanislavworldin/country_search","owner":"stanislavworldin","description":"The Fastest, Most Customizable Country Picker for Flutter","archived":false,"fork":false,"pushed_at":"2026-03-03T20:13:40.000Z","size":71334,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-03T23:37:41.421Z","etag":null,"topics":["country","country-codes","country-data","country-flags","country-information","country-list","country-names","country-picker","country-search","dart","dropdown","flags","flutter","flutter-ui","fuzzy-search","iso-codes","localization","phone-code","search","widget"],"latest_commit_sha":null,"homepage":"https://stanislavworldin.github.io/country_search/","language":"JavaScript","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/stanislavworldin.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":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-29T19:58:43.000Z","updated_at":"2026-03-03T20:13:45.000Z","dependencies_parsed_at":"2025-10-25T01:00:34.332Z","dependency_job_id":null,"html_url":"https://github.com/stanislavworldin/country_search","commit_stats":null,"previous_names":["stanislavworldin/country_search"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/stanislavworldin/country_search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislavworldin%2Fcountry_search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislavworldin%2Fcountry_search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislavworldin%2Fcountry_search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislavworldin%2Fcountry_search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stanislavworldin","download_url":"https://codeload.github.com/stanislavworldin/country_search/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanislavworldin%2Fcountry_search/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31921796,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"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","country-codes","country-data","country-flags","country-information","country-list","country-names","country-picker","country-search","dart","dropdown","flags","flutter","flutter-ui","fuzzy-search","iso-codes","localization","phone-code","search","widget"],"created_at":"2025-10-23T01:06:04.458Z","updated_at":"2026-04-17T08:31:37.586Z","avatar_url":"https://github.com/stanislavworldin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# country_search\n\nSimple and fast country picker for Flutter.\n\n[Live version](https://stanislavworldin.github.io/country_search/) · [pub.dev](https://pub.dev/packages/country_search) · [Repository](https://github.com/stanislavworldin/country_search) · [Issues](https://github.com/stanislavworldin/country_search/issues) · [Changelog](CHANGELOG.md) · [Migration](MIGRATION.md)\n\n## What You Get\n\n- 252+ countries (ISO code, emoji flag, phone code)\n- Fast search by name, ISO code, and phone code\n- 21 localizations\n- Builder API for customization\n- Standalone `CountryFlag` widget (emoji/svg)\n\n## Supported Translation Languages\n\n`ar` Arabic, `bn` Bengali, `de` German, `en` English, `es` Spanish, `fr` French, `hi` Hindi, `id` Indonesian, `it` Italian, `ja` Japanese, `ko` Korean, `nl` Dutch, `pl` Polish, `pt` Portuguese, `ru` Russian, `th` Thai, `tr` Turkish, `uk` Ukrainian, `ur` Urdu, `vi` Vietnamese, `zh` Chinese.\n\n## Install\n\n```yaml\ndependencies:\n  country_search: ^3.0.1\n```\n\n## 1-Minute Setup\n\n```dart\nimport 'package:country_search/country_search.dart';\nimport 'package:flutter_localizations/flutter_localizations.dart';\n\nMaterialApp(\n  localizationsDelegates: const [\n    CountryLocalizations.delegate,\n    GlobalMaterialLocalizations.delegate,\n    GlobalWidgetsLocalizations.delegate,\n    GlobalCupertinoLocalizations.delegate,\n  ],\n  supportedLocales: CountryLocalizations.supportedLocales,\n  home: const DemoPage(),\n);\n```\n\n```dart\nCountryPicker.builder()\n    .selectedCountry(selectedCountry)\n    .onCountrySelected((country) {\n      setState(() =\u003e selectedCountry = country);\n    })\n    .build();\n```\n\n## Most Used Options\n\n```dart\nCountryPicker.builder()\n    .favorites(const ['US', 'GB'])\n    .exclude(const ['RU'])\n    .countryFilter((country) =\u003e country.code != 'KP')\n    .onOpened(() {})\n    .onClosed(() {})\n    .onSearchChanged((query) {})\n    .showSuggestedCountries(true)\n    .modalPresentation(CountryPickerModalPresentation.dialog)\n    .build();\n```\n\n## Styling (3.x)\n\nIn `3.x`, styling goes through `CountryPickerThemeData` only.\n\n```dart\nfinal theme = CountryPickerThemeData.light.copyWith(\n  accentColor: Colors.blue,\n  borderRadius: 12,\n  itemHeight: 56,\n);\n\nCountryPicker.builder()\n    .themeData(theme)\n    .build();\n```\n\nBuilt-in presets:\n\n- `CountryPickerThemeData.dark`\n- `CountryPickerThemeData.light`\n- `CountryPickerThemeData.purple`\n- `CountryPickerThemeData.minimal`\n\n## CountryFlag Widget\n\n```dart\nCountryFlag.fromCountryCode('US');\n\nCountryFlag.fromCountryCode(\n  'JP',\n  mode: CountryFlagMode.svg,\n  style: const CountryFlagStyle(size: 24, isCircle: true),\n);\n```\n\nLookup constructors:\n\n- `CountryFlag.fromLanguageCode('pt-BR')`\n- `CountryFlag.fromCurrencyCode('USD')`\n- `CountryFlag.fromPhoneCode('+44')`\n\n## Search Rules\n\n- Empty query:\n  - `showSuggestedCountries = true`: suggested + regular sections\n  - `showSuggestedCountries = false`: regular list only\n- Non-empty query ranking: exact -\u003e startsWith -\u003e contains -\u003e fuzzy\n- Accent-insensitive (`etats` finds `États-Unis`)\n- Phone normalization (`+380`, `380`, `(+380)` work)\n\n## Migration From 2.x\n\n`3.0.0` removed legacy constructor style fields.\nUse `themeData` for styling.\n\nSee [MIGRATION.md](MIGRATION.md).\n\n## Compatibility\n\n- Dart: `\u003e=3.0.0 \u003c4.0.0`\n- Flutter: `\u003e=3.0.0`\n\n## Dev\n\n```bash\nflutter analyze\nflutter test\n```\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanislavworldin%2Fcountry_search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstanislavworldin%2Fcountry_search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanislavworldin%2Fcountry_search/lists"}