voo_navigation_core 0.2.21
voo_navigation_core: ^0.2.21 copied to clipboard
Core foundation package for voo_navigation - shared entities, atoms, molecules, and utilities for building adaptive navigation.
0.2.21 #
Added #
- VooQuickAction: Added
showLabelproperty for per-action label visibility control- If
null(default), uses globalshowLabelsInGridsetting - If
true/false, overrides global setting for that action only
- If
- VooQuickActionsMenuContent: Added header support
title- Optional title displayed at the topshowCloseButton- Whether to show a close buttononClose- Callback when close button is tappedcontentPadding- Custom padding for the actions content area
Improved #
- VooQuickActionsGridLayout: Better layout for multi-column spanning items
- Items with
gridColumnSpan > 1now use horizontal Row layout (icon left, label/description right) - Single-column items keep centered vertical layout
- Added default background color (
surfaceContainerLow) so items are visible - Description is now shown for wide items
- Items with
Fixed #
- VooQuickActionsGridLayout: Fixed grid column width calculation causing incorrect wrapping
0.2.19 #
Fixed #
- VooQuickActionsGridLayout: Fixed
gridColumnsnot being respected- Grid now uses actual container width for column calculations
- Previously used
style.dropdownWidthwhich could be null/incorrect
0.2.18 #
Added #
- VooQuickAction: Added grid layout customization properties
gridColumnSpan- Number of columns to span (default: 1)gridBackgroundColor- Custom background color for the itemgridIconBackgroundColor- Custom background color for the icongridHeight- Custom height for the item
Changed #
- VooQuickActionsMenuContent: Made parameters optional with sensible defaults
styleis now optional (defaults toVooQuickActionsStyle())useGridLayoutdefaults tofalsegridColumnsdefaults to4showLabelsInGriddefaults totrue
0.2.17 #
Added #
- VooQuickActionsMenuContent: Exported for use in custom modal builders
- Allows displaying quick actions content directly without the trigger button
- Useful when using
VooActionNavigationItem.modalBuilderto show actions - Added
onReorderActionscallback to enable drag-to-reorder functionality - Supports reordering in both list and grid layouts
- Grid layout uses long-press drag with visual feedback and haptics
0.2.16 #
Changed #
- VooActionNavigationItem: Changed
iconandactiveIconfromIcontoWidget- Supports any widget like
FaIcon,Icon,Image, etc.
- Supports any widget like
0.2.15 #
Changed #
- VooActionNavigationItem: Changed
iconandactiveIconfromIconDatatoIconfor full customization- Provides direct control over icon color, size, and other properties
- Removed
iconColorparameter (set color directly on theIconwidget)
Fixed #
- VooQuickActions: Fixed
AnimationController.reverse() called after dispose()error- Overlay is now removed synchronously during dispose without animation
0.2.14 #
Added #
- VooActionNavigationItem: Added
navItemIndexproperty for explicit position control- Accepts values 0-4 to specify exact position in the bottom nav bar
- Takes precedence over
positionproperty when specified - When
null(default), falls back topositionbehavior (start/center/end)
0.2.13 #
Added #
- VooUserProfileConfig: Added
navItemIndexproperty for explicit position control in mobile bottom navigation- Accepts values 0-4 to specify exact position in the bottom nav bar
- When
null(default), user profile appears at the end
Fixed #
- VooNavigationTokens: Made expandable bottom nav colors theme-aware for proper light/dark mode support
expandableNavBackgroundnow usessurfaceContainerin light modeexpandableNavUnselectedCirclenow usessurfaceContainerHighestin light modeexpandableNavSelectedBackgroundnow usessurfaceContainerHighin light modeexpandableNavUnselectedIconnow usesonSurfaceVariantin light modeexpandableNavSelectedIconnow usesonPrimaryin light modeexpandableNavSelectedLabelnow usesonSurfacein light mode
0.2.12 #
Changed #
- VooUserProfileConfig: Updated
effectiveNavItemLabelfallback priority- Now returns
navItemLabel ?? userEmail ?? userName ?? 'Profile' - Email is now preferred over userName when no explicit label is set
- Now returns
0.2.11 #
Changed #
- VooNavigationDestination: Icon type changed from
IconDatatoWidget- Now accepts
Iconwidgets directly instead ofIconData - Enables full customization of icon size, color, and other properties at definition time
- Components use
IconThemeto apply default styling when needed effectiveSelectedIcongetter now returnsWidgetinstead ofIconData
- Now accepts
Added #
- VooUserProfileConfig: Added mobile bottom navigation support
mobilePriority- Include user profile in mobile bottom navigationmodalBuilder- Custom modal builder for profile tap action in bottom navnavItemSortOrder- Control positioning in bottom navigationnavItemLabel- Custom label for the nav itemeffectiveInitials- Getter to derive initials from userNameeffectiveNavItemLabel- Getter for resolved nav item label
- VooUserProfileModalData: Data class for modal builder callback
0.2.10 #
Changed #
- NavigationItem → NavigationDestination: Renamed
VooNavigationItemtoVooNavigationDestinationfor clarity- File renamed from
navigation_item.darttonavigation_destination.dart - All usages updated across the package
- File renamed from
- VooCustomIndicator → VooScaleIndicator: Renamed indicator for clarity
- File renamed from
voo_custom_indicator.darttovoo_scale_indicator.dart
- File renamed from
Updated #
- Various component improvements and refinements
0.2.9 #
Improved #
- Expandable Nav Tokens: Updated design tokens for expandable bottom navigation
- Increased
expandableNavBarHeightfrom 56 to 64 for better proportions - Increased
expandableNavSelectedCircleSizefrom 38 to 44 for larger tap targets - Increased
expandableNavBarPaddingHorizontal/Verticalfrom 6 to 8 - Increased
expandableNavAnimationDurationMsfrom 250 to 300 for smoother animations - Added
expandableNavItemSpacingtoken (8px)
- Increased
0.2.8 #
Fixed #
- Floating Nav Background Color: Changed
floatingNavBackgroundtoken fromsurfaceContainerHighesttosurface- Floating bottom navigation bar now renders with a clean white background in light mode instead of noticeable grey
- Dark mode continues to work correctly with the dark surface color
- Shadow contrast is improved since the background is no longer grey
0.2.7 #
Fixed #
- Mobile App Bar Leading Widget Taking Up Space: Fixed
VooMobileAppBarreserving space for the leading widget even when no content is shown- Uses
VooAppBarLeading.wouldShowContent()to check if content would be rendered before building - Sets
leadingWidth: 0when no leading content exists - Changed
automaticallyImplyLeadingtofalseto prevent Flutter from implying a leading widget - Mirrors the fix already applied to
VooAdaptiveAppBarin v0.2.5
- Uses
0.2.6 #
Added #
- VooMultiSwitcherConfig.isLoading: New
isLoadingfield for the multi-switcher (user/org switcher)- Shows a
CircularProgressIndicatorin place of the chevron on the card when loading - Disables tap interaction on the card while loading
- Passed through to
VooMultiSwitcherCardDataandVooMultiSwitcherModalDatafor custom builders
- Shows a
0.2.5 #
Added #
- VooAppBarLeading.wouldShowContent(): New static helper method to check if the leading widget would render actual content
- Useful for determining if
leadingWidthshould be set to 0 in AppBar to avoid empty space
- Useful for determining if
0.2.4 #
Fixed #
- shouldShowBackButton Not Working: Fixed
VooPageConfig.shouldShowBackButtonnot showing the back buttonVooAppBarLeading.build()was short-circuiting on!showMenuButtonbefore checkingshouldShowBackButton- Reordered logic so
shouldShowBackButtonis evaluated even whenshowMenuButton=false VooMobileAppBarnow always createsVooAppBarLeadingso back button logic can run
0.2.3 #
Added #
- VooMultiSwitcherNavItem: Mobile navigation support for the multi-switcher (org/user switcher)
- Displays stacked avatars (organization + user) in compact form
- Supports
isCompact,useFloatingStyle,enableHapticFeedbackproperties - Opens
VooMultiSwitcherBottomSheeton tap with combined organization and user sections
- VooMultiSwitcherBottomSheet: Bottom sheet modal for mobile multi-switcher interaction
- Shows organization section with search (if enabled)
- Shows user section with account info, multi-account list, settings, and logout
- Reuses existing
VooMultiSwitcherOrganizationSectionandVooMultiSwitcherUserSection
- VooMultiSwitcherConfig: Added mobile nav item properties
showAsNavItem- Whether to show as navigation itemmobilePriority- Include in mobile priority items (max 5)navItemSortOrder- Sort order among priority itemsnavItemLabel- Optional label for the nav item
- VooMultiSwitcherPosition: Added
asNavItemposition for rendering as navigation item - VooNavigationConfig: Updated
mobilePriorityItemsgetter to include multi-switcher when configured withmobilePriority: true
0.2.2 #
Added #
- VooPageConfig: Added
shouldShowBackButtonproperty for per-page back button controlnull(default): Auto behavior based onNavigator.canPop()true: Always show the back buttonfalse: Never show the back button
- VooPageConfig: Added
wrapInScaffoldproperty for simple scaffold wrapping- When
true, wraps the page child in a basicScaffold(body: child) - Simpler alternative to
useCustomScaffold+scaffoldBuilder
- When
- VooAppBarLeading: Added
pageConfigparameter to passVooPageConfigfor back button control - VooMobileAppBar: Added
pageConfigparameter to pass toVooAppBarLeading
0.2.1 #
Changed #
- VooNavigationItem: Removed strict assertion requiring
route,destination,onTap, orchildren- Items can now be created without navigation callbacks when using scaffold-level
onNavigationItemSelected - Cleaned up
VooNavigationItem.divider()factory to no longer require unnecessaryonTap
- Items can now be created without navigation callbacks when using scaffold-level
Added #
- VooNavigationConfig: Added validation that ensures navigation is properly configured
- When
onNavigationItemSelectedis provided, items don't need individual navigation callbacks - When
onNavigationItemSelectedis NOT provided, items must haveroute,destination,onTap, orchildren - Dividers are automatically skipped during validation
- Recursive validation for nested children items
- When
0.2.0 #
Added #
-
VooContextSwitcher: Inline context/project switching component for dynamic navigation
VooContextItem- Entity representing a switchable context (project, workspace, environment)VooContextSwitcherConfig- Main configuration class with items, callbacks, and customizationVooContextSwitcherStyle- Style configuration for card, modal, and item appearanceVooContextSwitcherPosition- Enum for positioning (beforeItems, afterHeader)
-
Context Switcher Widgets:
VooContextSwitcher- Main widget combining card and modal with overlay animationVooContextSwitcherCard- Elegant pill-style selector with color indicator dotVooContextSwitcherModal- Dropdown modal with context list, search, and create button
-
Navigation Item Enhancement:
sectionHeaderWidget- Embed custom widgets (like context switcher) inside expandable sectionssectionHeaderLineColor- Custom color for the vertical line next to section header widgets
-
Custom Builders: Full customization support with
cardBuilderandmodalBuilder -
VooMultiSwitcher: Unified organization and user switching component
VooMultiSwitcherConfig- Main configuration class for the multi-switcherVooMultiSwitcherUser- Entity representing a switchable user accountVooMultiSwitcherStyle- Style configuration for card, modal, and sectionsVooMultiSwitcherPosition- Enum for positioning (header, footer)
-
Multi-Switcher Widgets:
VooMultiSwitcher- Main widget combining card and modal with overlay animationVooMultiSwitcherCard- Closed state showing stacked org + user avatarsVooMultiSwitcherModal- Expanded state with organization and user sectionsVooMultiSwitcherOrganizationSection- Organization list with selectionVooMultiSwitcherUserSection- User info with settings and logout actionsVooStackedAvatars- Overlapping org + user avatar displayVooMultiSwitcherOrgTile,VooMultiSwitcherUserTile,VooMultiSwitcherActionTile- List tiles
-
Custom Builders: Full customization support with
cardBuilderandmodalBuilder -
Animation: Smooth overlay animation with spring physics using
Curves.easeOutBack
Changed #
VooNavigationConfignow includesmultiSwitcherandmultiSwitcherPositionfields
0.1.4 #
Added #
- VooNavigationTokens: New centralized design tokens for consistent styling across all navigation components
VooNavigationTokensclass with static constants for icon sizes, spacing, typography, border radius, and opacity valuesVooNavigationTokensThemeextension onBuildContextfor theme-aware color generation:context.navSelectedBackground([customColor])- Selected item background with 10% opacitycontext.navHoverBackground- Hover background with 4% opacitycontext.navMutedIconColor- Muted icon color with 70% opacitycontext.floatingNavBackground- Theme-aware floating nav background (surface)context.floatingNavForeground- Floating nav foreground colorcontext.floatingNavSelectedColor- Primary color for selected floating nav itemscontext.navDividerColor- Divider color with proper opacitycontext.navBorderSubtle- Subtle border color
Improved #
- Design System Consistency: All navigation packages now use shared tokens from
voo_navigation_core - Modern Appearance: Updated default
itemBorderRadiusto 8dp for a more modern look
0.1.3 #
Fixed #
- VooPageConfig Properties Not Applied: Fixed
appBarTitle,appBarLeading, andadditionalAppBarActionsfromVooPageConfignot being applied to the app bar- Added
additionalActionsparameter toVooMobileAppBarto support appending actions to the default actions - Actions are now properly merged instead of being ignored
- Added
0.1.1 #
Added #
- VooCollapseState: InheritedWidget for propagating collapse state to descendants
- Enables auto-detection of compact mode for child widgets
VooCollapseState.isCollapsedOf(context)to read collapse stateVooCollapseState.toggleCallbackOf(context)to get toggle callback
- VooUserProfileConfig: Data-only config class for user profile
- Simpler API for configuring user profile in navigation
- Auto-handles compact mode based on VooCollapseState
Changed #
- Default Behavior: Made collapsible navigation and user profile the default
enableCollapsibleRailnow defaults totrueshowUserProfilenow defaults totrue
- VooUserProfileFooter:
compactparameter now nullable (bool?)- When null, auto-detects from VooCollapseState in widget tree
- VooOrganizationSwitcher:
compactparameter now nullable (bool?)- When null, auto-detects from VooCollapseState in widget tree
- Unified Theme: Default theme changed to clean flat design
- Default theme is now
minimalModernwithcontainerBorderRadius: 0 navigationRailMargindefaults to0(flush to edge)
- Default theme is now
0.1.0 #
Added #
-
Initial release - extracted from voo_navigation package
-
Domain Entities: Core navigation configuration and data models
VooNavigationType- Navigation layout types (bottomNavigation, navigationRail, extendedNavigationRail, navigationDrawer)VooNavigationItem- Navigation item with icons, labels, badges, routingVooNavigationConfig- Master configuration for navigation systemVooBreakpoint- Responsive breakpoints with Material 3 defaultsVooNavigationTheme- Visual styling configuration (glassmorphism, liquidGlass, blurry, neomorphism, material3Enhanced, minimalModern)VooNavigationRoute- GoRouter integration routesVooNavigationSection- Hierarchical navigation groupingVooPageConfig- Per-page scaffold customization
-
Atoms: 20 foundational UI components
- Badges:
VooAnimatedBadge,VooModernBadge,VooDotBadge,VooTextBadge,VooIconWithBadge - Indicators:
VooNavigationIndicator,VooThemedIndicator,VooLineIndicator,VooPillIndicator,VooGlowIndicator,VooCustomIndicator,VooBackgroundIndicator - Icons:
VooNavigationIcon,VooAnimatedIcon,VooModernIcon - Labels:
VooNavigationLabel - Surfaces:
VooGlassSurface,VooLiquidGlassSurface,VooNeomorphSurface - Controls:
VooCollapseToggle
- Badges:
-
Molecules: 12 composite components
- App Bar:
VooMobileAppBar,VooAppBarLeading,VooAppBarTitle,VooAppBarActions - Themed:
VooThemedNavItem,VooThemedNavContainer - Generic:
VooNavigationBadge,VooNavigationItemWidget,VooDropdownHeader,VooDropdownChildren,VooDropdownChildItem - User Profile:
VooUserProfileFooter
- App Bar:
-
Utils: Navigation helper utilities
VooNavigationAnimations- Animation presets and transitionsVooNavigationHelper- Static helper methods for navigationVooNavigationInherited- InheritedWidget for config propagation