{"version":3,"file":"theme-to-vars.mjs","sources":["../src/theme-to-vars.ts"],"sourcesContent":["import {\n  DEFAULT_THEME,\n  em,\n  MantineTheme,\n  MantineThemeOverride,\n  mergeMantineTheme,\n} from '@mantine/core';\nimport {\n  Colors,\n  FontSizes,\n  Heading,\n  Headings,\n  LineHeights,\n  MantineVars,\n  Radius,\n  Shadows,\n  Spacing,\n} from './types';\n\nfunction getSizesVariables<Result>(theme: any, themeKey: string, name: string): Result {\n  return Object.keys(theme[themeKey]).reduce((acc: any, size) => {\n    acc[size] = `var(--mantine-${name}-${size})`;\n    return acc;\n  }, {});\n}\n\nfunction getBreakpointValue(value: string | number, theme: MantineTheme) {\n  return value in theme.breakpoints ? (theme.breakpoints as any)[value] : em(value);\n}\n\nexport function themeToVars(theme: MantineThemeOverride): MantineVars {\n  const mergedTheme = mergeMantineTheme(DEFAULT_THEME, theme);\n\n  const fontSizes = getSizesVariables<FontSizes>(mergedTheme, 'fontSizes', 'font-size');\n\n  const lineHeights = getSizesVariables<LineHeights>(mergedTheme, 'lineHeights', 'line-height');\n\n  const shadows = getSizesVariables<Shadows>(mergedTheme, 'shadows', 'shadow');\n  const radius = getSizesVariables<Radius>(mergedTheme, 'radius', 'radius');\n  const spacing = getSizesVariables<Spacing>(mergedTheme, 'spacing', 'spacing');\n\n  const headings = Object.keys(mergedTheme.headings.sizes).reduce(\n    (acc: Record<string, Heading>, heading) => {\n      acc[heading] = {\n        fontSize: `var(--mantine-${heading}-font-size)`,\n        lineHeight: `var(--mantine-${heading}-line-height)`,\n        fontWeight: `var(--mantine-${heading}-font-weight)`,\n      };\n      return acc;\n    },\n    {}\n  ) as Headings;\n\n  const colors = Object.keys(mergedTheme.colors).reduce(\n    (acc: any, color) => {\n      acc[color] = {\n        0: `var(--mantine-color-${color}-0)`,\n        1: `var(--mantine-color-${color}-1)`,\n        2: `var(--mantine-color-${color}-2)`,\n        3: `var(--mantine-color-${color}-3)`,\n        4: `var(--mantine-color-${color}-4)`,\n        5: `var(--mantine-color-${color}-5)`,\n        6: `var(--mantine-color-${color}-6)`,\n        7: `var(--mantine-color-${color}-7)`,\n        8: `var(--mantine-color-${color}-8)`,\n        9: `var(--mantine-color-${color}-9)`,\n        filled: `var(--mantine-color-${color}-filled)`,\n        filledHover: `var(--mantine-color-${color}-filled-hover)`,\n        light: `var(--mantine-color-${color}-light)`,\n        lightHover: `var(--mantine-color-${color}-light-hover)`,\n        lightColor: `var(--mantine-color-${color}-light-color)`,\n        outline: `var(--mantine-color-${color}-outline)`,\n        outlineHover: `var(--mantine-color-${color}-outline-hover)`,\n      };\n\n      return acc;\n    },\n    {\n      primary: 'var(--mantine-primary-color-filled)',\n      primaryColors: {\n        0: 'var(--mantine-primary-color-0)',\n        1: 'var(--mantine-primary-color-1)',\n        2: 'var(--mantine-primary-color-2)',\n        3: 'var(--mantine-primary-color-3)',\n        4: 'var(--mantine-primary-color-4)',\n        5: 'var(--mantine-primary-color-5)',\n        6: 'var(--mantine-primary-color-6)',\n        7: 'var(--mantine-primary-color-7)',\n        8: 'var(--mantine-primary-color-8)',\n        9: 'var(--mantine-primary-color-9)',\n        filled: 'var(--mantine-primary-color-filled)',\n        filledHover: 'var(--mantine-primary-color-filled-hover)',\n        light: 'var(--mantine-primary-color-light)',\n        lightHover: 'var(--mantine-primary-color-light-hover)',\n        lightColor: 'var(--mantine-primary-color-light-color)',\n        outline: 'var(--mantine-primary-color-outline)',\n        outlineHover: 'var(--mantine-primary-color-outline-hover)',\n      },\n      white: 'var(--mantine-color-white)',\n      black: 'var(--mantine-color-black)',\n      text: 'var(--mantine-color-text)',\n      body: 'var(--mantine-color-body)',\n      error: 'var(--mantine-color-error)',\n      placeholder: 'var(--mantine-color-placeholder)',\n      anchor: 'var(--mantine-color-anchor)',\n      default: 'var(--mantine-color-default)',\n      defaultHover: 'var(--mantine-color-default-hover)',\n      defaultColor: 'var(--mantine-color-default-color)',\n      defaultBorder: 'var(--mantine-color-default-border)',\n      dimmed: 'var(--mantine-color-dimmed)',\n    }\n  ) as Colors;\n\n  return {\n    scale: 'var(--mantine-scale)',\n    cursorType: 'var(--mantine-cursor-type)',\n    webkitFontSmoothing: 'var(--mantine-webkit-font-smoothing)',\n    mozFontSmoothing: 'var(--mantine-moz-font-smoothing)',\n    lineHeight: 'var(--mantine-line-height)',\n    fontFamily: 'var(--mantine-font-family)',\n    fontFamilyMonospace: 'var(--mantine-font-family-monospace)',\n    fontFamilyHeadings: 'var(--mantine-font-family-headings)',\n    headingFontWeight: 'var(--mantine-heading-font-weight)',\n    radiusDefault: 'var(--mantine-radius-default)',\n    breakpoints: mergedTheme.breakpoints,\n    fontSizes,\n    lineHeights,\n    shadows,\n    radius,\n    headings,\n    spacing,\n    colors,\n\n    rtlSelector: '[dir=\"rtl\"] &',\n    darkSelector: '[data-mantine-color-scheme=\"dark\"] &',\n    lightSelector: '[data-mantine-color-scheme=\"light\"] &',\n\n    smallerThan: (breakpoint) => `(max-width: ${getBreakpointValue(breakpoint, mergedTheme)})`,\n    largerThan: (breakpoint) => `(min-width: ${getBreakpointValue(breakpoint, mergedTheme)})`,\n  };\n}\n"],"names":[],"mappings":"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"}