{"version":3,"file":"theme-to-vars.mjs","names":[],"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      disabledBody: 'var(--mantine-color-disabled)',\n      disabledText: 'var(--mantine-color-disabled-color)',\n      disabledBorder: 'var(--mantine-color-disabled-border)',\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"],"mappings":";;AAmBA,SAAS,kBAA0B,OAAY,UAAkB,MAAsB;CACrF,OAAO,OAAO,KAAK,MAAM,SAAS,EAAE,QAAQ,KAAU,SAAS;EAC7D,IAAI,QAAQ,iBAAiB,KAAK,GAAG,KAAK;EAC1C,OAAO;CACT,GAAG,CAAC,CAAC;AACP;AAEA,SAAS,mBAAmB,OAAwB,OAAqB;CACvE,OAAO,SAAS,MAAM,cAAe,MAAM,YAAoB,SAAS,GAAG,KAAK;AAClF;AAEA,SAAgB,YAAY,OAA0C;CACpE,MAAM,cAAc,kBAAkB,eAAe,KAAK;CAE1D,MAAM,YAAY,kBAA6B,aAAa,aAAa,WAAW;CAEpF,MAAM,cAAc,kBAA+B,aAAa,eAAe,aAAa;CAE5F,MAAM,UAAU,kBAA2B,aAAa,WAAW,QAAQ;CAC3E,MAAM,SAAS,kBAA0B,aAAa,UAAU,QAAQ;CACxE,MAAM,UAAU,kBAA2B,aAAa,WAAW,SAAS;CAE5E,MAAM,WAAW,OAAO,KAAK,YAAY,SAAS,KAAK,EAAE,QACtD,KAA8B,YAAY;EACzC,IAAI,WAAW;GACb,UAAU,iBAAiB,QAAQ;GACnC,YAAY,iBAAiB,QAAQ;GACrC,YAAY,iBAAiB,QAAQ;EACvC;EACA,OAAO;CACT,GACA,CAAC,CACH;CAEA,MAAM,SAAS,OAAO,KAAK,YAAY,MAAM,EAAE,QAC5C,KAAU,UAAU;EACnB,IAAI,SAAS;GACX,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,GAAG,uBAAuB,MAAM;GAChC,QAAQ,uBAAuB,MAAM;GACrC,aAAa,uBAAuB,MAAM;GAC1C,OAAO,uBAAuB,MAAM;GACpC,YAAY,uBAAuB,MAAM;GACzC,YAAY,uBAAuB,MAAM;GACzC,SAAS,uBAAuB,MAAM;GACtC,cAAc,uBAAuB,MAAM;EAC7C;EAEA,OAAO;CACT,GACA;EACE,SAAS;EACT,eAAe;GACb,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,QAAQ;GACR,aAAa;GACb,OAAO;GACP,YAAY;GACZ,YAAY;GACZ,SAAS;GACT,cAAc;EAChB;EACA,OAAO;EACP,OAAO;EACP,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,QAAQ;EACR,SAAS;EACT,cAAc;EACd,cAAc;EACd,eAAe;EACf,QAAQ;EACR,cAAc;EACd,cAAc;EACd,gBAAgB;CAClB,CACF;CAEA,OAAO;EACL,OAAO;EACP,YAAY;EACZ,qBAAqB;EACrB,kBAAkB;EAClB,YAAY;EACZ,YAAY;EACZ,qBAAqB;EACrB,oBAAoB;EACpB,mBAAmB;EACnB,eAAe;EACf,aAAa,YAAY;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,aAAa;EACb,cAAc;EACd,eAAe;EAEf,cAAc,eAAe,eAAe,mBAAmB,YAAY,WAAW,EAAE;EACxF,aAAa,eAAe,eAAe,mBAAmB,YAAY,WAAW,EAAE;CACzF;AACF"}