Skip to content

Commit dab05b9

Browse files
author
Andrii Kirmas
committed
Move *index* types to *defs*
1 parent a90acef commit dab05b9

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

src/ctx.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function classNamingCtx<ClassKeys extends string>(ctx: ClassNamer<ClassKeys>) {
88

99
const {classNames, className} = ctx
1010

11-
return function classNamer/*<ClassKeys extends string>*/(
11+
const classNamer = function classNamer/*<ClassKeys extends string>*/(
1212
// this: ClassNamer<ClassKeys>,
1313
//TODO (typeof className extends string ? true : never)
1414
arg0: ToggleMap<ClassKeys> | ClassKeys | true,
@@ -51,10 +51,12 @@ function classNamingCtx<ClassKeys extends string>(ctx: ClassNamer<ClassKeys>) {
5151
allowedString
5252
}`
5353
}
54-
54+
5555
stringifyClassNamed($return)
5656

5757
return $return
58-
}
58+
}
59+
60+
return classNamer
5961
}
6062

src/defs.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
import type { JSXElementConstructor } from "react"
2+
export interface ClassToggling<K extends string> {
3+
/**
4+
* @example <div {...classToggling({class1: !isHidden}, isOpen2 && class2)} />
5+
*/
6+
(toggleMapOrKeyExpression: Falsy|K|ToggleMap<K>, ...classKeyExpressions: (Falsy|K)[]): ClassNamed
7+
//TODO (withClassName: true|false, ...toggles: K[]): tClassNamed
8+
}
9+
10+
export interface ClassNaming<K extends string> extends ClassNamed, ClassToggling<K> {}
211

312
/** Multipurpose generic
413
* @example ClassNames<true> === {className: string}

src/index.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
export type { ClassNames } from "./defs"
66
import { EMPTY_OBJECT } from "./consts"
7-
import type { ClassNamesMap, ReactRelated, Falsy, ClassNamed, ToggleMap } from "./defs"
7+
import type { ClassNamesMap, ReactRelated, ClassNamed, ToggleMap, ClassNaming, ClassToggling } from "./defs"
88

99
const {
1010
keys: $keys,
@@ -22,16 +22,6 @@ export {
2222
classNamingCtx
2323
}
2424

25-
interface ClassToggling<K extends string> {
26-
/**
27-
* @example <div {...classToggling({class1: !isHidden}, isOpen2 && class2)} />
28-
*/
29-
(toggleMapOrKeyExpression: Falsy|K|ToggleMap<K>, ...classKeyExpressions: (Falsy|K)[]): ClassNamed
30-
//TODO (withClassName: true|false, ...toggles: K[]): tClassNamed
31-
}
32-
33-
interface ClassNaming<K extends string> extends ClassNamed, ClassToggling<K> {}
34-
3525
/**
3626
* Makes `className` string from imported CSS
3727
* @param classNames

0 commit comments

Comments
 (0)