Vigia

Atualizar tailwind-variants de 3.x para 4.x

Comparação da API pública de tailwind-variants 3.3.1 e 4.0.0, calculada automaticamente a partir dos tipos TypeScript. Uma assinatura alterada é uma possível mudança incompatível, não uma certeza.

Resumo

Caminhos de importação removidos0
Exports removidos0
Assinaturas alteradas35
Membros de classes ou interfaces removidos0
Membros de classes ou interfaces alterados12
Novas descontinuações0
Mudanças de requisitos (engines, dependências peer)2
Novos exports32

Exports removidos

Nenhuma detectada.

Assinaturas alteradas

exportAntesDepois
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

Membros de classes ou interfaces removidos

Nenhuma detectada.

Membros de classes ou interfaces alterados

memberAntesDepois
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>

Novas descontinuações

Nenhuma detectada.

Mudanças de requisitos (engines, dependências peer)

AntesDepois
peerDependencies.tailwindcss*—
peerDependencies.tailwind-merge>=3.0.0—
Novos 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

Dê estes dados ao seu agente de IA

Vigia é um servidor MCP gratuito: seu agente de programação verifica versões, mudanças incompatíveis e vulnerabilidades antes de escrever código. Sem cadastro, sem chave de API.

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

Adicionar ao CursorAdicionar ao VS Code★ Estrela no GitHub

Qualquer outro cliente MCP
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Skill para agentes (SKILL.md): diz ao agente quando usar o Vigia · GitHub Action para pull requests

Perguntas frequentes

Quais são as mudanças incompatíveis ao atualizar tailwind-variants de 3 para 4?

Entre tailwind-variants 3.3.1 e 4.0.0, o Vigia encontrou 0 exports removidos, 35 assinaturas alteradas e 12 membros de classes ou interfaces removidos ou alterados.

O que foi descontinuado em tailwind-variants 4?

0 exports ou membros foram marcados como descontinuados em tailwind-variants 4.0.0.

Para agentes

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