css-variants 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1298 -219
- package/dist/cjs/cv.bench.d.ts +1 -0
- package/dist/cjs/cv.bench.js +207 -0
- package/dist/cjs/cv.bench.js.map +1 -0
- package/dist/cjs/cv.js +11 -9
- package/dist/cjs/cv.js.map +1 -1
- package/dist/cjs/scv.bench.d.ts +1 -0
- package/dist/cjs/scv.bench.js +409 -0
- package/dist/cjs/scv.bench.js.map +1 -0
- package/dist/cjs/scv.js +13 -11
- package/dist/cjs/scv.js.map +1 -1
- package/dist/cjs/ssv.bench.d.ts +1 -0
- package/dist/cjs/ssv.bench.js +506 -0
- package/dist/cjs/ssv.bench.js.map +1 -0
- package/dist/cjs/ssv.js +14 -12
- package/dist/cjs/ssv.js.map +1 -1
- package/dist/cjs/sv.bench.d.ts +1 -0
- package/dist/cjs/sv.bench.js +264 -0
- package/dist/cjs/sv.bench.js.map +1 -0
- package/dist/cjs/sv.js +15 -10
- package/dist/cjs/sv.js.map +1 -1
- package/dist/cjs/utils/merge-props.d.ts +1 -1
- package/dist/cjs/utils/merge-props.js +8 -6
- package/dist/cjs/utils/merge-props.js.map +1 -1
- package/dist/esm/cv.bench.d.ts +1 -0
- package/dist/esm/cv.bench.js +205 -0
- package/dist/esm/cv.bench.js.map +1 -0
- package/dist/esm/cv.js +11 -9
- package/dist/esm/cv.js.map +1 -1
- package/dist/esm/scv.bench.d.ts +1 -0
- package/dist/esm/scv.bench.js +407 -0
- package/dist/esm/scv.bench.js.map +1 -0
- package/dist/esm/scv.js +13 -11
- package/dist/esm/scv.js.map +1 -1
- package/dist/esm/ssv.bench.d.ts +1 -0
- package/dist/esm/ssv.bench.js +504 -0
- package/dist/esm/ssv.bench.js.map +1 -0
- package/dist/esm/ssv.js +14 -12
- package/dist/esm/ssv.js.map +1 -1
- package/dist/esm/sv.bench.d.ts +1 -0
- package/dist/esm/sv.bench.js +262 -0
- package/dist/esm/sv.bench.js.map +1 -0
- package/dist/esm/sv.js +15 -10
- package/dist/esm/sv.js.map +1 -1
- package/dist/esm/utils/merge-props.d.ts +1 -1
- package/dist/esm/utils/merge-props.js +8 -6
- package/dist/esm/utils/merge-props.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const cv_1 = require("./cv");
|
|
5
|
+
(0, vitest_1.describe)('cv benchmarks', () => {
|
|
6
|
+
// Simple base class only
|
|
7
|
+
const simpleVariant = (0, cv_1.cv)({
|
|
8
|
+
base: 'base-class',
|
|
9
|
+
});
|
|
10
|
+
(0, vitest_1.bench)('base class only', () => {
|
|
11
|
+
simpleVariant();
|
|
12
|
+
});
|
|
13
|
+
// Single variant
|
|
14
|
+
const singleVariant = (0, cv_1.cv)({
|
|
15
|
+
base: 'btn',
|
|
16
|
+
variants: {
|
|
17
|
+
color: {
|
|
18
|
+
primary: 'bg-blue-500 text-white',
|
|
19
|
+
secondary: 'bg-gray-500 text-white',
|
|
20
|
+
danger: 'bg-red-500 text-white',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.bench)('single variant', () => {
|
|
25
|
+
singleVariant({ color: 'primary' });
|
|
26
|
+
});
|
|
27
|
+
// Multiple variants
|
|
28
|
+
const multipleVariants = (0, cv_1.cv)({
|
|
29
|
+
base: 'btn rounded transition',
|
|
30
|
+
variants: {
|
|
31
|
+
color: {
|
|
32
|
+
primary: 'bg-blue-500 text-white hover:bg-blue-600',
|
|
33
|
+
secondary: 'bg-gray-500 text-white hover:bg-gray-600',
|
|
34
|
+
danger: 'bg-red-500 text-white hover:bg-red-600',
|
|
35
|
+
},
|
|
36
|
+
size: {
|
|
37
|
+
sm: 'px-2 py-1 text-sm',
|
|
38
|
+
md: 'px-4 py-2 text-base',
|
|
39
|
+
lg: 'px-6 py-3 text-lg',
|
|
40
|
+
},
|
|
41
|
+
variant: {
|
|
42
|
+
solid: 'shadow-md',
|
|
43
|
+
outline: 'border-2 bg-transparent',
|
|
44
|
+
ghost: 'bg-transparent',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.bench)('multiple variants', () => {
|
|
49
|
+
multipleVariants({ color: 'primary', size: 'md', variant: 'solid' });
|
|
50
|
+
});
|
|
51
|
+
// With default variants
|
|
52
|
+
const withDefaults = (0, cv_1.cv)({
|
|
53
|
+
base: 'btn rounded transition',
|
|
54
|
+
variants: {
|
|
55
|
+
color: {
|
|
56
|
+
primary: 'bg-blue-500 text-white hover:bg-blue-600',
|
|
57
|
+
secondary: 'bg-gray-500 text-white hover:bg-gray-600',
|
|
58
|
+
danger: 'bg-red-500 text-white hover:bg-red-600',
|
|
59
|
+
},
|
|
60
|
+
size: {
|
|
61
|
+
sm: 'px-2 py-1 text-sm',
|
|
62
|
+
md: 'px-4 py-2 text-base',
|
|
63
|
+
lg: 'px-6 py-3 text-lg',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
defaultVariants: {
|
|
67
|
+
color: 'primary',
|
|
68
|
+
size: 'md',
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.bench)('with default variants (no props)', () => {
|
|
72
|
+
withDefaults();
|
|
73
|
+
});
|
|
74
|
+
(0, vitest_1.bench)('with default variants (override one)', () => {
|
|
75
|
+
withDefaults({ size: 'lg' });
|
|
76
|
+
});
|
|
77
|
+
// Compound variants
|
|
78
|
+
const withCompoundVariants = (0, cv_1.cv)({
|
|
79
|
+
base: 'btn rounded transition',
|
|
80
|
+
variants: {
|
|
81
|
+
color: {
|
|
82
|
+
primary: 'bg-blue-500 text-white',
|
|
83
|
+
secondary: 'bg-gray-500 text-white',
|
|
84
|
+
danger: 'bg-red-500 text-white',
|
|
85
|
+
},
|
|
86
|
+
size: {
|
|
87
|
+
sm: 'px-2 py-1 text-sm',
|
|
88
|
+
md: 'px-4 py-2 text-base',
|
|
89
|
+
lg: 'px-6 py-3 text-lg',
|
|
90
|
+
},
|
|
91
|
+
disabled: {
|
|
92
|
+
true: 'opacity-50 cursor-not-allowed',
|
|
93
|
+
false: 'cursor-pointer',
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
compoundVariants: [
|
|
97
|
+
{
|
|
98
|
+
size: 'lg',
|
|
99
|
+
color: 'primary',
|
|
100
|
+
className: 'font-bold shadow-lg',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
size: ['sm', 'md'],
|
|
104
|
+
color: 'danger',
|
|
105
|
+
className: 'font-semibold',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
disabled: true,
|
|
109
|
+
color: ['primary', 'secondary', 'danger'],
|
|
110
|
+
className: 'pointer-events-none',
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
});
|
|
114
|
+
(0, vitest_1.bench)('compound variants (no match)', () => {
|
|
115
|
+
withCompoundVariants({ color: 'secondary', size: 'sm', disabled: false });
|
|
116
|
+
});
|
|
117
|
+
(0, vitest_1.bench)('compound variants (single match)', () => {
|
|
118
|
+
withCompoundVariants({ color: 'primary', size: 'lg', disabled: false });
|
|
119
|
+
});
|
|
120
|
+
(0, vitest_1.bench)('compound variants (multiple matches)', () => {
|
|
121
|
+
withCompoundVariants({ color: 'danger', size: 'sm', disabled: true });
|
|
122
|
+
});
|
|
123
|
+
// With className override
|
|
124
|
+
const withClassName = (0, cv_1.cv)({
|
|
125
|
+
base: 'btn',
|
|
126
|
+
variants: {
|
|
127
|
+
color: {
|
|
128
|
+
primary: 'bg-blue-500',
|
|
129
|
+
secondary: 'bg-gray-500',
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
(0, vitest_1.bench)('with className override', () => {
|
|
134
|
+
withClassName({ color: 'primary', className: 'custom-class extra-class' });
|
|
135
|
+
});
|
|
136
|
+
// Complex real-world example
|
|
137
|
+
const complexButton = (0, cv_1.cv)({
|
|
138
|
+
base: 'inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
|
|
139
|
+
variants: {
|
|
140
|
+
variant: {
|
|
141
|
+
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
|
|
142
|
+
destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
|
|
143
|
+
outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
|
|
144
|
+
secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
|
145
|
+
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
|
146
|
+
link: 'text-primary underline-offset-4 hover:underline',
|
|
147
|
+
},
|
|
148
|
+
size: {
|
|
149
|
+
default: 'h-10 px-4 py-2',
|
|
150
|
+
sm: 'h-9 rounded-md px-3',
|
|
151
|
+
lg: 'h-11 rounded-md px-8',
|
|
152
|
+
icon: 'h-10 w-10',
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
compoundVariants: [
|
|
156
|
+
{
|
|
157
|
+
variant: 'destructive',
|
|
158
|
+
size: 'lg',
|
|
159
|
+
className: 'font-bold',
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
variant: ['outline', 'ghost'],
|
|
163
|
+
size: ['sm', 'default'],
|
|
164
|
+
className: 'font-normal',
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
defaultVariants: {
|
|
168
|
+
variant: 'default',
|
|
169
|
+
size: 'default',
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
(0, vitest_1.bench)('complex real-world button (defaults)', () => {
|
|
173
|
+
complexButton();
|
|
174
|
+
});
|
|
175
|
+
(0, vitest_1.bench)('complex real-world button (with overrides)', () => {
|
|
176
|
+
complexButton({ variant: 'destructive', size: 'lg', className: 'w-full' });
|
|
177
|
+
});
|
|
178
|
+
// Boolean variants
|
|
179
|
+
const booleanVariants = (0, cv_1.cv)({
|
|
180
|
+
base: 'btn',
|
|
181
|
+
variants: {
|
|
182
|
+
disabled: {
|
|
183
|
+
true: 'opacity-50 cursor-not-allowed',
|
|
184
|
+
false: 'cursor-pointer',
|
|
185
|
+
},
|
|
186
|
+
loading: {
|
|
187
|
+
true: 'animate-pulse pointer-events-none',
|
|
188
|
+
false: '',
|
|
189
|
+
},
|
|
190
|
+
fullWidth: {
|
|
191
|
+
true: 'w-full',
|
|
192
|
+
false: 'w-auto',
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
(0, vitest_1.bench)('boolean variants', () => {
|
|
197
|
+
booleanVariants({ disabled: true, loading: false, fullWidth: true });
|
|
198
|
+
});
|
|
199
|
+
// No variants (edge case)
|
|
200
|
+
const noVariants = (0, cv_1.cv)({
|
|
201
|
+
base: 'simple-class',
|
|
202
|
+
});
|
|
203
|
+
(0, vitest_1.bench)('no variants (optimized path)', () => {
|
|
204
|
+
noVariants({ className: 'extra' });
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=cv.bench.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cv.bench.js","sourceRoot":"","sources":["../../src/cv.bench.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/cv.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cv = void 0;
|
|
4
|
-
const merge_props_1 = require("./utils/merge-props");
|
|
5
4
|
const cx_1 = require("./cx");
|
|
5
|
+
const merge_props_1 = require("./utils/merge-props");
|
|
6
6
|
/**
|
|
7
7
|
* Creates a class variant function that combines base classes, variants, compound variants, and default variants.
|
|
8
8
|
*
|
|
@@ -40,8 +40,7 @@ const cv = (config) => {
|
|
|
40
40
|
return (props) => classNameResolver(base, props?.className);
|
|
41
41
|
}
|
|
42
42
|
return (props) => {
|
|
43
|
-
const
|
|
44
|
-
const mergedProps = defaultVariants ? (0, merge_props_1.mergeProps)(defaultVariants, rest) : rest;
|
|
43
|
+
const mergedProps = (0, merge_props_1.mergeProps)(defaultVariants, props, ['className']);
|
|
45
44
|
const classValues = [];
|
|
46
45
|
for (const key in mergedProps) {
|
|
47
46
|
const classValue = variants[key]?.[mergedProps[key]];
|
|
@@ -50,22 +49,25 @@ const cv = (config) => {
|
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
if (compoundVariants) {
|
|
53
|
-
for (
|
|
52
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
53
|
+
const compound = compoundVariants[i];
|
|
54
54
|
let matches = true;
|
|
55
|
-
for (const key in
|
|
56
|
-
|
|
55
|
+
for (const key in compound) {
|
|
56
|
+
if (key === 'className')
|
|
57
|
+
continue;
|
|
58
|
+
const value = compound[key];
|
|
57
59
|
const propValue = mergedProps[key];
|
|
58
60
|
if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
|
|
59
61
|
matches = false;
|
|
60
62
|
break;
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
|
-
if (matches) {
|
|
64
|
-
classValues.push(
|
|
65
|
+
if (matches && compound.className) {
|
|
66
|
+
classValues.push(compound.className);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
|
-
return classNameResolver(base, classValues, className);
|
|
70
|
+
return classNameResolver(base, classValues, props?.className);
|
|
69
71
|
};
|
|
70
72
|
};
|
|
71
73
|
exports.cv = cv;
|
package/dist/cjs/cv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cv.js","sourceRoot":"","sources":["../../src/cv.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"cv.js","sourceRoot":"","sources":["../../src/cv.ts"],"names":[],"mappings":";;;AACA,6BAAqC;AACrC,qDAAgD;AAwBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACI,MAAM,EAAE,GAA0B,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,GAAG,OAAE,EAAE,GAAG,MAAM,CAAA;IAE5F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,WAAW,GAAG,IAAA,wBAAU,EAAC,eAAe,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;QAErE,MAAM,WAAW,GAAiB,EAAE,CAAA;QAEpC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAW,CAAC,CAAA;YAC9D,IAAI,UAAU,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBACpC,IAAI,OAAO,GAAG,IAAI,CAAA;gBAClB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,GAAG,KAAK,WAAW;wBAAE,SAAQ;oBACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAA4B,CAAC,CAAA;oBACpD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;oBAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC5E,OAAO,GAAG,KAAK,CAAA;wBACf,MAAK;oBACP,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;oBAClC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAC/D,CAAC,CAAA;AACH,CAAC,CAAA;AAxCY,QAAA,EAAE,MAwCd;AAED,kBAAe,UAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|