zyzz 0.0.25 → 0.0.26

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 (36) hide show
  1. package/dist/Vars.d.ts +18 -2
  2. package/dist/Vars.d.ts.map +1 -1
  3. package/dist/Vars.js +21 -3
  4. package/dist/Vars.js.map +1 -1
  5. package/dist/compiler/internal/Configurations.d.ts +3 -0
  6. package/dist/compiler/internal/Configurations.d.ts.map +1 -1
  7. package/dist/compiler/internal/Configurations.js +2 -1
  8. package/dist/compiler/internal/Configurations.js.map +1 -1
  9. package/dist/compiler/internal/Themes.d.ts.map +1 -1
  10. package/dist/compiler/internal/Themes.js +103 -27
  11. package/dist/compiler/internal/Themes.js.map +1 -1
  12. package/dist/internal/Configuration.d.ts.map +1 -1
  13. package/dist/internal/Configuration.js +5 -1
  14. package/dist/internal/Configuration.js.map +1 -1
  15. package/dist/internal/VariableSets.d.ts +20 -4
  16. package/dist/internal/VariableSets.d.ts.map +1 -1
  17. package/dist/internal/VariableSets.js +70 -19
  18. package/dist/internal/VariableSets.js.map +1 -1
  19. package/dist/react-native/internal/Tokens.d.ts.map +1 -1
  20. package/dist/react-native/internal/Tokens.js +3 -6
  21. package/dist/react-native/internal/Tokens.js.map +1 -1
  22. package/dist/vite/index.d.ts.map +1 -1
  23. package/dist/vite/index.js +3 -7
  24. package/dist/vite/index.js.map +1 -1
  25. package/dist/web/internal/Themes.d.ts.map +1 -1
  26. package/dist/web/internal/Themes.js +4 -2
  27. package/dist/web/internal/Themes.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/Vars.ts +104 -12
  30. package/src/compiler/internal/Configurations.ts +4 -1
  31. package/src/compiler/internal/Themes.ts +149 -45
  32. package/src/internal/Configuration.ts +5 -4
  33. package/src/internal/VariableSets.ts +104 -24
  34. package/src/react-native/internal/Tokens.ts +5 -6
  35. package/src/vite/index.ts +3 -9
  36. package/src/web/internal/Themes.ts +12 -11
