AdaptiveReleaseLab<T> class

A staged release workspace that coordinates a release list, an active readiness surface, a blockers panel, and a rollout log from one adaptive model.

Inheritance

Constructors

AdaptiveReleaseLab({Key? key, required List<T> releases, required Widget itemBuilder(BuildContext context, T release, bool selected, VoidCallback onTap), required Widget readinessBuilder(BuildContext context, T release), required Widget blockersBuilder(BuildContext context, T release), required Widget rolloutBuilder(BuildContext context, T release), required String releaseTitle, required String blockersTitle, required String rolloutTitle, Widget? header, Widget? emptyState, String? releaseDescription, Widget? releaseLeading, String? blockersDescription, Widget? blockersLeading, String? rolloutDescription, Widget? rolloutLeading, String modalReleaseLabel = 'Open releases', Widget modalReleaseIcon = const Icon(Icons.rocket_launch_outlined), String modalBlockersLabel = 'Open blockers', Widget modalBlockersIcon = const Icon(Icons.warning_amber_outlined), String modalRolloutLabel = 'Open rollout log', Widget modalRolloutIcon = const Icon(Icons.history_outlined), AdaptiveSize releaseDockedAt = AdaptiveSize.medium, AdaptiveSize blockersDockedAt = AdaptiveSize.expanded, AdaptiveSize rolloutDockedAt = AdaptiveSize.expanded, AdaptiveHeight minimumReleaseDockedHeight = AdaptiveHeight.compact, AdaptiveHeight minimumBlockersDockedHeight = AdaptiveHeight.medium, AdaptiveHeight minimumRolloutDockedHeight = AdaptiveHeight.expanded, bool useContainerConstraints = true, bool considerOrientation = false, int? selectedIndex, int initialIndex = 0, ValueChanged<int>? onSelectedIndexChanged, double spacing = 16, double itemSpacing = 12, int releaseFlex = 2, int readinessFlex = 4, int blockersFlex = 2, int readinessPaneFlex = 3, int rolloutFlex = 2, EdgeInsetsGeometry releasePadding = const EdgeInsets.all(16), EdgeInsetsGeometry readinessPadding = const EdgeInsets.all(16), EdgeInsetsGeometry blockersPadding = const EdgeInsets.all(16), EdgeInsetsGeometry rolloutPadding = const EdgeInsets.all(16), double modalHeightFactor = 0.72, bool showModalDragHandle = true, bool animateSize = true, Duration animationDuration = const Duration(milliseconds: 250), Curve animationCurve = Curves.easeInOutCubic})
Creates an adaptive release lab.
const

Properties

animateSize bool
Whether to animate size changes when the mode changes.
final
animationCurve Curve
Curve used by AnimatedSize and AnimatedSwitcher.
final
animationDuration Duration
Duration used by AnimatedSize and AnimatedSwitcher.
final
blockersBuilder Widget Function(BuildContext context, T release)
Builds the blockers panel for the selected release.
final
blockersDescription String?
Optional description shown below blockersTitle.
final
blockersDockedAt AdaptiveSize
Semantic size at which the blockers panel should dock inline.
final
blockersFlex int
Flex used by the docked blockers region.
final
blockersLeading Widget?
Optional leading widget shown beside blockersTitle.
final
blockersPadding EdgeInsetsGeometry
Padding applied inside the blockers surface.
final
blockersTitle String
Title shown above the blockers panel.
final
considerOrientation bool
Whether orientation should influence container-based breakpoint selection.
final
emptyState Widget?
Optional empty state shown when releases is empty.
final
hashCode int
The hash code for this object.
no setterinherited
Optional header shown above the active readiness surface.
final
initialIndex int
Initial selected release index for uncontrolled usage.
final
itemBuilder Widget Function(BuildContext context, T release, bool selected, VoidCallback onTap)
Builds an individual release row.
final
itemSpacing double
Space between adjacent release rows.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
minimumBlockersDockedHeight AdaptiveHeight
Minimum height class required before blockers can dock inline.
final
minimumReleaseDockedHeight AdaptiveHeight
Minimum height class required before the release list can dock inline.
final
minimumRolloutDockedHeight AdaptiveHeight
Minimum height class required before rollout can dock inline.
final
modalBlockersIcon Widget
Icon used by the compact blockers trigger.
final
modalBlockersLabel String
Label used by the compact blockers trigger.
final
modalHeightFactor double
Height factor used by compact modal sheets.
final
modalReleaseIcon Widget
Icon used by the compact release-list trigger.
final
modalReleaseLabel String
Label used by the compact release-list trigger.
final
modalRolloutIcon Widget
Icon used by the compact rollout trigger.
final
modalRolloutLabel String
Label used by the compact rollout trigger.
final
onSelectedIndexChanged ValueChanged<int>?
Called when the selected release changes.
final
readinessBuilder Widget Function(BuildContext context, T release)
Builds the active readiness surface for the selected release.
final
readinessFlex int
Flex used by the readiness region.
final
readinessPadding EdgeInsetsGeometry
Padding applied inside the readiness surface.
final
readinessPaneFlex int
Flex used by the readiness surface when rollout is docked below it.
final
releaseDescription String?
Optional description shown below releaseTitle.
final
releaseDockedAt AdaptiveSize
Semantic size at which the release list should dock inline.
final
releaseFlex int
Flex used by the docked release-list region.
final
releaseLeading Widget?
Optional leading widget shown beside releaseTitle.
final
releasePadding EdgeInsetsGeometry
Padding applied inside the release list surface.
final
releases List<T>
Releases shown in the list.
final
releaseTitle String
Title shown above the release list.
final
rolloutBuilder Widget Function(BuildContext context, T release)
Builds the rollout log for the selected release.
final
rolloutDescription String?
Optional description shown below rolloutTitle.
final
rolloutDockedAt AdaptiveSize
Semantic size at which the rollout panel should dock inline.
final
rolloutFlex int
Flex used by the docked rollout region.
final
rolloutLeading Widget?
Optional leading widget shown beside rolloutTitle.
final
rolloutPadding EdgeInsetsGeometry
Padding applied inside the rollout surface.
final
rolloutTitle String
Title shown above the rollout panel.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedIndex int?
Optional controlled selected release index.
final
showModalDragHandle bool
Whether to show a drag handle in compact modal sheets.
final
spacing double
Space between adjacent regions.
final
useContainerConstraints bool
Whether to derive layout decisions from parent constraints.
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited