{"mappings":";;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;AAIM,IAAI,4CAA+B;AAEnC,SAAS;IACd,4CAA+B;IAC/B,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAC3B,QAAQ,IAAI,CACV;AAKN;AAEO,SAAS,0CAAW,SAAkC,EAAE,GAAG,MAA0C;IAC1G,IAAI,UAAiC,EAAE;IACvC,KAAK,IAAI,SAAS,OAAQ;QACxB,IAAI,OAAO,UAAU,YAAY,OAAO;YACtC,IAAI,SAAS,CAAC;YACd,IAAK,IAAI,OAAO,MAAO;gBACrB,IAAI,SAAS,CAAC,IAAI,EAChB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI;gBAGrC,IAAI,6CAAgC,CAAC,SAAS,CAAC,IAAI,EACjD,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;YAE5B;YAEA,QAAQ,IAAI,CAAC;QACf,OAAO,IAAI,OAAO,UAAU,UAAU;YACpC,IAAI,SAAS,CAAC,MAAM,EAClB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;YAG/B,IAAI,6CAAgC,CAAC,SAAS,CAAC,MAAM,EACnD,QAAQ,IAAI,CAAC;QAEjB,OACE,QAAQ,IAAI,CAAC;IAEjB;IAEA,OAAO,CAAA,GAAA,qCAAI,KAAK;AAClB","sources":["packages/@adobe/react-spectrum/src/utils/classNames.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames(): void {\n  shouldKeepSpectrumClassNames = true;\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn(\n      'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n      'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n      'in your app with custom class names of your own, and disabling this flag.'\n    );\n  }\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array<string | Object | undefined>): string {\n  let classes: Array<{} | undefined> = [];\n  for (let value of values) {\n    if (typeof value === 'object' && value) {\n      let mapped = {};\n      for (let key in value) {\n        if (cssModule[key]) {\n          mapped[cssModule[key]] = value[key];\n        }\n\n        if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n          mapped[key] = value[key];\n        }\n      }\n\n      classes.push(mapped);\n    } else if (typeof value === 'string') {\n      if (cssModule[value]) {\n        classes.push(cssModule[value]);\n      }\n\n      if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n        classes.push(value);\n      }\n    } else {\n      classes.push(value);\n    }\n  }\n\n  return _clsx(...classes);\n}\n"],"names":[],"version":3,"file":"classNames.cjs.map"}