# shellcheck shell=dash disable=1091,2034

___x_cmd_theme_prompt_format(){
    ___x_cmd_theme_github "$@"
}

# ucvs
___x_cmd_theme_github(){
    case "$1" in
        mini)       ___x_cmd_theme_elmini "$@"  ;;
        *)          ___x_cmd_theme_githubfull "$@"  ;;
    esac
}

xrc:theme:widget msg hms username cwd vcml symbol emoji
___x_cmd_theme_githubfull(){
    local x_;

    ___x_cmd_theme_headline_print

    local X_left

    ___x_cmd_theme_widget_username
    [ -z "$X_username" ] || X_left="${X_username}"

    ___x_cmd_theme_widget_cwd
    [ -z "$X_cwd" ] || X_left="${X_left} in ${X_cwd}"

    ___x_cmd_theme_widget_vcml
    [ -z "$X_vcml" ] || {
        if [ -z "$x_git_changed" ]; then
            X_left="${X_left} on ${X_vcml}"
        else
            ___x_cmd_theme_widget_vcml_handle
            X_left="${X_left} on ${X_vcml}${x_git_changed_staging}${x_git_changed_working}"
        fi
    }

    ___x_cmd_theme_widget_emoji
    ___x_cmd_theme_widget_emoji_escape_bug
    [ -z "$X_emoji" ] || X_left="${X_emoji}  ${X_left}"

    ___x_cmd_theme_widget_symbol "λ" "λ" "λ"
    printf "%s %s "      "${X_left}" "${X_symbol}"
}

XT_transient_ps1(){
    local x_=""
    theme:feature:get transient_time
    case "$x_" in
        always)
            ___x_cmd_theme_comp_transient time
            ___X_CMD_THEME_TIME_H_M_S="$x_"
            ___x_cmd_theme_widget_hms 2>/dev/null
            [ -z "$X_hms" ] || X_ps1="${X_hms} " ;;
    esac

    ___x_cmd_theme_widget_symbol "λ" "λ" "λ" 2>/dev/null
    [ -z "$X_symbol" ] || X_ps1="${X_ps1}${X_symbol} "
}

___x_cmd_theme_widget_vcml_handle(){
    ___x_cmd_theme_comp_git_changed_parse
    local x_git_changed_symbol="●"
    XTW_vcml_right_label_staging="${x_git_changed_staging_A+" +$x_git_changed_staging_A"}\
${x_git_changed_staging_M+" ~$x_git_changed_staging_M"}${x_git_changed_staging_D+" -$x_git_changed_staging_D"}\
${x_git_changed_staging_U+" x$x_git_changed_staging_U"}"
    XTW_vcml_right_label_working="${x_git_changed_working_untracked+" ?$x_git_changed_working_untracked"}\
${x_git_changed_working_M+" ~$x_git_changed_working_M"}${x_git_changed_working_D+" -$x_git_changed_working_D"}\
${x_git_changed_working_U+" x$x_git_changed_working_U"}"
    theme:style_ "%${XTW_vcml_style_right_label_staging}%"    "${x_git_changed_symbol}$XTW_vcml_right_label_staging";  x_git_changed_staging=" $x_"
    theme:style_ "%${XTW_vcml_style_right_label_working}%"    "${x_git_changed_symbol}$XTW_vcml_right_label_working";  x_git_changed_working=" $x_"
    [ "$XTW_vcml_right_label_staging" != "" ] || x_git_changed_staging=;
    [ "$XTW_vcml_right_label_working" != "" ] || x_git_changed_working=;
}

XTW_vcml_left_label_clean=""
XTW_vcml_left_label_dirty=""

XTW_vcml_right_label_clean=""
XTW_vcml_right_label_dirty=""

___x_cmd_theme_linecount_ps1=1
