namespace LanMountainDesktop.AirAppSdk;
///
/// Options for registering an AirApp desktop component.
///
public sealed class AirAppComponentOptions
{
///
/// Gets or sets the unique component identifier.
///
public required string Id { get; set; }
///
/// Gets or sets the display name.
///
public required string Name { get; set; }
///
/// Gets or sets the widget implementation type.
/// Must implement IAirAppWidget.
///
public required Type WidgetType { get; set; }
///
/// Gets or sets the optional description.
///
public string? Description { get; set; }
///
/// Gets or sets the default width in grid cells.
/// Default is 2.
///
public int DefaultWidth { get; set; } = 2;
///
/// Gets or sets the default height in grid cells.
/// Default is 2.
///
public int DefaultHeight { get; set; } = 2;
///
/// Gets or sets the resize mode.
///
public AirAppComponentResizeMode ResizeMode { get; set; } = AirAppComponentResizeMode.Both;
///
/// Gets or sets whether this component can be added multiple times.
/// Default is true.
///
public bool AllowMultipleInstances { get; set; } = true;
///
/// Gets or sets the category for grouping in the component library.
///
public string? Category { get; set; }
///
/// Gets or sets the icon identifier.
///
public string? IconKey { get; set; }
}