browser_router 0.3.2
browser_router: ^0.3.2 copied to clipboard
An advanced navigation system for Flutter that enables typed routes, custom transitions, and robust overlay management.
0.3.2 #
- Feat (Platform Adaptive Transitions):
- Preserved explicit non-default route transitions (e.g.,
fade,scale,none) inBrowser.defaultAdaptiveTransition, ensuring custom route transitions are honored without needing custom adaptive callbacks. - Optimized default adaptive transition for Web and Desktop (Windows, Linux) to use
RouteTransition.only_hero, preventing lateral slide transitions on wide viewport displays while preserving Hero animations.
- Preserved explicit non-default route transitions (e.g.,
- Test: Added unit and integration tests verifying platform-specific default adaptive transition behavior and custom route transition preservation across all platforms.
0.3.1 #
- Fix (Transitions & Pop Visibility): Prevented underlying screen from disappearing or flashing black during push and pop route transitions by eliminating destructive secondary opacity fading in
Scale,FadeScale, andSharedAxiswidgets. - Feat (Transitions): Added optional
fillColorproperty support inFadeThroughtransition widget. - Test: Added integration test suite verifying that underlying screens remain visible and mounted throughout transition lifecycle during push and pop operations.
0.3.0 #
- Feat (Transitions & Motion): Implemented modern Material 3 Transitions (
fade_through,fade_scale,shared_axis_x,shared_axis_y,shared_axis_z,scale) and authentic Cupertino iOS 16–18 transition (slide_cupertinowith flat edges, 1/3 horizontal parallax, and left-edge drop shadow). - Feat (Custom Transitions): Added
CustomBuildTransitionandcustomTransitionparameter toBrowserRoute,TraceRoute,PageTraceRoute,PopupTraceRoute,SwipeTraceRoute, andOverlayTraceRoute. - Feat (Platform Adaptivity): Added
Browser.defaultAdaptiveTransitionproviding platform-native motion defaults (Cupertino on iOS/macOS, Shared Axis X on Android/Fuchsia, Fade Scale on Web/Windows/Linux). - Feat (Accessibility & WCAG): Implemented zero-configuration reduced motion support detecting
MediaQuery.disableAnimationsOf(context)andMediaQuery.accessibleNavigationOf(context)to bypass animations immediately. - Perf: Added
RepaintBoundaryrendering isolation in route transitions to avoid rebuilding ancestor tree rendering layers. - Fix (Overlay & Banners): Fixed secondary animation in
OverlayModalto returnkAlwaysDismissedAnimation(preventing visual offset / hit-test misalignment) and eliminated full-screen root opaque gesture detector inBanner, enabling seamless pass-through scrolling, clicks, and interactive banner buttons. - Test: Expanded test coverage to 95.4% (99 passing unit & widget tests) covering modern transitions, accessibility, custom transitions,
Browser,BrowserRoute,NavigatorXextensions,TraceRoute, modal barriers, swipe physics/gestures, and overlay lifecycle. - Docs & Example: Enhanced
README.mdwith complete transitions catalog, custom transitions guide, accessibility guide, and platform adaptive configuration. Convertedexample/into a 100% purepackage:flutter/widgets.dartshowcase with zero Material or Cupertino dependencies.
0.2.0 #
- Feat: Modernized codebase to Dart 3.13 syntax, leveraging concise constructor declarations (
new(...)), dot shorthands, and cleaner expression bodies. - Fix: Fixed alignment property propagation in
Modaloverlay (lib/overlay/modal.dart), ensuring custombuilderAlignmentvalues (e.g.,Alignment.bottomCenter) are honored. - Test: Expanded test coverage to 93.6% (74 passing unit & widget tests) covering
Browser,BrowserRoute,NavigatorXextensions,TraceRoute, modal barriers, swipe physics/gestures, and overlay lifecycle. - Chore: Added
tool/coverage.shfor streamlined coverage generation and analysis. - Docs: Enhanced
README.mdwith complete architecture diagrams, usage guides forTrace, overlay managers, deep linking, and arguments validation.
0.1.0 #
- BREAKING CHANGE: Defined
ChangeDrawerSizesemantic typedef (void Function({required bool isExpanded})) and updatedModalBase.bodysignature to use named boolean parameters, complying withavoid_positional_boolean_parameterslinter rule. - Refactor: Completely decoupled core library from
flutter/material.dartandflutter/cupertino.dartacross alllib/files in favor of purepackage:flutter/widgets.dartandpackage:flutter/foundation.dart. - Refactor: Updated
SheetBaseand internal drawer resizing calls to pass namedisExpandedparameter. - Fix: Resolved
SwipeAnimationassertion logic (!enableDrag || animationController != null) and gesture passing. - Fix: Added null safety guards in
SwipeDownRightGesturesandSwipeUpLeftGesturesforprimaryDeltaand division by zero. - Fix: Resolved race condition in
OverlayModal.insert()by initializingcompleterbefore animation starts and guarding against disposal. - Fix: Added
dispose()inOverlayManagerStateto close the concurrencyPooland cleanup active overlay entries. - Fix: Added
didUpdateWidgetin_RouteObserverProviderStateto handlerouteObserverchanges. - Fix: Fixed typos in
screenPercentaje->screenPercentageanduseSafeAre->useSafeArea. - Fix: Refined return types in
Tracenavigation methods toFuture<void>. - Chore: Upgraded
coolintto^3.0.0-rc.1and updated codebase for strict analyzer rules (strict_raw_type,avoid_types_on_closure_parameters,inference_failure_on_instance_creation, etc.). - Chore: Upgraded
equatableto^2.1.0andpoolto^1.5.3. - Test: Added comprehensive 22-test unit and widget test suite covering
route_arguments(polymorphism & exact types),swipe_animation,overlay_manager(lifecycle & race conditions),route_observer,sheet, anddeferred_browser_route.
0.0.5 #
- Feat: Changed
DeferredBrowserRouteto usepageBuilderinstead ofpagein its constructor, ensuring the page is built only after the deferred library is loaded, preventing potential issues. - Fix: Updated
DeferredBrowserRoutetest cases to align with the newpageBuilderconstructor parameter.
0.0.4 #
- Feat: Add
toCompletedBrowserRoutemethod toDeferredBrowserRouteto allow synchronous route creation after deferred content loading. - Refactor: Improve
DeferredBrowserRouteinternal logic for future handling and error display. - Test: Enhance test coverage for
DeferredBrowserRoutewithWidgetsAppand customPageRouteto minimize Material Design dependencies.
0.0.3 #
- Fix: Prevent popping when no routes are available in
BrowserPageRouteswipe gestures. - Fix: Ensure
DeepLinkParamargument retrieval is mounted in_RouteObserverProviderState.
0.0.2 #
- Update repository, homepage, and issue_tracker fields.
0.0.1 #
- Initial release of the
browserpackage. - Centralized Route Management: Define all app routes in one place.
- Typed Route Arguments: Pass strongly-typed arguments to your routes safely, with validation.
- Custom Transitions: Easily implement custom page transitions (slide, fade, etc.).
- Versatile Presentations: Display routes as full pages, modal popups, or swipeable bottom sheets using
TraceRoute. - Semantic Navigation API: Create a reusable, semantic, and centralized navigation API with
Traceobjects. - Deep Linking: Automatically parses URL query parameters.
- Advanced Overlays & Popups: Show sequential banners, complex modals, and multi-level popups.