@mantine/vanilla-extract
Version:
Vanilla Extract integration for Mantine theme
1 lines • 7.55 kB
Source Map (JSON)
{"version":3,"file":"theme-to-vars.cjs","names":["DEFAULT_THEME"],"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,UAAA,GAAA,cAAA,IAAY,KAAK;AAClF;AAEA,SAAgB,YAAY,OAA0C;CACpE,MAAM,eAAA,GAAA,cAAA,mBAAgCA,cAAAA,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"}