presentation/elements/tappable_action library

Classes

AsyncDebouncer
Async debouncing with auto-cancellation of previous calls. Returns null if cancelled by a newer invocation.
AsyncExecutor
Handles async operations with concurrency control and cancellation.
AsyncThrottler
Async throttling with process-based locking.
BatchThrottler<T>
Collects multiple actions and executes them as a single batch after a pause.
CallbackController
Base class for synchronous callback controllers (Throttler, Debouncer).
Debouncer
Waits for a pause in activity before executing. Supports leading/trailing edge.
HighFrequencyThrottler
Optimized for high-frequency events (16-32ms intervals like scroll/resize). Uses DateTime.now() comparison instead of Timer objects for reduced overhead.
ITappableActionGroupManager
Interface for group management to enable testing
RateLimiter
Token bucket algorithm for sustained rate limiting with burst capacity. Uses Stopwatch (monotonic clock) for accurate timing.
TapDebouncer
TapMetrics
Metrics data for tap analytics and observability.
TappableAction
Enhanced TappableAction with production-grade reliability
TappableActionConfig
Configuration for TappableAction behavior
TappableActionGroupConfig
Configuration for TappableActionGroupManager
TappableActionGroupManager
Production-grade group manager with comprehensive safety measures
TappableActionInkedWell
Simplified InkedWell wrapper
ThrottleDebouncer
Combines throttle + debounce: executes immediately (leading edge), then again after pause (trailing edge).
Throttler
Executes immediately on first call, blocks subsequent calls until duration passes.
TimerFactory
Factory for creating timers (enables testing)

Enums

ConcurrencyMode
Concurrency mode for async operations.
TapConcurrencyMode
Concurrency control for async tap handlers.
TapExecutionMode
Execution timing mode for tap handlers.

Typedefs

TapDebouncerFunc = Future<void> Function()
Debouncer with dependency injection for testing