/*
*               dotfiles - rendering.d.ts
*
*   Created by Janis Hutz 03/22/2025, Licensed under the GPL V3 License
*           https://janishutz.com, development@janishutz.com
*
*
*/

export interface UIComponent {
    /**
     * The title of the component (like a category name), shown above small divider line
     */
    title: string;

    /**
     * ResultElement list, made up of all elements that should be shown
     */
    elements: ResultElement[];

    /**
     * Choose how many elements to show before truncating (will expand when command is run)
     */
    truncate: number;

    /**
     * The weight of the element (determines order)
     */
    weight: number;
}


export interface ResultElement {
    /**
     * The name of the result element
     */
    name: string;

    /**
     * Path to the image to be displayed in the UI
     */
    img: string;

    /**
     * The weight of the element (determines order)
     */
    weight: number;

    /**
     * The action to be executed
     */
    action: Action;

    /**
     * The font size of the text (optional)
     */
    fontSize: number | undefined;
}

type Action = '' | null;
