CycleButton<T>.primary constructor
CycleButton<T>.primary ({
- Key? key,
- required List<
T> values, - required Widget builder(
- BuildContext,
- T
- required T initialValue,
- dynamic onChanged(
- T value
- ButtonSize size = ButtonSize.normal,
- ButtonDensity density = ButtonDensity.icon,
- ButtonShape shape = ButtonShape.rectangle,
- FocusNode? focusNode,
- bool disableTransition = false,
- ValueChanged<
bool> ? onHover, - ValueChanged<
bool> ? onFocus, - bool? enableFeedback,
Creates a primary-styled CycleButton.
Initializes the CycleButton with ButtonStyle.primary(), providing a prominent appearance suitable for main action toggles, like mode selection in primary navigation or ArcaneField controls.
All other parameters behave as in the default constructor. The fixed style
ensures consistent primary theming from ArcaneTheme, with assertions
validating values
and initialValue
.
Usage: Ideal for high-visibility cycles, e.g., toggling between IconButton states in a toolbar.
Implementation
CycleButton.primary({
super.key,
required this.values,
required this.builder,
required this.initialValue,
this.onChanged,
this.size = ButtonSize.normal,
this.density = ButtonDensity.icon,
this.shape = ButtonShape.rectangle,
this.focusNode,
this.disableTransition = false,
this.onHover,
this.onFocus,
this.enableFeedback,
}) : style = const ButtonStyle.primary(),
assert(values.isNotEmpty, 'Values map must not be empty'),
assert(values.contains(initialValue),
'Initial value must be a key in the values map');