Vigia

tailwind-variants を 3.x から 4.x へアップグレード

tailwind-variants 3.3.1 と 4.0.0 の公開 API を、TypeScript の型から自動的に比較したものです。シグネチャの変更は破壊的変更の候補であり、確定ではありません。

概要

削除されたインポートパス0
削除されたエクスポート0
変更されたシグネチャ35
削除されたクラス/インターフェースのメンバー0
変更されたクラス/インターフェースのメンバー12
新たに非推奨0
要件の変更(engines、peer 依存関係)2
新しいエクスポート32

削除されたエクスポート

検出されませんでした。

変更されたシグネチャ

export変更前変更後
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

削除されたクラス/インターフェースのメンバー

検出されませんでした。

変更されたクラス/インターフェースのメンバー

member変更前変更後
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>

新たに非推奨

検出されませんでした。

要件の変更(engines、peer 依存関係)

変更前変更後
peerDependencies.tailwindcss*—
peerDependencies.tailwind-merge>=3.0.0—
新しいエクスポート (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

このデータを AI エージェントに渡す

Vigia は無料の MCP サーバーです。コーディングエージェントがコードを書く前に、バージョン・破壊的変更・脆弱性を確認できます。登録も API キーも不要です。

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

Cursor に追加VS Code に追加★ GitHub でスターを付ける

その他の MCP クライアント
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

エージェント用スキル (SKILL.md):Vigia を使うタイミングをエージェントに伝えます · プルリクエスト用 GitHub Action

よくある質問

tailwind-variants を 3 から 4 にアップグレードする際の破壊的変更は?

tailwind-variants 3.3.1 と 4.0.0 の間で、Vigia は削除されたエクスポートを 0 件、変更されたシグネチャを 35 件、削除または変更されたクラス/インターフェースのメンバーを 12 件検出しました。

tailwind-variants 4 で非推奨になったものは?

tailwind-variants 4.0.0 では 0 件のエクスポートまたはメンバーが新たに非推奨になりました。

エージェント向け

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