nativemind_core 1.2.1
nativemind_core: ^1.2.1 copied to clipboard
The light base of the NativeMind widgets: design tokens, theme, editions from configuration, primitives (with the handmade DealApp button family and dialogs), the PIN keypad, composites, navigation, c [...]
1.2.1 #
- Docs: README (install, handmade authors and roles, links), migration guide, PROVENANCE.
- pubspec:
repositoryfield so README links resolve on pub.dev.
1.2.0 #
Additive (SDD flows/sdd-widgets-handmade, follow-up of task 4.4 DealApp). Everything of 1.1.0 keeps its look and behaviour when the new options are not used.
- Eugene Tretiakov's dialogs are localizable:
nmErrorDialog,nmSuccessDialog,nmAttentionDialog,nmGetTextDialog,nmGetAmountDialog,nmYesNoDialog,nmYesNoDialogExtended,nmYesNoDialogDelayedand theNmTimerButtonseconds unit read 9 newNmLocalizationsstrings (dialogFailedTitle,dialogSuccessTitle,dialogClose,dialogDone,dialogCancel,dialogChoose,dialogYes,dialogNo,dialogSecondsShort) in en / ru / zh / hi / th. WithNmL10n.delegateregistered they follow the app locale (other languages read English, as every core string); without it they are the original Russian texts, unchanged. nmYesNoDialogExtended:titleText,yesButtonText,noButtonTextare nowString?; null (the default) = the localized «Выберите» / «Да» / «Нет». Passing a string works as before.- New
NmDialogOptions(app-wide):shape(null =nmDefaultShape()),enterSubmits(default false; when true, Enter / numpad Enter presses the main button of the error / success / attention / yes-no dialogs) andstrings(context);nmLocalizedDialog(builder, onEnter:)builds a dialog with those strings. - The 22 buttons of Eugene's family get a click cursor and DealApp's hover (.85) / pressed (.7) dimming (
DealTapof the DealApp web client); at rest they paint exactly as before. - All changes inside the handmade bodies are
>>> generatedblocks with the replaced lines kept as// was:(PROVENANCE.md);handmade-src/tools/verify_eugene.pyrestores them and still finds the bodies identical.
1.1.0 #
Additive (SDD flows/sdd-widgets-handmade). Everything of 1.0.0 stays as it was.
- New:
NmLocalizationService— Wishyut's run-time string service (VPNclient-app, 2025, handmade, without AI; see PROVENANCE.md):load(locale, {package})readspackages/<package>/assets/lang/<code>.json(default packagenativemind_vpn,package: null= the app's ownassets/lang/; English file when the language file is missing),to(key)returns the string ([key]when missing),currentLocale(English beforeload). It is localization infrastructure, so it lives here:nativemind_vpnuses it withoutnativemind_translations(and so withoutnativemind_copilotand its plugin).nativemind_translations1.0.0 re-exports it unchanged. - Still no plugins.
1.0.0 #
First major version built on code of NativeMind people (SDD flow sdd-widgets-handmade, Phase 1). Migration:
doc/migration-1.0.md; who wrote what: PROVENANCE.md.
New
- Editions from configuration —
NmConfigs,NmConfig,NmConfigCurrent,NmEditionTheme: Anton Dodonov's 2021–22 mechanism (SoundHealer / iScillator) with his keys (title,description,defaults,forces,pages,select,visible,gradient,gradient2,forecolor*, pluspalette).NmConfig.resolve= forces → saved → defaults → first; the edition comes from--dart-define=NM_EDITION=<id>(NM_EDITION_OSoverrides the platform). An edition missing on one platform falls back to another; editions withoutforecolor*get palette colours. - Button family "size × role" of Eugene Tretiakov (DealApp, 2024):
NmWideActionButton,NmWideActionButtonNoIcon,NmWideActionButtonNoIconGrayed,NmWideYellowActionButton,NmWideActionButtonAlt,NmMediumIconActionButton,NmMediumActionButtonRed,NmMediumIconActionButtonBlue,NmToggleActionButton,NmWideCancelButton,NmMediumActionButtonSecondary,NmMediumActionButton,NmMediumActionButtonGrayed,NmTextActionButton,NmMediumActionButtonCompact,NmMediumActionButtonSecond,NmSmallActionButton,NmSmallActionButtonSecondary,NmSmallCancelButton,NmDialogGreenButton,NmDialogGrayButton,NmDialogRedButton,nmBackAndFalse,nmBackAndTrue; his tokensNmColorsRes/nmColorsRes(isManpalettes),nmButtonHeight50/45/40,nmDefaultShape,nmSwd(column width, 500). Fixed: the button heights were computed once (0 before the first frame, stale after rotation) — now getters. - Dialogs without context of Eugene Tretiakov:
nmErrorDialog,nmSuccessDialog,nmAttentionDialog,nmGetTextDialog,nmGetAmountDialog,nmYesNoDialog,nmYesNoDialogExtended,nmYesNoDialogDelayed, andNmTimerButton. They find the root navigator themselves; texts are Russian, as in DealApp. NmPinCodeKeypad+NmPinCodeModel/NmPinCodeTap: Andrey Bekhtold's PIN model (12 cells, length 4, count / fill, tap / delete / forgot), ported to Dart; look per Figma MVP Dilap (keys 65, dots 16, gaps 24).NmPalette.blue/green/orange/pinkandNmPalette.byName.
Deprecated (work until core 2.0)
NmButton()(primary) →NmMediumActionButton/NmWideActionButtonNoIcon(handmade, Eugene Tretiakov).NmButton.destructive→NmMediumActionButtonRed/NmDialogRedButton.NmConfirmDialog→nmYesNoDialogExtended/nmYesNoDialog.NmPalette.nativeMindBlue/nativeMindGreen/nativeMindOrange/nativeMindPink→blue/green/orange/pink(ids staynativeMind*, saved settings keep working).
Breaking
NmSurface(visibility matrix column) is renamedNmVisibilitySurface(it clashed with copilot'sNmSurface).NmSvgIcons(flags, payment, apps) andNmCustomIcons(telecom) moved tonativemind_widgets— their assets were always there;nativemind_widgetsexports them as before. Flags/apps go tonativemind_vpnin its 1.0.- Removed, unused by any package or app:
NmStatusBar,NmIconLegend,NmIconLegendItem,NmCommandLog,NmStatusPill,NmViewModeSwitcher,NmIconStack,NmIconStackItem,NmDeviceClock,NmCompactSearch,NmVoiceGestureButton,NmInlineTranscriptionDisplay,NmCommandPaletteShortcuts, and the input layerNmUnifiedGestureDetector,NmHoverBuilder,NmCursorRegion,NmKeyboardShortcutWrapper,NmArrowKeyNavigator,NmShortcutKeys,NmInputAdapter,NmTouchAdapter,NmMouseAdapter,NmTrackpadAdapter,NmGestureType(the recognizers, gesture settings and input mode stay). - Removed 13 unused strings of
NmLocalizations:actionSearch,actionOpen,actionMore,actionRefresh,labelSettings,labelUnknown,tableColumns,themeTitle,themeLight,themeDark,themeSystem,stateSaved,legendTitle. - Requires
nativemind_icons_fugue^0.2.0 (dev):camera,clipboard-paste,imageare only in core now.
0.1.2 (not published on pub.dev; included in 1.0.0) #
NmAdaptiveScaffold: the phone drawer and the agent end drawer keep to the safe area. The drawer header was drawn under the status bar.
0.1.1 #
- Three more essential icons for the copilot's composer:
image,cameraandclipboard-paste(both variants, 1x / 2x / 3x). They are still innativemind_icons_fuguetoo.
0.1.0 #
The light base of the NativeMind widgets, split out of nativemind_widgets (it keeps re-exporting everything here).
- Everything from widgets' core: theme and tokens, primitives, composites, tables, navigation, charts, input, panels, the command palette, voice gesture, l10n infrastructure, the icon API and catalogues.
- Icons: only the 72 essential Fugue icons (≈ 0.9 MB, both variants, 1x / 2x / 3x). They are the icons core and
nativemind_copilotuse. Other Fugue icons come fromnativemind_icons_fugue. A missing icon shows an empty 16 px box plus one debug message, never an error.NmIconAssetssays which package holds what. - No plugins:
NmPrefsStore.fallback(in memory by default) is the store ofNmTableController,NmSidebarControllerandNmLocaleControllerwhen none is passed. It is read at the time of use;NmPrefson shared_preferences and the feature tour stay innativemind_widgets.
- Languages: the base five (en, ru, th, hi, zh).
NmLocaleRegistryletsnativemind_translationsadd more;NmL10n.supportedLocalesincludes them.