using AIStudio.Tools.Rust;
namespace AIStudio.Components;
///
/// UI binding data for a configurable keyboard shortcut.
///
public sealed class ConfigurationShortcutData
{
///
/// Empty shortcut binding.
///
public static ConfigurationShortcutData Empty { get; } = new();
///
/// The name/identifier of the shortcut, used for conflict detection and registration.
///
public Shortcut Id { get; init; } = Shortcut.NONE;
///
/// The current shortcut value.
///
public Func Value { get; init; } = () => string.Empty;
///
/// An action that is called when the shortcut was changed.
///
public Action ValueUpdate { get; init; } = _ => { };
///
/// The optional user-facing shortcut label.
///
public Func DisplayName { get; init; } = () => string.Empty;
///
/// The canonical shortcut value the optional user-facing label belongs to.
///
public Func DisplaySource { get; init; } = () => string.Empty;
///
/// An action that is called when the user-facing shortcut label was changed.
///
public Action DisplayUpdate { get; init; } = (_, _) => { };
}