type KebabCase = S extends `${infer Head}${infer Tail}` ? Tail extends Uncapitalize ? `${Lowercase}${KebabCase}` : `${Lowercase}-${KebabCase}` : S; type OptionalKeys = { [Key in keyof Props]-?: Pick extends Required> ? never : Key; }[keyof Props]; type RequiredKeys = Exclude>; type KebabCaseRequiredProps = { [Key in RequiredKeys as Key extends string ? KebabCase : never]: Props[Key]; }; type KebabCaseOptionalProps = { [Key in OptionalKeys as Key extends string ? KebabCase : never]?: Props[Key]; }; type KebabCaseProps = KebabCaseRequiredProps & KebabCaseOptionalProps; export type SDKIntrinsicElementProps = KebabCaseProps & { class?: string; className?: string; style?: string; slot?: string; children?: unknown; }; export {};