{"version":3,"sources":["../src/Colors/adjust.ts","../src/Colors/common.ts","../src/Colors/generators/analogous.ts","../src/Colors/generators/material.ts","../src/Colors/generators/complementary.ts","../src/Colors/generators/split-complementary.ts","../src/Colors/generators/tetradic.ts","../src/Colors/generators/triadic.ts","../src/Colors/index.ts","../src/Theming/Adapters/BrowserPlatformAdapter.ts","../src/Theming/Adapters/NodePlatformAdapter.ts","../src/Theming/Adapters/PlatformAdapterFactory.ts","../src/Theming/ThemeFactory.ts","../src/Theming/Tokens/CosmopolitanTokens.ts","../src/Theming/CosmopolitanTheme.ts","../src/Theming/Tokens/JoyTokens.ts","../src/Theming/JoyTheme.ts","../src/Theming/Tokens/MemphisTokens.ts","../src/Theming/MemphisTheme.ts","../src/Theming/Strategies/surface/abstracts/HslThemeGeneratorStrategy.ts","../src/Theming/Strategies/surface/abstracts/LchThemeGeneratorStrategy.ts","../src/Theming/Strategies/surface/CosmopolitanThemeGeneratorStrategy.ts","../src/Theming/Strategies/surface/JoyThemeGeneratorStrategy.ts","../src/Theming/Strategies/surface/MemphisThemeGeneratorStrategy.ts","../src/Theming/ThemeGenerator.ts","../src/Theming/ThemeObserver.ts","../src/Theming/Utils/CssAspectRatio.ts","../src/Theming/Utils/CssColor.ts","../src/Theming/Utils/CssLength.ts","../src/Theming/Utils/CssShadow.ts","../src/Theming/Utils/CssTime.ts","../src/Theming/Utils/ThemePalette.ts","../src/Theming/Utils/ITheme.ts","../src/Theming/Utils/ThemeMode.ts","../src/Theming/Utils/ThemeScheme.ts"],"names":["adjust","color","amount","Math","min","max","darken","hex","factor","r","g","b","chroma","rgb","map","x","lighten","hexToHSL","parseInt","slice","h","s","l","d","hslToHex","hue2rgb","p","q","t","round","toString","padStart","adjustHue","hsl","adjustment","generateAnalogousPalette","baseHex","baseHSL","adjustedHSL","palette","steps","forEach","step","generateAnalogousColor","generateMaterialPalette","hexColor","baseLight","baseDark","amounts","i","base","mix","generateComplementaryPalette","complementaryH","generateComplementaryColor","generateSplitComplementaryColors","splitH1","splitH2","generateSplitComplementaryColor1","splitH","generateSplitComplementaryColor2","generateTetradicColors","generateTetradicColor1","generateTetradicColor3","generateTriadicPalette","triadicHSL","generateTriadicColor","Colors","toDarken","toLighten","toMaterialPalette","toComplementaryPalette","toComplementaryColor","toAnalogousPalette","toAnalogousColor","toTriadicPalette","toTriadicColor","toSplitComplementaryColors","toSplitComplementaryColor1","toSplitComplementaryColor2","toTetradicColors","toTetradicColor1","toTetradicColor3","BrowserPlatformAdapter","matchMedia","query","window","matches","setDocumentAttribute","name","value","document","documentElement","setAttribute","getDocumentAttribute","getAttribute","observeDocumentAttributes","attributes","callback","observer","MutationObserver","mutations","mutation","type","attributeName","newValue","observe","attributeFilter","disconnect","NodePlatformAdapter","_query","_name","_value","_attributes","_callback","PlatformAdapterFactory","create","ThemeFactory","init","scheme","fontFamily","typography","layout","elevation","merge","theme","length","NAME","FONT_FAMILY","LAYOUT_RADIUS","LAYOUT_SPACE","LAYOUT_THICKNESS","SCHEME_LIGHT_SURFACE","SCHEME_LIGHT_CONTRAST","SCHEME_LIGHT_BACKGROUND","SCHEME_LIGHT_FOREGROUND","SCHEME_LIGHT_HIGHLIGHT","SCHEME_LIGHT_MIDDLELIGHT","SCHEME_LIGHT_LOWLIGHT","SCHEME_LIGHT_TRANSPARENT","SCHEME_LIGHT_SEMI_TRANSPARENT","SCHEME_LIGHT_DISABLED","SCHEME_LIGHT_SELECTION","SCHEME_DARK_SURFACE","SCHEME_DARK_CONTRAST","SCHEME_DARK_BACKGROUND","SCHEME_DARK_FOREGROUND","SCHEME_DARK_HIGHLIGHT","SCHEME_DARK_MIDDLELIGHT","SCHEME_DARK_LOWLIGHT","SCHEME_DARK_TRANSPARENT","SCHEME_DARK_SEMI_TRANSPARENT","SCHEME_DARK_DISABLED","SCHEME_DARK_SELECTION","COLOR_LIGHT_PRIMARY_0","COLOR_LIGHT_PRIMARY_50","COLOR_LIGHT_PRIMARY_100","COLOR_LIGHT_PRIMARY_200","COLOR_LIGHT_PRIMARY_300","COLOR_LIGHT_PRIMARY_400","COLOR_LIGHT_PRIMARY_500","COLOR_LIGHT_PRIMARY_600","COLOR_LIGHT_PRIMARY_700","COLOR_LIGHT_PRIMARY_800","COLOR_LIGHT_PRIMARY_900","COLOR_LIGHT_SECONDARY_0","COLOR_LIGHT_SECONDARY_50","COLOR_LIGHT_SECONDARY_100","COLOR_LIGHT_SECONDARY_200","COLOR_LIGHT_SECONDARY_300","COLOR_LIGHT_SECONDARY_400","COLOR_LIGHT_SECONDARY_500","COLOR_LIGHT_SECONDARY_600","COLOR_LIGHT_SECONDARY_700","COLOR_LIGHT_SECONDARY_800","COLOR_LIGHT_SECONDARY_900","COLOR_LIGHT_TERTIARY_0","COLOR_LIGHT_TERTIARY_50","COLOR_LIGHT_TERTIARY_100","COLOR_LIGHT_TERTIARY_200","COLOR_LIGHT_TERTIARY_300","COLOR_LIGHT_TERTIARY_400","COLOR_LIGHT_TERTIARY_500","COLOR_LIGHT_TERTIARY_600","COLOR_LIGHT_TERTIARY_700","COLOR_LIGHT_TERTIARY_800","COLOR_LIGHT_TERTIARY_900","COLOR_LIGHT_INFO_0","COLOR_LIGHT_INFO_50","COLOR_LIGHT_INFO_100","COLOR_LIGHT_INFO_200","COLOR_LIGHT_INFO_300","COLOR_LIGHT_INFO_400","COLOR_LIGHT_INFO_500","COLOR_LIGHT_INFO_600","COLOR_LIGHT_INFO_700","COLOR_LIGHT_INFO_800","COLOR_LIGHT_INFO_900","COLOR_LIGHT_WARNING_0","COLOR_LIGHT_WARNING_50","COLOR_LIGHT_WARNING_100","COLOR_LIGHT_WARNING_200","COLOR_LIGHT_WARNING_300","COLOR_LIGHT_WARNING_400","COLOR_LIGHT_WARNING_500","COLOR_LIGHT_WARNING_600","COLOR_LIGHT_WARNING_700","COLOR_LIGHT_WARNING_800","COLOR_LIGHT_WARNING_900","COLOR_LIGHT_DANGER_0","COLOR_LIGHT_DANGER_50","COLOR_LIGHT_DANGER_100","COLOR_LIGHT_DANGER_200","COLOR_LIGHT_DANGER_300","COLOR_LIGHT_DANGER_400","COLOR_LIGHT_DANGER_500","COLOR_LIGHT_DANGER_600","COLOR_LIGHT_DANGER_700","COLOR_LIGHT_DANGER_800","COLOR_LIGHT_DANGER_900","COLOR_LIGHT_SUCCESS_0","COLOR_LIGHT_SUCCESS_50","COLOR_LIGHT_SUCCESS_100","COLOR_LIGHT_SUCCESS_200","COLOR_LIGHT_SUCCESS_300","COLOR_LIGHT_SUCCESS_400","COLOR_LIGHT_SUCCESS_500","COLOR_LIGHT_SUCCESS_600","COLOR_LIGHT_SUCCESS_700","COLOR_LIGHT_SUCCESS_800","COLOR_LIGHT_SUCCESS_900","COLOR_LIGHT_HIGHLIGHT_0","COLOR_LIGHT_HIGHLIGHT_50","COLOR_LIGHT_HIGHLIGHT_100","COLOR_LIGHT_HIGHLIGHT_200","COLOR_LIGHT_HIGHLIGHT_300","COLOR_LIGHT_HIGHLIGHT_400","COLOR_LIGHT_HIGHLIGHT_500","COLOR_LIGHT_HIGHLIGHT_600","COLOR_LIGHT_HIGHLIGHT_700","COLOR_LIGHT_HIGHLIGHT_800","COLOR_LIGHT_HIGHLIGHT_900","COLOR_LIGHT_NEUTRAL_0","COLOR_LIGHT_NEUTRAL_50","COLOR_LIGHT_NEUTRAL_100","COLOR_LIGHT_NEUTRAL_200","COLOR_LIGHT_NEUTRAL_300","COLOR_LIGHT_NEUTRAL_400","COLOR_LIGHT_NEUTRAL_500","COLOR_LIGHT_NEUTRAL_600","COLOR_LIGHT_NEUTRAL_700","COLOR_LIGHT_NEUTRAL_800","COLOR_LIGHT_NEUTRAL_900","COLOR_DARK_PRIMARY_0","COLOR_DARK_PRIMARY_50","COLOR_DARK_PRIMARY_100","COLOR_DARK_PRIMARY_200","COLOR_DARK_PRIMARY_300","COLOR_DARK_PRIMARY_400","COLOR_DARK_PRIMARY_500","COLOR_DARK_PRIMARY_600","COLOR_DARK_PRIMARY_700","COLOR_DARK_PRIMARY_800","COLOR_DARK_PRIMARY_900","COLOR_DARK_SECONDARY_0","COLOR_DARK_SECONDARY_50","COLOR_DARK_SECONDARY_100","COLOR_DARK_SECONDARY_200","COLOR_DARK_SECONDARY_300","COLOR_DARK_SECONDARY_400","COLOR_DARK_SECONDARY_500","COLOR_DARK_SECONDARY_600","COLOR_DARK_SECONDARY_700","COLOR_DARK_SECONDARY_800","COLOR_DARK_SECONDARY_900","COLOR_DARK_TERTIARY_0","COLOR_DARK_TERTIARY_50","COLOR_DARK_TERTIARY_100","COLOR_DARK_TERTIARY_200","COLOR_DARK_TERTIARY_300","COLOR_DARK_TERTIARY_400","COLOR_DARK_TERTIARY_500","COLOR_DARK_TERTIARY_600","COLOR_DARK_TERTIARY_700","COLOR_DARK_TERTIARY_800","COLOR_DARK_TERTIARY_900","COLOR_DARK_INFO_0","COLOR_DARK_INFO_50","COLOR_DARK_INFO_100","COLOR_DARK_INFO_200","COLOR_DARK_INFO_300","COLOR_DARK_INFO_400","COLOR_DARK_INFO_500","COLOR_DARK_INFO_600","COLOR_DARK_INFO_700","COLOR_DARK_INFO_800","COLOR_DARK_INFO_900","COLOR_DARK_WARNING_0","COLOR_DARK_WARNING_50","COLOR_DARK_WARNING_100","COLOR_DARK_WARNING_200","COLOR_DARK_WARNING_300","COLOR_DARK_WARNING_400","COLOR_DARK_WARNING_500","COLOR_DARK_WARNING_600","COLOR_DARK_WARNING_700","COLOR_DARK_WARNING_800","COLOR_DARK_WARNING_900","COLOR_DARK_DANGER_0","COLOR_DARK_DANGER_50","COLOR_DARK_DANGER_100","COLOR_DARK_DANGER_200","COLOR_DARK_DANGER_300","COLOR_DARK_DANGER_400","COLOR_DARK_DANGER_500","COLOR_DARK_DANGER_600","COLOR_DARK_DANGER_700","COLOR_DARK_DANGER_800","COLOR_DARK_DANGER_900","COLOR_DARK_SUCCESS_0","COLOR_DARK_SUCCESS_50","COLOR_DARK_SUCCESS_100","COLOR_DARK_SUCCESS_200","COLOR_DARK_SUCCESS_300","COLOR_DARK_SUCCESS_400","COLOR_DARK_SUCCESS_500","COLOR_DARK_SUCCESS_600","COLOR_DARK_SUCCESS_700","COLOR_DARK_SUCCESS_800","COLOR_DARK_SUCCESS_900","COLOR_DARK_HIGHLIGHT_0","COLOR_DARK_HIGHLIGHT_50","COLOR_DARK_HIGHLIGHT_100","COLOR_DARK_HIGHLIGHT_200","COLOR_DARK_HIGHLIGHT_300","COLOR_DARK_HIGHLIGHT_400","COLOR_DARK_HIGHLIGHT_500","COLOR_DARK_HIGHLIGHT_600","COLOR_DARK_HIGHLIGHT_700","COLOR_DARK_HIGHLIGHT_800","COLOR_DARK_HIGHLIGHT_900","COLOR_DARK_NEUTRAL_0","COLOR_DARK_NEUTRAL_50","COLOR_DARK_NEUTRAL_100","COLOR_DARK_NEUTRAL_200","COLOR_DARK_NEUTRAL_300","COLOR_DARK_NEUTRAL_400","COLOR_DARK_NEUTRAL_500","COLOR_DARK_NEUTRAL_600","COLOR_DARK_NEUTRAL_700","COLOR_DARK_NEUTRAL_800","COLOR_DARK_NEUTRAL_900","TYPOGRAPHY_HEADLINE1_FONT_FAMILY","TYPOGRAPHY_HEADLINE1_FONT_SIZE","TYPOGRAPHY_HEADLINE1_LINE_HEIGHT","TYPOGRAPHY_HEADLINE1_FONT_WEIGHT","TYPOGRAPHY_HEADLINE1_LETTER_SPACING","TYPOGRAPHY_HEADLINE1_TEXT_DECORATION","TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM","TYPOGRAPHY_HEADLINE2_FONT_FAMILY","TYPOGRAPHY_HEADLINE2_FONT_SIZE","TYPOGRAPHY_HEADLINE2_LINE_HEIGHT","TYPOGRAPHY_HEADLINE2_FONT_WEIGHT","TYPOGRAPHY_HEADLINE2_LETTER_SPACING","TYPOGRAPHY_HEADLINE2_TEXT_DECORATION","TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM","TYPOGRAPHY_HEADLINE3_FONT_FAMILY","TYPOGRAPHY_HEADLINE3_FONT_SIZE","TYPOGRAPHY_HEADLINE3_LINE_HEIGHT","TYPOGRAPHY_HEADLINE3_FONT_WEIGHT","TYPOGRAPHY_HEADLINE3_LETTER_SPACING","TYPOGRAPHY_HEADLINE3_TEXT_DECORATION","TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM","TYPOGRAPHY_HEADLINE4_FONT_FAMILY","TYPOGRAPHY_HEADLINE4_FONT_SIZE","TYPOGRAPHY_HEADLINE4_LINE_HEIGHT","TYPOGRAPHY_HEADLINE4_FONT_WEIGHT","TYPOGRAPHY_HEADLINE4_LETTER_SPACING","TYPOGRAPHY_HEADLINE4_TEXT_DECORATION","TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM","TYPOGRAPHY_HEADLINE5_FONT_FAMILY","TYPOGRAPHY_HEADLINE5_FONT_SIZE","TYPOGRAPHY_HEADLINE5_LINE_HEIGHT","TYPOGRAPHY_HEADLINE5_FONT_WEIGHT","TYPOGRAPHY_HEADLINE5_LETTER_SPACING","TYPOGRAPHY_HEADLINE5_TEXT_DECORATION","TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM","TYPOGRAPHY_HEADLINE6_FONT_FAMILY","TYPOGRAPHY_HEADLINE6_FONT_SIZE","TYPOGRAPHY_HEADLINE6_LINE_HEIGHT","TYPOGRAPHY_HEADLINE6_FONT_WEIGHT","TYPOGRAPHY_HEADLINE6_LETTER_SPACING","TYPOGRAPHY_HEADLINE6_TEXT_DECORATION","TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM","TYPOGRAPHY_BODY1_FONT_FAMILY","TYPOGRAPHY_BODY1_FONT_SIZE","TYPOGRAPHY_BODY1_LINE_HEIGHT","TYPOGRAPHY_BODY1_FONT_WEIGHT","TYPOGRAPHY_BODY1_LETTER_SPACING","TYPOGRAPHY_BODY1_TEXT_DECORATION","TYPOGRAPHY_BODY1_TEXT_TRANSFORM","TYPOGRAPHY_BODY2_FONT_FAMILY","TYPOGRAPHY_BODY2_FONT_SIZE","TYPOGRAPHY_BODY2_LINE_HEIGHT","TYPOGRAPHY_BODY2_FONT_WEIGHT","TYPOGRAPHY_BODY2_LETTER_SPACING","TYPOGRAPHY_BODY2_TEXT_DECORATION","TYPOGRAPHY_BODY2_TEXT_TRANSFORM","TYPOGRAPHY_BUTTON_FONT_FAMILY","TYPOGRAPHY_BUTTON_FONT_SIZE","TYPOGRAPHY_BUTTON_LINE_HEIGHT","TYPOGRAPHY_BUTTON_FONT_WEIGHT","TYPOGRAPHY_BUTTON_LETTER_SPACING","TYPOGRAPHY_BUTTON_TEXT_DECORATION","TYPOGRAPHY_BUTTON_TEXT_TRANSFORM","ELEVATION_NONE","ELEVATION_LIGHT_LIGHT","ELEVATION_LIGHT_SEMILIGHT","ELEVATION_LIGHT_REGULAR","ELEVATION_LIGHT_SEMIBOLD","ELEVATION_LIGHT_BOLD","ELEVATION_LIGHT_EXTRABOLD","ELEVATION_DARK_LIGHT","ELEVATION_DARK_SEMILIGHT","ELEVATION_DARK_REGULAR","ELEVATION_DARK_SEMIBOLD","ELEVATION_DARK_BOLD","ELEVATION_DARK_EXTRABOLD","TYPOGRAPHY_KEY_HEADLINE1","TYPOGRAPHY_KEY_HEADLINE2","TYPOGRAPHY_KEY_HEADLINE3","TYPOGRAPHY_KEY_HEADLINE4","TYPOGRAPHY_KEY_HEADLINE5","TYPOGRAPHY_KEY_HEADLINE6","TYPOGRAPHY_KEY_BODY1","TYPOGRAPHY_KEY_BODY2","TYPOGRAPHY_KEY_BUTTON","ELEVATION_KEY_LIGHT","ELEVATION_KEY_SEMILIGHT","ELEVATION_KEY_REGULAR","ELEVATION_KEY_SEMIBOLD","ELEVATION_KEY_BOLD","ELEVATION_KEY_EXTRABOLD","VARIANT_PRIMARY","VARIANT_SECONDARY","VARIANT_TERTIARY","CosmopolitanTheme","COSMOPOLITAN_THEME","light","surface","contrast","background","foreground","highlight","middlelight","lowlight","transparent","semiTransparent","disabled","selection","dark","primary","secondary","tertiary","info","warning","danger","success","neutral","headline1","fontSize","lineHeight","fontWeight","letterSpacing","textDecoration","textTransform","headline2","headline3","headline4","headline5","headline6","body1","body2","button","radius","space","thickness","semilight","regular","semibold","bold","extrabold","none","COSMOPOLITAN_THEME_PALETTES","COSMOPOLITAN_THEME_PALETTE_VARIANTS","COSMOPOLITAN_THEME_SCHEMES","COSMOPOLITAN_THEME_SCHEME_VARIANTS","COSMOPOLITAN_THEME_ELEVATION","COSMOPOLITAN_THEME_ELEVATION_VARIANTS","COSMOPOLITAN_THEME_TYPOGRAPHY","COSMOPOLITAN_THEME_METADATA","palettes","paletteVariants","schemes","schemeVariants","elevationVariants","typographies","TYPOGRAPHY_SUBTITLE1_FONT_FAMILY","TYPOGRAPHY_SUBTITLE1_FONT_SIZE","TYPOGRAPHY_SUBTITLE1_LINE_HEIGHT","TYPOGRAPHY_SUBTITLE1_FONT_WEIGHT","TYPOGRAPHY_SUBTITLE1_LETTER_SPACING","TYPOGRAPHY_SUBTITLE1_TEXT_DECORATION","TYPOGRAPHY_SUBTITLE1_TEXT_TRANSFORM","TYPOGRAPHY_SUBTITLE2_FONT_FAMILY","TYPOGRAPHY_SUBTITLE2_FONT_SIZE","TYPOGRAPHY_SUBTITLE2_LINE_HEIGHT","TYPOGRAPHY_SUBTITLE2_FONT_WEIGHT","TYPOGRAPHY_SUBTITLE2_LETTER_SPACING","TYPOGRAPHY_SUBTITLE2_TEXT_DECORATION","TYPOGRAPHY_SUBTITLE2_TEXT_TRANSFORM","TYPOGRAPHY_SUPPORTING_FONT_FAMILY","TYPOGRAPHY_SUPPORTING_FONT_SIZE","TYPOGRAPHY_SUPPORTING_LINE_HEIGHT","TYPOGRAPHY_SUPPORTING_FONT_WEIGHT","TYPOGRAPHY_SUPPORTING_LETTER_SPACING","TYPOGRAPHY_SUPPORTING_TEXT_DECORATION","TYPOGRAPHY_SUPPORTING_TEXT_TRANSFORM","TYPOGRAPHY_CAPTION_FONT_FAMILY","TYPOGRAPHY_CAPTION_FONT_SIZE","TYPOGRAPHY_CAPTION_LINE_HEIGHT","TYPOGRAPHY_CAPTION_FONT_WEIGHT","TYPOGRAPHY_CAPTION_LETTER_SPACING","TYPOGRAPHY_CAPTION_TEXT_DECORATION","TYPOGRAPHY_CAPTION_TEXT_TRANSFORM","TYPOGRAPHY_OVERLINE_FONT_FAMILY","TYPOGRAPHY_OVERLINE_FONT_SIZE","TYPOGRAPHY_OVERLINE_LINE_HEIGHT","TYPOGRAPHY_OVERLINE_FONT_WEIGHT","TYPOGRAPHY_OVERLINE_LETTER_SPACING","TYPOGRAPHY_OVERLINE_TEXT_DECORATION","TYPOGRAPHY_OVERLINE_TEXT_TRANSFORM","TYPOGRAPHY_KEY_SUBTITLE1","TYPOGRAPHY_KEY_SUBTITLE2","TYPOGRAPHY_KEY_SUPPORTING","TYPOGRAPHY_KEY_CAPTION","TYPOGRAPHY_KEY_OVERLINE","VARIANT_DANGER","VARIANT_WARNING","VARIANT_SUCCESS","VARIANT_INFO","VARIANT_HIGHLIGHT","VARIANT_NEUTRAL","JoyTheme","JOY_THEME","subtitle1","subtitle2","supporting","caption","overline","JOY_THEME_PALETTES","JOY_THEME_PALETTE_VARIANTS","JOY_THEME_SCHEMES","JOY_THEME_SCHEME_VARIANTS","JOY_THEME_ELEVATION","JOY_THEME_ELEVATION_VARIANTS","JOY_THEME_TYPOGRAPHY","JOY_THEME_METADATA","MemphisTheme","MEMPHIS_THEME","MEMPHIS_THEME_PALETTES","MEMPHIS_THEME_PALETTE_VARIANTS","MEMPHIS_THEME_SCHEMES","MEMPHIS_THEME_SCHEME_VARIANTS","MEMPHIS_THEME_ELEVATION","MEMPHIS_THEME_ELEVATION_VARIANTS","MEMPHIS_THEME_TYPOGRAPHY","MEMPHIS_THEME_METADATA","HslThemeGeneratorStrategy","_LIGHTNESS_THRESHOLD","isColorInModeSpectrum","mode","adaptColorToMode","c","invertedL","isNaN","generatePalette","baseColor","idx","lightness","col","generateScheme","alpha","LchThemeGeneratorStrategy","_LUMINANCE_THRESHOLD","luminance","chromaVal","lch","baseChroma","baseLuminance","adjustColor","minLuminance","maxLuminance","abs","result","brighten","resultLuminance","generateForeground","darkened","saturate","targetLuminance","lightened","generateSurface","generateHighlight","generateMiddlelight","generateLowlight","generateDisabled","desaturated","desaturate","CosmopolitanThemeGeneratorStrategy","_CHROMA_REDUCTION_FACTOR","reducedChroma","createCosmopolitanTheme","strategy","JoyThemeGeneratorStrategy","createJoyTheme","MemphisThemeGeneratorStrategy","createMemphisTheme","ThemeGenerator","_strategies","_platformAdapter","platformAdapter","Map","themeName","resolvedMode","resolveMode","getStrategy","isDark","get","Error","ThemeGeneratorServiceLocator","_current","current","isSet","set","isThemeMode","ThemeObserver","_themeChanged","_themeModeChanged","_currentTheme","_currentThemeMode","_unsubscribe","PureEventEmitter","themeChange","emit","themeModeChange","themeMode","themeChanged","themeModeChanged","applyTheme","dispose","undefined","cb","ThemeObserverServiceLocator","CssAspectRatio","isCssAspectRatio","trim","ratioParts","split","Number","CssColor","isCssColor","rgbRegex","rgbaRegex","hexRegex","test","CssLength","isCssLength","lengthRegex","isAuto","isPercentage","percentageRegex","isLength","toNumber","match","exec","parseFloat","defaultUnit","extractUnit","cssLength","lengt","extractValue","pxToRem","pixel","baseSize","sizeInRem","tryParse","num","String","CssShadow","isCssShadow","shadows","every","isCssShadowSingle","shadowRegex","RegExp","CssTime","isCssTime","timeRegex","ThemePalette","THEME_SHADE_NAMES","isThemeShadeName","includes","isThemePalette","Object","keys","key","ITheme","getScheme","getPalette","semanticColor","paletteEntry","getSchemeColor","role","getPaletteColor","shade","getElevationShadow","THEME_MODES","ThemeScheme","ROLES","isRole","isThemeScheme","entries"],"mappings":"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","file":"index.cjs","sourcesContent":["//#region Imports\n\nimport chroma from 'chroma-js';\n\n//#endregion\n\nfunction adjust(color: number, amount: number): number {\n    return Math.min(255, Math.max(0, color + amount));\n}\n\n/**\n * @public\n */\nexport function darken(hex: string, factor: number): string {\n    const [r, g, b] = chroma(hex).rgb()\n        .map(x => adjust(x, -factor));\n    return chroma(r, g, b, 'rgb').hex();\n}\n\n/**\n * @public\n */\nexport function lighten(hex: string, factor: number): string {\n    const [r, g, b] = chroma(hex).rgb()\n        .map(x => adjust(x, factor));\n    return chroma(r, g, b, 'rgb').hex();\n}\n","export function hexToHSL(hex: string): [number, number, number] {\n    // Convert hex to RGB\n    const r = parseInt(hex.slice(1, 3), 16) / 255;\n    const g = parseInt(hex.slice(3, 5), 16) / 255;\n    const b = parseInt(hex.slice(5, 7), 16) / 255;\n\n    const max = Math.max(r, g, b); const min = Math.min(r, g, b);\n    let h: number = 0;\n    let s: number = 0;\n    const l = (max + min) / 2;\n\n    if (max === min) {\n        h = 0;\n        s = 0; // Achromatic\n    } else {\n        const d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch (max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n            default: break;\n        }\n        h /= 6;\n    }\n\n    return [h, s, l];\n}\n\nexport function hexToRGB(hex: string): [number, number, number] {\n    const r = parseInt(hex.slice(1, 3), 16) / 255;\n    const g = parseInt(hex.slice(3, 5), 16) / 255;\n    const b = parseInt(hex.slice(5, 7), 16) / 255;\n\n    return [r, g, b];\n}\n\nexport function hslToHex(h: number, s: number, l: number): string {\n    const hue2rgb = (p: number, q: number, t: number): number => {\n        if (t < 0) {\n            t += 1;\n        }\n        if (t > 1) {\n            t -= 1;\n        }\n        if (t < 1 / 6) {\n            return p + ((q - p) * 6 * t);\n        }\n        if (t < 1 / 2) {\n            return q;\n        }\n        if (t < 2 / 3) {\n            return p + ((q - p) * (2 / 3 - t) * 6);\n        }\n        return p;\n    };\n\n    let r: number = 0;\n    let g: number = 0;\n    let b: number = 0;\n\n    if (s === 0) {\n        r = l;\n        g = l;\n        b = l; // Achromatic\n    } else {\n        const q = l < 0.5 ? l * (1 + s) : l + s - (l * s);\n        const p = (2 * l) - q;\n        r = hue2rgb(p, q, h + (1 / 3));\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - (1 / 3));\n    }\n\n    return `#${Math.round(r * 255).toString(16)\n        .padStart(2, '0')}${Math.round(g * 255).toString(16)\n            .padStart(2, '0')}${Math.round(b * 255).toString(16)\n                .padStart(2, '0')}`;\n}\n\nexport function rgbToHSL(r: number, g: number, b: number): [number, number, number] {\n    const max = Math.max(r, g, b);\n    const min = Math.min(r, g, b);\n    const l = (max + min) / 2;\n\n    let h: number = 0;\n    let s: number = 0;\n\n    if (max === min) {\n        h = 0;\n        s = 0; // Achromatic\n    } else {\n        const d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch (max) {\n            case r: h = ((g - b) / d) + (g < b ? 6 : 0); break;\n            case g: h = ((b - r) / d) + 2; break;\n            case b: h = ((r - g) / d) + 4; break;\n            default: break;\n        }\n\n        h /= 6;\n    }\n\n    return [h, s, l];\n}\n\nexport function adjustHue(hsl: [number, number, number], adjustment: number): [number, number, number] {\n    // Adjusts the hue by a given amount, wrapping around the color wheel if necessary\n    return [(hsl[0] + adjustment + 1) % 1, hsl[1], hsl[2]];\n}\n","// #region Imports\n\nimport { adjustHue, hexToHSL, hslToHex } from '../common';\n\n// #endregion\n\n/**\n * Generate an analogous color palette\n * @param baseHex\n * @param adjustment\n * @returns\n */\nexport function generateAnalogousPalette(baseHex: string, adjustment: number): Record<string, string> {\n    const baseHSL = hexToHSL(baseHex);\n    const adjustedHSL = adjustHue(baseHSL, adjustment);\n    const palette: Record<string, string> = {};\n\n    // Define the steps\n    const steps = [\n        0,\n        50,\n        100,\n        200,\n        300,\n        400,\n        500,\n        600,\n        700,\n        800,\n        900\n    ];\n\n    steps.forEach((step) => {\n        let [h, s, l]: [number, number, number] = adjustedHSL;\n\n        if (step === 0) {\n            l = 1; // White\n        } else {\n            // Gradually decrease lightness for other steps\n            l = 1 - (step / 1000);\n        }\n\n        palette[`${step}`] = hslToHex(h, s, Math.max(0, Math.min(1, l)));\n    });\n\n    return palette;\n}\n\n/**\n * Generate a single analogous color\n * @param baseHex\n * @param adjustment\n * @returns\n */\nexport function generateAnalogousColor(baseHex: string, adjustment: number): string {\n    const baseHSL = hexToHSL(baseHex);\n    const adjustedHSL = adjustHue(baseHSL, adjustment);\n    const [h, s]: [number, number, number] = adjustedHSL;\n    // Use step 500 lightness (0.5) to match palette base\n    return hslToHex(h, s, 0.5);\n}\n","// #region Imports\n\nimport chroma from 'chroma-js';\n\n// #endregion\n\n/**\n * Generates a material color palette based on the given hex color.\n * @param hexColor\n * @returns\n */\nexport function generateMaterialPalette(hexColor: string): Record<string, string> {\n    const baseLight = chroma('#ffffff');\n    const baseDark = chroma('#000000');\n\n    const palette: Record<string, string> = {};\n    const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\n    const amounts = [0, 12, 30, 50, 70, 85, 100, 87, 70, 54, 25];\n\n    steps.forEach((step, i) => {\n        const base = step <= 500 ? baseLight : baseDark;\n        palette[`${step}`] = chroma.mix(base, hexColor, amounts[i] / 100, 'rgb').hex();\n    });\n\n    return palette;\n}\n","// #region Imports\n\nimport chroma from 'chroma-js';\nimport { generateMaterialPalette } from './material';\n\n// #endregion\n\n/**\n * Generates a complementary color palette based on the given base color.\n * @param baseHex\n * @returns\n */\nexport function generateComplementaryPalette(baseHex: string): Record<string, string> {\n    const [h, s, l] = chroma(baseHex).hsl();\n    const complementaryH = (h + 180) % 360;\n    return generateMaterialPalette(chroma.hsl(complementaryH, s, l).hex());\n}\n\n/**\n * Generates a single complementary color based on the given base color.\n * @param baseHex\n * @returns\n */\nexport function generateComplementaryColor(baseHex: string): string {\n    const [h, s, l] = chroma(baseHex).hsl();\n    const complementaryH = (h + 180) % 360;\n    return chroma.hsl(complementaryH, s, l).hex();\n}\n","// #region Imports\n\nimport chroma from 'chroma-js';\n\n// #endregion\n\n/**\n * Generates split-complementary colors based on the given base color.\n * Split-complementary uses two colors adjacent to the complement (150° and 210°).\n *\n * @param baseHex - The base color in hex format.\n * @returns An array of two split-complementary colors.\n * @public\n */\nexport function generateSplitComplementaryColors(baseHex: string): [string, string] {\n    const [h, s, l] = chroma(baseHex).hsl();\n    const splitH1 = (h + 150) % 360;\n    const splitH2 = (h + 210) % 360;\n\n    return [\n        chroma.hsl(splitH1, s, l).hex(),\n        chroma.hsl(splitH2, s, l).hex()\n    ];\n}\n\n/**\n * Generates the first split-complementary color (150° from base).\n *\n * @param baseHex - The base color in hex format.\n * @returns The first split-complementary color.\n * @public\n */\nexport function generateSplitComplementaryColor1(baseHex: string): string {\n    const [h, s, l] = chroma(baseHex).hsl();\n    const splitH = (h + 150) % 360;\n\n    return chroma.hsl(splitH, s, l).hex();\n}\n\n/**\n * Generates the second split-complementary color (210° from base).\n *\n * @param baseHex - The base color in hex format.\n * @returns The second split-complementary color.\n * @public\n */\nexport function generateSplitComplementaryColor2(baseHex: string): string {\n    const [h, s, l] = chroma(baseHex).hsl();\n    const splitH = (h + 210) % 360;\n\n    return chroma.hsl(splitH, s, l).hex();\n}\n","// #region Imports\n\nimport chroma from 'chroma-js';\n\n// #endregion\n\n/**\n * Generates tetradic (square) colors based on the given base color.\n * Tetradic uses four colors evenly spaced around the color wheel (90° apart).\n *\n * @param baseHex - The base color in hex format.\n * @returns An array of three tetradic colors (excluding the base).\n * @public\n */\nexport function generateTetradicColors(baseHex: string): [string, string, string] {\n    const [h, s, l] = chroma(baseHex).hsl();\n\n    return [\n        chroma.hsl((h + 90) % 360, s, l).hex(),\n        chroma.hsl((h + 180) % 360, s, l).hex(),\n        chroma.hsl((h + 270) % 360, s, l).hex()\n    ];\n}\n\n/**\n * Generates the first tetradic color (90° from base).\n *\n * @param baseHex - The base color in hex format.\n * @returns The first tetradic color.\n * @public\n */\nexport function generateTetradicColor1(baseHex: string): string {\n    const [h, s, l] = chroma(baseHex).hsl();\n\n    return chroma.hsl((h + 90) % 360, s, l).hex();\n}\n\n/**\n * Generates the second tetradic color (180° from base - same as complementary).\n *\n * @param baseHex - The base color in hex format.\n * @returns The second tetradic color.\n * @public\n */\nexport function generateTetradicColor2(baseHex: string): string {\n    const [h, s, l] = chroma(baseHex).hsl();\n\n    return chroma.hsl((h + 180) % 360, s, l).hex();\n}\n\n/**\n * Generates the third tetradic color (270° from base).\n *\n * @param baseHex - The base color in hex format.\n * @returns The third tetradic color.\n * @public\n */\nexport function generateTetradicColor3(baseHex: string): string {\n    const [h, s, l] = chroma(baseHex).hsl();\n\n    return chroma.hsl((h + 270) % 360, s, l).hex();\n}\n","// #region Imports\n\nimport { adjustHue, hexToHSL, hslToHex } from '../common';\n\n// #endregion\n\n/**\n * Generate a triadic color palette\n * @param baseHex\n * @param adjustment\n * @returns\n */\nexport function generateTriadicPalette(baseHex: string, adjustment: number): Record<string, string> {\n    const baseHSL = hexToHSL(baseHex);\n    const triadicHSL = adjustHue(baseHSL, adjustment);\n    const palette: Record<string, string> = {};\n\n    // Define the steps\n    const steps = [\n        0,\n        50,\n        100,\n        200,\n        300,\n        400,\n        500,\n        600,\n        700,\n        800,\n        900\n    ];\n\n    steps.forEach((step) => {\n        let [h, s, l]: [number, number, number] = triadicHSL;\n\n        if (step === 0) {\n            l = 1; // White\n        } else {\n            // Gradually decrease lightness for other steps\n            l = 1 - (step / 1000);\n        }\n\n        palette[`${step}`] = hslToHex(h, s, Math.max(0, Math.min(1, l)));\n    });\n\n    return palette;\n}\n\n/**\n * Generate a single triadic color\n * @param baseHex\n * @param adjustment\n * @returns\n */\nexport function generateTriadicColor(baseHex: string, adjustment: number): string {\n    const baseHSL = hexToHSL(baseHex);\n    const triadicHSL = adjustHue(baseHSL, adjustment);\n    const [h, s]: [number, number, number] = triadicHSL;\n    // Use step 500 lightness (0.5) to match palette base\n    return hslToHex(h, s, 0.5);\n}\n","// #region Imports\n\nimport { darken, lighten } from './adjust';\nimport { generateAnalogousColor, generateAnalogousPalette } from './generators/analogous';\nimport { generateComplementaryColor, generateComplementaryPalette } from './generators/complementary';\nimport { generateMaterialPalette } from './generators/material';\nimport { generateSplitComplementaryColor1, generateSplitComplementaryColor2, generateSplitComplementaryColors } from './generators/split-complementary';\nimport { generateTetradicColor1, generateTetradicColor3, generateTetradicColors } from './generators/tetradic';\nimport { generateTriadicColor, generateTriadicPalette } from './generators/triadic';\n\n// #endregion\n\nexport namespace Colors {\n    export const toDarken = darken;\n    export const toLighten = lighten;\n    export const toMaterialPalette = generateMaterialPalette;\n    export const toComplementaryPalette = generateComplementaryPalette;\n    export const toComplementaryColor = generateComplementaryColor;\n    export const toAnalogousPalette = generateAnalogousPalette;\n    export const toAnalogousColor = generateAnalogousColor;\n    export const toTriadicPalette = generateTriadicPalette;\n    export const toTriadicColor = generateTriadicColor;\n    export const toSplitComplementaryColors = generateSplitComplementaryColors;\n    export const toSplitComplementaryColor1 = generateSplitComplementaryColor1;\n    export const toSplitComplementaryColor2 = generateSplitComplementaryColor2;\n    export const toTetradicColors = generateTetradicColors;\n    export const toTetradicColor1 = generateTetradicColor1;\n    export const toTetradicColor3 = generateTetradicColor3;\n}\n","import type { IPlatformAdapter } from './interfaces/IPlatformAdapter';\n\n/**\n * Browser implementation of the platform adapter.\n * Uses native DOM APIs (window, document, MutationObserver).\n *\n * @public\n */\nexport class BrowserPlatformAdapter implements IPlatformAdapter {\n\n    // #region Methods\n\n    public matchMedia(query: string): boolean {\n        return window.matchMedia(query).matches;\n    }\n\n    public setDocumentAttribute(name: string, value: string): void {\n        document.documentElement.setAttribute(name, value);\n    }\n\n    public getDocumentAttribute(name: string): string | null {\n        return document.documentElement.getAttribute(name);\n    }\n\n    public observeDocumentAttributes(\n        attributes: Array<string>,\n        callback: (attributeName: string, newValue: string | null) => void\n    ): () => void {\n        const observer = new MutationObserver((mutations) => {\n            mutations.forEach((mutation) => {\n                if (mutation.type === 'attributes' && mutation.attributeName) {\n                    const newValue = document.documentElement.getAttribute(mutation.attributeName);\n                    callback(mutation.attributeName, newValue);\n                }\n            });\n        });\n\n        observer.observe(document.documentElement, {\n            attributes: true,\n            attributeFilter: attributes\n        });\n\n        // Return unsubscribe function\n        return () => observer.disconnect();\n    }\n\n    // #endregion\n\n}\n","import type { IPlatformAdapter } from './interfaces/IPlatformAdapter';\n\n/**\n * Node.js implementation of the platform adapter.\n * No-op implementation that doesn't crash but does nothing.\n *\n * @public\n */\nexport class NodePlatformAdapter implements IPlatformAdapter {\n\n    // #region Methods\n\n    public matchMedia(_query: string): boolean {\n        // Default to light mode in Node.js\n        return false;\n    }\n\n    public setDocumentAttribute(_name: string, _value: string): void {\n        // No-op in Node.js\n    }\n\n    public getDocumentAttribute(_name: string): string | null {\n        // No attributes available in Node.js\n        return null;\n    }\n\n    public observeDocumentAttributes(\n        _attributes: Array<string>,\n        _callback: (attributeName: string, newValue: string | null) => void\n    ): () => void {\n        // No observation possible in Node.js, return no-op unsubscribe\n        return () => { };\n    }\n\n    // #endregion\n\n}\n","import type { IPlatformAdapter } from './interfaces/IPlatformAdapter';\nimport { BrowserPlatformAdapter } from './BrowserPlatformAdapter';\nimport { NodePlatformAdapter } from './NodePlatformAdapter';\n\n/**\n * Factory that automatically detects the environment and returns the appropriate adapter.\n *\n * @public\n */\nexport class PlatformAdapterFactory {\n\n    // #region Methods\n\n    /**\n     * Creates the appropriate platform adapter based on the current environment.\n     * Automatically detects if running in browser or Node.js.\n     *\n     * @public\n     */\n    public static create(): IPlatformAdapter {\n        // Check if we're in a browser environment\n        if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n            return new BrowserPlatformAdapter();\n        }\n\n        // Fallback to Node.js adapter\n        return new NodePlatformAdapter();\n    }\n\n    // #endregion\n\n}\n","// #region Imports\n\nimport type { IThemeElevation } from './Utils/IThemeElevation';\nimport type { IThemeLayout } from './Utils/IThemeLayout';\nimport type { ITheme } from './Utils/ITheme';\nimport type { ThemeScheme } from './Utils/ThemeScheme';\nimport type { ThemeTypography } from './Utils/ThemeTypography';\nimport type { ThemeMode } from './Utils/ThemeMode';\nimport type { ThemeSemantic } from './Utils/ThemeSemantic';\n\n// #endregion\n\n/**\n * @private\n */\nexport type ThemeName = string;\n\n/**\n * @private\n */\nexport type SemanticColorName = string;\n\n/**\n * @private\n */\nexport interface IThemeInit {\n    name: string;\n    scheme: Readonly<Record<ThemeMode, ThemeScheme>>;\n    palette: Readonly<Record<ThemeMode, ThemeSemantic>>;\n    fontFamily: string;\n    typography: ThemeTypography;\n    layout: IThemeLayout;\n    elevation: Record<string, IThemeElevation>;\n}\n\n/**\n * Factory for creating fully dynamic themes.\n *\n * @private\n */\nexport class ThemeFactory {\n\n    /**\n     * Creates a new theme.\n     *\n     * @public\n     * @static\n     */\n    public static create(init: IThemeInit): ITheme {\n        return {\n            name: init.name,\n            scheme: init.scheme,\n            palette: init.palette,\n            fontFamily: init.fontFamily,\n            typography: init.typography,\n            layout: init.layout,\n            elevation: init.elevation\n        };\n    }\n\n    /**\n     * Merges the given theme with the initial theme.\n     *\n     * @public\n     * @static\n     */\n    public static merge(init: IThemeInit, theme: ITheme): ITheme {\n        return {\n            name: init.name,\n            scheme: {\n                ...theme.scheme,\n                ...init.scheme\n            },\n            palette: {\n                ...theme.palette,\n                ...init.palette\n            },\n            fontFamily: init.fontFamily.length > 0 ? init.fontFamily : theme.fontFamily,\n            typography: {\n                ...theme.typography,\n                ...init.typography\n            },\n            layout: {\n                ...theme.layout,\n                ...init.layout\n            },\n            elevation: {\n                ...theme.elevation,\n                ...init.elevation\n            }\n        };\n    }\n\n}\n","/**\n * ------------------------------------------------------------------------------\n * <auto-generated>\n *     This code was generated by a tool.\n *     Changes to this file may cause incorrect behavior and will be lost if\n *     the code is regenerated.\n * </auto-generated>\n * ------------------------------------------------------------------------------\n */\n\nexport const NAME = \"cosmopolitan\";\nexport const FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const LAYOUT_RADIUS = \"3px\";\nexport const LAYOUT_SPACE = \"8px\";\nexport const LAYOUT_THICKNESS = \"1px\";\nexport const SCHEME_LIGHT_SURFACE = \"#fefefe\";\nexport const SCHEME_LIGHT_CONTRAST = \"#ffffff\";\nexport const SCHEME_LIGHT_BACKGROUND = \"#ffffff\";\nexport const SCHEME_LIGHT_FOREGROUND = \"#000000\";\nexport const SCHEME_LIGHT_HIGHLIGHT = \"#e2e2e2\";\nexport const SCHEME_LIGHT_MIDDLELIGHT = \"#777777\";\nexport const SCHEME_LIGHT_LOWLIGHT = \"#4d4d4d\";\nexport const SCHEME_LIGHT_TRANSPARENT = \"rgba(255, 255, 255, 0)\";\nexport const SCHEME_LIGHT_SEMI_TRANSPARENT = \"rgba(255, 255, 255, 0.67)\";\nexport const SCHEME_LIGHT_DISABLED = \"#b8b5b2\";\nexport const SCHEME_LIGHT_SELECTION = \"#ffaad4\";\nexport const SCHEME_DARK_SURFACE = \"#2e2d2d\";\nexport const SCHEME_DARK_CONTRAST = \"#ffffff\";\nexport const SCHEME_DARK_BACKGROUND = \"#2e2d2d\";\nexport const SCHEME_DARK_FOREGROUND = \"#ffffff\";\nexport const SCHEME_DARK_HIGHLIGHT = \"#333333\";\nexport const SCHEME_DARK_MIDDLELIGHT = \"#666666\";\nexport const SCHEME_DARK_LOWLIGHT = \"#999999\";\nexport const SCHEME_DARK_TRANSPARENT = \"rgba(23, 23, 23, 0)\";\nexport const SCHEME_DARK_SEMI_TRANSPARENT = \"rgba(23, 23, 23, 0.67)\";\nexport const SCHEME_DARK_DISABLED = \"#5c5956\";\nexport const SCHEME_DARK_SELECTION = \"#ff66aa\";\nexport const COLOR_LIGHT_PRIMARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_PRIMARY_50 = \"#fce4ec\";\nexport const COLOR_LIGHT_PRIMARY_100 = \"#f8bcd0\";\nexport const COLOR_LIGHT_PRIMARY_200 = \"#f48fb1\";\nexport const COLOR_LIGHT_PRIMARY_300 = \"#f06292\";\nexport const COLOR_LIGHT_PRIMARY_400 = \"#ec407a\";\nexport const COLOR_LIGHT_PRIMARY_500 = \"#e91e63\";\nexport const COLOR_LIGHT_PRIMARY_600 = \"#cb1a56\";\nexport const COLOR_LIGHT_PRIMARY_700 = \"#a31545\";\nexport const COLOR_LIGHT_PRIMARY_800 = \"#7e1035\";\nexport const COLOR_LIGHT_PRIMARY_900 = \"#3a0819\";\nexport const COLOR_LIGHT_SECONDARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_SECONDARY_50 = \"#e6f6e9\";\nexport const COLOR_LIGHT_SECONDARY_100 = \"#c3e8c9\";\nexport const COLOR_LIGHT_SECONDARY_200 = \"#9bd9a7\";\nexport const COLOR_LIGHT_SECONDARY_300 = \"#70cb83\";\nexport const COLOR_LIGHT_SECONDARY_400 = \"#4dbf68\";\nexport const COLOR_LIGHT_SECONDARY_500 = \"#21b34d\";\nexport const COLOR_LIGHT_SECONDARY_600 = \"#16a444\";\nexport const COLOR_LIGHT_SECONDARY_700 = \"#009238\";\nexport const COLOR_LIGHT_SECONDARY_800 = \"#00812d\";\nexport const COLOR_LIGHT_SECONDARY_900 = \"#006218\";\nexport const COLOR_LIGHT_TERTIARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_TERTIARY_50 = \"#e1f5fc\";\nexport const COLOR_LIGHT_TERTIARY_100 = \"#b4e6f7\";\nexport const COLOR_LIGHT_TERTIARY_200 = \"#84d5f3\";\nexport const COLOR_LIGHT_TERTIARY_300 = \"#56c5ee\";\nexport const COLOR_LIGHT_TERTIARY_400 = \"#35b8eb\";\nexport const COLOR_LIGHT_TERTIARY_500 = \"#19ace9\";\nexport const COLOR_LIGHT_TERTIARY_600 = \"#139edb\";\nexport const COLOR_LIGHT_TERTIARY_700 = \"#098bc7\";\nexport const COLOR_LIGHT_TERTIARY_800 = \"#087ab4\";\nexport const COLOR_LIGHT_TERTIARY_900 = \"#005a92\";\nexport const COLOR_LIGHT_INFO_0 = \"#ffffff\";\nexport const COLOR_LIGHT_INFO_50 = \"#f4faff\";\nexport const COLOR_LIGHT_INFO_100 = \"#ddf1ff\";\nexport const COLOR_LIGHT_INFO_200 = \"#addbff\";\nexport const COLOR_LIGHT_INFO_300 = \"#6fb6ff\";\nexport const COLOR_LIGHT_INFO_400 = \"#3990ff\";\nexport const COLOR_LIGHT_INFO_500 = \"#096bde\";\nexport const COLOR_LIGHT_INFO_600 = \"#054da7\";\nexport const COLOR_LIGHT_INFO_700 = \"#02367d\";\nexport const COLOR_LIGHT_INFO_800 = \"#072859\";\nexport const COLOR_LIGHT_INFO_900 = \"#00153c\";\nexport const COLOR_LIGHT_WARNING_0 = \"#ffffff\";\nexport const COLOR_LIGHT_WARNING_50 = \"#fff8c5\";\nexport const COLOR_LIGHT_WARNING_100 = \"#fae17d\";\nexport const COLOR_LIGHT_WARNING_200 = \"#eac54f\";\nexport const COLOR_LIGHT_WARNING_300 = \"#d4a72c\";\nexport const COLOR_LIGHT_WARNING_400 = \"#bf8700\";\nexport const COLOR_LIGHT_WARNING_500 = \"#9a6700\";\nexport const COLOR_LIGHT_WARNING_600 = \"#7d4e00\";\nexport const COLOR_LIGHT_WARNING_700 = \"#633c01\";\nexport const COLOR_LIGHT_WARNING_800 = \"#4d2d00\";\nexport const COLOR_LIGHT_WARNING_900 = \"#3b2300\";\nexport const COLOR_LIGHT_DANGER_0 = \"#ffffff\";\nexport const COLOR_LIGHT_DANGER_50 = \"#fff8f6\";\nexport const COLOR_LIGHT_DANGER_100 = \"#ffe9e8\";\nexport const COLOR_LIGHT_DANGER_200 = \"#ffc7c5\";\nexport const COLOR_LIGHT_DANGER_300 = \"#ff9192\";\nexport const COLOR_LIGHT_DANGER_400 = \"#fa5255\";\nexport const COLOR_LIGHT_DANGER_500 = \"#d3232f\";\nexport const COLOR_LIGHT_DANGER_600 = \"#a10e25\";\nexport const COLOR_LIGHT_DANGER_700 = \"#77061b\";\nexport const COLOR_LIGHT_DANGER_800 = \"#580013\";\nexport const COLOR_LIGHT_DANGER_900 = \"#39000d\";\nexport const COLOR_LIGHT_SUCCESS_0 = \"#ffffff\";\nexport const COLOR_LIGHT_SUCCESS_50 = \"#f3fef5\";\nexport const COLOR_LIGHT_SUCCESS_100 = \"#d7f5dd\";\nexport const COLOR_LIGHT_SUCCESS_200 = \"#77ec95\";\nexport const COLOR_LIGHT_SUCCESS_300 = \"#4cc76e\";\nexport const COLOR_LIGHT_SUCCESS_400 = \"#2ca24d\";\nexport const COLOR_LIGHT_SUCCESS_500 = \"#1a7d36\";\nexport const COLOR_LIGHT_SUCCESS_600 = \"#0f5d26\";\nexport const COLOR_LIGHT_SUCCESS_700 = \"#034318\";\nexport const COLOR_LIGHT_SUCCESS_800 = \"#002f0f\";\nexport const COLOR_LIGHT_SUCCESS_900 = \"#001d09\";\nexport const COLOR_LIGHT_HIGHLIGHT_0 = \"#ffffff\";\nexport const COLOR_LIGHT_HIGHLIGHT_50 = \"#fdf7ff\";\nexport const COLOR_LIGHT_HIGHLIGHT_100 = \"#f4eaff\";\nexport const COLOR_LIGHT_HIGHLIGHT_200 = \"#e1cbff\";\nexport const COLOR_LIGHT_HIGHLIGHT_300 = \"#c69eff\";\nexport const COLOR_LIGHT_HIGHLIGHT_400 = \"#a374f9\";\nexport const COLOR_LIGHT_HIGHLIGHT_500 = \"#814dde\";\nexport const COLOR_LIGHT_HIGHLIGHT_600 = \"#5f35ae\";\nexport const COLOR_LIGHT_HIGHLIGHT_700 = \"#452382\";\nexport const COLOR_LIGHT_HIGHLIGHT_800 = \"#301761\";\nexport const COLOR_LIGHT_HIGHLIGHT_900 = \"#1d0a42\";\nexport const COLOR_LIGHT_NEUTRAL_0 = \"#ffffff\";\nexport const COLOR_LIGHT_NEUTRAL_50 = \"#f7f7f8\";\nexport const COLOR_LIGHT_NEUTRAL_100 = \"#ebebef\";\nexport const COLOR_LIGHT_NEUTRAL_200 = \"#d8d8df\";\nexport const COLOR_LIGHT_NEUTRAL_300 = \"#b9b9c6\";\nexport const COLOR_LIGHT_NEUTRAL_400 = \"#8f8fa3\";\nexport const COLOR_LIGHT_NEUTRAL_500 = \"#73738c\";\nexport const COLOR_LIGHT_NEUTRAL_600 = \"#5a5a72\";\nexport const COLOR_LIGHT_NEUTRAL_700 = \"#434356\";\nexport const COLOR_LIGHT_NEUTRAL_800 = \"#25252d\";\nexport const COLOR_LIGHT_NEUTRAL_900 = \"#131318\";\nexport const COLOR_DARK_PRIMARY_0 = \"#000000\";\nexport const COLOR_DARK_PRIMARY_50 = \"#3a0819\";\nexport const COLOR_DARK_PRIMARY_100 = \"#7e1035\";\nexport const COLOR_DARK_PRIMARY_200 = \"#a31545\";\nexport const COLOR_DARK_PRIMARY_300 = \"#cb1a56\";\nexport const COLOR_DARK_PRIMARY_400 = \"#e91e63\";\nexport const COLOR_DARK_PRIMARY_500 = \"#ec407a\";\nexport const COLOR_DARK_PRIMARY_600 = \"#f06292\";\nexport const COLOR_DARK_PRIMARY_700 = \"#f48fb1\";\nexport const COLOR_DARK_PRIMARY_800 = \"#f8bcd0\";\nexport const COLOR_DARK_PRIMARY_900 = \"#fce4ec\";\nexport const COLOR_DARK_SECONDARY_0 = \"#000000\";\nexport const COLOR_DARK_SECONDARY_50 = \"#006218\";\nexport const COLOR_DARK_SECONDARY_100 = \"#00812d\";\nexport const COLOR_DARK_SECONDARY_200 = \"#009238\";\nexport const COLOR_DARK_SECONDARY_300 = \"#16a444\";\nexport const COLOR_DARK_SECONDARY_400 = \"#21b34d\";\nexport const COLOR_DARK_SECONDARY_500 = \"#4dbf68\";\nexport const COLOR_DARK_SECONDARY_600 = \"#70cb83\";\nexport const COLOR_DARK_SECONDARY_700 = \"#9bd9a7\";\nexport const COLOR_DARK_SECONDARY_800 = \"#c3e8c9\";\nexport const COLOR_DARK_SECONDARY_900 = \"#e6f6e9\";\nexport const COLOR_DARK_TERTIARY_0 = \"#000000\";\nexport const COLOR_DARK_TERTIARY_50 = \"#005a92\";\nexport const COLOR_DARK_TERTIARY_100 = \"#087ab4\";\nexport const COLOR_DARK_TERTIARY_200 = \"#098bc7\";\nexport const COLOR_DARK_TERTIARY_300 = \"#139edb\";\nexport const COLOR_DARK_TERTIARY_400 = \"#19ace9\";\nexport const COLOR_DARK_TERTIARY_500 = \"#35b8eb\";\nexport const COLOR_DARK_TERTIARY_600 = \"#56c5ee\";\nexport const COLOR_DARK_TERTIARY_700 = \"#84d5f3\";\nexport const COLOR_DARK_TERTIARY_800 = \"#b4e6f7\";\nexport const COLOR_DARK_TERTIARY_900 = \"#e1f5fc\";\nexport const COLOR_DARK_INFO_0 = \"#000000\";\nexport const COLOR_DARK_INFO_50 = \"#00153c\";\nexport const COLOR_DARK_INFO_100 = \"#072859\";\nexport const COLOR_DARK_INFO_200 = \"#02367d\";\nexport const COLOR_DARK_INFO_300 = \"#054da7\";\nexport const COLOR_DARK_INFO_400 = \"#096bde\";\nexport const COLOR_DARK_INFO_500 = \"#3990ff\";\nexport const COLOR_DARK_INFO_600 = \"#6fb6ff\";\nexport const COLOR_DARK_INFO_700 = \"#addbff\";\nexport const COLOR_DARK_INFO_800 = \"#ddf1ff\";\nexport const COLOR_DARK_INFO_900 = \"#f4faff\";\nexport const COLOR_DARK_WARNING_0 = \"#000000\";\nexport const COLOR_DARK_WARNING_50 = \"#3b2300\";\nexport const COLOR_DARK_WARNING_100 = \"#4d2d00\";\nexport const COLOR_DARK_WARNING_200 = \"#633c01\";\nexport const COLOR_DARK_WARNING_300 = \"#7d4e00\";\nexport const COLOR_DARK_WARNING_400 = \"#9a6700\";\nexport const COLOR_DARK_WARNING_500 = \"#bf8700\";\nexport const COLOR_DARK_WARNING_600 = \"#d4a72c\";\nexport const COLOR_DARK_WARNING_700 = \"#eac54f\";\nexport const COLOR_DARK_WARNING_800 = \"#fae17d\";\nexport const COLOR_DARK_WARNING_900 = \"#fff8c5\";\nexport const COLOR_DARK_DANGER_0 = \"#000000\";\nexport const COLOR_DARK_DANGER_50 = \"#39000d\";\nexport const COLOR_DARK_DANGER_100 = \"#580013\";\nexport const COLOR_DARK_DANGER_200 = \"#77061b\";\nexport const COLOR_DARK_DANGER_300 = \"#a10e25\";\nexport const COLOR_DARK_DANGER_400 = \"#d3232f\";\nexport const COLOR_DARK_DANGER_500 = \"#fa5255\";\nexport const COLOR_DARK_DANGER_600 = \"#ff9192\";\nexport const COLOR_DARK_DANGER_700 = \"#ffc7c5\";\nexport const COLOR_DARK_DANGER_800 = \"#ffe9e8\";\nexport const COLOR_DARK_DANGER_900 = \"#fff8f6\";\nexport const COLOR_DARK_SUCCESS_0 = \"#000000\";\nexport const COLOR_DARK_SUCCESS_50 = \"#001d09\";\nexport const COLOR_DARK_SUCCESS_100 = \"#002f0f\";\nexport const COLOR_DARK_SUCCESS_200 = \"#034318\";\nexport const COLOR_DARK_SUCCESS_300 = \"#0f5d26\";\nexport const COLOR_DARK_SUCCESS_400 = \"#1a7d36\";\nexport const COLOR_DARK_SUCCESS_500 = \"#2ca24d\";\nexport const COLOR_DARK_SUCCESS_600 = \"#4cc76e\";\nexport const COLOR_DARK_SUCCESS_700 = \"#77ec95\";\nexport const COLOR_DARK_SUCCESS_800 = \"#d7f5dd\";\nexport const COLOR_DARK_SUCCESS_900 = \"#f3fef5\";\nexport const COLOR_DARK_HIGHLIGHT_0 = \"#000000\";\nexport const COLOR_DARK_HIGHLIGHT_50 = \"#1d0a42\";\nexport const COLOR_DARK_HIGHLIGHT_100 = \"#301761\";\nexport const COLOR_DARK_HIGHLIGHT_200 = \"#452382\";\nexport const COLOR_DARK_HIGHLIGHT_300 = \"#5f35ae\";\nexport const COLOR_DARK_HIGHLIGHT_400 = \"#814dde\";\nexport const COLOR_DARK_HIGHLIGHT_500 = \"#a374f9\";\nexport const COLOR_DARK_HIGHLIGHT_600 = \"#c69eff\";\nexport const COLOR_DARK_HIGHLIGHT_700 = \"#e1cbff\";\nexport const COLOR_DARK_HIGHLIGHT_800 = \"#f4eaff\";\nexport const COLOR_DARK_HIGHLIGHT_900 = \"#fdf7ff\";\nexport const COLOR_DARK_NEUTRAL_0 = \"#000000\";\nexport const COLOR_DARK_NEUTRAL_50 = \"#131318\";\nexport const COLOR_DARK_NEUTRAL_100 = \"#25252d\";\nexport const COLOR_DARK_NEUTRAL_200 = \"#434356\";\nexport const COLOR_DARK_NEUTRAL_300 = \"#5a5a72\";\nexport const COLOR_DARK_NEUTRAL_400 = \"#73738c\";\nexport const COLOR_DARK_NEUTRAL_500 = \"#8f8fa3\";\nexport const COLOR_DARK_NEUTRAL_600 = \"#b9b9c6\";\nexport const COLOR_DARK_NEUTRAL_700 = \"#d8d8df\";\nexport const COLOR_DARK_NEUTRAL_800 = \"#ebebef\";\nexport const COLOR_DARK_NEUTRAL_900 = \"#f7f7f8\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE1_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE1_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE2_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE2_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE3_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE3_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE3_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE4_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE4_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE4_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE5_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE5_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE5_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE6_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE6_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE6_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BODY1_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_BODY1_FONT_SIZE = \"16px\";\nexport const TYPOGRAPHY_BODY1_LINE_HEIGHT = \"20px\";\nexport const TYPOGRAPHY_BODY1_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_BODY1_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_BODY1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BODY1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BODY2_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_BODY2_FONT_SIZE = \"16px\";\nexport const TYPOGRAPHY_BODY2_LINE_HEIGHT = \"20px\";\nexport const TYPOGRAPHY_BODY2_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_BODY2_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_BODY2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BODY2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BUTTON_FONT_FAMILY = \"'Noto Sans', sans-serif\";\nexport const TYPOGRAPHY_BUTTON_FONT_SIZE = \"16px\";\nexport const TYPOGRAPHY_BUTTON_LINE_HEIGHT = \"20px\";\nexport const TYPOGRAPHY_BUTTON_FONT_WEIGHT = \"700\";\nexport const TYPOGRAPHY_BUTTON_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_BUTTON_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BUTTON_TEXT_TRANSFORM = \"uppercase\";\nexport const ELEVATION_NONE = \"none\";\nexport const ELEVATION_LIGHT_LIGHT =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.12), 0px 1px 2px 0px rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_Y_1 = \"1px\";\nexport const ELEVATION_LIGHT_LIGHT_BLUR_0 = \"2px\";\nexport const ELEVATION_LIGHT_LIGHT_BLUR_1 = \"2px\";\nexport const ELEVATION_LIGHT_LIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_SPREAD_1 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.12)\";\nexport const ELEVATION_LIGHT_LIGHT_COLOR_1 = \"rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_SEMILIGHT =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.12), 0px 2px 4px 0px rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_Y_1 = \"2px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_BLUR_0 = \"2px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_BLUR_1 = \"4px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_SPREAD_1 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.12)\";\nexport const ELEVATION_LIGHT_SEMILIGHT_COLOR_1 = \"rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_REGULAR =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.12), 0px 4px 8px 0px rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_Y_1 = \"4px\";\nexport const ELEVATION_LIGHT_REGULAR_BLUR_0 = \"2px\";\nexport const ELEVATION_LIGHT_REGULAR_BLUR_1 = \"8px\";\nexport const ELEVATION_LIGHT_REGULAR_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_SPREAD_1 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_COLOR_0 = \"rgba(0, 0, 0, 0.12)\";\nexport const ELEVATION_LIGHT_REGULAR_COLOR_1 = \"rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_SEMIBOLD =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.12), 0px 8px 16px 0px rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_Y_1 = \"8px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_BLUR_0 = \"2px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_BLUR_1 = \"16px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_SPREAD_1 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_COLOR_0 = \"rgba(0, 0, 0, 0.12)\";\nexport const ELEVATION_LIGHT_SEMIBOLD_COLOR_1 = \"rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_BOLD =\n  \"0px 0px 8px 0px rgba(0, 0, 0, 0.12), 0px 14px 28px 0px rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_Y_1 = \"14px\";\nexport const ELEVATION_LIGHT_BOLD_BLUR_0 = \"8px\";\nexport const ELEVATION_LIGHT_BOLD_BLUR_1 = \"28px\";\nexport const ELEVATION_LIGHT_BOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_SPREAD_1 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_COLOR_0 = \"rgba(0, 0, 0, 0.12)\";\nexport const ELEVATION_LIGHT_BOLD_COLOR_1 = \"rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_EXTRABOLD =\n  \"0px 0px 8px 0px rgba(0, 0, 0, 0.12), 0px 32px 64px 0px rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_Y_1 = \"32px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_BLUR_0 = \"8px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_BLUR_1 = \"64px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_SPREAD_1 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_COLOR_0 = \"rgba(0, 0, 0, 0.12)\";\nexport const ELEVATION_LIGHT_EXTRABOLD_COLOR_1 = \"rgba(0, 0, 0, 0.14)\";\nexport const ELEVATION_DARK_LIGHT =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.24), 0px 1px 2px 0px rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_Y_1 = \"1px\";\nexport const ELEVATION_DARK_LIGHT_BLUR_0 = \"2px\";\nexport const ELEVATION_DARK_LIGHT_BLUR_1 = \"2px\";\nexport const ELEVATION_DARK_LIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_SPREAD_1 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_LIGHT_COLOR_1 = \"rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_SEMILIGHT =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.24), 0px 2px 4px 0px rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_Y_1 = \"2px\";\nexport const ELEVATION_DARK_SEMILIGHT_BLUR_0 = \"2px\";\nexport const ELEVATION_DARK_SEMILIGHT_BLUR_1 = \"4px\";\nexport const ELEVATION_DARK_SEMILIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_SPREAD_1 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_SEMILIGHT_COLOR_1 = \"rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_REGULAR =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.24), 0px 4px 8px 0px rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_Y_1 = \"4px\";\nexport const ELEVATION_DARK_REGULAR_BLUR_0 = \"2px\";\nexport const ELEVATION_DARK_REGULAR_BLUR_1 = \"8px\";\nexport const ELEVATION_DARK_REGULAR_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_SPREAD_1 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_REGULAR_COLOR_1 = \"rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_SEMIBOLD =\n  \"0px 0px 2px 0px rgba(0, 0, 0, 0.24), 0px 8px 16px 0px rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_Y_1 = \"8px\";\nexport const ELEVATION_DARK_SEMIBOLD_BLUR_0 = \"2px\";\nexport const ELEVATION_DARK_SEMIBOLD_BLUR_1 = \"16px\";\nexport const ELEVATION_DARK_SEMIBOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_SPREAD_1 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_SEMIBOLD_COLOR_1 = \"rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_BOLD =\n  \"0px 0px 8px 0px rgba(0, 0, 0, 0.24), 0px 14px 28px 0px rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_BOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_BOLD_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_DARK_BOLD_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_DARK_BOLD_OFFSET_Y_1 = \"14px\";\nexport const ELEVATION_DARK_BOLD_BLUR_0 = \"8px\";\nexport const ELEVATION_DARK_BOLD_BLUR_1 = \"28px\";\nexport const ELEVATION_DARK_BOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_BOLD_SPREAD_1 = \"0px\";\nexport const ELEVATION_DARK_BOLD_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_BOLD_COLOR_1 = \"rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_EXTRABOLD =\n  \"0px 0px 8px 0px rgba(0, 0, 0, 0.24), 0px 32px 64px 0px rgba(0, 0, 0, 0.28)\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_X_1 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_Y_0 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_Y_1 = \"32px\";\nexport const ELEVATION_DARK_EXTRABOLD_BLUR_0 = \"8px\";\nexport const ELEVATION_DARK_EXTRABOLD_BLUR_1 = \"64px\";\nexport const ELEVATION_DARK_EXTRABOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_SPREAD_1 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_EXTRABOLD_COLOR_1 = \"rgba(0, 0, 0, 0.28)\";\nexport const SIZE_TINY = \"2px\";\nexport const SIZE_SMALL = \"4px\";\nexport const SIZE_MEDIUM = \"8px\";\nexport const SIZE_LARGE = \"16px\";\nexport const SIZE_GIANT = \"32px\";\nexport const SIZE_KEY = \"tiny small medium large giant\";\nexport const SIZE_KEY_TINY = \"tiny\";\nexport const SIZE_KEY_SMALL = \"small\";\nexport const SIZE_KEY_MEDIUM = \"medium\";\nexport const SIZE_KEY_LARGE = \"large\";\nexport const SIZE_KEY_GIANT = \"giant\";\nexport const TYPOGRAPHY_KEY_HEADLINE1 = \"headline1\";\nexport const TYPOGRAPHY_KEY_HEADLINE2 = \"headline2\";\nexport const TYPOGRAPHY_KEY_HEADLINE3 = \"headline3\";\nexport const TYPOGRAPHY_KEY_HEADLINE4 = \"headline4\";\nexport const TYPOGRAPHY_KEY_HEADLINE5 = \"headline5\";\nexport const TYPOGRAPHY_KEY_HEADLINE6 = \"headline6\";\nexport const TYPOGRAPHY_KEY_BODY1 = \"body1\";\nexport const TYPOGRAPHY_KEY_BODY2 = \"body2\";\nexport const TYPOGRAPHY_KEY_BUTTON = \"button\";\nexport const ELEVATION_KEY = \"light semilight regular semibold bold extrabold\";\nexport const ELEVATION_KEY_LIGHT = \"light\";\nexport const ELEVATION_KEY_SEMILIGHT = \"semilight\";\nexport const ELEVATION_KEY_REGULAR = \"regular\";\nexport const ELEVATION_KEY_SEMIBOLD = \"semibold\";\nexport const ELEVATION_KEY_BOLD = \"bold\";\nexport const ELEVATION_KEY_EXTRABOLD = \"extrabold\";\nexport const APPEARANCE = \"default outline plain soft solid\";\nexport const APPEARANCE_DEFAULT = \"default\";\nexport const APPEARANCE_OUTLINE = \"outline\";\nexport const APPEARANCE_PLAIN = \"plain\";\nexport const APPEARANCE_SOFT = \"soft\";\nexport const APPEARANCE_SOLID = \"solid\";\nexport const VARIANT =\n  \"primary secondary tertiary danger warning success info highlight neutral\";\nexport const VARIANT_PRIMARY = \"primary\";\nexport const VARIANT_SECONDARY = \"secondary\";\nexport const VARIANT_TERTIARY = \"tertiary\";\nexport const VARIANT_DANGER = \"danger\";\nexport const VARIANT_WARNING = \"warning\";\nexport const VARIANT_SUCCESS = \"success\";\nexport const VARIANT_INFO = \"info\";\nexport const VARIANT_HIGHLIGHT = \"highlight\";\nexport const VARIANT_NEUTRAL = \"neutral\";\nexport const DURATION_SHORT = \"200ms\";\nexport const DURATION_MEDIUM = \"400ms\";\nexport const DURATION_LONG = \"600ms\";\n","// #region Imports\n\nimport { ThemeFactory } from './ThemeFactory';\nimport { FONT_FAMILY, ELEVATION_NONE, LAYOUT_RADIUS, LAYOUT_SPACE, LAYOUT_THICKNESS, SCHEME_DARK_BACKGROUND, SCHEME_DARK_CONTRAST, SCHEME_DARK_DISABLED, SCHEME_DARK_FOREGROUND, SCHEME_DARK_HIGHLIGHT, SCHEME_DARK_LOWLIGHT, SCHEME_DARK_MIDDLELIGHT, SCHEME_DARK_SEMI_TRANSPARENT, SCHEME_DARK_TRANSPARENT, SCHEME_LIGHT_BACKGROUND, SCHEME_LIGHT_CONTRAST, SCHEME_LIGHT_DISABLED, SCHEME_LIGHT_FOREGROUND, SCHEME_LIGHT_HIGHLIGHT, SCHEME_LIGHT_LOWLIGHT, SCHEME_LIGHT_MIDDLELIGHT, SCHEME_LIGHT_SEMI_TRANSPARENT, SCHEME_LIGHT_TRANSPARENT, NAME, TYPOGRAPHY_BUTTON_FONT_FAMILY, TYPOGRAPHY_BUTTON_FONT_SIZE, TYPOGRAPHY_BUTTON_FONT_WEIGHT, TYPOGRAPHY_BUTTON_LETTER_SPACING, TYPOGRAPHY_BUTTON_LINE_HEIGHT, TYPOGRAPHY_BUTTON_TEXT_DECORATION, TYPOGRAPHY_BUTTON_TEXT_TRANSFORM, COLOR_LIGHT_PRIMARY_100, COLOR_LIGHT_PRIMARY_500, COLOR_LIGHT_PRIMARY_0, VARIANT_PRIMARY, VARIANT_SECONDARY, VARIANT_TERTIARY, ELEVATION_LIGHT_LIGHT, ELEVATION_LIGHT_SEMILIGHT, ELEVATION_LIGHT_REGULAR, ELEVATION_LIGHT_SEMIBOLD, ELEVATION_LIGHT_BOLD, ELEVATION_LIGHT_EXTRABOLD, ELEVATION_DARK_LIGHT, ELEVATION_DARK_SEMILIGHT, ELEVATION_DARK_REGULAR, ELEVATION_DARK_SEMIBOLD, ELEVATION_DARK_BOLD, ELEVATION_DARK_EXTRABOLD, ELEVATION_KEY_LIGHT, ELEVATION_KEY_SEMILIGHT, ELEVATION_KEY_REGULAR, ELEVATION_KEY_SEMIBOLD, ELEVATION_KEY_BOLD, ELEVATION_KEY_EXTRABOLD, TYPOGRAPHY_KEY_BUTTON, SCHEME_LIGHT_SURFACE, SCHEME_LIGHT_SELECTION, SCHEME_DARK_SELECTION, SCHEME_DARK_SURFACE, COLOR_LIGHT_PRIMARY_50, COLOR_LIGHT_PRIMARY_200, COLOR_LIGHT_PRIMARY_300, COLOR_LIGHT_PRIMARY_400, COLOR_LIGHT_PRIMARY_600, COLOR_LIGHT_PRIMARY_700, COLOR_LIGHT_PRIMARY_800, COLOR_LIGHT_PRIMARY_900, COLOR_LIGHT_SECONDARY_0, COLOR_LIGHT_SECONDARY_50, COLOR_LIGHT_SECONDARY_100, COLOR_LIGHT_SECONDARY_200, COLOR_LIGHT_SECONDARY_300, COLOR_LIGHT_SECONDARY_400, COLOR_LIGHT_SECONDARY_500, COLOR_LIGHT_SECONDARY_600, COLOR_LIGHT_SECONDARY_700, COLOR_LIGHT_SECONDARY_800, COLOR_LIGHT_SECONDARY_900, COLOR_DARK_DANGER_0, COLOR_DARK_DANGER_100, COLOR_DARK_DANGER_200, COLOR_DARK_DANGER_300, COLOR_DARK_DANGER_400, COLOR_DARK_DANGER_50, COLOR_DARK_DANGER_500, COLOR_DARK_DANGER_600, COLOR_DARK_DANGER_700, COLOR_DARK_DANGER_800, COLOR_DARK_DANGER_900, COLOR_DARK_HIGHLIGHT_0, COLOR_DARK_HIGHLIGHT_100, COLOR_DARK_HIGHLIGHT_200, COLOR_DARK_HIGHLIGHT_300, COLOR_DARK_HIGHLIGHT_400, COLOR_DARK_HIGHLIGHT_50, COLOR_DARK_HIGHLIGHT_500, COLOR_DARK_HIGHLIGHT_600, COLOR_DARK_HIGHLIGHT_700, COLOR_DARK_HIGHLIGHT_800, COLOR_DARK_HIGHLIGHT_900, COLOR_DARK_INFO_0, COLOR_DARK_INFO_100, COLOR_DARK_INFO_200, COLOR_DARK_INFO_300, COLOR_DARK_INFO_400, COLOR_DARK_INFO_50, COLOR_DARK_INFO_500, COLOR_DARK_INFO_600, COLOR_DARK_INFO_700, COLOR_DARK_INFO_800, COLOR_DARK_INFO_900, COLOR_DARK_NEUTRAL_0, COLOR_DARK_NEUTRAL_100, COLOR_DARK_NEUTRAL_200, COLOR_DARK_NEUTRAL_300, COLOR_DARK_NEUTRAL_400, COLOR_DARK_NEUTRAL_50, COLOR_DARK_NEUTRAL_500, COLOR_DARK_NEUTRAL_600, COLOR_DARK_NEUTRAL_700, COLOR_DARK_NEUTRAL_800, COLOR_DARK_NEUTRAL_900, COLOR_DARK_PRIMARY_0, COLOR_DARK_PRIMARY_100, COLOR_DARK_PRIMARY_200, COLOR_DARK_PRIMARY_300, COLOR_DARK_PRIMARY_400, COLOR_DARK_PRIMARY_50, COLOR_DARK_PRIMARY_500, COLOR_DARK_PRIMARY_600, COLOR_DARK_PRIMARY_700, COLOR_DARK_PRIMARY_800, COLOR_DARK_PRIMARY_900, COLOR_DARK_SECONDARY_0, COLOR_DARK_SECONDARY_100, COLOR_DARK_SECONDARY_200, COLOR_DARK_SECONDARY_300, COLOR_DARK_SECONDARY_400, COLOR_DARK_SECONDARY_50, COLOR_DARK_SECONDARY_500, COLOR_DARK_SECONDARY_600, COLOR_DARK_SECONDARY_700, COLOR_DARK_SECONDARY_800, COLOR_DARK_SECONDARY_900, COLOR_DARK_SUCCESS_0, COLOR_DARK_SUCCESS_100, COLOR_DARK_SUCCESS_200, COLOR_DARK_SUCCESS_300, COLOR_DARK_SUCCESS_400, COLOR_DARK_SUCCESS_50, COLOR_DARK_SUCCESS_500, COLOR_DARK_SUCCESS_600, COLOR_DARK_SUCCESS_700, COLOR_DARK_SUCCESS_800, COLOR_DARK_SUCCESS_900, COLOR_DARK_TERTIARY_0, COLOR_DARK_TERTIARY_100, COLOR_DARK_TERTIARY_200, COLOR_DARK_TERTIARY_300, COLOR_DARK_TERTIARY_400, COLOR_DARK_TERTIARY_50, COLOR_DARK_TERTIARY_500, COLOR_DARK_TERTIARY_600, COLOR_DARK_TERTIARY_700, COLOR_DARK_TERTIARY_800, COLOR_DARK_TERTIARY_900, COLOR_DARK_WARNING_0, COLOR_DARK_WARNING_100, COLOR_DARK_WARNING_200, COLOR_DARK_WARNING_300, COLOR_DARK_WARNING_400, COLOR_DARK_WARNING_50, COLOR_DARK_WARNING_500, COLOR_DARK_WARNING_600, COLOR_DARK_WARNING_700, COLOR_DARK_WARNING_800, COLOR_DARK_WARNING_900, COLOR_LIGHT_DANGER_0, COLOR_LIGHT_DANGER_100, COLOR_LIGHT_DANGER_200, COLOR_LIGHT_DANGER_300, COLOR_LIGHT_DANGER_400, COLOR_LIGHT_DANGER_50, COLOR_LIGHT_DANGER_500, COLOR_LIGHT_DANGER_600, COLOR_LIGHT_DANGER_700, COLOR_LIGHT_DANGER_800, COLOR_LIGHT_DANGER_900, COLOR_LIGHT_HIGHLIGHT_0, COLOR_LIGHT_HIGHLIGHT_100, COLOR_LIGHT_HIGHLIGHT_200, COLOR_LIGHT_HIGHLIGHT_300, COLOR_LIGHT_HIGHLIGHT_400, COLOR_LIGHT_HIGHLIGHT_50, COLOR_LIGHT_HIGHLIGHT_500, COLOR_LIGHT_HIGHLIGHT_600, COLOR_LIGHT_HIGHLIGHT_700, COLOR_LIGHT_HIGHLIGHT_800, COLOR_LIGHT_HIGHLIGHT_900, COLOR_LIGHT_INFO_0, COLOR_LIGHT_INFO_100, COLOR_LIGHT_INFO_200, COLOR_LIGHT_INFO_300, COLOR_LIGHT_INFO_400, COLOR_LIGHT_INFO_50, COLOR_LIGHT_INFO_500, COLOR_LIGHT_INFO_600, COLOR_LIGHT_INFO_700, COLOR_LIGHT_INFO_800, COLOR_LIGHT_INFO_900, COLOR_LIGHT_NEUTRAL_0, COLOR_LIGHT_NEUTRAL_100, COLOR_LIGHT_NEUTRAL_200, COLOR_LIGHT_NEUTRAL_300, COLOR_LIGHT_NEUTRAL_400, COLOR_LIGHT_NEUTRAL_50, COLOR_LIGHT_NEUTRAL_500, COLOR_LIGHT_NEUTRAL_600, COLOR_LIGHT_NEUTRAL_700, COLOR_LIGHT_NEUTRAL_800, COLOR_LIGHT_NEUTRAL_900, COLOR_LIGHT_SUCCESS_0, COLOR_LIGHT_SUCCESS_100, COLOR_LIGHT_SUCCESS_200, COLOR_LIGHT_SUCCESS_300, COLOR_LIGHT_SUCCESS_400, COLOR_LIGHT_SUCCESS_50, COLOR_LIGHT_SUCCESS_500, COLOR_LIGHT_SUCCESS_600, COLOR_LIGHT_SUCCESS_700, COLOR_LIGHT_SUCCESS_800, COLOR_LIGHT_SUCCESS_900, COLOR_LIGHT_TERTIARY_0, COLOR_LIGHT_TERTIARY_100, COLOR_LIGHT_TERTIARY_200, COLOR_LIGHT_TERTIARY_300, COLOR_LIGHT_TERTIARY_400, COLOR_LIGHT_TERTIARY_50, COLOR_LIGHT_TERTIARY_500, COLOR_LIGHT_TERTIARY_600, COLOR_LIGHT_TERTIARY_700, COLOR_LIGHT_TERTIARY_800, COLOR_LIGHT_TERTIARY_900, COLOR_LIGHT_WARNING_0, COLOR_LIGHT_WARNING_100, COLOR_LIGHT_WARNING_200, COLOR_LIGHT_WARNING_300, COLOR_LIGHT_WARNING_400, COLOR_LIGHT_WARNING_50, COLOR_LIGHT_WARNING_500, COLOR_LIGHT_WARNING_600, COLOR_LIGHT_WARNING_700, COLOR_LIGHT_WARNING_800, COLOR_LIGHT_WARNING_900, TYPOGRAPHY_HEADLINE1_FONT_FAMILY, TYPOGRAPHY_HEADLINE1_FONT_SIZE, TYPOGRAPHY_HEADLINE1_LINE_HEIGHT, TYPOGRAPHY_HEADLINE1_FONT_WEIGHT, TYPOGRAPHY_HEADLINE1_LETTER_SPACING, TYPOGRAPHY_HEADLINE1_TEXT_DECORATION, TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM, TYPOGRAPHY_BODY1_FONT_FAMILY, TYPOGRAPHY_BODY1_FONT_SIZE, TYPOGRAPHY_BODY1_LINE_HEIGHT, TYPOGRAPHY_BODY1_FONT_WEIGHT, TYPOGRAPHY_BODY1_LETTER_SPACING, TYPOGRAPHY_BODY1_TEXT_DECORATION, TYPOGRAPHY_BODY1_TEXT_TRANSFORM, TYPOGRAPHY_BODY2_FONT_FAMILY, TYPOGRAPHY_BODY2_FONT_SIZE, TYPOGRAPHY_BODY2_FONT_WEIGHT, TYPOGRAPHY_BODY2_LETTER_SPACING, TYPOGRAPHY_BODY2_LINE_HEIGHT, TYPOGRAPHY_BODY2_TEXT_DECORATION, TYPOGRAPHY_BODY2_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE2_FONT_FAMILY, TYPOGRAPHY_HEADLINE2_FONT_SIZE, TYPOGRAPHY_HEADLINE2_FONT_WEIGHT, TYPOGRAPHY_HEADLINE2_LETTER_SPACING, TYPOGRAPHY_HEADLINE2_LINE_HEIGHT, TYPOGRAPHY_HEADLINE2_TEXT_DECORATION, TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE3_FONT_FAMILY, TYPOGRAPHY_HEADLINE3_FONT_SIZE, TYPOGRAPHY_HEADLINE3_FONT_WEIGHT, TYPOGRAPHY_HEADLINE3_LETTER_SPACING, TYPOGRAPHY_HEADLINE3_LINE_HEIGHT, TYPOGRAPHY_HEADLINE3_TEXT_DECORATION, TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE4_FONT_FAMILY, TYPOGRAPHY_HEADLINE4_FONT_SIZE, TYPOGRAPHY_HEADLINE4_FONT_WEIGHT, TYPOGRAPHY_HEADLINE4_LETTER_SPACING, TYPOGRAPHY_HEADLINE4_LINE_HEIGHT, TYPOGRAPHY_HEADLINE4_TEXT_DECORATION, TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE5_FONT_FAMILY, TYPOGRAPHY_HEADLINE5_FONT_SIZE, TYPOGRAPHY_HEADLINE5_FONT_WEIGHT, TYPOGRAPHY_HEADLINE5_LETTER_SPACING, TYPOGRAPHY_HEADLINE5_LINE_HEIGHT, TYPOGRAPHY_HEADLINE5_TEXT_DECORATION, TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE6_FONT_FAMILY, TYPOGRAPHY_HEADLINE6_FONT_SIZE, TYPOGRAPHY_HEADLINE6_FONT_WEIGHT, TYPOGRAPHY_HEADLINE6_LETTER_SPACING, TYPOGRAPHY_HEADLINE6_LINE_HEIGHT, TYPOGRAPHY_HEADLINE6_TEXT_DECORATION, TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM, TYPOGRAPHY_KEY_BODY1, TYPOGRAPHY_KEY_BODY2, TYPOGRAPHY_KEY_HEADLINE1, TYPOGRAPHY_KEY_HEADLINE2, TYPOGRAPHY_KEY_HEADLINE3, TYPOGRAPHY_KEY_HEADLINE4, TYPOGRAPHY_KEY_HEADLINE5, TYPOGRAPHY_KEY_HEADLINE6 } from './Tokens/CosmopolitanTokens';\nimport type { IThemeMetadata } from './Utils/IThemeMetadata';\n\n// #endregion\n\nexport namespace CosmopolitanTheme {\n\n    export const COSMOPOLITAN_THEME = ThemeFactory.create({\n        name: NAME,\n        scheme: {\n            light: {\n                surface: SCHEME_LIGHT_SURFACE,\n                contrast: SCHEME_LIGHT_CONTRAST,\n                background: SCHEME_LIGHT_BACKGROUND,\n                foreground: SCHEME_LIGHT_FOREGROUND,\n                highlight: SCHEME_LIGHT_HIGHLIGHT,\n                middlelight: SCHEME_LIGHT_MIDDLELIGHT,\n                lowlight: SCHEME_LIGHT_LOWLIGHT,\n                transparent: SCHEME_LIGHT_TRANSPARENT,\n                semiTransparent: SCHEME_LIGHT_SEMI_TRANSPARENT,\n                disabled: SCHEME_LIGHT_DISABLED,\n                selection: SCHEME_LIGHT_SELECTION\n            },\n            dark: {\n                surface: SCHEME_DARK_SURFACE,\n                contrast: SCHEME_DARK_CONTRAST,\n                background: SCHEME_DARK_BACKGROUND,\n                foreground: SCHEME_DARK_FOREGROUND,\n                highlight: SCHEME_DARK_HIGHLIGHT,\n                middlelight: SCHEME_DARK_MIDDLELIGHT,\n                lowlight: SCHEME_DARK_LOWLIGHT,\n                transparent: SCHEME_DARK_TRANSPARENT,\n                semiTransparent: SCHEME_DARK_SEMI_TRANSPARENT,\n                disabled: SCHEME_DARK_DISABLED,\n                selection: SCHEME_DARK_SELECTION\n            }\n        },\n        palette: {\n            light: {\n                primary: {\n                    0: COLOR_LIGHT_PRIMARY_0,\n                    50: COLOR_LIGHT_PRIMARY_50,\n                    100: COLOR_LIGHT_PRIMARY_100,\n                    200: COLOR_LIGHT_PRIMARY_200,\n                    300: COLOR_LIGHT_PRIMARY_300,\n                    400: COLOR_LIGHT_PRIMARY_400,\n                    500: COLOR_LIGHT_PRIMARY_500,\n                    600: COLOR_LIGHT_PRIMARY_600,\n                    700: COLOR_LIGHT_PRIMARY_700,\n                    800: COLOR_LIGHT_PRIMARY_800,\n                    900: COLOR_LIGHT_PRIMARY_900\n                },\n                secondary: {\n                    0: COLOR_LIGHT_SECONDARY_0,\n                    50: COLOR_LIGHT_SECONDARY_50,\n                    100: COLOR_LIGHT_SECONDARY_100,\n                    200: COLOR_LIGHT_SECONDARY_200,\n                    300: COLOR_LIGHT_SECONDARY_300,\n                    400: COLOR_LIGHT_SECONDARY_400,\n                    500: COLOR_LIGHT_SECONDARY_500,\n                    600: COLOR_LIGHT_SECONDARY_600,\n                    700: COLOR_LIGHT_SECONDARY_700,\n                    800: COLOR_LIGHT_SECONDARY_800,\n                    900: COLOR_LIGHT_SECONDARY_900\n                },\n                tertiary: {\n                    0: COLOR_LIGHT_TERTIARY_0,\n                    50: COLOR_LIGHT_TERTIARY_50,\n                    100: COLOR_LIGHT_TERTIARY_100,\n                    200: COLOR_LIGHT_TERTIARY_200,\n                    300: COLOR_LIGHT_TERTIARY_300,\n                    400: COLOR_LIGHT_TERTIARY_400,\n                    500: COLOR_LIGHT_TERTIARY_500,\n                    600: COLOR_LIGHT_TERTIARY_600,\n                    700: COLOR_LIGHT_TERTIARY_700,\n                    800: COLOR_LIGHT_TERTIARY_800,\n                    900: COLOR_LIGHT_TERTIARY_900\n                },\n                info: {\n                    0: COLOR_LIGHT_INFO_0,\n                    50: COLOR_LIGHT_INFO_50,\n                    100: COLOR_LIGHT_INFO_100,\n                    200: COLOR_LIGHT_INFO_200,\n                    300: COLOR_LIGHT_INFO_300,\n                    400: COLOR_LIGHT_INFO_400,\n                    500: COLOR_LIGHT_INFO_500,\n                    600: COLOR_LIGHT_INFO_600,\n                    700: COLOR_LIGHT_INFO_700,\n                    800: COLOR_LIGHT_INFO_800,\n                    900: COLOR_LIGHT_INFO_900\n                },\n                warning: {\n                    0: COLOR_LIGHT_WARNING_0,\n                    50: COLOR_LIGHT_WARNING_50,\n                    100: COLOR_LIGHT_WARNING_100,\n                    200: COLOR_LIGHT_WARNING_200,\n                    300: COLOR_LIGHT_WARNING_300,\n                    400: COLOR_LIGHT_WARNING_400,\n                    500: COLOR_LIGHT_WARNING_500,\n                    600: COLOR_LIGHT_WARNING_600,\n                    700: COLOR_LIGHT_WARNING_700,\n                    800: COLOR_LIGHT_WARNING_800,\n                    900: COLOR_LIGHT_WARNING_900\n                },\n                danger: {\n                    0: COLOR_LIGHT_DANGER_0,\n                    50: COLOR_LIGHT_DANGER_50,\n                    100: COLOR_LIGHT_DANGER_100,\n                    200: COLOR_LIGHT_DANGER_200,\n                    300: COLOR_LIGHT_DANGER_300,\n                    400: COLOR_LIGHT_DANGER_400,\n                    500: COLOR_LIGHT_DANGER_500,\n                    600: COLOR_LIGHT_DANGER_600,\n                    700: COLOR_LIGHT_DANGER_700,\n                    800: COLOR_LIGHT_DANGER_800,\n                    900: COLOR_LIGHT_DANGER_900\n                },\n                success: {\n                    0: COLOR_LIGHT_SUCCESS_0,\n                    50: COLOR_LIGHT_SUCCESS_50,\n                    100: COLOR_LIGHT_SUCCESS_100,\n                    200: COLOR_LIGHT_SUCCESS_200,\n                    300: COLOR_LIGHT_SUCCESS_300,\n                    400: COLOR_LIGHT_SUCCESS_400,\n                    500: COLOR_LIGHT_SUCCESS_500,\n                    600: COLOR_LIGHT_SUCCESS_600,\n                    700: COLOR_LIGHT_SUCCESS_700,\n                    800: COLOR_LIGHT_SUCCESS_800,\n                    900: COLOR_LIGHT_SUCCESS_900\n                },\n                highlight: {\n                    0: COLOR_LIGHT_HIGHLIGHT_0,\n                    50: COLOR_LIGHT_HIGHLIGHT_50,\n                    100: COLOR_LIGHT_HIGHLIGHT_100,\n                    200: COLOR_LIGHT_HIGHLIGHT_200,\n                    300: COLOR_LIGHT_HIGHLIGHT_300,\n                    400: COLOR_LIGHT_HIGHLIGHT_400,\n                    500: COLOR_LIGHT_HIGHLIGHT_500,\n                    600: COLOR_LIGHT_HIGHLIGHT_600,\n                    700: COLOR_LIGHT_HIGHLIGHT_700,\n                    800: COLOR_LIGHT_HIGHLIGHT_800,\n                    900: COLOR_LIGHT_HIGHLIGHT_900\n                },\n                neutral: {\n                    0: COLOR_LIGHT_NEUTRAL_0,\n                    50: COLOR_LIGHT_NEUTRAL_50,\n                    100: COLOR_LIGHT_NEUTRAL_100,\n                    200: COLOR_LIGHT_NEUTRAL_200,\n                    300: COLOR_LIGHT_NEUTRAL_300,\n                    400: COLOR_LIGHT_NEUTRAL_400,\n                    500: COLOR_LIGHT_NEUTRAL_500,\n                    600: COLOR_LIGHT_NEUTRAL_600,\n                    700: COLOR_LIGHT_NEUTRAL_700,\n                    800: COLOR_LIGHT_NEUTRAL_800,\n                    900: COLOR_LIGHT_NEUTRAL_900\n                }\n            },\n            dark: {\n                primary: {\n                    0: COLOR_DARK_PRIMARY_0,\n                    50: COLOR_DARK_PRIMARY_50,\n                    100: COLOR_DARK_PRIMARY_100,\n                    200: COLOR_DARK_PRIMARY_200,\n                    300: COLOR_DARK_PRIMARY_300,\n                    400: COLOR_DARK_PRIMARY_400,\n                    500: COLOR_DARK_PRIMARY_500,\n                    600: COLOR_DARK_PRIMARY_600,\n                    700: COLOR_DARK_PRIMARY_700,\n                    800: COLOR_DARK_PRIMARY_800,\n                    900: COLOR_DARK_PRIMARY_900\n                },\n                secondary: {\n                    0: COLOR_DARK_SECONDARY_0,\n                    50: COLOR_DARK_SECONDARY_50,\n                    100: COLOR_DARK_SECONDARY_100,\n                    200: COLOR_DARK_SECONDARY_200,\n                    300: COLOR_DARK_SECONDARY_300,\n                    400: COLOR_DARK_SECONDARY_400,\n                    500: COLOR_DARK_SECONDARY_500,\n                    600: COLOR_DARK_SECONDARY_600,\n                    700: COLOR_DARK_SECONDARY_700,\n                    800: COLOR_DARK_SECONDARY_800,\n                    900: COLOR_DARK_SECONDARY_900\n                },\n                tertiary: {\n                    0: COLOR_DARK_TERTIARY_0,\n                    50: COLOR_DARK_TERTIARY_50,\n                    100: COLOR_DARK_TERTIARY_100,\n                    200: COLOR_DARK_TERTIARY_200,\n                    300: COLOR_DARK_TERTIARY_300,\n                    400: COLOR_DARK_TERTIARY_400,\n                    500: COLOR_DARK_TERTIARY_500,\n                    600: COLOR_DARK_TERTIARY_600,\n                    700: COLOR_DARK_TERTIARY_700,\n                    800: COLOR_DARK_TERTIARY_800,\n                    900: COLOR_DARK_TERTIARY_900\n                },\n                info: {\n                    0: COLOR_DARK_INFO_0,\n                    50: COLOR_DARK_INFO_50,\n                    100: COLOR_DARK_INFO_100,\n                    200: COLOR_DARK_INFO_200,\n                    300: COLOR_DARK_INFO_300,\n                    400: COLOR_DARK_INFO_400,\n                    500: COLOR_DARK_INFO_500,\n                    600: COLOR_DARK_INFO_600,\n                    700: COLOR_DARK_INFO_700,\n                    800: COLOR_DARK_INFO_800,\n                    900: COLOR_DARK_INFO_900\n                },\n                warning: {\n                    0: COLOR_DARK_WARNING_0,\n                    50: COLOR_DARK_WARNING_50,\n                    100: COLOR_DARK_WARNING_100,\n                    200: COLOR_DARK_WARNING_200,\n                    300: COLOR_DARK_WARNING_300,\n                    400: COLOR_DARK_WARNING_400,\n                    500: COLOR_DARK_WARNING_500,\n                    600: COLOR_DARK_WARNING_600,\n                    700: COLOR_DARK_WARNING_700,\n                    800: COLOR_DARK_WARNING_800,\n                    900: COLOR_DARK_WARNING_900\n                },\n                danger: {\n                    0: COLOR_DARK_DANGER_0,\n                    50: COLOR_DARK_DANGER_50,\n                    100: COLOR_DARK_DANGER_100,\n                    200: COLOR_DARK_DANGER_200,\n                    300: COLOR_DARK_DANGER_300,\n                    400: COLOR_DARK_DANGER_400,\n                    500: COLOR_DARK_DANGER_500,\n                    600: COLOR_DARK_DANGER_600,\n                    700: COLOR_DARK_DANGER_700,\n                    800: COLOR_DARK_DANGER_800,\n                    900: COLOR_DARK_DANGER_900\n                },\n                success: {\n                    0: COLOR_DARK_SUCCESS_0,\n                    50: COLOR_DARK_SUCCESS_50,\n                    100: COLOR_DARK_SUCCESS_100,\n                    200: COLOR_DARK_SUCCESS_200,\n                    300: COLOR_DARK_SUCCESS_300,\n                    400: COLOR_DARK_SUCCESS_400,\n                    500: COLOR_DARK_SUCCESS_500,\n                    600: COLOR_DARK_SUCCESS_600,\n                    700: COLOR_DARK_SUCCESS_700,\n                    800: COLOR_DARK_SUCCESS_800,\n                    900: COLOR_DARK_SUCCESS_900\n                },\n                highlight: {\n                    0: COLOR_DARK_HIGHLIGHT_0,\n                    50: COLOR_DARK_HIGHLIGHT_50,\n                    100: COLOR_DARK_HIGHLIGHT_100,\n                    200: COLOR_DARK_HIGHLIGHT_200,\n                    300: COLOR_DARK_HIGHLIGHT_300,\n                    400: COLOR_DARK_HIGHLIGHT_400,\n                    500: COLOR_DARK_HIGHLIGHT_500,\n                    600: COLOR_DARK_HIGHLIGHT_600,\n                    700: COLOR_DARK_HIGHLIGHT_700,\n                    800: COLOR_DARK_HIGHLIGHT_800,\n                    900: COLOR_DARK_HIGHLIGHT_900\n                },\n                neutral: {\n                    0: COLOR_DARK_NEUTRAL_0,\n                    50: COLOR_DARK_NEUTRAL_50,\n                    100: COLOR_DARK_NEUTRAL_100,\n                    200: COLOR_DARK_NEUTRAL_200,\n                    300: COLOR_DARK_NEUTRAL_300,\n                    400: COLOR_DARK_NEUTRAL_400,\n                    500: COLOR_DARK_NEUTRAL_500,\n                    600: COLOR_DARK_NEUTRAL_600,\n                    700: COLOR_DARK_NEUTRAL_700,\n                    800: COLOR_DARK_NEUTRAL_800,\n                    900: COLOR_DARK_NEUTRAL_900\n                }\n            }\n        },\n        fontFamily: FONT_FAMILY,\n        typography: {\n            headline1: {\n                fontFamily: TYPOGRAPHY_HEADLINE1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM\n            },\n            headline2: {\n                fontFamily: TYPOGRAPHY_HEADLINE2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM\n            },\n            headline3: {\n                fontFamily: TYPOGRAPHY_HEADLINE3_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE3_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE3_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE3_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE3_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE3_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM\n            },\n            headline4: {\n                fontFamily: TYPOGRAPHY_HEADLINE4_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE4_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE4_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE4_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE4_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE4_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM\n            },\n            headline5: {\n                fontFamily: TYPOGRAPHY_HEADLINE5_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE5_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE5_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE5_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE5_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE5_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM\n            },\n            headline6: {\n                fontFamily: TYPOGRAPHY_HEADLINE6_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE6_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE6_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE6_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE6_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE6_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM\n            },\n            body1: {\n                fontFamily: TYPOGRAPHY_BODY1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BODY1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BODY1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BODY1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BODY1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BODY1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BODY1_TEXT_TRANSFORM\n            },\n            body2: {\n                fontFamily: TYPOGRAPHY_BODY2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BODY2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BODY2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BODY2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BODY2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BODY2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BODY2_TEXT_TRANSFORM\n            },\n            button: {\n                fontFamily: TYPOGRAPHY_BUTTON_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BUTTON_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BUTTON_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BUTTON_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BUTTON_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BUTTON_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BUTTON_TEXT_TRANSFORM\n            }\n        },\n        layout: {\n            radius: LAYOUT_RADIUS,\n            space: LAYOUT_SPACE,\n            thickness: LAYOUT_THICKNESS\n        },\n        elevation: {\n            light: {\n                light: ELEVATION_LIGHT_LIGHT,\n                semilight: ELEVATION_LIGHT_SEMILIGHT,\n                regular: ELEVATION_LIGHT_REGULAR,\n                semibold: ELEVATION_LIGHT_SEMIBOLD,\n                bold: ELEVATION_LIGHT_BOLD,\n                extrabold: ELEVATION_LIGHT_EXTRABOLD,\n                none: ELEVATION_NONE\n            },\n            dark: {\n                light: ELEVATION_DARK_LIGHT,\n                semilight: ELEVATION_DARK_SEMILIGHT,\n                regular: ELEVATION_DARK_REGULAR,\n                semibold: ELEVATION_DARK_SEMIBOLD,\n                bold: ELEVATION_DARK_BOLD,\n                extrabold: ELEVATION_DARK_EXTRABOLD,\n                none: ELEVATION_NONE\n            }\n        }\n    });\n\n    export const COSMOPOLITAN_THEME_PALETTES = [VARIANT_PRIMARY, VARIANT_SECONDARY, VARIANT_TERTIARY];\n\n    export const COSMOPOLITAN_THEME_PALETTE_VARIANTS = ['0', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\n\n    export const COSMOPOLITAN_THEME_SCHEMES = ['light', 'dark'];\n\n    export const COSMOPOLITAN_THEME_SCHEME_VARIANTS = ['surface', 'background', 'foreground', 'highlight', 'middlelight', 'lowlight', 'transparent', 'semiTransparent', 'disabled', 'contrast', 'selection'];\n\n    export const COSMOPOLITAN_THEME_ELEVATION = ['light', 'dark'];\n\n    export const COSMOPOLITAN_THEME_ELEVATION_VARIANTS = [ELEVATION_KEY_LIGHT, ELEVATION_KEY_SEMILIGHT, ELEVATION_KEY_REGULAR, ELEVATION_KEY_SEMIBOLD, ELEVATION_KEY_BOLD, ELEVATION_KEY_EXTRABOLD];\n\n    export const COSMOPOLITAN_THEME_TYPOGRAPHY = [TYPOGRAPHY_KEY_HEADLINE1, TYPOGRAPHY_KEY_HEADLINE2, TYPOGRAPHY_KEY_HEADLINE3, TYPOGRAPHY_KEY_HEADLINE4, TYPOGRAPHY_KEY_HEADLINE5, TYPOGRAPHY_KEY_HEADLINE6, TYPOGRAPHY_KEY_BODY1, TYPOGRAPHY_KEY_BODY2, TYPOGRAPHY_KEY_BUTTON];\n\n    export const COSMOPOLITAN_THEME_METADATA: IThemeMetadata = {\n        theme: COSMOPOLITAN_THEME,\n        palettes: COSMOPOLITAN_THEME_PALETTES,\n        paletteVariants: COSMOPOLITAN_THEME_PALETTE_VARIANTS,\n        schemes: COSMOPOLITAN_THEME_SCHEMES,\n        schemeVariants: COSMOPOLITAN_THEME_SCHEME_VARIANTS,\n        elevation: COSMOPOLITAN_THEME_ELEVATION,\n        elevationVariants: COSMOPOLITAN_THEME_ELEVATION_VARIANTS,\n        typographies: COSMOPOLITAN_THEME_TYPOGRAPHY\n    };\n\n}\n","/**\n * ------------------------------------------------------------------------------\n * <auto-generated>\n *     This code was generated by a tool.\n *     Changes to this file may cause incorrect behavior and will be lost if\n *     the code is regenerated.\n * </auto-generated>\n * ------------------------------------------------------------------------------\n */\n\nexport const NAME = \"joy\";\nexport const FONT_FAMILY = \"Nunito, sans-serif\";\nexport const LAYOUT_RADIUS = \"12px\";\nexport const LAYOUT_SPACE = \"8px\";\nexport const LAYOUT_THICKNESS = \"2px\";\nexport const SCHEME_LIGHT_SURFACE = \"#f5f5f5\";\nexport const SCHEME_LIGHT_BACKGROUND = \"#eaeaea\";\nexport const SCHEME_LIGHT_FOREGROUND = \"#3c454f\";\nexport const SCHEME_LIGHT_HIGHLIGHT = \"#d1d1d1\";\nexport const SCHEME_LIGHT_MIDDLELIGHT = \"#8a8a8a\";\nexport const SCHEME_LIGHT_LOWLIGHT = \"#5c5c5c\";\nexport const SCHEME_LIGHT_TRANSPARENT = \"rgba(255, 255, 255, 0)\";\nexport const SCHEME_LIGHT_SEMI_TRANSPARENT = \"rgba(255, 255, 255, 0.67)\";\nexport const SCHEME_LIGHT_DISABLED = \"#686868\";\nexport const SCHEME_LIGHT_CONTRAST = \"#ffffff\";\nexport const SCHEME_LIGHT_SELECTION = \"rgba(204, 204, 204, 0.44)\";\nexport const SCHEME_DARK_SURFACE = \"#1e1e1e\";\nexport const SCHEME_DARK_BACKGROUND = \"#151515\";\nexport const SCHEME_DARK_FOREGROUND = \"#c3bab0\";\nexport const SCHEME_DARK_HIGHLIGHT = \"#2e2e2e\";\nexport const SCHEME_DARK_MIDDLELIGHT = \"#757575\";\nexport const SCHEME_DARK_LOWLIGHT = \"#a3a3a3\";\nexport const SCHEME_DARK_TRANSPARENT = \"rgba(255, 255, 255, 0)\";\nexport const SCHEME_DARK_SEMI_TRANSPARENT = \"rgba(255, 255, 255, 0.03)\";\nexport const SCHEME_DARK_DISABLED = \"#474747\";\nexport const SCHEME_DARK_CONTRAST = \"#000000\";\nexport const SCHEME_DARK_SELECTION = \"rgba(204, 204, 204, 0.44)\";\nexport const COLOR_LIGHT_PRIMARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_PRIMARY_50 = \"#fce4ec\";\nexport const COLOR_LIGHT_PRIMARY_100 = \"#f8bcd0\";\nexport const COLOR_LIGHT_PRIMARY_200 = \"#f48fb1\";\nexport const COLOR_LIGHT_PRIMARY_300 = \"#f06292\";\nexport const COLOR_LIGHT_PRIMARY_400 = \"#ec407a\";\nexport const COLOR_LIGHT_PRIMARY_500 = \"#e91e63\";\nexport const COLOR_LIGHT_PRIMARY_600 = \"#cb1a56\";\nexport const COLOR_LIGHT_PRIMARY_700 = \"#a31545\";\nexport const COLOR_LIGHT_PRIMARY_800 = \"#7e1035\";\nexport const COLOR_LIGHT_PRIMARY_900 = \"#3a0819\";\nexport const COLOR_LIGHT_SECONDARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_SECONDARY_50 = \"#e6f6e9\";\nexport const COLOR_LIGHT_SECONDARY_100 = \"#c3e8c9\";\nexport const COLOR_LIGHT_SECONDARY_200 = \"#9bd9a7\";\nexport const COLOR_LIGHT_SECONDARY_300 = \"#70cb83\";\nexport const COLOR_LIGHT_SECONDARY_400 = \"#4dbf68\";\nexport const COLOR_LIGHT_SECONDARY_500 = \"#21b34d\";\nexport const COLOR_LIGHT_SECONDARY_600 = \"#16a444\";\nexport const COLOR_LIGHT_SECONDARY_700 = \"#009238\";\nexport const COLOR_LIGHT_SECONDARY_800 = \"#00812d\";\nexport const COLOR_LIGHT_SECONDARY_900 = \"#006218\";\nexport const COLOR_LIGHT_TERTIARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_TERTIARY_50 = \"#e1f5fc\";\nexport const COLOR_LIGHT_TERTIARY_100 = \"#b4e6f7\";\nexport const COLOR_LIGHT_TERTIARY_200 = \"#84d5f3\";\nexport const COLOR_LIGHT_TERTIARY_300 = \"#56c5ee\";\nexport const COLOR_LIGHT_TERTIARY_400 = \"#35b8eb\";\nexport const COLOR_LIGHT_TERTIARY_500 = \"#19ace9\";\nexport const COLOR_LIGHT_TERTIARY_600 = \"#139edb\";\nexport const COLOR_LIGHT_TERTIARY_700 = \"#098bc7\";\nexport const COLOR_LIGHT_TERTIARY_800 = \"#087ab4\";\nexport const COLOR_LIGHT_TERTIARY_900 = \"#005a92\";\nexport const COLOR_LIGHT_INFO_0 = \"#ffffff\";\nexport const COLOR_LIGHT_INFO_50 = \"#f4faff\";\nexport const COLOR_LIGHT_INFO_100 = \"#ddf1ff\";\nexport const COLOR_LIGHT_INFO_200 = \"#addbff\";\nexport const COLOR_LIGHT_INFO_300 = \"#6fb6ff\";\nexport const COLOR_LIGHT_INFO_400 = \"#3990ff\";\nexport const COLOR_LIGHT_INFO_500 = \"#096bde\";\nexport const COLOR_LIGHT_INFO_600 = \"#054da7\";\nexport const COLOR_LIGHT_INFO_700 = \"#02367d\";\nexport const COLOR_LIGHT_INFO_800 = \"#072859\";\nexport const COLOR_LIGHT_INFO_900 = \"#00153c\";\nexport const COLOR_LIGHT_WARNING_0 = \"#ffffff\";\nexport const COLOR_LIGHT_WARNING_50 = \"#fff8c5\";\nexport const COLOR_LIGHT_WARNING_100 = \"#fae17d\";\nexport const COLOR_LIGHT_WARNING_200 = \"#eac54f\";\nexport const COLOR_LIGHT_WARNING_300 = \"#d4a72c\";\nexport const COLOR_LIGHT_WARNING_400 = \"#bf8700\";\nexport const COLOR_LIGHT_WARNING_500 = \"#9a6700\";\nexport const COLOR_LIGHT_WARNING_600 = \"#7d4e00\";\nexport const COLOR_LIGHT_WARNING_700 = \"#633c01\";\nexport const COLOR_LIGHT_WARNING_800 = \"#4d2d00\";\nexport const COLOR_LIGHT_WARNING_900 = \"#3b2300\";\nexport const COLOR_LIGHT_DANGER_0 = \"#ffffff\";\nexport const COLOR_LIGHT_DANGER_50 = \"#fff8f6\";\nexport const COLOR_LIGHT_DANGER_100 = \"#ffe9e8\";\nexport const COLOR_LIGHT_DANGER_200 = \"#ffc7c5\";\nexport const COLOR_LIGHT_DANGER_300 = \"#ff9192\";\nexport const COLOR_LIGHT_DANGER_400 = \"#fa5255\";\nexport const COLOR_LIGHT_DANGER_500 = \"#d3232f\";\nexport const COLOR_LIGHT_DANGER_600 = \"#a10e25\";\nexport const COLOR_LIGHT_DANGER_700 = \"#77061b\";\nexport const COLOR_LIGHT_DANGER_800 = \"#580013\";\nexport const COLOR_LIGHT_DANGER_900 = \"#39000d\";\nexport const COLOR_LIGHT_SUCCESS_0 = \"#ffffff\";\nexport const COLOR_LIGHT_SUCCESS_50 = \"#f3fef5\";\nexport const COLOR_LIGHT_SUCCESS_100 = \"#d7f5dd\";\nexport const COLOR_LIGHT_SUCCESS_200 = \"#77ec95\";\nexport const COLOR_LIGHT_SUCCESS_300 = \"#4cc76e\";\nexport const COLOR_LIGHT_SUCCESS_400 = \"#2ca24d\";\nexport const COLOR_LIGHT_SUCCESS_500 = \"#1a7d36\";\nexport const COLOR_LIGHT_SUCCESS_600 = \"#0f5d26\";\nexport const COLOR_LIGHT_SUCCESS_700 = \"#034318\";\nexport const COLOR_LIGHT_SUCCESS_800 = \"#002f0f\";\nexport const COLOR_LIGHT_SUCCESS_900 = \"#001d09\";\nexport const COLOR_LIGHT_HIGHLIGHT_0 = \"#ffffff\";\nexport const COLOR_LIGHT_HIGHLIGHT_50 = \"#fdf7ff\";\nexport const COLOR_LIGHT_HIGHLIGHT_100 = \"#f4eaff\";\nexport const COLOR_LIGHT_HIGHLIGHT_200 = \"#e1cbff\";\nexport const COLOR_LIGHT_HIGHLIGHT_300 = \"#c69eff\";\nexport const COLOR_LIGHT_HIGHLIGHT_400 = \"#a374f9\";\nexport const COLOR_LIGHT_HIGHLIGHT_500 = \"#814dde\";\nexport const COLOR_LIGHT_HIGHLIGHT_600 = \"#5f35ae\";\nexport const COLOR_LIGHT_HIGHLIGHT_700 = \"#452382\";\nexport const COLOR_LIGHT_HIGHLIGHT_800 = \"#301761\";\nexport const COLOR_LIGHT_HIGHLIGHT_900 = \"#1d0a42\";\nexport const COLOR_LIGHT_NEUTRAL_0 = \"#ffffff\";\nexport const COLOR_LIGHT_NEUTRAL_50 = \"#f7f7f8\";\nexport const COLOR_LIGHT_NEUTRAL_100 = \"#ebebef\";\nexport const COLOR_LIGHT_NEUTRAL_200 = \"#d8d8df\";\nexport const COLOR_LIGHT_NEUTRAL_300 = \"#b9b9c6\";\nexport const COLOR_LIGHT_NEUTRAL_400 = \"#8f8fa3\";\nexport const COLOR_LIGHT_NEUTRAL_500 = \"#73738c\";\nexport const COLOR_LIGHT_NEUTRAL_600 = \"#5a5a72\";\nexport const COLOR_LIGHT_NEUTRAL_700 = \"#434356\";\nexport const COLOR_LIGHT_NEUTRAL_800 = \"#25252d\";\nexport const COLOR_LIGHT_NEUTRAL_900 = \"#131318\";\nexport const COLOR_DARK_PRIMARY_0 = \"#000000\";\nexport const COLOR_DARK_PRIMARY_50 = \"#3a0819\";\nexport const COLOR_DARK_PRIMARY_100 = \"#7e1035\";\nexport const COLOR_DARK_PRIMARY_200 = \"#a31545\";\nexport const COLOR_DARK_PRIMARY_300 = \"#cb1a56\";\nexport const COLOR_DARK_PRIMARY_400 = \"#e91e63\";\nexport const COLOR_DARK_PRIMARY_500 = \"#ec407a\";\nexport const COLOR_DARK_PRIMARY_600 = \"#f06292\";\nexport const COLOR_DARK_PRIMARY_700 = \"#f48fb1\";\nexport const COLOR_DARK_PRIMARY_800 = \"#f8bcd0\";\nexport const COLOR_DARK_PRIMARY_900 = \"#fce4ec\";\nexport const COLOR_DARK_SECONDARY_0 = \"#000000\";\nexport const COLOR_DARK_SECONDARY_50 = \"#006218\";\nexport const COLOR_DARK_SECONDARY_100 = \"#00812d\";\nexport const COLOR_DARK_SECONDARY_200 = \"#009238\";\nexport const COLOR_DARK_SECONDARY_300 = \"#16a444\";\nexport const COLOR_DARK_SECONDARY_400 = \"#21b34d\";\nexport const COLOR_DARK_SECONDARY_500 = \"#4dbf68\";\nexport const COLOR_DARK_SECONDARY_600 = \"#70cb83\";\nexport const COLOR_DARK_SECONDARY_700 = \"#9bd9a7\";\nexport const COLOR_DARK_SECONDARY_800 = \"#c3e8c9\";\nexport const COLOR_DARK_SECONDARY_900 = \"#e6f6e9\";\nexport const COLOR_DARK_TERTIARY_0 = \"#000000\";\nexport const COLOR_DARK_TERTIARY_50 = \"#005a92\";\nexport const COLOR_DARK_TERTIARY_100 = \"#087ab4\";\nexport const COLOR_DARK_TERTIARY_200 = \"#098bc7\";\nexport const COLOR_DARK_TERTIARY_300 = \"#139edb\";\nexport const COLOR_DARK_TERTIARY_400 = \"#19ace9\";\nexport const COLOR_DARK_TERTIARY_500 = \"#35b8eb\";\nexport const COLOR_DARK_TERTIARY_600 = \"#56c5ee\";\nexport const COLOR_DARK_TERTIARY_700 = \"#84d5f3\";\nexport const COLOR_DARK_TERTIARY_800 = \"#b4e6f7\";\nexport const COLOR_DARK_TERTIARY_900 = \"#e1f5fc\";\nexport const COLOR_DARK_INFO_0 = \"#000000\";\nexport const COLOR_DARK_INFO_50 = \"#00153c\";\nexport const COLOR_DARK_INFO_100 = \"#072859\";\nexport const COLOR_DARK_INFO_200 = \"#02367d\";\nexport const COLOR_DARK_INFO_300 = \"#054da7\";\nexport const COLOR_DARK_INFO_400 = \"#096bde\";\nexport const COLOR_DARK_INFO_500 = \"#3990ff\";\nexport const COLOR_DARK_INFO_600 = \"#6fb6ff\";\nexport const COLOR_DARK_INFO_700 = \"#addbff\";\nexport const COLOR_DARK_INFO_800 = \"#ddf1ff\";\nexport const COLOR_DARK_INFO_900 = \"#f4faff\";\nexport const COLOR_DARK_WARNING_0 = \"#000000\";\nexport const COLOR_DARK_WARNING_50 = \"#3b2300\";\nexport const COLOR_DARK_WARNING_100 = \"#4d2d00\";\nexport const COLOR_DARK_WARNING_200 = \"#633c01\";\nexport const COLOR_DARK_WARNING_300 = \"#7d4e00\";\nexport const COLOR_DARK_WARNING_400 = \"#9a6700\";\nexport const COLOR_DARK_WARNING_500 = \"#bf8700\";\nexport const COLOR_DARK_WARNING_600 = \"#d4a72c\";\nexport const COLOR_DARK_WARNING_700 = \"#eac54f\";\nexport const COLOR_DARK_WARNING_800 = \"#fae17d\";\nexport const COLOR_DARK_WARNING_900 = \"#fff8c5\";\nexport const COLOR_DARK_DANGER_0 = \"#000000\";\nexport const COLOR_DARK_DANGER_50 = \"#39000d\";\nexport const COLOR_DARK_DANGER_100 = \"#580013\";\nexport const COLOR_DARK_DANGER_200 = \"#77061b\";\nexport const COLOR_DARK_DANGER_300 = \"#a10e25\";\nexport const COLOR_DARK_DANGER_400 = \"#d3232f\";\nexport const COLOR_DARK_DANGER_500 = \"#fa5255\";\nexport const COLOR_DARK_DANGER_600 = \"#ff9192\";\nexport const COLOR_DARK_DANGER_700 = \"#ffc7c5\";\nexport const COLOR_DARK_DANGER_800 = \"#ffe9e8\";\nexport const COLOR_DARK_DANGER_900 = \"#fff8f6\";\nexport const COLOR_DARK_SUCCESS_0 = \"#000000\";\nexport const COLOR_DARK_SUCCESS_50 = \"#001d09\";\nexport const COLOR_DARK_SUCCESS_100 = \"#002f0f\";\nexport const COLOR_DARK_SUCCESS_200 = \"#034318\";\nexport const COLOR_DARK_SUCCESS_300 = \"#0f5d26\";\nexport const COLOR_DARK_SUCCESS_400 = \"#1a7d36\";\nexport const COLOR_DARK_SUCCESS_500 = \"#2ca24d\";\nexport const COLOR_DARK_SUCCESS_600 = \"#4cc76e\";\nexport const COLOR_DARK_SUCCESS_700 = \"#77ec95\";\nexport const COLOR_DARK_SUCCESS_800 = \"#d7f5dd\";\nexport const COLOR_DARK_SUCCESS_900 = \"#f3fef5\";\nexport const COLOR_DARK_HIGHLIGHT_0 = \"#000000\";\nexport const COLOR_DARK_HIGHLIGHT_50 = \"#1d0a42\";\nexport const COLOR_DARK_HIGHLIGHT_100 = \"#301761\";\nexport const COLOR_DARK_HIGHLIGHT_200 = \"#452382\";\nexport const COLOR_DARK_HIGHLIGHT_300 = \"#5f35ae\";\nexport const COLOR_DARK_HIGHLIGHT_400 = \"#814dde\";\nexport const COLOR_DARK_HIGHLIGHT_500 = \"#a374f9\";\nexport const COLOR_DARK_HIGHLIGHT_600 = \"#c69eff\";\nexport const COLOR_DARK_HIGHLIGHT_700 = \"#e1cbff\";\nexport const COLOR_DARK_HIGHLIGHT_800 = \"#f4eaff\";\nexport const COLOR_DARK_HIGHLIGHT_900 = \"#fdf7ff\";\nexport const COLOR_DARK_NEUTRAL_0 = \"#000000\";\nexport const COLOR_DARK_NEUTRAL_50 = \"#131318\";\nexport const COLOR_DARK_NEUTRAL_100 = \"#25252d\";\nexport const COLOR_DARK_NEUTRAL_200 = \"#434356\";\nexport const COLOR_DARK_NEUTRAL_300 = \"#5a5a72\";\nexport const COLOR_DARK_NEUTRAL_400 = \"#73738c\";\nexport const COLOR_DARK_NEUTRAL_500 = \"#8f8fa3\";\nexport const COLOR_DARK_NEUTRAL_600 = \"#b9b9c6\";\nexport const COLOR_DARK_NEUTRAL_700 = \"#d8d8df\";\nexport const COLOR_DARK_NEUTRAL_800 = \"#ebebef\";\nexport const COLOR_DARK_NEUTRAL_900 = \"#f7f7f8\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_SIZE = \"96px\";\nexport const TYPOGRAPHY_HEADLINE1_LINE_HEIGHT = \"100px\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE1_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_SIZE = \"60px\";\nexport const TYPOGRAPHY_HEADLINE2_LINE_HEIGHT = \"64px\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE2_LETTER_SPACING = \"-0.13333333333333333px\";\nexport const TYPOGRAPHY_HEADLINE2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_SIZE = \"48px\";\nexport const TYPOGRAPHY_HEADLINE3_LINE_HEIGHT = \"52px\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_HEADLINE3_LETTER_SPACING = \"normal\";\nexport const TYPOGRAPHY_HEADLINE3_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_SIZE = \"34px\";\nexport const TYPOGRAPHY_HEADLINE4_LINE_HEIGHT = \"38px\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_HEADLINE4_LETTER_SPACING = \"0.11764705882352941px\";\nexport const TYPOGRAPHY_HEADLINE4_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE5_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_HEADLINE5_LETTER_SPACING = \"normal\";\nexport const TYPOGRAPHY_HEADLINE5_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_SIZE = \"20px\";\nexport const TYPOGRAPHY_HEADLINE6_LINE_HEIGHT = \"24px\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_WEIGHT = \"500\";\nexport const TYPOGRAPHY_HEADLINE6_LETTER_SPACING = \"0.2px\";\nexport const TYPOGRAPHY_HEADLINE6_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_SUBTITLE1_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_SUBTITLE1_FONT_SIZE = \"16px\";\nexport const TYPOGRAPHY_SUBTITLE1_LINE_HEIGHT = \"20px\";\nexport const TYPOGRAPHY_SUBTITLE1_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_SUBTITLE1_LETTER_SPACING = \"0.15px\";\nexport const TYPOGRAPHY_SUBTITLE1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_SUBTITLE1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_SUBTITLE2_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_SUBTITLE2_FONT_SIZE = \"14px\";\nexport const TYPOGRAPHY_SUBTITLE2_LINE_HEIGHT = \"18px\";\nexport const TYPOGRAPHY_SUBTITLE2_FONT_WEIGHT = \"500\";\nexport const TYPOGRAPHY_SUBTITLE2_LETTER_SPACING = \"0.1142857142857143px\";\nexport const TYPOGRAPHY_SUBTITLE2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_SUBTITLE2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BODY1_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_BODY1_FONT_SIZE = \"16px\";\nexport const TYPOGRAPHY_BODY1_LINE_HEIGHT = \"20px\";\nexport const TYPOGRAPHY_BODY1_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_BODY1_LETTER_SPACING = \"0.5px\";\nexport const TYPOGRAPHY_BODY1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BODY1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BODY2_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_BODY2_FONT_SIZE = \"14px\";\nexport const TYPOGRAPHY_BODY2_LINE_HEIGHT = \"18px\";\nexport const TYPOGRAPHY_BODY2_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_BODY2_LETTER_SPACING = \"0.2857142857142857px\";\nexport const TYPOGRAPHY_BODY2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BODY2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_SUPPORTING_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_SUPPORTING_FONT_SIZE = \"12px\";\nexport const TYPOGRAPHY_SUPPORTING_LINE_HEIGHT = \"14px\";\nexport const TYPOGRAPHY_SUPPORTING_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_SUPPORTING_LETTER_SPACING = \"0.2857142857142857px\";\nexport const TYPOGRAPHY_SUPPORTING_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_SUPPORTING_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_CAPTION_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_CAPTION_FONT_SIZE = \"12px\";\nexport const TYPOGRAPHY_CAPTION_LINE_HEIGHT = \"16px\";\nexport const TYPOGRAPHY_CAPTION_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_CAPTION_LETTER_SPACING = \"0.5333333333333333px\";\nexport const TYPOGRAPHY_CAPTION_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_CAPTION_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BUTTON_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_BUTTON_FONT_SIZE = \"14px\";\nexport const TYPOGRAPHY_BUTTON_LINE_HEIGHT = \"18px\";\nexport const TYPOGRAPHY_BUTTON_FONT_WEIGHT = \"700\";\nexport const TYPOGRAPHY_BUTTON_LETTER_SPACING = \"1.4285714285714286px\";\nexport const TYPOGRAPHY_BUTTON_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BUTTON_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_OVERLINE_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_OVERLINE_FONT_SIZE = \"12px\";\nexport const TYPOGRAPHY_OVERLINE_LINE_HEIGHT = \"16px\";\nexport const TYPOGRAPHY_OVERLINE_FONT_WEIGHT = \"500\";\nexport const TYPOGRAPHY_OVERLINE_LETTER_SPACING = \"2.6666666666666665px\";\nexport const TYPOGRAPHY_OVERLINE_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_OVERLINE_TEXT_TRANSFORM = \"none\";\nexport const ELEVATION_NONE = \"none\";\nexport const ELEVATION_LIGHT_LIGHT = \"0px 2px 2px -2px rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_Y_0 = \"2px\";\nexport const ELEVATION_LIGHT_LIGHT_BLUR_0 = \"2px\";\nexport const ELEVATION_LIGHT_LIGHT_SPREAD_0 = \"-2px\";\nexport const ELEVATION_LIGHT_LIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_SEMILIGHT = \"0px 4px 4px -2px rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_Y_0 = \"4px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_BLUR_0 = \"4px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_SPREAD_0 = \"-2px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_REGULAR = \"0px 6px 6px -2px rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_Y_0 = \"6px\";\nexport const ELEVATION_LIGHT_REGULAR_BLUR_0 = \"6px\";\nexport const ELEVATION_LIGHT_REGULAR_SPREAD_0 = \"-2px\";\nexport const ELEVATION_LIGHT_REGULAR_COLOR_0 = \"rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_SEMIBOLD = \"0px 8px 8px -2px rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_Y_0 = \"8px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_BLUR_0 = \"8px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_SPREAD_0 = \"-2px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_COLOR_0 = \"rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_BOLD = \"0px 10px 10px -2px rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_Y_0 = \"10px\";\nexport const ELEVATION_LIGHT_BOLD_BLUR_0 = \"10px\";\nexport const ELEVATION_LIGHT_BOLD_SPREAD_0 = \"-2px\";\nexport const ELEVATION_LIGHT_BOLD_COLOR_0 = \"rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_EXTRABOLD =\n  \"0px 12px 12px -2px rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_Y_0 = \"12px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_BLUR_0 = \"12px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_SPREAD_0 = \"-2px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_COLOR_0 = \"rgba(0, 0, 0, 0.17)\";\nexport const ELEVATION_DARK_LIGHT = \"0px 2px 2px -2px rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_Y_0 = \"2px\";\nexport const ELEVATION_DARK_LIGHT_BLUR_0 = \"2px\";\nexport const ELEVATION_DARK_LIGHT_SPREAD_0 = \"-2px\";\nexport const ELEVATION_DARK_LIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_SEMILIGHT = \"0px 4px 4px -2px rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_Y_0 = \"4px\";\nexport const ELEVATION_DARK_SEMILIGHT_BLUR_0 = \"4px\";\nexport const ELEVATION_DARK_SEMILIGHT_SPREAD_0 = \"-2px\";\nexport const ELEVATION_DARK_SEMILIGHT_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_REGULAR = \"0px 6px 6px -2px rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_Y_0 = \"6px\";\nexport const ELEVATION_DARK_REGULAR_BLUR_0 = \"6px\";\nexport const ELEVATION_DARK_REGULAR_SPREAD_0 = \"-2px\";\nexport const ELEVATION_DARK_REGULAR_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_SEMIBOLD = \"0px 8px 8px -2px rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_Y_0 = \"8px\";\nexport const ELEVATION_DARK_SEMIBOLD_BLUR_0 = \"8px\";\nexport const ELEVATION_DARK_SEMIBOLD_SPREAD_0 = \"-2px\";\nexport const ELEVATION_DARK_SEMIBOLD_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_BOLD = \"0px 10px 10px -2px rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_BOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_BOLD_OFFSET_Y_0 = \"10px\";\nexport const ELEVATION_DARK_BOLD_BLUR_0 = \"10px\";\nexport const ELEVATION_DARK_BOLD_SPREAD_0 = \"-2px\";\nexport const ELEVATION_DARK_BOLD_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_EXTRABOLD =\n  \"0px 12px 12px -2px rgba(0, 0, 0, 0.24)\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_X_0 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_Y_0 = \"12px\";\nexport const ELEVATION_DARK_EXTRABOLD_BLUR_0 = \"12px\";\nexport const ELEVATION_DARK_EXTRABOLD_SPREAD_0 = \"-2px\";\nexport const ELEVATION_DARK_EXTRABOLD_COLOR_0 = \"rgba(0, 0, 0, 0.24)\";\nexport const SIZE_TINY = \"2px\";\nexport const SIZE_SMALL = \"4px\";\nexport const SIZE_MEDIUM = \"8px\";\nexport const SIZE_LARGE = \"16px\";\nexport const SIZE_GIANT = \"32px\";\nexport const SIZE_KEY = \"tiny small medium large giant\";\nexport const SIZE_KEY_TINY = \"tiny\";\nexport const SIZE_KEY_SMALL = \"small\";\nexport const SIZE_KEY_MEDIUM = \"medium\";\nexport const SIZE_KEY_LARGE = \"large\";\nexport const SIZE_KEY_GIANT = \"giant\";\nexport const TYPOGRAPHY_KEY_HEADLINE1 = \"headline1\";\nexport const TYPOGRAPHY_KEY_HEADLINE2 = \"headline2\";\nexport const TYPOGRAPHY_KEY_HEADLINE3 = \"headline3\";\nexport const TYPOGRAPHY_KEY_HEADLINE4 = \"headline4\";\nexport const TYPOGRAPHY_KEY_HEADLINE5 = \"headline5\";\nexport const TYPOGRAPHY_KEY_HEADLINE6 = \"headline6\";\nexport const TYPOGRAPHY_KEY_SUBTITLE1 = \"subtitle1\";\nexport const TYPOGRAPHY_KEY_SUBTITLE2 = \"subtitle2\";\nexport const TYPOGRAPHY_KEY_BODY1 = \"body1\";\nexport const TYPOGRAPHY_KEY_BODY2 = \"body2\";\nexport const TYPOGRAPHY_KEY_SUPPORTING = \"supporting\";\nexport const TYPOGRAPHY_KEY_CAPTION = \"caption\";\nexport const TYPOGRAPHY_KEY_BUTTON = \"button\";\nexport const TYPOGRAPHY_KEY_OVERLINE = \"overline\";\nexport const ELEVATION_KEY = \"light semilight regular semibold bold extrabold\";\nexport const ELEVATION_KEY_LIGHT = \"light\";\nexport const ELEVATION_KEY_SEMILIGHT = \"semilight\";\nexport const ELEVATION_KEY_REGULAR = \"regular\";\nexport const ELEVATION_KEY_SEMIBOLD = \"semibold\";\nexport const ELEVATION_KEY_BOLD = \"bold\";\nexport const ELEVATION_KEY_EXTRABOLD = \"extrabold\";\nexport const APPEARANCE = \"default outline plain soft solid\";\nexport const APPEARANCE_DEFAULT = \"default\";\nexport const APPEARANCE_OUTLINE = \"outline\";\nexport const APPEARANCE_PLAIN = \"plain\";\nexport const APPEARANCE_SOFT = \"soft\";\nexport const APPEARANCE_SOLID = \"solid\";\nexport const VARIANT =\n  \"primary secondary tertiary danger warning success info highlight neutral\";\nexport const VARIANT_PRIMARY = \"primary\";\nexport const VARIANT_SECONDARY = \"secondary\";\nexport const VARIANT_TERTIARY = \"tertiary\";\nexport const VARIANT_DANGER = \"danger\";\nexport const VARIANT_WARNING = \"warning\";\nexport const VARIANT_SUCCESS = \"success\";\nexport const VARIANT_INFO = \"info\";\nexport const VARIANT_HIGHLIGHT = \"highlight\";\nexport const VARIANT_NEUTRAL = \"neutral\";\nexport const DURATION = \"200ms 400ms 600ms\";\nexport const DURATION_SHORT = \"200ms\";\nexport const DURATION_MEDIUM = \"400ms\";\nexport const DURATION_LONG = \"600ms\";\n","// #region Imports\n\nimport { ThemeFactory } from './ThemeFactory';\nimport { COLOR_DARK_DANGER_0, COLOR_DARK_DANGER_100, COLOR_DARK_DANGER_200, COLOR_DARK_DANGER_300, COLOR_DARK_DANGER_400, COLOR_DARK_DANGER_50, COLOR_DARK_DANGER_500, COLOR_DARK_DANGER_600, COLOR_DARK_DANGER_700, COLOR_DARK_DANGER_800, COLOR_DARK_DANGER_900, COLOR_DARK_HIGHLIGHT_0, COLOR_DARK_HIGHLIGHT_100, COLOR_DARK_HIGHLIGHT_200, COLOR_DARK_HIGHLIGHT_300, COLOR_DARK_HIGHLIGHT_400, COLOR_DARK_HIGHLIGHT_50, COLOR_DARK_HIGHLIGHT_500, COLOR_DARK_HIGHLIGHT_600, COLOR_DARK_HIGHLIGHT_700, COLOR_DARK_HIGHLIGHT_800, COLOR_DARK_HIGHLIGHT_900, COLOR_DARK_INFO_0, COLOR_DARK_INFO_100, COLOR_DARK_INFO_200, COLOR_DARK_INFO_300, COLOR_DARK_INFO_400, COLOR_DARK_INFO_50, COLOR_DARK_INFO_500, COLOR_DARK_INFO_600, COLOR_DARK_INFO_700, COLOR_DARK_INFO_800, COLOR_DARK_INFO_900, COLOR_DARK_NEUTRAL_0, COLOR_DARK_NEUTRAL_100, COLOR_DARK_NEUTRAL_200, COLOR_DARK_NEUTRAL_300, COLOR_DARK_NEUTRAL_400, COLOR_DARK_NEUTRAL_50, COLOR_DARK_NEUTRAL_500, COLOR_DARK_NEUTRAL_600, COLOR_DARK_NEUTRAL_700, COLOR_DARK_NEUTRAL_800, COLOR_DARK_NEUTRAL_900, COLOR_DARK_PRIMARY_0, COLOR_DARK_PRIMARY_100, COLOR_DARK_PRIMARY_200, COLOR_DARK_PRIMARY_300, COLOR_DARK_PRIMARY_400, COLOR_DARK_PRIMARY_50, COLOR_DARK_PRIMARY_500, COLOR_DARK_PRIMARY_600, COLOR_DARK_PRIMARY_700, COLOR_DARK_PRIMARY_800, COLOR_DARK_PRIMARY_900, COLOR_DARK_SECONDARY_0, COLOR_DARK_SECONDARY_100, COLOR_DARK_SECONDARY_200, COLOR_DARK_SECONDARY_300, COLOR_DARK_SECONDARY_400, COLOR_DARK_SECONDARY_50, COLOR_DARK_SECONDARY_500, COLOR_DARK_SECONDARY_600, COLOR_DARK_SECONDARY_700, COLOR_DARK_SECONDARY_800, COLOR_DARK_SECONDARY_900, COLOR_DARK_SUCCESS_0, COLOR_DARK_SUCCESS_100, COLOR_DARK_SUCCESS_200, COLOR_DARK_SUCCESS_300, COLOR_DARK_SUCCESS_400, COLOR_DARK_SUCCESS_50, COLOR_DARK_SUCCESS_500, COLOR_DARK_SUCCESS_600, COLOR_DARK_SUCCESS_700, COLOR_DARK_SUCCESS_800, COLOR_DARK_SUCCESS_900, COLOR_DARK_TERTIARY_0, COLOR_DARK_TERTIARY_100, COLOR_DARK_TERTIARY_200, COLOR_DARK_TERTIARY_300, COLOR_DARK_TERTIARY_400, COLOR_DARK_TERTIARY_50, COLOR_DARK_TERTIARY_500, COLOR_DARK_TERTIARY_600, COLOR_DARK_TERTIARY_700, COLOR_DARK_TERTIARY_800, COLOR_DARK_TERTIARY_900, COLOR_DARK_WARNING_0, COLOR_DARK_WARNING_100, COLOR_DARK_WARNING_200, COLOR_DARK_WARNING_300, COLOR_DARK_WARNING_400, COLOR_DARK_WARNING_50, COLOR_DARK_WARNING_500, COLOR_DARK_WARNING_600, COLOR_DARK_WARNING_700, COLOR_DARK_WARNING_800, COLOR_DARK_WARNING_900, COLOR_LIGHT_DANGER_0, COLOR_LIGHT_DANGER_100, COLOR_LIGHT_DANGER_200, COLOR_LIGHT_DANGER_300, COLOR_LIGHT_DANGER_400, COLOR_LIGHT_DANGER_50, COLOR_LIGHT_DANGER_500, COLOR_LIGHT_DANGER_600, COLOR_LIGHT_DANGER_700, COLOR_LIGHT_DANGER_800, COLOR_LIGHT_DANGER_900, COLOR_LIGHT_HIGHLIGHT_0, COLOR_LIGHT_HIGHLIGHT_100, COLOR_LIGHT_HIGHLIGHT_200, COLOR_LIGHT_HIGHLIGHT_300, COLOR_LIGHT_HIGHLIGHT_400, COLOR_LIGHT_HIGHLIGHT_50, COLOR_LIGHT_HIGHLIGHT_500, COLOR_LIGHT_HIGHLIGHT_600, COLOR_LIGHT_HIGHLIGHT_700, COLOR_LIGHT_HIGHLIGHT_800, COLOR_LIGHT_HIGHLIGHT_900, COLOR_LIGHT_INFO_0, COLOR_LIGHT_INFO_100, COLOR_LIGHT_INFO_200, COLOR_LIGHT_INFO_300, COLOR_LIGHT_INFO_400, COLOR_LIGHT_INFO_50, COLOR_LIGHT_INFO_500, COLOR_LIGHT_INFO_600, COLOR_LIGHT_INFO_700, COLOR_LIGHT_INFO_800, COLOR_LIGHT_INFO_900, COLOR_LIGHT_NEUTRAL_0, COLOR_LIGHT_NEUTRAL_100, COLOR_LIGHT_NEUTRAL_200, COLOR_LIGHT_NEUTRAL_300, COLOR_LIGHT_NEUTRAL_400, COLOR_LIGHT_NEUTRAL_50, COLOR_LIGHT_NEUTRAL_500, COLOR_LIGHT_NEUTRAL_600, COLOR_LIGHT_NEUTRAL_700, COLOR_LIGHT_NEUTRAL_800, COLOR_LIGHT_NEUTRAL_900, COLOR_LIGHT_PRIMARY_0, COLOR_LIGHT_PRIMARY_100, COLOR_LIGHT_PRIMARY_200, COLOR_LIGHT_PRIMARY_300, COLOR_LIGHT_PRIMARY_400, COLOR_LIGHT_PRIMARY_50, COLOR_LIGHT_PRIMARY_500, COLOR_LIGHT_PRIMARY_600, COLOR_LIGHT_PRIMARY_700, COLOR_LIGHT_PRIMARY_800, COLOR_LIGHT_PRIMARY_900, COLOR_LIGHT_SECONDARY_0, COLOR_LIGHT_SECONDARY_100, COLOR_LIGHT_SECONDARY_200, COLOR_LIGHT_SECONDARY_300, COLOR_LIGHT_SECONDARY_400, COLOR_LIGHT_SECONDARY_50, COLOR_LIGHT_SECONDARY_500, COLOR_LIGHT_SECONDARY_600, COLOR_LIGHT_SECONDARY_700, COLOR_LIGHT_SECONDARY_800, COLOR_LIGHT_SECONDARY_900, COLOR_LIGHT_SUCCESS_0, COLOR_LIGHT_SUCCESS_100, COLOR_LIGHT_SUCCESS_200, COLOR_LIGHT_SUCCESS_300, COLOR_LIGHT_SUCCESS_400, COLOR_LIGHT_SUCCESS_50, COLOR_LIGHT_SUCCESS_500, COLOR_LIGHT_SUCCESS_600, COLOR_LIGHT_SUCCESS_700, COLOR_LIGHT_SUCCESS_800, COLOR_LIGHT_SUCCESS_900, COLOR_LIGHT_TERTIARY_0, COLOR_LIGHT_TERTIARY_100, COLOR_LIGHT_TERTIARY_200, COLOR_LIGHT_TERTIARY_300, COLOR_LIGHT_TERTIARY_400, COLOR_LIGHT_TERTIARY_50, COLOR_LIGHT_TERTIARY_500, COLOR_LIGHT_TERTIARY_600, COLOR_LIGHT_TERTIARY_700, COLOR_LIGHT_TERTIARY_800, COLOR_LIGHT_TERTIARY_900, COLOR_LIGHT_WARNING_0, COLOR_LIGHT_WARNING_100, COLOR_LIGHT_WARNING_200, COLOR_LIGHT_WARNING_300, COLOR_LIGHT_WARNING_400, COLOR_LIGHT_WARNING_50, COLOR_LIGHT_WARNING_500, COLOR_LIGHT_WARNING_600, COLOR_LIGHT_WARNING_700, COLOR_LIGHT_WARNING_800, COLOR_LIGHT_WARNING_900, ELEVATION_DARK_BOLD, ELEVATION_DARK_EXTRABOLD, ELEVATION_DARK_LIGHT, ELEVATION_DARK_REGULAR, ELEVATION_DARK_SEMIBOLD, ELEVATION_DARK_SEMILIGHT, ELEVATION_KEY_BOLD, ELEVATION_KEY_EXTRABOLD, ELEVATION_KEY_LIGHT, ELEVATION_KEY_REGULAR, ELEVATION_KEY_SEMIBOLD, ELEVATION_KEY_SEMILIGHT, ELEVATION_LIGHT_BOLD, ELEVATION_LIGHT_EXTRABOLD, ELEVATION_LIGHT_LIGHT, ELEVATION_LIGHT_REGULAR, ELEVATION_LIGHT_SEMIBOLD, ELEVATION_LIGHT_SEMILIGHT, FONT_FAMILY, LAYOUT_RADIUS, LAYOUT_SPACE, LAYOUT_THICKNESS, NAME, SCHEME_DARK_BACKGROUND, SCHEME_DARK_CONTRAST, SCHEME_DARK_DISABLED, SCHEME_DARK_FOREGROUND, SCHEME_DARK_HIGHLIGHT, SCHEME_DARK_LOWLIGHT, SCHEME_DARK_MIDDLELIGHT, SCHEME_DARK_SELECTION, SCHEME_DARK_SEMI_TRANSPARENT, SCHEME_DARK_SURFACE, SCHEME_DARK_TRANSPARENT, SCHEME_LIGHT_BACKGROUND, SCHEME_LIGHT_CONTRAST, SCHEME_LIGHT_DISABLED, SCHEME_LIGHT_FOREGROUND, SCHEME_LIGHT_HIGHLIGHT, SCHEME_LIGHT_LOWLIGHT, SCHEME_LIGHT_MIDDLELIGHT, SCHEME_LIGHT_SELECTION, SCHEME_LIGHT_SEMI_TRANSPARENT, SCHEME_LIGHT_SURFACE, SCHEME_LIGHT_TRANSPARENT, TYPOGRAPHY_BODY1_FONT_FAMILY, TYPOGRAPHY_BODY1_FONT_SIZE, TYPOGRAPHY_BODY1_FONT_WEIGHT, TYPOGRAPHY_BODY1_LETTER_SPACING, TYPOGRAPHY_BODY1_LINE_HEIGHT, TYPOGRAPHY_BODY1_TEXT_DECORATION, TYPOGRAPHY_BODY1_TEXT_TRANSFORM, TYPOGRAPHY_BODY2_FONT_FAMILY, TYPOGRAPHY_BODY2_FONT_SIZE, TYPOGRAPHY_BODY2_FONT_WEIGHT, TYPOGRAPHY_BODY2_LETTER_SPACING, TYPOGRAPHY_BODY2_LINE_HEIGHT, TYPOGRAPHY_BODY2_TEXT_DECORATION, TYPOGRAPHY_BODY2_TEXT_TRANSFORM, TYPOGRAPHY_BUTTON_FONT_FAMILY, TYPOGRAPHY_BUTTON_FONT_SIZE, TYPOGRAPHY_BUTTON_FONT_WEIGHT, TYPOGRAPHY_BUTTON_LETTER_SPACING, TYPOGRAPHY_BUTTON_LINE_HEIGHT, TYPOGRAPHY_BUTTON_TEXT_DECORATION, TYPOGRAPHY_BUTTON_TEXT_TRANSFORM, TYPOGRAPHY_CAPTION_FONT_FAMILY, TYPOGRAPHY_CAPTION_FONT_SIZE, TYPOGRAPHY_CAPTION_FONT_WEIGHT, TYPOGRAPHY_CAPTION_LETTER_SPACING, TYPOGRAPHY_CAPTION_LINE_HEIGHT, TYPOGRAPHY_CAPTION_TEXT_DECORATION, TYPOGRAPHY_CAPTION_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE1_FONT_FAMILY, TYPOGRAPHY_HEADLINE1_FONT_SIZE, TYPOGRAPHY_HEADLINE1_FONT_WEIGHT, TYPOGRAPHY_HEADLINE1_LETTER_SPACING, TYPOGRAPHY_HEADLINE1_LINE_HEIGHT, TYPOGRAPHY_HEADLINE1_TEXT_DECORATION, TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE2_FONT_FAMILY, TYPOGRAPHY_HEADLINE2_FONT_SIZE, TYPOGRAPHY_HEADLINE2_FONT_WEIGHT, TYPOGRAPHY_HEADLINE2_LETTER_SPACING, TYPOGRAPHY_HEADLINE2_LINE_HEIGHT, TYPOGRAPHY_HEADLINE2_TEXT_DECORATION, TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE3_FONT_FAMILY, TYPOGRAPHY_HEADLINE3_FONT_SIZE, TYPOGRAPHY_HEADLINE3_FONT_WEIGHT, TYPOGRAPHY_HEADLINE3_LETTER_SPACING, TYPOGRAPHY_HEADLINE3_LINE_HEIGHT, TYPOGRAPHY_HEADLINE3_TEXT_DECORATION, TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE4_FONT_FAMILY, TYPOGRAPHY_HEADLINE4_FONT_SIZE, TYPOGRAPHY_HEADLINE4_FONT_WEIGHT, TYPOGRAPHY_HEADLINE4_LETTER_SPACING, TYPOGRAPHY_HEADLINE4_LINE_HEIGHT, TYPOGRAPHY_HEADLINE4_TEXT_DECORATION, TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE5_FONT_FAMILY, TYPOGRAPHY_HEADLINE5_FONT_SIZE, TYPOGRAPHY_HEADLINE5_FONT_WEIGHT, TYPOGRAPHY_HEADLINE5_LETTER_SPACING, TYPOGRAPHY_HEADLINE5_LINE_HEIGHT, TYPOGRAPHY_HEADLINE5_TEXT_DECORATION, TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE6_FONT_FAMILY, TYPOGRAPHY_HEADLINE6_FONT_SIZE, TYPOGRAPHY_HEADLINE6_FONT_WEIGHT, TYPOGRAPHY_HEADLINE6_LETTER_SPACING, TYPOGRAPHY_HEADLINE6_LINE_HEIGHT, TYPOGRAPHY_HEADLINE6_TEXT_DECORATION, TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM, TYPOGRAPHY_KEY_BODY1, TYPOGRAPHY_KEY_BODY2, TYPOGRAPHY_KEY_BUTTON, TYPOGRAPHY_KEY_CAPTION, TYPOGRAPHY_KEY_HEADLINE1, TYPOGRAPHY_KEY_HEADLINE2, TYPOGRAPHY_KEY_HEADLINE3, TYPOGRAPHY_KEY_HEADLINE4, TYPOGRAPHY_KEY_HEADLINE5, TYPOGRAPHY_KEY_HEADLINE6, TYPOGRAPHY_KEY_OVERLINE, TYPOGRAPHY_KEY_SUBTITLE1, TYPOGRAPHY_KEY_SUBTITLE2, TYPOGRAPHY_KEY_SUPPORTING, TYPOGRAPHY_OVERLINE_FONT_FAMILY, TYPOGRAPHY_OVERLINE_FONT_SIZE, TYPOGRAPHY_OVERLINE_FONT_WEIGHT, TYPOGRAPHY_OVERLINE_LETTER_SPACING, TYPOGRAPHY_OVERLINE_LINE_HEIGHT, TYPOGRAPHY_OVERLINE_TEXT_DECORATION, TYPOGRAPHY_OVERLINE_TEXT_TRANSFORM, TYPOGRAPHY_SUBTITLE1_FONT_FAMILY, TYPOGRAPHY_SUBTITLE1_FONT_SIZE, TYPOGRAPHY_SUBTITLE1_FONT_WEIGHT, TYPOGRAPHY_SUBTITLE1_LETTER_SPACING, TYPOGRAPHY_SUBTITLE1_LINE_HEIGHT, TYPOGRAPHY_SUBTITLE1_TEXT_DECORATION, TYPOGRAPHY_SUBTITLE1_TEXT_TRANSFORM, TYPOGRAPHY_SUBTITLE2_FONT_FAMILY, TYPOGRAPHY_SUBTITLE2_FONT_SIZE, TYPOGRAPHY_SUBTITLE2_FONT_WEIGHT, TYPOGRAPHY_SUBTITLE2_LETTER_SPACING, TYPOGRAPHY_SUBTITLE2_LINE_HEIGHT, TYPOGRAPHY_SUBTITLE2_TEXT_DECORATION, TYPOGRAPHY_SUBTITLE2_TEXT_TRANSFORM, TYPOGRAPHY_SUPPORTING_FONT_FAMILY, TYPOGRAPHY_SUPPORTING_FONT_SIZE, TYPOGRAPHY_SUPPORTING_FONT_WEIGHT, TYPOGRAPHY_SUPPORTING_LETTER_SPACING, TYPOGRAPHY_SUPPORTING_LINE_HEIGHT, TYPOGRAPHY_SUPPORTING_TEXT_DECORATION, TYPOGRAPHY_SUPPORTING_TEXT_TRANSFORM, VARIANT_DANGER, VARIANT_HIGHLIGHT, VARIANT_INFO, VARIANT_NEUTRAL, VARIANT_PRIMARY, VARIANT_SECONDARY, VARIANT_SUCCESS, VARIANT_TERTIARY, VARIANT_WARNING } from './Tokens/JoyTokens';\nimport type { IThemeMetadata } from './Utils/IThemeMetadata';\n\n// #endregion\n\nexport namespace JoyTheme {\n\n    export const JOY_THEME = ThemeFactory.create({\n        name: NAME,\n        scheme: {\n            light: {\n                surface: SCHEME_LIGHT_SURFACE,\n                background: SCHEME_LIGHT_BACKGROUND,\n                foreground: SCHEME_LIGHT_FOREGROUND,\n                highlight: SCHEME_LIGHT_HIGHLIGHT,\n                middlelight: SCHEME_LIGHT_MIDDLELIGHT,\n                lowlight: SCHEME_LIGHT_LOWLIGHT,\n                transparent: SCHEME_LIGHT_TRANSPARENT,\n                semiTransparent: SCHEME_LIGHT_SEMI_TRANSPARENT,\n                disabled: SCHEME_LIGHT_DISABLED,\n                contrast: SCHEME_LIGHT_CONTRAST,\n                selection: SCHEME_LIGHT_SELECTION\n            },\n            dark: {\n                surface: SCHEME_DARK_SURFACE,\n                background: SCHEME_DARK_BACKGROUND,\n                foreground: SCHEME_DARK_FOREGROUND,\n                highlight: SCHEME_DARK_HIGHLIGHT,\n                middlelight: SCHEME_DARK_MIDDLELIGHT,\n                lowlight: SCHEME_DARK_LOWLIGHT,\n                transparent: SCHEME_DARK_TRANSPARENT,\n                semiTransparent: SCHEME_DARK_SEMI_TRANSPARENT,\n                disabled: SCHEME_DARK_DISABLED,\n                contrast: SCHEME_DARK_CONTRAST,\n                selection: SCHEME_DARK_SELECTION\n            }\n        },\n        palette: {\n            light: {\n                primary: {\n                    0: COLOR_LIGHT_PRIMARY_0,\n                    50: COLOR_LIGHT_PRIMARY_50,\n                    100: COLOR_LIGHT_PRIMARY_100,\n                    200: COLOR_LIGHT_PRIMARY_200,\n                    300: COLOR_LIGHT_PRIMARY_300,\n                    400: COLOR_LIGHT_PRIMARY_400,\n                    500: COLOR_LIGHT_PRIMARY_500,\n                    600: COLOR_LIGHT_PRIMARY_600,\n                    700: COLOR_LIGHT_PRIMARY_700,\n                    800: COLOR_LIGHT_PRIMARY_800,\n                    900: COLOR_LIGHT_PRIMARY_900\n                },\n                secondary: {\n                    0: COLOR_LIGHT_SECONDARY_0,\n                    50: COLOR_LIGHT_SECONDARY_50,\n                    100: COLOR_LIGHT_SECONDARY_100,\n                    200: COLOR_LIGHT_SECONDARY_200,\n                    300: COLOR_LIGHT_SECONDARY_300,\n                    400: COLOR_LIGHT_SECONDARY_400,\n                    500: COLOR_LIGHT_SECONDARY_500,\n                    600: COLOR_LIGHT_SECONDARY_600,\n                    700: COLOR_LIGHT_SECONDARY_700,\n                    800: COLOR_LIGHT_SECONDARY_800,\n                    900: COLOR_LIGHT_SECONDARY_900\n                },\n                tertiary: {\n                    0: COLOR_LIGHT_TERTIARY_0,\n                    50: COLOR_LIGHT_TERTIARY_50,\n                    100: COLOR_LIGHT_TERTIARY_100,\n                    200: COLOR_LIGHT_TERTIARY_200,\n                    300: COLOR_LIGHT_TERTIARY_300,\n                    400: COLOR_LIGHT_TERTIARY_400,\n                    500: COLOR_LIGHT_TERTIARY_500,\n                    600: COLOR_LIGHT_TERTIARY_600,\n                    700: COLOR_LIGHT_TERTIARY_700,\n                    800: COLOR_LIGHT_TERTIARY_800,\n                    900: COLOR_LIGHT_TERTIARY_900\n                },\n                info: {\n                    0: COLOR_LIGHT_INFO_0,\n                    50: COLOR_LIGHT_INFO_50,\n                    100: COLOR_LIGHT_INFO_100,\n                    200: COLOR_LIGHT_INFO_200,\n                    300: COLOR_LIGHT_INFO_300,\n                    400: COLOR_LIGHT_INFO_400,\n                    500: COLOR_LIGHT_INFO_500,\n                    600: COLOR_LIGHT_INFO_600,\n                    700: COLOR_LIGHT_INFO_700,\n                    800: COLOR_LIGHT_INFO_800,\n                    900: COLOR_LIGHT_INFO_900\n                },\n                warning: {\n                    0: COLOR_LIGHT_WARNING_0,\n                    50: COLOR_LIGHT_WARNING_50,\n                    100: COLOR_LIGHT_WARNING_100,\n                    200: COLOR_LIGHT_WARNING_200,\n                    300: COLOR_LIGHT_WARNING_300,\n                    400: COLOR_LIGHT_WARNING_400,\n                    500: COLOR_LIGHT_WARNING_500,\n                    600: COLOR_LIGHT_WARNING_600,\n                    700: COLOR_LIGHT_WARNING_700,\n                    800: COLOR_LIGHT_WARNING_800,\n                    900: COLOR_LIGHT_WARNING_900\n                },\n                danger: {\n                    0: COLOR_LIGHT_DANGER_0,\n                    50: COLOR_LIGHT_DANGER_50,\n                    100: COLOR_LIGHT_DANGER_100,\n                    200: COLOR_LIGHT_DANGER_200,\n                    300: COLOR_LIGHT_DANGER_300,\n                    400: COLOR_LIGHT_DANGER_400,\n                    500: COLOR_LIGHT_DANGER_500,\n                    600: COLOR_LIGHT_DANGER_600,\n                    700: COLOR_LIGHT_DANGER_700,\n                    800: COLOR_LIGHT_DANGER_800,\n                    900: COLOR_LIGHT_DANGER_900\n                },\n                success: {\n                    0: COLOR_LIGHT_SUCCESS_0,\n                    50: COLOR_LIGHT_SUCCESS_50,\n                    100: COLOR_LIGHT_SUCCESS_100,\n                    200: COLOR_LIGHT_SUCCESS_200,\n                    300: COLOR_LIGHT_SUCCESS_300,\n                    400: COLOR_LIGHT_SUCCESS_400,\n                    500: COLOR_LIGHT_SUCCESS_500,\n                    600: COLOR_LIGHT_SUCCESS_600,\n                    700: COLOR_LIGHT_SUCCESS_700,\n                    800: COLOR_LIGHT_SUCCESS_800,\n                    900: COLOR_LIGHT_SUCCESS_900\n                },\n                highlight: {\n                    0: COLOR_LIGHT_HIGHLIGHT_0,\n                    50: COLOR_LIGHT_HIGHLIGHT_50,\n                    100: COLOR_LIGHT_HIGHLIGHT_100,\n                    200: COLOR_LIGHT_HIGHLIGHT_200,\n                    300: COLOR_LIGHT_HIGHLIGHT_300,\n                    400: COLOR_LIGHT_HIGHLIGHT_400,\n                    500: COLOR_LIGHT_HIGHLIGHT_500,\n                    600: COLOR_LIGHT_HIGHLIGHT_600,\n                    700: COLOR_LIGHT_HIGHLIGHT_700,\n                    800: COLOR_LIGHT_HIGHLIGHT_800,\n                    900: COLOR_LIGHT_HIGHLIGHT_900\n                },\n                neutral: {\n                    0: COLOR_LIGHT_NEUTRAL_0,\n                    50: COLOR_LIGHT_NEUTRAL_50,\n                    100: COLOR_LIGHT_NEUTRAL_100,\n                    200: COLOR_LIGHT_NEUTRAL_200,\n                    300: COLOR_LIGHT_NEUTRAL_300,\n                    400: COLOR_LIGHT_NEUTRAL_400,\n                    500: COLOR_LIGHT_NEUTRAL_500,\n                    600: COLOR_LIGHT_NEUTRAL_600,\n                    700: COLOR_LIGHT_NEUTRAL_700,\n                    800: COLOR_LIGHT_NEUTRAL_800,\n                    900: COLOR_LIGHT_NEUTRAL_900\n                }\n            },\n            dark: {\n                primary: {\n                    0: COLOR_DARK_PRIMARY_0,\n                    50: COLOR_DARK_PRIMARY_50,\n                    100: COLOR_DARK_PRIMARY_100,\n                    200: COLOR_DARK_PRIMARY_200,\n                    300: COLOR_DARK_PRIMARY_300,\n                    400: COLOR_DARK_PRIMARY_400,\n                    500: COLOR_DARK_PRIMARY_500,\n                    600: COLOR_DARK_PRIMARY_600,\n                    700: COLOR_DARK_PRIMARY_700,\n                    800: COLOR_DARK_PRIMARY_800,\n                    900: COLOR_DARK_PRIMARY_900\n                },\n                secondary: {\n                    0: COLOR_DARK_SECONDARY_0,\n                    50: COLOR_DARK_SECONDARY_50,\n                    100: COLOR_DARK_SECONDARY_100,\n                    200: COLOR_DARK_SECONDARY_200,\n                    300: COLOR_DARK_SECONDARY_300,\n                    400: COLOR_DARK_SECONDARY_400,\n                    500: COLOR_DARK_SECONDARY_500,\n                    600: COLOR_DARK_SECONDARY_600,\n                    700: COLOR_DARK_SECONDARY_700,\n                    800: COLOR_DARK_SECONDARY_800,\n                    900: COLOR_DARK_SECONDARY_900\n                },\n                tertiary: {\n                    0: COLOR_DARK_TERTIARY_0,\n                    50: COLOR_DARK_TERTIARY_50,\n                    100: COLOR_DARK_TERTIARY_100,\n                    200: COLOR_DARK_TERTIARY_200,\n                    300: COLOR_DARK_TERTIARY_300,\n                    400: COLOR_DARK_TERTIARY_400,\n                    500: COLOR_DARK_TERTIARY_500,\n                    600: COLOR_DARK_TERTIARY_600,\n                    700: COLOR_DARK_TERTIARY_700,\n                    800: COLOR_DARK_TERTIARY_800,\n                    900: COLOR_DARK_TERTIARY_900\n                },\n                info: {\n                    0: COLOR_DARK_INFO_0,\n                    50: COLOR_DARK_INFO_50,\n                    100: COLOR_DARK_INFO_100,\n                    200: COLOR_DARK_INFO_200,\n                    300: COLOR_DARK_INFO_300,\n                    400: COLOR_DARK_INFO_400,\n                    500: COLOR_DARK_INFO_500,\n                    600: COLOR_DARK_INFO_600,\n                    700: COLOR_DARK_INFO_700,\n                    800: COLOR_DARK_INFO_800,\n                    900: COLOR_DARK_INFO_900\n                },\n                warning: {\n                    0: COLOR_DARK_WARNING_0,\n                    50: COLOR_DARK_WARNING_50,\n                    100: COLOR_DARK_WARNING_100,\n                    200: COLOR_DARK_WARNING_200,\n                    300: COLOR_DARK_WARNING_300,\n                    400: COLOR_DARK_WARNING_400,\n                    500: COLOR_DARK_WARNING_500,\n                    600: COLOR_DARK_WARNING_600,\n                    700: COLOR_DARK_WARNING_700,\n                    800: COLOR_DARK_WARNING_800,\n                    900: COLOR_DARK_WARNING_900\n                },\n                danger: {\n                    0: COLOR_DARK_DANGER_0,\n                    50: COLOR_DARK_DANGER_50,\n                    100: COLOR_DARK_DANGER_100,\n                    200: COLOR_DARK_DANGER_200,\n                    300: COLOR_DARK_DANGER_300,\n                    400: COLOR_DARK_DANGER_400,\n                    500: COLOR_DARK_DANGER_500,\n                    600: COLOR_DARK_DANGER_600,\n                    700: COLOR_DARK_DANGER_700,\n                    800: COLOR_DARK_DANGER_800,\n                    900: COLOR_DARK_DANGER_900\n                },\n                success: {\n                    0: COLOR_DARK_SUCCESS_0,\n                    50: COLOR_DARK_SUCCESS_50,\n                    100: COLOR_DARK_SUCCESS_100,\n                    200: COLOR_DARK_SUCCESS_200,\n                    300: COLOR_DARK_SUCCESS_300,\n                    400: COLOR_DARK_SUCCESS_400,\n                    500: COLOR_DARK_SUCCESS_500,\n                    600: COLOR_DARK_SUCCESS_600,\n                    700: COLOR_DARK_SUCCESS_700,\n                    800: COLOR_DARK_SUCCESS_800,\n                    900: COLOR_DARK_SUCCESS_900\n                },\n                highlight: {\n                    0: COLOR_DARK_HIGHLIGHT_0,\n                    50: COLOR_DARK_HIGHLIGHT_50,\n                    100: COLOR_DARK_HIGHLIGHT_100,\n                    200: COLOR_DARK_HIGHLIGHT_200,\n                    300: COLOR_DARK_HIGHLIGHT_300,\n                    400: COLOR_DARK_HIGHLIGHT_400,\n                    500: COLOR_DARK_HIGHLIGHT_500,\n                    600: COLOR_DARK_HIGHLIGHT_600,\n                    700: COLOR_DARK_HIGHLIGHT_700,\n                    800: COLOR_DARK_HIGHLIGHT_800,\n                    900: COLOR_DARK_HIGHLIGHT_900\n                },\n                neutral: {\n                    0: COLOR_DARK_NEUTRAL_0,\n                    50: COLOR_DARK_NEUTRAL_50,\n                    100: COLOR_DARK_NEUTRAL_100,\n                    200: COLOR_DARK_NEUTRAL_200,\n                    300: COLOR_DARK_NEUTRAL_300,\n                    400: COLOR_DARK_NEUTRAL_400,\n                    500: COLOR_DARK_NEUTRAL_500,\n                    600: COLOR_DARK_NEUTRAL_600,\n                    700: COLOR_DARK_NEUTRAL_700,\n                    800: COLOR_DARK_NEUTRAL_800,\n                    900: COLOR_DARK_NEUTRAL_900\n                }\n            }\n        },\n        fontFamily: FONT_FAMILY,\n        typography: {\n            headline1: {\n                fontFamily: TYPOGRAPHY_HEADLINE1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM\n            },\n            headline2: {\n                fontFamily: TYPOGRAPHY_HEADLINE2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM\n            },\n            headline3: {\n                fontFamily: TYPOGRAPHY_HEADLINE3_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE3_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE3_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE3_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE3_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE3_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM\n            },\n            headline4: {\n                fontFamily: TYPOGRAPHY_HEADLINE4_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE4_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE4_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE4_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE4_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE4_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM\n            },\n            headline5: {\n                fontFamily: TYPOGRAPHY_HEADLINE5_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE5_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE5_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE5_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE5_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE5_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM\n            },\n            headline6: {\n                fontFamily: TYPOGRAPHY_HEADLINE6_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE6_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE6_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE6_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE6_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE6_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM\n            },\n            subtitle1: {\n                fontFamily: TYPOGRAPHY_SUBTITLE1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_SUBTITLE1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_SUBTITLE1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_SUBTITLE1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_SUBTITLE1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_SUBTITLE1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_SUBTITLE1_TEXT_TRANSFORM\n            },\n            subtitle2: {\n                fontFamily: TYPOGRAPHY_SUBTITLE2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_SUBTITLE2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_SUBTITLE2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_SUBTITLE2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_SUBTITLE2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_SUBTITLE2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_SUBTITLE2_TEXT_TRANSFORM\n            },\n            body1: {\n                fontFamily: TYPOGRAPHY_BODY1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BODY1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BODY1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BODY1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BODY1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BODY1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BODY1_TEXT_TRANSFORM\n            },\n            body2: {\n                fontFamily: TYPOGRAPHY_BODY2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BODY2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BODY2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BODY2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BODY2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BODY2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BODY2_TEXT_TRANSFORM\n            },\n            supporting: {\n                fontFamily: TYPOGRAPHY_SUPPORTING_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_SUPPORTING_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_SUPPORTING_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_SUPPORTING_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_SUPPORTING_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_SUPPORTING_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_SUPPORTING_TEXT_TRANSFORM\n            },\n            caption: {\n                fontFamily: TYPOGRAPHY_CAPTION_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_CAPTION_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_CAPTION_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_CAPTION_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_CAPTION_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_CAPTION_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_CAPTION_TEXT_TRANSFORM\n            },\n            overline: {\n                fontFamily: TYPOGRAPHY_OVERLINE_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_OVERLINE_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_OVERLINE_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_OVERLINE_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_OVERLINE_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_OVERLINE_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_OVERLINE_TEXT_TRANSFORM\n            },\n            button: {\n                fontFamily: TYPOGRAPHY_BUTTON_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BUTTON_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BUTTON_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BUTTON_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BUTTON_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BUTTON_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BUTTON_TEXT_TRANSFORM\n            }\n        },\n        layout: {\n            radius: LAYOUT_RADIUS,\n            space: LAYOUT_SPACE,\n            thickness: LAYOUT_THICKNESS\n        },\n        elevation: {\n            light: {\n                light: ELEVATION_LIGHT_LIGHT,\n                semilight: ELEVATION_LIGHT_SEMILIGHT,\n                regular: ELEVATION_LIGHT_REGULAR,\n                semibold: ELEVATION_LIGHT_SEMIBOLD,\n                bold: ELEVATION_LIGHT_BOLD,\n                extrabold: ELEVATION_LIGHT_EXTRABOLD\n            },\n            dark: {\n                light: ELEVATION_DARK_LIGHT,\n                semilight: ELEVATION_DARK_SEMILIGHT,\n                regular: ELEVATION_DARK_REGULAR,\n                semibold: ELEVATION_DARK_SEMIBOLD,\n                bold: ELEVATION_DARK_BOLD,\n                extrabold: ELEVATION_DARK_EXTRABOLD\n            }\n        }\n    });\n\n    export const JOY_THEME_PALETTES = [VARIANT_PRIMARY, VARIANT_SECONDARY, VARIANT_TERTIARY, VARIANT_DANGER, VARIANT_INFO, VARIANT_WARNING, VARIANT_SUCCESS, VARIANT_HIGHLIGHT, VARIANT_NEUTRAL];\n\n    export const JOY_THEME_PALETTE_VARIANTS = ['0', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\n\n    export const JOY_THEME_SCHEMES = ['light', 'dark'];\n\n    export const JOY_THEME_SCHEME_VARIANTS = ['surface', 'background', 'foreground', 'highlight', 'middlelight', 'lowlight', 'transparent', 'semiTransparent', 'disabled', 'contrast', 'selection'];\n\n    export const JOY_THEME_ELEVATION = ['light', 'dark'];\n\n    export const JOY_THEME_ELEVATION_VARIANTS = [ELEVATION_KEY_LIGHT, ELEVATION_KEY_SEMILIGHT, ELEVATION_KEY_REGULAR, ELEVATION_KEY_SEMIBOLD, ELEVATION_KEY_BOLD, ELEVATION_KEY_EXTRABOLD];\n\n    export const JOY_THEME_TYPOGRAPHY = [TYPOGRAPHY_KEY_HEADLINE1, TYPOGRAPHY_KEY_HEADLINE2, TYPOGRAPHY_KEY_HEADLINE3, TYPOGRAPHY_KEY_HEADLINE4, TYPOGRAPHY_KEY_HEADLINE5, TYPOGRAPHY_KEY_HEADLINE6, TYPOGRAPHY_KEY_SUBTITLE1, TYPOGRAPHY_KEY_SUBTITLE2, TYPOGRAPHY_KEY_BODY1, TYPOGRAPHY_KEY_BODY2, TYPOGRAPHY_KEY_CAPTION, TYPOGRAPHY_KEY_OVERLINE, TYPOGRAPHY_KEY_BUTTON, TYPOGRAPHY_KEY_SUPPORTING];\n\n    export const JOY_THEME_METADATA: IThemeMetadata = {\n        theme: JOY_THEME,\n        palettes: JOY_THEME_PALETTES,\n        paletteVariants: JOY_THEME_PALETTE_VARIANTS,\n        schemes: JOY_THEME_SCHEMES,\n        schemeVariants: JOY_THEME_SCHEME_VARIANTS,\n        elevation: JOY_THEME_ELEVATION,\n        elevationVariants: JOY_THEME_ELEVATION_VARIANTS,\n        typographies: JOY_THEME_TYPOGRAPHY\n    };\n\n}\n","/**\n * ------------------------------------------------------------------------------\n * <auto-generated>\n *     This code was generated by a tool.\n *     Changes to this file may cause incorrect behavior and will be lost if\n *     the code is regenerated.\n * </auto-generated>\n * ------------------------------------------------------------------------------\n */\n\nexport const NAME = \"memphis\";\nexport const FONT_FAMILY = \"Nunito, sans-serif\";\nexport const LAYOUT_RADIUS = \"0px\";\nexport const LAYOUT_SPACE = \"10px\";\nexport const LAYOUT_THICKNESS = \"3px\";\nexport const SCHEME_LIGHT_SURFACE = \"#ffffff\";\nexport const SCHEME_LIGHT_BACKGROUND = \"#eaeaea\";\nexport const SCHEME_LIGHT_FOREGROUND = \"#3c454f\";\nexport const SCHEME_LIGHT_HIGHLIGHT = \"#d1d1d1\";\nexport const SCHEME_LIGHT_MIDDLELIGHT = \"#8a8a8a\";\nexport const SCHEME_LIGHT_LOWLIGHT = \"#5c5c5c\";\nexport const SCHEME_LIGHT_TRANSPARENT = \"rgba(255, 255, 255, 0)\";\nexport const SCHEME_LIGHT_SEMI_TRANSPARENT = \"rgba(255, 255, 255, 0.67)\";\nexport const SCHEME_LIGHT_DISABLED = \"#686868\";\nexport const SCHEME_LIGHT_CONTRAST = \"#333333\";\nexport const SCHEME_LIGHT_SELECTION = \"#a8c0ff\";\nexport const SCHEME_DARK_SURFACE = \"#2e2e2e\";\nexport const SCHEME_DARK_BACKGROUND = \"#151515\";\nexport const SCHEME_DARK_FOREGROUND = \"#c3bab0\";\nexport const SCHEME_DARK_HIGHLIGHT = \"#2e2e2e\";\nexport const SCHEME_DARK_MIDDLELIGHT = \"#757575\";\nexport const SCHEME_DARK_LOWLIGHT = \"#a3a3a3\";\nexport const SCHEME_DARK_TRANSPARENT = \"rgba(255, 255, 255, 0)\";\nexport const SCHEME_DARK_SEMI_TRANSPARENT = \"rgba(0, 0, 0, 0.67)\";\nexport const SCHEME_DARK_DISABLED = \"#474747\";\nexport const SCHEME_DARK_CONTRAST = \"#ffffff\";\nexport const SCHEME_DARK_SELECTION = \"#6666ff\";\nexport const COLOR_LIGHT_PRIMARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_PRIMARY_50 = \"#fce4ec\";\nexport const COLOR_LIGHT_PRIMARY_100 = \"#f8bcd0\";\nexport const COLOR_LIGHT_PRIMARY_200 = \"#f48fb1\";\nexport const COLOR_LIGHT_PRIMARY_300 = \"#f06292\";\nexport const COLOR_LIGHT_PRIMARY_400 = \"#ec407a\";\nexport const COLOR_LIGHT_PRIMARY_500 = \"#e91e63\";\nexport const COLOR_LIGHT_PRIMARY_600 = \"#cb1a56\";\nexport const COLOR_LIGHT_PRIMARY_700 = \"#a31545\";\nexport const COLOR_LIGHT_PRIMARY_800 = \"#7e1035\";\nexport const COLOR_LIGHT_PRIMARY_900 = \"#3a0819\";\nexport const COLOR_LIGHT_SECONDARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_SECONDARY_50 = \"#e6f6e9\";\nexport const COLOR_LIGHT_SECONDARY_100 = \"#c3e8c9\";\nexport const COLOR_LIGHT_SECONDARY_200 = \"#9bd9a7\";\nexport const COLOR_LIGHT_SECONDARY_300 = \"#70cb83\";\nexport const COLOR_LIGHT_SECONDARY_400 = \"#4dbf68\";\nexport const COLOR_LIGHT_SECONDARY_500 = \"#21b34d\";\nexport const COLOR_LIGHT_SECONDARY_600 = \"#16a444\";\nexport const COLOR_LIGHT_SECONDARY_700 = \"#009238\";\nexport const COLOR_LIGHT_SECONDARY_800 = \"#00812d\";\nexport const COLOR_LIGHT_SECONDARY_900 = \"#006218\";\nexport const COLOR_LIGHT_TERTIARY_0 = \"#ffffff\";\nexport const COLOR_LIGHT_TERTIARY_50 = \"#e1f5fc\";\nexport const COLOR_LIGHT_TERTIARY_100 = \"#b4e6f7\";\nexport const COLOR_LIGHT_TERTIARY_200 = \"#84d5f3\";\nexport const COLOR_LIGHT_TERTIARY_300 = \"#56c5ee\";\nexport const COLOR_LIGHT_TERTIARY_400 = \"#35b8eb\";\nexport const COLOR_LIGHT_TERTIARY_500 = \"#19ace9\";\nexport const COLOR_LIGHT_TERTIARY_600 = \"#139edb\";\nexport const COLOR_LIGHT_TERTIARY_700 = \"#098bc7\";\nexport const COLOR_LIGHT_TERTIARY_800 = \"#087ab4\";\nexport const COLOR_LIGHT_TERTIARY_900 = \"#005a92\";\nexport const COLOR_LIGHT_INFO_0 = \"#ffffff\";\nexport const COLOR_LIGHT_INFO_50 = \"#f4faff\";\nexport const COLOR_LIGHT_INFO_100 = \"#ddf1ff\";\nexport const COLOR_LIGHT_INFO_200 = \"#addbff\";\nexport const COLOR_LIGHT_INFO_300 = \"#6fb6ff\";\nexport const COLOR_LIGHT_INFO_400 = \"#3990ff\";\nexport const COLOR_LIGHT_INFO_500 = \"#096bde\";\nexport const COLOR_LIGHT_INFO_600 = \"#054da7\";\nexport const COLOR_LIGHT_INFO_700 = \"#02367d\";\nexport const COLOR_LIGHT_INFO_800 = \"#072859\";\nexport const COLOR_LIGHT_INFO_900 = \"#00153c\";\nexport const COLOR_LIGHT_WARNING_0 = \"#ffffff\";\nexport const COLOR_LIGHT_WARNING_50 = \"#fff8c5\";\nexport const COLOR_LIGHT_WARNING_100 = \"#fae17d\";\nexport const COLOR_LIGHT_WARNING_200 = \"#eac54f\";\nexport const COLOR_LIGHT_WARNING_300 = \"#d4a72c\";\nexport const COLOR_LIGHT_WARNING_400 = \"#bf8700\";\nexport const COLOR_LIGHT_WARNING_500 = \"#9a6700\";\nexport const COLOR_LIGHT_WARNING_600 = \"#7d4e00\";\nexport const COLOR_LIGHT_WARNING_700 = \"#633c01\";\nexport const COLOR_LIGHT_WARNING_800 = \"#4d2d00\";\nexport const COLOR_LIGHT_WARNING_900 = \"#3b2300\";\nexport const COLOR_LIGHT_DANGER_0 = \"#ffffff\";\nexport const COLOR_LIGHT_DANGER_50 = \"#fff8f6\";\nexport const COLOR_LIGHT_DANGER_100 = \"#ffe9e8\";\nexport const COLOR_LIGHT_DANGER_200 = \"#ffc7c5\";\nexport const COLOR_LIGHT_DANGER_300 = \"#ff9192\";\nexport const COLOR_LIGHT_DANGER_400 = \"#fa5255\";\nexport const COLOR_LIGHT_DANGER_500 = \"#d3232f\";\nexport const COLOR_LIGHT_DANGER_600 = \"#a10e25\";\nexport const COLOR_LIGHT_DANGER_700 = \"#77061b\";\nexport const COLOR_LIGHT_DANGER_800 = \"#580013\";\nexport const COLOR_LIGHT_DANGER_900 = \"#39000d\";\nexport const COLOR_LIGHT_SUCCESS_0 = \"#ffffff\";\nexport const COLOR_LIGHT_SUCCESS_50 = \"#f3fef5\";\nexport const COLOR_LIGHT_SUCCESS_100 = \"#d7f5dd\";\nexport const COLOR_LIGHT_SUCCESS_200 = \"#77ec95\";\nexport const COLOR_LIGHT_SUCCESS_300 = \"#4cc76e\";\nexport const COLOR_LIGHT_SUCCESS_400 = \"#2ca24d\";\nexport const COLOR_LIGHT_SUCCESS_500 = \"#1a7d36\";\nexport const COLOR_LIGHT_SUCCESS_600 = \"#0f5d26\";\nexport const COLOR_LIGHT_SUCCESS_700 = \"#034318\";\nexport const COLOR_LIGHT_SUCCESS_800 = \"#002f0f\";\nexport const COLOR_LIGHT_SUCCESS_900 = \"#001d09\";\nexport const COLOR_LIGHT_HIGHLIGHT_0 = \"#ffffff\";\nexport const COLOR_LIGHT_HIGHLIGHT_50 = \"#fdf7ff\";\nexport const COLOR_LIGHT_HIGHLIGHT_100 = \"#f4eaff\";\nexport const COLOR_LIGHT_HIGHLIGHT_200 = \"#e1cbff\";\nexport const COLOR_LIGHT_HIGHLIGHT_300 = \"#c69eff\";\nexport const COLOR_LIGHT_HIGHLIGHT_400 = \"#a374f9\";\nexport const COLOR_LIGHT_HIGHLIGHT_500 = \"#814dde\";\nexport const COLOR_LIGHT_HIGHLIGHT_600 = \"#5f35ae\";\nexport const COLOR_LIGHT_HIGHLIGHT_700 = \"#452382\";\nexport const COLOR_LIGHT_HIGHLIGHT_800 = \"#301761\";\nexport const COLOR_LIGHT_HIGHLIGHT_900 = \"#1d0a42\";\nexport const COLOR_LIGHT_NEUTRAL_0 = \"#ffffff\";\nexport const COLOR_LIGHT_NEUTRAL_50 = \"#f7f7f8\";\nexport const COLOR_LIGHT_NEUTRAL_100 = \"#ebebef\";\nexport const COLOR_LIGHT_NEUTRAL_200 = \"#d8d8df\";\nexport const COLOR_LIGHT_NEUTRAL_300 = \"#b9b9c6\";\nexport const COLOR_LIGHT_NEUTRAL_400 = \"#8f8fa3\";\nexport const COLOR_LIGHT_NEUTRAL_500 = \"#73738c\";\nexport const COLOR_LIGHT_NEUTRAL_600 = \"#5a5a72\";\nexport const COLOR_LIGHT_NEUTRAL_700 = \"#434356\";\nexport const COLOR_LIGHT_NEUTRAL_800 = \"#25252d\";\nexport const COLOR_LIGHT_NEUTRAL_900 = \"#131318\";\nexport const COLOR_DARK_PRIMARY_0 = \"#000000\";\nexport const COLOR_DARK_PRIMARY_50 = \"#3a0819\";\nexport const COLOR_DARK_PRIMARY_100 = \"#7e1035\";\nexport const COLOR_DARK_PRIMARY_200 = \"#a31545\";\nexport const COLOR_DARK_PRIMARY_300 = \"#cb1a56\";\nexport const COLOR_DARK_PRIMARY_400 = \"#e91e63\";\nexport const COLOR_DARK_PRIMARY_500 = \"#ec407a\";\nexport const COLOR_DARK_PRIMARY_600 = \"#f06292\";\nexport const COLOR_DARK_PRIMARY_700 = \"#f48fb1\";\nexport const COLOR_DARK_PRIMARY_800 = \"#f8bcd0\";\nexport const COLOR_DARK_PRIMARY_900 = \"#fce4ec\";\nexport const COLOR_DARK_SECONDARY_0 = \"#000000\";\nexport const COLOR_DARK_SECONDARY_50 = \"#006218\";\nexport const COLOR_DARK_SECONDARY_100 = \"#00812d\";\nexport const COLOR_DARK_SECONDARY_200 = \"#009238\";\nexport const COLOR_DARK_SECONDARY_300 = \"#16a444\";\nexport const COLOR_DARK_SECONDARY_400 = \"#21b34d\";\nexport const COLOR_DARK_SECONDARY_500 = \"#4dbf68\";\nexport const COLOR_DARK_SECONDARY_600 = \"#70cb83\";\nexport const COLOR_DARK_SECONDARY_700 = \"#9bd9a7\";\nexport const COLOR_DARK_SECONDARY_800 = \"#c3e8c9\";\nexport const COLOR_DARK_SECONDARY_900 = \"#e6f6e9\";\nexport const COLOR_DARK_TERTIARY_0 = \"#000000\";\nexport const COLOR_DARK_TERTIARY_50 = \"#005a92\";\nexport const COLOR_DARK_TERTIARY_100 = \"#087ab4\";\nexport const COLOR_DARK_TERTIARY_200 = \"#098bc7\";\nexport const COLOR_DARK_TERTIARY_300 = \"#139edb\";\nexport const COLOR_DARK_TERTIARY_400 = \"#19ace9\";\nexport const COLOR_DARK_TERTIARY_500 = \"#35b8eb\";\nexport const COLOR_DARK_TERTIARY_600 = \"#56c5ee\";\nexport const COLOR_DARK_TERTIARY_700 = \"#84d5f3\";\nexport const COLOR_DARK_TERTIARY_800 = \"#b4e6f7\";\nexport const COLOR_DARK_TERTIARY_900 = \"#e1f5fc\";\nexport const COLOR_DARK_INFO_0 = \"#000000\";\nexport const COLOR_DARK_INFO_50 = \"#00153c\";\nexport const COLOR_DARK_INFO_100 = \"#072859\";\nexport const COLOR_DARK_INFO_200 = \"#02367d\";\nexport const COLOR_DARK_INFO_300 = \"#054da7\";\nexport const COLOR_DARK_INFO_400 = \"#096bde\";\nexport const COLOR_DARK_INFO_500 = \"#3990ff\";\nexport const COLOR_DARK_INFO_600 = \"#6fb6ff\";\nexport const COLOR_DARK_INFO_700 = \"#addbff\";\nexport const COLOR_DARK_INFO_800 = \"#ddf1ff\";\nexport const COLOR_DARK_INFO_900 = \"#f4faff\";\nexport const COLOR_DARK_WARNING_0 = \"#000000\";\nexport const COLOR_DARK_WARNING_50 = \"#3b2300\";\nexport const COLOR_DARK_WARNING_100 = \"#4d2d00\";\nexport const COLOR_DARK_WARNING_200 = \"#633c01\";\nexport const COLOR_DARK_WARNING_300 = \"#7d4e00\";\nexport const COLOR_DARK_WARNING_400 = \"#9a6700\";\nexport const COLOR_DARK_WARNING_500 = \"#bf8700\";\nexport const COLOR_DARK_WARNING_600 = \"#d4a72c\";\nexport const COLOR_DARK_WARNING_700 = \"#eac54f\";\nexport const COLOR_DARK_WARNING_800 = \"#fae17d\";\nexport const COLOR_DARK_WARNING_900 = \"#fff8c5\";\nexport const COLOR_DARK_DANGER_0 = \"#000000\";\nexport const COLOR_DARK_DANGER_50 = \"#39000d\";\nexport const COLOR_DARK_DANGER_100 = \"#580013\";\nexport const COLOR_DARK_DANGER_200 = \"#77061b\";\nexport const COLOR_DARK_DANGER_300 = \"#a10e25\";\nexport const COLOR_DARK_DANGER_400 = \"#d3232f\";\nexport const COLOR_DARK_DANGER_500 = \"#fa5255\";\nexport const COLOR_DARK_DANGER_600 = \"#ff9192\";\nexport const COLOR_DARK_DANGER_700 = \"#ffc7c5\";\nexport const COLOR_DARK_DANGER_800 = \"#ffe9e8\";\nexport const COLOR_DARK_DANGER_900 = \"#fff8f6\";\nexport const COLOR_DARK_SUCCESS_0 = \"#000000\";\nexport const COLOR_DARK_SUCCESS_50 = \"#001d09\";\nexport const COLOR_DARK_SUCCESS_100 = \"#002f0f\";\nexport const COLOR_DARK_SUCCESS_200 = \"#034318\";\nexport const COLOR_DARK_SUCCESS_300 = \"#0f5d26\";\nexport const COLOR_DARK_SUCCESS_400 = \"#1a7d36\";\nexport const COLOR_DARK_SUCCESS_500 = \"#2ca24d\";\nexport const COLOR_DARK_SUCCESS_600 = \"#4cc76e\";\nexport const COLOR_DARK_SUCCESS_700 = \"#77ec95\";\nexport const COLOR_DARK_SUCCESS_800 = \"#d7f5dd\";\nexport const COLOR_DARK_SUCCESS_900 = \"#f3fef5\";\nexport const COLOR_DARK_HIGHLIGHT_0 = \"#000000\";\nexport const COLOR_DARK_HIGHLIGHT_50 = \"#1d0a42\";\nexport const COLOR_DARK_HIGHLIGHT_100 = \"#301761\";\nexport const COLOR_DARK_HIGHLIGHT_200 = \"#452382\";\nexport const COLOR_DARK_HIGHLIGHT_300 = \"#5f35ae\";\nexport const COLOR_DARK_HIGHLIGHT_400 = \"#814dde\";\nexport const COLOR_DARK_HIGHLIGHT_500 = \"#a374f9\";\nexport const COLOR_DARK_HIGHLIGHT_600 = \"#c69eff\";\nexport const COLOR_DARK_HIGHLIGHT_700 = \"#e1cbff\";\nexport const COLOR_DARK_HIGHLIGHT_800 = \"#f4eaff\";\nexport const COLOR_DARK_HIGHLIGHT_900 = \"#fdf7ff\";\nexport const COLOR_DARK_NEUTRAL_0 = \"#000000\";\nexport const COLOR_DARK_NEUTRAL_50 = \"#131318\";\nexport const COLOR_DARK_NEUTRAL_100 = \"#25252d\";\nexport const COLOR_DARK_NEUTRAL_200 = \"#434356\";\nexport const COLOR_DARK_NEUTRAL_300 = \"#5a5a72\";\nexport const COLOR_DARK_NEUTRAL_400 = \"#73738c\";\nexport const COLOR_DARK_NEUTRAL_500 = \"#8f8fa3\";\nexport const COLOR_DARK_NEUTRAL_600 = \"#b9b9c6\";\nexport const COLOR_DARK_NEUTRAL_700 = \"#d8d8df\";\nexport const COLOR_DARK_NEUTRAL_800 = \"#ebebef\";\nexport const COLOR_DARK_NEUTRAL_900 = \"#f7f7f8\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_SIZE = \"96px\";\nexport const TYPOGRAPHY_HEADLINE1_LINE_HEIGHT = \"100px\";\nexport const TYPOGRAPHY_HEADLINE1_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE1_LETTER_SPACING = \"-0.25px\";\nexport const TYPOGRAPHY_HEADLINE1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_SIZE = \"60px\";\nexport const TYPOGRAPHY_HEADLINE2_LINE_HEIGHT = \"64px\";\nexport const TYPOGRAPHY_HEADLINE2_FONT_WEIGHT = \"300\";\nexport const TYPOGRAPHY_HEADLINE2_LETTER_SPACING = \"-0.13333333333333333px\";\nexport const TYPOGRAPHY_HEADLINE2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_SIZE = \"48px\";\nexport const TYPOGRAPHY_HEADLINE3_LINE_HEIGHT = \"52px\";\nexport const TYPOGRAPHY_HEADLINE3_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_HEADLINE3_LETTER_SPACING = \"normal\";\nexport const TYPOGRAPHY_HEADLINE3_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_SIZE = \"34px\";\nexport const TYPOGRAPHY_HEADLINE4_LINE_HEIGHT = \"38px\";\nexport const TYPOGRAPHY_HEADLINE4_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_HEADLINE4_LETTER_SPACING = \"0.11764705882352941px\";\nexport const TYPOGRAPHY_HEADLINE4_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_SIZE = \"24px\";\nexport const TYPOGRAPHY_HEADLINE5_LINE_HEIGHT = \"28px\";\nexport const TYPOGRAPHY_HEADLINE5_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_HEADLINE5_LETTER_SPACING = \"normal\";\nexport const TYPOGRAPHY_HEADLINE5_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_SIZE = \"20px\";\nexport const TYPOGRAPHY_HEADLINE6_LINE_HEIGHT = \"24px\";\nexport const TYPOGRAPHY_HEADLINE6_FONT_WEIGHT = \"500\";\nexport const TYPOGRAPHY_HEADLINE6_LETTER_SPACING = \"0.2px\";\nexport const TYPOGRAPHY_HEADLINE6_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_SUBTITLE1_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_SUBTITLE1_FONT_SIZE = \"16px\";\nexport const TYPOGRAPHY_SUBTITLE1_LINE_HEIGHT = \"20px\";\nexport const TYPOGRAPHY_SUBTITLE1_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_SUBTITLE1_LETTER_SPACING = \"0.15px\";\nexport const TYPOGRAPHY_SUBTITLE1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_SUBTITLE1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_SUBTITLE2_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_SUBTITLE2_FONT_SIZE = \"14px\";\nexport const TYPOGRAPHY_SUBTITLE2_LINE_HEIGHT = \"18px\";\nexport const TYPOGRAPHY_SUBTITLE2_FONT_WEIGHT = \"500\";\nexport const TYPOGRAPHY_SUBTITLE2_LETTER_SPACING = \"0.1142857142857143px\";\nexport const TYPOGRAPHY_SUBTITLE2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_SUBTITLE2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BODY1_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_BODY1_FONT_SIZE = \"16px\";\nexport const TYPOGRAPHY_BODY1_LINE_HEIGHT = \"20px\";\nexport const TYPOGRAPHY_BODY1_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_BODY1_LETTER_SPACING = \"0.5px\";\nexport const TYPOGRAPHY_BODY1_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BODY1_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BODY2_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_BODY2_FONT_SIZE = \"14px\";\nexport const TYPOGRAPHY_BODY2_LINE_HEIGHT = \"18px\";\nexport const TYPOGRAPHY_BODY2_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_BODY2_LETTER_SPACING = \"0.2857142857142857px\";\nexport const TYPOGRAPHY_BODY2_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BODY2_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_CAPTION_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_CAPTION_FONT_SIZE = \"12px\";\nexport const TYPOGRAPHY_CAPTION_LINE_HEIGHT = \"16px\";\nexport const TYPOGRAPHY_CAPTION_FONT_WEIGHT = \"400\";\nexport const TYPOGRAPHY_CAPTION_LETTER_SPACING = \"0.5333333333333333px\";\nexport const TYPOGRAPHY_CAPTION_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_CAPTION_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_BUTTON_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_BUTTON_FONT_SIZE = \"14px\";\nexport const TYPOGRAPHY_BUTTON_LINE_HEIGHT = \"18px\";\nexport const TYPOGRAPHY_BUTTON_FONT_WEIGHT = \"700\";\nexport const TYPOGRAPHY_BUTTON_LETTER_SPACING = \"1.4285714285714286px\";\nexport const TYPOGRAPHY_BUTTON_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_BUTTON_TEXT_TRANSFORM = \"none\";\nexport const TYPOGRAPHY_OVERLINE_FONT_FAMILY = \"Nunito, sans-serif\";\nexport const TYPOGRAPHY_OVERLINE_FONT_SIZE = \"12px\";\nexport const TYPOGRAPHY_OVERLINE_LINE_HEIGHT = \"16px\";\nexport const TYPOGRAPHY_OVERLINE_FONT_WEIGHT = \"500\";\nexport const TYPOGRAPHY_OVERLINE_LETTER_SPACING = \"2.6666666666666665px\";\nexport const TYPOGRAPHY_OVERLINE_TEXT_DECORATION = \"none\";\nexport const TYPOGRAPHY_OVERLINE_TEXT_TRANSFORM = \"none\";\nexport const ELEVATION_NONE = \"none\";\nexport const ELEVATION_LIGHT_LIGHT = \"2px 2px 0px 0px #333333\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_X_0 = \"2px\";\nexport const ELEVATION_LIGHT_LIGHT_OFFSET_Y_0 = \"2px\";\nexport const ELEVATION_LIGHT_LIGHT_BLUR_0 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_LIGHT_COLOR_0 = \"#333333\";\nexport const ELEVATION_LIGHT_SEMILIGHT = \"3px 3px 0px 0px #333333\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_X_0 = \"3px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_OFFSET_Y_0 = \"3px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_BLUR_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMILIGHT_COLOR_0 = \"#333333\";\nexport const ELEVATION_LIGHT_REGULAR = \"4px 4px 0px 0px #333333\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_X_0 = \"4px\";\nexport const ELEVATION_LIGHT_REGULAR_OFFSET_Y_0 = \"4px\";\nexport const ELEVATION_LIGHT_REGULAR_BLUR_0 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_REGULAR_COLOR_0 = \"#333333\";\nexport const ELEVATION_LIGHT_SEMIBOLD = \"5px 5px 0px 0px #333333\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_X_0 = \"5px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_OFFSET_Y_0 = \"5px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_BLUR_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_SEMIBOLD_COLOR_0 = \"#333333\";\nexport const ELEVATION_LIGHT_BOLD = \"6px 6px 0px 0px #333333\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_X_0 = \"6px\";\nexport const ELEVATION_LIGHT_BOLD_OFFSET_Y_0 = \"6px\";\nexport const ELEVATION_LIGHT_BOLD_BLUR_0 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_BOLD_COLOR_0 = \"#333333\";\nexport const ELEVATION_LIGHT_EXTRABOLD = \"7px 7px 0px 0px #333333\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_X_0 = \"7px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_OFFSET_Y_0 = \"7px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_BLUR_0 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_LIGHT_EXTRABOLD_COLOR_0 = \"#333333\";\nexport const ELEVATION_DARK_LIGHT = \"2px 2px 0px 0px #ffffff\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_X_0 = \"2px\";\nexport const ELEVATION_DARK_LIGHT_OFFSET_Y_0 = \"2px\";\nexport const ELEVATION_DARK_LIGHT_BLUR_0 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_LIGHT_COLOR_0 = \"#ffffff\";\nexport const ELEVATION_DARK_SEMILIGHT = \"3px 3px 0px 0px #ffffff\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_X_0 = \"3px\";\nexport const ELEVATION_DARK_SEMILIGHT_OFFSET_Y_0 = \"3px\";\nexport const ELEVATION_DARK_SEMILIGHT_BLUR_0 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_SEMILIGHT_COLOR_0 = \"#ffffff\";\nexport const ELEVATION_DARK_REGULAR = \"4px 4px 0px 0px #ffffff\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_X_0 = \"4px\";\nexport const ELEVATION_DARK_REGULAR_OFFSET_Y_0 = \"4px\";\nexport const ELEVATION_DARK_REGULAR_BLUR_0 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_REGULAR_COLOR_0 = \"#ffffff\";\nexport const ELEVATION_DARK_SEMIBOLD = \"5px 5px 0px 0px #ffffff\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_X_0 = \"5px\";\nexport const ELEVATION_DARK_SEMIBOLD_OFFSET_Y_0 = \"5px\";\nexport const ELEVATION_DARK_SEMIBOLD_BLUR_0 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_SEMIBOLD_COLOR_0 = \"#ffffff\";\nexport const ELEVATION_DARK_BOLD = \"6px 6px 0px 0px #ffffff\";\nexport const ELEVATION_DARK_BOLD_OFFSET_X_0 = \"6px\";\nexport const ELEVATION_DARK_BOLD_OFFSET_Y_0 = \"6px\";\nexport const ELEVATION_DARK_BOLD_BLUR_0 = \"0px\";\nexport const ELEVATION_DARK_BOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_BOLD_COLOR_0 = \"#ffffff\";\nexport const ELEVATION_DARK_EXTRABOLD = \"7px 7px 0px 0px #ffffff\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_X_0 = \"7px\";\nexport const ELEVATION_DARK_EXTRABOLD_OFFSET_Y_0 = \"7px\";\nexport const ELEVATION_DARK_EXTRABOLD_BLUR_0 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_SPREAD_0 = \"0px\";\nexport const ELEVATION_DARK_EXTRABOLD_COLOR_0 = \"#ffffff\";\nexport const SIZE_TINY = \"2px\";\nexport const SIZE_SMALL = \"4px\";\nexport const SIZE_MEDIUM = \"8px\";\nexport const SIZE_LARGE = \"16px\";\nexport const SIZE_GIANT = \"32px\";\nexport const SIZE_KEY = \"tiny small medium large giant\";\nexport const SIZE_KEY_TINY = \"tiny\";\nexport const SIZE_KEY_SMALL = \"small\";\nexport const SIZE_KEY_MEDIUM = \"medium\";\nexport const SIZE_KEY_LARGE = \"large\";\nexport const SIZE_KEY_GIANT = \"giant\";\nexport const TYPOGRAPHY_KEY_HEADLINE1 = \"headline1\";\nexport const TYPOGRAPHY_KEY_HEADLINE2 = \"headline2\";\nexport const TYPOGRAPHY_KEY_HEADLINE3 = \"headline3\";\nexport const TYPOGRAPHY_KEY_HEADLINE4 = \"headline4\";\nexport const TYPOGRAPHY_KEY_HEADLINE5 = \"headline5\";\nexport const TYPOGRAPHY_KEY_HEADLINE6 = \"headline6\";\nexport const TYPOGRAPHY_KEY_SUBTITLE1 = \"subtitle1\";\nexport const TYPOGRAPHY_KEY_SUBTITLE2 = \"subtitle2\";\nexport const TYPOGRAPHY_KEY_BODY1 = \"body1\";\nexport const TYPOGRAPHY_KEY_BODY2 = \"body2\";\nexport const TYPOGRAPHY_KEY_CAPTION = \"caption\";\nexport const TYPOGRAPHY_KEY_BUTTON = \"button\";\nexport const TYPOGRAPHY_KEY_OVERLINE = \"overline\";\nexport const ELEVATION_KEY = \"light semilight regular semibold bold extrabold\";\nexport const ELEVATION_KEY_LIGHT = \"light\";\nexport const ELEVATION_KEY_SEMILIGHT = \"semilight\";\nexport const ELEVATION_KEY_REGULAR = \"regular\";\nexport const ELEVATION_KEY_SEMIBOLD = \"semibold\";\nexport const ELEVATION_KEY_BOLD = \"bold\";\nexport const ELEVATION_KEY_EXTRABOLD = \"extrabold\";\nexport const APPEARANCE = \"default outline plain soft solid\";\nexport const APPEARANCE_DEFAULT = \"default\";\nexport const APPEARANCE_OUTLINE = \"outline\";\nexport const APPEARANCE_PLAIN = \"plain\";\nexport const APPEARANCE_SOFT = \"soft\";\nexport const APPEARANCE_SOLID = \"solid\";\nexport const VARIANT =\n  \"primary secondary tertiary danger warning success info highlight neutral\";\nexport const VARIANT_PRIMARY = \"primary\";\nexport const VARIANT_SECONDARY = \"secondary\";\nexport const VARIANT_TERTIARY = \"tertiary\";\nexport const VARIANT_DANGER = \"danger\";\nexport const VARIANT_WARNING = \"warning\";\nexport const VARIANT_SUCCESS = \"success\";\nexport const VARIANT_INFO = \"info\";\nexport const VARIANT_HIGHLIGHT = \"highlight\";\nexport const VARIANT_NEUTRAL = \"neutral\";\nexport const DURATION = \"200ms 400ms 600ms\";\nexport const DURATION_SHORT = \"200ms\";\nexport const DURATION_MEDIUM = \"400ms\";\nexport const DURATION_LONG = \"600ms\";\n","// #region Imports\n\nimport { ThemeFactory } from './ThemeFactory';\nimport { SCHEME_DARK_BACKGROUND, SCHEME_DARK_DISABLED, SCHEME_DARK_FOREGROUND, SCHEME_DARK_HIGHLIGHT, SCHEME_DARK_LOWLIGHT, SCHEME_DARK_MIDDLELIGHT, SCHEME_DARK_SEMI_TRANSPARENT, SCHEME_DARK_TRANSPARENT, SCHEME_LIGHT_BACKGROUND, SCHEME_LIGHT_DISABLED, SCHEME_LIGHT_FOREGROUND, SCHEME_LIGHT_HIGHLIGHT, SCHEME_LIGHT_LOWLIGHT, SCHEME_LIGHT_MIDDLELIGHT, SCHEME_LIGHT_SEMI_TRANSPARENT, SCHEME_LIGHT_TRANSPARENT, TYPOGRAPHY_BODY1_TEXT_DECORATION, TYPOGRAPHY_BODY1_TEXT_TRANSFORM, TYPOGRAPHY_BODY2_FONT_SIZE, TYPOGRAPHY_BODY2_FONT_WEIGHT, TYPOGRAPHY_BODY2_LETTER_SPACING, TYPOGRAPHY_BODY2_LINE_HEIGHT, TYPOGRAPHY_BODY2_TEXT_DECORATION, TYPOGRAPHY_BODY2_TEXT_TRANSFORM, TYPOGRAPHY_BUTTON_FONT_SIZE, TYPOGRAPHY_BUTTON_FONT_WEIGHT, TYPOGRAPHY_BUTTON_LETTER_SPACING, TYPOGRAPHY_BUTTON_LINE_HEIGHT, TYPOGRAPHY_BUTTON_TEXT_DECORATION, TYPOGRAPHY_BUTTON_TEXT_TRANSFORM, TYPOGRAPHY_CAPTION_FONT_SIZE, TYPOGRAPHY_CAPTION_FONT_WEIGHT, TYPOGRAPHY_CAPTION_LETTER_SPACING, TYPOGRAPHY_CAPTION_LINE_HEIGHT, TYPOGRAPHY_CAPTION_TEXT_DECORATION, TYPOGRAPHY_CAPTION_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE2_FONT_SIZE, TYPOGRAPHY_HEADLINE2_FONT_WEIGHT, TYPOGRAPHY_HEADLINE2_LETTER_SPACING, TYPOGRAPHY_HEADLINE2_LINE_HEIGHT, TYPOGRAPHY_HEADLINE2_TEXT_DECORATION, TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE3_FONT_SIZE, TYPOGRAPHY_HEADLINE3_FONT_WEIGHT, TYPOGRAPHY_HEADLINE3_LETTER_SPACING, TYPOGRAPHY_HEADLINE3_LINE_HEIGHT, TYPOGRAPHY_HEADLINE3_TEXT_DECORATION, TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE4_FONT_SIZE, TYPOGRAPHY_HEADLINE4_FONT_WEIGHT, TYPOGRAPHY_HEADLINE4_LETTER_SPACING, TYPOGRAPHY_HEADLINE4_LINE_HEIGHT, TYPOGRAPHY_HEADLINE4_TEXT_DECORATION, TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE5_FONT_SIZE, TYPOGRAPHY_HEADLINE1_FONT_SIZE, TYPOGRAPHY_HEADLINE1_FONT_WEIGHT, TYPOGRAPHY_HEADLINE1_LETTER_SPACING, TYPOGRAPHY_HEADLINE1_LINE_HEIGHT, TYPOGRAPHY_HEADLINE1_TEXT_DECORATION, TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE5_FONT_WEIGHT, TYPOGRAPHY_HEADLINE5_LETTER_SPACING, TYPOGRAPHY_HEADLINE5_LINE_HEIGHT, TYPOGRAPHY_HEADLINE5_TEXT_DECORATION, TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM, TYPOGRAPHY_HEADLINE6_FONT_SIZE, TYPOGRAPHY_HEADLINE6_FONT_WEIGHT, TYPOGRAPHY_HEADLINE6_LETTER_SPACING, TYPOGRAPHY_HEADLINE6_LINE_HEIGHT, TYPOGRAPHY_HEADLINE6_TEXT_DECORATION, TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM, TYPOGRAPHY_OVERLINE_FONT_SIZE, TYPOGRAPHY_OVERLINE_FONT_WEIGHT, TYPOGRAPHY_OVERLINE_LETTER_SPACING, TYPOGRAPHY_OVERLINE_LINE_HEIGHT, TYPOGRAPHY_OVERLINE_TEXT_DECORATION, TYPOGRAPHY_OVERLINE_TEXT_TRANSFORM, TYPOGRAPHY_SUBTITLE1_FONT_SIZE, TYPOGRAPHY_SUBTITLE1_FONT_WEIGHT, TYPOGRAPHY_SUBTITLE1_LETTER_SPACING, TYPOGRAPHY_SUBTITLE1_LINE_HEIGHT, TYPOGRAPHY_SUBTITLE1_TEXT_DECORATION, TYPOGRAPHY_SUBTITLE1_TEXT_TRANSFORM, TYPOGRAPHY_SUBTITLE2_FONT_SIZE, TYPOGRAPHY_SUBTITLE2_FONT_WEIGHT, TYPOGRAPHY_SUBTITLE2_LETTER_SPACING, TYPOGRAPHY_SUBTITLE2_LINE_HEIGHT, TYPOGRAPHY_SUBTITLE2_TEXT_DECORATION, TYPOGRAPHY_SUBTITLE2_TEXT_TRANSFORM, LAYOUT_RADIUS, LAYOUT_SPACE, LAYOUT_THICKNESS, TYPOGRAPHY_BODY1_FONT_SIZE, TYPOGRAPHY_BODY1_LINE_HEIGHT, ELEVATION_DARK_BOLD, ELEVATION_DARK_EXTRABOLD, ELEVATION_DARK_LIGHT, ELEVATION_DARK_REGULAR, ELEVATION_DARK_SEMIBOLD, ELEVATION_DARK_SEMILIGHT, ELEVATION_LIGHT_BOLD, ELEVATION_LIGHT_EXTRABOLD, ELEVATION_LIGHT_LIGHT, ELEVATION_LIGHT_REGULAR, ELEVATION_LIGHT_SEMIBOLD, ELEVATION_LIGHT_SEMILIGHT, TYPOGRAPHY_BODY1_FONT_WEIGHT, TYPOGRAPHY_BODY1_LETTER_SPACING, FONT_FAMILY, NAME, COLOR_LIGHT_PRIMARY_0, COLOR_DARK_PRIMARY_0, COLOR_DARK_PRIMARY_100, COLOR_DARK_PRIMARY_200, COLOR_DARK_PRIMARY_300, COLOR_DARK_PRIMARY_400, COLOR_DARK_PRIMARY_50, COLOR_DARK_PRIMARY_500, COLOR_DARK_PRIMARY_600, COLOR_DARK_PRIMARY_700, COLOR_DARK_PRIMARY_800, COLOR_DARK_PRIMARY_900, COLOR_DARK_SECONDARY_0, COLOR_DARK_SECONDARY_100, COLOR_DARK_SECONDARY_200, COLOR_DARK_SECONDARY_300, COLOR_DARK_SECONDARY_400, COLOR_DARK_SECONDARY_50, COLOR_DARK_SECONDARY_500, COLOR_DARK_SECONDARY_600, COLOR_DARK_SECONDARY_700, COLOR_DARK_SECONDARY_800, COLOR_DARK_SECONDARY_900, COLOR_LIGHT_PRIMARY_100, COLOR_LIGHT_PRIMARY_200, COLOR_LIGHT_PRIMARY_300, COLOR_LIGHT_PRIMARY_400, COLOR_LIGHT_PRIMARY_50, COLOR_LIGHT_PRIMARY_500, COLOR_LIGHT_PRIMARY_600, COLOR_LIGHT_PRIMARY_700, COLOR_LIGHT_PRIMARY_800, COLOR_LIGHT_PRIMARY_900, COLOR_LIGHT_SECONDARY_0, COLOR_LIGHT_SECONDARY_100, COLOR_LIGHT_SECONDARY_200, COLOR_LIGHT_SECONDARY_300, COLOR_LIGHT_SECONDARY_400, COLOR_LIGHT_SECONDARY_50, COLOR_LIGHT_SECONDARY_500, COLOR_LIGHT_SECONDARY_600, COLOR_LIGHT_SECONDARY_700, COLOR_LIGHT_SECONDARY_800, COLOR_LIGHT_SECONDARY_900, TYPOGRAPHY_HEADLINE1_FONT_FAMILY, TYPOGRAPHY_HEADLINE2_FONT_FAMILY, TYPOGRAPHY_HEADLINE3_FONT_FAMILY, TYPOGRAPHY_SUBTITLE1_FONT_FAMILY, TYPOGRAPHY_HEADLINE4_FONT_FAMILY, TYPOGRAPHY_HEADLINE5_FONT_FAMILY, TYPOGRAPHY_HEADLINE6_FONT_FAMILY, TYPOGRAPHY_BODY1_FONT_FAMILY, TYPOGRAPHY_OVERLINE_FONT_FAMILY, TYPOGRAPHY_BODY2_FONT_FAMILY, TYPOGRAPHY_BUTTON_FONT_FAMILY, TYPOGRAPHY_CAPTION_FONT_FAMILY, TYPOGRAPHY_SUBTITLE2_FONT_FAMILY, SCHEME_LIGHT_CONTRAST, SCHEME_DARK_CONTRAST, COLOR_LIGHT_DANGER_0, COLOR_LIGHT_DANGER_100, COLOR_LIGHT_DANGER_200, COLOR_LIGHT_DANGER_300, COLOR_LIGHT_DANGER_400, COLOR_LIGHT_DANGER_50, COLOR_LIGHT_DANGER_500, COLOR_LIGHT_DANGER_600, COLOR_LIGHT_DANGER_700, COLOR_LIGHT_DANGER_800, COLOR_LIGHT_DANGER_900, COLOR_LIGHT_INFO_0, COLOR_LIGHT_INFO_100, COLOR_LIGHT_INFO_200, COLOR_LIGHT_INFO_300, COLOR_LIGHT_INFO_400, COLOR_LIGHT_INFO_50, COLOR_LIGHT_INFO_500, COLOR_LIGHT_INFO_600, COLOR_LIGHT_INFO_700, COLOR_LIGHT_INFO_800, COLOR_LIGHT_INFO_900, COLOR_LIGHT_WARNING_0, COLOR_LIGHT_WARNING_100, COLOR_LIGHT_WARNING_200, COLOR_LIGHT_WARNING_300, COLOR_LIGHT_WARNING_400, COLOR_LIGHT_WARNING_50, COLOR_LIGHT_WARNING_500, COLOR_LIGHT_WARNING_600, COLOR_LIGHT_WARNING_700, COLOR_LIGHT_WARNING_800, COLOR_LIGHT_WARNING_900, COLOR_LIGHT_NEUTRAL_0, COLOR_LIGHT_NEUTRAL_100, COLOR_LIGHT_NEUTRAL_200, COLOR_LIGHT_NEUTRAL_300, COLOR_LIGHT_NEUTRAL_400, COLOR_LIGHT_NEUTRAL_50, COLOR_LIGHT_NEUTRAL_500, COLOR_LIGHT_NEUTRAL_600, COLOR_LIGHT_NEUTRAL_700, COLOR_LIGHT_NEUTRAL_800, COLOR_LIGHT_NEUTRAL_900, COLOR_LIGHT_SUCCESS_0, COLOR_LIGHT_SUCCESS_100, COLOR_LIGHT_SUCCESS_200, COLOR_LIGHT_SUCCESS_300, COLOR_LIGHT_SUCCESS_400, COLOR_LIGHT_SUCCESS_50, COLOR_LIGHT_SUCCESS_500, COLOR_LIGHT_SUCCESS_600, COLOR_LIGHT_SUCCESS_700, COLOR_LIGHT_SUCCESS_800, COLOR_LIGHT_SUCCESS_900, COLOR_DARK_DANGER_0, COLOR_DARK_DANGER_100, COLOR_DARK_DANGER_200, COLOR_DARK_DANGER_300, COLOR_DARK_DANGER_400, COLOR_DARK_DANGER_50, COLOR_DARK_DANGER_500, COLOR_DARK_DANGER_600, COLOR_DARK_DANGER_700, COLOR_DARK_DANGER_800, COLOR_DARK_DANGER_900, COLOR_DARK_INFO_0, COLOR_DARK_INFO_100, COLOR_DARK_INFO_200, COLOR_DARK_INFO_300, COLOR_DARK_INFO_400, COLOR_DARK_INFO_50, COLOR_DARK_INFO_500, COLOR_DARK_INFO_600, COLOR_DARK_INFO_700, COLOR_DARK_INFO_800, COLOR_DARK_INFO_900, COLOR_DARK_NEUTRAL_0, COLOR_DARK_NEUTRAL_100, COLOR_DARK_NEUTRAL_200, COLOR_DARK_NEUTRAL_300, COLOR_DARK_NEUTRAL_400, COLOR_DARK_NEUTRAL_50, COLOR_DARK_NEUTRAL_500, COLOR_DARK_NEUTRAL_600, COLOR_DARK_NEUTRAL_700, COLOR_DARK_NEUTRAL_800, COLOR_DARK_NEUTRAL_900, COLOR_DARK_SUCCESS_0, COLOR_DARK_SUCCESS_100, COLOR_DARK_SUCCESS_200, COLOR_DARK_SUCCESS_300, COLOR_DARK_SUCCESS_400, COLOR_DARK_SUCCESS_50, COLOR_DARK_SUCCESS_500, COLOR_DARK_SUCCESS_600, COLOR_DARK_SUCCESS_700, COLOR_DARK_SUCCESS_800, COLOR_DARK_SUCCESS_900, COLOR_DARK_WARNING_0, COLOR_DARK_WARNING_100, COLOR_DARK_WARNING_200, COLOR_DARK_WARNING_300, COLOR_DARK_WARNING_400, COLOR_DARK_WARNING_50, COLOR_DARK_WARNING_500, COLOR_DARK_WARNING_600, COLOR_DARK_WARNING_700, COLOR_DARK_WARNING_800, COLOR_DARK_WARNING_900, VARIANT_PRIMARY, VARIANT_SECONDARY, ELEVATION_KEY_BOLD, ELEVATION_KEY_EXTRABOLD, ELEVATION_KEY_LIGHT, ELEVATION_KEY_REGULAR, ELEVATION_KEY_SEMIBOLD, ELEVATION_KEY_SEMILIGHT, VARIANT_DANGER, VARIANT_INFO, VARIANT_NEUTRAL, VARIANT_SUCCESS, VARIANT_WARNING, TYPOGRAPHY_KEY_BODY1, TYPOGRAPHY_KEY_BODY2, TYPOGRAPHY_KEY_BUTTON, TYPOGRAPHY_KEY_CAPTION, TYPOGRAPHY_KEY_HEADLINE1, TYPOGRAPHY_KEY_HEADLINE2, TYPOGRAPHY_KEY_HEADLINE3, TYPOGRAPHY_KEY_HEADLINE4, TYPOGRAPHY_KEY_HEADLINE5, TYPOGRAPHY_KEY_HEADLINE6, TYPOGRAPHY_KEY_OVERLINE, TYPOGRAPHY_KEY_SUBTITLE1, TYPOGRAPHY_KEY_SUBTITLE2, SCHEME_DARK_SURFACE, SCHEME_DARK_SELECTION, SCHEME_LIGHT_SELECTION, SCHEME_LIGHT_SURFACE, COLOR_DARK_HIGHLIGHT_600, COLOR_DARK_HIGHLIGHT_100, COLOR_DARK_HIGHLIGHT_0, COLOR_DARK_HIGHLIGHT_200, COLOR_DARK_HIGHLIGHT_300, COLOR_DARK_HIGHLIGHT_400, COLOR_DARK_HIGHLIGHT_50, COLOR_DARK_HIGHLIGHT_500, COLOR_DARK_HIGHLIGHT_700, COLOR_DARK_HIGHLIGHT_800, COLOR_DARK_HIGHLIGHT_900, COLOR_DARK_TERTIARY_0, COLOR_DARK_TERTIARY_100, COLOR_DARK_TERTIARY_200, COLOR_DARK_TERTIARY_300, COLOR_DARK_TERTIARY_400, COLOR_DARK_TERTIARY_50, COLOR_DARK_TERTIARY_500, COLOR_DARK_TERTIARY_600, COLOR_DARK_TERTIARY_700, COLOR_DARK_TERTIARY_800, COLOR_DARK_TERTIARY_900, COLOR_LIGHT_HIGHLIGHT_0, COLOR_LIGHT_HIGHLIGHT_100, COLOR_LIGHT_HIGHLIGHT_200, COLOR_LIGHT_HIGHLIGHT_300, COLOR_LIGHT_HIGHLIGHT_400, COLOR_LIGHT_HIGHLIGHT_50, COLOR_LIGHT_HIGHLIGHT_500, COLOR_LIGHT_HIGHLIGHT_600, COLOR_LIGHT_HIGHLIGHT_700, COLOR_LIGHT_HIGHLIGHT_800, COLOR_LIGHT_HIGHLIGHT_900, COLOR_LIGHT_TERTIARY_0, COLOR_LIGHT_TERTIARY_100, COLOR_LIGHT_TERTIARY_200, COLOR_LIGHT_TERTIARY_300, COLOR_LIGHT_TERTIARY_400, COLOR_LIGHT_TERTIARY_50, COLOR_LIGHT_TERTIARY_500, COLOR_LIGHT_TERTIARY_600, COLOR_LIGHT_TERTIARY_700, COLOR_LIGHT_TERTIARY_800, COLOR_LIGHT_TERTIARY_900 } from './Tokens/MemphisTokens';\nimport type { IThemeMetadata } from './Utils/IThemeMetadata';\n\n// #endregion\n\nexport namespace MemphisTheme {\n\n    export const MEMPHIS_THEME = ThemeFactory.create({\n        name: NAME,\n        scheme: {\n            light: {\n                surface: SCHEME_LIGHT_SURFACE,\n                background: SCHEME_LIGHT_BACKGROUND,\n                foreground: SCHEME_LIGHT_FOREGROUND,\n                highlight: SCHEME_LIGHT_HIGHLIGHT,\n                middlelight: SCHEME_LIGHT_MIDDLELIGHT,\n                lowlight: SCHEME_LIGHT_LOWLIGHT,\n                transparent: SCHEME_LIGHT_TRANSPARENT,\n                semiTransparent: SCHEME_LIGHT_SEMI_TRANSPARENT,\n                disabled: SCHEME_LIGHT_DISABLED,\n                contrast: SCHEME_LIGHT_CONTRAST,\n                selection: SCHEME_LIGHT_SELECTION\n            },\n            dark: {\n                surface: SCHEME_DARK_SURFACE,\n                background: SCHEME_DARK_BACKGROUND,\n                foreground: SCHEME_DARK_FOREGROUND,\n                highlight: SCHEME_DARK_HIGHLIGHT,\n                middlelight: SCHEME_DARK_MIDDLELIGHT,\n                lowlight: SCHEME_DARK_LOWLIGHT,\n                transparent: SCHEME_DARK_TRANSPARENT,\n                semiTransparent: SCHEME_DARK_SEMI_TRANSPARENT,\n                disabled: SCHEME_DARK_DISABLED,\n                contrast: SCHEME_DARK_CONTRAST,\n                selection: SCHEME_DARK_SELECTION\n            }\n        },\n        palette: {\n            light: {\n                primary: {\n                    0: COLOR_LIGHT_PRIMARY_0,\n                    50: COLOR_LIGHT_PRIMARY_50,\n                    100: COLOR_LIGHT_PRIMARY_100,\n                    200: COLOR_LIGHT_PRIMARY_200,\n                    300: COLOR_LIGHT_PRIMARY_300,\n                    400: COLOR_LIGHT_PRIMARY_400,\n                    500: COLOR_LIGHT_PRIMARY_500,\n                    600: COLOR_LIGHT_PRIMARY_600,\n                    700: COLOR_LIGHT_PRIMARY_700,\n                    800: COLOR_LIGHT_PRIMARY_800,\n                    900: COLOR_LIGHT_PRIMARY_900\n                },\n                secondary: {\n                    0: COLOR_LIGHT_SECONDARY_0,\n                    50: COLOR_LIGHT_SECONDARY_50,\n                    100: COLOR_LIGHT_SECONDARY_100,\n                    200: COLOR_LIGHT_SECONDARY_200,\n                    300: COLOR_LIGHT_SECONDARY_300,\n                    400: COLOR_LIGHT_SECONDARY_400,\n                    500: COLOR_LIGHT_SECONDARY_500,\n                    600: COLOR_LIGHT_SECONDARY_600,\n                    700: COLOR_LIGHT_SECONDARY_700,\n                    800: COLOR_LIGHT_SECONDARY_800,\n                    900: COLOR_LIGHT_SECONDARY_900\n                },\n                tertiary: {\n                    0: COLOR_LIGHT_TERTIARY_0,\n                    50: COLOR_LIGHT_TERTIARY_50,\n                    100: COLOR_LIGHT_TERTIARY_100,\n                    200: COLOR_LIGHT_TERTIARY_200,\n                    300: COLOR_LIGHT_TERTIARY_300,\n                    400: COLOR_LIGHT_TERTIARY_400,\n                    500: COLOR_LIGHT_TERTIARY_500,\n                    600: COLOR_LIGHT_TERTIARY_600,\n                    700: COLOR_LIGHT_TERTIARY_700,\n                    800: COLOR_LIGHT_TERTIARY_800,\n                    900: COLOR_LIGHT_TERTIARY_900\n                },\n                info: {\n                    0: COLOR_LIGHT_INFO_0,\n                    50: COLOR_LIGHT_INFO_50,\n                    100: COLOR_LIGHT_INFO_100,\n                    200: COLOR_LIGHT_INFO_200,\n                    300: COLOR_LIGHT_INFO_300,\n                    400: COLOR_LIGHT_INFO_400,\n                    500: COLOR_LIGHT_INFO_500,\n                    600: COLOR_LIGHT_INFO_600,\n                    700: COLOR_LIGHT_INFO_700,\n                    800: COLOR_LIGHT_INFO_800,\n                    900: COLOR_LIGHT_INFO_900\n                },\n                warning: {\n                    0: COLOR_LIGHT_WARNING_0,\n                    50: COLOR_LIGHT_WARNING_50,\n                    100: COLOR_LIGHT_WARNING_100,\n                    200: COLOR_LIGHT_WARNING_200,\n                    300: COLOR_LIGHT_WARNING_300,\n                    400: COLOR_LIGHT_WARNING_400,\n                    500: COLOR_LIGHT_WARNING_500,\n                    600: COLOR_LIGHT_WARNING_600,\n                    700: COLOR_LIGHT_WARNING_700,\n                    800: COLOR_LIGHT_WARNING_800,\n                    900: COLOR_LIGHT_WARNING_900\n                },\n                danger: {\n                    0: COLOR_LIGHT_DANGER_0,\n                    50: COLOR_LIGHT_DANGER_50,\n                    100: COLOR_LIGHT_DANGER_100,\n                    200: COLOR_LIGHT_DANGER_200,\n                    300: COLOR_LIGHT_DANGER_300,\n                    400: COLOR_LIGHT_DANGER_400,\n                    500: COLOR_LIGHT_DANGER_500,\n                    600: COLOR_LIGHT_DANGER_600,\n                    700: COLOR_LIGHT_DANGER_700,\n                    800: COLOR_LIGHT_DANGER_800,\n                    900: COLOR_LIGHT_DANGER_900\n                },\n                success: {\n                    0: COLOR_LIGHT_SUCCESS_0,\n                    50: COLOR_LIGHT_SUCCESS_50,\n                    100: COLOR_LIGHT_SUCCESS_100,\n                    200: COLOR_LIGHT_SUCCESS_200,\n                    300: COLOR_LIGHT_SUCCESS_300,\n                    400: COLOR_LIGHT_SUCCESS_400,\n                    500: COLOR_LIGHT_SUCCESS_500,\n                    600: COLOR_LIGHT_SUCCESS_600,\n                    700: COLOR_LIGHT_SUCCESS_700,\n                    800: COLOR_LIGHT_SUCCESS_800,\n                    900: COLOR_LIGHT_SUCCESS_900\n                },\n                highlight: {\n                    0: COLOR_LIGHT_HIGHLIGHT_0,\n                    50: COLOR_LIGHT_HIGHLIGHT_50,\n                    100: COLOR_LIGHT_HIGHLIGHT_100,\n                    200: COLOR_LIGHT_HIGHLIGHT_200,\n                    300: COLOR_LIGHT_HIGHLIGHT_300,\n                    400: COLOR_LIGHT_HIGHLIGHT_400,\n                    500: COLOR_LIGHT_HIGHLIGHT_500,\n                    600: COLOR_LIGHT_HIGHLIGHT_600,\n                    700: COLOR_LIGHT_HIGHLIGHT_700,\n                    800: COLOR_LIGHT_HIGHLIGHT_800,\n                    900: COLOR_LIGHT_HIGHLIGHT_900\n                },\n                neutral: {\n                    0: COLOR_LIGHT_NEUTRAL_0,\n                    50: COLOR_LIGHT_NEUTRAL_50,\n                    100: COLOR_LIGHT_NEUTRAL_100,\n                    200: COLOR_LIGHT_NEUTRAL_200,\n                    300: COLOR_LIGHT_NEUTRAL_300,\n                    400: COLOR_LIGHT_NEUTRAL_400,\n                    500: COLOR_LIGHT_NEUTRAL_500,\n                    600: COLOR_LIGHT_NEUTRAL_600,\n                    700: COLOR_LIGHT_NEUTRAL_700,\n                    800: COLOR_LIGHT_NEUTRAL_800,\n                    900: COLOR_LIGHT_NEUTRAL_900\n                }\n            },\n            dark: {\n                primary: {\n                    0: COLOR_DARK_PRIMARY_0,\n                    50: COLOR_DARK_PRIMARY_50,\n                    100: COLOR_DARK_PRIMARY_100,\n                    200: COLOR_DARK_PRIMARY_200,\n                    300: COLOR_DARK_PRIMARY_300,\n                    400: COLOR_DARK_PRIMARY_400,\n                    500: COLOR_DARK_PRIMARY_500,\n                    600: COLOR_DARK_PRIMARY_600,\n                    700: COLOR_DARK_PRIMARY_700,\n                    800: COLOR_DARK_PRIMARY_800,\n                    900: COLOR_DARK_PRIMARY_900\n                },\n                secondary: {\n                    0: COLOR_DARK_SECONDARY_0,\n                    50: COLOR_DARK_SECONDARY_50,\n                    100: COLOR_DARK_SECONDARY_100,\n                    200: COLOR_DARK_SECONDARY_200,\n                    300: COLOR_DARK_SECONDARY_300,\n                    400: COLOR_DARK_SECONDARY_400,\n                    500: COLOR_DARK_SECONDARY_500,\n                    600: COLOR_DARK_SECONDARY_600,\n                    700: COLOR_DARK_SECONDARY_700,\n                    800: COLOR_DARK_SECONDARY_800,\n                    900: COLOR_DARK_SECONDARY_900\n                },\n                tertiary: {\n                    0: COLOR_DARK_TERTIARY_0,\n                    50: COLOR_DARK_TERTIARY_50,\n                    100: COLOR_DARK_TERTIARY_100,\n                    200: COLOR_DARK_TERTIARY_200,\n                    300: COLOR_DARK_TERTIARY_300,\n                    400: COLOR_DARK_TERTIARY_400,\n                    500: COLOR_DARK_TERTIARY_500,\n                    600: COLOR_DARK_TERTIARY_600,\n                    700: COLOR_DARK_TERTIARY_700,\n                    800: COLOR_DARK_TERTIARY_800,\n                    900: COLOR_DARK_TERTIARY_900\n                },\n                info: {\n                    0: COLOR_DARK_INFO_0,\n                    50: COLOR_DARK_INFO_50,\n                    100: COLOR_DARK_INFO_100,\n                    200: COLOR_DARK_INFO_200,\n                    300: COLOR_DARK_INFO_300,\n                    400: COLOR_DARK_INFO_400,\n                    500: COLOR_DARK_INFO_500,\n                    600: COLOR_DARK_INFO_600,\n                    700: COLOR_DARK_INFO_700,\n                    800: COLOR_DARK_INFO_800,\n                    900: COLOR_DARK_INFO_900\n                },\n                warning: {\n                    0: COLOR_DARK_WARNING_0,\n                    50: COLOR_DARK_WARNING_50,\n                    100: COLOR_DARK_WARNING_100,\n                    200: COLOR_DARK_WARNING_200,\n                    300: COLOR_DARK_WARNING_300,\n                    400: COLOR_DARK_WARNING_400,\n                    500: COLOR_DARK_WARNING_500,\n                    600: COLOR_DARK_WARNING_600,\n                    700: COLOR_DARK_WARNING_700,\n                    800: COLOR_DARK_WARNING_800,\n                    900: COLOR_DARK_WARNING_900\n                },\n                danger: {\n                    0: COLOR_DARK_DANGER_0,\n                    50: COLOR_DARK_DANGER_50,\n                    100: COLOR_DARK_DANGER_100,\n                    200: COLOR_DARK_DANGER_200,\n                    300: COLOR_DARK_DANGER_300,\n                    400: COLOR_DARK_DANGER_400,\n                    500: COLOR_DARK_DANGER_500,\n                    600: COLOR_DARK_DANGER_600,\n                    700: COLOR_DARK_DANGER_700,\n                    800: COLOR_DARK_DANGER_800,\n                    900: COLOR_DARK_DANGER_900\n                },\n                success: {\n                    0: COLOR_DARK_SUCCESS_0,\n                    50: COLOR_DARK_SUCCESS_50,\n                    100: COLOR_DARK_SUCCESS_100,\n                    200: COLOR_DARK_SUCCESS_200,\n                    300: COLOR_DARK_SUCCESS_300,\n                    400: COLOR_DARK_SUCCESS_400,\n                    500: COLOR_DARK_SUCCESS_500,\n                    600: COLOR_DARK_SUCCESS_600,\n                    700: COLOR_DARK_SUCCESS_700,\n                    800: COLOR_DARK_SUCCESS_800,\n                    900: COLOR_DARK_SUCCESS_900\n                },\n                highlight: {\n                    0: COLOR_DARK_HIGHLIGHT_0,\n                    50: COLOR_DARK_HIGHLIGHT_50,\n                    100: COLOR_DARK_HIGHLIGHT_100,\n                    200: COLOR_DARK_HIGHLIGHT_200,\n                    300: COLOR_DARK_HIGHLIGHT_300,\n                    400: COLOR_DARK_HIGHLIGHT_400,\n                    500: COLOR_DARK_HIGHLIGHT_500,\n                    600: COLOR_DARK_HIGHLIGHT_600,\n                    700: COLOR_DARK_HIGHLIGHT_700,\n                    800: COLOR_DARK_HIGHLIGHT_800,\n                    900: COLOR_DARK_HIGHLIGHT_900\n                },\n                neutral: {\n                    0: COLOR_DARK_NEUTRAL_0,\n                    50: COLOR_DARK_NEUTRAL_50,\n                    100: COLOR_DARK_NEUTRAL_100,\n                    200: COLOR_DARK_NEUTRAL_200,\n                    300: COLOR_DARK_NEUTRAL_300,\n                    400: COLOR_DARK_NEUTRAL_400,\n                    500: COLOR_DARK_NEUTRAL_500,\n                    600: COLOR_DARK_NEUTRAL_600,\n                    700: COLOR_DARK_NEUTRAL_700,\n                    800: COLOR_DARK_NEUTRAL_800,\n                    900: COLOR_DARK_NEUTRAL_900\n                }\n            }\n        },\n        fontFamily: FONT_FAMILY,\n        typography: {\n            headline1: {\n                fontFamily: TYPOGRAPHY_HEADLINE1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE1_TEXT_TRANSFORM\n            },\n            headline2: {\n                fontFamily: TYPOGRAPHY_HEADLINE2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE2_TEXT_TRANSFORM\n            },\n            headline3: {\n                fontFamily: TYPOGRAPHY_HEADLINE3_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE3_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE3_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE3_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE3_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE3_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE3_TEXT_TRANSFORM\n            },\n            headline4: {\n                fontFamily: TYPOGRAPHY_HEADLINE4_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE4_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE4_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE4_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE4_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE4_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE4_TEXT_TRANSFORM\n            },\n            headline5: {\n                fontFamily: TYPOGRAPHY_HEADLINE5_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE5_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE5_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE5_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE5_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE5_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE5_TEXT_TRANSFORM\n            },\n            headline6: {\n                fontFamily: TYPOGRAPHY_HEADLINE6_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_HEADLINE6_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_HEADLINE6_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_HEADLINE6_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_HEADLINE6_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_HEADLINE6_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_HEADLINE6_TEXT_TRANSFORM\n            },\n            subtitle1: {\n                fontFamily: TYPOGRAPHY_SUBTITLE1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_SUBTITLE1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_SUBTITLE1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_SUBTITLE1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_SUBTITLE1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_SUBTITLE1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_SUBTITLE1_TEXT_TRANSFORM\n            },\n            subtitle2: {\n                fontFamily: TYPOGRAPHY_SUBTITLE2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_SUBTITLE2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_SUBTITLE2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_SUBTITLE2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_SUBTITLE2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_SUBTITLE2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_SUBTITLE2_TEXT_TRANSFORM\n            },\n            body1: {\n                fontFamily: TYPOGRAPHY_BODY1_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BODY1_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BODY1_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BODY1_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BODY1_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BODY1_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BODY1_TEXT_TRANSFORM\n            },\n            body2: {\n                fontFamily: TYPOGRAPHY_BODY2_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BODY2_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BODY2_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BODY2_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BODY2_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BODY2_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BODY2_TEXT_TRANSFORM\n            },\n            caption: {\n                fontFamily: TYPOGRAPHY_CAPTION_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_CAPTION_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_CAPTION_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_CAPTION_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_CAPTION_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_CAPTION_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_CAPTION_TEXT_TRANSFORM\n            },\n            overline: {\n                fontFamily: TYPOGRAPHY_OVERLINE_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_OVERLINE_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_OVERLINE_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_OVERLINE_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_OVERLINE_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_OVERLINE_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_OVERLINE_TEXT_TRANSFORM\n            },\n            button: {\n                fontFamily: TYPOGRAPHY_BUTTON_FONT_FAMILY,\n                fontSize: TYPOGRAPHY_BUTTON_FONT_SIZE,\n                lineHeight: TYPOGRAPHY_BUTTON_LINE_HEIGHT,\n                fontWeight: TYPOGRAPHY_BUTTON_FONT_WEIGHT,\n                letterSpacing: TYPOGRAPHY_BUTTON_LETTER_SPACING,\n                textDecoration: TYPOGRAPHY_BUTTON_TEXT_DECORATION,\n                textTransform: TYPOGRAPHY_BUTTON_TEXT_TRANSFORM\n            }\n        },\n        layout: {\n            radius: LAYOUT_RADIUS,\n            space: LAYOUT_SPACE,\n            thickness: LAYOUT_THICKNESS\n        },\n        elevation: {\n            light: {\n                light: ELEVATION_LIGHT_LIGHT,\n                semilight: ELEVATION_LIGHT_SEMILIGHT,\n                regular: ELEVATION_LIGHT_REGULAR,\n                semibold: ELEVATION_LIGHT_SEMIBOLD,\n                bold: ELEVATION_LIGHT_BOLD,\n                extrabold: ELEVATION_LIGHT_EXTRABOLD\n            },\n            dark: {\n                light: ELEVATION_DARK_LIGHT,\n                semilight: ELEVATION_DARK_SEMILIGHT,\n                regular: ELEVATION_DARK_REGULAR,\n                semibold: ELEVATION_DARK_SEMIBOLD,\n                bold: ELEVATION_DARK_BOLD,\n                extrabold: ELEVATION_DARK_EXTRABOLD\n            }\n        }\n    });\n\n    export const MEMPHIS_THEME_PALETTES = [VARIANT_PRIMARY, VARIANT_SECONDARY, VARIANT_DANGER, VARIANT_INFO, VARIANT_NEUTRAL, VARIANT_SUCCESS, VARIANT_WARNING];\n\n    export const MEMPHIS_THEME_PALETTE_VARIANTS = ['0', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\n\n    export const MEMPHIS_THEME_SCHEMES = ['light', 'dark'];\n\n    export const MEMPHIS_THEME_SCHEME_VARIANTS = ['surface', 'background', 'foreground', 'highlight', 'middlelight', 'lowlight', 'transparent', 'semiTransparent', 'disabled', 'contrast', 'selection'];\n\n    export const MEMPHIS_THEME_ELEVATION = ['light', 'dark'];\n\n    export const MEMPHIS_THEME_ELEVATION_VARIANTS = [ELEVATION_KEY_LIGHT, ELEVATION_KEY_SEMILIGHT, ELEVATION_KEY_REGULAR, ELEVATION_KEY_SEMIBOLD, ELEVATION_KEY_BOLD, ELEVATION_KEY_EXTRABOLD];\n\n    export const MEMPHIS_THEME_TYPOGRAPHY = [TYPOGRAPHY_KEY_HEADLINE1, TYPOGRAPHY_KEY_HEADLINE2, TYPOGRAPHY_KEY_HEADLINE3, TYPOGRAPHY_KEY_HEADLINE4, TYPOGRAPHY_KEY_HEADLINE5, TYPOGRAPHY_KEY_HEADLINE6, TYPOGRAPHY_KEY_SUBTITLE1, TYPOGRAPHY_KEY_SUBTITLE2, TYPOGRAPHY_KEY_BODY1, TYPOGRAPHY_KEY_BODY2, TYPOGRAPHY_KEY_CAPTION, TYPOGRAPHY_KEY_OVERLINE, TYPOGRAPHY_KEY_BUTTON];\n\n    export const MEMPHIS_THEME_METADATA: IThemeMetadata = {\n        theme: MEMPHIS_THEME,\n        palettes: MEMPHIS_THEME_PALETTES,\n        paletteVariants: MEMPHIS_THEME_PALETTE_VARIANTS,\n        schemes: MEMPHIS_THEME_SCHEMES,\n        schemeVariants: MEMPHIS_THEME_SCHEME_VARIANTS,\n        elevation: MEMPHIS_THEME_ELEVATION,\n        elevationVariants: MEMPHIS_THEME_ELEVATION_VARIANTS,\n        typographies: MEMPHIS_THEME_TYPOGRAPHY\n    };\n\n}\n","// #region Imports\n\nimport chroma from 'chroma-js';\nimport type { CssColor } from '../../../Utils/CssColor';\nimport type { ThemePalette } from '../../../Utils/ThemePalette';\nimport type { ThemeScheme } from '../../../Utils/ThemeScheme';\nimport type { IThemeGeneratorStrategy } from '../../interfaces/IThemeGeneratorStrategy';\n\n// #endregion\n\n/**\n * Abstract theme generator strategy that operates in the **HSL** (Hue, Saturation, Lightness)\n * color space.\n *\n * @remarks\n * HSL is a cylindrical color model widely used in CSS and web design tooling.\n * Unlike LCH it is not perceptually uniform, but it provides a familiar and\n * lightweight alternative for palette generation.\n *\n * Concrete themes that prefer HSL-based generation extend this class.\n *\n * @public\n * @abstract\n */\nexport abstract class HslThemeGeneratorStrategy implements IThemeGeneratorStrategy {\n\n    // #region Fields\n\n    private static readonly _LIGHTNESS_THRESHOLD = 0.5;\n\n    // #endregion\n\n    // #region Methods\n\n    /**\n     * Determines whether a color naturally belongs to the given mode's HSL lightness range.\n     *\n     * @remarks\n     * A color with HSL lightness > 0.5 is considered \"light\"; ≤ 0.5 is considered \"dark\".\n     *\n     * @public\n     * @param color - The color to check\n     * @param mode - The target color mode ('dark' | 'light')\n     * @returns `true` if the color is naturally compatible with the given mode\n     */\n    public isColorInModeSpectrum(color: CssColor, mode: 'dark' | 'light'): boolean {\n        const [, , l] = chroma(color).hsl();\n\n        return mode === 'light'\n            ? l > HslThemeGeneratorStrategy._LIGHTNESS_THRESHOLD\n            : l <= HslThemeGeneratorStrategy._LIGHTNESS_THRESHOLD;\n    }\n\n    /**\n     * Adapts a color to the opposite mode by symmetrically inverting its HSL lightness\n     * (`L → 1 - L`) while preserving hue and saturation.\n     *\n     * @remarks\n     * The inversion is symmetric: a light color becomes dark and vice-versa, regardless\n     * of the direction. Therefore no target mode parameter is required.\n     *\n     * The inverted lightness is clamped to [0.05, 0.95] to avoid pure black / pure white.\n     * Subclasses may override this method for theme-specific post-processing.\n     *\n     * @public\n     * @param color - The color to adapt\n     * @returns The adapted color with inverted lightness\n     */\n    public adaptColorToMode(color: CssColor): CssColor {\n        const c = chroma(color);\n        const [h, s, l] = c.hsl();\n        const invertedL = Math.min(Math.max(1 - l, 0.05), 0.95);\n\n        return chroma.hsl(isNaN(h) ? 0 : h, s, invertedL).hex() as CssColor;\n    }\n\n    /**\n     * Generates a palette of shades based on a base/accent color using HSL interpolation.\n     *\n     * @public\n     * @param baseColor - The base/accent color (e.g. \"#3498db\")\n     * @param mode - 'light' or 'dark' mode: determines how light or dark the palette extremes are.\n     * @returns The generated theme palette with shade steps 0–900\n     */\n    public generatePalette(baseColor: CssColor, mode: 'light' | 'dark'): Required<ThemePalette> {\n        const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\n        const base = chroma(baseColor);\n        const [h, s] = base.hsl();\n        const palette: Record<string, CssColor> = {};\n\n        steps.forEach((step, idx) => {\n            const t = idx / (steps.length - 1);\n            const lightness = mode === 'light'\n                ? 0.95 - t * 0.6   // from ~95% light → ~35% light\n                : 0.15 + t * 0.6;  // from ~15% light → ~75% light\n            const col = chroma.hsl(h, s, lightness);\n            palette[step.toString()] = col.hex() as CssColor;\n        });\n\n        return {\n            \"0\": palette['0'],\n            \"50\": palette['50'],\n            \"100\": palette['100'],\n            \"200\": palette['200'],\n            \"300\": palette['300'],\n            \"400\": palette['400'],\n            \"500\": palette['500'],\n            \"600\": palette['600'],\n            \"700\": palette['700'],\n            \"800\": palette['800'],\n            \"900\": palette['900']\n        };\n    }\n\n    /**\n     * Generates a semantic color scheme for UI usage, based on the generated palette.\n     *\n     * @public\n     * @param baseColor - The base/accent color\n     * @param mode - 'light' or 'dark'\n     * @returns The generated theme scheme with semantic color roles\n     */\n    public generateScheme(baseColor: CssColor, mode: 'light' | 'dark'): Required<ThemeScheme> {\n        const p = this.generatePalette(baseColor, mode);\n\n        return {\n            background: p['50'],\n            foreground: p['900'],\n            disabled: p['300'],\n            contrast: p['900'],\n            highlight: p['700'],\n            lowlight: p['300'],\n            middlelight: p['500'],\n            selection: p['500'],\n            semiTransparent: chroma(p['500']).alpha(0.5).hex() as CssColor,\n            surface: p['50'],\n            transparent: chroma(p['500']).alpha(0).hex() as CssColor,\n        };\n    }\n\n    // #endregion\n\n}\n","// #region Imports\n\nimport chroma from 'chroma-js';\nimport type { CssColor } from '../../../Utils/CssColor';\nimport type { ThemePalette } from '../../../Utils/ThemePalette';\nimport type { ThemeScheme } from '../../../Utils/ThemeScheme';\nimport type { IThemeGeneratorStrategy } from '../../interfaces/IThemeGeneratorStrategy';\n\n// #endregion\n\n/**\n * Abstract theme generator strategy that operates in the **LCH** (Luminance, Chroma, Hue)\n * perceptual color space.\n *\n * @remarks\n * LCH is a perceptually uniform color space where `L*` (lightness 0–100) maps linearly\n * to how humans perceive brightness. This makes it ideal for reliable mode detection\n * and color adaptation.\n *\n * Concrete themes (Joy, Memphis, Cosmopolitan, …) extend this class to inherit\n * the shared color-science logic and only override behavior where their visual\n * language demands it.\n *\n * @public\n * @abstract\n */\nexport abstract class LchThemeGeneratorStrategy implements IThemeGeneratorStrategy {\n\n    // #region Fields\n\n    private static readonly _LUMINANCE_THRESHOLD = 0.5;\n\n    // #endregion\n\n    // #region Methods\n\n    /**\n     * Determines whether a color naturally belongs to the given mode's luminance range.\n     *\n     * @remarks\n     * Uses WCAG relative luminance (0 = black, 1 = white).\n     * A color with luminance > 0.5 is considered \"light\"; ≤ 0.5 is considered \"dark\".\n     *\n     * @public\n     * @param color - The color to check\n     * @param mode - The target color mode ('dark' | 'light')\n     * @returns `true` if the color is naturally compatible with the given mode\n     */\n    public isColorInModeSpectrum(color: CssColor, mode: 'dark' | 'light'): boolean {\n        const luminance = chroma(color).luminance();\n\n        return mode === 'light'\n            ? luminance > LchThemeGeneratorStrategy._LUMINANCE_THRESHOLD\n            : luminance <= LchThemeGeneratorStrategy._LUMINANCE_THRESHOLD;\n    }\n\n    /**\n     * Adapts a color to the opposite mode by symmetrically inverting its perceptual\n     * lightness in the LCH color space (`L* → 100 - L*`) while preserving hue and chroma.\n     *\n     * @remarks\n     * The inversion is symmetric: a light color becomes dark and vice-versa, regardless\n     * of the direction. Therefore no target mode parameter is required.\n     *\n     * The inverted lightness is clamped to [5, 95] to avoid pure black / pure white,\n     * which cannot carry chromatic information.\n     * Subclasses may override this method to apply theme-specific post-processing\n     * (e.g., chroma reduction for muted palettes).\n     *\n     * @public\n     * @param color - The color to adapt\n     * @returns The adapted color with inverted lightness\n     */\n    public adaptColorToMode(color: CssColor): CssColor {\n        const c = chroma(color);\n        const [l, chromaVal, h] = c.lch();\n        const invertedL = Math.min(Math.max(100 - l, 5), 95);\n\n        return chroma.lch(invertedL, chromaVal, isNaN(h) ? 0 : h).hex() as CssColor;\n    }\n\n    /**\n     * Generates a color palette from a base color for the given mode.\n     *\n     * @public\n     * @param baseColor - The base/accent color\n     * @param mode - 'light' or 'dark' mode\n     * @returns The generated theme palette with shade steps 0–900\n     */\n    public generatePalette(baseColor: CssColor, mode: 'dark' | 'light'): Required<ThemePalette> {\n        if (mode === 'light') {\n            const baseLight = chroma('#ffffff');\n            const baseDark = chroma('#000000');\n            const palette: Record<string, CssColor> = {};\n            const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\n            const amounts = [0, 12, 30, 50, 70, 85, 100, 87, 70, 54, 25];\n\n            steps.forEach((step, i) => {\n                const base = step <= 500 ? baseLight : baseDark;\n                palette[`${step}`] = chroma.mix(base, baseColor, amounts[i] / 100, 'rgb').hex() as CssColor;\n            });\n\n            return {\n                \"0\": palette['0'],\n                \"50\": palette['50'],\n                \"100\": palette['100'],\n                \"200\": palette['200'],\n                \"300\": palette['300'],\n                \"400\": palette['400'],\n                \"500\": palette['500'],\n                \"600\": palette['600'],\n                \"700\": palette['700'],\n                \"800\": palette['800'],\n                \"900\": palette['900']\n            };\n        }\n\n        const baseLight = chroma('#ffffff');\n        const baseDark = chroma('#000000');\n        const palette: Record<string, CssColor> = {};\n        const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\n        const amounts = [0, 15, 30, 45, 60, 75, 90, 100, 70, 54, 25];\n\n        steps.forEach((step, i) => {\n            const base = step <= 600 ? baseDark : baseLight;\n            palette[`${step}`] = chroma.mix(base, baseColor, amounts[i] / 100, 'rgb').hex() as CssColor;\n        });\n\n        return {\n            \"0\": palette['0'],\n            \"50\": palette['50'],\n            \"100\": palette['100'],\n            \"200\": palette['200'],\n            \"300\": palette['300'],\n            \"400\": palette['400'],\n            \"500\": palette['500'],\n            \"600\": palette['600'],\n            \"700\": palette['700'],\n            \"800\": palette['800'],\n            \"900\": palette['900']\n        };\n    }\n\n    /**\n     * Generates a semantic color scheme based on a base color and mode.\n     *\n     * @public\n     * @param baseColor - The base/accent color\n     * @param mode - 'light' or 'dark' mode\n     * @returns The generated theme scheme with semantic color roles\n     */\n    public generateScheme(baseColor: CssColor, mode: 'dark' | 'light'): Required<ThemeScheme> {\n        const baseChroma = chroma(baseColor);\n        const baseLuminance = baseChroma.luminance();\n\n        /**\n         * Adjusts color brightness while respecting min/max luminance bounds.\n         * Positive amount = brighten, negative amount = darken.\n         */\n        const adjustColor = (color: CssColor, amount: number, minLuminance = 0.02, maxLuminance = 0.98): CssColor => {\n            const c = chroma(color);\n            const factor = Math.abs(amount) / 25.5;\n\n            let result = amount > 0\n                ? c.brighten(factor)\n                : c.darken(factor);\n\n            // Clamp luminance to avoid pure black/white\n            const resultLuminance = result.luminance();\n            if (resultLuminance < minLuminance) {\n                result = chroma(result).luminance(minLuminance);\n            } else if (resultLuminance > maxLuminance) {\n                result = chroma(result).luminance(maxLuminance);\n            }\n\n            return result.hex() as CssColor;\n        };\n\n        /**\n         * Generates foreground/contrast color with guaranteed readability.\n         * Light mode: dark foreground (#1a1a1a - #2d2d2d)\n         * Dark mode: light foreground (#e8e8e8 - #f5f5f5)\n         */\n        const generateForeground = (): CssColor => {\n            if (mode === 'light') {\n                // Light mode needs dark text - derive from base but ensure darkness\n                const darkened = baseChroma.darken(4).saturate(-0.3);\n                const targetLuminance = Math.min(darkened.luminance(), 0.08);\n\n                return chroma(darkened).luminance(targetLuminance)\n                    .hex() as CssColor;\n            }\n\n            // Dark mode needs light text - derive from base but ensure brightness\n            const lightened = baseChroma.brighten(4).saturate(-0.3);\n            const targetLuminance = Math.max(lightened.luminance(), 0.85);\n\n            return chroma(lightened).luminance(targetLuminance)\n                .hex() as CssColor;\n        };\n\n        /**\n         * Generates surface color (slightly elevated from background).\n         * Light mode: slightly darker or lighter based on background\n         * Dark mode: slightly lighter\n         */\n        const generateSurface = (): CssColor => {\n            if (mode === 'light') {\n                // For very light backgrounds, make surface slightly darker for elevation\n                return baseLuminance > 0.9\n                    ? adjustColor(baseColor, -8)\n                    : adjustColor(baseColor, 8);\n            }\n\n            // Dark mode: surface is slightly lighter than background\n            return adjustColor(baseColor, 15);\n        };\n\n        /**\n         * Generates highlight color for hover/focus states.\n         */\n        const generateHighlight = (): CssColor => mode === 'light'\n            ? adjustColor(baseColor, -15, 0.05, 0.95)\n            : adjustColor(baseColor, 20, 0.05, 0.95);\n\n        /**\n         * Generates middlelight color (medium contrast).\n         */\n        const generateMiddlelight = (): CssColor => mode === 'light'\n            ? adjustColor(baseColor, -30, 0.1, 0.9)\n            : adjustColor(baseColor, 35, 0.1, 0.9);\n\n        /**\n         * Generates lowlight color (lower contrast).\n         */\n        const generateLowlight = (): CssColor => mode === 'light'\n            ? adjustColor(baseColor, -50, 0.15, 0.85)\n            : adjustColor(baseColor, 55, 0.15, 0.85);\n\n        /**\n         * Generates disabled state color.\n         */\n        const generateDisabled = (): CssColor => {\n            const desaturated = baseChroma.desaturate(2);\n\n            return mode === 'light'\n                ? chroma(desaturated).darken(0.5)\n                    .hex() as CssColor\n                : chroma(desaturated).brighten(0.5)\n                    .hex() as CssColor;\n        };\n\n        const foreground = generateForeground();\n\n        return {\n            surface: generateSurface(),\n            background: baseColor,\n            foreground: foreground,\n            highlight: generateHighlight(),\n            middlelight: generateMiddlelight(),\n            lowlight: generateLowlight(),\n            transparent: `${baseColor}00` as CssColor,\n            semiTransparent: chroma(baseColor).alpha(0.67)\n                .hex() as CssColor,\n            disabled: generateDisabled(),\n            contrast: foreground,\n            selection: generateHighlight()\n        };\n    }\n\n    // #endregion\n\n}\n","// #region Imports\n\nimport chroma from 'chroma-js';\nimport type { CssColor } from '../../Utils/CssColor';\nimport type { ThemePalette } from '../../Utils/ThemePalette';\nimport type { ThemeGeneratorFactoryFn } from '../interfaces/IThemeGeneratorFactory';\nimport { LchThemeGeneratorStrategy } from './abstracts/LchThemeGeneratorStrategy';\n\n// #endregion\n\n/**\n * Cosmopolitan theme generator strategy.\n *\n * @remarks\n * Extends {@link LchThemeGeneratorStrategy} with a muted, desaturated aesthetic\n * that defines the Cosmopolitan visual language. Overrides only where the default\n * LCH behavior needs adjustment; all other behavior is inherited.\n *\n * @public\n */\nexport class CosmopolitanThemeGeneratorStrategy extends LchThemeGeneratorStrategy {\n\n    // #region Fields\n\n    private static readonly _CHROMA_REDUCTION_FACTOR = 0.9;\n\n    // #endregion\n\n    // #region Methods\n\n    /**\n     * Adapts a color to the target mode by inverting its perceptual lightness (LCH L*)\n     * with a slight chroma reduction for the Cosmopolitan's muted aesthetic.\n     *\n     * @override\n     * @public\n     * @param color - The color to adapt\n     * @returns The adapted color with inverted lightness and reduced chroma\n     */\n    public override adaptColorToMode(color: CssColor): CssColor {\n        const c = chroma(color);\n        const [l, chromaVal, h] = c.lch();\n        const invertedL = Math.min(Math.max(100 - l, 5), 95);\n        const reducedChroma = chromaVal * CosmopolitanThemeGeneratorStrategy._CHROMA_REDUCTION_FACTOR;\n\n        return chroma.lch(invertedL, reducedChroma, isNaN(h) ? 0 : h).hex() as CssColor;\n    }\n\n    /**\n     * Generates a color palette with Cosmopolitan-specific dark-mode mixing.\n     *\n     * @remarks\n     * Light mode uses the standard LCH base class implementation.\n     * Dark mode uses a simplified three-anchor approach (steps 0, 100, 500)\n     * to produce the flat, muted dark palette that defines Cosmopolitan.\n     *\n     * @override\n     * @public\n     * @param baseColor - The base/accent color\n     * @param mode - 'light' or 'dark' mode\n     * @returns The generated theme palette with shade steps 0–900\n     */\n    public override generatePalette(baseColor: CssColor, mode: 'dark' | 'light'): Required<ThemePalette> {\n        if (mode === 'light') {\n            return super.generatePalette(baseColor, mode);\n        }\n\n        const baseDark = chroma('#000000');\n        const palette: Record<string, CssColor> = {};\n        const steps = [0, 100, 500];\n        const amounts = [0, 30, 100];\n\n        steps.forEach((step, i) => {\n            palette[`${step}`] = chroma.mix(baseDark, baseColor, amounts[i] / 100, 'rgb').hex() as CssColor;\n        });\n\n        return {\n            \"0\": palette['0'],\n            \"50\": palette['0'],\n            \"100\": palette['100'],\n            \"200\": palette['100'],\n            \"300\": palette['100'],\n            \"400\": palette['100'],\n            \"500\": palette['500'],\n            \"600\": palette['500'],\n            \"700\": palette['500'],\n            \"800\": palette['500'],\n            \"900\": palette['500']\n        };\n    }\n\n    // #endregion\n\n}\n\n/**\n * Generates a Cosmopolitan theme generator strategy.\n *\n * @public\n */\nexport function createCosmopolitanTheme(): ThemeGeneratorFactoryFn {\n    const strategy = new CosmopolitanThemeGeneratorStrategy();\n\n    return () => strategy;\n}\n","// #region Imports\n\nimport type { ThemeGeneratorFactoryFn } from '../interfaces/IThemeGeneratorFactory';\nimport { LchThemeGeneratorStrategy } from './abstracts/LchThemeGeneratorStrategy';\n\n// #endregion\n\n/**\n * Joy theme generator strategy.\n *\n * @remarks\n * Extends {@link LchThemeGeneratorStrategy} without customization.\n *\n * @public\n */\nexport class JoyThemeGeneratorStrategy extends LchThemeGeneratorStrategy {\n\n}\n\n/**\n * Generates a Joy theme generator strategy.\n *\n * @public\n */\nexport function createJoyTheme(): ThemeGeneratorFactoryFn {\n    const strategy = new JoyThemeGeneratorStrategy();\n\n    return () => strategy;\n}\n","// #region Imports\n\nimport type { ThemeGeneratorFactoryFn } from '../interfaces/IThemeGeneratorFactory';\nimport { LchThemeGeneratorStrategy } from './abstracts/LchThemeGeneratorStrategy';\n\n// #endregion\n\n/**\n * Memphis theme generator strategy.\n *\n * @remarks\n * Extends {@link LchThemeGeneratorStrategy} without customization.\n *\n * @public\n */\nexport class MemphisThemeGeneratorStrategy extends LchThemeGeneratorStrategy {\n\n}\n\n/**\n * Generates a Memphis theme generator strategy.\n *\n * @public\n */\nexport function createMemphisTheme(): ThemeGeneratorFactoryFn {\n    const strategy = new MemphisThemeGeneratorStrategy();\n\n    return () => strategy;\n}\n","// #region Imports\n\nimport type { IPlatformAdapter } from './Adapters/interfaces/IPlatformAdapter';\nimport { PlatformAdapterFactory } from './Adapters/PlatformAdapterFactory';\nimport type { IThemeGeneratorStrategy } from './Strategies/interfaces/IThemeGeneratorStrategy';\nimport { CosmopolitanThemeGeneratorStrategy } from './Strategies/surface/CosmopolitanThemeGeneratorStrategy';\nimport { JoyThemeGeneratorStrategy } from './Strategies/surface/JoyThemeGeneratorStrategy';\nimport { MemphisThemeGeneratorStrategy } from './Strategies/surface/MemphisThemeGeneratorStrategy';\nimport type { CssColor } from './Utils/CssColor';\nimport type { ThemeMode, ThemeModeWithSystem } from './Utils/ThemeMode';\nimport type { ThemePalette } from './Utils/ThemePalette';\nimport type { ThemeScheme } from './Utils/ThemeScheme';\n\n// #endregion\n\n/**\n * Central facade for generating theme palettes and color schemes.\n *\n * @remarks\n * Accepts any base color with any mode and autonomously ensures compatibility\n * before delegating to the resolved {@link IThemeGeneratorStrategy}.\n * The `'system'` mode is resolved to `'dark'` or `'light'` via the\n * {@link IPlatformAdapter}.\n *\n * @public\n */\nexport class ThemeGenerator {\n\n    // #region Fields\n\n    private readonly _strategies: Map<string, IThemeGeneratorStrategy>;\n    private readonly _platformAdapter: IPlatformAdapter;\n\n    // #endregion\n\n    // #region Ctor\n\n    /**\n     * @public\n     * @param platformAdapter - Optional platform adapter. Auto-detects if not provided.\n     */\n    public constructor(platformAdapter?: IPlatformAdapter) {\n        this._strategies = new Map<string, IThemeGeneratorStrategy>([\n            ['joy', new JoyThemeGeneratorStrategy()],\n            ['memphis', new MemphisThemeGeneratorStrategy()],\n            ['cosmopolitan', new CosmopolitanThemeGeneratorStrategy()]\n        ]);\n        this._platformAdapter = platformAdapter ?? PlatformAdapterFactory.create();\n    }\n\n    // #endregion\n\n    // #region Methods\n\n    /**\n     * Generates a complete theme palette (shades 0–900) for the given theme.\n     *\n     * @remarks\n     * 1. If `mode` is `'system'`, it is resolved to `'dark'` or `'light'` via the\n     *    platform adapter's `prefers-color-scheme` media query.\n     * 2. The base color is forwarded as-is to the theme-specific strategy which\n     *    produces 11 shade steps from lightest (0) to darkest (900).\n     *\n     * No automatic color adaptation is performed. Callers who need mode-compatible\n     * colors can use {@link IThemeGeneratorStrategy.isColorInModeSpectrum} and\n     * {@link IThemeGeneratorStrategy.adaptColorToMode} explicitly before calling\n     * this method.\n     *\n     * @public\n     * @param themeName - The name of the theme (`'joy'`, `'memphis'`, `'cosmopolitan'`).\n     * @param baseColor - The base accent color (any valid CSS color value).\n     * @param mode - The target mode (`'dark'`, `'light'`, or `'system'`).\n     * @returns A fully populated palette with shade keys `0`–`900`.\n     * @throws Error if `themeName` is not a registered theme.\n     */\n    public generatePalette(themeName: string, baseColor: CssColor, mode: ThemeMode): Required<ThemePalette> {\n        const resolvedMode = this.resolveMode(mode);\n        const strategy = this.getStrategy(themeName);\n\n        return strategy.generatePalette(baseColor, resolvedMode);\n    }\n\n    /**\n     * Generates a semantic color scheme (surface, foreground, highlight, …) for the given theme.\n     *\n     * @remarks\n     * 1. If `mode` is `'system'`, it is resolved to `'dark'` or `'light'` via the\n     *    platform adapter's `prefers-color-scheme` media query.\n     * 2. The base color is forwarded as-is to the theme-specific strategy which\n     *    maps it to semantic roles such as `surface`, `foreground`, `highlight`,\n     *    `contrast`, `disabled`, etc.\n     *\n     * No automatic color adaptation is performed. Callers who need mode-compatible\n     * colors can use {@link IThemeGeneratorStrategy.isColorInModeSpectrum} and\n     * {@link IThemeGeneratorStrategy.adaptColorToMode} explicitly before calling\n     * this method.\n     *\n     * @public\n     * @param themeName - The name of the theme (`'joy'`, `'memphis'`, `'cosmopolitan'`).\n     * @param baseColor - The base background color (any valid CSS color value).\n     * @param mode - The target mode (`'dark'`, `'light'`, or `'system'`).\n     * @returns A fully populated scheme with all semantic color roles.\n     * @throws Error if `themeName` is not a registered theme.\n     */\n    public generateScheme(themeName: string, baseColor: CssColor, mode: ThemeMode): Required<ThemeScheme> {\n        const resolvedMode = this.resolveMode(mode);\n        const strategy = this.getStrategy(themeName);\n\n        return strategy.generateScheme(baseColor, resolvedMode);\n    }\n\n    /**\n     * Resolves the theme mode, converting 'system' to 'dark' or 'light' based on platform settings.\n     *\n     * @private\n     * @param mode The theme mode to resolve.\n     * @returns The resolved theme mode.\n     */\n    private resolveMode(mode: ThemeModeWithSystem): ThemeMode {\n        if (mode === 'system') {\n            const isDark = this._platformAdapter.matchMedia('(prefers-color-scheme: dark)');\n            return isDark ? 'dark' : 'light';\n        }\n\n        return mode;\n    }\n\n    /**\n     * Gets the theme generator strategy for the specified theme name.\n     *\n     * @private\n     * @param themeName The name of the theme ('joy', 'memphis', 'cosmopolitan').\n     * @returns The theme generator strategy.\n     */\n    private getStrategy(themeName: string): IThemeGeneratorStrategy {\n        const strategy = this._strategies.get(themeName);\n\n        if (!strategy) {\n            throw new Error(`Theme '${themeName}' is not supported.`);\n        }\n\n        return strategy;\n    }\n\n    // #endregion\n\n}\n\n/**\n * Global service locator for the singleton {@link ThemeGenerator} instance.\n *\n * @remarks\n * A default instance is created automatically at module load time.\n * Call {@link ThemeGeneratorServiceLocator.set | set} to replace it (e.g. in tests\n * or SSR environments where a custom {@link IPlatformAdapter} is needed).\n *\n * @public\n */\nexport class ThemeGeneratorServiceLocator {\n\n    // #region Fields\n\n    private static _current: ThemeGenerator | null = null;\n\n    // #endregion\n\n    // #region Properties\n\n    public static get current(): ThemeGenerator {\n        if (!ThemeGeneratorServiceLocator.isSet()) {\n            throw new Error('\\'ThemeGenerator\\' not set.');\n        }\n\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        return ThemeGeneratorServiceLocator._current!;\n    }\n\n    // #endregion\n\n    // #region Methods\n\n    public static isSet(): boolean {\n        return ThemeGeneratorServiceLocator._current !== null;\n    }\n\n    public static set(current: ThemeGenerator): void {\n        ThemeGeneratorServiceLocator._current = current;\n    }\n\n    // #endregion\n\n}\n\nThemeGeneratorServiceLocator.set(new ThemeGenerator());\n","// #region Imports\n\nimport { type IEventEmitter, PureEventEmitter } from '@breadstone/mosaik-elements';\nimport type { IPlatformAdapter } from './Adapters/interfaces/IPlatformAdapter';\nimport { PlatformAdapterFactory } from './Adapters/PlatformAdapterFactory';\nimport type { ThemeMode, ThemeModeWithSystem } from './Utils/ThemeMode';\n\n// #endregion\n\n/**\n * Checks if the given value is a theme mode.\n *\n * @public\n */\nexport function isThemeMode(value: unknown): value is ThemeMode {\n    return value === 'dark' || value === 'light';\n}\n\n/**\n * Reactive observer that applies and tracks the active theme on the document.\n *\n * @remarks\n * Manages the `theme` and `theme-mode` document attributes and emits events\n * when either changes. The `'system'` mode is resolved via the\n * {@link IPlatformAdapter}.\n *\n * @public\n */\nexport class ThemeObserver {\n\n    // #region Fields\n\n    private readonly _themeChanged: PureEventEmitter<string>;\n    private readonly _themeModeChanged: PureEventEmitter<ThemeMode>;\n    private readonly _platformAdapter: IPlatformAdapter;\n    private _currentTheme: string | null;\n    private _currentThemeMode: ThemeMode | null;\n    private _unsubscribe?: () => void;\n\n    // #region Ctor\n\n    /**\n     * Constructs a new instance of the `ThemeObserver` class.\n     *\n     * @param platformAdapter - Optional platform adapter. Auto-detects if not provided.\n     * @public\n     */\n    public constructor(platformAdapter?: IPlatformAdapter) {\n        this._themeChanged = new PureEventEmitter<string>();\n        this._themeModeChanged = new PureEventEmitter<ThemeMode>();\n        this._platformAdapter = platformAdapter ?? PlatformAdapterFactory.create();\n        this._currentTheme = null;\n        this._currentThemeMode = null;\n\n        this.observe({\n            themeChange: (theme) => this._themeChanged.emit(theme),\n            themeModeChange: (themeMode) => this._themeModeChanged.emit(themeMode)\n        });\n    }\n\n    // #endregion\n\n    // #region Properties\n\n    /**\n     * Fires when the theme changes.\n     *\n     * @public\n     * @readonly\n     */\n    public get themeChanged(): IEventEmitter<string> {\n        return this._themeChanged;\n    }\n\n    /**\n     * Fires when the theme mode changes.\n     *\n     * @public\n     * @readonly\n     */\n    public get themeModeChanged(): IEventEmitter<ThemeMode> {\n        return this._themeModeChanged;\n    }\n\n    // #endregion\n\n    // #region Methods\n\n    /**\n     * Applies the given theme and theme mode to the document.\n     *\n     * @public\n     * @param theme - The theme to apply (joy, cosmopolitan or memphis).\n     * @param themeMode - The theme mode to apply.\n     */\n    public applyTheme(theme: string, themeMode: ThemeModeWithSystem): void {\n        this._platformAdapter.setDocumentAttribute('theme', theme);\n\n        switch (themeMode) {\n            case 'dark':\n            case 'light':\n                this._platformAdapter.setDocumentAttribute('theme-mode', themeMode);\n                break;\n            case 'system':\n            default: {\n                const isDark = this._platformAdapter.matchMedia('(prefers-color-scheme: dark)');\n                this._platformAdapter.setDocumentAttribute('theme-mode', isDark ? 'dark' : 'light');\n                break;\n            }\n        }\n    }\n\n    /**\n     * Stops observing document attribute changes and releases the underlying listener.\n     *\n     * @remarks\n     * Safe to call multiple times — subsequent calls are no-ops.\n     *\n     * @public\n     */\n    public dispose(): void {\n        if (this._unsubscribe) {\n            this._unsubscribe();\n            this._unsubscribe = undefined;\n        }\n    }\n\n    private observe(cb: {\n        themeChange: (theme: string) => void;\n        themeModeChange: (themeMode: ThemeMode) => void;\n    }): void {\n        this._currentTheme = this._platformAdapter.getDocumentAttribute('theme');\n        this._currentThemeMode = this._platformAdapter.getDocumentAttribute('theme-mode') as ThemeMode | null;\n\n        this._unsubscribe = this._platformAdapter.observeDocumentAttributes(\n            ['theme', 'theme-mode'],\n            (attributeName, newValue) => {\n                if (attributeName === 'theme' && newValue) {\n                    const theme = newValue;\n\n                    if (this._currentTheme !== theme) {\n                        this._currentTheme = theme;\n                        cb.themeChange(theme);\n                    }\n                }\n\n                if (attributeName === 'theme-mode') {\n                    if (newValue === null) {\n                        this._currentThemeMode = null;\n                        return;\n                    }\n\n                    if (!isThemeMode(newValue)) {\n                        throw new Error(`Invalid theme mode: ${newValue}`);\n                    }\n\n                    if (this._currentThemeMode !== newValue) {\n                        this._currentThemeMode = newValue;\n                        cb.themeModeChange(newValue);\n                    }\n                }\n            }\n        );\n    }\n\n    // #endregion\n\n}\n\n/**\n * Global service locator for the singleton {@link ThemeObserver} instance.\n *\n * @remarks\n * A default instance is created automatically at module load time.\n * Call {@link ThemeObserverServiceLocator.set | set} to replace it (e.g. in tests\n * or SSR environments where a custom {@link IPlatformAdapter} is needed).\n *\n * @public\n */\nexport class ThemeObserverServiceLocator {\n\n    // #region Fields\n\n    private static _current: ThemeObserver | null = null;\n\n    // #endregion\n\n    // #region Properties\n\n    public static get current(): ThemeObserver {\n        if (!ThemeObserverServiceLocator.isSet()) {\n            throw new Error('\\'ThemeObserver\\' not set.');\n        }\n\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        return ThemeObserverServiceLocator._current!;\n    }\n\n    // #endregion\n\n    // #region Methods\n\n    public static isSet(): boolean {\n        return ThemeObserverServiceLocator._current !== null;\n    }\n\n    public static set(current: ThemeObserver): void {\n        ThemeObserverServiceLocator._current = current;\n    }\n\n    // #endregion\n\n}\n\nThemeObserverServiceLocator.set(new ThemeObserver());\n","/**\n * @public\n */\nexport type CssAspectRatio = 'auto' | `${number}` | `${number}/${number}`;\n\n/**\n * @public\n */\nexport namespace CssAspectRatio {\n\n    /**\n     * @public\n     */\n    export function isCssAspectRatio(value: unknown): value is CssAspectRatio {\n        if (typeof value === 'string') {\n            if (value.trim() === '') {\n                return false;\n            }\n\n            if (value === 'auto') {\n                return true;\n            }\n\n            const ratioParts = value.split('/');\n            if (ratioParts.length === 1) {\n                // Check if it's a single number\n                return !isNaN(Number(ratioParts[0])) && Number(ratioParts[0]) >= 0;\n            }\n            if (ratioParts.length === 2) {\n                // Check if both parts are numbers\n                return !isNaN(Number(ratioParts[0])) && Number(ratioParts[0]) >= 0 && !isNaN(Number(ratioParts[1])) && Number(ratioParts[1]) >= 0;\n            }\n        }\n\n        return false;\n    }\n\n}\n","/**\n * @public\n */\nexport type CssRGBColor = `rgb(${number}, ${number}, ${number})`;\n\n/**\n * @public\n */\nexport type CssRGBAColor = `rgba(${number}, ${number}, ${number}, ${number})`;\n\n/**\n * @public\n */\nexport type CssHEXColor = `#${string}`;\n\n/**\n * @public\n */\nexport type CssNameColor = 'aliceblue' | 'antiquewhite' | 'aqua' | 'aquamarine' | 'azure' | 'beige' | 'bisque' | 'black' | 'blanchedalmond' | 'blue' | 'blueviolet' | 'brown' | 'burlywood' | 'cadetblue' | 'chartreuse' | 'chocolate' | 'coral' | 'cornflowerblue' | 'cornsilk' | 'crimson' | 'cyan' | 'darkblue' | 'darkcyan' | 'darkgoldenrod' | 'darkgray' | 'darkgreen' | 'darkgrey' | 'darkkhaki' | 'darkmagenta' | 'darkolivegreen' | 'darkorange' | 'darkorchid' | 'darkred' | 'darksalmon' | 'darkseagreen' | 'darkslateblue' | 'darkslategray' | 'darkslategrey' | 'darkturquoise' | 'darkviolet' | 'deeppink' | 'deepskyblue' | 'dimgray' | 'dimgrey' | 'dodgerblue' | 'firebrick' | 'floralwhite' | 'forestgreen' | 'fuchsia' | 'gainsboro' | 'ghostwhite' | 'gold' | 'goldenrod' | 'gray' | 'green' | 'greenyellow' | 'grey' | 'honeydew' | 'hotpink' | 'indianred' | 'indigo' | 'ivory' | 'khaki' | 'lavender' | 'lavenderblush' | 'lawngreen' | 'lemonchiffon' | 'lightblue' | 'lightcoral' | 'lightcyan' | 'lightgoldenrodyellow' | 'lightgray' | 'lightgreen' | 'lightgrey' | 'lightpink' | 'lightsalmon' | 'lightseagreen' | 'lightskyblue' | 'lightslategray' | 'lightslategrey' | 'lightsteelblue' | 'lightyellow' | 'lime' | 'limegreen' | 'linen' | 'magenta' | 'maroon' | 'mediumaquamarine' | 'mediumblue' | 'mediumorchid' | 'mediumpurple' | 'mediumseagreen' | 'mediumslateblue' | 'mediumspringgreen' | 'mediumturquoise' | 'mediumvioletred' | 'midnightblue' | 'mintcream' | 'mistyrose' | 'moccasin' | 'navajowhite' | 'navy' | 'oldlace' | 'olive' | 'olivedrab' | 'orange' | 'orangered' | 'orchid' | 'palegoldenrod' | 'palegreen' | 'paleturquoise' | 'palevioletred' | 'papayawhip' | 'peachpuff' | 'peru' | 'pink' | 'plum' | 'powderblue' | 'purple' | 'rebeccapurple' | 'red' | 'rosybrown' | 'royalblue' | 'saddlebrown' | 'salmon' | 'sandybrown' | 'seagreen' | 'seashell' | 'sienna' | 'silver' | 'skyblue' | 'slateblue' | 'slategray' | 'slategrey' | 'snow' | 'springgreen' | 'steelblue' | 'tan' | 'teal' | 'thistle' | 'tomato' | 'transparent' | 'turquoise' | 'violet' | 'wheat' | 'white' | 'whitesmoke' | 'yellow' | 'yellowgreen';\n\n/**\n * @public\n */\nexport type CssColor = CssRGBColor | CssRGBAColor | CssHEXColor;\n\n/**\n * @public\n */\nexport namespace CssColor {\n\n    /**\n     * @public\n     */\n    export function isCssColor(value: unknown): value is CssColor {\n        if (typeof value !== 'string') {\n            return false;\n        }\n\n        if (value.trim() === '') {\n            return false;\n        }\n\n        const rgbRegex = /^rgb\\(\\d{1,3},\\s*\\d{1,3},\\s*\\d{1,3}\\)$/;\n        const rgbaRegex = /^rgba\\(\\d{1,3},\\s*\\d{1,3},\\s*\\d{1,3},\\s*(0(\\.\\d+)?|1(\\.0+)?)\\)$/;\n        const hexRegex = /^#[0-9a-fA-F]{3,6}$/;\n\n        return rgbRegex.test(value) || rgbaRegex.test(value) || hexRegex.test(value);\n    }\n\n}\n","/**\n * @public\n */\nexport type CssLengthUnit = 'em' | 'ex' | 'ch' | 'rem' | 'vh' | 'vw' | 'vmin' | 'vmax' | 'svw' | 'svh' | 'dvw' | 'dvh' | 'lvw' | 'lvh' | 'px' | 'mm' | 'cm' | 'in' | 'pt' | 'pc' | 'mozmm';\n\n/**\n * @public\n */\nexport type CssNumber = `${number}${CssLengthUnit}` | number;\n\n/**\n * @public\n */\nexport type CssLength = `${number}${CssLengthUnit | '%'}` | CssNumber | 'auto';\n\nexport namespace CssLength {\n\n    /**\n     * Determines whether the given value is a valid CSS length.\n     *\n     * @public\n     * @param value - The value to check.\n     * @returns `true` if the value is a valid CSS length; otherwise, `false`.\n     */\n    export function isCssLength(value: unknown): value is CssLength {\n        if (typeof value === 'number' || value === 'auto') {\n            return true;\n        }\n\n        if (typeof value !== 'string') {\n            return false;\n        }\n\n        if (value.trim() === '') {\n            return false;\n        }\n\n        const lengthRegex = /^-?\\d+(\\.\\d+)?(em|ex|ch|rem|vh|vw|vmin|vmax|svw|svh|dvw|dvh|lvw|lvh|px|mm|cm|in|pt|pc|mozmm|%)/;\n\n        return lengthRegex.test(value);\n    }\n\n    /**\n     * Determines whether the given value is 'auto'.\n     *\n     * @public\n     * @param value - The value to check.\n     * @returns `true` if the value is 'auto'; otherwise, `false`.\n     */\n    export function isAuto(value: unknown): value is Extract<CssLength, 'auto'> {\n        return value === 'auto';\n    }\n\n    /**\n     * Determines whether the given value is a percentage CSS length.\n     *\n     * @public\n     * @param value - The value to check.\n     * @returns `true` if the value is a percentage; otherwise, `false`.\n     */\n    export function isPercentage(value: unknown): value is `${number}%` {\n        if (typeof value !== 'string') {\n            return false;\n        }\n\n        if (value.trim() === '') {\n            return false;\n        }\n\n        const percentageRegex = /^-?\\d+(\\.\\d+)?%/;\n\n        return percentageRegex.test(value);\n    }\n\n    /**\n     * Determines whether the given value is a valid CSS length with units (excluding percentages).\n     *\n     * @public\n     * @param value - The value to check.\n     * @returns `true` if the value is a valid CSS length with units; otherwise, `false`.\n     */\n    export function isLength(value: unknown): value is `${number}${CssLengthUnit}` {\n        if (typeof value !== 'string') {\n            return false;\n        }\n\n        if (value.trim() === '') {\n            return false;\n        }\n\n        const lengthRegex = /^-?\\d+(\\.\\d+)?(em|ex|ch|rem|vh|vw|vmin|vmax|svw|svh|dvw|dvh|lvw|lvh|px|mm|cm|in|pt|pc|mozmm)/;\n\n        return lengthRegex.test(value);\n    }\n\n    /**\n     * Converts a `CssLength` to a number.\n     * Only works for numeric values without units.\n     *\n     * @public\n     * @param value - The `CssLength` value to convert.\n     * @returns The numeric value.\n     * @throws Error if the value is not a number.\n     */\n    export function toNumber(value: CssLength): number {\n        if (typeof value === 'number') {\n            return value;\n        }\n\n        if (value === 'auto') {\n            throw new Error('Cannot convert \"auto\" to a number.');\n        }\n\n        const match = (/^-?\\d*\\.?\\d+/).exec(value);\n        if (!match) {\n            throw new Error(`Invalid CSS length: ${value}`);\n        }\n\n        return parseFloat(match[0]);\n    }\n\n    /**\n     * Converts a `CssLength` to a string representation.\n     * Numbers are treated as pixels.\n     *\n     * @public\n     * @param value - The `CssLength` value to convert.\n     * @param defaultUnit - The default unit to use if the value is a number.\n     * @returns The string representation of the `CssLength`.\n     */\n    export function toString(value?: CssLength, defaultUnit: CssLengthUnit = 'px'): string {\n        if (value === undefined || value === null) {\n            return '';\n        }\n\n        if (typeof value === 'number') {\n            return `${value}${defaultUnit}`;\n        }\n\n        return value;\n    }\n\n    /**\n     * Extracts the unit from a CSS length string.\n     *\n     * @public\n     * @param cssLength - The CSS length string to extract the unit from.\n     * @returns The unit as a `CssLengthUnit`.\n     * @throws Error if the input is not a valid CSS length.\n     */\n    export function extractUnit(cssLength: `${number}${CssLengthUnit | '%'}`): CssLengthUnit {\n        const match = (/[a-z%]+$/i).exec(cssLength);\n        const lengt = match ? (match[0] as CssLengthUnit) : null;\n\n        if (lengt === null) {\n            throw new Error(`Invalid value: ${cssLength}`);\n        }\n\n        return lengt;\n    }\n\n    /**\n     * Extracts the numeric value from a CSS length string.\n     *\n     * @public\n     * @param cssLength - The CSS length string to extract the value from.\n     * @returns The numeric value as a number.\n     * @throws Error if the input is not a valid CSS length.\n     */\n    export function extractValue(cssLength: `${number}${CssLengthUnit | '%'}`): number {\n        const match = (/^-?\\d*\\.?\\d+/).exec(cssLength);\n        const value = match ? parseFloat(match[0]) : null;\n\n        if (value === null) {\n            throw new Error(`Invalid value: ${cssLength}`);\n        }\n\n        return value;\n    }\n\n    /**\n     * Converts pixel values to rem units.\n     *\n     * @public\n     * @param pixel - The pixel value to convert.\n     * @returns The converted value in rem units.\n     */\n    export function pxToRem(pixel: `${number}${Extract<CssLengthUnit, 'px'>}`): string {\n        const value = extractValue(pixel);\n        const baseSize = 16; // Default font size in pixels\n        const sizeInRem = `${value / baseSize}rem`;\n        return sizeInRem;\n    }\n\n    /**\n     * Tries to parse a value into a `CssLength`.\n     *\n     * @public\n     * @param value - The value to parse.\n     * @param defaultUnit - The default unit to use if the value is a string without a unit.\n     * @returns The parsed `CssLength` or `undefined` if parsing fails.\n     */\n    export function tryParse(value: unknown, defaultUnit: CssLengthUnit = 'px'): CssLength | undefined {\n        if (value === undefined || value === null) {\n            return undefined;\n        }\n\n        if (typeof value === 'string') {\n            if (isLength(value)) {\n                return value;\n            }\n\n            if (value.trim() === '') {\n                return undefined;\n            }\n\n            const num = parseFloat(value);\n\n            return isNaN(num) ? undefined : `${num}${defaultUnit}` as CssLength;\n        }\n\n        if (typeof value === 'number') {\n            return `${String(value)}${defaultUnit}` as CssLength;\n        }\n\n        return undefined;\n    }\n\n}\n","// #region Imports\n\nimport type { CssColor } from './CssColor';\nimport type { CssLengthUnit } from './CssLength';\n\n// #endregion\n\n/**\n * Represents a valid CSS box-shadow value (single or multiple).\n *\n * @public\n */\nexport type CssShadowSingle =\n    | 'none'\n    | `${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${CssColor}`\n    | `inset ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${CssColor}`\n    | `${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${CssColor}`\n    | `inset ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${CssColor}`\n    | `${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${CssColor}`\n    | `inset ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${`${number}${Extract<CssLengthUnit, 'px'>}`} ${CssColor}`;\n\n/**\n * Represents a valid CSS box-shadow value, including multiple shadows.\n *\n * @public\n */\nexport type CssShadow = CssShadowSingle | `${CssShadowSingle}, ${CssShadowSingle}` | `${CssShadowSingle}, ${CssShadowSingle}, ${CssShadowSingle}`;\n\n/**\n * @public\n */\nexport namespace CssShadow {\n\n    /**\n     * Checks if the given value is a valid CSS box-shadow (single or multiple).\n     *\n     * @param value - The value to check.\n     * @returns `true` if the value is a valid CSS box-shadow, otherwise `false`.\n     */\n    export function isCssShadow(value: unknown): value is CssShadow {\n        if (typeof value !== 'string') {\n            return false;\n        }\n\n        if (value.trim() === '') {\n            return false;\n        }\n\n        if (value === 'none') {\n            return true;\n        }\n\n        // Split multiple shadows by comma\n        const shadows = value.split(/\\s*,\\s*/);\n\n        return shadows.every(isCssShadowSingle);\n    }\n\n    /**\n     * Checks if a single value is a valid CSS box-shadow (without multiple shadows).\n     *\n     * @param value - The value to check.\n     * @returns `true` if the value is a valid single CSS box-shadow, otherwise `false`.\n     */\n    function isCssShadowSingle(value: string): boolean {\n        const shadowRegex = new RegExp(\n            '^' +\n            '(inset\\\\s+)?' +                                  // Optional \"inset\"\n            '(-?\\\\d+(\\\\.\\\\d+)?(px|em|rem|vh|vw|%)?)\\\\s+' +    // X-offset\n            '(-?\\\\d+(\\\\.\\\\d+)?(px|em|rem|vh|vw|%)?)\\\\s+' +    // Y-offset\n            '(-?\\\\d+(\\\\.\\\\d+)?(px|em|rem|vh|vw|%)?)?\\\\s*' +   // Optional Blur-radius\n            '(-?\\\\d+(\\\\.\\\\d+)?(px|em|rem|vh|vw|%)?)?\\\\s*' +   // Optional Spread-radius\n            '(rgba?\\\\(\\\\d{1,3},\\\\s*\\\\d{1,3},\\\\s*\\\\d{1,3}(,\\\\s*(0|1|0?\\\\.\\\\d+))?\\\\)|#[0-9a-fA-F]{3,6})$', // Color (RGB, RGBA, HEX)\n            'i'\n        );\n\n        return shadowRegex.test(value);\n    }\n}\n","/**\n * @public\n */\nexport type CssTimeUnit = 's' | 'ms';\n\n/**\n * @public\n */\nexport type CssTime = `${string}${CssTimeUnit}` | number | 0;\n\n/**\n * @public\n */\nexport namespace CssTime {\n\n    /**\n     * @public\n     */\n    export function isCssTime(value: unknown): value is CssTime {\n        if (typeof value === 'number' || value === 0) {\n            return true;\n        }\n\n        if (typeof value !== 'string') {\n            return false;\n        }\n\n        if (value.trim() === '') {\n            return false;\n        }\n\n        const timeRegex = /^-?\\d+(\\.\\d+)?(s|ms)/;\n\n        return timeRegex.test(value);\n    }\n\n}\n","// #region Imports\n\nimport type { CssColor } from './CssColor';\n\n// #endregion\n\n/**\n * Represents the shade names available in a theme palette.\n *\n * @public\n */\nexport type ThemeShadeName = '0' | '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';\n\n/**\n * Represents a dynamic theme palette.\n *\n * @public\n */\nexport type ThemePalette = Partial<Record<ThemeShadeName, CssColor>>;\n\n/**\n * @public\n */\nexport namespace ThemePalette {\n\n    const THEME_SHADE_NAMES: ReadonlyArray<ThemeShadeName> = ['0', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\n\n    /**\n     * Checks if the value is a theme shade name.\n     *\n     * @private\n     * @param value - The value to check.\n     * @returns The result.\n     */\n    function isThemeShadeName(value: string): value is ThemeShadeName {\n        return THEME_SHADE_NAMES.includes(value as ThemeShadeName);\n    }\n\n    /**\n     * Checks if the value is a theme palette.\n     *\n     * @public\n     * @param value - The value to check.\n     * @returns The result.\n     */\n    export function isThemePalette(value: unknown): value is ThemePalette {\n        if (typeof value !== 'object' || value === null) {\n            return false;\n        }\n\n        return Object.keys(value).every((key) => isThemeShadeName(key) && typeof (value as Record<string, unknown>)[key] === 'string');\n    }\n\n}\n","// #region Imports\n\nimport type { CssColor } from './CssColor';\nimport type { CssShadow } from './CssShadow';\nimport type { IThemeElevation } from './IThemeElevation';\nimport type { IThemeLayout } from './IThemeLayout';\nimport type { ThemeMode } from './ThemeMode';\nimport { ThemePalette, type ThemeShadeName } from './ThemePalette';\nimport type { ThemeScheme, ThemeSchemeRole } from './ThemeScheme';\nimport type { ThemeSemantic, ThemeSemanticName } from './ThemeSemantic';\nimport type { ThemeTypography } from './ThemeTypography';\n\n// #endregion\n\n/**\n * Represents a dynamic theme system.\n *\n * @public\n */\nexport interface ITheme {\n\n    /**\n     * Human-readable theme name.\n     */\n    name: string;\n\n    /**\n     * Theme color schemes.\n     *\n     * ThemeMode → ThemeScheme\n     */\n    scheme: Readonly<Record<ThemeMode, ThemeScheme>>;\n\n    /**\n     * Theme color palettes.\n     *\n     * ThemeMode → Semantic Color → ThemePalette | CssColor\n     */\n    palette: Readonly<Record<ThemeMode, ThemeSemantic>>;\n\n    /**\n     * Base font family.\n     */\n    fontFamily: string;\n\n    /**\n     * Typography definition.\n     */\n    typography: ThemeTypography;\n\n    /**\n     * Layout definition.\n     */\n    layout: IThemeLayout;\n\n    /**\n     * Elevation definitions.\n     */\n    elevation: Readonly<Record<string, IThemeElevation>>;\n}\n\n/**\n * @public\n */\nexport namespace ITheme {\n\n    /**\n     * Gets the scheme for the specified mode.\n     *\n     * @param theme The theme to get the scheme from.\n     * @param mode The theme mode.\n     * @returns The theme scheme for the specified mode.\n     */\n    export function getScheme(\n        theme: ITheme,\n        mode: ThemeMode\n    ): ThemeScheme {\n        return theme.scheme[mode];\n    }\n\n    /**\n     * Gets the palette for the specified semantic color and mode.\n     *\n     * @param theme The theme to get the palette from.\n     * @param mode The theme mode.\n     * @param semanticColor The semantic color name.\n     * @returns The theme palette for the specified semantic color and mode.\n     */\n    export function getPalette(\n        theme: ITheme,\n        mode: ThemeMode,\n        semanticColor: ThemeSemanticName\n    ): ThemePalette {\n        const paletteEntry = theme.palette[mode][semanticColor];\n\n        if (!ThemePalette.isThemePalette(paletteEntry)) {\n            throw new Error(\n                `Palette '${semanticColor}' is not a valid theme palette for mode '${mode}'.`\n            );\n        }\n\n        return paletteEntry;\n    }\n\n    /**\n     * Gets a scheme color for the specified role and mode.\n     *\n     * @param theme The theme to get the color from.\n     * @param mode The theme mode.\n     * @param role The scheme role.\n     * @returns The CSS color for the specified role and mode.\n     */\n    export function getSchemeColor(\n        theme: ITheme,\n        mode: ThemeMode,\n        role: ThemeSchemeRole\n    ): CssColor {\n        const scheme = theme.scheme[mode];\n        const color = scheme[role];\n\n        if (typeof color !== 'string') {\n            throw new Error(`Scheme color '${role}' is not defined for mode '${mode}'.`);\n        }\n\n        return color;\n    }\n\n    /**\n     * Gets a palette color for the specified semantic color, shade, and mode.\n     *\n     * @param theme The theme to get the color from.\n     * @param mode The theme mode.\n     * @param semanticColor The semantic color name.\n     * @param shade The shade name.\n     * @returns The CSS color for the specified semantic color, shade, and mode.\n     */\n    export function getPaletteColor(\n        theme: ITheme,\n        mode: ThemeMode,\n        semanticColor: ThemeSemanticName,\n        shade: ThemeShadeName\n    ): CssColor {\n        const palette = getPalette(theme, mode, semanticColor);\n        const color = palette[shade];\n\n        if (typeof color !== 'string') {\n            throw new Error(\n                `Shade '${shade}' is not defined in palette '${semanticColor}' for mode '${mode}'.`\n            );\n        }\n\n        return color;\n    }\n\n    /**\n     * Gets an elevation shadow for the specified key and mode.\n     *\n     * @param theme The theme to get the elevation from.\n     * @param mode The theme mode.\n     * @param key The elevation key.\n     * @returns The CSS shadow for the specified elevation key and mode.\n     */\n    export function getElevationShadow(\n        theme: ITheme,\n        mode: ThemeMode,\n        key: string\n    ): CssShadow {\n        return theme.elevation[mode][key];\n    }\n\n}\n","/**\n * Theme mode.\n *\n * @public\n */\nexport type ThemeMode = 'dark' | 'light';\n\n/**\n * Available theme modes.\n *\n * @public\n */\nexport const THEME_MODES: ReadonlyArray<ThemeMode> = ['dark', 'light'] as const;\n\n/**\n * Theme mode with system option.\n *\n * @public\n */\nexport type ThemeModeWithSystem = ThemeMode | 'system';\n\n/**\n * Available theme modes including system option.\n *\n * @public\n */\nexport const THEME_MODES_WITH_SYSTEM: ReadonlyArray<ThemeModeWithSystem> = ['dark', 'light', 'system'] as const;\n","// #region Imports\n\nimport type { CssColor } from './CssColor';\n\n// #endregion\n\n/**\n * Represents the roles available in a theme scheme.\n *\n * @public\n */\nexport type ThemeSchemeRole = | 'surface' | 'background' | 'foreground' | 'highlight' | 'middlelight' | 'lowlight' | 'transparent' | 'semiTransparent' | 'disabled' | 'contrast' | 'selection';\n\n/**\n * Represents a semantic color scheme.\n *\n * ThemeSchemeRole → CssColor\n *\n * @public\n */\nexport type ThemeScheme = Readonly<Partial<Record<ThemeSchemeRole, CssColor>>>;\n\n/**\n * @public\n */\nexport namespace ThemeScheme {\n\n    const ROLES: ReadonlyArray<ThemeSchemeRole> = ['surface', 'background', 'foreground', 'highlight', 'middlelight', 'lowlight', 'transparent', 'semiTransparent', 'disabled', 'contrast', 'selection'];\n\n    function isRole(value: string): value is ThemeSchemeRole {\n        return ROLES.includes(value as ThemeSchemeRole);\n    }\n\n    /**\n     * Checks whether a value is a ThemeScheme.\n     */\n    export function isThemeScheme(value: unknown): value is ThemeScheme {\n        if (typeof value !== 'object' || value === null) {\n            return false;\n        }\n\n        return Object.entries(value).every(\n            ([key, color]) => isRole(key) && typeof color === 'string'\n        );\n    }\n}\n"]}