import { createGetKcClsx } from "keycloakify/lib/getKcClsx";
import type { ClassKey } from "keycloakify/login/TemplateProps";

export const { getKcClsx } = createGetKcClsx<ClassKey>({
    defaultClasses: {
        kcHtmlClass: "login-pf",
        kcBodyClass: undefined,
        kcHeaderWrapperClass: undefined,
        kcLocaleWrapperClass: undefined,
        kcInfoAreaWrapperClass: undefined,
        kcFormButtonsWrapperClass: undefined,
        kcFormOptionsWrapperClass: undefined,
        kcLocaleDropDownClass: undefined,
        kcLocaleListItemClass: undefined,
        kcContentWrapperClass: undefined,
        kcCheckboxInputClass: undefined,

        "kcLogoIdP-facebook": "fa fa-facebook",
        kcAuthenticatorOTPClass: "fa fa-mobile list-view-pf-icon-lg",
        "kcLogoIdP-bitbucket": "fa fa-bitbucket",
        kcAuthenticatorWebAuthnClass: "fa fa-key list-view-pf-icon-lg",
        kcWebAuthnDefaultIcon: "pficon pficon-key",
        "kcLogoIdP-stackoverflow": "fa fa-stack-overflow",
        kcSelectAuthListItemClass: "pf-l-stack__item select-auth-box-parent pf-l-split",
        "kcLogoIdP-microsoft": "fa fa-windows",
        kcLoginOTPListItemHeaderClass: "pf-c-tile__header",
        kcLocaleItemClass: "pf-c-dropdown__menu-item",
        kcLoginOTPListItemIconBodyClass: "pf-c-tile__icon",
        kcInputHelperTextAfterClass:
            "pf-c-form__helper-text pf-c-form__helper-text-after",
        kcFormClass: "form-horizontal",
        kcSelectAuthListClass: "pf-l-stack select-auth-container",
        kcInputClassRadioCheckboxLabelDisabled: "pf-m-disabled",
        kcSelectAuthListItemIconClass: "pf-l-split__item select-auth-box-icon",
        kcRecoveryCodesWarning: "kc-recovery-codes-warning",
        kcFormSettingClass: "login-pf-settings",
        kcWebAuthnBLE: "fa fa-bluetooth-b",
        kcInputWrapperClass: "col-xs-12 col-sm-12 col-md-12 col-lg-12",
        kcSelectAuthListItemArrowIconClass: "fa fa-angle-right fa-lg",
        kcFeedbackAreaClass: "col-md-12",
        kcFormPasswordVisibilityButtonClass: "pf-c-button pf-m-control",
        "kcLogoIdP-google": "fa fa-google",
        kcCheckLabelClass: "pf-c-check__label",
        kcSelectAuthListItemFillClass: "pf-l-split__item pf-m-fill",
        kcAuthenticatorDefaultClass: "fa fa-list list-view-pf-icon-lg",
        "kcLogoIdP-gitlab": "fa fa-gitlab",
        kcFormAreaClass:
            "col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2",
        kcFormButtonsClass: "col-xs-12 col-sm-12 col-md-12 col-lg-12",
        kcInputClassRadioLabel: "pf-c-radio__label",
        kcAuthenticatorWebAuthnPasswordlessClass: "fa fa-key list-view-pf-icon-lg",
        kcSelectAuthListItemHeadingClass:
            "pf-l-stack__item select-auth-box-headline pf-c-title",
        kcInfoAreaClass: "col-xs-12 col-sm-4 col-md-4 col-lg-5 details",
        kcLogoLink: "http://www.keycloak.org",
        kcContainerClass: "container-fluid",
        kcSelectAuthListItemTitle: "select-auth-box-paragraph",
        kcLoginOTPListItemTitleClass: "pf-c-tile__title",
        "kcLogoIdP-openshift-v4": "pf-icon pf-icon-openshift",
        kcWebAuthnUnknownIcon: "pficon pficon-key unknown-transport-class",
        kcFormSocialAccountNameClass: "kc-social-provider-name",
        "kcLogoIdP-openshift-v3": "pf-icon pf-icon-openshift",
        kcLoginOTPListInputClass: "pf-c-tile__input",
        kcWebAuthnUSB: "fa fa-usb",
        kcInputClassRadio: "pf-c-radio",
        kcWebAuthnKeyIcon: "pficon pficon-key",
        kcFeedbackInfoIcon: "fa fa-fw fa-info-circle",
        kcCommonLogoIdP: "kc-social-provider-logo kc-social-gray",
        kcRecoveryCodesActions: "kc-recovery-codes-actions",
        kcFormGroupHeader: "pf-c-form__group",
        kcFormSocialAccountSectionClass: "kc-social-section kc-social-gray",
        "kcLogoIdP-instagram": "fa fa-instagram",
        kcAlertClass: "pf-c-alert pf-m-inline",
        kcHeaderClass: "login-pf-page-header",
        kcLabelWrapperClass: "col-xs-12 col-sm-12 col-md-12 col-lg-12",
        kcFormPasswordVisibilityIconShow: "fa fa-eye",
        kcFormSocialAccountLinkClass: "pf-c-login__main-footer-links-item-link",
        kcLocaleMainClass: "pf-c-dropdown",
        kcInputGroup: "pf-c-input-group",
        kcTextareaClass: "form-control",
        kcButtonBlockClass: "pf-m-block",
        kcButtonClass: "pf-c-button",
        kcWebAuthnNFC: "fa fa-wifi",
        kcLocaleClass: "col-xs-12 col-sm-1",
        kcInputClassCheckboxInput: "pf-c-check__input",
        kcFeedbackErrorIcon: "fa fa-fw fa-exclamation-circle",
        kcInputLargeClass: "input-lg",
        kcInputErrorMessageClass:
            "pf-c-form__helper-text pf-m-error required kc-feedback-text",
        kcRecoveryCodesList: "kc-recovery-codes-list",
        kcFormSocialAccountListClass: "pf-c-login__main-footer-links kc-social-links",
        kcAlertTitleClass: "pf-c-alert__title kc-feedback-text",
        kcAuthenticatorPasswordClass: "fa fa-unlock list-view-pf-icon-lg",
        kcCheckInputClass: "pf-c-check__input",
        "kcLogoIdP-linkedin": "fa fa-linkedin",
        "kcLogoIdP-twitter": "fa fa-twitter",
        kcFeedbackWarningIcon: "fa fa-fw fa-exclamation-triangle",
        kcResetFlowIcon: "pficon pficon-arrow fa",
        kcSelectAuthListItemIconPropertyClass: "fa-2x select-auth-box-icon-properties",
        kcFeedbackSuccessIcon: "fa fa-fw fa-check-circle",
        kcLoginOTPListClass: "pf-c-tile",
        kcSrOnlyClass: "sr-only",
        kcFormSocialAccountListGridClass: "pf-l-grid kc-social-grid",
        kcButtonDefaultClass: "btn-default",
        kcFormGroupErrorClass: "has-error",
        kcSelectAuthListItemDescriptionClass: "pf-l-stack__item select-auth-box-desc",
        kcSelectAuthListItemBodyClass: "pf-l-split__item pf-l-stack",
        kcWebAuthnInternal: "pficon pficon-key",
        kcSelectAuthListItemArrowClass: "pf-l-split__item select-auth-box-arrow",
        kcCheckClass: "pf-c-check",
        kcContentClass:
            "col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3 col-lg-6 col-lg-offset-3",
        kcLogoClass: "login-pf-brand",
        kcLoginOTPListItemIconClass: "fa fa-mobile",
        kcLoginClass: "login-pf-page",
        kcSignUpClass: "login-pf-signup",
        kcButtonLargeClass: "btn-lg",
        kcFormCardClass: "card-pf",
        kcLocaleListClass: "pf-c-dropdown__menu pf-m-align-right",
        kcInputClass: "pf-c-form-control",
        kcFormGroupClass: "form-group",
        "kcLogoIdP-paypal": "fa fa-paypal",
        kcInputClassCheckbox: "pf-c-check",
        kcRecoveryCodesConfirmation: "kc-recovery-codes-confirmation",
        kcFormPasswordVisibilityIconHide: "fa fa-eye-slash",
        kcInputClassRadioInput: "pf-c-radio__input",
        kcFormSocialAccountListButtonClass:
            "pf-c-button pf-m-control pf-m-block kc-social-item kc-social-gray",
        kcInputClassCheckboxLabel: "pf-c-check__label",
        kcFormOptionsClass: "col-xs-12 col-sm-12 col-md-12 col-lg-12",
        kcFormHeaderClass: "login-pf-header",
        kcFormSocialAccountGridItem: "pf-l-grid__item",
        kcButtonPrimaryClass: "pf-m-primary",
        kcInputHelperTextBeforeClass:
            "pf-c-form__helper-text pf-c-form__helper-text-before",
        "kcLogoIdP-github": "fa fa-github",
        kcLabelClass: "pf-c-form__label pf-c-form__label-text"
    }
});

export type { ClassKey };

export type KcClsx = ReturnType<typeof getKcClsx>["kcClsx"];
