css-variants 2.1.2 → 2.2.1
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 +46 -321
- package/dist/cjs/cv.js +11 -9
- package/dist/cjs/cv.js.map +1 -1
- package/dist/cjs/cx.js +2 -1
- package/dist/cjs/cx.js.map +1 -1
- package/dist/cjs/scv.js +13 -11
- package/dist/cjs/scv.js.map +1 -1
- package/dist/cjs/ssv.js +14 -12
- package/dist/cjs/ssv.js.map +1 -1
- 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.js +11 -9
- package/dist/esm/cv.js.map +1 -1
- package/dist/esm/cx.js +2 -1
- package/dist/esm/cx.js.map +1 -1
- package/dist/esm/scv.js +13 -11
- package/dist/esm/scv.js.map +1 -1
- package/dist/esm/ssv.js +14 -12
- package/dist/esm/ssv.js.map +1 -1
- 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 +16 -12
package/README.md
CHANGED
|
@@ -1,366 +1,91 @@
|
|
|
1
|
-
|
|
2
|
-
[](https://github.com/timphandev/css-variants/blob/main/LICENSE)
|
|
3
|
-
[](https://npmjs.com/package/css-variants)
|
|
4
|
-

|
|
1
|
+
# css-variants
|
|
5
2
|
|
|
6
|
-
|
|
3
|
+
> **Zero-dependency, type-safe CSS variant composition for modern JavaScript**
|
|
7
4
|
|
|
8
|
-
|
|
5
|
+
Build powerful, flexible component style systems with variants. Perfect for Tailwind CSS, vanilla CSS, or any CSS-in-JS solution.
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
[](https://github.com/timphandev/css-variants/actions/workflows/ci.yml)
|
|
8
|
+
[](https://www.npmjs.com/package/css-variants)
|
|
9
|
+
[](https://bundlephobia.com/package/css-variants)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
[](https://opensource.org/licenses/MIT)
|
|
12
|
+
[](https://github.com/timphandev/css-variants)
|
|
13
13
|
|
|
14
14
|
## Features
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
🧩 **Variants & compound rules** — Simple `variants` maps plus `compoundVariants` for combination rules (e.g., size + color).
|
|
23
|
-
|
|
24
|
-
🧭 **Slot support** — `scv` / `ssv` manage multiple named slots with per-slot `base`, `variants`, and overrides.
|
|
25
|
-
|
|
26
|
-
⚙️ **Flexible resolver** — Default `cx`, with an option to pass a custom `classNameResolver` (recommended: `twMerge(cx(...))`).
|
|
27
|
-
|
|
28
|
-
⚡ **Performance & tree-shaking** — Minimal runtime and tree-shakeable code paths for small bundles.
|
|
29
|
-
|
|
30
|
-
🧪 **Developer ergonomics** — Colocated `*.test.ts` (Vitest), clear build scripts (`yarn build`) and linting (`yarn lint`).
|
|
31
|
-
|
|
32
|
-
Use cases: design-system components, Tailwind + component libraries, SSR-friendly UI primitives.
|
|
16
|
+
- ⚡ **Tiny & Fast** — Zero dependencies, ~1KB minified+gzipped
|
|
17
|
+
- 🔒 **Type-Safe** — First-class TypeScript support with complete type inference
|
|
18
|
+
- 🧩 **Flexible** — Works with Tailwind, CSS modules, vanilla CSS, or inline styles
|
|
19
|
+
- 👨💻 **Developer-Friendly** — Intuitive API inspired by CVA and Panda CSS
|
|
20
|
+
- 🚀 **Production-Ready** — Battle-tested, fully tested, dual CJS/ESM builds
|
|
33
21
|
|
|
34
22
|
## Installation
|
|
35
23
|
|
|
36
|
-
Install with your preferred package manager:
|
|
37
|
-
|
|
38
24
|
```bash
|
|
39
|
-
# npm
|
|
40
25
|
npm install css-variants
|
|
41
|
-
|
|
42
|
-
# yarn
|
|
26
|
+
# or
|
|
43
27
|
yarn add css-variants
|
|
44
|
-
|
|
45
|
-
# pnpm
|
|
28
|
+
# or
|
|
46
29
|
pnpm add css-variants
|
|
47
30
|
```
|
|
48
31
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
// ESM
|
|
53
|
-
import { cv, scv, cx } from 'css-variants'
|
|
54
|
-
|
|
55
|
-
// CJS
|
|
56
|
-
const { cv, scv, cx } = require('css-variants')
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## Core Utilities
|
|
60
|
-
|
|
61
|
-
Quick reference for the main exports. Each utility has full examples below.
|
|
62
|
-
|
|
63
|
-
- 🧩 [`cv`](#cv---class-variants) — Class Variants (single element)
|
|
64
|
-
- Use to compose class names for one element. Supports `base`, `variants`, `compoundVariants`, and `defaultVariants`.
|
|
65
|
-
- Quick: `const btn = cv({ base: 'btn', variants: { size: { sm: 'p-2', lg: 'p-4' } } })`
|
|
66
|
-
|
|
67
|
-
- 🎨 [`sv`](#sv---style-variants) — Style Variants (single element)
|
|
68
|
-
- Compose inline style objects similarly to `cv` but returning CSS props.
|
|
69
|
-
- Quick: `const s = sv({ base: { display: 'flex' }, variants: { size: { sm: { gap: '4px' } } } })`
|
|
70
|
-
|
|
71
|
-
- 🧰 [`scv`](#scv-slot-class-variants) — Slot Class Variants (multi-slot)
|
|
72
|
-
- Manage class names across named slots (`slots: ['root','title']`) with per-slot `base`, `variants`, and `classNames` overrides.
|
|
73
|
-
- Quick: `const card = scv({ slots: ['root','title'], base: { root: 'card' } })`
|
|
74
|
-
|
|
75
|
-
- 🧾 [`ssv`](#ssv---slot-style-variants) — Slot Style Variants (multi-slot styles)
|
|
76
|
-
- Same as `scv` but composes inline style objects per slot.
|
|
77
|
-
|
|
78
|
-
- ⚙️ [`cx`](#cx---class-merger) — Class merger
|
|
79
|
-
- Small, typed `clsx`-like utility used as the default `classNameResolver`.
|
|
80
|
-
- Quick: `cx('a', { b: true }, ['c']) // => 'a b c'`
|
|
81
|
-
|
|
82
|
-
### [cv](./src/cv.ts) - Class Variants
|
|
83
|
-
Compose class names for a single element. Config keys: `base`, `variants`, `defaultVariants`, `compoundVariants`, and optional `classNameResolver` (defaults to `cx`).
|
|
84
|
-
`cv` returns a typed function you call with variant props (and optional `className`) to get the final class string.
|
|
32
|
+
## Quick Example
|
|
85
33
|
|
|
86
|
-
```
|
|
34
|
+
```typescript
|
|
87
35
|
import { cv } from 'css-variants'
|
|
88
36
|
|
|
89
37
|
const button = cv({
|
|
90
|
-
base: 'font-
|
|
38
|
+
base: 'font-semibold rounded-lg transition-colors',
|
|
91
39
|
variants: {
|
|
92
40
|
color: {
|
|
93
|
-
primary: 'bg-blue-
|
|
94
|
-
secondary: 'bg-gray-
|
|
41
|
+
primary: 'bg-blue-600 text-white hover:bg-blue-700',
|
|
42
|
+
secondary: 'bg-gray-200 text-gray-900 hover:bg-gray-300',
|
|
95
43
|
},
|
|
96
44
|
size: {
|
|
97
|
-
sm: '
|
|
98
|
-
|
|
99
|
-
|
|
45
|
+
sm: 'px-3 py-1.5 text-sm',
|
|
46
|
+
md: 'px-4 py-2 text-base',
|
|
47
|
+
lg: 'px-6 py-3 text-lg',
|
|
48
|
+
},
|
|
100
49
|
},
|
|
101
|
-
compoundVariants: [
|
|
102
|
-
{
|
|
103
|
-
color: 'primary',
|
|
104
|
-
size: 'lg',
|
|
105
|
-
className: 'uppercase'
|
|
106
|
-
}
|
|
107
|
-
],
|
|
108
50
|
defaultVariants: {
|
|
109
51
|
color: 'primary',
|
|
110
|
-
size: '
|
|
111
|
-
}
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
// Usage
|
|
115
|
-
button() // => 'font-bold rounded-lg bg-blue-500 text-white text-sm px-2 py-1'
|
|
116
|
-
|
|
117
|
-
button({ size: 'lg' }) // => 'font-bold rounded-lg bg-blue-500 text-white text-lg px-4 py-2 uppercase'
|
|
118
|
-
|
|
119
|
-
button({ size: 'lg', className: 'custom' }) // => 'font-bold rounded-lg bg-blue-500 text-white text-lg px-4 py-2 uppercase custom'
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### [sv](./src/sv.ts) - Style Variants
|
|
123
|
-
|
|
124
|
-
Compose inline style objects for a single element. Config keys: `base`, `variants`, `defaultVariants`, and `compoundVariants`.
|
|
125
|
-
`sv` returns a typed function that accepts variant props and an optional `style` object which is shallow-merged into the result.
|
|
126
|
-
|
|
127
|
-
```ts
|
|
128
|
-
import { sv } from 'css-variants'
|
|
129
|
-
|
|
130
|
-
const button = sv({
|
|
131
|
-
base: {
|
|
132
|
-
fontWeight: 'bold',
|
|
133
|
-
borderRadius: '8px'
|
|
134
|
-
},
|
|
135
|
-
variants: {
|
|
136
|
-
color: {
|
|
137
|
-
primary: {
|
|
138
|
-
backgroundColor: 'blue',
|
|
139
|
-
color: 'white'
|
|
140
|
-
},
|
|
141
|
-
secondary: {
|
|
142
|
-
backgroundColor: 'gray',
|
|
143
|
-
color: 'white'
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
})
|
|
148
|
-
|
|
149
|
-
// Usage
|
|
150
|
-
button({ color: 'primary' })
|
|
151
|
-
// => { fontWeight: 'bold', borderRadius: '8px', backgroundColor: 'blue', color: 'white' }
|
|
152
|
-
|
|
153
|
-
button({
|
|
154
|
-
color: 'secondary',
|
|
155
|
-
style: { padding: '4px' },
|
|
156
|
-
})
|
|
157
|
-
// => { fontWeight: 'bold', borderRadius: '8px', backgroundColor: 'gray', color: 'white', padding: '4px' }
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### [scv](./src/scv.ts) - Slot Class Variants
|
|
161
|
-
|
|
162
|
-
Compose and merge class names across named slots.
|
|
163
|
-
`scv` accepts `slots` plus per-slot `base`, `variants`, `compoundVariants`,
|
|
164
|
-
and runtime `classNames` overrides, and returns an object mapping each slot to
|
|
165
|
-
its final merged class string. Ideal for components with multiple sub-elements
|
|
166
|
-
(for example: `root`, `title`, `content`).
|
|
167
|
-
|
|
168
|
-
```ts
|
|
169
|
-
import { scv } from 'css-variants'
|
|
170
|
-
|
|
171
|
-
const card = scv({
|
|
172
|
-
slots: ['root', 'title', 'content'],
|
|
173
|
-
base: {
|
|
174
|
-
root: 'rounded-lg shadow',
|
|
175
|
-
title: 'text-xl font-bold',
|
|
176
|
-
content: 'mt-2'
|
|
177
|
-
},
|
|
178
|
-
variants: {
|
|
179
|
-
size: {
|
|
180
|
-
sm: {
|
|
181
|
-
root: 'p-4',
|
|
182
|
-
title: 'text-base'
|
|
183
|
-
},
|
|
184
|
-
lg: {
|
|
185
|
-
root: 'p-6',
|
|
186
|
-
title: 'text-2xl'
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
})
|
|
191
|
-
|
|
192
|
-
// Usage
|
|
193
|
-
card({ size: 'sm' })
|
|
194
|
-
// => {
|
|
195
|
-
// root: 'rounded-lg shadow p-4',
|
|
196
|
-
// title: 'text-xl font-bold text-base',
|
|
197
|
-
// content: 'mt-2'
|
|
198
|
-
// }
|
|
199
|
-
|
|
200
|
-
card({
|
|
201
|
-
size: 'lg',
|
|
202
|
-
classNames: {
|
|
203
|
-
content: 'custom',
|
|
204
|
-
},
|
|
205
|
-
})
|
|
206
|
-
// => {
|
|
207
|
-
// root: 'rounded-lg shadow p-6',
|
|
208
|
-
// title: 'text-xl font-bold text-2xl',
|
|
209
|
-
// content: 'mt-2 custom'
|
|
210
|
-
// }
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### [ssv](./src/ssv.ts) - Slot Style Variants
|
|
214
|
-
|
|
215
|
-
Compose and merge inline style objects across named slots.
|
|
216
|
-
`ssv` accepts `slots` plus per-slot `base`, `variants`, `compoundVariants`,
|
|
217
|
-
and runtime `styles` overrides, and returns an object mapping each slot to
|
|
218
|
-
its final merged style. Useful for components with multiple styled
|
|
219
|
-
sub-elements (for example: `root`, `title`, `content`).
|
|
220
|
-
|
|
221
|
-
```ts
|
|
222
|
-
import { ssv } from 'css-variants'
|
|
223
|
-
|
|
224
|
-
const card = ssv({
|
|
225
|
-
slots: ['root', 'title'],
|
|
226
|
-
base: {
|
|
227
|
-
root: { padding: '1rem' },
|
|
228
|
-
title: { fontWeight: 'bold' }
|
|
52
|
+
size: 'md',
|
|
229
53
|
},
|
|
230
|
-
variants: {
|
|
231
|
-
size: {
|
|
232
|
-
sm: {
|
|
233
|
-
root: { maxWidth: '300px' },
|
|
234
|
-
title: { fontSize: '14px' }
|
|
235
|
-
},
|
|
236
|
-
lg: {
|
|
237
|
-
root: { maxWidth: '600px' },
|
|
238
|
-
title: { fontSize: '18px' }
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
54
|
})
|
|
243
55
|
|
|
244
|
-
//
|
|
245
|
-
|
|
246
|
-
// => {
|
|
247
|
-
// root: { padding: '1rem', maxWidth: '300px' },
|
|
248
|
-
// title: { fontWeight: 'bold', fontSize: '14px' }
|
|
249
|
-
// }
|
|
250
|
-
|
|
251
|
-
card({
|
|
252
|
-
size: 'lg',
|
|
253
|
-
styles: {
|
|
254
|
-
title: {
|
|
255
|
-
color: 'red',
|
|
256
|
-
},
|
|
257
|
-
},
|
|
258
|
-
})
|
|
259
|
-
// => {
|
|
260
|
-
// root: { padding: '1rem', maxWidth: '600px' },
|
|
261
|
-
// title: { fontWeight: 'bold', fontSize: '18px', color: 'red' }
|
|
262
|
-
// }
|
|
56
|
+
button() // => 'font-semibold rounded-lg ... bg-blue-600 text-white ... px-4 py-2 text-base'
|
|
57
|
+
button({ color: 'secondary', size: 'lg' }) // => '... bg-gray-200 text-gray-900 ... px-6 py-3 text-lg'
|
|
263
58
|
```
|
|
264
59
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
Similar to `clsx/classnames` but with better TypeScript support.
|
|
268
|
-
|
|
269
|
-
```tsx
|
|
270
|
-
import { cx } from 'css-variants'
|
|
271
|
-
|
|
272
|
-
// Basic usage
|
|
273
|
-
cx('foo', 'bar') // => 'foo bar'
|
|
274
|
-
|
|
275
|
-
// With conditions
|
|
276
|
-
cx('foo', {
|
|
277
|
-
'bar': true,
|
|
278
|
-
'baz': false
|
|
279
|
-
}) // => 'foo bar'
|
|
280
|
-
|
|
281
|
-
// With arrays
|
|
282
|
-
cx('foo', ['bar', 'baz']) // => 'foo bar baz'
|
|
283
|
-
|
|
284
|
-
// With nested structures
|
|
285
|
-
cx('foo', {
|
|
286
|
-
bar: true,
|
|
287
|
-
baz: [
|
|
288
|
-
'qux',
|
|
289
|
-
{ quux: true }
|
|
290
|
-
]
|
|
291
|
-
}) // => 'foo bar qux quux'
|
|
60
|
+
## Documentation
|
|
292
61
|
|
|
293
|
-
|
|
294
|
-
cx('foo', null, undefined, false, 0, '') // => 'foo'
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## Tailwind Integration (tw-merge)
|
|
298
|
-
|
|
299
|
-
Use a resolver that combines `cx` with `tw-merge` to properly merge Tailwind classes
|
|
300
|
-
and let `tw-merge` remove conflicting utility classes (recommended for Tailwind users).
|
|
301
|
-
|
|
302
|
-
```ts
|
|
303
|
-
import { cv, cx } from 'css-variants'
|
|
304
|
-
import { twMerge } from 'tailwind-merge'
|
|
305
|
-
|
|
306
|
-
const button = cv({
|
|
307
|
-
base: 'btn',
|
|
308
|
-
variants: {
|
|
309
|
-
color: {
|
|
310
|
-
primary: 'bg-blue-500',
|
|
311
|
-
danger: 'bg-red-500'
|
|
312
|
-
}
|
|
313
|
-
},
|
|
314
|
-
// recommended resolver: compose `cx` then `twMerge`
|
|
315
|
-
classNameResolver: (...args) => twMerge(cx(...args))
|
|
316
|
-
})
|
|
317
|
-
|
|
318
|
-
// Later classes and conflicting utilities are resolved by `tw-merge`:
|
|
319
|
-
button({ color: 'primary', className: 'bg-red-600' })
|
|
320
|
-
// => 'btn bg-red-600' (tw-merge will prefer the later `bg-red-600` value)
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
## TypeScript Support
|
|
324
|
-
|
|
325
|
-
Full TypeScript support with automatic type inference:
|
|
326
|
-
|
|
327
|
-
```ts
|
|
328
|
-
import { cv } from 'css-variants'
|
|
329
|
-
|
|
330
|
-
const button = cv({
|
|
331
|
-
variants: {
|
|
332
|
-
size: {
|
|
333
|
-
sm: 'text-sm',
|
|
334
|
-
lg: 'text-lg'
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
})
|
|
338
|
-
|
|
339
|
-
type ButtonProps = Parameters<typeof button>[0]
|
|
340
|
-
// => { size?: 'sm' | 'lg' | undefined }
|
|
341
|
-
```
|
|
62
|
+
**[View full documentation →](https://css-variants.vercel.app/)**
|
|
342
63
|
|
|
343
|
-
|
|
64
|
+
- [Getting Started](https://css-variants.vercel.app/getting-started/introduction/)
|
|
65
|
+
- [Core Concepts](https://css-variants.vercel.app/core-concepts/variants/)
|
|
66
|
+
- [API Reference](https://css-variants.vercel.app/api/cv/)
|
|
67
|
+
- [Tailwind CSS Integration](https://css-variants.vercel.app/guides/tailwind/)
|
|
344
68
|
|
|
345
|
-
|
|
69
|
+
## Contributing
|
|
346
70
|
|
|
347
|
-
|
|
348
|
-
- [Panda CSS](https://github.com/chakra-ui/panda)
|
|
71
|
+
Contributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) before submitting PRs.
|
|
349
72
|
|
|
350
|
-
|
|
73
|
+
**Development Setup:**
|
|
351
74
|
|
|
352
75
|
```bash
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
yarn
|
|
76
|
+
git clone https://github.com/timphandev/css-variants.git
|
|
77
|
+
cd css-variants
|
|
78
|
+
yarn install
|
|
79
|
+
yarn test
|
|
80
|
+
yarn build
|
|
356
81
|
```
|
|
357
82
|
|
|
358
|
-
##
|
|
83
|
+
## ⭐ Like it? Star it!
|
|
359
84
|
|
|
360
|
-
|
|
85
|
+
If this library saves you time, a **⭐ on GitHub** means a lot. Thank you! 🚀
|
|
361
86
|
|
|
362
87
|
## License
|
|
363
88
|
|
|
364
|
-
|
|
89
|
+
MIT © [Tim Phan](https://github.com/timphandev)
|
|
365
90
|
|
|
366
|
-
|
|
91
|
+
**Made with ❤️ by developers, for developers**
|
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"}
|
package/dist/cjs/cx.js
CHANGED
package/dist/cjs/cx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cx.js","sourceRoot":"","sources":["../../src/cx.ts"],"names":[],"mappings":";AAAA,yCAAyC;;AA+CzC,gBAgBC;AAzDD,SAAS,KAAK,CAAC,KAAiB;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACxE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,aAAyB,CAAA;QAC7B,IAAI,YAAoB,CAAA;QACxB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;oBAC1C,IAAI,MAAM;wBAAE,MAAM,IAAI,GAAG,CAAA;oBACzB,MAAM,IAAI,YAAY,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,
|
|
1
|
+
{"version":3,"file":"cx.js","sourceRoot":"","sources":["../../src/cx.ts"],"names":[],"mappings":";AAAA,yCAAyC;;AA+CzC,gBAgBC;AAzDD,SAAS,KAAK,CAAC,KAAiB;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACxE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,aAAyB,CAAA;QAC7B,IAAI,YAAoB,CAAA;QACxB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;oBAC1C,IAAI,MAAM;wBAAE,MAAM,IAAI,GAAG,CAAA;oBACzB,MAAM,IAAI,YAAY,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,MAAM;gBAAE,MAAM,IAAI,GAAG,CAAA;YACzB,MAAM,IAAI,GAAG,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,EAAE,CAAC,GAAG,IAAkB;IACtC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,aAAyB,CAAA;IAC7B,IAAI,YAAoB,CAAA;IAExB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC1C,IAAI,MAAM;oBAAE,MAAM,IAAI,GAAG,CAAA;gBACzB,MAAM,IAAI,YAAY,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,kBAAe,EAAE,CAAA"}
|
package/dist/cjs/scv.js
CHANGED
|
@@ -51,8 +51,7 @@ const scv = (config) => {
|
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
return (props) => {
|
|
54
|
-
const
|
|
55
|
-
const mergedProps = defaultVariants ? (0, merge_props_1.mergeProps)(defaultVariants, rest) : rest;
|
|
54
|
+
const mergedProps = (0, merge_props_1.mergeProps)(defaultVariants, props, ['classNames']);
|
|
56
55
|
const slotClassValues = {};
|
|
57
56
|
for (const slot of slots) {
|
|
58
57
|
if (base?.[slot]) {
|
|
@@ -71,26 +70,29 @@ const scv = (config) => {
|
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
72
|
if (compoundVariants) {
|
|
74
|
-
for (
|
|
73
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
74
|
+
const compound = compoundVariants[i];
|
|
75
75
|
let matches = true;
|
|
76
|
-
for (const key in
|
|
77
|
-
|
|
76
|
+
for (const key in compound) {
|
|
77
|
+
if (key === 'classNames')
|
|
78
|
+
continue;
|
|
79
|
+
const value = compound[key];
|
|
78
80
|
const propValue = mergedProps[key];
|
|
79
81
|
if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
|
|
80
82
|
matches = false;
|
|
81
83
|
break;
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
|
-
if (matches) {
|
|
85
|
-
for (const slot in
|
|
86
|
-
slotClassValues[slot]?.push(
|
|
86
|
+
if (matches && compound.classNames) {
|
|
87
|
+
for (const slot in compound.classNames) {
|
|
88
|
+
slotClassValues[slot]?.push(compound.classNames[slot]);
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
|
-
if (classNames) {
|
|
92
|
-
for (const slot in classNames) {
|
|
93
|
-
slotClassValues[slot]?.push(classNames[slot]);
|
|
93
|
+
if (props?.classNames) {
|
|
94
|
+
for (const slot in props.classNames) {
|
|
95
|
+
slotClassValues[slot]?.push(props.classNames[slot]);
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
const result = {};
|
package/dist/cjs/scv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scv.js","sourceRoot":"","sources":["../../src/scv.ts"],"names":[],"mappings":";;;AACA,6BAAqC;AACrC,qDAAgD;AAgChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACI,MAAM,GAAG,GAA8B,CAAC,MAAM,EAAE,EAAE;IACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,GAAG,OAAE,EAAE,GAAG,MAAM,CAAA;IAEnG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,EAA4C,CAAA;YAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3E,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,
|
|
1
|
+
{"version":3,"file":"scv.js","sourceRoot":"","sources":["../../src/scv.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/ssv.js
CHANGED
|
@@ -47,8 +47,7 @@ const ssv = (config) => {
|
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
return (props) => {
|
|
50
|
-
const
|
|
51
|
-
const mergedProps = defaultVariants ? (0, merge_props_1.mergeProps)(defaultVariants, rest) : rest;
|
|
50
|
+
const mergedProps = (0, merge_props_1.mergeProps)(defaultVariants, props, ['styles']);
|
|
52
51
|
const result = {};
|
|
53
52
|
for (const slot of slots) {
|
|
54
53
|
result[slot] = { ...base?.[slot] };
|
|
@@ -57,31 +56,34 @@ const ssv = (config) => {
|
|
|
57
56
|
const slotStyle = variants[key]?.[mergedProps[key]];
|
|
58
57
|
if (slotStyle) {
|
|
59
58
|
for (const slot in slotStyle) {
|
|
60
|
-
result[slot]
|
|
59
|
+
Object.assign(result[slot], slotStyle[slot]);
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
63
|
if (compoundVariants) {
|
|
65
|
-
for (
|
|
64
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
65
|
+
const compound = compoundVariants[i];
|
|
66
66
|
let matches = true;
|
|
67
|
-
for (const key in
|
|
68
|
-
|
|
67
|
+
for (const key in compound) {
|
|
68
|
+
if (key === 'styles')
|
|
69
|
+
continue;
|
|
70
|
+
const value = compound[key];
|
|
69
71
|
const propValue = mergedProps[key];
|
|
70
72
|
if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
|
|
71
73
|
matches = false;
|
|
72
74
|
break;
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
|
-
if (matches) {
|
|
76
|
-
for (const slot in
|
|
77
|
-
result[slot]
|
|
77
|
+
if (matches && compound.styles) {
|
|
78
|
+
for (const slot in compound.styles) {
|
|
79
|
+
Object.assign(result[slot], compound.styles[slot]);
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
|
-
if (styles) {
|
|
83
|
-
for (const slot in styles) {
|
|
84
|
-
result[slot]
|
|
84
|
+
if (props?.styles) {
|
|
85
|
+
for (const slot in props.styles) {
|
|
86
|
+
Object.assign(result[slot], props.styles[slot]);
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
return result;
|
package/dist/cjs/ssv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssv.js","sourceRoot":"","sources":["../../src/ssv.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AA+BhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACI,MAAM,GAAG,GAA8B,CAAC,MAAM,EAAE,EAAE;IACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAE3E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,EAAmD,CAAA;YAElE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9D,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,
|
|
1
|
+
{"version":3,"file":"ssv.js","sourceRoot":"","sources":["../../src/ssv.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/sv.js
CHANGED
|
@@ -36,32 +36,37 @@ const sv = (config) => {
|
|
|
36
36
|
return (props) => ({ ...base, ...props?.style });
|
|
37
37
|
}
|
|
38
38
|
return (props) => {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
const mergedProps = defaultVariants ? (0, merge_props_1.mergeProps)(defaultVariants, rest) : rest;
|
|
39
|
+
const result = { ...base };
|
|
40
|
+
const mergedProps = (0, merge_props_1.mergeProps)(defaultVariants, props, ['style']);
|
|
42
41
|
for (const key in mergedProps) {
|
|
43
42
|
const styleValue = variants[key]?.[mergedProps[key]];
|
|
44
43
|
if (styleValue) {
|
|
45
|
-
result
|
|
44
|
+
Object.assign(result, styleValue);
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
47
|
if (compoundVariants) {
|
|
49
|
-
for (
|
|
48
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
49
|
+
const compound = compoundVariants[i];
|
|
50
50
|
let matches = true;
|
|
51
|
-
for (const key in
|
|
52
|
-
|
|
51
|
+
for (const key in compound) {
|
|
52
|
+
if (key === 'style')
|
|
53
|
+
continue;
|
|
54
|
+
const value = compound[key];
|
|
53
55
|
const propValue = mergedProps[key];
|
|
54
56
|
if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
|
|
55
57
|
matches = false;
|
|
56
58
|
break;
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
|
-
if (matches) {
|
|
60
|
-
result
|
|
61
|
+
if (matches && compound.style) {
|
|
62
|
+
Object.assign(result, compound.style);
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
}
|
|
64
|
-
|
|
66
|
+
if (props?.style) {
|
|
67
|
+
Object.assign(result, props.style);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
65
70
|
};
|
|
66
71
|
};
|
|
67
72
|
exports.sv = sv;
|
package/dist/cjs/sv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAuBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,MAAM,EAAE,GAA0B,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAEpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,
|
|
1
|
+
{"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAuBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,MAAM,EAAE,GAA0B,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAEpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,MAAM,GAAkB,EAAE,GAAG,IAAI,EAAE,CAAA;QAEzC,MAAM,WAAW,GAAG,IAAA,wBAAU,EAAC,eAAe,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;QAEjE,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,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YACnC,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,OAAO;wBAAE,SAAQ;oBAC7B,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,KAAK,EAAE,CAAC;oBAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC,CAAA;AA5CY,QAAA,EAAE,MA4Cd;AAED,kBAAe,UAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function mergeProps<T extends Record<string, unknown>>(defaultProps: T, props:
|
|
1
|
+
export declare function mergeProps<T extends Record<string, unknown>, P extends Record<string, unknown>>(defaultProps: T | undefined, props: P | undefined, omitKeys?: (keyof P)[]): Record<string, unknown>;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mergeProps = mergeProps;
|
|
4
|
-
function mergeProps(defaultProps, props) {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
function mergeProps(defaultProps, props, omitKeys) {
|
|
5
|
+
const merged = { ...defaultProps };
|
|
6
|
+
if (props) {
|
|
7
|
+
for (const k in props) {
|
|
8
|
+
if (props[k] !== undefined && (!omitKeys || !omitKeys.includes(k))) {
|
|
9
|
+
merged[k] = props[k];
|
|
10
|
+
}
|
|
9
11
|
}
|
|
10
12
|
}
|
|
11
|
-
return
|
|
13
|
+
return merged;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=merge-props.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-props.js","sourceRoot":"","sources":["../../../src/utils/merge-props.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"merge-props.js","sourceRoot":"","sources":["../../../src/utils/merge-props.ts"],"names":[],"mappings":";;AAAA,gCAgBC;AAhBD,SAAgB,UAAU,CACxB,YAA2B,EAC3B,KAAoB,EACpB,QAAsB;IAEtB,MAAM,MAAM,GAA4B,EAAE,GAAG,YAAY,EAAE,CAAA;IAE3D,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/esm/cv.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { mergeProps } from './utils/merge-props';
|
|
2
1
|
import { cx } from './cx';
|
|
2
|
+
import { mergeProps } from './utils/merge-props';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a class variant function that combines base classes, variants, compound variants, and default variants.
|
|
5
5
|
*
|
|
@@ -37,8 +37,7 @@ export const cv = (config) => {
|
|
|
37
37
|
return (props) => classNameResolver(base, props?.className);
|
|
38
38
|
}
|
|
39
39
|
return (props) => {
|
|
40
|
-
const
|
|
41
|
-
const mergedProps = defaultVariants ? mergeProps(defaultVariants, rest) : rest;
|
|
40
|
+
const mergedProps = mergeProps(defaultVariants, props, ['className']);
|
|
42
41
|
const classValues = [];
|
|
43
42
|
for (const key in mergedProps) {
|
|
44
43
|
const classValue = variants[key]?.[mergedProps[key]];
|
|
@@ -47,22 +46,25 @@ export const cv = (config) => {
|
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
if (compoundVariants) {
|
|
50
|
-
for (
|
|
49
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
50
|
+
const compound = compoundVariants[i];
|
|
51
51
|
let matches = true;
|
|
52
|
-
for (const key in
|
|
53
|
-
|
|
52
|
+
for (const key in compound) {
|
|
53
|
+
if (key === 'className')
|
|
54
|
+
continue;
|
|
55
|
+
const value = compound[key];
|
|
54
56
|
const propValue = mergedProps[key];
|
|
55
57
|
if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
|
|
56
58
|
matches = false;
|
|
57
59
|
break;
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
|
-
if (matches) {
|
|
61
|
-
classValues.push(
|
|
62
|
+
if (matches && compound.className) {
|
|
63
|
+
classValues.push(compound.className);
|
|
62
64
|
}
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
|
-
return classNameResolver(base, classValues, className);
|
|
67
|
+
return classNameResolver(base, classValues, props?.className);
|
|
66
68
|
};
|
|
67
69
|
};
|
|
68
70
|
export default cv;
|
package/dist/esm/cv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cv.js","sourceRoot":"","sources":["../../src/cv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cv.js","sourceRoot":"","sources":["../../src/cv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAc,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAwBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,EAAE,GAA0B,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,GAAG,EAAE,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,UAAU,CAAC,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;AAED,eAAe,EAAE,CAAA"}
|
package/dist/esm/cx.js
CHANGED
package/dist/esm/cx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cx.js","sourceRoot":"","sources":["../../src/cx.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAMzC,SAAS,KAAK,CAAC,KAAiB;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACxE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,aAAyB,CAAA;QAC7B,IAAI,YAAoB,CAAA;QACxB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;oBAC1C,IAAI,MAAM;wBAAE,MAAM,IAAI,GAAG,CAAA;oBACzB,MAAM,IAAI,YAAY,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,
|
|
1
|
+
{"version":3,"file":"cx.js","sourceRoot":"","sources":["../../src/cx.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAMzC,SAAS,KAAK,CAAC,KAAiB;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACxE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,aAAyB,CAAA;QAC7B,IAAI,YAAoB,CAAA;QACxB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;oBAC1C,IAAI,MAAM;wBAAE,MAAM,IAAI,GAAG,CAAA;oBACzB,MAAM,IAAI,YAAY,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,MAAM;gBAAE,MAAM,IAAI,GAAG,CAAA;YACzB,MAAM,IAAI,GAAG,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,GAAG,IAAkB;IACtC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,aAAyB,CAAA;IAC7B,IAAI,YAAoB,CAAA;IAExB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC1C,IAAI,MAAM;oBAAE,MAAM,IAAI,GAAG,CAAA;gBACzB,MAAM,IAAI,YAAY,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,eAAe,EAAE,CAAA"}
|
package/dist/esm/scv.js
CHANGED
|
@@ -48,8 +48,7 @@ export const scv = (config) => {
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
return (props) => {
|
|
51
|
-
const
|
|
52
|
-
const mergedProps = defaultVariants ? mergeProps(defaultVariants, rest) : rest;
|
|
51
|
+
const mergedProps = mergeProps(defaultVariants, props, ['classNames']);
|
|
53
52
|
const slotClassValues = {};
|
|
54
53
|
for (const slot of slots) {
|
|
55
54
|
if (base?.[slot]) {
|
|
@@ -68,26 +67,29 @@ export const scv = (config) => {
|
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
if (compoundVariants) {
|
|
71
|
-
for (
|
|
70
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
71
|
+
const compound = compoundVariants[i];
|
|
72
72
|
let matches = true;
|
|
73
|
-
for (const key in
|
|
74
|
-
|
|
73
|
+
for (const key in compound) {
|
|
74
|
+
if (key === 'classNames')
|
|
75
|
+
continue;
|
|
76
|
+
const value = compound[key];
|
|
75
77
|
const propValue = mergedProps[key];
|
|
76
78
|
if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
|
|
77
79
|
matches = false;
|
|
78
80
|
break;
|
|
79
81
|
}
|
|
80
82
|
}
|
|
81
|
-
if (matches) {
|
|
82
|
-
for (const slot in
|
|
83
|
-
slotClassValues[slot]?.push(
|
|
83
|
+
if (matches && compound.classNames) {
|
|
84
|
+
for (const slot in compound.classNames) {
|
|
85
|
+
slotClassValues[slot]?.push(compound.classNames[slot]);
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
|
-
if (classNames) {
|
|
89
|
-
for (const slot in classNames) {
|
|
90
|
-
slotClassValues[slot]?.push(classNames[slot]);
|
|
90
|
+
if (props?.classNames) {
|
|
91
|
+
for (const slot in props.classNames) {
|
|
92
|
+
slotClassValues[slot]?.push(props.classNames[slot]);
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
95
|
const result = {};
|
package/dist/esm/scv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scv.js","sourceRoot":"","sources":["../../src/scv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAc,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAgChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,GAAG,GAA8B,CAAC,MAAM,EAAE,EAAE;IACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;IAEnG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,EAA4C,CAAA;YAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3E,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,
|
|
1
|
+
{"version":3,"file":"scv.js","sourceRoot":"","sources":["../../src/scv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAc,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAgChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,GAAG,GAA8B,CAAC,MAAM,EAAE,EAAE;IACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;IAEnG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,EAA4C,CAAA;YAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3E,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;QAEtE,MAAM,eAAe,GAAG,EAAkD,CAAA;QAE1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAW,CAAC,CAAA;YAEvD,IAAI,GAAG,EAAE,CAAC;gBACR,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;oBACvB,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;gBACxC,CAAC;YACH,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,YAAY;wBAAE,SAAQ;oBAClC,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,UAAU,EAAE,CAAC;oBACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;wBACvC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,EAA4C,CAAA;QAE3D,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,GAAG,CAAA"}
|
package/dist/esm/ssv.js
CHANGED
|
@@ -44,8 +44,7 @@ export const ssv = (config) => {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
return (props) => {
|
|
47
|
-
const
|
|
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]
|
|
56
|
+
Object.assign(result[slot], slotStyle[slot]);
|
|
58
57
|
}
|
|
59
58
|
}
|
|
60
59
|
}
|
|
61
60
|
if (compoundVariants) {
|
|
62
|
-
for (
|
|
61
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
62
|
+
const compound = compoundVariants[i];
|
|
63
63
|
let matches = true;
|
|
64
|
-
for (const key in
|
|
65
|
-
|
|
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
|
|
74
|
-
result[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]
|
|
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;
|
package/dist/esm/ssv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssv.js","sourceRoot":"","sources":["../../src/ssv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AA+BhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,GAAG,GAA8B,CAAC,MAAM,EAAE,EAAE;IACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAE3E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,EAAmD,CAAA;YAElE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9D,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,
|
|
1
|
+
{"version":3,"file":"ssv.js","sourceRoot":"","sources":["../../src/ssv.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/sv.js
CHANGED
|
@@ -33,32 +33,37 @@ export const sv = (config) => {
|
|
|
33
33
|
return (props) => ({ ...base, ...props?.style });
|
|
34
34
|
}
|
|
35
35
|
return (props) => {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
const mergedProps = defaultVariants ? mergeProps(defaultVariants, rest) : rest;
|
|
36
|
+
const result = { ...base };
|
|
37
|
+
const mergedProps = mergeProps(defaultVariants, props, ['style']);
|
|
39
38
|
for (const key in mergedProps) {
|
|
40
39
|
const styleValue = variants[key]?.[mergedProps[key]];
|
|
41
40
|
if (styleValue) {
|
|
42
|
-
result
|
|
41
|
+
Object.assign(result, styleValue);
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
if (compoundVariants) {
|
|
46
|
-
for (
|
|
45
|
+
for (let i = 0; i < compoundVariants.length; i++) {
|
|
46
|
+
const compound = compoundVariants[i];
|
|
47
47
|
let matches = true;
|
|
48
|
-
for (const key in
|
|
49
|
-
|
|
48
|
+
for (const key in compound) {
|
|
49
|
+
if (key === 'style')
|
|
50
|
+
continue;
|
|
51
|
+
const value = compound[key];
|
|
50
52
|
const propValue = mergedProps[key];
|
|
51
53
|
if (Array.isArray(value) ? !value.includes(propValue) : value !== propValue) {
|
|
52
54
|
matches = false;
|
|
53
55
|
break;
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
|
-
if (matches) {
|
|
57
|
-
result
|
|
58
|
+
if (matches && compound.style) {
|
|
59
|
+
Object.assign(result, compound.style);
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
|
-
|
|
63
|
+
if (props?.style) {
|
|
64
|
+
Object.assign(result, props.style);
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
62
67
|
};
|
|
63
68
|
};
|
|
64
69
|
export default sv;
|
package/dist/esm/sv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAuBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,EAAE,GAA0B,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAEpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,
|
|
1
|
+
{"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAuBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,EAAE,GAA0B,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAEpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,MAAM,GAAkB,EAAE,GAAG,IAAI,EAAE,CAAA;QAEzC,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;QAEjE,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,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YACnC,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,OAAO;wBAAE,SAAQ;oBAC7B,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,KAAK,EAAE,CAAC;oBAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function mergeProps<T extends Record<string, unknown>>(defaultProps: T, props:
|
|
1
|
+
export declare function mergeProps<T extends Record<string, unknown>, P extends Record<string, unknown>>(defaultProps: T | undefined, props: P | undefined, omitKeys?: (keyof P)[]): Record<string, unknown>;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
export function mergeProps(defaultProps, props) {
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export function mergeProps(defaultProps, props, omitKeys) {
|
|
2
|
+
const merged = { ...defaultProps };
|
|
3
|
+
if (props) {
|
|
4
|
+
for (const k in props) {
|
|
5
|
+
if (props[k] !== undefined && (!omitKeys || !omitKeys.includes(k))) {
|
|
6
|
+
merged[k] = props[k];
|
|
7
|
+
}
|
|
6
8
|
}
|
|
7
9
|
}
|
|
8
|
-
return
|
|
10
|
+
return merged;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=merge-props.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-props.js","sourceRoot":"","sources":["../../../src/utils/merge-props.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,
|
|
1
|
+
{"version":3,"file":"merge-props.js","sourceRoot":"","sources":["../../../src/utils/merge-props.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CACxB,YAA2B,EAC3B,KAAoB,EACpB,QAAsB;IAEtB,MAAM,MAAM,GAA4B,EAAE,GAAG,YAAY,EAAE,CAAA;IAE3D,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "css-variants",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Lightweight helpers to compose class names and inline styles using variants. Zero runtime deps, small bundle, and first-class TypeScript support.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
"scripts": {
|
|
22
22
|
"lint": "eslint .",
|
|
23
23
|
"test": "vitest run --coverage",
|
|
24
|
-
"bench": "vitest bench",
|
|
24
|
+
"bench": "vitest bench ./src",
|
|
25
|
+
"bench:cva": "yarn add class-variance-authority --no-save && vitest bench ./benchmark/cva.bench.ts --outputJson ./benchmark/cva.bench.json --run",
|
|
26
|
+
"bench:tailwind-variants": "yarn add tailwind-variants --no-save && vitest bench ./benchmark/tailwind-variants.bench.ts --outputJson ./benchmark/tailwind-variants.bench.json --run",
|
|
25
27
|
"build:cjs": "tsc --project tsconfig.cjs.json",
|
|
26
28
|
"build:esm": "tsc --project tsconfig.esm.json",
|
|
27
29
|
"build": "rimraf ./dist && yarn build:cjs && yarn build:esm"
|
|
@@ -54,18 +56,20 @@
|
|
|
54
56
|
],
|
|
55
57
|
"license": "MIT",
|
|
56
58
|
"devDependencies": {
|
|
57
|
-
"@eslint/js": "^9.
|
|
58
|
-
"@types/eslint__js": "^8.42.3",
|
|
59
|
+
"@eslint/js": "^9.39.1",
|
|
59
60
|
"@types/node": "^20.12.12",
|
|
60
|
-
"@vitest/coverage-v8": "^
|
|
61
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
61
62
|
"csstype": "^3.1.3",
|
|
62
|
-
"eslint": "^9.
|
|
63
|
-
"eslint-config-prettier": "^
|
|
64
|
-
"eslint-plugin-prettier": "^5.
|
|
65
|
-
"prettier": "^3.4
|
|
63
|
+
"eslint": "^9.39.1",
|
|
64
|
+
"eslint-config-prettier": "^10.1.8",
|
|
65
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
66
|
+
"prettier": "^3.7.4",
|
|
66
67
|
"rimraf": "^5.0.7",
|
|
67
|
-
"typescript": "^5.
|
|
68
|
-
"typescript-eslint": "^
|
|
69
|
-
"vitest": "^
|
|
68
|
+
"typescript": "^5.9.3",
|
|
69
|
+
"typescript-eslint": "^8.49.0",
|
|
70
|
+
"vitest": "^4.0.15"
|
|
71
|
+
},
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"tailwind-variants": "^3.2.2"
|
|
70
74
|
}
|
|
71
75
|
}
|