{"version":3,"file":"v8-css-variables-resolver.cjs","names":["getPrimaryShade","alpha","rem","getPrimaryContrastColor","isVirtualColor"],"sources":["../../../../src/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.ts"],"sourcesContent":["import { keys, rem } from '../../utils';\nimport { alpha, getPrimaryContrastColor, getPrimaryShade } from '../color-functions';\nimport { ConvertCSSVariablesInput } from '../convert-css-variables';\nimport { MantineTheme } from '../theme.types';\nimport { CSSVariablesResolver } from './default-css-variables-resolver';\nimport { isVirtualColor } from './virtual-color/virtual-color';\n\ninterface GetV8ColorVariablesInput {\n  theme: MantineTheme;\n  color: string;\n  colorScheme: 'light' | 'dark';\n  name?: string;\n  withColorValues?: boolean;\n}\n\nfunction getV8CSSColorVariables({\n  theme,\n  color,\n  colorScheme,\n  name = color,\n  withColorValues = true,\n}: GetV8ColorVariablesInput) {\n  if (!theme.colors[color]) {\n    return {};\n  }\n\n  if (colorScheme === 'light') {\n    const primaryShade = getPrimaryShade(theme, 'light');\n\n    const dynamicVariables = {\n      [`--mantine-color-${name}-text`]: `var(--mantine-color-${name}-filled)`,\n      [`--mantine-color-${name}-filled`]: `var(--mantine-color-${name}-${primaryShade})`,\n      [`--mantine-color-${name}-filled-hover`]: `var(--mantine-color-${name}-${\n        primaryShade === 9 ? 8 : primaryShade + 1\n      })`,\n      [`--mantine-color-${name}-light`]: alpha(theme.colors[color][primaryShade], 0.1),\n      [`--mantine-color-${name}-light-hover`]: alpha(theme.colors[color][primaryShade], 0.12),\n      [`--mantine-color-${name}-light-color`]: `var(--mantine-color-${name}-${primaryShade})`,\n      [`--mantine-color-${name}-outline`]: `var(--mantine-color-${name}-${primaryShade})`,\n      [`--mantine-color-${name}-outline-hover`]: alpha(theme.colors[color][primaryShade], 0.05),\n    };\n\n    if (!withColorValues) {\n      return dynamicVariables;\n    }\n\n    return {\n      [`--mantine-color-${name}-0`]: theme.colors[color][0],\n      [`--mantine-color-${name}-1`]: theme.colors[color][1],\n      [`--mantine-color-${name}-2`]: theme.colors[color][2],\n      [`--mantine-color-${name}-3`]: theme.colors[color][3],\n      [`--mantine-color-${name}-4`]: theme.colors[color][4],\n      [`--mantine-color-${name}-5`]: theme.colors[color][5],\n      [`--mantine-color-${name}-6`]: theme.colors[color][6],\n      [`--mantine-color-${name}-7`]: theme.colors[color][7],\n      [`--mantine-color-${name}-8`]: theme.colors[color][8],\n      [`--mantine-color-${name}-9`]: theme.colors[color][9],\n      ...dynamicVariables,\n    };\n  }\n\n  const primaryShade = getPrimaryShade(theme, 'dark');\n  const dynamicVariables = {\n    [`--mantine-color-${name}-text`]: `var(--mantine-color-${name}-4)`,\n    [`--mantine-color-${name}-filled`]: `var(--mantine-color-${name}-${primaryShade})`,\n    [`--mantine-color-${name}-filled-hover`]: `var(--mantine-color-${name}-${\n      primaryShade === 9 ? 8 : primaryShade + 1\n    })`,\n    [`--mantine-color-${name}-light`]: alpha(\n      theme.colors[color][Math.max(0, primaryShade - 2)],\n      0.15\n    ),\n    [`--mantine-color-${name}-light-hover`]: alpha(\n      theme.colors[color][Math.max(0, primaryShade - 2)],\n      0.2\n    ),\n    [`--mantine-color-${name}-light-color`]: `var(--mantine-color-${name}-${Math.max(primaryShade - 5, 0)})`,\n    [`--mantine-color-${name}-outline`]: `var(--mantine-color-${name}-${Math.max(primaryShade - 4, 0)})`,\n    [`--mantine-color-${name}-outline-hover`]: alpha(\n      theme.colors[color][Math.max(primaryShade - 4, 0)],\n      0.05\n    ),\n  };\n\n  if (!withColorValues) {\n    return dynamicVariables;\n  }\n\n  return {\n    [`--mantine-color-${name}-0`]: theme.colors[color][0],\n    [`--mantine-color-${name}-1`]: theme.colors[color][1],\n    [`--mantine-color-${name}-2`]: theme.colors[color][2],\n    [`--mantine-color-${name}-3`]: theme.colors[color][3],\n    [`--mantine-color-${name}-4`]: theme.colors[color][4],\n    [`--mantine-color-${name}-5`]: theme.colors[color][5],\n    [`--mantine-color-${name}-6`]: theme.colors[color][6],\n    [`--mantine-color-${name}-7`]: theme.colors[color][7],\n    [`--mantine-color-${name}-8`]: theme.colors[color][8],\n    [`--mantine-color-${name}-9`]: theme.colors[color][9],\n    ...dynamicVariables,\n  };\n}\n\nfunction assignSizeVariables(\n  variables: Record<string, string>,\n  sizes: Record<string, string>,\n  name: string\n) {\n  keys(sizes).forEach((size) =>\n    Object.assign(variables, { [`--mantine-${name}-${size}`]: sizes[size] })\n  );\n}\n\nexport const v8CssVariablesResolver: CSSVariablesResolver = (theme) => {\n  const lightPrimaryShade = getPrimaryShade(theme, 'light');\n  const defaultRadius =\n    theme.defaultRadius in theme.radius\n      ? theme.radius[theme.defaultRadius as 'xs']\n      : rem(theme.defaultRadius);\n\n  const result: ConvertCSSVariablesInput = {\n    variables: {\n      '--mantine-z-index-app': '100',\n      '--mantine-z-index-modal': '200',\n      '--mantine-z-index-popover': '300',\n      '--mantine-z-index-overlay': '400',\n      '--mantine-z-index-max': '9999',\n      '--mantine-scale': theme.scale.toString(),\n      '--mantine-cursor-type': theme.cursorType,\n      '--mantine-webkit-font-smoothing': theme.fontSmoothing ? 'antialiased' : 'unset',\n      '--mantine-moz-font-smoothing': theme.fontSmoothing ? 'grayscale' : 'unset',\n      '--mantine-color-white': theme.white,\n      '--mantine-color-black': theme.black,\n      '--mantine-line-height': theme.lineHeights.md,\n      '--mantine-font-family': theme.fontFamily,\n      '--mantine-font-family-monospace': theme.fontFamilyMonospace,\n      '--mantine-font-family-headings': theme.headings.fontFamily,\n      '--mantine-heading-font-weight': theme.headings.fontWeight,\n      '--mantine-heading-text-wrap': theme.headings.textWrap,\n      '--mantine-radius-default': defaultRadius,\n\n      '--mantine-primary-color-filled': `var(--mantine-color-${theme.primaryColor}-filled)`,\n      '--mantine-primary-color-filled-hover': `var(--mantine-color-${theme.primaryColor}-filled-hover)`,\n      '--mantine-primary-color-light': `var(--mantine-color-${theme.primaryColor}-light)`,\n      '--mantine-primary-color-light-hover': `var(--mantine-color-${theme.primaryColor}-light-hover)`,\n      '--mantine-primary-color-light-color': `var(--mantine-color-${theme.primaryColor}-light-color)`,\n    },\n    light: {\n      '--mantine-color-scheme': 'light',\n      '--mantine-primary-color-contrast': getPrimaryContrastColor(theme, 'light'),\n      '--mantine-color-bright': 'var(--mantine-color-black)',\n      '--mantine-color-text': theme.black,\n      '--mantine-color-body': theme.white,\n      '--mantine-color-error': 'var(--mantine-color-red-6)',\n      '--mantine-color-placeholder': 'var(--mantine-color-gray-5)',\n      '--mantine-color-anchor': `var(--mantine-color-${theme.primaryColor}-${lightPrimaryShade})`,\n      '--mantine-color-default': 'var(--mantine-color-white)',\n      '--mantine-color-default-hover': 'var(--mantine-color-gray-0)',\n      '--mantine-color-default-color': 'var(--mantine-color-black)',\n      '--mantine-color-default-border': 'var(--mantine-color-gray-4)',\n      '--mantine-color-dimmed': 'var(--mantine-color-gray-6)',\n      '--mantine-color-disabled': 'var(--mantine-color-gray-2)',\n      '--mantine-color-disabled-color': 'var(--mantine-color-gray-5)',\n      '--mantine-color-disabled-border': 'var(--mantine-color-gray-3)',\n    },\n    dark: {\n      '--mantine-color-scheme': 'dark',\n      '--mantine-primary-color-contrast': getPrimaryContrastColor(theme, 'dark'),\n      '--mantine-color-bright': 'var(--mantine-color-white)',\n      '--mantine-color-text': 'var(--mantine-color-dark-0)',\n      '--mantine-color-body': 'var(--mantine-color-dark-7)',\n      '--mantine-color-error': 'var(--mantine-color-red-8)',\n      '--mantine-color-placeholder': 'var(--mantine-color-dark-3)',\n      '--mantine-color-anchor': `var(--mantine-color-${theme.primaryColor}-4)`,\n      '--mantine-color-default': 'var(--mantine-color-dark-6)',\n      '--mantine-color-default-hover': 'var(--mantine-color-dark-5)',\n      '--mantine-color-default-color': 'var(--mantine-color-white)',\n      '--mantine-color-default-border': 'var(--mantine-color-dark-4)',\n      '--mantine-color-dimmed': 'var(--mantine-color-dark-2)',\n      '--mantine-color-disabled': 'var(--mantine-color-dark-6)',\n      '--mantine-color-disabled-color': 'var(--mantine-color-dark-3)',\n      '--mantine-color-disabled-border': 'var(--mantine-color-dark-4)',\n    },\n  };\n\n  assignSizeVariables(result.variables, theme.breakpoints, 'breakpoint');\n  assignSizeVariables(result.variables, theme.spacing, 'spacing');\n  assignSizeVariables(result.variables, theme.fontSizes, 'font-size');\n  assignSizeVariables(result.variables, theme.lineHeights, 'line-height');\n  assignSizeVariables(result.variables, theme.shadows, 'shadow');\n  assignSizeVariables(result.variables, theme.radius, 'radius');\n  assignSizeVariables(result.variables, theme.fontWeights, 'font-weight');\n\n  theme.colors[theme.primaryColor].forEach((_, index) => {\n    result.variables[`--mantine-primary-color-${index}`] =\n      `var(--mantine-color-${theme.primaryColor}-${index})`;\n  });\n\n  keys(theme.colors).forEach((color) => {\n    const value = theme.colors[color];\n\n    if (isVirtualColor(value)) {\n      Object.assign(\n        result.light,\n        getV8CSSColorVariables({\n          theme,\n          name: value.name,\n          color: value.light,\n          colorScheme: 'light',\n          withColorValues: true,\n        })\n      );\n\n      Object.assign(\n        result.dark,\n        getV8CSSColorVariables({\n          theme,\n          name: value.name,\n          color: value.dark,\n          colorScheme: 'dark',\n          withColorValues: true,\n        })\n      );\n\n      return;\n    }\n\n    value.forEach((shade, index) => {\n      result.variables[`--mantine-color-${color}-${index}`] = shade;\n    });\n\n    Object.assign(\n      result.light,\n      getV8CSSColorVariables({\n        theme,\n        color,\n        colorScheme: 'light',\n        withColorValues: false,\n      })\n    );\n\n    Object.assign(\n      result.dark,\n      getV8CSSColorVariables({\n        theme,\n        color,\n        colorScheme: 'dark',\n        withColorValues: false,\n      })\n    );\n  });\n\n  const headings = theme.headings.sizes;\n\n  keys(headings).forEach((heading) => {\n    result.variables[`--mantine-${heading}-font-size`] = headings[heading].fontSize;\n    result.variables[`--mantine-${heading}-line-height`] = headings[heading].lineHeight;\n    result.variables[`--mantine-${heading}-font-weight`] =\n      headings[heading].fontWeight || theme.headings.fontWeight;\n  });\n\n  return result;\n};\n"],"mappings":"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"}