Skip to main content

nativemind_vpn 1.2.1 copy "nativemind_vpn: ^1.2.1" to clipboard
nativemind_vpn: ^1.2.1 copied to clipboard

VPN client widgets made by hand: Gleb Sosnin's connect button, stat tiles, location card, server and app lists, search sheet and tab bar, Wishyut's settings widgets, the VPN editions (Pink / Orange / [...]

1.2.1 #

  • Docs: README (install, handmade authors and roles, links), migration guide, PROVENANCE.
  • pubspec: repository field so README links resolve on pub.dev.

1.2.0 #

Follow-up of task 4.1 (SDD flows/sdd-widgets-handmade): what VPNclient-app had to build around the handmade widgets moves into them. Additive — every new parameter is optional and its default is the 1.1.0 behaviour; the authors' code changes only inside marked >>> generated blocks.

  • NmNavBar (Gleb Sosnin), Figma «Tabbar» 78:402 / «Tabbar-Mini» 902:10897 of Alexander Kuptsov:
    • gradient — the active icon is filled with the edition's gradient, and Speed / Settings get an active state too (the author drew active icons for Apps, Servers and Home only, in Blue); the mini bar draws them at the Figma size (32 px Speed, 34 × 32 Settings);
    • slots — 1–3 of the author's tabs (0 Apps … 4 Settings) as Figma «Tabbar-Mini»: 44-px slots 104 px apart, centred, 14 px from the top of the 58-px bar over the 34-px home bar; initialIndex / onItemTapped count positions in it;
    • labels (Semantics: button, selected), itemKeys (tap targets), badges (unread count: NmBadge of nativemind_core on the slot's top-right corner, Figma «Settings-Push» 829:20931).
  • NmServerListItem, NmAppListItem, NmLocationWidget: a long name ellipsizes on one line instead of overflowing the row (short names lay out as before).
  • NmSearchDialog: «Поиск», «Готово», «Отмена», «Недавно искали», «Ничего не найдено» come from Wishyut's strings (NmVpnL10n: search, done, cancel, recently_searched, nothing_found); Russian stays the ru value. 1.1.0 showed Russian in every language.
  • NmSettingInfoCard.version — the value of the «Version» row (default 'v 1.0', the author's fixed text); a long row value (host, link, id) ellipsizes instead of overflowing (goldens lists_settings_*: sub-pixel text shift only).

1.1.0 #

Strings of the handmade widgets from Wishyut's JSON files (SDD flows/sdd-widgets-handmade, task 2.12). Additive; the 1.0.0 API stays.

  • assets/lang/{en,ru,th,zh}.json: Wishyut's string files (VPNclient-app, 2025; 38 keys, byte-identical), read at run time by NmLocalizationService (Wishyut; in nativemind_core 1.1.0 — the minimum core is now ^1.1.0).
  • NmVpnL10n is a typed wrapper over them: a getter per key (38; the 11 of 1.0.0 keep their names), operator [], keys, languages, NmVpnL10n.delegate (loads the locale's file; any locale, English file when missing) and NmVpnL10n.load(locale) (for widget tests: setUpAll(() => NmVpnL10n.load(const Locale('en')))). Before a file is loaded the getters read Wishyut's English.
  • The handmade widgets now show his texts: status labels upper-case as in Figma («CONNECTED», «ПОДКЛЮЧЕН»), «Your Location», «Auto Select», «All Applications»; Wishyut's settings widgets read the real service (1.0.0: an English-only stand-in), so ru / th / zh work.
  • NmNetwork.delegate also loads Wishyut's strings, so an app set up for 1.0.0 (only this delegate) keeps working; add NmVpnL10n.delegate next to it.
  • Deprecated (removed in 2.0): the NmNetworkL10n getters Wishyut's keys replace — stateDisconnected, stateConnecting, stateConnected, stateDisconnecting, stateReconnecting, yourLocation, autoSelect, fastest, selectedServer, allServers, allApps (use the NmVpnL10n getters of the same meaning). The other NmNetwork strings (ping, subscriptions, split tunnelling) stay for the 0.x network widgets.
  • NmServerLocation.label reads NmVpnL10n.auto_select for the automatic choice.
  • Dependencies: nativemind_core ^1.1.0; no nativemind_translations / nativemind_copilot (no flutter_llama in any VPN edition, GOST included).

1.0.0 #

First release (SDD flows/sdd-widgets-handmade, Phase 2, tasks 2.1–2.11).

  • Handmade widgets of Gleb Sosnin (VPNclient-app, 2025): NmMainBtn, NmStatBar, NmLocationWidget, NmServersList / NmServerListItem, NmAppsList / NmAppListItem, NmSearchDialog, NmNavBar, NmConnectionStatus, tokens nmLightTheme / nmDarkTheme / nmMainGradient, NmVpnCustomIcons, tab icons, dimensions.
  • Handmade widgets of Wishyut: NmActionButton, NmResetSettingsDialog, NmSettingInfoCard, NmSupportServiceCard, NmSnackbarUtils, NmUrlLauncherUtils, NmCustomString.
  • Data and callbacks from the app (no Provider / SharedPreferences / dart:io inside): see PROVENANCE.md; Map rows from the models via toHandmadeMap().
  • Dark theme completed (NativeMind DS: background #0F1419); values that differed from Figma replaced (figma-fix blocks).
  • Editions as data: NmVpnEditions.configs (NmConfigs of nativemind_core) — Pink, Orange, Green, Blue (Figma), Red, Blue-GOST (VPNclient-app palettes).
  • Moved from nativemind_widgets/network.dart: NmCountryFlag, NmPingBadge, NmServerSubscriptionCard, NmAddSubscriptionCard, models, NmNetwork strings, flag and app SVGs (NmVpnSvgIcons, NmVpnSvgIcon).
  • Deprecated (removed in 2.0): NmConnectButton → NmMainBtn, NmConnectionStats → NmStatBar, NmCurrentLocationCard → NmLocationWidget, NmServerLocationList / Tile → NmServersList / NmServerListItem, NmSplitTunnelAppList → NmAppsList.
  • Breaking vs nativemind_widgets/network.dart: nmAppIcon(name) is now nmTunnelAppIcon(name); NmSvgIcons.flags* / apps* are NmVpnSvgIcons.* (draw them with NmVpnSvgIcon or NmCountryFlag).
0
likes
130
points
170
downloads

Documentation

API reference

Publisher

verified publisherframework.nativemind.net

Weekly Downloads

VPN client widgets made by hand: Gleb Sosnin's connect button, stat tiles, location card, server and app lists, search sheet and tab bar, Wishyut's settings widgets, the VPN editions (Pink / Orange / Green / Blue / Red / Blue-GOST) as data, country flags and app marks.

Homepage
Repository (GitLab)

Topics

#widget #vpn #design-system

License

unknown (license)

Dependencies

flutter, flutter_localizations, flutter_svg, intl, nativemind_core, nativemind_icons_fugue, url_launcher

More

Packages that depend on nativemind_vpn