Skip to main content

nativemind_widgets 1.0.1 copy "nativemind_widgets: ^1.0.1" to clipboard
nativemind_widgets: ^1.0.1 copied to clipboard

Themed, localized Flutter widgets above Material and Cupertino: data tables, adaptive navigation, charts, Fugue icons and domain widget libraries.

1.0.1 #

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

1.0.0 #

The NativeMind framework release (SDD flows/sdd-widgets-handmade, task 3.3). Guide: doc/migration-1.0.md.

  • Requires nativemind_core ^1.0.0 and nativemind_icons_fugue ^0.2.0 (published).
  • Removed ai.dart with lib/src/ai/** and its strings (deprecated in 0.5): use nativemind_copilot.
  • Removed network.dart and the old lib/src/network/ copy: the library is nativemind_vpn (0.5 → 1.0 re-exported it; the dependency on nativemind_vpn is gone).
  • Removed dead code (research 02a): 58 public declarations nothing used — real_estate gestures and animations, telecom modem / SMS gateway parts, four parsing config panels and the new-harvest dialog, NmKeywordChips; 85 unused ARB keys.
  • Shared strings: telecom and parsing buttons read core's NmL10n.actionCancel/Apply/Add/Save/Delete/Retry/Close and stateUnsaved (their duplicate keys are gone).
  • Gallery: pages for the handmade packages nativemind_vpn, nativemind_sound, nativemind_deals; the AI and network sections are gone.
  • License: NativeMindNONC (part of the NativeMind framework).

0.5.0 #

Two splits: the copilot moved to its own package, nativemind_copilot, and the light base moved to nativemind_core. Imports keep working: package:nativemind_widgets/nativemind_widgets.dart re-exports core.

  • core split:

    • code: theme, primitives, composites, navigation, charts, l10n and icons now live in nativemind_core. This package depends on it and re-exports it, so nothing to change in apps;
    • icons: the Fugue PNGs moved to nativemind_core (72 essentials) and nativemind_icons_fugue (the rest), both dependencies of this package. Every icon still shows. SVG flags / payment / apps and the telecom icons stay here;
    • persistence: NmApp sets shared_preferences (NmPrefs.instance) as the default store of the library controllers, as before. Apps that do not use NmApp call NmWidgets.usePersistentPrefs() once;
    • languages: core strings beyond en / ru / th / hi / zh moved to nativemind_translations; apps that show them call NmTranslations.install(). The domain libraries keep their languages;
    • the src/core/... paths are gone. Use the public libraries (no known app imported them).
  • ai: package:nativemind_widgets/ai.dart is deprecated. It stays for this version as a frozen copy of 0.4.0, so apps keep building, and is removed in 0.6.0. Move to package:nativemind_copilot/nativemind_copilot.dart: the same class names; the strings accessor is NmCopilot (NmAi remains there as a deprecated alias). Import one of the two libraries, never both (the names clash). Guide: doc/migration-0.5-copilot.md.

  • core: unchanged. NmAdaptiveScaffold.agentPanel, the agent panel width token and the brandBubble colour stay here for any agent panel.

  • A test checks that no library except ai.dart reaches the copilot code.

0.4.0 #

The agent panel as a conversation of turns (from the Traffic OS reference of PBN). Additive: NmAgentPanel / NmAgentController and everything else of 0.3 keep working unchanged.

  • ai:
    • NmAgentConversationPanel + NmAgentConversationController: header with the autonomy switch and its tip (the app may pass its own, e.g. a money-free Pilot tip), the turns, suggestion chips, the composer (locked with canSend / lockedHint), Stop while busy, «earlier» paging. Suggestions are filled pills sized to their text; the field and «Поручить» share one framed box (as in the reference).
    • NmAgentTurnView: the user bubble on the right; the agent's text without a bubble; the step card; decision cards; the answer; follow-up buttons.
    • NmAgentStepCard: wait (faded) / run (tinted row) / done (tick) / failed, with a detail line.
    • NmAgentDecisionCard: approval («Подтвердить» / «Не сейчас») or soft offer («Сделать» / «Не нужно»), and the resolved states — confirmed, done automatically (can be rolled back), postponed, declined, failed, expired.
    • NmAgentLauncher: the top-bar «give the agent a task» field with a ⌘K / Ctrl K chip; NmAgentLauncher.shortcuts binds the keys.
    • Models: NmAgentTurn, NmTurnStep, NmDecision, NmTurnAction and their enums.
    • 17 new strings in en / ru / zh / hi / th.
  • core:
    • NmGateDialog: a fixed «continue after …» gate (e.g. sign-up after a guest try-out) with the app's own copy.
    • NmTextField.focusNode.
  • Gallery: «ai · conversation panel (0.4)» replays the reference turn; «ai · launcher (0.4)».

0.3.0 #

Every widget of the NativeMind apps now lives in the library, even when only one app uses it, so its translations are maintained in one place. Eight apps were migrated; their parity was checked screenshot by screenshot.

  • New sub-libraries: account.dart (sign-in, API keys, MCP policy, profile and account sections) and domains.dart (domain names and zones); both re-export core and have their own delegate.
  • Parsing (from the parser hub and the platforms admin): the platform config editor — NmPlatformConfig, NmPlatformConfigSchema, the transformation engine (nmPreviewTransformation, nmApplyRecordRepair), the NmPlatformConfigEditor contract with the NmPlatformConfigJsonEdits mixin, 11 config panels (NmSelectorsPanel, NmMappingPanel, NmCountiesPanel, NmManifestPanel, NmDiscoveryPanel, NmTransformationsPanel, NmBusinessRulesPanel, NmSchedulePanel, NmRawJsonPanel, NmConfigKeyValuePanel, NmDomainBadgeRow) and NmNewHarvestDialog; 146 strings.
  • Core data views: NmFactsSection, NmPager, NmFilterPanel (+ fields and conditions), NmFreshnessBar, NmAsyncSection; info views NmTitledCard, NmIconStack, NmDeviceClock, NmGlossaryCard; settings row NmSwitchCard.
  • Account: NmLoginScreen, NmApiKeysTable, NmApiKeyCreateDialog, NmSecretRevealDialog, NmMcpPolicyEditor, NmProfileCard, NmAccountSection, NmAccountDeleteResult.
  • Network: NmServerSubscriptionCard, NmAddSubscriptionCard.
  • Telecom: the SIM gateway set (NmChannelTable, NmChannelCardList, NmChannelsSplitView, NmChannelDetail, NmModemList, NmModemDetail, NmLineDetail, NmLinePicker, NmCallsPanel, NmSmsPanel and their models; 53 strings in 25 locales) and three administration features moved whole with controllers over abstract repositories: command sets (NmCommandSetsWorkspace), dial plans (NmPlansWorkspace, NmDialPlan) and zones (NmZonesWorkspace, NmZoneCodeEditor); NmDeviceStrip.
  • Real estate:
    • RESO Data Dictionary 2.0 alignment: NmProperty.propertySubType, NmProperty.standardStatus + NmStandardStatus (exactly the DD lookup), nmResoLabel; fields outside the DD are documented as extensions and checked by a test.
    • Tax sales: NmTaxSale (+ type, status, summary, registration), NmCalendarTable, NmAnalyticResultCard.
    • Counties: NmCountyTile, NmStateChip.
    • Swipe deck: NmTaxLienSwipeFace, NmListingPreview, NmMatchDialog, NmListingShareSheet, NmSwipeTour, NmLienFlipCard, NmLienFilterSheet (+ NmLienFilter), NmLienFinancialSheet.
    • Cards: NmLienCard, NmGradeBadge, NmGalaxyCanvas, NmGalaxyDot.
    • Galaxy: NmGalaxyViewport, NmGalaxyController, NmGalaxySelection, NmGalaxyLien, NmGalaxyDimension, layouts, painters, clustering, lasso and rotate gestures, transitions, NmDimensionIndicator.
    • Mechanics (widgets, models, gestures): tax radar, tax graph, magnetic groups, map layers, orbit triage, layered card, x-ray (NmXRayOverlay, NmInsightDetailSheet).
  • Core, from the swipe app:
    • Onboarding: NmSkipButton, NmChoiceCard, NmModeCard, NmSwipeDemoCard, NmSwipeHintOverlay.
    • Swipe and sharing: NmSwipeCard, NmSwipeActionBar, NmConfetti, NmShareSheet, NmFeatureTour.
    • Engagement: NmAchievement, NmAchievementToast, NmAchievementListener, NmAchievementChips, NmAppStoreBanner.
    • Hints: NmHintBubble, NmHintOverlay, NmHintTrigger, NmNudgeBanner.
    • Cards and panels: NmImageCarousel, NmPhotoCard, NmFlipCard, NmPeekPager, NmDetailsSheet, NmAnnotationCanvas, NmFloatPanel, NmHudPill.
    • Input: the command palette (NmCommandPaletteOverlay), the voice filter (NmVoiceGesturePanel), a unified gesture / hover / shortcut detector with recognizers and adapters.
    • NmRelativeTime.
  • AI: the AI loupe (NmAiLoupeOverlay, explanation service contract) and the deal copilot (NmCopilotSheet, NmCopilotController, NmCopilotResult).
  • Theme: NmPreset.saas — the expressive surface language (gradient CTA, pill chips, borderless soft-shadow cards) at the standard scale with Fugue icons; in this cell body text 14, top bar 64 and 44 px minimum taps on phones (NmSizes.minTouchTarget, NmSizes.touch, honoured by NmButton / NmIconButton). Other presets unchanged. NmPreset.custom(style:, density:, iconography:) for any other combination.
  • Buttons: in the expressive style (consumer, saas) the primary button is the accent gradient at every label size (it used to switch to the solid smallButtonFill under 17 px). The gradient is the style's surface language; smallButtonFill now applies to the flat styles (clean, technical) only. Emphasis is the variant's job (one primary per screen; secondary / ghost for the rest).
  • Theme: two settings derived from the palette (the hand-tuned palettes are unchanged; defaults keep today's look): NmTheme.ctaFill — NmCtaFill.bright (the palette's accent gradient) or NmCtaFill.deep (a deeper, more saturated gradient in the brand hue, white labels ≥ 4.5:1 over the whole button, via NmColors.ctaGradient; brandLight stays an accent); NmTheme.surfaceTone — NmSurfaceTone.calm or NmSurfaceTone.vivid (brand undertone on the background, stronger tints, brand-tinted hairlines, secondary text re-derived to ≥ 4.5:1). NmColors.tuned() applies them. Tests check the contrast for every palette in light and dark, including Flutter's textContrastGuideline on a saas primary button.
  • New widgets (from an expiring-domains search product; model-free, the app maps its data):
    • core: NmWordmark, NmSearchHero<T> (kind chips with detection), NmCompactSearch, NmPlainSearchField, NmPillChip, NmChoiceChip, NmCardAction, NmTextLink, NmCapsLabel, NmUnderlineTabs, NmMetricStrip, NmMetricGrid, NmLimitBar, NmLifecycleTimeline, NmSideSheet + NmSideSheetHeader, NmDialogCard, NmFilterBar (+ NmRemovableChip, NmDashedChip, NmPillMenu, NmPillInput), NmSourcesProgress; NmToast.show gains action / onAction / style (NmToastStyle.floating, the dark bar).
    • domains: NmDomainCard, NmDomainRow, NmAcquisitionRow, NmZoneTile, NmZoneGrid.
    • billing: NmOrderCard. account: NmCredentialForm (+ NmCredentialField; strings moved in for the five must locales). ai: NmAgentBubble, NmAgentToolTrace, NmAgentResultCard, NmAgentConfirmCard, NmAgentSuggestions.
    • Gallery page "Search & listings"; catalog rows; tests.
  • Fix (desktop): NmPageScroll, NmDataTable (horizontal) and the zones code editor gave their Scrollbar no controller; on macOS / Windows / Linux the scroll view does not adopt the PrimaryScrollController, so the first scroll (or ensureVisible) threw "The Scrollbar's ScrollController has no ScrollPosition attached". They now share one controller (their own when none is passed). Found by the dropexpired integration flows on macOS.
  • Navigation: NmNavDestination.countLabel — a plain secondary count after the label (list sizes in a nav tree), formatted by the app; not an alert like badge.
  • Icons: 52 Fugue glyphs added to the thematic set (theme real_estate). NmIcon keeps a Fugue glyph at 16 px, centred, under tight constraints (it used to stretch).
  • Localization: about 870 strings moved from the apps, in the five must locales and every extra locale an app had; locale bn in core and account.
  • Rules: R7 — a wishlist row marked done leaves no app class over 40 lines; R8 — an app that imports a domain library registers its delegate (domain widgets silently fell back to English otherwise).
  • Tools: move_strings.dart (moves an app's ARB keys into a library domain, every locale), move_feature.py (copies an app feature folder into a domain with Nm names, library strings and Fugue icons), fill_docs.py (first-draft dartdoc), widget_parity.py (renders app screens before / after a move and diffs them).
  • Fixes: a division by zero in the galaxy county layout with no liens; the achievement toast looked for an overlay above the navigator; ink ripples hidden under decorated sheets; overflows with longer Russian labels. Header rows that overflowed on narrow cards or with the consumer type scale now ellipsize or shrink: voice filter, graph anomalies, x-ray, AI approval card, county picker ("Select all in state"), plan card price.
  • Gallery: new page "Touch & engagement" (onboarding, swipe cards, achievements, hints, cards and sheets, command palette, voice filter); real estate gains the swipe deck, lien cards and sheets, tax radar / graph, magnetic groups, map layers, orbit triage, layered card and x-ray; AI gains the loupe and the copilot; account gains the account section. Several 0.3.0 demos were hidden before (their titles lacked the domain prefix the page filters on).

0.2.0 #

Breaking: the library now bundles only a thematic subset of Fugue (558 glyphs in 13 themes) instead of all 3,571; the full set moved to the new fugue package.

Migration: if an NmFugue.x constant no longer exists, add fugue: ^0.1.0 to your dependencies and use NmIconData.fugue('x-upstream-name', package: 'fugue'). dart run tool/check_rules.dart --app <path> (rule R6) lists string-named glyphs outside the thematic set.

  • Icons: NmFugueThemes (actions, navigation, status, forms, data, charts, telecom, network, real-estate, billing, marketing, parsing, ai); a 48 px (3×) tier for every bundled glyph (AI-made, same method as the Fugue 2× set); NmIconData.fugue(…, package:); NmCustomIcons — the telecom rasters drawn for SimBox (SIM and registration states, RSSI, QoS, modems, USB hubs, reader, operator marks) in 16 / 32 / 48 px; NmIconData.custom. Archive size 19 MB → about 8 MB.
  • Adaptive labels: NmAdaptiveLabel / NmLabelLevel; used by NmButton (with an icon), NmFilterChip, NmActionChip and dense table headers. NmSectionTitle and NmPageHeader take an icon.
  • Navigation tree: NmNavDestination.children, NmNavTree (pathTo, find, firstLeaf); the sidebar expands parents (persisted), opens a flyout when collapsed; phones show the branch's children as tabs.
  • Rules: R4 checks the 16 / 32 / 48 px tiers of Fugue and custom rasters; new R6 for apps.
  • Repository layout: the package lives in flutter/nativemind_widgets/ of widgets.nativemind.net.

0.1.0 #

First release.

  • Theme: NmTheme with 4 palettes (NativeMind Blue, Green, Orange, Pink; custom and seeded palettes), 3 presets (consumer, product, workspace), styles, densities (dense as a per-widget opt-in), light and derived dark modes, form factors; tokens through context.nm.
  • Icons: the full Fugue set (16 / 32 px, shadow and shadowless) as NmFugue; bundled SVG flags, payment and app marks as NmSvgIcons.
  • Localization: en, ru, th, hi, zh-Hans complete, extra partial locales, English fallback; NmLocaleController persists the choice and migrates legacy keys.
  • App shell: NmApp, NmAdaptiveScaffold (bottom bar, collapsible sidebar, agent panel), NmTopBar, NmBottomNavBar, NmLanguageSelector.
  • Primitives and composites: buttons, pills, fields, selects, states, cards, NmDataTable (sorting, selection, row and bulk actions, columns editor, phone cards), NmTableToolbar, NmEditableList, dialogs and sheets, registry / detail workspace, console, settings form.
  • Charts: NmFlowChart (Sankey), NmShareComparisonBars, NmVisibilityMatrix, NmRankedBarList, sparkline, year bars, link graph, goal chart.
  • Domain libraries: real_estate, telecom, network, billing, marketing, parsing, ai.
  • Tooling: tool/check_rules.dart (icons, names, layering, Fugue pairs, translations), tool/check_catalog.dart, tool/sync_fugue.dart, tool/sync_svg.dart, tool/gen_l10n.dart.
0
likes
150
points
421
downloads
screenshot

Documentation

API reference

Publisher

verified publisherframework.nativemind.net

Weekly Downloads

Themed, localized Flutter widgets above Material and Cupertino: data tables, adaptive navigation, charts, Fugue icons and domain widget libraries.

Homepage
Repository (GitLab)

Topics

#widget #design-system #theme #localization #data-table

License

unknown (license)

Dependencies

flutter, flutter_localizations, flutter_svg, intl, nativemind_core, nativemind_icons_fugue, shared_preferences

More

Packages that depend on nativemind_widgets