{"version":3,"file":"resolve-class-names.cjs","names":[],"sources":["../../../../../../src/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.ts"],"sourcesContent":["import cx from 'clsx';\nimport { MantineTheme } from '../../../../MantineProvider';\nimport type { _ClassNames } from '../get-class-name';\n\nexport interface ResolveClassNamesInput {\n  theme: MantineTheme;\n  classNames: _ClassNames;\n  props: Record<string, any>;\n  stylesCtx: Record<string, any> | undefined;\n}\n\nconst EMPTY_CLASS_NAMES: Partial<Record<string, string>> = {};\n\nfunction mergeClassNames(objects: Partial<Record<string, string>>[]) {\n  const merged: Partial<Record<string, string>> = {};\n\n  objects.forEach((obj) => {\n    Object.entries(obj).forEach(([key, value]) => {\n      if (merged[key]) {\n        merged[key] = cx(merged[key], value);\n      } else {\n        merged[key] = value;\n      }\n    });\n  });\n\n  return merged;\n}\n\nexport function resolveClassNames({ theme, classNames, props, stylesCtx }: ResolveClassNamesInput) {\n  const arrayClassNames = Array.isArray(classNames) ? classNames : [classNames];\n  const resolvedClassNames = arrayClassNames.map((item) =>\n    typeof item === 'function' ? item(theme, props, stylesCtx) : item || EMPTY_CLASS_NAMES\n  );\n\n  return mergeClassNames(resolvedClassNames);\n}\n"],"mappings":";;;;;AAWA,MAAM,oBAAqD,EAAE;AAE7D,SAAS,gBAAgB,SAA4C;CACnE,MAAM,SAA0C,EAAE;AAElD,SAAQ,SAAS,QAAQ;AACvB,SAAO,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,WAAW;AAC5C,OAAI,OAAO,KACT,QAAO,QAAA,GAAA,KAAA,SAAU,OAAO,MAAM,MAAM;OAEpC,QAAO,OAAO;IAEhB;GACF;AAEF,QAAO;;AAGT,SAAgB,kBAAkB,EAAE,OAAO,YAAY,OAAO,aAAqC;AAMjG,QAAO,iBALiB,MAAM,QAAQ,WAAW,GAAG,aAAa,CAAC,WAAW,EAClC,KAAK,SAC9C,OAAO,SAAS,aAAa,KAAK,OAAO,OAAO,UAAU,GAAG,QAAQ,kBACtE,CAEyC"}