Upgrade von tailwind-variants 3.x auf 4.x
Vergleich der öffentlichen API von tailwind-variants 3.3.1 und 4.0.0, automatisch aus den TypeScript-Typen berechnet. Eine geänderte Signatur ist ein möglicher Breaking Change, keine Gewissheit.
Zusammenfassung
| Entfernte Importpfade | 0 |
|---|---|
| Entfernte Exporte | 0 |
| Geänderte Signaturen | 35 |
| Entfernte Member von Klassen oder Interfaces | 0 |
| Geänderte Member von Klassen oder Interfaces | 12 |
| Neu als veraltet markiert | 0 |
| Geänderte Anforderungen (engines, Peer-Abhängigkeiten) | 2 |
| Neue Exporte | 32 |
Entfernte Exporte
Keine gefunden.
Geänderte Signaturen
| export | Vorher | Nachher |
|---|---|---|
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 |
Entfernte Member von Klassen oder Interfaces
Keine gefunden.
Geänderte Member von Klassen oder Interfaces
| member | Vorher | Nachher |
|---|---|---|
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> |
Neu als veraltet markiert
Keine gefunden.
Geänderte Anforderungen (engines, Peer-Abhängigkeiten)
| Vorher | Nachher | |
|---|---|---|
peerDependencies.tailwindcss | * | — |
peerDependencies.tailwind-merge | >=3.0.0 | — |
Neue Exporte (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 |
Gib deinem KI-Agenten diese Fakten
Vigia ist ein kostenloser MCP-Server: Dein Coding-Agent prüft Versionen, Breaking Changes und Sicherheitslücken, bevor er Code schreibt. Ohne Anmeldung, ohne API-Schlüssel.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Zu Cursor hinzufügenZu VS Code hinzufügen★ Stern auf GitHub
Jeder andere MCP-Client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }Agent-Skill (SKILL.md): sagt dem Agenten, wann er Vigia nutzen soll · GitHub Action für Pull Requests
Häufige Fragen
Welche Breaking Changes gibt es beim Upgrade von tailwind-variants 3 auf 4?
Zwischen tailwind-variants 3.3.1 und 4.0.0 hat Vigia 0 entfernte Exporte, 35 geänderte Signaturen und 12 entfernte oder geänderte Member von Klassen oder Interfaces gefunden.
Was wurde in tailwind-variants 4 als veraltet markiert?
0 Exporte oder Member sind in tailwind-variants 4.0.0 neu als veraltet markiert.
Für Agenten
GET https://vigia.coredls.cloud/v1/packages/npm/tailwind-variants/upgrade?from=3.3.1&to=4.0.0