"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const clsx = require("clsx");
const getGlobalClassNames = require("./get-global-class-names/get-global-class-names.cjs");
const getOptionsClassNames = require("./get-options-class-names/get-options-class-names.cjs");
const getResolvedClassNames = require("./get-resolved-class-names/get-resolved-class-names.cjs");
const getRootClassName = require("./get-root-class-name/get-root-class-name.cjs");
const getSelectorClassName = require("./get-selector-class-name/get-selector-class-name.cjs");
const getStaticClassNames = require("./get-static-class-names/get-static-class-names.cjs");
const getThemeClassNames = require("./get-theme-class-names/get-theme-class-names.cjs");
const getVariantClassName = require("./get-variant-class-name/get-variant-class-name.cjs");
function getClassName({
  theme,
  options,
  themeName,
  selector,
  classNamesPrefix,
  classNames,
  classes,
  unstyled,
  className,
  rootSelector,
  props,
  stylesCtx,
  withStaticClasses,
  headless,
  transformedStyles
}) {
  return clsx(
    getGlobalClassNames.getGlobalClassNames({ theme, options, unstyled: unstyled || headless }),
    getThemeClassNames.getThemeClassNames({ theme, themeName, selector, props, stylesCtx }),
    getVariantClassName.getVariantClassName({ options, classes, selector, unstyled }),
    getResolvedClassNames.getResolvedClassNames({ selector, stylesCtx, theme, classNames, props }),
    getResolvedClassNames.getResolvedClassNames({ selector, stylesCtx, theme, classNames: transformedStyles, props }),
    getOptionsClassNames.getOptionsClassNames({ selector, stylesCtx, options, props, theme }),
    getRootClassName.getRootClassName({ rootSelector, selector, className }),
    getSelectorClassName.getSelectorClassName({ selector, classes, unstyled: unstyled || headless }),
    withStaticClasses && !headless && getStaticClassNames.getStaticClassNames({
      themeName,
      classNamesPrefix,
      selector,
      withStaticClass: options == null ? void 0 : options.withStaticClass
    }),
    options == null ? void 0 : options.className
  );
}
exports.getClassName = getClassName;
