window = {
    name = "component_library_window"
    parentanchor = center
    size = { 1400 950 }
    layer = windows_layer

    using = Window_Background
    using = Window_Decoration

    state = {
        name = _show
        using = Animation_FadeIn_Quick

        on_start = "[GetVariableSystem.Set( 'ui_library_tabs', 'action_buttons' )]"
    }

    vbox = {
        using = Window_Margins

        header_pattern = {
            layoutpolicy_horizontal = expanding

            blockoverride "header_text"
            {
                raw_text = "UI Components"
            }

            blockoverride "button_close"
            {
                onclick = "[ExecuteConsoleCommand('gui.clearwidgets')]"
            }

            button_checkbox_label = {
                parentanchor = vcenter
                position = { 10 0 }

                onclick = "[GetVariableSystem.Toggle( 'ui_library_down_state')]"
                blockoverride "checkbox"
                {

                    checked = "[GetVariableSystem.Exists('ui_library_down_state')]"
                }
                blockoverride "text"
                {
                    raw_text = "Down State"
                }
            }

            button_tertiary = {
                parentanchor = vcenter
                position = { 1050 0 }
                size = { 200 40 }
                layoutpolicy_horizontal = expanding
                raw_text = "Spawn a Test Window"
                raw_tooltip = "Window for GUI testing (test_gui.gui)"

                onclick = "[ExecuteConsoleCommand('gui.CreateWidget gui/debug/test_gui.gui test_window')]"
            }
        }

        hbox = {
            layoutpolicy_horizontal = expanding

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "Action Buttons"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'action_buttons' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'action_buttons' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "Other Input"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'other_inputs' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'other_inputs' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "View Controls"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'view_controls' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'view_controls' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "Selectors"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'selectors' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'selectors' )]"
            }
            button_tab = {
                layoutpolicy_horizontal = expanding

                raw_text = "Separators"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'separators' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'separators' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding

                raw_text = "Indicators"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'indicators' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'indicators' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding

                raw_text = "Text Formats"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'text_formats' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'text_formats' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "Portraits"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'portraits' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'portraits' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "Coat of Arms"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'coas' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'coas' )]"
            }

            #button_tab = {
            #	layoutpolicy_horizontal = expanding
            #
            #	raw_text = "Tooltips"
            #
            #	onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'tooltips' )]"
            #	down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'tooltips' )]"
            #}

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "Animations"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'animations' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'animations' )]"
            }

            button_tab = {
                layoutpolicy_horizontal = expanding
                raw_text = "Placeholders"

                onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'placeholders' )]"
                down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'placeholders' )]"
            }
        }

        scrollbox = {
            name = "characters_scroll_area"
            layoutpolicy_vertical = expanding
            layoutpolicy_horizontal = expanding

            blockoverride "scrollbox_content" {
                vbox = {
                    name = "action_buttons"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'action_buttons' )]"

                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Action buttons represent an action you can DO, that change the game state or applies changes."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Primary Button"
                        }

                        blockoverride "vce_area"
                        {
                            button_primary = {
                                raw_text = "Verb Noun"
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                            button_primary_big = {
                                raw_text = "Verb Noun"
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "The Primary Action of a View. There should only be at most one of these per view, though not all views need one. It represents the most important action you can take in the view. It should not have an icon, simply a text. The label should contain a verb, and ideally also a noun."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Secondary Button"
                        }

                        blockoverride "vce_area"
                        {
                            button_round = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"

                                button_prison_ransom = {
                                    parentanchor = center
                                    down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                                }
                            }

                            button_standard = {

                                raw_text = "Verb Noun"

                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                            button_standard_big = {
                                raw_text = "Verb Noun"

                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Secondary Actions of a View. There can be many of these in a view. To save space, we sometimes use an icon-only version. The label should contain a verb, and ideally also a noun. Currently we use button_standard for this type, but possibly some of the button_standard should really be button_primary or button_tertiary"
                        }

                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Back Button"
                        }

                        blockoverride "vce_area"
                        {
                            button_standard_back = {
                                raw_text = "Verb Noun"
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "This back button type should be used everytime there is a need for a back button, always including the icon to the left."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Tertiary Button"
                        }

                        blockoverride "vce_area"
                        {
                            button_me = {
                                name = "button_me"
                                block "button_me" {
                                    visible = yes
                                }

                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                            button_tertiary = {
                                raw_text = "Verb Noun"

                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Rare and non-recommended Actions. Does not currently have an icon-only version. Could possibly have its own unique look instead of being the same as the frontend button"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Frontend Button"
                        }

                        blockoverride "vce_area"
                        {
                            button_frontend = {
                                raw_text = "Verb Noun"
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Action button for the Main Menu and Ingame Menu parts of the game. The same visual importance as a Secondary Button, but one that looks a bit more flavorful."
                        }
                    }
                }

                vbox = {
                    name = "other_inputs"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'other_inputs' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Other forms of input"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "editbox_standard"
                        }

                        blockoverride "vce_area"
                        {
                            editbox_standard = {}
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Regular editbox, allows entry of text on one or more lines"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "editbox_standard_with_label"
                        }

                        blockoverride "vce_area"
                        {
                            editbox_standard_with_label = {
                                blockoverride "editbox_label"
                                {
                                    raw_text = "Label:"
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Regular editbox, with a label. This is preferrable if there is space. The label is above to make sure there is maximum room for the text itself"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "editbox_search_field"
                        }

                        blockoverride "vce_area"
                        {
                            editbox_search_field = {
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Editbox for searching/filtering"
                        }
                    }
                }

                vbox = {
                    name = "view_controls"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'view_controls' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "View Controls hide or show parts of a UI, but they have no direct effect on the game itself."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Tab"
                        }

                        blockoverride "vce_area"
                        {
                            button_tab = {
                                raw_text = "Noun"
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "A tab, gives a mutually exclusive choice of what subview to show. The text on them should simply be a Noun."
                        }

                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Vertical Tab"
                        }

                        blockoverride "vce_area"
                        {
                            button_tab_vertical = {
                                raw_text = "Noun"
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Works the same as a tab, but the tabs are arranged vertically instead. Currently, the only way to toggle it 'selected' is to change the upframe property, instead of using the down property as you would expect."
                        }

                    }
                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Sidepanel Open"
                        }

                        blockoverride "vce_area"
                        {
                            button_sidepanel_right = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"

                                blockoverride "button_text"
                                {
                                    raw_text = "View Blablablas"
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Opens a sidepanel in a window. Has two versions, one opens a panel to the right, another to the left."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Expand/Collapse Heading"
                        }

                        blockoverride "vce_area"
                        {


                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "A heading you can click to expand/collapse what is under it."
                        }

                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Window Controls"
                        }

                        blockoverride "vce_area"
                        {
                            buttons_window_control = {
                                blockoverride "button_go_to" {
                                    visible = yes
                                }

                                blockoverride "button_pin"
                                {
                                    visible = yes
                                }

                                blockoverride "button_me" {
                                    visible = yes
                                }

                                blockoverride "button_back" {
                                    visible = yes
                                }

                                blockoverride "button_minimize" {
                                    visible = yes
                                }
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Controls in top right that acts on the UI itself, such as closing, minimizing, or pinning the UI for opening at a later time."
                        }

                    }
                }

                vbox = {
                    name = "selectors"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'selectors' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Selectors allow the player to choose among a few options. Currently we make no distinction between if this selection affects the gamestate or just what is shown/hidden, or if it is applied immediately or requires some confirmation."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Checkbox"
                        }

                        blockoverride "vce_area"
                        {
                            button_checkbox_label = {}
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Used to choose between two states. Ideally a checkbox should always have a label, though we sometimes use button_checkbox if there is no room. Some Jomini interfaces do not use button_checkbox_label, mostly because it is too much work to change it."
                        }

                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Segmented Control"
                        }

                        blockoverride "vce_area"
                        {


                        }

                        blockoverride "vce_desc"
                        {
                            text = ""
                        }

                    }
                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Radiobutton"
                        }

                        blockoverride "vce_area"
                        {
                            button_radio_label = {}

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Used to pick one of many options. We don't use this gui type currently because all our radiobuttons are in jomini"
                        }

                    }
                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "dropdown_menu_standard"
                        }

                        blockoverride "vce_area"
                        {
                            dropdown_menu_standard = {


                                blockoverride "dropdown_properties"
                                {
                                    datamodel = "[GetPlayer.GetCourt]"
                                }

                                blockoverride "dropdown_size"
                                {
                                    size = { 300 32 }
                                }

                                blockoverride "dropdown_list_maxsize"
                                {
                                    maximumsize = { 291 250 }
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Used to pick one from many options. Use this if space is limited. Note that you NEED a datamodel otherwise it will not even appear"
                        }

                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "widget_game_rule_option"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "this type spawns errors..."
                            }
                            # widget_game_rule_option = {
                            # }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Stepper only used in game rules, can be used in more places if needed"
                        }
                    }
                }

                vbox = {
                    name = "portraits"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'portraits' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Portraits are essentially Object Buttons for Characters, but we use a few different size so it nice to see them all in one place."
                        }
                    }

                    hbox_text_entry = {
                        visible = "[Not(IsInGame)]"
                        blockoverride "hte_text"
                        {
                            raw_text = "You have to be in-game to see portraits and coat of arms"
                        }
                    }

                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "portrait_head_small"
                        }

                        blockoverride "vce_area"
                        {

                            portrait_head_small = {
                                datacontext = "[GetPlayer]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Smallest size, for compact list entries"
                        }
                    }

                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "portrait_head"
                        }

                        blockoverride "vce_area"
                        {
                            portrait_head = {
                                datacontext = "[GetPlayer.GetPlayerHeir]"
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            text = ""
                        }

                    }
                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "portrait_shoulders"
                        }

                        blockoverride "vce_area"
                        {
                            portrait_shoulders = {
                                datacontext = "[GetPlayer]"
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            text = ""
                        }

                    }
                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "portrait_torso"
                        }

                        blockoverride "vce_area"
                        {
                            portrait_torso = {
                                datacontext = "[GetPlayer.GetPlayerHeir]"
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            text = ""
                        }

                    }
                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "portrait_body"
                        }

                        blockoverride "vce_area"
                        {
                            portrait_body = {
                                datacontext = "[GetPlayer]"
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For full flavor where we have the room"
                        }

                    }

                }

                vbox = {
                    name = "coas"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'coas' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Coat of Arms are essentially Object Buttons for Titles, Realms, Houses and Dynasties, but we use a few different size so it nice to see them all in one place."
                        }
                    }

                    hbox_text_entry = {
                        visible = "[Not(IsInGame)]"
                        blockoverride "hte_text"
                        {
                            raw_text = "You have to be in-game to see portraits and coat of arms"
                        }
                    }

                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "Realm Coat of Arms"
                        }

                        blockoverride "vce_area"
                        {
                            hbox = {
                                vbox = {
                                    coa_realm_tiny_crown = {
                                        datacontext = "[GetPlayer]"
                                    }
                                    text_single = {
                                        raw_text = "tiny"
                                    }
                                }

                                vbox = {
                                    coa_realm_small_crown = {
                                        datacontext = "[GetPlayer]"
                                    }
                                    text_single = {
                                        raw_text = "small"
                                    }
                                }

                                vbox = {
                                    coa_realm_medium_crown = {
                                        datacontext = "[GetPlayer]"
                                    }
                                    text_single = {
                                        raw_text = "medium"
                                    }
                                }

                                vbox = {
                                    coa_realm_big_crown = {
                                        datacontext = "[GetPlayer]"
                                    }
                                    text_single = {
                                        raw_text = "big"
                                    }
                                }

                                vbox = {
                                    coa_realm_huge_crown = {
                                        datacontext = "[GetPlayer]"
                                    }
                                    text_single = {
                                        raw_text = "huge"
                                    }
                                }
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Represents a Realm. Has an suffix for '_crown' if a crown should be added so that the Rank of the Realm is clearer."
                        }

                    }

                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "Title Coat of Arms"
                        }

                        blockoverride "vce_area"
                        {
                            hbox = {
                                vbox = {
                                    coa_title_tiny_crown = {
                                        datacontext = "[GetPlayer.GetPrimaryTitle]"
                                    }
                                    text_single = {
                                        raw_text = "tiny"
                                    }
                                }

                                vbox = {
                                    coa_title_small_crown = {
                                        datacontext = "[GetPlayer.GetPrimaryTitle]"
                                    }
                                    text_single = {
                                        raw_text = "small"
                                    }
                                }

                                vbox = {
                                    coa_title_medium_crown = {
                                        datacontext = "[GetPlayer.GetPrimaryTitle]"
                                    }
                                    text_single = {
                                        raw_text = "medium"
                                    }
                                }

                                vbox = {
                                    coa_title_big_crown = {
                                        datacontext = "[GetPlayer.GetPrimaryTitle]"
                                    }
                                    text_single = {
                                        raw_text = "big"
                                    }
                                }
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Represents a Title. Has an suffix for '_crown' if a crown should be added so that the Rank of the Title is clearer."
                        }

                    }

                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "House Coat of Arms"
                        }

                        blockoverride "vce_area"
                        {
                            hbox = {
                                vbox = {
                                    coa_house_tiny = {
                                        datacontext = "[GetPlayer.GetHouse]"
                                    }
                                    text_single = {
                                        raw_text = "tiny"
                                    }
                                }

                                vbox = {
                                    coa_house_small = {
                                        datacontext = "[GetPlayer.GetHouse]"
                                    }
                                    text_single = {
                                        raw_text = "small"
                                    }
                                }

                                vbox = {
                                    coa_house_medium = {
                                        datacontext = "[GetPlayer.GetHouse]"
                                    }
                                    text_single = {
                                        raw_text = "medium"
                                    }
                                }

                                vbox = {
                                    coa_house_big = {
                                        datacontext = "[GetPlayer.GetHouse]"
                                    }
                                    text_single = {
                                        raw_text = "big"
                                    }
                                }

                                vbox = {
                                    coa_house_huge = {
                                        datacontext = "[GetPlayer.GetHouse]"
                                    }
                                    text_single = {
                                        raw_text = "huge"
                                    }
                                }
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Represents a House."
                        }

                    }

                    vbox_component_entry = {
                        visible = "[IsInGame]"
                        blockoverride "vce_name"
                        {
                            raw_text = "Dynasty Coat of Arms"
                        }

                        blockoverride "vce_area"
                        {
                            hbox = {

                                vbox = {
                                    coa_dynasty_tiny = {
                                        datacontext = "[GetPlayer.GetHouse.GetDynasty]"
                                    }
                                    text_single = {
                                        raw_text = "tiny"
                                    }
                                }

                                vbox = {
                                    coa_dynasty_small = {
                                        datacontext = "[GetPlayer.GetHouse.GetDynasty]"
                                    }
                                    text_single = {
                                        raw_text = "small"
                                    }
                                }

                                vbox = {
                                    coa_dynasty_medium = {
                                        datacontext = "[GetPlayer.GetHouse.GetDynasty]"
                                    }
                                    text_single = {
                                        raw_text = "medium"
                                    }
                                }

                                vbox = {
                                    coa_dynasty_big = {
                                        datacontext = "[GetPlayer.GetHouse.GetDynasty]"
                                    }
                                    text_single = {
                                        raw_text = "big"
                                    }
                                }

                                vbox = {
                                    coa_dynasty_huge = {
                                        datacontext = "[GetPlayer.GetHouse.GetDynasty]"
                                    }
                                    text_single = {
                                        raw_text = "huge"
                                    }
                                }
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Represents a Dynasty."
                        }

                    }




                }

                vbox = {
                    name = "separators"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'separators' )]"
                    layoutpolicy_horizontal = expanding

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "text_label_center/left/right"
                        }

                        blockoverride "vce_area"
                        {
                            text_label_left = {
                                layoutpolicy_horizontal = expanding
                                raw_text = "left"
                            }
                            text_label_center = {
                                layoutpolicy_horizontal = expanding
                                raw_text = "center"
                            }
                            text_label_right = {
                                layoutpolicy_horizontal = expanding
                                raw_text = "right"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Text Labels (left, right center)"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "divider and divider_light"
                        }

                        blockoverride "vce_area"
                        {
                            divider_light = {
                                layoutpolicy_horizontal = expanding
                            }
                            divider = {
                                layoutpolicy_horizontal = expanding
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Dividers, can be used both vertically and horizontally"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Area"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 150 150 }

                                background = {
                                    using = Background_Area
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Area_Dark"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 150 150 }

                                background = {
                                    using = Background_Area_Dark
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Area_Light"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 150 150 }

                                background = {
                                    using = Background_Area_Light
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Frame"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 150 150 }

                                background = {
                                    using = Background_Frame
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Area_With_Header"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 250 150 }

                                background = {
                                    using = Background_Area_With_Header
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Area_With_Header_Dark"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 250 150 }

                                background = {
                                    using = Background_Area_With_Header_Dark
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Tab_Area"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 250 150 }

                                background = {
                                    using = Background_Tab_Area
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background for area under tabs."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Letter"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 250 150 }

                                using = Background_Letter
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Background"
                        }
                    }
                }

                vbox = {
                    name = "indicators"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'indicators' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Indicators are visual elements that show a certain value or percentage. They usually do not have a way for the player to perform an action."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Progressbar"
                        }

                        blockoverride "vce_area"
                        {
                            progressbar_standard = {
                                layoutpolicy_horizontal = expanding
                                value = 40
                            }

                            progressbar_standard_transparent = {
                                layoutpolicy_horizontal = expanding
                                value = 40
                            }

                            progressbar_red = {
                                layoutpolicy_horizontal = expanding
                                value = 40
                            }

                            progressbar_green = {
                                layoutpolicy_horizontal = expanding
                                value = 40
                            }

                            progressbar_frozen = {
                                layoutpolicy_horizontal = expanding
                                value = 40
                            }

                            progressbar_frozen_transparent = {
                                layoutpolicy_horizontal = expanding
                                value = 40
                            }

                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Various standard progressbars"
                        }

                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Relative Bar"
                        }

                        blockoverride "vce_area"
                        {


                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Like a Progressbar, but instead of indication progress towards some end, instead it shows the relative relation between two things, like the two sides in a Battle."
                        }

                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Indicator backgrounds"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "Status_Good"

                                using = Status_Good
                            }

                            text_single = {
                                raw_text = "Status_Mixed"

                                using = Status_Mixed
                            }

                            text_single = {
                                raw_text = "Status_Bad"

                                using = Status_Bad
                            }

                            text_single = {
                                raw_text = "Status_Highlight"

                                using = Status_Highlight
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Backgrounds that highlights whether a value is positive, negative, or if we just need to highlight something."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Indicator icons"
                        }

                        blockoverride "vce_area"
                        {

                            hbox = {
                                spacing = 20

                                hbox = {
                                    icon = {
                                        size = { 40 40 }
                                        texture = "gfx/interface/icons/symbols/icon_alert.dds"
                                    }

                                    warning_icon = {
                                        size = { 40 40 }
                                    }
                                }

                                hbox = {
                                    icon = {
                                        size = { 40 40 }
                                        texture = "gfx/interface/icons/symbols/icon_check.dds"
                                    }

                                    icon = {
                                        size = { 40 40 }
                                        texture = "gfx/interface/icons/symbols/icon_cross.dds"
                                    }
                                }

                                hbox = {
                                    icon = {
                                        size = { 40 40 }
                                        texture = "gfx/interface/icons/symbols/icon_arrow_green_down.dds"
                                        mirror = vertical
                                    }

                                    icon = {
                                        size = { 40 40 }
                                        texture = "gfx/interface/icons/symbols/icon_arrow_red_up.dds"
                                        mirror = vertical
                                    }

                                    icon = {
                                        size = { 40 40 }
                                        texture = "gfx/interface/icons/symbols/icon_arrow_up.dds"
                                        mirror = vertical
                                    }
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Symbols"
                        }
                    }
                }

                vbox = {
                    name = "text_formats"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'text_formats' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Text formats are defined in 'gui/textformatting.gui'. They are named based on their use rather than their look, so we can tweak them easily."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "High Contrast (##high)"
                        }

                        blockoverride "vce_area"
                        {

                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                default_format = "#high"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For text that needs to stand out"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Medium Contrast (##medium)"
                        }

                        blockoverride "vce_area"
                        {

                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                default_format = "#medium"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For most regular text"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Low Contrast (##low)"
                        }

                        blockoverride "vce_area"
                        {

                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                default_format = "#low"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For lowest contrast, mostly for short text and UI elements"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Weak (##weak)"
                        }

                        blockoverride "vce_area"
                        {

                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                default_format = "#weak"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Low contrast longer text that explains something that is not very important. For example, filling out an empty state, or instructing how a mechanic works."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Flavor (##flavor, ##F)"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                default_format = "#flavor"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For Flavor texts for entities such as Faiths, Men-at-Arms types, etc."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Light background (##light_background)"
                        }

                        blockoverride "vce_area"
                        {
                            using = Background_Letter

                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                default_format = "#light_background"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For light backgrounds like letter events"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Help (##help)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                default_format = "#help"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For hints and tips in Alert/Suggestion/Current Situation Tooltips"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Instruction (##instruction, ##I)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "Shift-click to add to selection"
                                default_format = "#I"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For instructions to the Player (not their Character), either referring to the input controls or asking them to make a choice."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Warning (##warning, ##X)"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "@warning_icon!You are a Child"
                                default_format = "#X"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For when things are wrong or buttons are disabled. Should always be paired with the Warning Text Icon"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Alert Trial (##alert_trial)"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "@alert_icon!Something might happen..."
                                default_format = "#alert_trial"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Trying this out, to show bad things that will happen in future? Or less severe stuff?"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Value (##value, ##V)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "42"
                                default_format = "#V"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For important values that should stand out. Usually it means the value changes. Supports skimming a page for values."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Negative Value (##negative_value, ##N)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "+42"
                                default_format = "#N"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For 'bad' values, for example if a Character gains Stress. Used by code to color the '+/-' number formatting"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Positive Value (##positive_value, ##P)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "42"
                                default_format = "#P"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For 'good' values, for example if a Character gains Gold. Used by code to color the '+/-' number formatting"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Zero Value (##zero_value, ##Z)"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "0"
                                default_format = "#Z"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For values that are neither good nor bad. Used by code to color the '+/-' number formatting"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Clickable (##clickable)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "Start Game"
                                default_format = "#clickable"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For interactible elements such as buttons"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Game Object Link (##game_link, ##L)"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "House Canossa"
                                default_format = "#L"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For Game Objects (Characters, Titles, Traits, etc). Hover over the text to get a (dynamic) tooltip of this specific instance"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Game Concept Link (##explanation_link, ##E)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "Vassal"
                                default_format = "#E"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Used for Game Concepts, hover over this text to get a (static) explanation of something in the game."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Game Concept Link, Light background (##explanation_link_light_background, B)"
                        }

                        blockoverride "vce_area"
                        {
                            using = Background_Letter

                            text_single = {
                                raw_text = "Vassal"
                                default_format = "#B"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Game Concept Link for light backgrounds such as letter events"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Tooltip Heading (##tooltip_heading, ##T)"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "North Sea"
                                default_format = "#T"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Used in text tooltips for the heading that tells the player what they have put their mouse on"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Tooltip Subheading (##tooltip_subheading, ##S)"
                        }

                        blockoverride "vce_area"
                        {


                            text_single = {
                                raw_text = "Effects"
                                default_format = "#S"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Some text tooltips are split into multiple segments, each headed by a subheading"
                        }
                    }


                }

                vbox = {
                    name = "animations"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'animations' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "Animations used for window show and hide transitions."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Animation_FadeIn/Out_Standard"
                        }

                        blockoverride "vce_area"
                        {

                            debug_square = {
                                size = { 100 100 }

                                state = {
                                    name = a
                                    next = b
                                    trigger_on_create = yes

                                    using = Animation_FadeIn_Standard
                                    delay = 1
                                }

                                state = {
                                    name = b
                                    next = a

                                    using = Animation_FadeOut_Standard
                                    delay = 1
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "0.25 second duration"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Animation_FadeIn/Out_Quick"
                        }

                        blockoverride "vce_area"
                        {

                            debug_square = {
                                size = { 100 100 }

                                state = {
                                    name = a
                                    next = b
                                    trigger_on_create = yes

                                    using = Animation_FadeIn_Quick
                                    delay = 1
                                }

                                state = {
                                    name = b
                                    next = a

                                    using = Animation_FadeOut_Quick
                                    delay = 1
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "0.15 second duration"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Animation_Tab_Switch"
                        }

                        blockoverride "vce_area"
                        {

                            widget = {
                                size = { 100 100 }

                                debug_square = {
                                    visible = "[GetVariableSystem.Exists( 'ui_library_tab_switch_example' )]"
                                    size = { 100 100 }

                                    using = Animation_Tab_Switch
                                }

                                debug_square = {
                                    visible = "[Not(GetVariableSystem.Exists( 'ui_library_tab_switch_example' ))]"
                                    size = { 100 100 }

                                    using = Animation_Tab_Switch

                                    texture = "gfx/interface/colors/blue.dds"
                                }
                            }

                            button_tertiary = {
                                onclick = "[GetVariableSystem.Toggle( 'ui_library_tab_switch_example' )]"
                                raw_text = "Test"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For switching between tabs or other view modes. Has 0 hide duration to prevent overlap."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Animation_Refresh"
                        }

                        blockoverride "vce_area"
                        {

                            widget = {
                                size = { 100 100 }

                                debug_square = {
                                    size = { 100 100 }

                                    using = Animation_Tab_Switch

                                    state = {
                                        name = "ui_library_refresh_animation_test"
                                        using = Animation_Refresh_FadeOut
                                    }

                                    state = {
                                        using = Animation_Refresh_FadeIn
                                    }
                                }
                            }

                            button_tertiary = {
                                onclick = "[PdxGuiTriggerAllAnimations('ui_library_refresh_animation_test')]"
                                raw_text = "Test"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "For refreshing window content, ie. selecting between different faiths while the Faith Window is open."
                        }
                    }
                }

                vbox = {
                    name = "placeholders"
                    visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'placeholders' )]"
                    layoutpolicy_horizontal = expanding

                    hbox_text_entry = {
                        blockoverride "hte_text"
                        {
                            raw_text = "This tab contains our debug and placeholder assets. You can use these whenever there is art missing or in early development to simply wireframe a UI."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "debug_square"
                        }

                        blockoverride "vce_area"
                        {
                            debug_square = {}
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Our classic vintage debug_square. This shouldn't have to be used as much anymore but it's there if you need it."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "icon_placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            icon_placeholder = {
                                size = { 30 30 }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "A placeholder version of an icon which can be used when art isn't made yet. When hooking in icons which have not yet been made by art, simply copy the texture in the gfx/interface/_debug-folder and paste it in the correct game folder. Then change the name to the name specified in the related Jira."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "flat_icon_standard_placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            icon_flat_standard_placeholder = {
                                size = { 30 30 }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "A placeholder version of an icon_flat_standard which can be used when art isn't made yet. This is just a black icon shape with a texture applied on top of it through script. When hooking in icons which have not yet been made by art, simply copy the texture in the gfx/interface/_debug-folder and paste it in the correct game folder. Then change the name to the name specified in the related Jira."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "button_icon_placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            button_icon_placeholder = {
                                size = { 30 30 }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "A placeholder version of an icon_flat_standard which can be used when art isn't made yet. To find out when to use this button type go to the Action Buttons tab in this window for more information."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "button_round_placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            button_round_placeholder = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"

                                button_icon_placeholder = {
                                    parentanchor = center
                                    size = { 25 25 }
                                    texture = "gfx/interface/_debug/icon_placeholder_01.dds"
                                    down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "A placeholder round button icon which can be used when icon isn't made by art yet. This is very similar to the button_icon type but with the addition of a round frame. To find out when to use this button type go to the Action Buttons tab in this window for more information."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "button_primary_placeholder & button_primary_big_placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            button_primary_placeholder = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                            button_primary_big_placeholder = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Placeholder version of our primary button. To find out when to use this button type go to the Action Buttons tab in this window for more information."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "button_standard_placeholder & button_standard_big_placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            button_standard_placeholder = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }

                            button_standard_big_placeholder = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Placeholder version of our standard button. To find out when to use this button type go to the Action Buttons tab in this window for more information."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "button_tertiary_placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            button_tertiary_placeholder = {
                                down = "[GetVariableSystem.Exists('ui_library_down_state')]"
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Placeholder version of our tertiary button. To find out when to use this button type go to the Action Buttons tab in this window for more information."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Text_Placeholder & Debug Text Format (##D)"
                        }

                        blockoverride "vce_area"
                        {
                            text_single = {
                                raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor"
                                using = Text_Placeholder
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Text template format that can be used on texts to make it pink and communicate it's not final. This can be applied to text inside our types: text_single, text_multi etc. To apply this template to text write: using = Text_Placeholder or use ( default_format = ##D )"
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Background_Frame_Placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            widget = {
                                size = { 100 100 }

                                hbox = {
                                    background = {
                                        using = Background_Frame_Placeholder
                                    }
                                }
                            }

                            icon = {
                                size = { 200 100 }

                                background = {
                                    texture = "gfx/interface/illustrations/dlc/dlc_004.dds"
                                    fittype = centercrop
                                    using = Mask_Rough_Edges
                                }

                                background = {
                                    using = Background_Frame_Placeholder
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "A placeholder frame in our debug color. This can be put around a widget of most types to communicate it's a placeholder."
                        }
                    }

                    vbox_component_entry = {
                        blockoverride "vce_name"
                        {
                            raw_text = "Texture_Placeholder"
                        }

                        blockoverride "vce_area"
                        {
                            icon = {
                                size = { 200 100 }

                                background = {
                                    texture = "gfx/interface/illustrations/dlc/dlc_004.dds"
                                    fittype = centercrop
                                    using = Mask_Rough_Edges
                                    using = Texture_Placeholder
                                }
                            }
                        }

                        blockoverride "vce_desc"
                        {
                            raw_text = "Use the template to turn the whole texture pink if the frame isn't enough to communicate an illustration is just a placeholder."
                        }
                    }
                }
            }
        }
    }
}

types ComponentLibrary
{
    type vbox_component_entry = vbox {
        layoutpolicy_horizontal = expanding
        margin_bottom = 10

        text_single = {
            name = "heading"
            layoutpolicy_horizontal = expanding
            margin = { 10 5 }

            using = Background_Area_Dark

            using = Font_Size_Medium
            align = nobaseline

            block "vce_name"
            {
                raw_text = "vce_name"
            }
        }

        hbox = {
            layoutpolicy_horizontal = expanding

            vbox = {
                min_width = 500
                margin ={ 20 20 }
                spacing = 10

                block "vce_area"
                {

                }
            }

            hbox = {
                layoutpolicy_horizontal = expanding
                layoutpolicy_vertical = expanding

                margin = { 15 15 }

                background = {
                    using = Background_Area
                }

                vbox = {
                    layoutpolicy_vertical = expanding

                    text_multi = {
                        name = "desc"

                        autoresize = yes
                        max_width = 700

                        block "vce_desc"
                        {
                            raw_text = "vce_desc"
                        }
                    }

                    expand = {}
                }

                expand = {}
            }
        }
    }


    type hbox_text_entry = hbox {
        layoutpolicy_horizontal = expanding

        margin = { 15 15 }
        margin_bottom = 25

        text_multi =  {
            block "hte_text"
            {
                raw_text = "hte_text"
            }
            align = center
            autoresize = yes
            default_format = "#I"
            max_width = 700
        }
    }
}
