namespace BootStrapComponents
{
    public static class BT
    {
        public static string RoundedBorder => "rounded";
        public static string PullRight => "pull-right";
        public static string PullLeft => "pull-left";
        public static string PullCenter => "pull-center";
        public static string TextAlign(TextAlignment textAlignment) => "text-" + textAlignment;

        public static string CenterBlock => "mx-auto d-block";

        public static string Button(ColorType colorType, bool outline = false) => "btn btn" + (outline ? "-outline" : "") + "-" + colorType;
        public static string Background(ColorType colorType) => "bg-" + colorType;
        public static string TextColor(ColorType colorType) => "text-" + colorType;

        #region Position
        public static string Position(Postion p) => p.ToString().ToLower().Replace("_", "-");
        #endregion
        #region Flex
        public static string FlexDisplay => "d-flex";
        public static string FlexJustifyAround => "d-flex justify-content-around";
        public static string FlexJustifyBetween => "d-flex justify-content-between";

        #endregion

        #region Shadows
        public static string RegularShadow => "shadow";
        public static string SmallShadow => "shadow-sm";
        public static string LargeShadow => "shadow-lg";
        #endregion

        #region Opacity
        public static string Opacity75 => "opacity-75";
        public static string Opacity50 => "opacity-50";

        public static string Opacity25 => "opacity-25";

        #endregion

        #region Containers
        public static string FormFloating => "form-floating";
        public static string Row => "row";
        public static string Col(int i) => $"col-{i}";
        public static string DisplayBlock => "d-block";

        #endregion

        #region Margins
        public static string Margin(int m) => $"m-{m}";
        public static string MarginLeft(int m) => $"ml-{m}";

        public static string MarginRight(int m) => $"mr-{m}";

        public static string MarginBottom(int m) => $"mb-{m}";
        public static string MarginTop(int m) => $"mt-{m}";

        public static string Padding(int m) => $"p-{m}";
        public static string PaddingLeft(int m) => $"pl-{m}";

        public static string PaddingRight(int m) => $"pr-{m}";

        public static string PaddingBottom(int m) => $"pb-{m}";
        public static string PaddingTop(int m) => $"pt-{m}";
        #endregion

        public static class Icons
        {
        public static string Copy => "bi bi-clipboard-fill";

        }

        #region Form controls
        public static string Input => "form-control";
        #endregion
    }
    public static class Styles
    {
        public static string VerticalSelfAlign(TextAlignment alignment) => $"align-self:{alignment};";
        public static string ToRightGradientBackColor(string color) => $"background-image:linear-gradient(to right, {color}, transparent)";
        public static string ToLeftGradientBackColor(string color) => $"background-image:linear-gradient(to left, {color}, transparent)";

    }
    public enum ColorType
    {
        primary,
        secondary,
        success,
        danger,
        warning,
        info,
        light,
        dark,
        white
    }
    public enum Postion
    {
        fixed_top,
        sticky_top,
        fixed_bottom,
        sticky_bottom,
        Position_Static,
        Position_relative,
        Position_absolute,
        Position_Fixed,
        Position_sticky
    }

}