@@ -1 +1 @@
1
- {"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../../src/web/internal/Themes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../../src/web/internal/Themes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zyzz",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "license": "MIT",
5
5
  "description": "Modern, universal, simple styling library for the Web and React Native",
6
6
  "repository": {
package/src/Vars.ts CHANGED
@@ -183,22 +183,114 @@ type Merge<base, derived> = {
183
183
  : never
184
184
  }
185
185
 
186
- /** Replaces existing leaves while preserving paths, domains, and reference identity. */
187
- export function extend<const values extends Values>(
188
- variables: Definition<values>,
189
- overrides: Overrides<values>,
190
- ): Definition<values> {
186
+ /**
187
+ * Overrides existing leaves and adds new ones. Without an id, the extension is an
188
+ * alternative set sharing the base's identity; with one, it is a new set whose
189
+ * inherited leaves reference the base's variables. Restating a base leaf, such as
190
+ * `base.spacing.md` at `spacing.md`, keeps it.
191
+ * @throws {InvalidError} If an override changes a domain or an addition replaces a leaf with a category, or the reverse.
192
+ */
193
+ export function extend<const base extends Values, const values extends Values>(
194
+ variables: Definition<base>,
195
+ values: values & NoInfer<Extension<base, values>>,
196
+ options?: style.DefinitionOptions,
197
+ ): Definition<Extended<base, values>>
198
+ /** Deeply merges derived leaves over the extended set, rejecting existing paths. */
199
+ export function extend<
200
+ const base extends Values,
201
+ const values extends Values,
202
+ const derived extends Values,
203
+ >(
204
+ variables: Definition<base>,
205
+ values: values & NoInfer<Extension<base, values>>,
206
+ derive: ((vars: References<Extended<base, values>>) => derived) &
207
+ NoInfer<
208
+ (
209
+ vars: References<Extended<base, values>>,
210
+ ) => Validated<derived, false, true>
211
+ >,
212
+ options?: style.DefinitionOptions,
213
+ ): Definition<Extended<Extended<base, values>, derived>>
214
+ export function extend(
215
+ variables: Definition,
216
+ values: Values,
217
+ derive: style.DefinitionOptions | ((vars: References<Values>) => Values) = {},
218
+ options: style.DefinitionOptions = {},
219
+ ): Definition {
220
+ if (typeof derive !== 'function') options = derive
221
+
191
222
  const metadata = Object.getOwnPropertyDescriptor(variables, Token.definition)
192
223
  ?.value as Token.Metadata | undefined
193
224
  if (!metadata?.contract.variableSet)
194
225
  throw new InvalidError([], 'Expected a variable set.')
195
- return VariableSets.build(
196
- overrides,
197
- metadata.contract,
198
- metadata.values,
199
- metadata.queries,
200
- metadata.paths,
201
- ) as Definition<values>
226
+
227
+ // A named extension owns its paths and reads inherited ones through the base's variables.
228
+ const contract =
229
+ options.id === undefined
230
+ ? metadata.contract
231
+ : Object.freeze({
232
+ variableSet: true,
233
+ [Token.identity]: Identity.requireId(options.id, 'Vars.extend'),
234
+ [Token.complete]: true,
235
+ })
236
+ const base =
237
+ options.id === undefined
238
+ ? metadata
239
+ : VariableSets.build(
240
+ VariableSets.references(variables, metadata),
241
+ contract,
242
+ )[Token.definition]
243
+ const extended = VariableSets.build(values, contract, { base })
244
+ if (typeof derive !== 'function') return extended
245
+
246
+ return VariableSets.build(derive(extended as References<Values>), contract, {
247
+ base: extended[Token.definition],
248
+ derived: true,
249
+ })
250
+ }
251
+
252
+ /** Base values grown by an extension; overridden leaves keep their base types. Unexported so declarations inline it. */
253
+ type Extended<base, values> = {
254
+ readonly [key in keyof base | keyof values]: key extends keyof base
255
+ ? key extends keyof values
256
+ ? base[key] extends Value
257
+ ? base[key]
258
+ : base[key] extends readonly string[]
259
+ ? values[key]
260
+ : Extended<base[key], values[key]>
261
+ : base[key]
262
+ : key extends keyof values
263
+ ? values[key]
264
+ : never
265
+ }
266
+
267
+ /** Compatible overrides at existing leaves, plus new leaves and categories. */
268
+ type Extension<base, values, typography extends boolean = false> = {
269
+ readonly [key in keyof values]: key extends keyof base
270
+ ? base[key] extends Value
271
+ ? Conditional<Compatible<Scalar<base[key]>>>
272
+ : base[key] extends readonly string[]
273
+ ? readonly string[]
274
+ : values[key] extends Value
275
+ ? never
276
+ : Extension<
277
+ base[key],
278
+ values[key],
279
+ key extends 'typography' ? true : typography
280
+ >
281
+ : key extends 'containerNames'
282
+ ? readonly string[]
283
+ : key extends
284
+ | `${string}.${string}`
285
+ | `${string}!${string}`
286
+ | `@${string}`
287
+ | ''
288
+ ? typography extends true
289
+ ? key extends Typography.Condition
290
+ ? Validated<values[key], true>
291
+ : never
292
+ : never
293
+ : Validated<values[key], key extends 'typography' ? true : typography>
202
294
  }
203
295
 
204
296
  /** Partial compatible overrides. Conditional leaves are replaced in full. */
@@ -334,7 +334,10 @@ export function type(value: unknown): string {
334
334
  .join(';')}}`
335
335
  }
336
336
 
337
- function values(tree: Theme.References<Theme.Tokens>): Record<string, unknown> {
337
+ /** Reads the authored leaf values of a reference tree. */
338
+ export function values(
339
+ tree: Theme.References<Theme.Tokens>,
340
+ ): Record<string, unknown> {
338
341
  return Object.fromEntries(
339
342
  Object.entries(tree).map(([key, value]) => [
340
343
  key,
@@ -633,6 +633,68 @@ export function collect(program: Ast.Program, options: collect.Options) {
633
633
  return result
634
634
  }
635
635
 
636
+ /** Reads a derived-variables callback as one parameter name and a literal body. */
637
+ function derivation(argument: Ast.Node | undefined) {
638
+ const callback = argument && Expression.unwrap(argument)
639
+ if (
640
+ callback?.type !== 'ArrowFunctionExpression' &&
641
+ callback?.type !== 'FunctionExpression'
642
+ )
643
+ return undefined
644
+
645
+ const parameter = callback.params[0]
646
+ const body = (() => {
647
+ if (callback.body?.type !== 'BlockStatement') return callback.body
648
+ if (
649
+ callback.body.body.length === 1 &&
650
+ callback.body.body[0]?.type === 'ReturnStatement'
651
+ )
652
+ return callback.body.body[0].argument
653
+ return undefined
654
+ })()
655
+ if (
656
+ callback.async ||
657
+ callback.generator ||
658
+ callback.params.length !== 1 ||
659
+ parameter?.type !== 'Identifier' ||
660
+ !body
661
+ )
662
+ fail(
663
+ 'Derived variables require one named parameter and a literal return value.',
664
+ callback,
665
+ )
666
+
667
+ return { body, name: parameter.name }
668
+ }
669
+
670
+ /** Authored values of an extension, keeping base values at existing paths as `Vars.extend` types do. */
671
+ function extendedValues(base: Theme.Definition, extension: Theme.Definition) {
672
+ const metadata = extension[Token.definition]
673
+ const known = base[Token.definition].values
674
+ const tree: Record<string, unknown> = Object.create(null)
675
+
676
+ for (const path of Object.keys(metadata.values)) {
677
+ const parts = metadata.paths?.[path] ?? path.split('.')
678
+ const source = Object.hasOwn(known, path) ? base : extension
679
+ let target = tree
680
+ let token: unknown = source.tokens
681
+
682
+ for (const part of parts.slice(0, -1)) {
683
+ target = (target[part] ??= Object.create(null)) as Record<
684
+ string,
685
+ unknown
686
+ >
687
+ token = (token as Record<string, unknown>)[part]
688
+ }
689
+
690
+ const name = parts.at(-1)!
691
+ // Every metadata path has a reference in its own token tree.
692
+ target[name] = (token as Record<string, Token.Reference>)[name]!.value
693
+ }
694
+
695
+ return tree
696
+ }
697
+
636
698
  function fail(message: string, node: Pick<Ast.Node, 'end' | 'start'>): never {
637
699
  throw new InvalidError(message, node)
638
700
  }
@@ -768,6 +830,18 @@ export function collect(program: Ast.Program, options: collect.Options) {
768
830
  )
769
831
  if (id !== undefined) name = Identity.requireId(id, 'Vars.define')
770
832
  }
833
+ if (!config && method === 'extend') {
834
+ const argument = expression.arguments[2]
835
+ const callback = argument && Expression.unwrap(argument)
836
+ const id = Identifiers.explicit(
837
+ expression,
838
+ callback?.type === 'ArrowFunctionExpression' ||
839
+ callback?.type === 'FunctionExpression'
840
+ ? 3
841
+ : 2,
842
+ )
843
+ if (id !== undefined) name = Identity.requireId(id, 'Vars.extend')
844
+ }
771
845
 
772
846
  if (config) {
773
847
  const nativeProvider =
@@ -949,42 +1023,17 @@ export function collect(program: Ast.Program, options: collect.Options) {
949
1023
 
950
1024
  tokenType = type(expression.arguments[0]!)
951
1025
 
952
- const argument = expression.arguments[1]
953
- const callback = argument && Expression.unwrap(argument)
954
- if (
955
- variableSet &&
956
- (callback?.type === 'ArrowFunctionExpression' ||
957
- callback?.type === 'FunctionExpression')
958
- ) {
959
- const parameter = callback.params[0]
960
- const body = (() => {
961
- if (callback.body?.type !== 'BlockStatement') return callback.body
962
- if (
963
- callback.body.body.length === 1 &&
964
- callback.body.body[0]?.type === 'ReturnStatement'
965
- )
966
- return callback.body.body[0].argument
967
- return undefined
968
- })()
969
- if (
970
- callback.async ||
971
- callback.generator ||
972
- callback.params.length !== 1 ||
973
- parameter?.type !== 'Identifier' ||
974
- !body
975
- )
976
- fail(
977
- 'Derived variables require one named parameter and a literal return value.',
978
- callback,
979
- )
980
-
1026
+ const derive = variableSet
1027
+ ? derivation(expression.arguments[1])
1028
+ : undefined
1029
+ if (derive) {
981
1030
  const base = VariableSets.build(
982
1031
  input,
983
1032
  Object.freeze({ variableSet: true, [Token.identity]: name }),
984
1033
  )
985
1034
  input = VariableSets.merge(
986
1035
  input,
987
- data(body, { name: parameter.name, vars: base }),
1036
+ data(derive.body, { name: derive.name, vars: base }),
988
1037
  )
989
1038
  tokenType = Configurations.type(input)
990
1039
  } else if (expression.arguments.length > 2)
@@ -1012,33 +1061,88 @@ export function collect(program: Ast.Program, options: collect.Options) {
1012
1061
  } else {
1013
1062
  const base = expression.arguments[0]
1014
1063
  const parent = base ? resolve(base)?.call : undefined
1064
+ const derive = variableSet
1065
+ ? derivation(expression.arguments[2])
1066
+ : undefined
1015
1067
 
1016
- if (expression.arguments.length !== 2 || !parent)
1068
+ const arity = derive ? 3 : 2
1069
+ // A trailing options object names a new set over the base's variables.
1070
+ const id =
1071
+ expression.arguments.length === arity + 1
1072
+ ? Identifiers.explicit(expression, arity)
1073
+ : undefined
1074
+ const named = id !== undefined
1075
+ if (
1076
+ (expression.arguments.length !== arity && !named) ||
1077
+ !parent
1078
+ )
1017
1079
  fail(
1018
1080
  'Vars.extend requires a preceding variable set and literal overrides.',
1019
1081
  expression,
1020
1082
  )
1021
1083
 
1022
1084
  factoryReferences.add(base!.start)
1023
- definition = variableSet
1024
- ? VariableSets.theme(
1025
- Vars.extend(
1026
- VariableSets.from(themes[parent.name]![Token.definition]),
1027
- data(expression.arguments[1]!) as Vars.Overrides<Vars.Values>,
1028
- ),
1029
- )
1030
- : Theme.extend(
1031
- themes[parent.name]!,
1032
- data(expression.arguments[1]!) as Theme.Overrides<Theme.Tokens>,
1033
- )
1085
+ tokenType = parent.tokenType
1086
+ output = parent.output
1087
+
1088
+ if (variableSet) {
1089
+ const theme = themes[parent.name]!
1090
+ const original = VariableSets.from(theme[Token.definition])
1091
+ const extend = Vars.extend as (
1092
+ variables: Vars.Definition,
1093
+ values: Vars.Values,
1094
+ derive: (vars: Vars.References<Vars.Values>) => Vars.Values,
1095
+ options: { readonly id?: string | undefined },
1096
+ ) => Vars.Definition
1097
+ const extended = extend(
1098
+ original,
1099
+ data(expression.arguments[1]!) as Vars.Values,
1100
+ (vars) =>
1101
+ derive
1102
+ ? (data(derive.body, {
1103
+ name: derive.name,
1104
+ vars: vars as Vars.Definition,
1105
+ }) as Vars.Values)
1106
+ : {},
1107
+ { id },
1108
+ )
1109
+ definition = named
1110
+ ? Token.bind(
1111
+ VariableSets.theme(extended),
1112
+ Object.freeze({
1113
+ ...extended[Token.definition].contract,
1114
+ [Token.identity]: name,
1115
+ }),
1116
+ )
1117
+ : VariableSets.theme(extended)
1118
+
1119
+ const metadata = definition[Token.definition]
1120
+ // Additions grow the token contract; overridden leaves keep their base types, as in `Vars.extend`.
1121
+ if (
1122
+ named ||
1123
+ Object.keys(metadata.values).length !==
1124
+ Object.keys(theme[Token.definition].values).length ||
1125
+ JSON.stringify(metadata.queries) !==
1126
+ JSON.stringify(theme[Token.definition].queries)
1127
+ )
1128
+ tokenType = Configurations.type({
1129
+ ...extendedValues(theme, definition),
1130
+ ...metadata.queries,
1131
+ })
1132
+ } else
1133
+ definition = Theme.extend(
1134
+ themes[parent.name]!,
1135
+ data(expression.arguments[1]!) as Theme.Overrides<Theme.Tokens>,
1136
+ )
1137
+
1138
+ // Extensions share their base identity, so the binding keeps sibling sets distinct.
1034
1139
  if (
1140
+ !named &&
1035
1141
  definition[Token.definition].contract[Token.identity]?.startsWith(
1036
1142
  'id-',
1037
1143
  )
1038
1144
  )
1039
- name = definition.className.slice('z-theme-'.length)
1040
- tokenType = parent.tokenType
1041
- output = parent.output
1145
+ name = `${definition.className.slice('z-theme-'.length)}-${binding}`
1042
1146
  }
1043
1147
  } catch (error) {
1044
1148
  if (error instanceof InvalidError) throw error
@@ -137,11 +137,12 @@ export function create(
137
137
  appearance: result.appearance,
138
138
  script: result.script,
139
139
  style: result.style,
140
+ // The default set's metadata lets Vars.extend grow configured vars.
140
141
  vars: Object.freeze(
141
- Object.defineProperties(
142
- vars,
143
- Object.getOwnPropertyDescriptors(theme.tokens),
144
- ),
142
+ Object.defineProperties(vars, {
143
+ ...Object.getOwnPropertyDescriptors(theme.tokens),
144
+ [Token.definition]: { value: theme[Token.definition] },
145
+ }),
145
146
  ),
146
147
  variants: result.variants,
147
148
  })
@@ -55,19 +55,30 @@ export function from(metadata: Token.Metadata): Vars.Definition {
55
55
  ) as Vars.Definition
56
56
  }
57
57
 
58
- /** Validates and freezes a complete set or compatible partial override. */
58
+ /**
59
+ * Validates and freezes a complete set, or grows a base set with compatible
60
+ * overrides and new leaves.
61
+ */
59
62
  export function build(
60
63
  input: unknown,
61
64
  contract: Token.Contract,
62
- base?: Token.Metadata['values'],
63
- baseQueries?: Query.Metadata,
64
- basePaths?: Token.Metadata['paths'],
65
+ options: build.Options = {},
65
66
  ): Vars.Definition {
67
+ const base = options.base
66
68
  const values: Record<string, Token.Value> = Object.assign(
67
69
  Object.create(null),
68
- base,
70
+ base?.values,
69
71
  )
70
- const paths = { ...basePaths }
72
+ const paths = { ...base?.paths }
73
+ // Segment keys keep dotted typography conditions distinct from nested paths.
74
+ const leaves = new Set<string>()
75
+ const categories = new Set<string>()
76
+ for (const path of Object.keys(base?.values ?? {})) {
77
+ const parts = base!.paths?.[path] ?? path.split('.')
78
+ leaves.add(JSON.stringify(parts))
79
+ for (let index = 1; index < parts.length; index++)
80
+ categories.add(JSON.stringify(parts.slice(0, index)))
81
+ }
71
82
  const conditions: string[][] = []
72
83
  const active = new Set<object>()
73
84
  function visit(input: unknown, path: string[]) {
@@ -86,14 +97,31 @@ export function build(
86
97
  ) {
87
98
  if (!path.length)
88
99
  throw new Vars.InvalidError(path, 'Expected a variable record.')
89
- const value = read(input, path, queryData)
100
+ if (categories.has(JSON.stringify(path)))
101
+ throw new Vars.InvalidError(
102
+ path,
103
+ 'Extensions cannot replace a variable category with a leaf.',
104
+ )
90
105
  const name = path.join('.')
91
- if (base && !Object.hasOwn(base, name))
106
+ const previous =
107
+ base && Object.hasOwn(base.values, name) ? base.values[name] : undefined
108
+ if (previous !== undefined && options.derived)
92
109
  throw new Vars.InvalidError(
93
110
  path,
94
- 'Extensions cannot add variable paths.',
111
+ 'Derived variables cannot replace existing paths.',
95
112
  )
96
- if (base && domain(base[name]!) !== domain(value))
113
+ // Restating the base reference would make the variable reference itself.
114
+ if (
115
+ previous !== undefined &&
116
+ Token.is(input) &&
117
+ input.path === name &&
118
+ (input.contract === contract ||
119
+ (contract[Token.identity] !== undefined &&
120
+ input.contract[Token.identity] === contract[Token.identity]))
121
+ )
122
+ return
123
+ const value = read(input, path, queryData)
124
+ if (previous !== undefined && domain(previous) !== domain(value))
97
125
  throw new Vars.InvalidError(
98
126
  path,
99
127
  'Variable overrides must preserve their domain.',
@@ -103,11 +131,19 @@ export function build(
103
131
  values[name] = value
104
132
  return
105
133
  }
134
+ if (leaves.has(JSON.stringify(path)))
135
+ throw new Vars.InvalidError(
136
+ path,
137
+ 'Extensions cannot replace a variable leaf with a category.',
138
+ )
106
139
  const entries = record(input, path)
107
140
  if (active.has(input as object))
108
141
  throw new Vars.InvalidError(path, 'Cyclic variables are not supported.')
109
142
  active.add(input as object)
110
- if (!entries.length && !base)
143
+ if (
144
+ !entries.length &&
145
+ (!base || (path.length > 0 && !categories.has(JSON.stringify(path))))
146
+ )
111
147
  throw new Vars.InvalidError(path, 'Variable records cannot be empty.')
112
148
  for (const [key, value] of entries) {
113
149
  const query = path[0] === 'typography' && Typography.condition(key)
@@ -122,34 +158,29 @@ export function build(
122
158
  active.delete(input as object)
123
159
  }
124
160
  const fields = Object.fromEntries(record(input, []))
125
- const queries = { ...baseQueries }
161
+ const queries = { ...base?.queries }
126
162
  for (const key of ['breakpoint', 'container', 'containerNames'] as const) {
127
163
  if (Object.hasOwn(fields, key)) {
128
164
  const value = fields[key]
129
165
  if (base) {
130
166
  if (key === 'containerNames') {
131
167
  if (
132
- JSON.stringify(value) !==
133
- JSON.stringify(baseQueries?.containerNames ?? [])
168
+ !Array.isArray(value) ||
169
+ (base.queries?.containerNames ?? []).some(
170
+ (name) => !value.includes(name),
171
+ )
134
172
  )
135
173
  throw new Vars.InvalidError(
136
174
  [key],
137
- 'Extensions cannot change container identities.',
175
+ 'Extensions cannot remove container identities.',
138
176
  )
139
- } else {
140
- for (const [name] of record(value, [key]))
141
- if (!Object.hasOwn(baseQueries?.[key] ?? {}, name))
142
- throw new Vars.InvalidError(
143
- [key, name],
144
- 'Extensions cannot add query thresholds.',
145
- )
146
- }
177
+ } else record(value, [key])
147
178
  }
148
179
  Object.assign(queries, {
149
180
  [key]:
150
181
  key === 'containerNames'
151
182
  ? value
152
- : { ...baseQueries?.[key], ...value },
183
+ : { ...base?.queries?.[key], ...value },
153
184
  })
154
185
  if (key !== 'container' || Object.keys(value as object).length === 0)
155
186
  delete fields[key]
@@ -178,6 +209,55 @@ export function build(
178
209
  ) as Vars.Definition
179
210
  }
180
211
 
212
+ /** Set construction inputs. */
213
+ export declare namespace build {
214
+ /** Base set metadata and how its existing paths may change. */
215
+ type Options = {
216
+ /** Set whose leaves the input overrides or extends. */
217
+ readonly base?:
218
+ | Pick<Token.Metadata, 'paths' | 'queries' | 'values'>
219
+ | undefined
220
+ /** Rejects existing paths, as derived leaves only add to the set. */
221
+ readonly derived?: boolean | undefined
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Reads a set's references as values for a named extension. Typography presets
227
+ * keep their base values, since presets expand at each use.
228
+ */
229
+ export function references(
230
+ variables: object,
231
+ metadata: Pick<Token.Metadata, 'paths' | 'queries' | 'values'>,
232
+ ): Vars.Values {
233
+ const tree: Record<string, unknown> = Object.create(null)
234
+
235
+ for (const [path, value] of Object.entries(metadata.values)) {
236
+ const parts = metadata.paths?.[path] ?? path.split('.')
237
+ let target = tree
238
+ let source: unknown = variables
239
+
240
+ for (const part of parts.slice(0, -1)) {
241
+ target = (target[part] ??= Object.create(null)) as Record<string, unknown>
242
+ source = (source as Record<string, unknown>)[part]
243
+ }
244
+
245
+ const name = parts.at(-1)!
246
+ target[name] =
247
+ parts[0] === 'typography'
248
+ ? value
249
+ : (source as Record<string, unknown>)[name]
250
+ }
251
+
252
+ for (const key of ['breakpoint', 'container'] as const)
253
+ if (Object.keys(metadata.queries?.[key] ?? {}).length)
254
+ tree[key] = metadata.queries![key]
255
+ if (metadata.queries?.containerNames?.length)
256
+ tree.containerNames = metadata.queries.containerNames
257
+
258
+ return tree as Vars.Values
259
+ }
260
+
181
261
  function buildTree(
182
262
  values: Token.Metadata['values'],
183
263
  contract: Token.Contract,