aboutsummaryrefslogtreecommitdiffstats
path: root/svg.js.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'svg.js.d.ts')
-rw-r--r--svg.js.d.ts31
1 files changed, 16 insertions, 15 deletions
diff --git a/svg.js.d.ts b/svg.js.d.ts
index c731b25..b3f17e9 100644
--- a/svg.js.d.ts
+++ b/svg.js.d.ts
@@ -4,26 +4,27 @@
// trick to keep reference to Array build-in type
declare class BuiltInArray<T> extends Array<T> {}
-// trick to have nice attribute list for CSS
-declare type CSSStyleName = Exclude<
- keyof CSSStyleDeclaration,
- 'parentRule' | 'length'
->
-
// camelCase to kebab-case
-type CamelToKebab<S extends string> = S extends `${infer T}${infer U}`
- ? U extends Uncapitalize<U>
- ? `${Lowercase<T>}${CamelToKebab<U>}`
- : `${Lowercase<T>}-${CamelToKebab<U>}`
- : S;
-
-type ConvertKeysToKebab<T> = {
- [K in keyof T as CamelToKebab<K & string>]: T[K];
+declare type CamelToKebab<S extends string> = S extends `${infer T}${infer U}`
+ ? U extends Uncapitalize<U>
+ ? `${Lowercase<T>}${CamelToKebab<U>}`
+ : `${Lowercase<T>}-${CamelToKebab<U>}`
+ : S;
+
+declare type ConvertKeysToKebab<T> = {
+ [K in keyof T as CamelToKebab<K & string>]: T[K];
};
+declare type KebabCSSStyleDeclaration = ConvertKeysToKebab<CSSStyleDeclaration>
+
+// trick to have nice attribute list for CSS
+declare type CSSStyleName = Exclude<
+ keyof KebabCSSStyleDeclaration,
+ 'parent-rule' | 'length'
+>
// create our own style declaration that includes css vars
-interface CSSStyleDeclarationWithVars extends ConvertKeysToKebab<CSSStyleDeclaration> {
+interface CSSStyleDeclarationWithVars extends KebabCSSStyleDeclaration {
[key: `--${string}`]: string
}