zyzz 0.0.20 → 0.0.22
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/Zyzz.podspec +16 -0
- package/dist/Style.d.ts +10 -1
- package/dist/Style.d.ts.map +1 -1
- package/dist/Style.js +1 -5
- package/dist/Style.js.map +1 -1
- package/dist/babel/NativeJsx.d.ts.map +1 -1
- package/dist/babel/NativeJsx.js +204 -12
- package/dist/babel/NativeJsx.js.map +1 -1
- package/dist/babel/index.d.ts +6 -2
- package/dist/babel/index.d.ts.map +1 -1
- package/dist/babel/index.js +10 -1
- package/dist/babel/index.js.map +1 -1
- package/dist/compiler/Graph.d.ts +3 -0
- package/dist/compiler/Graph.d.ts.map +1 -1
- package/dist/compiler/Graph.js +108 -37
- package/dist/compiler/Graph.js.map +1 -1
- package/dist/compiler/Native.d.ts +6 -3
- package/dist/compiler/Native.d.ts.map +1 -1
- package/dist/compiler/Native.js +142 -24
- package/dist/compiler/Native.js.map +1 -1
- package/dist/compiler/Source.d.ts +6 -0
- package/dist/compiler/Source.d.ts.map +1 -1
- package/dist/compiler/Source.js +80 -11
- package/dist/compiler/Source.js.map +1 -1
- package/dist/compiler/Transform.d.ts +4 -1
- package/dist/compiler/Transform.d.ts.map +1 -1
- package/dist/compiler/Transform.js +32 -46
- package/dist/compiler/Transform.js.map +1 -1
- package/dist/compiler/internal/Catalogs.d.ts.map +1 -1
- package/dist/compiler/internal/Catalogs.js +6 -1
- package/dist/compiler/internal/Catalogs.js.map +1 -1
- package/dist/compiler/internal/Compositions.d.ts.map +1 -1
- package/dist/compiler/internal/Compositions.js +5 -0
- package/dist/compiler/internal/Compositions.js.map +1 -1
- package/dist/compiler/internal/Configurations.d.ts +2 -0
- package/dist/compiler/internal/Configurations.d.ts.map +1 -1
- package/dist/compiler/internal/Configurations.js +23 -4
- package/dist/compiler/internal/Configurations.js.map +1 -1
- package/dist/compiler/internal/Contract.d.ts +4 -1
- package/dist/compiler/internal/Contract.d.ts.map +1 -1
- package/dist/compiler/internal/Contract.js +97 -151
- package/dist/compiler/internal/Contract.js.map +1 -1
- package/dist/compiler/internal/Contributions.d.ts.map +1 -1
- package/dist/compiler/internal/Contributions.js +8 -4
- package/dist/compiler/internal/Contributions.js.map +1 -1
- package/dist/compiler/internal/Descriptors.d.ts.map +1 -1
- package/dist/compiler/internal/Descriptors.js +11 -2
- package/dist/compiler/internal/Descriptors.js.map +1 -1
- package/dist/compiler/internal/Dynamic.d.ts +1 -1
- package/dist/compiler/internal/Dynamic.d.ts.map +1 -1
- package/dist/compiler/internal/Dynamic.js +5 -5
- package/dist/compiler/internal/Dynamic.js.map +1 -1
- package/dist/compiler/internal/Names.d.ts +5 -0
- package/dist/compiler/internal/Names.d.ts.map +1 -0
- package/dist/compiler/internal/Names.js +37 -0
- package/dist/compiler/internal/Names.js.map +1 -0
- package/dist/compiler/internal/NativeBindings.d.ts +24 -26
- package/dist/compiler/internal/NativeBindings.d.ts.map +1 -1
- package/dist/compiler/internal/NativeBindings.js +61 -8
- package/dist/compiler/internal/NativeBindings.js.map +1 -1
- package/dist/compiler/internal/NativeMedia.d.ts +14 -0
- package/dist/compiler/internal/NativeMedia.d.ts.map +1 -0
- package/dist/compiler/internal/NativeMedia.js +287 -0
- package/dist/compiler/internal/NativeMedia.js.map +1 -0
- package/dist/compiler/internal/NativeVars.d.ts +28 -0
- package/dist/compiler/internal/NativeVars.d.ts.map +1 -0
- package/dist/compiler/internal/NativeVars.js +157 -0
- package/dist/compiler/internal/NativeVars.js.map +1 -0
- package/dist/compiler/internal/PackedStyles.d.ts +2 -0
- package/dist/compiler/internal/PackedStyles.d.ts.map +1 -1
- package/dist/compiler/internal/PackedStyles.js +2 -0
- package/dist/compiler/internal/PackedStyles.js.map +1 -1
- package/dist/compiler/internal/Selectors.d.ts +1 -1
- package/dist/compiler/internal/Selectors.d.ts.map +1 -1
- package/dist/compiler/internal/Selectors.js +5 -2
- package/dist/compiler/internal/Selectors.js.map +1 -1
- package/dist/compiler/internal/Stylesheets.js +2 -2
- package/dist/compiler/internal/Stylesheets.js.map +1 -1
- package/dist/compiler/internal/Themes.d.ts +22 -1
- package/dist/compiler/internal/Themes.d.ts.map +1 -1
- package/dist/compiler/internal/Themes.js +120 -4
- package/dist/compiler/internal/Themes.js.map +1 -1
- package/dist/compiler/internal/Vars.d.ts +3 -1
- package/dist/compiler/internal/Vars.d.ts.map +1 -1
- package/dist/compiler/internal/Vars.js +14 -3
- package/dist/compiler/internal/Vars.js.map +1 -1
- package/dist/default.d.ts +4 -4
- package/dist/default.d.ts.map +1 -1
- package/dist/default.js +9 -9
- package/dist/default.js.map +2 -2
- package/dist/default.js.zyzz.json +1 -1
- package/dist/internal/Authoring.d.ts.map +1 -1
- package/dist/internal/Authoring.js +8 -3
- package/dist/internal/Authoring.js.map +1 -1
- package/dist/internal/Binding.d.ts +4 -0
- package/dist/internal/Binding.d.ts.map +1 -1
- package/dist/internal/Binding.js +2 -0
- package/dist/internal/Binding.js.map +1 -1
- package/dist/internal/Completion.d.ts +1 -1
- package/dist/internal/Completion.d.ts.map +1 -1
- package/dist/internal/Configuration.d.ts +2 -2
- package/dist/internal/Configuration.d.ts.map +1 -1
- package/dist/internal/Configuration.js +4 -2
- package/dist/internal/Configuration.js.map +1 -1
- package/dist/internal/Identity.d.ts +3 -3
- package/dist/internal/Identity.d.ts.map +1 -1
- package/dist/internal/Identity.js +11 -9
- package/dist/internal/Identity.js.map +1 -1
- package/dist/internal/Targets.d.ts.map +1 -1
- package/dist/internal/Targets.js +2 -0
- package/dist/internal/Targets.js.map +1 -1
- package/dist/internal/Theme.js +2 -2
- package/dist/internal/Theme.js.map +1 -1
- package/dist/internal/Token.d.ts +3 -1
- package/dist/internal/Token.d.ts.map +1 -1
- package/dist/internal/Token.js +9 -2
- package/dist/internal/Token.js.map +1 -1
- package/dist/internal/Value.d.ts +7 -0
- package/dist/internal/Value.d.ts.map +1 -1
- package/dist/internal/Value.js.map +1 -1
- package/dist/internal/VariableSets.js +1 -1
- package/dist/internal/VariableSets.js.map +1 -1
- package/dist/metro/Graph.d.ts +22 -7
- package/dist/metro/Graph.d.ts.map +1 -1
- package/dist/metro/Graph.js +179 -42
- package/dist/metro/Graph.js.map +1 -1
- package/dist/metro/Watch.d.ts +28 -4
- package/dist/metro/Watch.d.ts.map +1 -1
- package/dist/metro/Watch.js +39 -7
- package/dist/metro/Watch.js.map +1 -1
- package/dist/metro/index.d.ts +15 -4
- package/dist/metro/index.d.ts.map +1 -1
- package/dist/metro/index.js +27 -0
- package/dist/metro/index.js.map +1 -1
- package/dist/metro/transformer.d.ts +5 -1
- package/dist/metro/transformer.d.ts.map +1 -1
- package/dist/metro/transformer.js +5 -3
- package/dist/metro/transformer.js.map +1 -1
- package/dist/node/Host.d.ts.map +1 -1
- package/dist/node/Host.js +2 -0
- package/dist/node/Host.js.map +1 -1
- package/dist/react-native/StyleSheet.d.ts +3 -2
- package/dist/react-native/StyleSheet.d.ts.map +1 -1
- package/dist/react-native/StyleSheet.js +17 -34
- package/dist/react-native/StyleSheet.js.map +1 -1
- package/dist/react-native/index.d.ts +1 -1
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js +1 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/index.native.d.ts +5 -0
- package/dist/react-native/index.native.js +20 -0
- package/dist/react-native/index.native.js.map +7 -0
- package/dist/react-native/internal/Calculation.d.ts +7 -0
- package/dist/react-native/internal/Calculation.d.ts.map +1 -0
- package/dist/react-native/internal/Calculation.js +134 -0
- package/dist/react-native/internal/Calculation.js.map +1 -0
- package/dist/react-native/internal/Device.js +191 -0
- package/dist/react-native/internal/Device.js.map +7 -0
- package/dist/react-native/internal/NativeZyzz.js +7 -0
- package/dist/react-native/internal/NativeZyzz.js.map +7 -0
- package/dist/react-native/internal/Scalar.d.ts.map +1 -1
- package/dist/react-native/internal/Scalar.js +9 -2
- package/dist/react-native/internal/Scalar.js.map +1 -1
- package/dist/react-native/internal/Store.d.ts +32 -0
- package/dist/react-native/internal/Store.d.ts.map +1 -0
- package/dist/react-native/internal/Store.js +57 -0
- package/dist/react-native/internal/Store.js.map +1 -0
- package/dist/react-native/internal/Tokens.d.ts +21 -0
- package/dist/react-native/internal/Tokens.d.ts.map +1 -0
- package/dist/react-native/internal/Tokens.js +58 -0
- package/dist/react-native/internal/Tokens.js.map +1 -0
- package/dist/react-native/internal/Viewport.d.ts +6 -0
- package/dist/react-native/internal/Viewport.d.ts.map +1 -0
- package/dist/react-native/internal/Viewport.js +4 -0
- package/dist/react-native/internal/Viewport.js.map +1 -0
- package/dist/react-native/react.d.ts +74 -11
- package/dist/react-native/react.d.ts.map +1 -1
- package/dist/react-native/react.js +111 -12
- package/dist/react-native/react.js.map +1 -1
- package/dist/react-native/reanimated.d.ts +39 -0
- package/dist/react-native/reanimated.d.ts.map +1 -0
- package/dist/react-native/reanimated.js +76 -0
- package/dist/react-native/reanimated.js.map +1 -0
- package/dist/runtime/NativeContext.d.ts +10 -1
- package/dist/runtime/NativeContext.d.ts.map +1 -1
- package/dist/runtime/NativeContext.js +67 -14
- package/dist/runtime/NativeContext.js.map +1 -1
- package/dist/runtime/NativeDynamic.d.ts +3 -2
- package/dist/runtime/NativeDynamic.d.ts.map +1 -1
- package/dist/runtime/NativeDynamic.js +32 -7
- package/dist/runtime/NativeDynamic.js.map +1 -1
- package/dist/runtime/NativeStatic.d.ts +23 -0
- package/dist/runtime/NativeStatic.d.ts.map +1 -0
- package/dist/runtime/NativeStatic.js +106 -0
- package/dist/runtime/NativeStatic.js.map +1 -0
- package/dist/runtime/NativeVars.d.ts +53 -0
- package/dist/runtime/NativeVars.d.ts.map +1 -0
- package/dist/runtime/NativeVars.js +77 -0
- package/dist/runtime/NativeVars.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +4 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/internal/NativeMedia.d.ts +25 -0
- package/dist/runtime/internal/NativeMedia.d.ts.map +1 -0
- package/dist/runtime/internal/NativeMedia.js +36 -0
- package/dist/runtime/internal/NativeMedia.js.map +1 -0
- package/dist/variable.js +1 -1
- package/dist/variable.js.map +1 -1
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +43 -47
- package/dist/vite/index.js.map +1 -1
- package/dist/web/Css.d.ts +7 -2
- package/dist/web/Css.d.ts.map +1 -1
- package/dist/web/Css.js +76 -57
- package/dist/web/Css.js.map +1 -1
- package/dist/web/internal/ClassName.d.ts +13 -2
- package/dist/web/internal/ClassName.d.ts.map +1 -1
- package/dist/web/internal/ClassName.js +17 -30
- package/dist/web/internal/ClassName.js.map +1 -1
- package/dist/web/internal/Themes.d.ts +3 -2
- package/dist/web/internal/Themes.d.ts.map +1 -1
- package/dist/web/internal/Themes.js +54 -28
- package/dist/web/internal/Themes.js.map +1 -1
- package/dist/web/page.d.ts +2 -0
- package/dist/web/page.d.ts.map +1 -1
- package/native/NativeZyzz.cpp +215 -0
- package/native/NativeZyzz.h +52 -0
- package/native/ZyzzSpecJSI.h +65 -0
- package/native/android/CMakeLists.txt +8 -0
- package/native/android/ZyzzSpec-generated.cpp +50 -0
- package/native/android/ZyzzSpec.h +31 -0
- package/native/ios/ZyzzModuleProvider.mm +13 -0
- package/package.json +39 -1
- package/react-native.config.ts +14 -0
- package/src/Style.ts +15 -9
- package/src/babel/NativeJsx.ts +305 -28
- package/src/babel/index.ts +21 -3
- package/src/compiler/Graph.ts +135 -46
- package/src/compiler/Native.ts +158 -26
- package/src/compiler/Source.ts +115 -10
- package/src/compiler/Transform.ts +42 -60
- package/src/compiler/internal/Catalogs.ts +9 -1
- package/src/compiler/internal/Compositions.ts +7 -0
- package/src/compiler/internal/Configurations.ts +27 -4
- package/src/compiler/internal/Contract.ts +130 -260
- package/src/compiler/internal/Contributions.ts +8 -6
- package/src/compiler/internal/Descriptors.ts +12 -8
- package/src/compiler/internal/Dynamic.ts +14 -9
- package/src/compiler/internal/Names.ts +48 -0
- package/src/compiler/internal/NativeBindings.ts +98 -15
- package/src/compiler/internal/NativeMedia.ts +342 -0
- package/src/compiler/internal/NativeVars.ts +228 -0
- package/src/compiler/internal/PackedStyles.ts +4 -0
- package/src/compiler/internal/Selectors.ts +6 -1
- package/src/compiler/internal/Stylesheets.ts +2 -2
- package/src/compiler/internal/Themes.ts +193 -3
- package/src/compiler/internal/Vars.ts +21 -2
- package/src/default.ts +9 -10
- package/src/internal/Authoring.ts +8 -2
- package/src/internal/Binding.ts +5 -0
- package/src/internal/Completion.ts +6 -3
- package/src/internal/Configuration.ts +7 -4
- package/src/internal/Identity.ts +14 -12
- package/src/internal/Targets.ts +2 -0
- package/src/internal/Theme.ts +2 -2
- package/src/internal/Token.ts +11 -1
- package/src/internal/Value.ts +20 -0
- package/src/internal/VariableSets.ts +1 -1
- package/src/metro/Graph.ts +235 -50
- package/src/metro/Watch.ts +95 -10
- package/src/metro/index.ts +62 -4
- package/src/metro/transformer.ts +21 -11
- package/src/node/Host.ts +3 -0
- package/src/react-native/StyleSheet.ts +28 -44
- package/src/react-native/index.native.ts +10 -0
- package/src/react-native/index.ts +1 -1
- package/src/react-native/internal/Calculation.ts +159 -0
- package/src/react-native/internal/Device.ts +231 -0
- package/src/react-native/internal/NativeZyzz.ts +20 -0
- package/src/react-native/internal/Scalar.ts +13 -2
- package/src/react-native/internal/Store.ts +78 -0
- package/src/react-native/internal/Tokens.ts +85 -0
- package/src/react-native/internal/Viewport.ts +8 -0
- package/src/react-native/react.ts +211 -19
- package/src/react-native/reanimated.ts +162 -0
- package/src/runtime/NativeContext.ts +88 -17
- package/src/runtime/NativeDynamic.ts +35 -10
- package/src/runtime/NativeStatic.ts +145 -0
- package/src/runtime/NativeVars.ts +189 -0
- package/src/runtime/index.ts +6 -0
- package/src/runtime/internal/NativeMedia.ts +63 -0
- package/src/variable.ts +1 -1
- package/src/vite/index.ts +52 -60
- package/src/web/Css.ts +123 -74
- package/src/web/internal/ClassName.ts +31 -36
- package/src/web/internal/Themes.ts +62 -39
- package/src/web/page.ts +2 -0
|
@@ -10,13 +10,29 @@ import type * as Theme from '../../internal/Theme.js'
|
|
|
10
10
|
|
|
11
11
|
/** Collects live token references within one in-memory compilation graph. */
|
|
12
12
|
export function create() {
|
|
13
|
-
let nextScope = 0
|
|
14
|
-
let nextVariable = 0
|
|
15
13
|
const contracts = new Map<
|
|
16
14
|
Token.Contract,
|
|
17
15
|
{ identity: string | undefined; paths: Map<string, string> }
|
|
18
16
|
>()
|
|
19
17
|
|
|
18
|
+
const anonymous = new Map<Token.Contract, Map<string, string>>()
|
|
19
|
+
let nextVariable = 0
|
|
20
|
+
function property(contract: Token.Contract, path: string): string {
|
|
21
|
+
const identity = contract[Token.identity]
|
|
22
|
+
if (identity) return variable(identity, path)
|
|
23
|
+
let paths = anonymous.get(contract)
|
|
24
|
+
if (!paths) {
|
|
25
|
+
paths = new Map()
|
|
26
|
+
anonymous.set(contract, paths)
|
|
27
|
+
}
|
|
28
|
+
let name = paths.get(path)
|
|
29
|
+
if (!name) {
|
|
30
|
+
name = `--z${(nextVariable++).toString(36)}`
|
|
31
|
+
paths.set(path, name)
|
|
32
|
+
}
|
|
33
|
+
return name
|
|
34
|
+
}
|
|
35
|
+
|
|
20
36
|
const defaults = new Map<string, readonly Rule[]>()
|
|
21
37
|
const defaultGroups = new Map<Token.Contract, Set<string>>()
|
|
22
38
|
|
|
@@ -35,14 +51,11 @@ export function create() {
|
|
|
35
51
|
let name = contract.paths.get(token.path)
|
|
36
52
|
|
|
37
53
|
if (!name) {
|
|
38
|
-
name =
|
|
39
|
-
contract.identity === undefined
|
|
40
|
-
? `--z${nextVariable++}`
|
|
41
|
-
: variable(contract.identity, token.path)
|
|
54
|
+
name = property(token.contract, token.path)
|
|
42
55
|
contract.paths.set(token.path, name)
|
|
43
56
|
}
|
|
44
57
|
|
|
45
|
-
const label =
|
|
58
|
+
const label = token.path
|
|
46
59
|
return `var(${name},${literal(value, label, token.contract)})`
|
|
47
60
|
}
|
|
48
61
|
|
|
@@ -52,6 +65,8 @@ export function create() {
|
|
|
52
65
|
separate?: 'all' | 'defaults',
|
|
53
66
|
) {
|
|
54
67
|
const classes: Record<string, string> = Object.create(null)
|
|
68
|
+
let nextScope = 0
|
|
69
|
+
const scopeBodies = new Map<string, string>()
|
|
55
70
|
const completeDefaults = new Set<Token.Contract>()
|
|
56
71
|
const empty: string[] = []
|
|
57
72
|
const rules: Rule[] = []
|
|
@@ -69,9 +84,16 @@ export function create() {
|
|
|
69
84
|
// Anonymous contracts are graph-local. Source-owned contracts retain stable
|
|
70
85
|
// identities across separately compiled components and theme scopes.
|
|
71
86
|
const className =
|
|
72
|
-
data.contract[Token.identity]
|
|
73
|
-
?
|
|
74
|
-
|
|
87
|
+
data.contract[Token.identity] || data.cssName
|
|
88
|
+
? scope(
|
|
89
|
+
data.cssName ??
|
|
90
|
+
(data.contract[Token.identity] &&
|
|
91
|
+
name.startsWith(`${data.contract[Token.identity]}-`)
|
|
92
|
+
? name.slice(data.contract[Token.identity]!.length + 1)
|
|
93
|
+
: name),
|
|
94
|
+
data.contract[Token.identity],
|
|
95
|
+
)
|
|
96
|
+
: `z${(nextScope++).toString(36)}`
|
|
75
97
|
|
|
76
98
|
classes[name] = className
|
|
77
99
|
|
|
@@ -87,27 +109,19 @@ export function create() {
|
|
|
87
109
|
for (const path of Object.keys(data.values)) {
|
|
88
110
|
if (contract.paths.has(path)) continue
|
|
89
111
|
|
|
90
|
-
contract.paths.set(
|
|
91
|
-
path,
|
|
92
|
-
contract.identity === undefined
|
|
93
|
-
? `--z${nextVariable++}`
|
|
94
|
-
: variable(contract.identity, path),
|
|
95
|
-
)
|
|
112
|
+
contract.paths.set(path, property(data.contract, path))
|
|
96
113
|
}
|
|
97
114
|
|
|
98
115
|
contracts.set(data.contract, contract)
|
|
99
116
|
}
|
|
100
117
|
|
|
101
118
|
if (!contract) continue
|
|
119
|
+
|
|
102
120
|
// Independently compiled consumers must import identical fallback contents.
|
|
103
121
|
if (separate === 'all' && contract.identity) {
|
|
104
122
|
completeDefaults.add(data.contract)
|
|
105
123
|
for (const [path, value] of Object.entries(data.values))
|
|
106
|
-
literal(
|
|
107
|
-
value,
|
|
108
|
-
contract.identity.startsWith('src-') ? path : undefined,
|
|
109
|
-
data.contract,
|
|
110
|
-
)
|
|
124
|
+
literal(value, path, data.contract)
|
|
111
125
|
}
|
|
112
126
|
if (!contract.paths.size) empty.push(`.${className}{}`)
|
|
113
127
|
|
|
@@ -119,7 +133,7 @@ export function create() {
|
|
|
119
133
|
if (value === undefined)
|
|
120
134
|
throw new Error('Theme scope is missing a live token.')
|
|
121
135
|
|
|
122
|
-
const label =
|
|
136
|
+
const label = path
|
|
123
137
|
declarations.push({
|
|
124
138
|
conditions: [],
|
|
125
139
|
property: name,
|
|
@@ -135,12 +149,26 @@ export function create() {
|
|
|
135
149
|
name,
|
|
136
150
|
`.${className}`,
|
|
137
151
|
rules,
|
|
138
|
-
|
|
152
|
+
path,
|
|
139
153
|
[],
|
|
140
154
|
data.contract,
|
|
141
155
|
)
|
|
142
156
|
}
|
|
143
157
|
|
|
158
|
+
for (const rule of rules) {
|
|
159
|
+
const key = JSON.stringify([
|
|
160
|
+
rule.selector,
|
|
161
|
+
rule.conditions,
|
|
162
|
+
rule.property,
|
|
163
|
+
])
|
|
164
|
+
const previous = scopeBodies.get(key)
|
|
165
|
+
if (previous !== undefined && previous !== rule.value)
|
|
166
|
+
throw new Error(
|
|
167
|
+
`Generated scope ${rule.selector.slice(1)} conflicts. Supply distinct config ids.`,
|
|
168
|
+
)
|
|
169
|
+
scopeBodies.set(key, rule.value)
|
|
170
|
+
}
|
|
171
|
+
|
|
144
172
|
const scopes = new Map<string, Rule[]>()
|
|
145
173
|
for (const rule of rules) {
|
|
146
174
|
const entries = scopes.get(rule.property) ?? []
|
|
@@ -188,6 +216,7 @@ export function create() {
|
|
|
188
216
|
]
|
|
189
217
|
.filter(Boolean)
|
|
190
218
|
.join('\n'),
|
|
219
|
+
rules,
|
|
191
220
|
resources: separate
|
|
192
221
|
? [
|
|
193
222
|
...resources,
|
|
@@ -230,9 +259,7 @@ export function create() {
|
|
|
230
259
|
const base = literal(value.default, label, owner)
|
|
231
260
|
// Rule consolidation must not change existing variable identities.
|
|
232
261
|
const css = `:where(*){--fallback:${base};}${conditionalCss(value, '--fallback', ':where(*)', label, owner)}`
|
|
233
|
-
const name = label
|
|
234
|
-
? `--z-${Identity.label(label)}-fallback-${Identity.compact(css)}`
|
|
235
|
-
: `--z-f${Identity.hash(css)}`
|
|
262
|
+
const name = `${owner ? property(owner, label ?? 'value') : variable(undefined, label ?? 'value')}-fallback-${Identity.name(css)}`
|
|
236
263
|
const emitted: Rule[] = [
|
|
237
264
|
{ conditions: [], property: name, selector: ':where(*)', value: base },
|
|
238
265
|
]
|
|
@@ -307,14 +334,6 @@ export function create() {
|
|
|
307
334
|
return { emit, serialize }
|
|
308
335
|
}
|
|
309
336
|
|
|
310
|
-
/** Escapes a scope key into the identifier segment of its compiled class. */
|
|
311
|
-
export function encode(value: string): string {
|
|
312
|
-
return value.replace(
|
|
313
|
-
/[^a-zA-Z0-9-]/g,
|
|
314
|
-
(character) => `_${character.charCodeAt(0).toString(16)}_`,
|
|
315
|
-
)
|
|
316
|
-
}
|
|
317
|
-
|
|
318
337
|
/** Combines generated declarations without crossing competing declarations of the same property. */
|
|
319
338
|
export function render(rules: readonly Rule[]): string {
|
|
320
339
|
const groups: {
|
|
@@ -384,9 +403,13 @@ export type Rule = {
|
|
|
384
403
|
/** Selects independently shareable defaults or all token rules. */
|
|
385
404
|
export const shared = Symbol('shared token rules')
|
|
386
405
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
406
|
+
/** Names an authored scope without its private source identity. */
|
|
407
|
+
export function scope(value: string, identity?: string): string {
|
|
408
|
+
const namespace = identity?.startsWith('id-') ? `${identity.slice(3)}-` : ''
|
|
409
|
+
return `z-theme-${namespace}${Identity.name(value)}`
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
function variable(identity: string | undefined, path: string): string {
|
|
413
|
+
const namespace = identity?.startsWith('id-') ? `${identity.slice(3)}-` : ''
|
|
414
|
+
return `--z-${namespace}${path.split('.').map(Identity.name).join('-')}`
|
|
392
415
|
}
|
package/src/web/page.ts
CHANGED
|
@@ -35,6 +35,8 @@ export declare namespace page {
|
|
|
35
35
|
| 'crop cross'
|
|
36
36
|
| 'cross crop'
|
|
37
37
|
| undefined
|
|
38
|
+
/** Handling of page margins that exceed the printer's printable area. */
|
|
39
|
+
readonly pageMarginSafety?: 'none' | 'clamp' | 'add' | undefined
|
|
38
40
|
/** Rotation applied to a laid-out page. */
|
|
39
41
|
readonly pageOrientation?:
|
|
40
42
|
| 'upright'
|