@cwcss/crosswind 0.1.5 → 0.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/LICENSE.md +21 -0
- package/README.md +52 -0
- package/dist/bin/cli.js +14615 -0
- package/dist/build.d.ts +24 -0
- package/dist/config.d.ts +5 -0
- package/dist/generator.d.ts +31 -0
- package/dist/index.d.ts +10 -0
- package/dist/parser.d.ts +42 -0
- package/dist/plugin.d.ts +22 -0
- package/dist/preflight-forms.d.ts +5 -0
- package/dist/preflight.d.ts +2 -0
- package/dist/rules-advanced.d.ts +27 -0
- package/dist/rules-effects.d.ts +25 -0
- package/dist/rules-forms.d.ts +7 -0
- package/dist/rules-grid.d.ts +13 -0
- package/dist/rules-interactivity.d.ts +41 -0
- package/dist/rules-layout.d.ts +26 -0
- package/dist/rules-transforms.d.ts +33 -0
- package/dist/rules-typography.d.ts +41 -0
- package/dist/rules.d.ts +39 -0
- package/dist/scanner.d.ts +18 -0
- package/dist/src/index.js +12848 -0
- package/dist/transformer-compile-class.d.ts +37 -0
- package/{src/types.ts → dist/types.d.ts} +17 -86
- package/package.json +2 -16
- package/PLUGIN.md +0 -235
- package/benchmark/framework-comparison.bench.ts +0 -850
- package/bin/cli.ts +0 -365
- package/bin/crosswind +0 -0
- package/bin/headwind +0 -0
- package/build.ts +0 -8
- package/crosswind.config.ts +0 -9
- package/example/comprehensive.html +0 -70
- package/example/index.html +0 -21
- package/example/output.css +0 -236
- package/examples/plugin/README.md +0 -112
- package/examples/plugin/build.ts +0 -32
- package/examples/plugin/src/index.html +0 -34
- package/examples/plugin/src/index.ts +0 -7
- package/headwind +0 -2
- package/src/build.ts +0 -101
- package/src/config.ts +0 -529
- package/src/generator.ts +0 -2173
- package/src/index.ts +0 -10
- package/src/parser.ts +0 -1471
- package/src/plugin.ts +0 -118
- package/src/preflight-forms.ts +0 -229
- package/src/preflight.ts +0 -388
- package/src/rules-advanced.ts +0 -477
- package/src/rules-effects.ts +0 -461
- package/src/rules-forms.ts +0 -103
- package/src/rules-grid.ts +0 -241
- package/src/rules-interactivity.ts +0 -525
- package/src/rules-layout.ts +0 -385
- package/src/rules-transforms.ts +0 -412
- package/src/rules-typography.ts +0 -486
- package/src/rules.ts +0 -809
- package/src/scanner.ts +0 -84
- package/src/transformer-compile-class.ts +0 -275
- package/test/advanced-features.test.ts +0 -911
- package/test/arbitrary.test.ts +0 -396
- package/test/attributify.test.ts +0 -592
- package/test/bracket-syntax.test.ts +0 -1133
- package/test/build.test.ts +0 -99
- package/test/colors.test.ts +0 -934
- package/test/flexbox.test.ts +0 -669
- package/test/generator.test.ts +0 -597
- package/test/grid.test.ts +0 -584
- package/test/layout.test.ts +0 -404
- package/test/modifiers.test.ts +0 -417
- package/test/parser.test.ts +0 -564
- package/test/performance-regression.test.ts +0 -376
- package/test/performance.test.ts +0 -568
- package/test/plugin.test.ts +0 -160
- package/test/scanner.test.ts +0 -94
- package/test/sizing.test.ts +0 -481
- package/test/spacing.test.ts +0 -394
- package/test/transformer-compile-class.test.ts +0 -287
- package/test/transforms.test.ts +0 -448
- package/test/typography.test.ts +0 -632
- package/test/variants-form-states.test.ts +0 -225
- package/test/variants-group-peer.test.ts +0 -66
- package/test/variants-media.test.ts +0 -213
- package/test/variants-positional.test.ts +0 -58
- package/test/variants-pseudo-elements.test.ts +0 -47
- package/test/variants-state.test.ts +0 -62
- package/tsconfig.json +0 -18
package/test/transforms.test.ts
DELETED
|
@@ -1,448 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'bun:test'
|
|
2
|
-
import { defaultConfig } from '../src/config'
|
|
3
|
-
import { CSSGenerator } from '../src/generator'
|
|
4
|
-
import { parseClass } from '../src/parser'
|
|
5
|
-
|
|
6
|
-
describe('Transform Utilities', () => {
|
|
7
|
-
describe('Scale', () => {
|
|
8
|
-
it('should generate scale-150', () => {
|
|
9
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
10
|
-
gen.generate('scale-150')
|
|
11
|
-
expect(gen.toCSS(false)).toContain('transform: scale(1.5);')
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('should generate scale-0', () => {
|
|
15
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
16
|
-
gen.generate('scale-0')
|
|
17
|
-
expect(gen.toCSS(false)).toContain('transform: scale(0);')
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it('should generate scale-x-50', () => {
|
|
21
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
22
|
-
gen.generate('scale-x-50')
|
|
23
|
-
expect(gen.toCSS(false)).toContain('transform: scaleX(0.5);')
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
it('should generate scale-y-125', () => {
|
|
27
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
28
|
-
gen.generate('scale-y-125')
|
|
29
|
-
expect(gen.toCSS(false)).toContain('transform: scaleY(1.25);')
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
it('should generate scale-z-150', () => {
|
|
33
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
34
|
-
gen.generate('scale-z-150')
|
|
35
|
-
expect(gen.toCSS(false)).toContain('transform: scaleZ(1.5);')
|
|
36
|
-
})
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
describe('Rotate', () => {
|
|
40
|
-
it('should generate rotate-45', () => {
|
|
41
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
42
|
-
gen.generate('rotate-45')
|
|
43
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(45deg);')
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
it('should generate rotate-90', () => {
|
|
47
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
48
|
-
gen.generate('rotate-90')
|
|
49
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(90deg);')
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
it('should generate rotate-180', () => {
|
|
53
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
54
|
-
gen.generate('rotate-180')
|
|
55
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(180deg);')
|
|
56
|
-
})
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
describe('3D Rotate', () => {
|
|
60
|
-
it('should generate rotate-x-45', () => {
|
|
61
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
62
|
-
gen.generate('rotate-x-45')
|
|
63
|
-
expect(gen.toCSS(false)).toContain('transform: rotateX(45deg);')
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
it('should generate rotate-y-90', () => {
|
|
67
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
68
|
-
gen.generate('rotate-y-90')
|
|
69
|
-
expect(gen.toCSS(false)).toContain('transform: rotateY(90deg);')
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
it('should generate rotate-z-180', () => {
|
|
73
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
74
|
-
gen.generate('rotate-z-180')
|
|
75
|
-
expect(gen.toCSS(false)).toContain('transform: rotateZ(180deg);')
|
|
76
|
-
})
|
|
77
|
-
})
|
|
78
|
-
|
|
79
|
-
describe('Translate', () => {
|
|
80
|
-
it('should generate translate-x-4', () => {
|
|
81
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
82
|
-
gen.generate('translate-x-4')
|
|
83
|
-
expect(gen.toCSS(false)).toContain('transform: translateX(1rem);')
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
it('should generate translate-y-8', () => {
|
|
87
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
88
|
-
gen.generate('translate-y-8')
|
|
89
|
-
expect(gen.toCSS(false)).toContain('transform: translateY(2rem);')
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
it('should parse negative translate-x', () => {
|
|
93
|
-
const result = parseClass('-translate-x-4')
|
|
94
|
-
expect(result).toEqual({
|
|
95
|
-
raw: '-translate-x-4',
|
|
96
|
-
variants: [],
|
|
97
|
-
utility: 'translate-x',
|
|
98
|
-
value: '-4',
|
|
99
|
-
important: false,
|
|
100
|
-
arbitrary: false,
|
|
101
|
-
})
|
|
102
|
-
})
|
|
103
|
-
|
|
104
|
-
it('should generate negative translate-x CSS', () => {
|
|
105
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
106
|
-
gen.generate('-translate-x-4')
|
|
107
|
-
expect(gen.toCSS(false)).toContain('transform: translateX(-1rem);')
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
it('should generate translate-z-4', () => {
|
|
111
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
112
|
-
gen.generate('translate-z-4')
|
|
113
|
-
expect(gen.toCSS(false)).toContain('transform: translateZ(1rem);')
|
|
114
|
-
})
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
describe('Skew', () => {
|
|
118
|
-
it('should generate skew-x-3', () => {
|
|
119
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
120
|
-
gen.generate('skew-x-3')
|
|
121
|
-
expect(gen.toCSS(false)).toContain('transform: skewX(3deg);')
|
|
122
|
-
})
|
|
123
|
-
|
|
124
|
-
it('should generate skew-y-6', () => {
|
|
125
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
126
|
-
gen.generate('skew-y-6')
|
|
127
|
-
expect(gen.toCSS(false)).toContain('transform: skewY(6deg);')
|
|
128
|
-
})
|
|
129
|
-
})
|
|
130
|
-
|
|
131
|
-
describe('Transform properties', () => {
|
|
132
|
-
it('should generate backface-hidden', () => {
|
|
133
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
134
|
-
gen.generate('backface-hidden')
|
|
135
|
-
expect(gen.toCSS(false)).toContain('backface-visibility: hidden;')
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
it('should generate transform-3d', () => {
|
|
139
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
140
|
-
gen.generate('transform-3d')
|
|
141
|
-
expect(gen.toCSS(false)).toContain('transform-style: preserve-3d;')
|
|
142
|
-
})
|
|
143
|
-
|
|
144
|
-
it('should generate perspective-origin-center', () => {
|
|
145
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
146
|
-
gen.generate('perspective-origin-center')
|
|
147
|
-
expect(gen.toCSS(false)).toContain('perspective-origin: center;')
|
|
148
|
-
})
|
|
149
|
-
})
|
|
150
|
-
|
|
151
|
-
describe('Edge Cases', () => {
|
|
152
|
-
describe('Arbitrary transform values', () => {
|
|
153
|
-
it('should handle arbitrary scale', () => {
|
|
154
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
155
|
-
gen.generate('scale-[1.15]')
|
|
156
|
-
expect(gen.toCSS(false)).toContain('transform: scale(1.15);')
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
it('should handle arbitrary rotate', () => {
|
|
160
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
161
|
-
gen.generate('rotate-[17deg]')
|
|
162
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(17deg);')
|
|
163
|
-
})
|
|
164
|
-
|
|
165
|
-
it('should handle arbitrary translate', () => {
|
|
166
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
167
|
-
gen.generate('translate-x-[45px]')
|
|
168
|
-
expect(gen.toCSS(false)).toContain('transform: translateX(45px);')
|
|
169
|
-
})
|
|
170
|
-
|
|
171
|
-
it('should handle arbitrary skew', () => {
|
|
172
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
173
|
-
gen.generate('skew-x-[15deg]')
|
|
174
|
-
expect(gen.toCSS(false)).toContain('transform: skewX(15deg);')
|
|
175
|
-
})
|
|
176
|
-
})
|
|
177
|
-
|
|
178
|
-
describe('Transform origin', () => {
|
|
179
|
-
it('should handle origin-center', () => {
|
|
180
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
181
|
-
gen.generate('origin-center')
|
|
182
|
-
expect(gen.toCSS(false)).toContain('transform-origin: center;')
|
|
183
|
-
})
|
|
184
|
-
|
|
185
|
-
it('should handle origin-top', () => {
|
|
186
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
187
|
-
gen.generate('origin-top')
|
|
188
|
-
expect(gen.toCSS(false)).toContain('transform-origin: top;')
|
|
189
|
-
})
|
|
190
|
-
|
|
191
|
-
it('should handle origin-top-right', () => {
|
|
192
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
193
|
-
gen.generate('origin-top-right')
|
|
194
|
-
expect(gen.toCSS(false)).toContain('transform-origin: top right;')
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
it('should handle origin-right', () => {
|
|
198
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
199
|
-
gen.generate('origin-right')
|
|
200
|
-
expect(gen.toCSS(false)).toContain('transform-origin: right;')
|
|
201
|
-
})
|
|
202
|
-
|
|
203
|
-
it('should handle origin-bottom-right', () => {
|
|
204
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
205
|
-
gen.generate('origin-bottom-right')
|
|
206
|
-
expect(gen.toCSS(false)).toContain('transform-origin: bottom right;')
|
|
207
|
-
})
|
|
208
|
-
|
|
209
|
-
it('should handle origin-bottom', () => {
|
|
210
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
211
|
-
gen.generate('origin-bottom')
|
|
212
|
-
expect(gen.toCSS(false)).toContain('transform-origin: bottom;')
|
|
213
|
-
})
|
|
214
|
-
|
|
215
|
-
it('should handle origin-bottom-left', () => {
|
|
216
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
217
|
-
gen.generate('origin-bottom-left')
|
|
218
|
-
expect(gen.toCSS(false)).toContain('transform-origin: bottom left;')
|
|
219
|
-
})
|
|
220
|
-
|
|
221
|
-
it('should handle origin-left', () => {
|
|
222
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
223
|
-
gen.generate('origin-left')
|
|
224
|
-
expect(gen.toCSS(false)).toContain('transform-origin: left;')
|
|
225
|
-
})
|
|
226
|
-
|
|
227
|
-
it('should handle origin-top-left', () => {
|
|
228
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
229
|
-
gen.generate('origin-top-left')
|
|
230
|
-
expect(gen.toCSS(false)).toContain('transform-origin: top left;')
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
it('should handle arbitrary origin', () => {
|
|
234
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
235
|
-
gen.generate('origin-[25%_75%]')
|
|
236
|
-
expect(gen.toCSS(false)).toContain('transform-origin: 25% 75%;')
|
|
237
|
-
})
|
|
238
|
-
})
|
|
239
|
-
|
|
240
|
-
describe('Perspective', () => {
|
|
241
|
-
it('should handle perspective-500', () => {
|
|
242
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
243
|
-
gen.generate('perspective-500')
|
|
244
|
-
expect(gen.toCSS(false)).toContain('perspective: 500px;')
|
|
245
|
-
})
|
|
246
|
-
|
|
247
|
-
it('should handle perspective-1000', () => {
|
|
248
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
249
|
-
gen.generate('perspective-1000')
|
|
250
|
-
expect(gen.toCSS(false)).toContain('perspective: 1000px;')
|
|
251
|
-
})
|
|
252
|
-
|
|
253
|
-
it('should handle perspective-none', () => {
|
|
254
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
255
|
-
gen.generate('perspective-none')
|
|
256
|
-
expect(gen.toCSS(false)).toContain('perspective: none;')
|
|
257
|
-
})
|
|
258
|
-
|
|
259
|
-
it('should handle arbitrary perspective', () => {
|
|
260
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
261
|
-
gen.generate('perspective-[750px]')
|
|
262
|
-
expect(gen.toCSS(false)).toContain('perspective: 750px;')
|
|
263
|
-
})
|
|
264
|
-
|
|
265
|
-
it('should handle perspective-origin-top', () => {
|
|
266
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
267
|
-
gen.generate('perspective-origin-top')
|
|
268
|
-
expect(gen.toCSS(false)).toContain('perspective-origin: top;')
|
|
269
|
-
})
|
|
270
|
-
|
|
271
|
-
it('should handle perspective-origin-bottom', () => {
|
|
272
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
273
|
-
gen.generate('perspective-origin-bottom')
|
|
274
|
-
expect(gen.toCSS(false)).toContain('perspective-origin: bottom;')
|
|
275
|
-
})
|
|
276
|
-
|
|
277
|
-
it('should handle perspective-origin-left', () => {
|
|
278
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
279
|
-
gen.generate('perspective-origin-left')
|
|
280
|
-
expect(gen.toCSS(false)).toContain('perspective-origin: left;')
|
|
281
|
-
})
|
|
282
|
-
|
|
283
|
-
it('should handle perspective-origin-right', () => {
|
|
284
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
285
|
-
gen.generate('perspective-origin-right')
|
|
286
|
-
expect(gen.toCSS(false)).toContain('perspective-origin: right;')
|
|
287
|
-
})
|
|
288
|
-
})
|
|
289
|
-
|
|
290
|
-
describe('Negative transforms', () => {
|
|
291
|
-
it('should handle negative scale', () => {
|
|
292
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
293
|
-
gen.generate('-scale-x-100')
|
|
294
|
-
expect(gen.toCSS(false)).toContain('transform: scaleX(-1);')
|
|
295
|
-
})
|
|
296
|
-
|
|
297
|
-
it('should handle negative rotate', () => {
|
|
298
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
299
|
-
gen.generate('-rotate-45')
|
|
300
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(-45deg);')
|
|
301
|
-
})
|
|
302
|
-
|
|
303
|
-
it('should handle negative translate-y', () => {
|
|
304
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
305
|
-
gen.generate('-translate-y-4')
|
|
306
|
-
expect(gen.toCSS(false)).toContain('transform: translateY(-1rem);')
|
|
307
|
-
})
|
|
308
|
-
|
|
309
|
-
it('should handle negative skew', () => {
|
|
310
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
311
|
-
gen.generate('-skew-x-3')
|
|
312
|
-
expect(gen.toCSS(false)).toContain('transform: skewX(-3deg);')
|
|
313
|
-
})
|
|
314
|
-
})
|
|
315
|
-
|
|
316
|
-
describe('Transform GPU', () => {
|
|
317
|
-
it('should handle transform-gpu', () => {
|
|
318
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
319
|
-
gen.generate('transform-gpu')
|
|
320
|
-
const css = gen.toCSS(false)
|
|
321
|
-
expect(css).toContain('transform:')
|
|
322
|
-
expect(css).toContain('translate3d')
|
|
323
|
-
})
|
|
324
|
-
|
|
325
|
-
it('should handle transform-none', () => {
|
|
326
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
327
|
-
gen.generate('transform-none')
|
|
328
|
-
expect(gen.toCSS(false)).toContain('transform: none;')
|
|
329
|
-
})
|
|
330
|
-
})
|
|
331
|
-
|
|
332
|
-
describe('Backface visibility', () => {
|
|
333
|
-
it('should handle backface-visible', () => {
|
|
334
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
335
|
-
gen.generate('backface-visible')
|
|
336
|
-
expect(gen.toCSS(false)).toContain('backface-visibility: visible;')
|
|
337
|
-
})
|
|
338
|
-
})
|
|
339
|
-
|
|
340
|
-
describe('Transform style', () => {
|
|
341
|
-
it('should handle transform-flat', () => {
|
|
342
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
343
|
-
gen.generate('transform-flat')
|
|
344
|
-
expect(gen.toCSS(false)).toContain('transform-style: flat;')
|
|
345
|
-
})
|
|
346
|
-
})
|
|
347
|
-
|
|
348
|
-
describe('Transforms with variants', () => {
|
|
349
|
-
it('should handle scale with responsive variant', () => {
|
|
350
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
351
|
-
gen.generate('md:scale-110')
|
|
352
|
-
const css = gen.toCSS(false)
|
|
353
|
-
expect(css).toContain('@media (min-width: 768px)')
|
|
354
|
-
expect(css).toContain('transform: scale(1.1);')
|
|
355
|
-
})
|
|
356
|
-
|
|
357
|
-
it('should handle rotate with hover variant', () => {
|
|
358
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
359
|
-
gen.generate('hover:rotate-90')
|
|
360
|
-
const css = gen.toCSS(false)
|
|
361
|
-
expect(css).toContain(':hover')
|
|
362
|
-
expect(css).toContain('transform: rotate(90deg);')
|
|
363
|
-
})
|
|
364
|
-
|
|
365
|
-
it('should handle translate with dark mode variant', () => {
|
|
366
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
367
|
-
gen.generate('dark:translate-x-4')
|
|
368
|
-
const css = gen.toCSS(false)
|
|
369
|
-
expect(css).toContain('.dark')
|
|
370
|
-
expect(css).toContain('transform: translateX(1rem);')
|
|
371
|
-
})
|
|
372
|
-
})
|
|
373
|
-
|
|
374
|
-
describe('Extreme and edge values', () => {
|
|
375
|
-
it('should handle scale-0', () => {
|
|
376
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
377
|
-
gen.generate('scale-0')
|
|
378
|
-
expect(gen.toCSS(false)).toContain('transform: scale(0);')
|
|
379
|
-
})
|
|
380
|
-
|
|
381
|
-
it('should handle rotate-0', () => {
|
|
382
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
383
|
-
gen.generate('rotate-0')
|
|
384
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(0deg);')
|
|
385
|
-
})
|
|
386
|
-
|
|
387
|
-
it('should handle very large rotate', () => {
|
|
388
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
389
|
-
gen.generate('rotate-[720deg]')
|
|
390
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(720deg);')
|
|
391
|
-
})
|
|
392
|
-
|
|
393
|
-
it('should handle fractional rotate', () => {
|
|
394
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
395
|
-
gen.generate('rotate-[0.5deg]')
|
|
396
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(0.5deg);')
|
|
397
|
-
})
|
|
398
|
-
})
|
|
399
|
-
|
|
400
|
-
describe('Transform with CSS variables', () => {
|
|
401
|
-
it('should handle scale with CSS variable', () => {
|
|
402
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
403
|
-
gen.generate('scale-[var(--scale)]')
|
|
404
|
-
expect(gen.toCSS(false)).toContain('transform: scale(var(--scale));')
|
|
405
|
-
})
|
|
406
|
-
|
|
407
|
-
it('should handle rotate with CSS variable', () => {
|
|
408
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
409
|
-
gen.generate('rotate-[var(--rotation)]')
|
|
410
|
-
expect(gen.toCSS(false)).toContain('transform: rotate(var(--rotation));')
|
|
411
|
-
})
|
|
412
|
-
|
|
413
|
-
it('should handle translate with calc', () => {
|
|
414
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
415
|
-
gen.generate('translate-x-[calc(100%+1rem)]')
|
|
416
|
-
expect(gen.toCSS(false)).toContain('transform: translateX(calc(100%+1rem));')
|
|
417
|
-
})
|
|
418
|
-
})
|
|
419
|
-
|
|
420
|
-
describe('Translate with percentage', () => {
|
|
421
|
-
it('should handle translate-x-1/2', () => {
|
|
422
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
423
|
-
gen.generate('translate-x-1/2')
|
|
424
|
-
expect(gen.toCSS(false)).toContain('transform: translateX(50%);')
|
|
425
|
-
})
|
|
426
|
-
|
|
427
|
-
it('should handle translate-y-1/3', () => {
|
|
428
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
429
|
-
gen.generate('translate-y-1/3')
|
|
430
|
-
const css = gen.toCSS(false)
|
|
431
|
-
expect(css).toContain('transform: translateY(33.')
|
|
432
|
-
expect(css).toContain('%);')
|
|
433
|
-
})
|
|
434
|
-
|
|
435
|
-
it('should handle translate-y-full', () => {
|
|
436
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
437
|
-
gen.generate('translate-y-full')
|
|
438
|
-
expect(gen.toCSS(false)).toContain('transform: translateY(100%);')
|
|
439
|
-
})
|
|
440
|
-
|
|
441
|
-
it('should handle negative translate with fraction', () => {
|
|
442
|
-
const gen = new CSSGenerator(defaultConfig)
|
|
443
|
-
gen.generate('-translate-x-1/2')
|
|
444
|
-
expect(gen.toCSS(false)).toContain('transform: translateX(-50%);')
|
|
445
|
-
})
|
|
446
|
-
})
|
|
447
|
-
})
|
|
448
|
-
})
|