Home / Function/ cloneCandidate() — tailwindcss Function Reference

cloneCandidate() — tailwindcss Function Reference

Architecture documentation for the cloneCandidate() function in candidate.ts from the tailwindcss codebase.

Entity Profile

Dependency Diagram

graph TD
  f29ee016_da0a_a564_1658_fedaaac680b6["cloneCandidate()"]
  669e6a28_c71f_3c5e_9c53_915cede7da78["candidate.ts"]
  f29ee016_da0a_a564_1658_fedaaac680b6 -->|defined in| 669e6a28_c71f_3c5e_9c53_915cede7da78
  df17a03b_9c60_27a5_3fcf_5acdd9570ff9["baseCandidate()"]
  df17a03b_9c60_27a5_3fcf_5acdd9570ff9 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  bc19ae8d_4f83_e280_be05_e35eee14b3e7["migrateArbitraryVariants()"]
  bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  aeb7589b_9d5b_312e_4558_4df754cbb905["migrateAutomaticVarInjection()"]
  aeb7589b_9d5b_312e_4558_4df754cbb905 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  32c3141d_1d0a_d72e_1a76_a960011fba35["migrateCamelcaseInNamedValue()"]
  32c3141d_1d0a_d72e_1a76_a960011fba35 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  2d17c912_6324_fc2c_8ab3_065595647555["migrateLegacyArbitraryValues()"]
  2d17c912_6324_fc2c_8ab3_065595647555 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  155d1c0d_2551_0baf_c0ce_75204772c9a3["migrateLegacyClasses()"]
  155d1c0d_2551_0baf_c0ce_75204772c9a3 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  9f73b711_0f71_129f_7fdb_764a3c0df282["migrateModernizeArbitraryValues()"]
  9f73b711_0f71_129f_7fdb_764a3c0df282 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  c46276e2_6ad6_12ab_aac8_03ff3271cb1b["createCanonicalizeUtilityCache()"]
  c46276e2_6ad6_12ab_aac8_03ff3271cb1b -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6
  style f29ee016_da0a_a564_1658_fedaaac680b6 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/tailwindcss/src/candidate.ts lines 220–273

export function cloneCandidate<T extends Candidate>(candidate: T): T {
  switch (candidate.kind) {
    case 'arbitrary':
      return {
        kind: candidate.kind,
        property: candidate.property,
        value: candidate.value,
        modifier: candidate.modifier
          ? { kind: candidate.modifier.kind, value: candidate.modifier.value }
          : null,
        variants: candidate.variants.map(cloneVariant),
        important: candidate.important,
        raw: candidate.raw,
      } satisfies Extract<Candidate, { kind: 'arbitrary' }> as T

    case 'static':
      return {
        kind: candidate.kind,
        root: candidate.root,
        variants: candidate.variants.map(cloneVariant),
        important: candidate.important,
        raw: candidate.raw,
      } satisfies Extract<Candidate, { kind: 'static' }> as T

    case 'functional':
      return {
        kind: candidate.kind,
        root: candidate.root,
        value: candidate.value
          ? candidate.value.kind === 'arbitrary'
            ? {
                kind: candidate.value.kind,
                dataType: candidate.value.dataType,
                value: candidate.value.value,
              }
            : {
                kind: candidate.value.kind,
                value: candidate.value.value,
                fraction: candidate.value.fraction,
              }
          : null,
        modifier: candidate.modifier
          ? { kind: candidate.modifier.kind, value: candidate.modifier.value }
          : null,
        variants: candidate.variants.map(cloneVariant),
        important: candidate.important,
        raw: candidate.raw,
      } satisfies Extract<Candidate, { kind: 'functional' }> as T

    default:
      candidate satisfies never
      throw new Error('Unknown candidate kind')
  }
}

Domain

Subdomains

Frequently Asked Questions

What does cloneCandidate() do?
cloneCandidate() is a function in the tailwindcss codebase, defined in packages/tailwindcss/src/candidate.ts.
Where is cloneCandidate() defined?
cloneCandidate() is defined in packages/tailwindcss/src/candidate.ts at line 220.
What calls cloneCandidate()?
cloneCandidate() is called by 8 function(s): baseCandidate, createCanonicalizeUtilityCache, migrateArbitraryVariants, migrateAutomaticVarInjection, migrateCamelcaseInNamedValue, migrateLegacyArbitraryValues, migrateLegacyClasses, migrateModernizeArbitraryValues.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free