Vigia

Passer de tailwind-variants 3.x à 4.x

Comparaison de l’API publique de tailwind-variants 3.3.1 et 4.0.0, calculée automatiquement à partir de leurs types TypeScript. Une signature modifiée est un changement incompatible possible, pas une certitude.

Résumé

Chemins d’importation supprimés0
Exports supprimés0
Signatures modifiées35
Membres de classes ou d’interfaces supprimés0
Membres de classes ou d’interfaces modifiés12
Nouvelles dépréciations0
Changements d’exigences (engines, dépendances peer)2
Nouveaux exports32

Exports supprimés

Aucun détecté.

Signatures modifiées

exportAvantAprès
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 · TVPropsEV 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 · CnReturnstring | undefinedstring
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 · TVVariantsEV 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 · TVVariantKeysV extends undefined ? undefined : (keyof V)[][V] extends [undefined] ? undefined : Extract<keyof V, string>[]
tailwind-variants · defaultConfigTWMConfigTVConfig
tailwind-variants · StringToBooleanT extends "true" | "false" ? boolean : TT 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 · TVPropsEV 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 · CnReturnstring | undefinedstring
tailwind-variants/lite · createTV(): TVLite(config?: TVLiteConfig | undefined): TVLite
tailwind-variants/lite · TVVariantsEV 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 · TVVariantKeysV extends undefined ? undefined : (keyof V)[][V] extends [undefined] ? undefined : Extract<keyof V, string>[]
tailwind-variants/lite · StringToBooleanT extends "true" | "false" ? boolean : TT 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

Membres de classes ou d’interfaces supprimés

Aucun détecté.

Membres de classes ou d’interfaces modifiés

memberAvantAprès
TVReturnType.variantsTVMergedVariants<V, EV>MergeVariantMaps<V, EV>
TVReturnType.variantKeysTVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>>TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>>
TVReturnType.compoundSlotsTVCompoundSlots<V, S, B>TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV>
TVReturnProps.variantsTVMergedVariants<V, EV>MergeVariantMaps<V, EV>
TVReturnProps.variantKeysTVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>>TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>>
TVReturnProps.compoundSlotsTVCompoundSlots<V, S, B>TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV>
TVReturnType.variantsTVMergedVariants<V, EV>MergeVariantMaps<V, EV>
TVReturnType.variantKeysTVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>>TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>>
TVReturnType.compoundSlotsTVCompoundSlots<V, S, B>TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV>
TVReturnProps.variantsTVMergedVariants<V, EV>MergeVariantMaps<V, EV>
TVReturnProps.variantKeysTVVariantKeys<TVMergedVariants<V, EV>, TVMergedSlots<S, ES>>TVVariantKeys<MergeVariantMaps<V, EV>, TVMergedSlots<S, ES>>
TVReturnProps.compoundSlotsTVCompoundSlots<V, S, B>TVCompoundSlots<V, TVMergedSlots<S, ES>, B, EV>

Nouvelles dépréciations

Aucun détecté.

Changements d’exigences (engines, dépendances peer)

AvantAprès
peerDependencies.tailwindcss*—
peerDependencies.tailwind-merge>=3.0.0—
Nouveaux exports (32)
importexportkind
tailwind-variantsclsxvariable
tailwind-variantstwJoinvariable
tailwind-variantsdefaultvariable
tailwind-variantstwMergevariable
tailwind-variantsTVExtendtype
tailwind-variantsTVFactorytype
tailwind-variantsTwMergeFntype
tailwind-variantsClassArraytype
tailwind-variantsCnFunctiontype
tailwind-variantsTVExtendListtype
tailwind-variantsTVLiteConfigtype
tailwind-variantsTVExtendInputtype
tailwind-variantsClassNameArraytype
tailwind-variantsClassNameValuetype
tailwind-variantsTVCustomConfigtype
tailwind-variantsClassDictionaryinterface
tailwind-variantsTWMCustomConfigtype
tailwind-variantsTVCompoundVarianttype
tailwind-variants/liteclsxvariable
tailwind-variants/litedefaultvariable
tailwind-variants/liteTVConfigtype
tailwind-variants/liteTVExtendtype
tailwind-variants/litecreateCNvariable
tailwind-variants/liteTVFactorytype
tailwind-variants/liteTWMConfigtype
tailwind-variants/liteTwMergeFntype
tailwind-variants/liteTVExtendListtype
tailwind-variants/liteTVLiteConfigtype
tailwind-variants/liteTVExtendInputtype
tailwind-variants/liteTWMergeConfigtype
tailwind-variants/liteTVCompoundVarianttype
tailwind-variants/utilsnormalizeClassStringvariable

Donnez ces données à votre agent IA

Vigia est un serveur MCP gratuit : votre agent de code vérifie les versions, les changements incompatibles et les vulnérabilités avant d'écrire du code. Sans inscription ni clé d'API.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Ajouter à CursorAjouter à VS Code★ Étoile sur GitHub

Tout autre client MCP
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Skill pour agents (SKILL.md) : indique à l'agent quand utiliser Vigia · GitHub Action pour les pull requests

Questions fréquentes

Quels sont les changements incompatibles en passant de tailwind-variants 3 à 4 ?

Entre tailwind-variants 3.3.1 et 4.0.0, Vigia a trouvé 0 exports supprimés, 35 signatures modifiées et 12 membres de classes ou d’interfaces supprimés ou modifiés.

Qu’est-ce qui a été déprécié dans tailwind-variants 4 ?

0 exports ou membres sont désormais marqués comme dépréciés dans tailwind-variants 4.0.0.

Pour les agents

GET https://vigia.coredls.cloud/v1/packages/npm/tailwind-variants/upgrade?from=3.3.1&to=4.0.0