Skip to main content

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

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

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
0
points
421
downloads

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

Topics

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

License

unknown (license)

Dependencies

flutter, flutter_localizations, flutter_svg, intl, shared_preferences

More

Packages that depend on nativemind_widgets