#include "ColorPalette.h"

const std::unordered_map<Theme::Ref::Color, std::string> ColorPalette::mPaletteColors = {
    {Theme::Ref::Color::Primary_10, "#21005E"},
    {Theme::Ref::Color::Primary_20, "#371E73"},
    {Theme::Ref::Color::Primary_30, "#4F378B"},
    {Theme::Ref::Color::Primary_40, "#6750A4"},
    {Theme::Ref::Color::Primary_80, "#D0BCFF"},
    {Theme::Ref::Color::Primary_90, "#EADDFF"},
    {Theme::Ref::Color::Primary_100, "#FFFFFF"},
    {Theme::Ref::Color::Secondary_10, "#1E192B"},
    {Theme::Ref::Color::Secondary_20, "#332D41"},
    {Theme::Ref::Color::Secondary_30, "#4A4458"},
    {Theme::Ref::Color::Secondary_40, "#625B71"},
    {Theme::Ref::Color::Secondary_80, "#CCC2DC"},
    {Theme::Ref::Color::Secondary_90, "#E8DEF8"},
    {Theme::Ref::Color::Secondary_100, "#FFFFFF"},
    {Theme::Ref::Color::Tertiary_10, "#370B1E"},
    {Theme::Ref::Color::Tertiary_20, "#492532"},
    {Theme::Ref::Color::Tertiary_30, "#633B48"},
    {Theme::Ref::Color::Tertiary_40, "#7D5260"},
    {Theme::Ref::Color::Tertiary_80, "#EFB8C8"},
    {Theme::Ref::Color::Tertiary_90, "#FFD8E4"},
    {Theme::Ref::Color::Tertiary_100, "#FFFFFF"},
    {Theme::Ref::Color::Neutral_0, "#000000"},
    {Theme::Ref::Color::Neutral_10, "#1C1B1F"},
    {Theme::Ref::Color::Neutral_20, "#313033"},
    {Theme::Ref::Color::Neutral_90, "#E6E1E5"},
    {Theme::Ref::Color::Neutral_95, "#F4EFF4"},
    {Theme::Ref::Color::Neutral_99, "#FFFBFE"},
    {Theme::Ref::Color::Neutral_Variant_30, "#49454F"},
    {Theme::Ref::Color::Neutral_Variant_50, "#79747E"},
    {Theme::Ref::Color::Neutral_Variant_60, "#938F99"},
    {Theme::Ref::Color::Neutral_Variant_80, "#CAC4D0"},
    {Theme::Ref::Color::Neutral_Variant_90, "#E7E0EC"},
    {Theme::Ref::Color::Error_10, "#410E0B"},
    {Theme::Ref::Color::Error_20, "#601410"},
    {Theme::Ref::Color::Error_30, "#8C1D18"},
    {Theme::Ref::Color::Error_40, "#B3261E"},
    {Theme::Ref::Color::Error_80, "#F2B8B5"},
    {Theme::Ref::Color::Error_90, "#F9DEDC"},
    {Theme::Ref::Color::Error_100, "#FFFFFF"},
};

Color ColorPalette::getColor(Theme::Ref::Color token)
{
    if (auto iter = mPaletteColors.find(token); iter != mPaletteColors.end())
    {
        return Color(iter->second);
    }
    else
    {
        return Color();
    }
}