zyzz 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +34 -19
  2. package/dist/Config.d.ts +16 -167
  3. package/dist/Config.d.ts.map +1 -1
  4. package/dist/Config.js +7 -246
  5. package/dist/Config.js.map +1 -1
  6. package/dist/Style.d.ts +19 -13
  7. package/dist/Style.d.ts.map +1 -1
  8. package/dist/Style.js +73 -7
  9. package/dist/Style.js.map +1 -1
  10. package/dist/Vars.d.ts +114 -0
  11. package/dist/Vars.d.ts.map +1 -0
  12. package/dist/Vars.js +42 -0
  13. package/dist/Vars.js.map +1 -0
  14. package/dist/compiler/Graph.js +11 -8
  15. package/dist/compiler/Graph.js.map +1 -1
  16. package/dist/compiler/Native.d.ts +5 -5
  17. package/dist/compiler/Native.d.ts.map +1 -1
  18. package/dist/compiler/Native.js +21 -21
  19. package/dist/compiler/Native.js.map +1 -1
  20. package/dist/compiler/Source.d.ts +10 -6
  21. package/dist/compiler/Source.d.ts.map +1 -1
  22. package/dist/compiler/Source.js +66 -11
  23. package/dist/compiler/Source.js.map +1 -1
  24. package/dist/compiler/Transform.d.ts +1 -1
  25. package/dist/compiler/Transform.d.ts.map +1 -1
  26. package/dist/compiler/Transform.js +59 -21
  27. package/dist/compiler/Transform.js.map +1 -1
  28. package/dist/compiler/internal/Compositions.d.ts +5 -0
  29. package/dist/compiler/internal/Compositions.d.ts.map +1 -1
  30. package/dist/compiler/internal/Compositions.js +22 -3
  31. package/dist/compiler/internal/Compositions.js.map +1 -1
  32. package/dist/compiler/internal/Configurations.d.ts.map +1 -1
  33. package/dist/compiler/internal/Configurations.js +73 -12
  34. package/dist/compiler/internal/Configurations.js.map +1 -1
  35. package/dist/compiler/internal/Contract.d.ts +1 -1
  36. package/dist/compiler/internal/Contract.d.ts.map +1 -1
  37. package/dist/compiler/internal/Contract.js +162 -13
  38. package/dist/compiler/internal/Contract.js.map +1 -1
  39. package/dist/compiler/internal/Contributions.js +1 -1
  40. package/dist/compiler/internal/Contributions.js.map +1 -1
  41. package/dist/compiler/internal/Dynamic.js +1 -1
  42. package/dist/compiler/internal/Dynamic.js.map +1 -1
  43. package/dist/compiler/internal/Expression.d.ts +3 -0
  44. package/dist/compiler/internal/Expression.d.ts.map +1 -1
  45. package/dist/compiler/internal/Expression.js +21 -0
  46. package/dist/compiler/internal/Expression.js.map +1 -1
  47. package/dist/compiler/internal/Identifiers.d.ts +1 -1
  48. package/dist/compiler/internal/Identifiers.d.ts.map +1 -1
  49. package/dist/compiler/internal/Identifiers.js +2 -2
  50. package/dist/compiler/internal/Identifiers.js.map +1 -1
  51. package/dist/compiler/internal/NativeBindings.d.ts +1 -1
  52. package/dist/compiler/internal/NativeBindings.d.ts.map +1 -1
  53. package/dist/compiler/internal/NativeBindings.js +3 -3
  54. package/dist/compiler/internal/NativeBindings.js.map +1 -1
  55. package/dist/compiler/internal/PackedStyles.d.ts +1 -1
  56. package/dist/compiler/internal/PackedStyles.d.ts.map +1 -1
  57. package/dist/compiler/internal/PackedStyles.js +15 -25
  58. package/dist/compiler/internal/PackedStyles.js.map +1 -1
  59. package/dist/compiler/internal/Recipes.js +1 -1
  60. package/dist/compiler/internal/Recipes.js.map +1 -1
  61. package/dist/compiler/internal/Selectors.js +1 -1
  62. package/dist/compiler/internal/Selectors.js.map +1 -1
  63. package/dist/compiler/internal/Themes.d.ts +12 -3
  64. package/dist/compiler/internal/Themes.d.ts.map +1 -1
  65. package/dist/compiler/internal/Themes.js +192 -52
  66. package/dist/compiler/internal/Themes.js.map +1 -1
  67. package/dist/compiler/internal/{Variables.d.ts → Vars.d.ts} +1 -1
  68. package/dist/compiler/internal/Vars.d.ts.map +1 -0
  69. package/dist/compiler/internal/{Variables.js → Vars.js} +3 -3
  70. package/dist/compiler/internal/Vars.js.map +1 -0
  71. package/dist/default.d.ts +451 -1649
  72. package/dist/default.d.ts.map +1 -1
  73. package/dist/default.js +389 -80
  74. package/dist/default.js.map +2 -2
  75. package/dist/default.js.zyzz.json +1 -1
  76. package/dist/esbuild/index.d.ts +3 -0
  77. package/dist/esbuild/index.d.ts.map +1 -0
  78. package/dist/esbuild/index.js +5 -0
  79. package/dist/esbuild/index.js.map +1 -0
  80. package/dist/index.d.ts +4 -4
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +4 -4
  83. package/dist/index.js.map +1 -1
  84. package/dist/internal/Authoring.d.ts +1 -1
  85. package/dist/internal/Authoring.d.ts.map +1 -1
  86. package/dist/internal/Authoring.js +4 -4
  87. package/dist/internal/Authoring.js.map +1 -1
  88. package/dist/internal/Binding.d.ts +1 -1
  89. package/dist/internal/Binding.d.ts.map +1 -1
  90. package/dist/internal/Completion.d.ts +19 -0
  91. package/dist/internal/Completion.d.ts.map +1 -0
  92. package/dist/internal/Completion.js +2 -0
  93. package/dist/internal/Completion.js.map +1 -0
  94. package/dist/internal/Condition.d.ts +3 -1
  95. package/dist/internal/Condition.d.ts.map +1 -1
  96. package/dist/internal/Condition.js.map +1 -1
  97. package/dist/internal/Configuration.d.ts +248 -0
  98. package/dist/internal/Configuration.d.ts.map +1 -0
  99. package/dist/internal/Configuration.js +343 -0
  100. package/dist/internal/Configuration.js.map +1 -0
  101. package/dist/internal/Shorthands.d.ts +1 -1
  102. package/dist/internal/Shorthands.d.ts.map +1 -1
  103. package/dist/internal/Shorthands.js +1 -0
  104. package/dist/internal/Shorthands.js.map +1 -1
  105. package/dist/{Theme.d.ts → internal/Theme.d.ts} +24 -19
  106. package/dist/internal/Theme.d.ts.map +1 -0
  107. package/dist/{Theme.js → internal/Theme.js} +57 -14
  108. package/dist/internal/Theme.js.map +1 -0
  109. package/dist/internal/Token.d.ts +46 -16
  110. package/dist/internal/Token.d.ts.map +1 -1
  111. package/dist/internal/Token.js +89 -5
  112. package/dist/internal/Token.js.map +1 -1
  113. package/dist/internal/Typography.d.ts +31 -0
  114. package/dist/internal/Typography.d.ts.map +1 -0
  115. package/dist/internal/Typography.js +54 -0
  116. package/dist/internal/Typography.js.map +1 -0
  117. package/dist/internal/Value.d.ts +6 -1
  118. package/dist/internal/Value.d.ts.map +1 -1
  119. package/dist/internal/Value.js.map +1 -1
  120. package/dist/internal/VariableSets.d.ts +20 -0
  121. package/dist/internal/VariableSets.d.ts.map +1 -0
  122. package/dist/internal/VariableSets.js +317 -0
  123. package/dist/internal/VariableSets.js.map +1 -0
  124. package/dist/next/loader.js +15 -5
  125. package/dist/next/loader.js.map +1 -1
  126. package/dist/node/Host.d.ts.map +1 -1
  127. package/dist/node/Host.js +1 -1
  128. package/dist/node/Host.js.map +1 -1
  129. package/dist/react-native/Host.d.ts +2 -2
  130. package/dist/react-native/Host.d.ts.map +1 -1
  131. package/dist/react-native/Host.js +4 -4
  132. package/dist/react-native/Host.js.map +1 -1
  133. package/dist/react-native/StyleSheet.d.ts +9 -8
  134. package/dist/react-native/StyleSheet.d.ts.map +1 -1
  135. package/dist/react-native/StyleSheet.js +29 -23
  136. package/dist/react-native/StyleSheet.js.map +1 -1
  137. package/dist/react-native/Variants.d.ts +3 -3
  138. package/dist/react-native/Variants.d.ts.map +1 -1
  139. package/dist/react-native/Variants.js +2 -2
  140. package/dist/react-native/react.d.ts +1 -1
  141. package/dist/react-native/react.d.ts.map +1 -1
  142. package/dist/react-native/react.js +5 -5
  143. package/dist/react-native/react.js.map +1 -1
  144. package/dist/rollup/index.d.ts +3 -0
  145. package/dist/rollup/index.d.ts.map +1 -0
  146. package/dist/rollup/index.js +5 -0
  147. package/dist/rollup/index.js.map +1 -0
  148. package/dist/runtime/Appearance.d.ts +7 -7
  149. package/dist/runtime/Appearance.d.ts.map +1 -1
  150. package/dist/runtime/Appearance.js +15 -15
  151. package/dist/runtime/Appearance.js.map +1 -1
  152. package/dist/runtime/Dynamic.d.ts.map +1 -1
  153. package/dist/runtime/Dynamic.js +4 -1
  154. package/dist/runtime/Dynamic.js.map +1 -1
  155. package/dist/runtime/NativeContext.d.ts +4 -4
  156. package/dist/runtime/NativeContext.d.ts.map +1 -1
  157. package/dist/runtime/NativeContext.js +5 -5
  158. package/dist/runtime/NativeContext.js.map +1 -1
  159. package/dist/runtime/NativeDynamic.d.ts +1 -1
  160. package/dist/runtime/NativeDynamic.d.ts.map +1 -1
  161. package/dist/runtime/NativeDynamic.js.map +1 -1
  162. package/dist/runtime/Props.d.ts +1 -1
  163. package/dist/runtime/Props.js +3 -3
  164. package/dist/runtime/Props.js.map +1 -1
  165. package/dist/runtime/Selection.d.ts +14 -10
  166. package/dist/runtime/Selection.d.ts.map +1 -1
  167. package/dist/runtime/Selection.js +19 -18
  168. package/dist/runtime/Selection.js.map +1 -1
  169. package/dist/styleFunction.d.ts +14 -14
  170. package/dist/styleFunction.d.ts.map +1 -1
  171. package/dist/styleFunction.js.map +1 -1
  172. package/dist/unplugin/index.d.ts +20 -0
  173. package/dist/unplugin/index.d.ts.map +1 -0
  174. package/dist/unplugin/index.js +498 -0
  175. package/dist/unplugin/index.js.map +1 -0
  176. package/dist/variants.d.ts +3 -3
  177. package/dist/variants.d.ts.map +1 -1
  178. package/dist/variants.js.map +1 -1
  179. package/dist/vite/index.d.ts.map +1 -1
  180. package/dist/vite/index.js +6 -3
  181. package/dist/vite/index.js.map +1 -1
  182. package/dist/web/Css.d.ts +4 -3
  183. package/dist/web/Css.d.ts.map +1 -1
  184. package/dist/web/Css.js +4 -4
  185. package/dist/web/Css.js.map +1 -1
  186. package/dist/web/internal/Themes.d.ts +3 -2
  187. package/dist/web/internal/Themes.d.ts.map +1 -1
  188. package/dist/web/internal/Themes.js +42 -6
  189. package/dist/web/internal/Themes.js.map +1 -1
  190. package/dist/webpack/index.d.ts +3 -0
  191. package/dist/webpack/index.d.ts.map +1 -0
  192. package/dist/webpack/index.js +5 -0
  193. package/dist/webpack/index.js.map +1 -0
  194. package/package.json +23 -2
  195. package/src/Config.ts +43 -684
  196. package/src/Style.ts +167 -40
  197. package/src/Vars.ts +299 -0
  198. package/src/compiler/Graph.ts +14 -9
  199. package/src/compiler/Native.ts +29 -32
  200. package/src/compiler/Source.ts +85 -18
  201. package/src/compiler/Transform.ts +78 -22
  202. package/src/compiler/internal/Compositions.ts +36 -3
  203. package/src/compiler/internal/Configurations.ts +83 -11
  204. package/src/compiler/internal/Contract.ts +223 -17
  205. package/src/compiler/internal/Contributions.ts +1 -1
  206. package/src/compiler/internal/Dynamic.ts +1 -1
  207. package/src/compiler/internal/Expression.ts +26 -0
  208. package/src/compiler/internal/Identifiers.ts +2 -1
  209. package/src/compiler/internal/NativeBindings.ts +3 -3
  210. package/src/compiler/internal/PackedStyles.ts +22 -26
  211. package/src/compiler/internal/Recipes.ts +1 -1
  212. package/src/compiler/internal/Selectors.ts +1 -1
  213. package/src/compiler/internal/Themes.ts +266 -57
  214. package/src/compiler/internal/{Variables.ts → Vars.ts} +2 -2
  215. package/src/default.ts +868 -156
  216. package/src/esbuild/index.ts +5 -0
  217. package/src/index.ts +4 -4
  218. package/src/internal/Authoring.ts +5 -7
  219. package/src/internal/Binding.ts +1 -1
  220. package/src/internal/Completion.ts +42 -0
  221. package/src/internal/Condition.ts +31 -1
  222. package/src/internal/Configuration.ts +970 -0
  223. package/src/internal/Shorthands.ts +2 -0
  224. package/src/{Theme.ts → internal/Theme.ts} +174 -48
  225. package/src/internal/Token.ts +258 -85
  226. package/src/internal/Typography.ts +106 -0
  227. package/src/internal/Value.ts +45 -26
  228. package/src/internal/VariableSets.ts +458 -0
  229. package/src/next/loader.ts +19 -5
  230. package/src/node/Host.ts +1 -2
  231. package/src/react-native/Host.ts +6 -6
  232. package/src/react-native/StyleSheet.ts +49 -42
  233. package/src/react-native/Variants.ts +3 -3
  234. package/src/react-native/react.ts +6 -6
  235. package/src/rollup/index.ts +5 -0
  236. package/src/runtime/Appearance.ts +20 -20
  237. package/src/runtime/Dynamic.ts +4 -1
  238. package/src/runtime/NativeContext.ts +8 -8
  239. package/src/runtime/NativeDynamic.ts +2 -4
  240. package/src/runtime/Props.ts +3 -3
  241. package/src/runtime/Selection.ts +44 -33
  242. package/src/styleFunction.ts +22 -19
  243. package/src/unplugin/index.ts +600 -0
  244. package/src/variants.ts +7 -5
  245. package/src/vite/index.ts +5 -4
  246. package/src/web/Css.ts +10 -7
  247. package/src/web/internal/Themes.ts +52 -9
  248. package/src/webpack/index.ts +5 -0
  249. package/dist/Theme.d.ts.map +0 -1
  250. package/dist/Theme.js.map +0 -1
  251. package/dist/compiler/internal/Variables.d.ts.map +0 -1
  252. package/dist/compiler/internal/Variables.js.map +0 -1
