SignalSlotExtensions<T> extension

============================================================================ COMPOSABLE SLOT MODIFIERS (Extension Methods)

Elegant chainable modifiers for Signal-based widgets.

Example:

controller.count
  .slot((ctx, val) => Text('$val'))
  .animated(effect: SlotEffect.fadeScale)
  .withDelay(Duration(milliseconds: 100))
  .onTap(() => controller.increment());
on

Methods

animated({required Widget to(BuildContext context, T value), Duration duration = const Duration(milliseconds: 300), Curve curve = Curves.easeInOut, SlotEffect effect = SlotEffect.fade, DirectionalEffect? directionalEffect}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create an AnimatedSlot with elegant syntax.
debounced({required Widget to(BuildContext context, T value), Duration duration = const Duration(milliseconds: 300)}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a debounced slot.
lazy({required Widget to(BuildContext context, T value), Widget placeholder(BuildContext context)?}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a lazy slot that defers building.
memoized({required Widget to(BuildContext context, T value), bool equals(T a, T b)?}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a memoized slot with custom equality.
pulsing({required Widget to(BuildContext context, T value), bool when(T value)?, Duration duration = const Duration(milliseconds: 1000)}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a pulsing slot for attention.
slot(Widget builder(BuildContext context, T value)) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a basic Slot widget from this signal.
tappable({required Widget to(BuildContext context, T value), VoidCallback? onTap, VoidCallback? onDoubleTap, VoidCallback? onLongPress, double pressedScale = 0.95}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a gesture-animated slot.
throttled({required Widget to(BuildContext context, T value), Duration duration = const Duration(milliseconds: 100)}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a throttled slot.
transition({required Widget to(BuildContext context, T value), SlotTransition type = SlotTransition.fade, Duration duration = const Duration(milliseconds: 300), Curve curve = Curves.easeInOut}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a TransitionSlot with specified transition type.
when({required bool condition(T value), required Widget to(BuildContext context, T value), Widget orElse(BuildContext context)?}) Widget

Available on Signal<T>, provided by the SignalSlotExtensions extension

Create a conditional slot with when/orElse.