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.
Files changed (48) hide show
  1. package/README.md +1298 -219
  2. package/dist/cjs/cv.bench.d.ts +1 -0
  3. package/dist/cjs/cv.bench.js +207 -0
  4. package/dist/cjs/cv.bench.js.map +1 -0
  5. package/dist/cjs/cv.js +11 -9
  6. package/dist/cjs/cv.js.map +1 -1
  7. package/dist/cjs/scv.bench.d.ts +1 -0
  8. package/dist/cjs/scv.bench.js +409 -0
  9. package/dist/cjs/scv.bench.js.map +1 -0
  10. package/dist/cjs/scv.js +13 -11
  11. package/dist/cjs/scv.js.map +1 -1
  12. package/dist/cjs/ssv.bench.d.ts +1 -0
  13. package/dist/cjs/ssv.bench.js +506 -0
  14. package/dist/cjs/ssv.bench.js.map +1 -0
  15. package/dist/cjs/ssv.js +14 -12
  16. package/dist/cjs/ssv.js.map +1 -1
  17. package/dist/cjs/sv.bench.d.ts +1 -0
  18. package/dist/cjs/sv.bench.js +264 -0
  19. package/dist/cjs/sv.bench.js.map +1 -0
  20. package/dist/cjs/sv.js +15 -10
  21. package/dist/cjs/sv.js.map +1 -1
  22. package/dist/cjs/utils/merge-props.d.ts +1 -1
  23. package/dist/cjs/utils/merge-props.js +8 -6
  24. package/dist/cjs/utils/merge-props.js.map +1 -1
  25. package/dist/esm/cv.bench.d.ts +1 -0
  26. package/dist/esm/cv.bench.js +205 -0
  27. package/dist/esm/cv.bench.js.map +1 -0
  28. package/dist/esm/cv.js +11 -9
  29. package/dist/esm/cv.js.map +1 -1
  30. package/dist/esm/scv.bench.d.ts +1 -0
  31. package/dist/esm/scv.bench.js +407 -0
  32. package/dist/esm/scv.bench.js.map +1 -0
  33. package/dist/esm/scv.js +13 -11
  34. package/dist/esm/scv.js.map +1 -1
  35. package/dist/esm/ssv.bench.d.ts +1 -0
  36. package/dist/esm/ssv.bench.js +504 -0
  37. package/dist/esm/ssv.bench.js.map +1 -0
  38. package/dist/esm/ssv.js +14 -12
  39. package/dist/esm/ssv.js.map +1 -1
  40. package/dist/esm/sv.bench.d.ts +1 -0
  41. package/dist/esm/sv.bench.js +262 -0
  42. package/dist/esm/sv.bench.js.map +1 -0
  43. package/dist/esm/sv.js +15 -10
  44. package/dist/esm/sv.js.map +1 -1
  45. package/dist/esm/utils/merge-props.d.ts +1 -1
  46. package/dist/esm/utils/merge-props.js +8 -6
  47. package/dist/esm/utils/merge-props.js.map +1 -1
  48. package/package.json +3 -3
