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; } }