@@ -2,14 +2,16 @@
2
2
  * Defines typed token contracts and compatible immutable theme overrides.
3
3
  * @module
4
4
  */
5
- import { MissingTransformError, style } from './styleFunction.js';
6
- import * as Authoring from './internal/Authoring.js';
7
- import * as Identity from './internal/Identity.js';
8
- import { variants } from './variants.js';
9
- import * as Query from './internal/Query.js';
10
- import * as Token from './internal/Token.js';
5
+ import { MissingTransformError, style } from '../styleFunction.js';
6
+ import * as Authoring from './Authoring.js';
7
+ import * as Identity from './Identity.js';
8
+ import { variants } from '../variants.js';
9
+ import * as Query from './Query.js';
10
+ import * as Token from './Token.js';
11
+ import * as Typography from './Typography.js';
12
+ import * as Condition from './Condition.js';
11
13
  /**
12
- * Defines scalar tokens without metadata, defaults, or environment access.
14
+ * Defines scalar tokens and typography sets without defaults or environment access.
13
15
  * Colors currently use the supported literal color grammar; spacing and radius
14
16
  * values use nonnegative literal lengths or zero. Nested palettes are supported.
15
17
  * @throws {InvalidError} If groups, paths, values, or data records are invalid.
@@ -36,7 +38,7 @@ export function extend(theme, overrides) {
36
38
  ?.value;
37
39
  if (!data)
38
40
  throw new InvalidError([], 'Expected a theme definition.');
39
- return build(overrides, data.contract, data.values, data.queries);
41
+ return build(overrides, data.contract, data.values, data.queries, undefined, data.paths);
40
42
  }
41
43
  /** Invalid token data with an unambiguous authored path. */
