{"version":3,"file":"build-class-list.cjs","sources":["../../../src/cli/utils/build-class-list.ts"],"sourcesContent":["import { applyPrefix } from \"../../helpers/apply-prefix\";\nimport { applyPrefixV3 } from \"../../helpers/apply-prefix-v3\";\nimport { convertUtilitiesToV4 } from \"../../helpers/convert-utilities-to-v4\";\nimport { stripDark } from \"../../helpers/strip-dark\";\nimport { CLASS_LIST_MAP, COMPONENT_TO_CLASS_LIST_MAP } from \"../../metadata/class-list\";\nimport { DEPENDENCY_LIST_MAP } from \"../../metadata/dependency-list\";\n\n/**\n * Builds a list of CSS classes based on the provided components and prefix.\n *\n * @param {Object} options - The options for building the class list.\n * @param {string[]} options.components - The components to include in the class list.\n * @param {boolean} options.dark - Whether to include dark mode classes.\n * @param {string} options.prefix - The prefix to apply to the class names.\n * @param {3 | 4} options.version - The version of Tailwind CSS to use.\n * @returns {string[]} The sorted list of CSS classes.\n */\nexport function buildClassList({\n  components,\n  dark,\n  prefix,\n  version,\n}: {\n  components: string[];\n  dark: boolean;\n  prefix: string;\n  version: 3 | 4;\n}): string[] {\n  let classList: string[] = [];\n\n  if (components.includes(\"*\")) {\n    classList = [...new Set(Object.values(CLASS_LIST_MAP).flat())];\n  } else {\n    const resolvedComponents = new Set<string>();\n    const visited = new Set<string>();\n\n    // eslint-disable-next-line no-inner-declarations\n    function resolveDependencies(name: string) {\n      if (visited.has(name)) {\n        return;\n      }\n      visited.add(name);\n\n      if (name in DEPENDENCY_LIST_MAP) {\n        resolvedComponents.add(name);\n\n        for (const dependency of DEPENDENCY_LIST_MAP[name as keyof typeof DEPENDENCY_LIST_MAP]) {\n          if (dependency in DEPENDENCY_LIST_MAP) {\n            resolvedComponents.add(dependency);\n            resolveDependencies(dependency);\n          }\n        }\n      }\n    }\n\n    for (const name of components) {\n      resolveDependencies(name);\n    }\n\n    classList = [\n      ...new Set(\n        [...resolvedComponents].flatMap((name) => {\n          const classListKey = COMPONENT_TO_CLASS_LIST_MAP[name as keyof typeof COMPONENT_TO_CLASS_LIST_MAP];\n          const resolvedClassList = CLASS_LIST_MAP[classListKey as keyof typeof CLASS_LIST_MAP];\n\n          return resolvedClassList || [];\n        }),\n      ),\n    ];\n  }\n\n  if (dark === false) {\n    classList = classList.map(stripDark).filter(Boolean);\n  }\n  if (version === 4) {\n    classList = classList.map(convertUtilitiesToV4);\n  }\n  if (prefix?.trim()) {\n    classList = classList.map((className) =>\n      version === 3 ? applyPrefixV3(className, prefix) : applyPrefix(className, prefix),\n    );\n  }\n\n  return classList.sort();\n}\n"],"names":["classList","CLASS_LIST_MAP","DEPENDENCY_LIST_MAP","COMPONENT_TO_CLASS_LIST_MAP","stripDark","convertUtilitiesToV4","applyPrefixV3","applyPrefix"],"mappings":";;;;;;;;;AAOO,SAAS,cAAc,CAAC;AAC/B,EAAE,UAAU;AACZ,EAAE,IAAI;AACN,EAAE,MAAM;AACR,EAAE;AACF,CAAC,EAAE;AACH,EAAE,IAAIA,WAAS,GAAG,EAAE;AACpB,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChC,IAAIA,WAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAACC,wBAAc,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAClE,EAAE,CAAC,MAAM;AACT,IAAI,IAAI,oBAAoB,GAAG,SAAS,IAAI,EAAE;AAC9C,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7B,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,MAAM,IAAI,IAAI,IAAIC,kCAAmB,EAAE;AACvC,QAAQ,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC,QAAQ,KAAK,MAAM,UAAU,IAAIA,kCAAmB,CAAC,IAAI,CAAC,EAAE;AAC5D,UAAU,IAAI,UAAU,IAAIA,kCAAmB,EAAE;AACjD,YAAY,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AAC9C,YAAY,oBAAoB,CAAC,UAAU,CAAC;AAC5C,UAAU;AACV,QAAQ;AACR,MAAM;AACN,IAAI,CAAC;AAEL,IAAI,MAAM,kBAAkB,mBAAmB,IAAI,GAAG,EAAE;AACxD,IAAI,MAAM,OAAO,mBAAmB,IAAI,GAAG,EAAE;AAC7C,IAAI,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACnC,MAAM,oBAAoB,CAAC,IAAI,CAAC;AAChC,IAAI;AACJ,IAAIF,WAAS,GAAG;AAChB,MAAM,GAAG,IAAI,GAAG;AAChB,QAAQ,CAAC,GAAG,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAClD,UAAU,MAAM,YAAY,GAAGG,qCAA2B,CAAC,IAAI,CAAC;AAChE,UAAU,MAAM,iBAAiB,GAAGF,wBAAc,CAAC,YAAY,CAAC;AAChE,UAAU,OAAO,iBAAiB,IAAI,EAAE;AACxC,QAAQ,CAAC;AACT;AACA,KAAK;AACL,EAAE;AACF,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE;AACtB,IAAID,WAAS,GAAGA,WAAS,CAAC,GAAG,CAACI,mBAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACxD,EAAE;AACF,EAAE,IAAI,OAAO,KAAK,CAAC,EAAE;AACrB,IAAIJ,WAAS,GAAGA,WAAS,CAAC,GAAG,CAACK,yCAAoB,CAAC;AACnD,EAAE;AACF,EAAE,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE;AACtB,IAAIL,WAAS,GAAGA,WAAS,CAAC,GAAG;AAC7B,MAAM,CAAC,SAAS,KAAK,OAAO,KAAK,CAAC,GAAGM,2BAAa,CAAC,SAAS,EAAE,MAAM,CAAC,GAAGC,uBAAW,CAAC,SAAS,EAAE,MAAM;AACrG,KAAK;AACL,EAAE;AACF,EAAE,OAAOP,WAAS,CAAC,IAAI,EAAE;AACzB;;;;"}