Aggiornare tailwind-variants da 3.x a 4.x
Confronto dell’API pubblica di tailwind-variants 3.3.1 e 4.0.0, calcolato automaticamente dai tipi TypeScript. Una firma modificata è una possibile modifica incompatibile, non una certezza.
Riepilogo
| Percorsi di import rimossi | 0 |
|---|---|
| Export rimossi | 0 |
| Firme modificate | 35 |
| Membri di classi o interfacce rimossi | 0 |
| Membri di classi o interfacce modificati | 12 |
| Nuove deprecazioni | 0 |
| Requisiti cambiati (engines, dipendenze peer) | 2 |
| Nuovi export | 32 |
Export rimossi
Nessuna rilevata.
Firme modificate
| export | Prima | Dopo |
|---|---|---|
tailwind-variants · TV | <V extends TVVariants<S, B, EV>, CV extends TVCompoundVariants<V, S, B, EV, ES>, DV extends TVDefaultVariants<V, S, EV, ES>, B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> = TVReturnTypeLike<V, S>, EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"], ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined>(options: { extend?: E | undefined; base?: B | undefined; slots?: S | undefined; variants?: V | undefined; compoundVariants?: CV | undefined; compoundSlots?: TVCompoundSlots<V, S, B> | undefined; defaultVa… | interface |
tailwind-variants · cn | <T extends CnOptions>(...classnames: T): CnReturn | (...inputs: ClassValue[]): string |
tailwind-variants · cx | <T extends CnOptions>(...classnames: T): CnReturn | <T extends CnOptions>(...classnames: T): string |
tailwind-variants · tv | <V extends TVVariants<S, B, EV>, CV extends TVCompoundVariants<V, S, B, EV, ES>, DV extends TVDefaultVariants<V, S, EV, ES>, B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> = TVReturnTypeLike<V, S>, EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"], ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined>(options: { extend?: E | undefined; base?: B | undefined; slots?: S | undefined; variants?: V | undefined; compoundVariants?: CV | undefined; compoundSlots?: TVCompoundSlots<V, S, B> | undefined; defaultVa… | <V extends TVVariantsConstraint = {}, DV = {}, CV extends readonly object[] = [], B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> | TVExtendList | undefined = undefined, EV extends TVVariantsShape = VariantsOfExtend<E>, ES extends TVSlots = SlotsOfExtend<E>>(options: TVOptionsFields<V, DV, CV, B, S, EV, ES> & { extend?: E | undefined; compoundSlots?: TVCompoundSlots<NoInfer<V>, TVMergedSlots<NoInfer<S>, NoInfer<SlotsOfExtend<E>>>, NoInfer<B>, NoInfer<EV>> | undefined; }, config?: TVConfig | undefined): TVReturnType<V, S, B, EV, ES, E> |
tailwind-variants · TVLite | <V extends TVVariants<S, B, EV>, CV extends TVCompoundVariants<V, S, B, EV, ES>, DV extends TVDefaultVariants<V, S, EV, ES>, B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> = TVReturnTypeLike<V, S>, EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"], ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined>(options: { extend?: E | undefined; base?: B | undefined; slots?: S | undefined; variants?: V | undefined; compoundVariants?: CV | undefined; compoundSlots?: TVCompoundSlots<V, S, B> | undefined; defaultVa… | interface |
tailwind-variants · TVProps | EV extends undefined ? V extends undefined ? ClassProp<ClassNameValue> : { [K in keyof V]?: VariantValue<V, K> | undefined; } & ClassProp<ClassNameValue> : V extends undefined ? { [K in keyof EV]?: VariantValue<EV, K> | undefined; } & ClassProp<ClassNameValue> : { [K in keyof V | keyof EV]?: VariantValue<V, K> | VariantValue<EV, K> | undefined; } & ClassProp<ClassNameValue> | [TVResolvedVariants<V, EV>] extends [undefined] ? ClassProp<ClassNameValue> : { [K in keyof ({ [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } & { class?: ClassNameValue; className?: undefined; })]: ({ [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } & { class?: ClassNameValue; className?: undefined; })[K]; } | { [K in keyof ({ [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } & { class?: undefined; className?: ClassNam… |
tailwind-variants · cnMerge | <T extends CnOptions>(...classnames: T): (config?: TWMConfig | undefined) => CnReturn | <T extends CnOptions>(...classnames: T): (config?: TWMConfig | undefined) => string |
tailwind-variants · CnReturn | string | undefined | string |
tailwind-variants · TVConfig | { twMerge?: boolean | undefined; twMergeConfig?: TWMergeConfig | undefined; } | TWMConfig & { debug?: boolean | undefined; } |
tailwind-variants · createTV | (config: TWMConfig): TV | (config: TVConfig): TV<TVConfig> |
tailwind-variants · TWMConfig | { twMerge?: boolean | undefined; twMergeConfig?: TWMergeConfig | undefined; } | { twMerge?: boolean | TwMergeFn | undefined; } |
tailwind-variants · TVVariants | EV extends undefined ? TVVariantsDefault<S, B> : TVVariantsDefault<S, B> | { [K in keyof EV]: { [K2 in keyof EV[K]]: S extends TVSlots ? ClassNameValue | SlotsClassValue<S, B> : ClassNameValue; }; } | { [x: string]: Record<string, VariantClassValue<TVMergedSlots<S, ES>, B>>; } |
tailwind-variants · TVVariantKeys | V extends undefined ? undefined : (keyof V)[] | [V] extends [undefined] ? undefined : Extract<keyof V, string>[] |
tailwind-variants · defaultConfig | TWMConfig | TVConfig |
tailwind-variants · StringToBoolean | T extends "true" | "false" ? boolean : T | T extends boolean | "true" | "false" ? boolean : T |
tailwind-variants · TVCompoundSlots | ({ slots: TVSlotsWithBase<S, B>[]; } & ({ [K in keyof V]?: VariantValueWithBooleanUndefined<V, K> | VariantValueWithBooleanUndefined<V, K>[] | undefined; } & ClassProp<ClassNameValue>))[] | ({ slots: TVSlotsWithBase<S, B>[]; } & ({ [K in Exclude<keyof TVResolvedVariants<V, EV> & string, "slots" | "class" | "className">]?: VariantValueWithBooleanUndefined<TVResolvedVariants<V, EV>, K> | VariantValueWithBooleanUndefined<TVResolvedVariants<V, EV>, K>[] | undefined; } & ClassProp<ClassNameValue>))[] |
tailwind-variants · TVDefaultVariants | { [K in keyof V | keyof EV]?: VariantValue<V, K> | VariantValue<EV, K> | undefined; } | [TVResolvedVariants<V, EV>] extends [undefined] ? {} : { [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } |
tailwind-variants · TVCompoundVariants | ({ [K in keyof V | keyof EV]?: VariantValueWithBooleanUndefined<V, K> | VariantValueWithBooleanUndefined<EV, K> | (K extends keyof V ? VariantValueWithBooleanUndefined<V, K>[] : never) | undefined; } & ClassProp<ClassNameValue | SlotsClassValue<S, B>>)[] | TVCompoundVariant<V, S, B, EV, ES>[] |
tailwind-variants · TVScreenPropsValue | { initial?: StringToBoolean<keyof V[K]> | undefined; } | { initial?: StringToBoolean<keyof V[K] & string> | undefined; } |
tailwind-variants/lite · TV | <V extends TVVariants<S, B, EV>, CV extends TVCompoundVariants<V, S, B, EV, ES>, DV extends TVDefaultVariants<V, S, EV, ES>, B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> = TVReturnTypeLike<V, S>, EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"], ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined>(options: { extend?: E | undefined; base?: B | undefined; slots?: S | undefined; variants?: V | undefined; compoundVariants?: CV | undefined; compoundSlots?: TVCompoundSlots<V, S, B> | undefined; defaultVa… | interface |
tailwind-variants/lite · cn | <T extends CnOptions>(...classnames: T): (config?: any) => CnReturn | <T extends CnOptions>(...classnames: T): (config?: TVLiteConfig | undefined) => string |
tailwind-variants/lite · cx | <T extends CnOptions>(...classnames: T): CnReturn | <T extends CnOptions>(...classnames: T): string |
tailwind-variants/lite · tv | <V extends TVVariants<S, B, EV>, CV extends TVCompoundVariants<V, S, B, EV, ES>, DV extends TVDefaultVariants<V, S, EV, ES>, B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> = TVReturnTypeLike<V, S>, EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"], ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined>(options: { extend?: E | undefined; base?: B | undefined; slots?: S | undefined; variants?: V | undefined; compoundVariants?: CV | undefined; compoundSlots?: TVCompoundSlots<V, S, B> | undefined; defaultVa… | <V extends TVVariantsConstraint = {}, DV = {}, CV extends readonly object[] = [], B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> | TVExtendList | undefined = undefined, EV extends TVVariantsShape = VariantsOfExtend<E>, ES extends TVSlots = SlotsOfExtend<E>>(options: TVOptionsFields<V, DV, CV, B, S, EV, ES> & { extend?: E | undefined; compoundSlots?: TVCompoundSlots<NoInfer<V>, TVMergedSlots<NoInfer<S>, NoInfer<SlotsOfExtend<E>>>, NoInfer<B>, NoInfer<EV>> | undefined; }, config?: TVLiteConfig | undefined): TVReturnType<V, S, B, EV, ES, … |
tailwind-variants/lite · TVLite | <V extends TVVariants<S, B, EV>, CV extends TVCompoundVariants<V, S, B, EV, ES>, DV extends TVDefaultVariants<V, S, EV, ES>, B extends ClassNameValue = undefined, S extends TVSlots = undefined, E extends TVReturnTypeLike<any, any> = TVReturnTypeLike<V, S>, EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"], ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined>(options: { extend?: E | undefined; base?: B | undefined; slots?: S | undefined; variants?: V | undefined; compoundVariants?: CV | undefined; compoundSlots?: TVCompoundSlots<V, S, B> | undefined; defaultVa… | interface |
tailwind-variants/lite · TVProps | EV extends undefined ? V extends undefined ? ClassProp<ClassNameValue> : { [K in keyof V]?: VariantValue<V, K> | undefined; } & ClassProp<ClassNameValue> : V extends undefined ? { [K in keyof EV]?: VariantValue<EV, K> | undefined; } & ClassProp<ClassNameValue> : { [K in keyof V | keyof EV]?: VariantValue<V, K> | VariantValue<EV, K> | undefined; } & ClassProp<ClassNameValue> | [TVResolvedVariants<V, EV>] extends [undefined] ? ClassProp<ClassNameValue> : { [K in keyof ({ [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } & { class?: ClassNameValue; className?: undefined; })]: ({ [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } & { class?: ClassNameValue; className?: undefined; })[K]; } | { [K in keyof ({ [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } & { class?: undefined; className?: ClassNam… |
tailwind-variants/lite · CnReturn | string | undefined | string |
tailwind-variants/lite · createTV | (): TVLite | (config?: TVLiteConfig | undefined): TVLite |
tailwind-variants/lite · TVVariants | EV extends undefined ? TVVariantsDefault<S, B> : TVVariantsDefault<S, B> | { [K in keyof EV]: { [K2 in keyof EV[K]]: S extends TVSlots ? ClassNameValue | SlotsClassValue<S, B> : ClassNameValue; }; } | { [x: string]: Record<string, VariantClassValue<TVMergedSlots<S, ES>, B>>; } |
tailwind-variants/lite · TVVariantKeys | V extends undefined ? undefined : (keyof V)[] | [V] extends [undefined] ? undefined : Extract<keyof V, string>[] |
tailwind-variants/lite · StringToBoolean | T extends "true" | "false" ? boolean : T | T extends boolean | "true" | "false" ? boolean : T |
tailwind-variants/lite · TVCompoundSlots | ({ slots: TVSlotsWithBase<S, B>[]; } & ({ [K in keyof V]?: VariantValueWithBooleanUndefined<V, K> | VariantValueWithBooleanUndefined<V, K>[] | undefined; } & ClassProp<ClassNameValue>))[] | ({ slots: TVSlotsWithBase<S, B>[]; } & ({ [K in Exclude<keyof TVResolvedVariants<V, EV> & string, "slots" | "class" | "className">]?: VariantValueWithBooleanUndefined<TVResolvedVariants<V, EV>, K> | VariantValueWithBooleanUndefined<TVResolvedVariants<V, EV>, K>[] | undefined; } & ClassProp<ClassNameValue>))[] |
tailwind-variants/lite · TVDefaultVariants | { [K in keyof V | keyof EV]?: VariantValue<V, K> | VariantValue<EV, K> | undefined; } | [TVResolvedVariants<V, EV>] extends [undefined] ? {} : { [K in keyof TVResolvedVariants<V, EV> & string]?: VariantValue<TVResolvedVariants<V, EV>, K> | undefined; } |
tailwind-variants/lite · TVCompoundVariants | ({ [K in keyof V | keyof EV]?: VariantValueWithBooleanUndefined<V, K> | VariantValueWithBooleanUndefined<EV, K> | (K extends keyof V ? VariantValueWithBooleanUndefined<V, K>[] : never) | undefined; } & ClassProp<ClassNameValue | SlotsClassValue<S, B>>)[] | TVCompoundVariant<V, S, B, EV, ES>[] |
tailwind-variants/lite · TVScreenPropsValue | { initial?: StringToBoolean<keyof V[K]> | undefined; } | { initial?: StringToBoolean<keyof V[K] & string> | undefined; } |
tailwind-variants/utils · cx | <T extends CnOptions>(...classnames: T): CnReturn | <T extends CnOptions>(...classnames: T): string |
Membri di classi o interfacce rimossi
Nessuna rilevata.
Membri di classi o interfacce modificati
| member | Prima | Dopo |
|---|---|---|
TVReturnType.variants | TVMergedVariants<V, EV> | MergeVariantMaps<V, EV> |
TVReturnType.variantKeys | TVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>> | TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>> |
TVReturnType.compoundSlots | TVCompoundSlots<V, S, B> | TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV> |
TVReturnProps.variants | TVMergedVariants<V, EV> | MergeVariantMaps<V, EV> |
TVReturnProps.variantKeys | TVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>> | TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>> |
TVReturnProps.compoundSlots | TVCompoundSlots<V, S, B> | TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV> |
TVReturnType.variants | TVMergedVariants<V, EV> | MergeVariantMaps<V, EV> |
TVReturnType.variantKeys | TVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>> | TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>> |
TVReturnType.compoundSlots | TVCompoundSlots<V, S, B> | TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV> |
TVReturnProps.variants | TVMergedVariants<V, EV> | MergeVariantMaps<V, EV> |
TVReturnProps.variantKeys | TVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>> | TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>> |
TVReturnProps.compoundSlots | TVCompoundSlots<V, S, B> | TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV> |
Nuove deprecazioni
Nessuna rilevata.
Requisiti cambiati (engines, dipendenze peer)
| Prima | Dopo | |
|---|---|---|
peerDependencies.tailwindcss | * | — |
peerDependencies.tailwind-merge | >=3.0.0 | — |
Nuovi export (32)
| import | export | kind |
|---|---|---|
tailwind-variants | clsx | variable |
tailwind-variants | twJoin | variable |
tailwind-variants | default | variable |
tailwind-variants | twMerge | variable |
tailwind-variants | TVExtend | type |
tailwind-variants | TVFactory | type |
tailwind-variants | TwMergeFn | type |
tailwind-variants | ClassArray | type |
tailwind-variants | CnFunction | type |
tailwind-variants | TVExtendList | type |
tailwind-variants | TVLiteConfig | type |
tailwind-variants | TVExtendInput | type |
tailwind-variants | ClassNameArray | type |
tailwind-variants | ClassNameValue | type |
tailwind-variants | TVCustomConfig | type |
tailwind-variants | ClassDictionary | interface |
tailwind-variants | TWMCustomConfig | type |
tailwind-variants | TVCompoundVariant | type |
tailwind-variants/lite | clsx | variable |
tailwind-variants/lite | default | variable |
tailwind-variants/lite | TVConfig | type |
tailwind-variants/lite | TVExtend | type |
tailwind-variants/lite | createCN | variable |
tailwind-variants/lite | TVFactory | type |
tailwind-variants/lite | TWMConfig | type |
tailwind-variants/lite | TwMergeFn | type |
tailwind-variants/lite | TVExtendList | type |
tailwind-variants/lite | TVLiteConfig | type |
tailwind-variants/lite | TVExtendInput | type |
tailwind-variants/lite | TWMergeConfig | type |
tailwind-variants/lite | TVCompoundVariant | type |
tailwind-variants/utils | normalizeClassString | variable |
Dai questi dati al tuo agente IA
Vigia è un server MCP gratuito: il tuo agente di programmazione verifica versioni, modifiche incompatibili e vulnerabilità prima di scrivere codice. Senza registrazione né chiave API.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Aggiungi a CursorAggiungi a VS Code★ Stella su GitHub
Qualsiasi altro client MCP
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }Skill per agenti (SKILL.md): dice all'agente quando usare Vigia · GitHub Action per le pull request
Domande frequenti
Quali sono le modifiche incompatibili aggiornando tailwind-variants da 3 a 4?
Tra tailwind-variants 3.3.1 e 4.0.0, Vigia ha trovato 0 export rimossi, 35 firme modificate e 12 membri di classi o interfacce rimossi o modificati.
Cosa è stato deprecato in tailwind-variants 4?
0 export o membri risultano ora deprecati in tailwind-variants 4.0.0.
Per gli agenti
GET https://vigia.coredls.cloud/v1/packages/npm/tailwind-variants/upgrade?from=3.3.1&to=4.0.0