@pyreon/styler 0.11.4 → 0.11.6
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 +27 -23
- package/lib/index.d.ts +9 -2
- package/lib/index.js +47 -4
- package/package.json +22 -22
- package/src/ThemeProvider.ts +10 -3
- package/src/__tests__/ThemeProvider.test.ts +21 -21
- package/src/__tests__/benchmark.bench.ts +56 -45
- package/src/__tests__/composition-chain.test.ts +200 -151
- package/src/__tests__/forward.test.ts +122 -122
- package/src/__tests__/globalStyle.test.ts +18 -18
- package/src/__tests__/hash.test.ts +27 -27
- package/src/__tests__/hybrid-injection.test.ts +83 -59
- package/src/__tests__/index.ts +10 -10
- package/src/__tests__/insertion-effect.test.ts +45 -32
- package/src/__tests__/integration.test.ts +81 -51
- package/src/__tests__/keyframes.test.ts +13 -13
- package/src/__tests__/memory-growth.test.ts +21 -21
- package/src/__tests__/p3-features.test.ts +162 -104
- package/src/__tests__/shared.test.ts +51 -33
- package/src/__tests__/sheet-advanced.test.ts +227 -227
- package/src/__tests__/sheet-split-atrules.test.ts +85 -85
- package/src/__tests__/sheet.test.ts +69 -69
- package/src/__tests__/styled-ssr.test.ts +36 -28
- package/src/__tests__/styled.test.ts +214 -145
- package/src/__tests__/theme.test.ts +11 -11
- package/src/__tests__/useCSS.test.ts +89 -59
- package/src/css.ts +1 -1
- package/src/forward.ts +187 -187
- package/src/globalStyle.ts +5 -5
- package/src/index.ts +15 -15
- package/src/keyframes.ts +3 -3
- package/src/resolve.ts +14 -14
- package/src/shared.ts +2 -2
- package/src/sheet.ts +26 -26
- package/src/styled.tsx +145 -100
- package/src/useCSS.ts +4 -4
|
@@ -1,72 +1,90 @@
|
|
|
1
|
-
import { describe, expect, it } from
|
|
2
|
-
import { css } from
|
|
3
|
-
import { CSSResult } from
|
|
4
|
-
import { isDynamic } from
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { css } from '../css'
|
|
3
|
+
import { CSSResult } from '../resolve'
|
|
4
|
+
import { isDynamic } from '../shared'
|
|
5
5
|
|
|
6
|
-
describe(
|
|
7
|
-
it(
|
|
8
|
-
expect(isDynamic(() =>
|
|
6
|
+
describe('isDynamic', () => {
|
|
7
|
+
it('returns true for function values', () => {
|
|
8
|
+
expect(isDynamic(() => 'red')).toBe(true)
|
|
9
9
|
})
|
|
10
10
|
|
|
11
|
-
it(
|
|
12
|
-
expect(isDynamic(
|
|
11
|
+
it('returns false for string values', () => {
|
|
12
|
+
expect(isDynamic('color: red;')).toBe(false)
|
|
13
13
|
})
|
|
14
14
|
|
|
15
|
-
it(
|
|
15
|
+
it('returns false for number values', () => {
|
|
16
16
|
expect(isDynamic(42)).toBe(false)
|
|
17
17
|
})
|
|
18
18
|
|
|
19
|
-
it(
|
|
19
|
+
it('returns false for null and undefined', () => {
|
|
20
20
|
expect(isDynamic(null)).toBe(false)
|
|
21
21
|
expect(isDynamic(undefined)).toBe(false)
|
|
22
22
|
})
|
|
23
23
|
|
|
24
|
-
it(
|
|
24
|
+
it('returns false for boolean values', () => {
|
|
25
25
|
expect(isDynamic(true)).toBe(false)
|
|
26
26
|
expect(isDynamic(false)).toBe(false)
|
|
27
27
|
})
|
|
28
28
|
|
|
29
|
-
it(
|
|
30
|
-
expect(isDynamic([
|
|
29
|
+
it('returns true for arrays containing functions', () => {
|
|
30
|
+
expect(isDynamic(['a', () => 'b'])).toBe(true)
|
|
31
31
|
})
|
|
32
32
|
|
|
33
|
-
it(
|
|
34
|
-
expect(isDynamic([
|
|
33
|
+
it('returns false for arrays of static values', () => {
|
|
34
|
+
expect(isDynamic(['a', 'b', 42])).toBe(false)
|
|
35
35
|
})
|
|
36
36
|
|
|
37
|
-
it(
|
|
38
|
-
const result = css`
|
|
37
|
+
it('returns true for CSSResult with dynamic values', () => {
|
|
38
|
+
const result = css`
|
|
39
|
+
color: ${() => 'red'};
|
|
40
|
+
`
|
|
39
41
|
expect(isDynamic(result)).toBe(true)
|
|
40
42
|
})
|
|
41
43
|
|
|
42
|
-
it(
|
|
43
|
-
const result = css`
|
|
44
|
+
it('returns false for CSSResult with only static values', () => {
|
|
45
|
+
const result = css`
|
|
46
|
+
color: ${'red'};
|
|
47
|
+
`
|
|
44
48
|
expect(isDynamic(result)).toBe(false)
|
|
45
49
|
})
|
|
46
50
|
|
|
47
|
-
it(
|
|
48
|
-
const inner = css`
|
|
49
|
-
|
|
51
|
+
it('returns true for nested dynamic CSSResult', () => {
|
|
52
|
+
const inner = css`
|
|
53
|
+
color: ${() => 'red'};
|
|
54
|
+
`
|
|
55
|
+
const outer = css`
|
|
56
|
+
${inner}
|
|
57
|
+
`
|
|
50
58
|
expect(isDynamic(outer)).toBe(true)
|
|
51
59
|
})
|
|
52
60
|
|
|
53
|
-
it(
|
|
54
|
-
const inner = css`
|
|
55
|
-
|
|
61
|
+
it('returns false for nested static CSSResult', () => {
|
|
62
|
+
const inner = css`
|
|
63
|
+
color: red;
|
|
64
|
+
`
|
|
65
|
+
const outer = css`
|
|
66
|
+
${inner}
|
|
67
|
+
`
|
|
56
68
|
expect(isDynamic(outer)).toBe(false)
|
|
57
69
|
})
|
|
58
70
|
|
|
59
|
-
it(
|
|
60
|
-
const deep = css`
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
it('detects deeply nested dynamic values', () => {
|
|
72
|
+
const deep = css`
|
|
73
|
+
color: ${() => 'red'};
|
|
74
|
+
`
|
|
75
|
+
const mid = css`
|
|
76
|
+
${deep}
|
|
77
|
+
`
|
|
78
|
+
const outer = css`
|
|
79
|
+
${mid}
|
|
80
|
+
`
|
|
63
81
|
expect(isDynamic(outer)).toBe(true)
|
|
64
82
|
})
|
|
65
83
|
|
|
66
|
-
it(
|
|
84
|
+
it('handles arrays inside CSSResult', () => {
|
|
67
85
|
const result = new CSSResult(
|
|
68
|
-
Object.assign([
|
|
69
|
-
[[
|
|
86
|
+
Object.assign(['', ''], { raw: ['', ''] }) as TemplateStringsArray,
|
|
87
|
+
[['a', () => 'b']],
|
|
70
88
|
)
|
|
71
89
|
expect(isDynamic(result)).toBe(true)
|
|
72
90
|
})
|