@@ -0,0 +1,504 @@
1
+ import { bench, describe } from 'vitest';
2
+ import { ssv } from './ssv';
3
+ describe('ssv benchmarks', () => {
4
+ // Simple base styles only
5
+ const simpleVariant = ssv({
6
+ slots: ['root', 'content'],
7
+ base: {
8
+ root: { display: 'flex', flexDirection: 'column' },
9
+ content: { padding: '16px' },
10
+ },
11
+ });
12
+ bench('base styles only', () => {
13
+ simpleVariant();
14
+ });
15
+ // Single variant with two slots
16
+ const singleVariant = ssv({
17
+ slots: ['root', 'icon'],
18
+ base: {
19
+ root: { display: 'inline-flex', alignItems: 'center' },
20
+ icon: { marginRight: '8px' },
21
+ },
22
+ variants: {
23
+ color: {
24
+ primary: {
25
+ root: { color: 'white', backgroundColor: '#1976d2' },
26
+ icon: { color: 'white' },
27
+ },
28
+ secondary: {
29
+ root: { color: 'white', backgroundColor: '#757575' },
30
+ icon: { color: 'white' },
31
+ },
32
+ },
33
+ },
34
+ });
35
+ bench('single variant (2 slots)', () => {
36
+ singleVariant({ color: 'primary' });
37
+ });
38
+ // Multiple slots (realistic component)
39
+ const multipleSlots = ssv({
40
+ slots: ['root', 'header', 'body', 'footer'],
41
+ base: {
42
+ root: {
43
+ display: 'flex',
44
+ flexDirection: 'column',
45
+ borderRadius: '8px',
46
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
47
+ },
48
+ header: { padding: '16px', borderBottom: '1px solid #e0e0e0' },
49
+ body: { padding: '16px', flex: '1' },
50
+ footer: { padding: '16px', borderTop: '1px solid #e0e0e0' },
51
+ },
52
+ variants: {
53
+ size: {
54
+ sm: {
55
+ header: { padding: '8px', fontSize: '12px' },
56
+ body: { padding: '8px' },
57
+ footer: { padding: '8px', fontSize: '10px' },
58
+ },
59
+ md: {
60
+ header: { padding: '16px', fontSize: '14px' },
61
+ body: { padding: '16px' },
62
+ footer: { padding: '16px', fontSize: '12px' },
63
+ },
64
+ lg: {
65
+ header: { padding: '24px', fontSize: '16px' },
66
+ body: { padding: '24px' },
67
+ footer: { padding: '24px', fontSize: '14px' },
68
+ },
69
+ },
70
+ },
71
+ });
72
+ bench('multiple slots (4 slots)', () => {
73
+ multipleSlots({ size: 'md' });
74
+ });
75
+ // Multiple variants across multiple slots
76
+ const multipleVariants = ssv({
77
+ slots: ['root', 'title', 'description', 'icon'],
78
+ base: {
79
+ root: {
80
+ display: 'flex',
81
+ alignItems: 'flex-start',
82
+ gap: '12px',
83
+ borderRadius: '8px',
84
+ border: '1px solid',
85
+ padding: '16px',
86
+ },
87
+ title: { fontWeight: '600', margin: '0' },
88
+ description: { fontSize: '14px', margin: '4px 0 0 0' },
89
+ icon: { flexShrink: 0 },
90
+ },
91
+ variants: {
92
+ variant: {
93
+ info: {
94
+ root: { backgroundColor: '#e3f2fd', borderColor: '#90caf9' },
95
+ title: { color: '#0d47a1' },
96
+ description: { color: '#1565c0' },
97
+ icon: { color: '#1976d2' },
98
+ },
99
+ success: {
100
+ root: { backgroundColor: '#e8f5e9', borderColor: '#a5d6a7' },
101
+ title: { color: '#1b5e20' },
102
+ description: { color: '#2e7d32' },
103
+ icon: { color: '#388e3c' },
104
+ },
105
+ warning: {
106
+ root: { backgroundColor: '#fff3e0', borderColor: '#ffcc80' },
107
+ title: { color: '#e65100' },
108
+ description: { color: '#ef6c00' },
109
+ icon: { color: '#f57c00' },
110
+ },
111
+ error: {
112
+ root: { backgroundColor: '#ffebee', borderColor: '#ef9a9a' },
113
+ title: { color: '#b71c1c' },
114
+ description: { color: '#c62828' },
115
+ icon: { color: '#d32f2f' },
116
+ },
117
+ },
118
+ size: {
119
+ sm: {
120
+ root: { padding: '12px' },
121
+ title: { fontSize: '14px' },
122
+ description: { fontSize: '12px' },
123
+ icon: { width: '16px', height: '16px' },
124
+ },
125
+ md: {
126
+ root: { padding: '16px' },
127
+ title: { fontSize: '16px' },
128
+ description: { fontSize: '14px' },
129
+ icon: { width: '20px', height: '20px' },
130
+ },
131
+ },
132
+ },
133
+ });
134
+ bench('multiple variants (4 slots)', () => {
135
+ multipleVariants({ variant: 'info', size: 'md' });
136
+ });
137
+ // With default variants
138
+ const withDefaults = ssv({
139
+ slots: ['root', 'label', 'input'],
140
+ base: {
141
+ root: { display: 'flex', flexDirection: 'column', gap: '8px' },
142
+ label: { fontSize: '14px', fontWeight: '500' },
143
+ input: { border: '1px solid #ccc', borderRadius: '4px' },
144
+ },
145
+ variants: {
146
+ size: {
147
+ sm: {
148
+ label: { fontSize: '12px' },
149
+ input: { padding: '4px 8px', fontSize: '12px' },
150
+ },
151
+ md: {
152
+ label: { fontSize: '14px' },
153
+ input: { padding: '8px 12px', fontSize: '14px' },
154
+ },
155
+ lg: {
156
+ label: { fontSize: '16px' },
157
+ input: { padding: '12px 16px', fontSize: '16px' },
158
+ },
159
+ },
160
+ variant: {
161
+ outlined: {
162
+ input: { border: '2px solid', borderRadius: '4px' },
163
+ },
164
+ filled: {
165
+ input: { backgroundColor: '#f5f5f5', border: '0' },
166
+ },
167
+ },
168
+ },
169
+ defaultVariants: {
170
+ size: 'md',
171
+ variant: 'outlined',
172
+ },
173
+ });
174
+ bench('with default variants (no props)', () => {
175
+ withDefaults();
176
+ });
177
+ bench('with default variants (override one)', () => {
178
+ withDefaults({ size: 'lg' });
179
+ });
180
+ // Compound variants
181
+ const withCompoundVariants = ssv({
182
+ slots: ['root', 'content', 'icon'],
183
+ base: {
184
+ root: {
185
+ display: 'inline-flex',
186
+ alignItems: 'center',
187
+ gap: '8px',
188
+ borderRadius: '4px',
189
+ transition: 'all 0.2s',
190
+ },
191
+ content: { fontWeight: '500' },
192
+ icon: { display: 'flex' },
193
+ },
194
+ variants: {
195
+ color: {
196
+ primary: {
197
+ root: { backgroundColor: '#1976d2', color: 'white' },
198
+ icon: { color: 'white' },
199
+ },
200
+ secondary: {
201
+ root: { backgroundColor: '#757575', color: 'white' },
202
+ icon: { color: 'white' },
203
+ },
204
+ danger: {
205
+ root: { backgroundColor: '#d32f2f', color: 'white' },
206
+ icon: { color: 'white' },
207
+ },
208
+ },
209
+ size: {
210
+ sm: {
211
+ root: { padding: '4px 8px' },
212
+ content: { fontSize: '12px' },
213
+ icon: { width: '12px', height: '12px' },
214
+ },
215
+ md: {
216
+ root: { padding: '8px 16px' },
217
+ content: { fontSize: '14px' },
218
+ icon: { width: '16px', height: '16px' },
219
+ },
220
+ lg: {
221
+ root: { padding: '12px 24px' },
222
+ content: { fontSize: '16px' },
223
+ icon: { width: '20px', height: '20px' },
224
+ },
225
+ },
226
+ disabled: {
227
+ true: {
228
+ root: { opacity: 0.5, cursor: 'not-allowed' },
229
+ },
230
+ false: {
231
+ root: { cursor: 'pointer' },
232
+ },
233
+ },
234
+ },
235
+ compoundVariants: [
236
+ {
237
+ size: 'lg',
238
+ color: 'primary',
239
+ styles: {
240
+ root: { fontWeight: '700', boxShadow: '0 4px 6px rgba(0,0,0,0.1)' },
241
+ content: { letterSpacing: '0.5px' },
242
+ },
243
+ },
244
+ {
245
+ size: ['sm', 'md'],
246
+ color: 'danger',
247
+ styles: {
248
+ root: { fontWeight: '600' },
249
+ },
250
+ },
251
+ {
252
+ disabled: true,
253
+ color: ['primary', 'secondary', 'danger'],
254
+ styles: {
255
+ root: { pointerEvents: 'none' },
256
+ },
257
+ },
258
+ ],
259
+ });
260
+ bench('compound variants (no match)', () => {
261
+ withCompoundVariants({ color: 'secondary', size: 'sm', disabled: false });
262
+ });
263
+ bench('compound variants (single match)', () => {
264
+ withCompoundVariants({ color: 'primary', size: 'lg', disabled: false });
265
+ });
266
+ bench('compound variants (multiple matches)', () => {
267
+ withCompoundVariants({ color: 'danger', size: 'sm', disabled: true });
268
+ });
269
+ // With styles override
270
+ const withStylesOverride = ssv({
271
+ slots: ['root', 'inner'],
272
+ base: {
273
+ root: { display: 'flex' },
274
+ inner: { padding: '16px' },
275
+ },
276
+ variants: {
277
+ centered: {
278
+ true: {
279
+ root: { justifyContent: 'center', margin: '0 auto' },
280
+ inner: { textAlign: 'center' },
281
+ },
282
+ },
283
+ },
284
+ });
285
+ bench('with styles override', () => {
286
+ withStylesOverride({
287
+ centered: true,
288
+ styles: {
289
+ root: { width: '100%', maxWidth: '1200px' },
290
+ inner: { backgroundColor: '#f5f5f5' },
291
+ },
292
+ });
293
+ });
294
+ // Complex real-world modal component
295
+ const complexModal = ssv({
296
+ slots: ['overlay', 'container', 'header', 'title', 'close', 'content', 'footer', 'actions'],
297
+ base: {
298
+ overlay: {
299
+ position: 'fixed',
300
+ inset: '0',
301
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
302
+ display: 'flex',
303
+ alignItems: 'center',
304
+ justifyContent: 'center',
305
+ zIndex: 1000,
306
+ },
307
+ container: {
308
+ backgroundColor: 'white',
309
+ borderRadius: '8px',
310
+ boxShadow: '0 10px 25px rgba(0,0,0,0.1)',
311
+ position: 'relative',
312
+ maxHeight: '90vh',
313
+ overflow: 'auto',
314
+ },
315
+ header: {
316
+ padding: '24px',
317
+ borderBottom: '1px solid #e0e0e0',
318
+ display: 'flex',
319
+ alignItems: 'center',
320
+ justifyContent: 'space-between',
321
+ },
322
+ title: {
323
+ fontSize: '20px',
324
+ fontWeight: '600',
325
+ margin: '0',
326
+ },
327
+ close: {
328
+ cursor: 'pointer',
329
+ border: 'none',
330
+ backgroundColor: 'transparent',
331
+ },
332
+ content: {
333
+ padding: '24px',
334
+ },
335
+ footer: {
336
+ padding: '24px',
337
+ borderTop: '1px solid #e0e0e0',
338
+ display: 'flex',
339
+ justifyContent: 'flex-end',
340
+ },
341
+ actions: {
342
+ display: 'flex',
343
+ gap: '8px',
344
+ },
345
+ },
346
+ variants: {
347
+ size: {
348
+ sm: {
349
+ container: { width: '400px' },
350
+ header: { padding: '16px' },
351
+ title: { fontSize: '16px' },
352
+ content: { padding: '16px' },
353
+ footer: { padding: '16px' },
354
+ },
355
+ md: {
356
+ container: { width: '600px' },
357
+ },
358
+ lg: {
359
+ container: { width: '800px' },
360
+ header: { padding: '32px' },
361
+ title: { fontSize: '24px' },
362
+ content: { padding: '32px' },
363
+ footer: { padding: '32px' },
364
+ },
365
+ full: {
366
+ container: { width: '95vw', maxWidth: '1200px' },
367
+ },
368
+ },
369
+ centered: {
370
+ true: {
371
+ content: { textAlign: 'center' },
372
+ },
373
+ },
374
+ },
375
+ compoundVariants: [
376
+ {
377
+ size: 'lg',
378
+ centered: true,
379
+ styles: {
380
+ title: { textAlign: 'center', width: '100%' },
381
+ header: { flexDirection: 'column', gap: '16px' },
382
+ },
383
+ },
384
+ ],
385
+ defaultVariants: {
386
+ size: 'md',
387
+ },
388
+ });
389
+ bench('complex real-world modal (defaults)', () => {
390
+ complexModal();
391
+ });
392
+ bench('complex real-world modal (with overrides)', () => {
393
+ complexModal({
394
+ size: 'lg',
395
+ centered: true,
396
+ styles: { overlay: { backdropFilter: 'blur(4px)' } },
397
+ });
398
+ });
399
+ // Many slots (stress test)
400
+ const manySlots = ssv({
401
+ slots: ['slot1', 'slot2', 'slot3', 'slot4', 'slot5', 'slot6', 'slot7', 'slot8'],
402
+ base: {
403
+ slot1: { display: 'flex', padding: '8px' },
404
+ slot2: { display: 'block', margin: '4px' },
405
+ slot3: { fontSize: '14px', color: '#333' },
406
+ slot4: { fontWeight: '500' },
407
+ slot5: { borderRadius: '4px' },
408
+ slot6: { backgroundColor: '#f5f5f5' },
409
+ slot7: { border: '1px solid #ccc' },
410
+ slot8: { boxShadow: '0 2px 4px rgba(0,0,0,0.1)' },
411
+ },
412
+ variants: {
413
+ theme: {
414
+ light: {
415
+ slot1: { backgroundColor: 'white', color: 'black' },
416
+ slot2: { backgroundColor: '#f9f9f9' },
417
+ slot3: { color: '#666' },
418
+ slot6: { backgroundColor: '#f5f5f5' },
419
+ slot7: { borderColor: '#e0e0e0' },
420
+ },
421
+ dark: {
422
+ slot1: { backgroundColor: '#1a1a1a', color: 'white' },
423
+ slot2: { backgroundColor: '#2a2a2a' },
424
+ slot3: { color: '#aaa' },
425
+ slot6: { backgroundColor: '#333' },
426
+ slot7: { borderColor: '#444' },
427
+ },
428
+ },
429
+ },
430
+ });
431
+ bench('many slots (8 slots)', () => {
432
+ manySlots({ theme: 'dark' });
433
+ });
434
+ // No variants (edge case)
435
+ const noVariants = ssv({
436
+ slots: ['root', 'content'],
437
+ base: {
438
+ root: { display: 'flex' },
439
+ content: { padding: '16px' },
440
+ },
441
+ });
442
+ bench('no variants (optimized path)', () => {
443
+ noVariants({ styles: { root: { margin: '10px' } } });
444
+ });
445
+ // Many CSS properties per slot (stress test)
446
+ const manyProperties = ssv({
447
+ slots: ['root', 'content'],
448
+ base: {
449
+ root: {
450
+ display: 'flex',
451
+ flexDirection: 'column',
452
+ alignItems: 'center',
453
+ justifyContent: 'center',
454
+ padding: '16px',
455
+ margin: '8px',
456
+ borderRadius: '8px',
457
+ backgroundColor: '#ffffff',
458
+ color: '#000000',
459
+ fontSize: '14px',
460
+ fontWeight: '400',
461
+ lineHeight: '1.5',
462
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
463
+ transition: 'all 0.3s ease',
464
+ border: '1px solid #e0e0e0',
465
+ cursor: 'pointer',
466
+ },
467
+ content: {
468
+ width: '100%',
469
+ minHeight: '100px',
470
+ overflow: 'auto',
471
+ whiteSpace: 'pre-wrap',
472
+ wordBreak: 'break-word',
473
+ },
474
+ },
475
+ variants: {
476
+ theme: {
477
+ light: {
478
+ root: {
479
+ backgroundColor: '#ffffff',
480
+ color: '#000000',
481
+ borderColor: '#e0e0e0',
482
+ },
483
+ content: {
484
+ backgroundColor: '#f9f9f9',
485
+ },
486
+ },
487
+ dark: {
488
+ root: {
489
+ backgroundColor: '#1a1a1a',
490
+ color: '#ffffff',
491
+ borderColor: '#333333',
492
+ },
493
+ content: {
494
+ backgroundColor: '#2a2a2a',
495
+ },
496
+ },
497
+ },
498
+ },
499
+ });
500
+ bench('many CSS properties per slot', () => {
501
+ manyProperties({ theme: 'dark' });
502
+ });
503
+ });
504
+ //# sourceMappingURL=ssv.bench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssv.bench.js","sourceRoot":"","sources":["../../src/ssv.bench.ts"],"names":[],"mappings":"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"}
package/dist/esm/ssv.js CHANGED
@@ -44,8 +44,7 @@ export const ssv = (config) => {
44
44
  };
