// SPDX-FileCopyrightText: 2026 FocusFlow contributors
// SPDX-License-Identifier: AGPL-3.0-only

part of '../timeline_view.dart';

/// Private implementation type for `_TimelineScrollBehavior` in this library.
/// It keeps supporting state and behavior scoped to the owning file so the public API stays focused on the scheduler concepts that callers use directly.
class _TimelineScrollBehavior extends MaterialScrollBehavior {
  /// Creates a `_TimelineScrollBehavior` instance with the values required by its invariants.
  /// Callers should pass already-normalized scheduler data because validation and defaulting belong at the model or service boundary, not in arbitrary UI code.
  const _TimelineScrollBehavior();

  /// Returns the derived `dragDevices` value for this object.
  /// Keeping this as an accessor gives callers a stable read surface while the owning type controls how the value is calculated.
  @override
  Set<PointerDeviceKind> get dragDevices {
    return {...super.dragDevices, PointerDeviceKind.mouse};
  }
}