42
44
  export class InvalidError extends Error {
@@ -50,18 +52,24 @@ export class InvalidError extends Error {
50
52
  /** Group and nested keys identifying the failure. */
51
53
  path;
52
54
  }
53
- function build(input, contract, base, baseQueries, scope) {
55
+ function build(input, contract, base, baseQueries, scope, basePaths) {
54
56
  const values = Object.assign(Object.create(null), base);
55
57
  const queries = {
56
58
  breakpoints: Object.assign(Object.create(null), baseQueries?.breakpoints),
57
59
  containerNames: baseQueries?.containerNames ?? [],
58
60
  containers: Object.assign(Object.create(null), baseQueries?.containers),
59
61
  };
62
+ const paths = { ...basePaths };
63
+ const conditions = [];
60
64
  let hasQueries = !!baseQueries;
61
65
  const active = new Set();
62
66
  function visit(value, group, path) {
63
67
  const key = path.join('.');
68
+ if (path.some((part) => part.startsWith('@')))
69
+ paths[key] = Object.freeze([...path]);
64
70
  const scalar = typeof value === 'string' || typeof value === 'number';
71
+ if (group === 'typography' && scalar)
72
+ throw new InvalidError(path, 'Expected a typography set or a nested set group.');
65
73
  const entries = scalar ? undefined : record(value, path);
66
74
  const pair = ['color', 'backgroundColor', 'borderColor', 'textColor'].includes(group) && entries?.some(([name]) => name === 'light' || name === 'dark');
67
75
  if (scalar || pair) {
@@ -93,10 +101,26 @@ function build(input, contract, base, baseQueries, scope) {
93
101
  active.add(value);
94
102
  for (const [name, child] of entries) {
95
103
  const next = [...path, name];
104
+ if (group === 'typography' && name.startsWith('@')) {
105
+ if (!Typography.condition(name))
106
+ throw new InvalidError(next, 'Typography conditions must be media or container queries.');
107
+ conditions.push(next);
108
+ }
109
+ if (group === 'typography' &&
110
+ path.some((part) => part.startsWith('@')) &&
111
+ !Typography.condition(name) &&
112
+ !Typography.properties.includes(name))
113
+ throw new InvalidError(next, 'Typography query blocks accept only typography fields and queries.');
96
114
  if (base &&
97
115
  !Object.keys(base).some((key) => key === next.join('.') || key.startsWith(`${next.join('.')}.`)))
98
116
  throw new InvalidError(next, 'Extensions cannot add token paths.');
99
- visit(child, group, next);
117
+ const property = group === 'typography' &&
118
+ Typography.properties.includes(name)
119
+ ? name
120
+ : undefined;
121
+ if (property && typeof child !== 'string' && typeof child !== 'number')
122
+ throw new InvalidError(next, 'Typography properties require scalar values.');
123
+ visit(child, property ?? group, next);
100
124
  }
101
125
  active.delete(value);
102
126
  }
@@ -147,6 +171,7 @@ function build(input, contract, base, baseQueries, scope) {
147
171
  'backgroundColor',
148
172
  'borderColor',
149
173
  'borderRadius',
174
+ 'borderWidth',
150
175
  'color',
151
176
  'margin',
152
177
  'padding',
@@ -157,6 +182,7 @@ function build(input, contract, base, baseQueries, scope) {
157
182
  'letterSpacing',
158
183
  'lineHeight',
159
184
  'textColor',
185
+ 'typography',
160
186
  ].includes(group))
161
187
  throw new InvalidError([group], 'Unsupported token group.');
162
188
  if (palette === undefined)
@@ -167,18 +193,33 @@ function build(input, contract, base, baseQueries, scope) {
167
193
  const entries = record(palette, [group]);
168
194
  if (!entries.length && !base)
169
195
  throw new InvalidError([group], 'Token palettes cannot be empty.');
170
- for (const [name, value] of entries)
196
+ for (const [name, value] of entries) {
197
+ if (group === 'typography' &&
198
+ (Typography.properties.includes(name) ||
199
+ name.startsWith('@')))
200
+ throw new InvalidError([group, name], 'Typography properties require a named set.');
171
201
  visit(value, group, [group, name]);
202
+ }
203
+ }
204
+ for (const path of conditions) {
205
+ try {
206
+ Condition.normalize(Query.resolve(path.at(-1), queries));
207
+ }
208
+ catch (error) {
209
+ throw new InvalidError(path, error.message);
210
+ }
172
211
  }
173
212
  const tokens = Object.create(null);
174
213
  for (const [path, value] of Object.entries(values)) {
175
- const parts = path.split('.');
214
+ const parts = paths[path] ?? path.split('.');
176
215
  let tree = tokens;
177
216
  for (const part of parts.slice(0, -1))
178
217
  tree = (tree[part] ??= Object.create(null));
179
218
  tree[parts.at(-1)] = Token.create({
180
219
  contract,
181
- group: parts[0],
220
+ group: (parts[0] === 'typography'
221
+ ? parts.at(-1)
222
+ : parts[0]),
182
223
  path,
183
224
  value,
184
225
  });
@@ -213,6 +254,7 @@ function build(input, contract, base, baseQueries, scope) {
213
254
  }, Token.definition, {
214
255
  value: Object.freeze({
215
256
  contract,
257
+ ...(Object.keys(paths).length ? { paths: Object.freeze(paths) } : {}),
216
258
  values: Object.freeze(values),
217
259
  ...(hasQueries
218
260
  ? {
@@ -246,7 +288,8 @@ function record(value, path) {
246
288
  throw new InvalidError([...path, key], 'Token keys cannot contain !; it is reserved for declaration importance.');
247
289
  if (typeof key !== 'string' ||
248
290
  !key ||
249
- key.includes('.') ||
291
+ (key.includes('.') &&
292
+ !(path[0] === 'typography' && Typography.condition(key))) ||
250
293
  !descriptor.enumerable ||
251
294
  !('value' in descriptor))
252
295
  throw new InvalidError(path, 'Expected nonempty keys without dots and enumerable data properties.');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../src/internal/Theme.ts"],"names":[],"mappings":"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"}
@@ -2,21 +2,31 @@
2
2
  * Carries portable theme references and enforces their property domains.
3
3
  * @module
4
4
  */
5
- import type * as Binding from './Binding.js';
5
+ import * as Binding from './Binding.js';
6
6
  import type * as Query from './Query.js';
7
7
  import type * as Shorthands from './Shorthands.js';
8
- import type * as Theme from '../Theme.js';
8
+ import type * as Theme from './Theme.js';
9
+ import type * as ValueSyntax from './Value.js';
10
+ import type * as VariableSets from '../Vars.js';
9
11
  import * as Literal from './Literal.js';
10
12
  /** Checks a reference's property domain. */
11
13
  export declare function accepts(group: Group, property: keyof Literal.Properties): boolean;
14
+ /** Checks explicit variable values independently of shorthand category mappings. */
15
+ export declare function acceptsReference(reference: Reference, property: keyof Literal.Properties): boolean;
12
16
  /** Rebinds validated scalar references to a explicitly owned contract identity. */
13
17
  export declare function bind<tokens extends Theme.Tokens>(original: Theme.Definition<tokens>, contract: Contract): Theme.Definition<tokens>;
14
18
  /** Retains full scopes when styles may have been compiled in another graph. */
15
19
  export declare const complete: unique symbol;
16
20
  /** Opaque data shared by a definition and its compatible extensions. */
17
21
  export type Contract = {
22
+ /** Whether values belong to independent variables rather than fixed theme categories. */
23
+ readonly variableSet?: boolean | undefined;
24
+ /** Configuration-local category-to-property mappings. */
25
+ readonly mappings?: VariableSets.Mappings | false | undefined;
18
26
  /** Web emission mode retained by configuration-bound theme handles. */
19
27
  readonly cssOutput?: 'atomic' | 'grouped' | undefined;
28
+ /** Fallback layer for declarations without an explicit layer. */
29
+ readonly defaultLayer?: string | undefined;
20
30
  /** Configuration-local property aliases, inherited by bound handles. */
21
31
  readonly shorthands?: Shorthands.Map | undefined;
22
32
  readonly [complete]?: boolean | undefined;
@@ -40,42 +50,57 @@ export declare function compose(parts: readonly (string | Reference | Binding.Re
40
50
  /** Marks web-only references distinctly from portable tokens. */
41
51
  export declare const web: unique symbol;
42
52
  /** Web reference with the original token domain. */
43
- export type Variable<group extends Group = Group> = Reference<group> & {
53
+ export type Variable<group extends Group = Group> = `var(--${string})` & Reference<group> & {
44
54
  readonly [web]: true;
45
55
  };
46
56
  /** Replaces portable scalar leaves with web-only references. */
47
- export type Variables<tree> = tree extends Reference<infer group> ? Variable<group> : {
48
- readonly [key in keyof tree]: Variables<tree[key]>;
57
+ export type Vars<tree> = tree extends Reference<infer group> ? Variable<group> : {
58
+ readonly [key in keyof tree]: Vars<tree[key]>;
49
59
  };
50
60
  /** Creates web-only reference leaves without changing contract identities. */
51
- export declare function variables<tree>(tree: tree): Variables<tree>;
61
+ export declare function variables<tree>(tree: tree): Vars<tree>;
52
62
  /** Internal definition metadata; never enumerable consumer output. */
53
63
  export declare const definition: unique symbol;
54
64
  /** Supported scalar token groups. */
55
- export type Group = 'backgroundColor' | 'borderColor' | 'borderRadius' | 'color' | 'margin' | 'padding' | 'spacing' | 'fontFamily' | 'fontSize' | 'fontWeight' | 'letterSpacing' | 'lineHeight' | 'textColor';
65
+ export type Group = 'number' | 'string' | 'backgroundColor' | 'borderColor' | 'borderRadius' | 'borderWidth' | 'color' | 'margin' | 'padding' | 'spacing' | 'fontFamily' | 'fontSize' | 'fontWeight' | 'letterSpacing' | 'lineHeight' | 'textColor';
56
66
  /** Stable package/module/binding identity supplied by source adapters. */
57
67
  export declare const identity: unique symbol;
58
68
  /** Recognizes references without invoking getters on untrusted style values. */
59
69
  export declare function is(value: unknown): value is Reference;
60
70
  /** Immutable theme data carried directly by each definition. */
61
71
  export type Metadata = {
72
+ /** Original segments for typography paths containing query punctuation. */
73
+ readonly paths?: Readonly<Record<string, readonly string[]>> | undefined;
62
74
  readonly queries?: Query.Metadata | undefined;
63
75
  readonly contract: Contract;
64
76
  readonly values: Readonly<Record<string, Value>>;
65
77
  };
66
- /** Inferred shorthand names whose leaves belong to a property's domain. */
67
- export type Names<tokens, property extends keyof Literal.Properties> = {
78
+ /** Literal domain carried by explicit variable references during type checking. */
79
+ export declare const scalar: unique symbol;
80
+ /** Inferred shorthand names whose leaves belong to a property domain. */
81
+ export type Names<tokens, property extends keyof Literal.Properties> = tokens extends {
82
+ readonly '~vars': {
83
+ values: infer values;
84
+ mappings: infer mappings;
85
+ };
86
+ } ? mappings extends false ? Paths<Omit<values, 'breakpoints' | 'containers' | 'containerNames'>, property> : {
87
+ [category in keyof values]: category extends keyof mappings ? mappings[category] extends readonly unknown[] ? property extends mappings[category][number] ? Paths<values[category], property> : never : never : category extends Group ? property extends Properties<category> ? Paths<values[category], property> : never : never;
88
+ }[keyof values] : {
68
89
  [group in Extract<keyof tokens, Group>]: property extends Properties<group> ? Paths<NonNullable<tokens[group]>> : never;
69
90
  }[Extract<keyof tokens, Group>];
70
- type Paths<tree> = [tree] extends [never] ? never : string extends keyof tree ? string : {
71
- [key in Extract<keyof tree, number | string>]: NonNullable<tree[key]> extends Value ? key | `${key}` | (key extends `${infer numericKey extends number}` ? `${numericKey}` extends key ? numericKey : never : never) : `${key}.${Paths<NonNullable<tree[key]>>}`;
91
+ type Paths<tree, property extends keyof Literal.Properties = never> = [
92
+ tree
93
+ ] extends [never] ? never : string extends keyof tree ? string : {
94
+ [key in Extract<keyof tree, number | string>]: NonNullable<tree[key]> extends Value ? [property] extends [never] ? PathKey<key> : VariableSets.Scalar<NonNullable<tree[key]>> extends Literal.Properties[property] & ValueSyntax.Checked<Record<property, VariableSets.Scalar<NonNullable<tree[key]>>>>[property] ? PathKey<key> : never : `${key}.${Paths<NonNullable<tree[key]>, property>}`;
72
95
  }[Extract<keyof tree, number | string>];
96
+ type PathKey<key extends number | string> = key | `${key}` | (key extends `${infer numericKey extends number}` ? `${numericKey}` extends key ? numericKey : never : never);
73
97
  /** Property domains accepted by each token group. */
74
- export type Properties<group extends Group> = group extends 'margin' | 'padding' ? Exclude<Extract<keyof Literal.Properties, `${group}${string}`>, 'marginTrim'> : group extends 'spacing' ? Extract<keyof Literal.Properties, `blockSize` | `bottom` | `columnGap` | `flexBasis` | `gap` | `height` | `inlineSize` | `inset${string}` | `left` | Exclude<Extract<keyof Literal.Properties, `margin${string}`>, 'marginTrim'> | `maxBlockSize` | `maxHeight` | `maxInlineSize` | `maxWidth` | `minBlockSize` | `minHeight` | `minInlineSize` | `minWidth` | `padding${string}` | `right` | `rowGap` | `scrollPadding${string}` | `textDecorationThickness` | `textIndent` | `textUnderlineOffset` | `top` | `width`> : group extends 'textColor' ? 'color' : group extends 'color' ? {
98
+ export type Properties<group extends Group> = `--${string}` | Property<group>;
99
+ type Property<group extends Group> = group extends 'number' | 'string' ? never : group extends 'margin' | 'padding' ? Exclude<Extract<keyof Literal.Properties, `${group}${string}`>, 'marginTrim'> : group extends 'spacing' ? Extract<keyof Literal.Properties, `blockSize` | `bottom` | `columnGap` | `flexBasis` | `gap` | `height` | `inlineSize` | `inset${string}` | `left` | Exclude<Extract<keyof Literal.Properties, `margin${string}`>, 'marginTrim'> | `maxBlockSize` | `maxHeight` | `maxInlineSize` | `maxWidth` | `minBlockSize` | `minHeight` | `minInlineSize` | `minWidth` | `padding${string}` | `right` | `rowGap` | `scrollPadding${string}` | `textDecorationThickness` | `textIndent` | `textUnderlineOffset` | `top` | `width`> : group extends 'textColor' ? 'color' : group extends 'color' ? {
75
100
  [property in keyof typeof Literal.rules]: (typeof Literal.rules)[property] extends {
76
101
  kind: 'color';
77
102
  } ? property : never;
78
- }[keyof typeof Literal.rules] : group extends 'borderColor' ? Extract<keyof Literal.Properties, `border${string}Color`> : group extends 'borderRadius' ? Extract<keyof Literal.Properties, `border${string}Radius`> : group;
103
+ }[keyof typeof Literal.rules] : group extends 'borderColor' ? Extract<keyof Literal.Properties, `border${string}Color`> : group extends 'borderWidth' ? Exclude<Extract<keyof Literal.Properties, `border${string}Width`>, 'borderImageWidth'> : group extends 'borderRadius' ? Extract<keyof Literal.Properties, `border${string}Radius`> : group;
79
104
  /** Immutable portable reference retaining its defining fallback. */
80
105
  export type Reference<group extends Group = Group> = {
81
106
  readonly [reference]: true;
@@ -96,9 +121,14 @@ export declare namespace resolve {
96
121
  };
97
122
  }
98
123
  /** Scalar values retained for each rendering target. */
99
- export type Value = number | string | {
100
- readonly dark: string;
101
- readonly light: string;
124
+ export type Value = number | string | Reference | {
125
+ readonly dark: Value;
126
+ readonly light: Value;
127
+ } | Conditions;
128
+ /** Ordered conditional values with an unconditional fallback. */
129
+ export type Conditions = {
130
+ readonly default: Value;
131
+ readonly [query: `@media ${string}`]: Value;
102
132
  };
103
133
  export {};
104
134
  //# sourceMappingURL=Token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../src/internal/Token.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,4CAA4C;AAC5C,wBAAgB,OAAO,CACrB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,OAAO,CAAC,UAAU,GACjC,OAAO,CA2CT;AAED,mFAAmF;AACnF,wBAAgB,IAAI,CAAC,MAAM,SAAS,KAAK,CAAC,MAAM,EAC9C,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAClC,QAAQ,EAAE,QAAQ,GACjB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAsC1B;AAED,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,eAAmC,CAAA;AAExD,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAAG;IACrB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;IACrD,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,CAAA;AAED,sEAAsE;AACtE,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,SAAS,CAAC,GAAG,SAAS,CAE5E;AAED,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAAG;IACvB,2CAA2C;IAC3C,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAA;CACpE,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,UAAU,eAA4B,CAAA;AAEnD,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAMhE;AAED,yEAAyE;AACzE,wBAAgB,OAAO,CACrB,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,GACzD,UAAU,CAKZ;AAED,iEAAiE;AACjE,eAAO,MAAM,GAAG,eAA8B,CAAA;AAE9C,oDAAoD;AACpD,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,KAAK,GAAG,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG;IACrE,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CACrB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,SAAS,CAAC,IAAI,IACxB,IAAI,SAAS,SAAS,CAAC,MAAM,KAAK,CAAC,GAC/B,QAAQ,CAAC,KAAK,CAAC,GACf;IAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAAE,CAAA;AAE5D,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAe3D;AAED,sEAAsE;AACtE,eAAO,MAAM,UAAU,eAAuB,CAAA;AAE9C,qCAAqC;AACrC,MAAM,MAAM,KAAK,GACb,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,GACT,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,WAAW,CAAA;AAEf,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,eAAmC,CAAA;AAExD,gFAAgF;AAChF,wBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAerD;AAED,gEAAgE;AAChE,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;CACjD,CAAA;AAED,2EAA2E;AAC3E,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,QAAQ,SAAS,MAAM,OAAO,CAAC,UAAU,IAAI;KACpE,KAAK,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,KAAK,CAAC,GAAG,QAAQ,SAAS,UAAU,CAAC,KAAK,CAAC,GACvE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GACjC,KAAK;CACV,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;AAE/B,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GACrC,KAAK,GACL,MAAM,SAAS,MAAM,IAAI,GACvB,MAAM,GACN;KACG,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,WAAW,CACxD,IAAI,CAAC,GAAG,CAAC,CACV,SAAS,KAAK,GAEP,GAAG,GACH,GAAG,GAAG,EAAE,GACR,CAAC,GAAG,SAAS,GAAG,MAAM,UAAU,SAAS,MAAM,EAAE,GAC7C,GAAG,UAAU,EAAE,SAAS,GAAG,GACzB,UAAU,GACV,KAAK,GACP,KAAK,CAAC,GACd,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;CAC9C,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;AAE7C,qDAAqD;AACrD,MAAM,MAAM,UAAU,CAAC,KAAK,SAAS,KAAK,IAAI,KAAK,SAAS,QAAQ,GAAG,SAAS,GAC5E,OAAO,CACL,OAAO,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,EACtD,YAAY,CACb,GACD,KAAK,SAAS,SAAS,GACrB,OAAO,CACL,MAAM,OAAO,CAAC,UAAU,EACtB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,WAAW,GACX,KAAK,GACL,QAAQ,GACR,YAAY,GACZ,QAAQ,MAAM,EAAE,GAChB,MAAM,GACN,OAAO,CACL,OAAO,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC,EACpD,YAAY,CACb,GACD,cAAc,GACd,WAAW,GACX,eAAe,GACf,UAAU,GACV,cAAc,GACd,WAAW,GACX,eAAe,GACf,UAAU,GACV,UAAU,MAAM,EAAE,GAClB,OAAO,GACP,QAAQ,GACR,gBAAgB,MAAM,EAAE,GACxB,yBAAyB,GACzB,YAAY,GACZ,qBAAqB,GACrB,KAAK,GACL,OAAO,CACV,GACD,KAAK,SAAS,WAAW,GACvB,OAAO,GACP,KAAK,SAAS,OAAO,GACnB;KACG,QAAQ,IAAI,MAAM,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS;QACjF,IAAI,EAAE,OAAO,CAAA;KACd,GACG,QAAQ,GACR,KAAK;CACV,CAAC,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,GAC7B,KAAK,SAAS,aAAa,GACzB,OAAO,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,SAAS,MAAM,OAAO,CAAC,GACzD,KAAK,SAAS,cAAc,GAC1B,OAAO,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,SAAS,MAAM,QAAQ,CAAC,GAC1D,KAAK,CAAA;AAEnB,oEAAoE;AACpE,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,KAAK,GAAG,KAAK,IAAI;IACnD,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB,CAAA;AAED,QAAA,MAAM,SAAS,eAAuB,CAAA;AAEtC,qFAAqF;AACrF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAwCzE;AAED,iDAAiD;AACjD,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,iFAAiF;IACjF,KAAK,OAAO,GAAG;QACb,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,UAAU,CAAA;QAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACvB,CAAA;CACF;AAED,wDAAwD;AACxD,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../src/internal/Token.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,22 @@
1
+ /**
2
+ * Carries portable theme references and enforces their property domains.
3
+ * @module
4
+ */
5
+ import * as Binding from './Binding.js';
1
6
  import * as Literal from './Literal.js';
7
+ import * as VariableData from './VariableSets.js';
2
8
  /** Checks a reference's property domain. */
3
9
  export function accepts(group, property) {
10
+ if (property.startsWith('--'))
11
+ return true;
12
+ if (group === 'number' || group === 'string')
13
+ return false;
4
14
  if (group === 'color')
5
15
  return Literal.rule(property)?.kind === 'color';
6
16
  if (group === 'borderColor')
7
17
  return /^border.*Color$/.test(property);
18
+ if (group === 'borderWidth')
19
+ return /^border(?:Block|Inline)?(?:Start|End|Top|Right|Bottom|Left)?Width$/.test(property);
8
20
  if (group === 'borderRadius')
9
21
  return /^border.*Radius$/.test(property);
10
22
  if (group === 'textColor')
@@ -44,8 +56,46 @@ export function accepts(group, property) {
44
56
  ].includes(property));
45
57
  return group === property;
46
58
  }
59
+ /** Checks explicit variable values independently of shorthand category mappings. */
60
+ export function acceptsReference(reference, property) {
61
+ if (!reference.contract.variableSet)
62
+ return accepts(reference.group, property);
63
+ if (property.startsWith('--'))
64
+ return true;
65
+ function check(value) {
66
+ if (is(value))
67
+ return acceptsReference(value, property);
68
+ if (typeof value === 'object')
69
+ return Object.values(value).every(check);
70
+ if (typeof value === 'number') {
71
+ const rule = Literal.rule(property);
72
+ if (rule?.kind === 'number')
73
+ return (value >= rule.min &&
74
+ value <= rule.max &&
75
+ (!rule.integer || Number.isInteger(value)));
76
+ return value === 0 && Binding.accepts('length', property);
77
+ }
78
+ if (reference.group === 'color')
79
+ return Binding.accepts('color', property);
80
+ if (reference.group === 'spacing')
81
+ return ((Literal.rule(property)?.kind === 'compound' &&
82
+ accepts('spacing', property)) ||
83
+ Binding.accepts(value.endsWith('%')
84
+ ? value.startsWith('-')
85
+ ? 'signedPercentage'
86
+ : 'percentage'
87
+ : value.startsWith('-')
88
+ ? 'signedLength'
89
+ : 'length', property));
90
+ return (Literal.isLiteral(property, value) ||
91
+ Literal.rule(property)?.kind === 'compound');
92
+ }
93
+ return check(reference.value);
94
+ }
47
95
  /** Rebinds validated scalar references to a explicitly owned contract identity. */
48
96
  export function bind(original, contract) {
97
+ const metadata = original[definition];
98
+ const values = VariableData.rebind(metadata, contract);
49
99
  function rebind(tree) {
50
100
  return Object.freeze(Object.fromEntries(Object.entries(tree).map(([key, value]) => [
51
101
  key,
@@ -54,7 +104,7 @@ export function bind(original, contract) {
54
104
  contract,
55
105
  group: value.group,
56
106
  path: value.path,
57
- value: value.value,
107
+ value: values[value.path],
58
108
  })
59
109
  : rebind(value),
60
110
  ])));
@@ -68,7 +118,7 @@ export function bind(original, contract) {
68
118
  tokens,
69
119
  variants: original.variants,
70
120
  vars: variables(tokens),
71
- }, definition, { value: Object.freeze({ ...original[definition], contract }) }));
121
+ }, definition, { value: Object.freeze({ ...metadata, contract, values }) }));
72
122
  }
73
123
  /** Retains full scopes when styles may have been compiled in another graph. */
74
124
  export const complete = Symbol('zyzz.contract.complete');
@@ -120,6 +170,8 @@ export function is(value) {
120
170
  const fields = Object.getOwnPropertyDescriptors(value);
121
171
  return ['contract', 'group', 'path', 'value'].every((key) => fields[key] && 'value' in fields[key]);
122
172
  }
173
+ /** Literal domain carried by explicit variable references during type checking. */
174
+ export const scalar = Symbol('zyzz.variable.scalar');
123
175
  const reference = Symbol('zyzz.token');
124
176
  /** Resolves shorthand tokens with literal precedence, with specific colors first. */
125
177
  export function resolve(value, options) {
@@ -130,11 +182,11 @@ export function resolve(value, options) {
130
182
  ?.value;
131
183
  if (!data)
132
184
  throw new Error('Expected a theme definition.');
133
- // Specific groups precede shared colors regardless of authored group order.
134
- for (const group of [
185
+ const groups = [
135
186
  'backgroundColor',
136
187
  'borderColor',
137
188
  'borderRadius',
189
+ 'borderWidth',
138
190
  'margin',
139
191
  'padding',
140
192
  'spacing',
@@ -145,7 +197,39 @@ export function resolve(value, options) {
145
197
  'lineHeight',
146
198
  'textColor',
147
199
  'color',
148
- ]) {
200
+ ];
201
+ if (data.contract.variableSet) {
202
+ for (const [path, entry] of Object.entries(data.values).sort(([left], [right]) => groups.indexOf(left.split('.')[0]) -
203
+ groups.indexOf(right.split('.')[0]))) {
204
+ const [category, ...parts] = path.split('.');
205
+ const mappings = data.contract.mappings;
206
+ const mapped = mappings === false ? undefined : mappings?.[category];
207
+ if (mappings === false
208
+ ? path !== String(value)
209
+ : parts.join('.') !== String(value) ||
210
+ !(mapped
211
+ ? mapped.includes(options.property)
212
+ : accepts(category, options.property)))
213
+ continue;
214
+ return create({
215
+ contract: data.contract,
216
+ group: (() => {
217
+ let leaf = Object.getOwnPropertyDescriptor(options.theme, 'tokens')?.value;
218
+ for (const key of path.split('.'))
219
+ leaf =
220
+ leaf && typeof leaf === 'object'
221
+ ? Object.getOwnPropertyDescriptor(leaf, key)?.value
222
+ : undefined;
223
+ return is(leaf) ? leaf.group : category;
224
+ })(),
225
+ path,
226
+ value: entry,
227
+ });
228
+ }
229
+ return value;
230
+ }
231
+ // Specific groups precede shared colors regardless of authored group order.
232
+ for (const group of groups) {
149
233
  if (!accepts(group, options.property))
150
234
  continue;
151
235
  const path = `${group}.${value}`;
@@ -1 +1 @@
1
- {"version":3,"file":"Token.js","sourceRoot":"","sources":["../../src/internal/Token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Token.js","sourceRoot":"","sources":["../../src/internal/Token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** Describes nested typography sets and their property-aware token paths. @module */
2
+ import type * as Literal from './Literal.js';
3
+ /** Responsive query blocks accepted within a typography set. */
4
+ export type Condition = `@media ${string}` | `@container ${string}`;
5
+ /** Recognizes responsive blocks without accepting selectors or unrelated at-rules. */
6
+ export declare function condition(key: string): key is Condition;
7
+ /** Expands one named set into portable field references and ordered query blocks. */
8
+ export declare function entries(theme: object | undefined, name: unknown, explicit?: ReadonlySet<string>, important?: boolean): readonly (readonly [string, unknown])[];
9
+ /** Lists expanded fields and queries in source-map traversal order. */
10
+ export declare function keys(theme: object | undefined, name: unknown, explicit: ReadonlySet<string>): readonly string[];
11
+ /** Names of sets containing at least one typography declaration. */
12
+ export type Names<tokens> = tokens extends {
13
+ typography: infer tree;
14
+ } ? Paths<tree> : never;
15
+ type Paths<tree> = string extends keyof tree ? string : {
16
+ [key in Exclude<Extract<keyof tree, string | number>, Property | Condition>]: (Extract<keyof tree[key], Property | Condition> extends never ? never : `${key}`) | `${key}.${Paths<tree[key]>}`;
17
+ }[Exclude<Extract<keyof tree, string | number>, Property | Condition>];
18
+ /** Scalar properties applied by a typography set. */
19
+ export declare const properties: readonly ['fontFamily', 'fontSize', 'fontWeight', 'letterSpacing', 'lineHeight'];
20
+ /** Property domain retained by each field in a set. */
21
+ export type Property = (typeof properties)[number];
22
+ /** A set may supply any of the five typography properties. */
23
+ export type Set = Pick<Literal.Properties, Property> & {
24
+ readonly [key in Condition]?: Set;
25
+ };
26
+ /** Nested names may contain sets and additional named variants. */
27
+ export type Sets = {
28
+ readonly [name: string]: Set | Sets;
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=Typography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Typography.d.ts","sourceRoot":"","sources":["../../src/internal/Typography.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAG5C,gEAAgE;AAChE,MAAM,MAAM,SAAS,GAAG,UAAU,MAAM,EAAE,GAAG,cAAc,MAAM,EAAE,CAAA;AAEnE,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,SAAS,CAEvD;AAED,qFAAqF;AACrF,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,OAAO,EACb,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,EACzC,SAAS,UAAQ,GAChB,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAiCzC;AAED,uEAAuE;AACvE,wBAAgB,IAAI,CAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,SAAS,MAAM,EAAE,CASnB;AAED,oEAAoE;AACpE,MAAM,MAAM,KAAK,CAAC,MAAM,IAAI,MAAM,SAAS;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,GACjE,KAAK,CAAC,IAAI,CAAC,GACX,KAAK,CAAA;AAET,KAAK,KAAK,CAAC,IAAI,IAAI,MAAM,SAAS,MAAM,IAAI,GACxC,MAAM,GACN;KACG,GAAG,IAAI,OAAO,CACb,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,EACpC,QAAQ,GAAG,SAAS,CACrB,GACG,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,SAAS,KAAK,GACzD,KAAK,GACL,GAAG,GAAG,EAAE,CAAC,GACb,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;CACjC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAA;AAE1E,qDAAqD;AACrD,eAAO,MAAM,UAAU,YACrB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,CACJ,CAAA;AAEV,uDAAuD;AACvD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAElD,8DAA8D;AAC9D,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG;IACrD,QAAQ,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG;CAClC,CAAA;AAED,mEAAmE;AACnE,MAAM,MAAM,IAAI,GAAG;IAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAA;CAAE,CAAA"}
@@ -0,0 +1,54 @@
1
+ import * as Token from './Token.js';
2
+ /** Recognizes responsive blocks without accepting selectors or unrelated at-rules. */
3
+ export function condition(key) {
4
+ return /^@(media|container)\s+\S/.test(key);
5
+ }
6
+ /** Expands one named set into portable field references and ordered query blocks. */
7
+ export function entries(theme, name, explicit = new Set(), important = false) {
8
+ if (!theme ||
9
+ typeof name !== 'string' ||
10
+ name.split('.').some((part) => part.startsWith('@')))
11
+ return [];
12
+ let tree = Object.getOwnPropertyDescriptor(theme, 'tokens')?.value;
13
+ for (const part of ['typography', ...name.split('.')]) {
14
+ if (!tree || typeof tree !== 'object')
15
+ return [];
16
+ tree = Object.getOwnPropertyDescriptor(tree, part)?.value;
17
+ }
18
+ function expand(value) {
19
+ if (!value || typeof value !== 'object')
20
+ return [];
21
+ return Object.entries(value).flatMap(([key, child]) => {
22
+ if (properties.includes(key) &&
23
+ Token.is(child) &&
24
+ !explicit.has(key))
25
+ return [
26
+ [key, important ? Token.compose([child, ' !important']) : child],
27
+ ];
28
+ if (condition(key)) {
29
+ const nested = expand(child);
30
+ return nested.length ? [[key, Object.fromEntries(nested)]] : [];
31
+ }
32
+ return [];
33
+ });
34
+ }
35
+ return expand(tree);
36
+ }
37
+ /** Lists expanded fields and queries in source-map traversal order. */
38
+ export function keys(theme, name, explicit) {
39
+ function collect(values) {
40
+ return values.flatMap(([key, value]) => condition(key)
41
+ ? [key, ...collect(Object.entries(value))]
42
+ : [key]);
43
+ }
44
+ return collect(entries(theme, name, explicit));
45
+ }
46
+ /** Scalar properties applied by a typography set. */
47
+ export const properties = [
48
+ 'fontFamily',
49
+ 'fontSize',
50
+ 'fontWeight',
51
+ 'letterSpacing',
52
+ 'lineHeight',
53
+ ];
54
+ //# sourceMappingURL=Typography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Typography.js","sourceRoot":"","sources":["../../src/internal/Typography.ts"],"names":[],"mappings":"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"}