45
45
  }
46
46
  return (props) => {
47
- const { styles, ...rest } = props ?? {};
48
- const mergedProps = defaultVariants ? mergeProps(defaultVariants, rest) : rest;
47
+ const mergedProps = mergeProps(defaultVariants, props, ['styles']);
49
48
  const result = {};
50
49
  for (const slot of slots) {
51
50
  result[slot] = { ...base?.[slot] };
@@ -54,31 +53,34 @@ export const ssv = (config) => {
54
53
  const slotStyle = variants[key]?.[mergedProps[key]];
55
54
  if (slotStyle) {
56
55
  for (const slot in slotStyle) {
57
- result[slot] = { ...result[slot], ...slotStyle[slot] };
56
+ Object.assign(result[slot], slotStyle[slot]);
58
57
  }
59
58
  }
60
59
  }
61
60
  if (compoundVariants) {
62
- for (const { styles: slotStyle, ...compoundVariant } of compoundVariants) {
61
+ for (let i = 0; i < compoundVariants.length; i++) {
62
+ const compound = compoundVariants[i];
63
63
  let matches = true;
64
- for (const key in compoundVariant) {
65
- const value = compoundVariant[key];
64
+ for (const key in compound) {
65
+ if (key === 'styles')
66
+ continue;
67
+ const value = compound[key];
66
68
  const propValue = mergedProps[key];
67
69
  if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
68
70
  matches = false;
69
71
  break;
70
72
  }
71
73
  }
72
- if (matches) {
73
- for (const slot in slotStyle) {
74
- result[slot] = { ...result[slot], ...slotStyle[slot] };
74
+ if (matches && compound.styles) {
75
+ for (const slot in compound.styles) {
76
+ Object.assign(result[slot], compound.styles[slot]);
75
77
  }
76
78
  }
77
79
  }
78
80
  }
79
- if (styles) {
80
- for (const slot in styles) {
81
- result[slot] = { ...result[slot], ...styles[slot] };
81
+ if (props?.styles) {
82
+ for (const slot in props.styles) {
83
+ Object.assign(result[slot], props.styles[slot]);
82
84
  }
83
85
  }
84
86
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"ssv.js","sourceRoot":"","sources":["../../src/ssv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssv.js","sourceRoot":"","sources":["../../src/ssv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};