A self-hosted orchestration system crafted for power users. composia.xyz
Something went wrong. Try again.
TypeScript
123456789101112131415161718import { clsx, type ClassValue } from "clsx";import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs));}
// eslint-disable-next-line @typescript-eslint/no-explicit-anyexport type WithoutChild<T> = T extends { child?: any } ? Omit<T, "child"> : T;// eslint-disable-next-line @typescript-eslint/no-explicit-anyexport type WithoutChildren<T> = T extends { children?: any } ? Omit<T, "children"> : T;export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>;export type WithElementRef<T, U extends HTMLElement = HTMLElement> = T & { ref?: U | null;};