export type ExtractTagName< SimpleSelector extends string, DefaultTagName extends string > = SimpleSelector extends `#${infer Rest}` ? DefaultTagName : SimpleSelector extends `.${infer Rest}` ? DefaultTagName : SimpleSelector extends `${infer TagName}.${infer Rest}` ? ExtractTagName : SimpleSelector extends `${infer TagName}#${infer Rest}` ? TagName : SimpleSelector extends '' ? DefaultTagName : SimpleSelector extends string ? SimpleSelector : DefaultTagName