Skip to content

feat(release): 🚀 v0.4.0 - Concrete Sheets, Headers, Responsive Modals, and Overlays - #14

Open
3d24rd0 wants to merge 5 commits into
mainfrom
feat/sheets-modals-and-overlays
Open

3d24rd0 wants to merge 5 commits into
mainfrom
feat/sheets-modals-and-overlays

Conversation

@3d24rd0

@3d24rd0 3d24rd0 commented Sep 29, 2026

Copy link
Copy Markdown
Member

Summary of Changes in v0.4.0

1. Concrete Sheets & Modals Architecture

  • BrowserBottomSheet (aliased as ModalBottomSheet): Draggable bottom sheet with automatic size adjustment (adjustSize) and native swipe-to-dismiss.
  • BrowserCenterSheet (aliased as ModalCenterSheet): Centered modal dialog with ModalCenterParams box constraints and vertical gesture absorption.
  • BrowserFullSheet (aliased as ModalFullSheet): Full-viewport modal sheet for immersive workflows.
  • BrowserResponsiveSheet (aliased as ModalResponsiveSheet): Responsive adapter switching between bottom sheet on compact viewports (< breakpoint) and centered modal on wide viewports (>= breakpoint).
  • Semantic Facades on Sheet: Sheet.bottom, Sheet.center, Sheet.full, Sheet.responsive, and Sheet.route.

2. Modal Headers & Parameters

  • ModalHeader: Header with drag pill handle, title, close button (maybePop), and dynamic elevation shadow on scroll.
  • EmptyHeader: Zero-height header delegate.
  • ModalCenterParams: Size presets (.small(), .medium(), .large()) and custom constraints.
  • ModalBaseSafeArea: Configurable safe area handling (.none(), .all(), .cleanTopSafeArea(), .adaptive()).

3. Overlays, Loaders & Banners

  • Browser.showLoading / Browser.dismissLoading: Global non-dismissible loading overlays decoupled from route stack.
  • Banner & Browser.enqueueBanner: Responsive maxWidth, margin, and dismissDirection configuration.
  • Standalone OverlayManager: Documented standalone support for non-Browser applications while noting automatic injection in Browser.

4. Testing & Code Quality

  • 92.5% Test Coverage across 50 files.
  • 125/125 passing tests (flutter test).
  • 0 analyzer warnings with coolint: ^3.0.0-rc.1 (dart analyze).
  • 100% pure package:flutter/widgets.dart implementation without Material or Cupertino dependencies in lib/.

…s, and loading overlays

- Introduce BrowserBottomSheet (ModalBottomSheet), BrowserCenterSheet (ModalCenterSheet), BrowserFullSheet (ModalFullSheet), and BrowserResponsiveSheet (ModalResponsiveSheet)
- Add ModalHeader with drag pill, title, close action, and dynamic scroll shadow
- Add ModalCenterParams with small, medium, large presets and custom sizing
- Add Sheet facade helper methods (Sheet.bottom, Sheet.center, Sheet.full, Sheet.responsive)
- Add Browser.showLoading and Browser.dismissLoading
- Add maxWidth, margin, and dismissDirection support to Banner and OverlayManager
- Add 14 comprehensive unit and widget tests for sheets and overlays
- Bump version to 0.3.3 and update CHANGELOG and README
…ls/loading examples

- Export overlay_manager.dart from browser.dart
- Add ExampleBottomModal and ExampleCenterModal demonstrating pure-widget ModalBase in example/
- Add Sheet.route and OverlayManager to example app
- Add UI buttons in example HomeScreen for Sheet.bottom, Sheet.center, Sheet.responsive, Browser.showLoading, and constrained banners
- Add extensive unit/widget tests for ModalCenterParams, ModalBaseSafeArea, Sheet facade, EmptyHeader, ModalHeader rebuild, and adjustSize edge cases
- Achieve 92.5% global line coverage across 50 files and 125/125 passing tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant