cloneCandidate() — tailwindcss Function Reference
Architecture documentation for the cloneCandidate() function in candidate.ts from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f["cloneCandidate()"] 484442b1_10ce_2528_7bf3_09152637486d["baseCandidate()"] 484442b1_10ce_2528_7bf3_09152637486d -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f 707ef5d3_1654_7094_06d2_99e8004cab43["migrateArbitraryVariants()"] 707ef5d3_1654_7094_06d2_99e8004cab43 -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f 0d34c838_b3bc_b388_6b0d_17fe24312e5f["migrateAutomaticVarInjection()"] 0d34c838_b3bc_b388_6b0d_17fe24312e5f -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f 4d31f3a8_5ec2_6651_828a_48dc621934f5["migrateCamelcaseInNamedValue()"] 4d31f3a8_5ec2_6651_828a_48dc621934f5 -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f c54c0b46_6508_253f_e6ff_d96bcc4246d5["migrateLegacyArbitraryValues()"] c54c0b46_6508_253f_e6ff_d96bcc4246d5 -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f 83b8a939_5e80_0880_4db2_753e6d6e279c["migrateLegacyClasses()"] 83b8a939_5e80_0880_4db2_753e6d6e279c -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f 042344d6_c400_b6f0_00d2_ff8fded428bc["migrateModernizeArbitraryValues()"] 042344d6_c400_b6f0_00d2_ff8fded428bc -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f 19c705c9_6183_f093_b0c2_334f2d300052["createCanonicalizeUtilityCache()"] 19c705c9_6183_f093_b0c2_334f2d300052 -->|calls| d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f style d36b0f78_79bb_ae15_f4f6_4a1b7f01d29f 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
Called By
Source
Frequently Asked Questions
What does cloneCandidate() do?
cloneCandidate() is a function in the tailwindcss codebase.
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