presentum 0.3.6
presentum: ^0.3.6 copied to clipboard
A declarative cross-platform Flutter engine with focus on state to display presentations, such as campaigns, banners, notifications, etc., anywhere, anytime.
0.3.6 #
- Feat: Added debouncing to
PresentumOutlet$Composition2andPresentumOutlet$Composition3(default 16ms)- Prevents clunky and jumping transitions when multiple presentums initializes and evaluates value simultaniously
- Batches rapid state changes into single render cycles for smooth animations
- Configurable via
debounceDurationparameter
- Example: Improved transition smoothness in composition outlets
- Added separate
sizeDurationandfadeDurationtoFadeSizeTransitionSwitcher - Added
ValueKeyto widgets inBannerOutletfor stable transition identity - Added
paddingparameter toNewYearBannerfor flexible layout - Reorganized settings view with environment-aware debug controls
- Added separate
0.3.5 #
- Feat: Added pattern matching to
SlotChangewithmap(),maybeMap(), andmapOrNull()methods - Feat: Added convenience getters
isActivated,isDeactivated,isQueued,isDequeuedtoSlotChange - Docs: Split advanced documentation into separate guides for surface observers and popup hosts
- Docs: Updated transition observers documentation with pattern matching examples and production examples
- Docs: Clarified when to use transition observers vs surface observers
- Example: Refactored
MaintenanceSurfaceObserverfrom widget-based toMaintenanceTransitionObserverfor proper separation of concerns
0.3.4 #
- BREAKING:
PresentumPopupSurfaceStateMixinnow requiresPresentumActiveSurfaceItemObserverMixinas a mixin (changed fromimplementstoon) - Feat: Added default implementation for
markDismissed()method - Refactor: Removed duplicate observer state management and lifecycle methods
0.3.3 #
- BREAKING: Refactored
PresentumPopupSurfaceStateMixin.present()to returnPopupPresentResultenum instead ofbool?- Added
PopupPresentResultenum with three states:userDismissed,systemDismissed,notPresented - The
present()method now has clear, type-safe return values instead of nullable boolean notPresentedis returned when widget is not mounted, preventing unnecessarymarkDismissed()calls- Mixin only calls
markDismissed()forsystemDismissedresults
- Added
- Feat: Exported
PresentumPopupSurfaceStateMixinand related enums in main library - Docs: Updated popup hosts documentation with new enum-based API examples
0.3.2 #
- Docs: added three comprehensive docs showcasing business-logic-first examples for New Year, user preferences and milestones.
- Feat: added complete cross-platform example application showcasing various capabilities and best practices with Presentum.
- Fix: fixed critical bugs with
PresentumPopupSurfaceStateMixin - Feat: added various useful features and configurations to the
PresentumPopupSurfaceStateMixinto better resolve duplications and queues. - Chore: added environmental logs that enabled if
presentum.logsare enabled to log useful debug/development information. - Chore: added
toStringimplementation to thePresentumSlotfor better loggin.
0.3.1+1 #
- Chore: renamed
popup_host.dartfile topopup_surface_state_mixin.dart
0.3.1 #
- Feat: Added PresentumPopupSurfaceStateMixin mixin to streamline popup presentum displaying with reactive observing, presenting and dismissing upon declarative removing from the active state slot.
0.3.0 #
- Docs: Added comprehensive docs with Mintlify
0.2.6 #
- Chore: Removed
movedcallback fromsetCandidatesWithDiffbecause detectMoves is false regardless.
0.2.5 #
- Feat(transitions): add observer system for lifecycle hooks
- Feat(eligibility): add conditions, rules, and metadata extractors
- Feat(widgets): add auto-tracking widget with visibility management
- Feat(diff): add Myers algorithm for efficient list operations
- Feat(events): add event-based architecture for state lifecycle (shown, dismissed, converted)
- Feat(controller): add
setCandidatesWithDiffhelper for minimal boilerplate - BREAKING: rename
PresentumVariant->ResolvedPresentumVariant - BREAKING: rename
InheritedPresentation->InheritedPresentum - BREAKING: introduce generic
Vtype parameter for visual variants - BREAKING: change
getDismissedUntil->getDismissedAt - BREAKING: remove
Identifiableclass and bindings system - Refactor(state): implement equality and hashCode for core classes
- Refactor(errors): enhance error handling with stack traces and typed exceptions
- Refactor(widgets): make
PresentumOutletconcrete with placeholder builder support - Test: add comprehensive tests for transitions
- Refactor(types): improve type safety with generic type parameters
- Fix(diff): correct candidate list initialization in diff operations
- Fix(diff): use resolved candidates in diff calculation
- Fix(engine): remove problematic
late finaldeclarations - Docs: add comprehensive Mintlify documentation site
- Docs: add AI integration guides (Cursor, Claude, Windsurf)
- Docs: update README with examples and architecture overview
0.0.1-pre.0 #
- Initial publication