@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 3.08 kB
Source Map (JSON)
{"version":3,"file":"merge-mantine-theme.cjs","sources":["../../../../src/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.ts"],"sourcesContent":["import { deepMerge } from '../../utils';\nimport type { MantineTheme, MantineThemeOverride } from '../theme.types';\n\nexport const INVALID_PRIMARY_COLOR_ERROR =\n '[@mantine/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more – https://mantine.dev/theming/colors/#primary-color';\n\nexport const INVALID_PRIMARY_SHADE_ERROR =\n '[@mantine/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }';\n\nfunction isValidPrimaryShade(shade: number) {\n if (shade < 0 || shade > 9) {\n return false;\n }\n\n return parseInt(shade.toString(), 10) === shade;\n}\n\nexport function validateMantineTheme(theme: MantineTheme): asserts theme is MantineTheme {\n if (!(theme.primaryColor in theme.colors)) {\n throw new Error(INVALID_PRIMARY_COLOR_ERROR);\n }\n\n if (typeof theme.primaryShade === 'object') {\n if (\n !isValidPrimaryShade(theme.primaryShade.dark) ||\n !isValidPrimaryShade(theme.primaryShade.light)\n ) {\n throw new Error(INVALID_PRIMARY_SHADE_ERROR);\n }\n }\n\n if (typeof theme.primaryShade === 'number' && !isValidPrimaryShade(theme.primaryShade)) {\n throw new Error(INVALID_PRIMARY_SHADE_ERROR);\n }\n}\n\nexport function mergeMantineTheme(\n currentTheme: MantineTheme,\n themeOverride?: MantineThemeOverride\n) {\n if (!themeOverride) {\n validateMantineTheme(currentTheme);\n return currentTheme;\n }\n\n const result = deepMerge(currentTheme, themeOverride);\n\n if (themeOverride.fontFamily && !themeOverride.headings?.fontFamily) {\n result.headings.fontFamily = themeOverride.fontFamily;\n }\n\n validateMantineTheme(result);\n return result;\n}\n"],"names":["deepMerge"],"mappings":";;;;;;;;AAGO,MAAM,2BAAA,GACX;AAEK,MAAM,2BAAA,GACX;AAEF,SAAS,oBAAoB,KAAA,EAAe;AAC1C,EAAA,IAAI,KAAA,GAAQ,CAAA,IAAK,KAAA,GAAQ,CAAA,EAAG;AAC1B,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,QAAA,CAAS,KAAA,CAAM,QAAA,EAAS,EAAG,EAAE,CAAA,KAAM,KAAA;AAC5C;AAEO,SAAS,qBAAqB,KAAA,EAAoD;AACvF,EAAA,IAAI,EAAE,KAAA,CAAM,YAAA,IAAgB,KAAA,CAAM,MAAA,CAAA,EAAS;AACzC,IAAA,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAAA,EAC7C;AAEA,EAAA,IAAI,OAAO,KAAA,CAAM,YAAA,KAAiB,QAAA,EAAU;AAC1C,IAAA,IACE,CAAC,mBAAA,CAAoB,KAAA,CAAM,YAAA,CAAa,IAAI,CAAA,IAC5C,CAAC,mBAAA,CAAoB,KAAA,CAAM,YAAA,CAAa,KAAK,CAAA,EAC7C;AACA,MAAA,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAAA,IAC7C;AAAA,EACF;AAEA,EAAA,IAAI,OAAO,MAAM,YAAA,KAAiB,QAAA,IAAY,CAAC,mBAAA,CAAoB,KAAA,CAAM,YAAY,CAAA,EAAG;AACtF,IAAA,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAAA,EAC7C;AACF;AAEO,SAAS,iBAAA,CACd,cACA,aAAA,EACA;AACA,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,oBAAA,CAAqB,YAAY,CAAA;AACjC,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAA,GAASA,mBAAA,CAAU,YAAA,EAAc,aAAa,CAAA;AAEpD,EAAA,IAAI,aAAA,CAAc,UAAA,IAAc,CAAC,aAAA,CAAc,UAAU,UAAA,EAAY;AACnE,IAAA,MAAA,CAAO,QAAA,CAAS,aAAa,aAAA,CAAc,UAAA;AAAA,EAC7C;AAEA,EAAA,oBAAA,CAAqB,MAAM,CAAA;AAC3B,EAAA,OAAO,MAAA;AACT;;;;;;;"}