zyzz 0.0.3 → 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 (247) 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 +15 -12
  7. package/dist/Style.d.ts.map +1 -1
  8. package/dist/Style.js +51 -26
  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 +8 -6
  21. package/dist/compiler/Source.d.ts.map +1 -1
  22. package/dist/compiler/Source.js +47 -14
  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 +58 -22
  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 +155 -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 +147 -2562
  72. package/dist/default.d.ts.map +1 -1
  73. package/dist/default.js +85 -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/{Theme.d.ts → internal/Theme.d.ts} +15 -13
  102. package/dist/internal/Theme.d.ts.map +1 -0
  103. package/dist/{Theme.js → internal/Theme.js} +39 -12
  104. package/dist/internal/Theme.js.map +1 -0
  105. package/dist/internal/Token.d.ts +46 -16
  106. package/dist/internal/Token.d.ts.map +1 -1
  107. package/dist/internal/Token.js +89 -5
  108. package/dist/internal/Token.js.map +1 -1
  109. package/dist/internal/Typography.d.ts +13 -5
  110. package/dist/internal/Typography.d.ts.map +1 -1
  111. package/dist/internal/Typography.js +42 -6
  112. package/dist/internal/Typography.js.map +1 -1
  113. package/dist/internal/Value.d.ts +6 -1
  114. package/dist/internal/Value.d.ts.map +1 -1
  115. package/dist/internal/Value.js.map +1 -1
  116. package/dist/internal/VariableSets.d.ts +20 -0
  117. package/dist/internal/VariableSets.d.ts.map +1 -0
  118. package/dist/internal/VariableSets.js +317 -0
  119. package/dist/internal/VariableSets.js.map +1 -0
  120. package/dist/next/loader.js +15 -5
  121. package/dist/next/loader.js.map +1 -1
  122. package/dist/node/Host.d.ts.map +1 -1
  123. package/dist/node/Host.js +1 -1
  124. package/dist/node/Host.js.map +1 -1
  125. package/dist/react-native/Host.d.ts +2 -2
  126. package/dist/react-native/Host.d.ts.map +1 -1
  127. package/dist/react-native/Host.js +4 -4
  128. package/dist/react-native/Host.js.map +1 -1
  129. package/dist/react-native/StyleSheet.d.ts +9 -8
  130. package/dist/react-native/StyleSheet.d.ts.map +1 -1
  131. package/dist/react-native/StyleSheet.js +29 -23
  132. package/dist/react-native/StyleSheet.js.map +1 -1
  133. package/dist/react-native/Variants.d.ts +3 -3
  134. package/dist/react-native/Variants.d.ts.map +1 -1
  135. package/dist/react-native/Variants.js +2 -2
  136. package/dist/react-native/react.d.ts +1 -1
  137. package/dist/react-native/react.d.ts.map +1 -1
  138. package/dist/react-native/react.js +5 -5
  139. package/dist/react-native/react.js.map +1 -1
  140. package/dist/rollup/index.d.ts +3 -0
  141. package/dist/rollup/index.d.ts.map +1 -0
  142. package/dist/rollup/index.js +5 -0
  143. package/dist/rollup/index.js.map +1 -0
  144. package/dist/runtime/Appearance.d.ts +7 -7
  145. package/dist/runtime/Appearance.d.ts.map +1 -1
  146. package/dist/runtime/Appearance.js +15 -15
  147. package/dist/runtime/Appearance.js.map +1 -1
  148. package/dist/runtime/Dynamic.d.ts.map +1 -1
  149. package/dist/runtime/Dynamic.js +4 -1
  150. package/dist/runtime/Dynamic.js.map +1 -1
  151. package/dist/runtime/NativeContext.d.ts +4 -4
  152. package/dist/runtime/NativeContext.d.ts.map +1 -1
  153. package/dist/runtime/NativeContext.js +5 -5
  154. package/dist/runtime/NativeContext.js.map +1 -1
  155. package/dist/runtime/NativeDynamic.d.ts +1 -1
  156. package/dist/runtime/NativeDynamic.d.ts.map +1 -1
  157. package/dist/runtime/NativeDynamic.js.map +1 -1
  158. package/dist/runtime/Props.d.ts +1 -1
  159. package/dist/runtime/Props.js +3 -3
  160. package/dist/runtime/Props.js.map +1 -1
  161. package/dist/runtime/Selection.d.ts +14 -10
  162. package/dist/runtime/Selection.d.ts.map +1 -1
  163. package/dist/runtime/Selection.js +19 -18
  164. package/dist/runtime/Selection.js.map +1 -1
  165. package/dist/styleFunction.d.ts +14 -14
  166. package/dist/styleFunction.d.ts.map +1 -1
  167. package/dist/styleFunction.js.map +1 -1
  168. package/dist/unplugin/index.d.ts +20 -0
  169. package/dist/unplugin/index.d.ts.map +1 -0
  170. package/dist/unplugin/index.js +498 -0
  171. package/dist/unplugin/index.js.map +1 -0
  172. package/dist/variants.d.ts +3 -3
  173. package/dist/variants.d.ts.map +1 -1
  174. package/dist/variants.js.map +1 -1
  175. package/dist/vite/index.d.ts.map +1 -1
  176. package/dist/vite/index.js +6 -3
  177. package/dist/vite/index.js.map +1 -1
  178. package/dist/web/Css.d.ts +4 -3
  179. package/dist/web/Css.d.ts.map +1 -1
  180. package/dist/web/Css.js +4 -4
  181. package/dist/web/Css.js.map +1 -1
  182. package/dist/web/internal/Themes.d.ts +3 -2
  183. package/dist/web/internal/Themes.d.ts.map +1 -1
  184. package/dist/web/internal/Themes.js +42 -6
  185. package/dist/web/internal/Themes.js.map +1 -1
  186. package/dist/webpack/index.d.ts +3 -0
  187. package/dist/webpack/index.d.ts.map +1 -0
  188. package/dist/webpack/index.js +5 -0
  189. package/dist/webpack/index.js.map +1 -0
  190. package/package.json +23 -2
  191. package/src/Config.ts +43 -685
  192. package/src/Style.ts +97 -34
  193. package/src/Vars.ts +299 -0
  194. package/src/compiler/Graph.ts +14 -9
  195. package/src/compiler/Native.ts +29 -32
  196. package/src/compiler/Source.ts +59 -21
  197. package/src/compiler/Transform.ts +73 -23
  198. package/src/compiler/internal/Compositions.ts +36 -3
  199. package/src/compiler/internal/Configurations.ts +83 -11
  200. package/src/compiler/internal/Contract.ts +207 -15
  201. package/src/compiler/internal/Contributions.ts +1 -1
  202. package/src/compiler/internal/Dynamic.ts +1 -1
  203. package/src/compiler/internal/Expression.ts +26 -0
  204. package/src/compiler/internal/Identifiers.ts +2 -1
  205. package/src/compiler/internal/NativeBindings.ts +3 -3
  206. package/src/compiler/internal/PackedStyles.ts +22 -26
  207. package/src/compiler/internal/Recipes.ts +1 -1
  208. package/src/compiler/internal/Selectors.ts +1 -1
  209. package/src/compiler/internal/Themes.ts +266 -57
  210. package/src/compiler/internal/{Variables.ts → Vars.ts} +2 -2
  211. package/src/default.ts +173 -154
  212. package/src/esbuild/index.ts +5 -0
  213. package/src/index.ts +4 -4
  214. package/src/internal/Authoring.ts +5 -7
  215. package/src/internal/Binding.ts +1 -1
  216. package/src/internal/Completion.ts +42 -0
  217. package/src/internal/Condition.ts +31 -1
  218. package/src/internal/Configuration.ts +970 -0
  219. package/src/{Theme.ts → internal/Theme.ts} +75 -20
  220. package/src/internal/Token.ts +258 -85
  221. package/src/internal/Typography.ts +71 -16
  222. package/src/internal/Value.ts +45 -26
  223. package/src/internal/VariableSets.ts +458 -0
  224. package/src/next/loader.ts +19 -5
  225. package/src/node/Host.ts +1 -2
  226. package/src/react-native/Host.ts +6 -6
  227. package/src/react-native/StyleSheet.ts +49 -42
  228. package/src/react-native/Variants.ts +3 -3
  229. package/src/react-native/react.ts +6 -6
  230. package/src/rollup/index.ts +5 -0
  231. package/src/runtime/Appearance.ts +20 -20
  232. package/src/runtime/Dynamic.ts +4 -1
  233. package/src/runtime/NativeContext.ts +8 -8
  234. package/src/runtime/NativeDynamic.ts +2 -4
  235. package/src/runtime/Props.ts +3 -3
  236. package/src/runtime/Selection.ts +44 -33
  237. package/src/styleFunction.ts +22 -19
  238. package/src/unplugin/index.ts +600 -0
  239. package/src/variants.ts +7 -5
  240. package/src/vite/index.ts +5 -4
  241. package/src/web/Css.ts +10 -7
  242. package/src/web/internal/Themes.ts +52 -9
  243. package/src/webpack/index.ts +5 -0
  244. package/dist/Theme.d.ts.map +0 -1
  245. package/dist/Theme.js.map +0 -1
  246. package/dist/compiler/internal/Variables.d.ts.map +0 -1
  247. package/dist/compiler/internal/Variables.js.map +0 -1
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Normalizes explicit configuration into isolated typed authoring contracts.
3
+ * @module
4
+ */
5
+ import * as Appearance from '../runtime/Appearance.js';
6
+ import * as Authoring from './Authoring.js';
7
+ import * as Html from '../runtime/CompositionHtml.js';
8
+ import * as Identity from './Identity.js';
9
+ import * as Literal from './Literal.js';
10
+ import { variants } from '../variants.js';
11
+ import * as Scheme from './Scheme.js';
12
+ import * as Shorthands from './Shorthands.js';
13
+ import * as Theme from './Theme.js';
14
+ import * as VariableSets from './VariableSets.js';
15
+ import * as Vars from '../Vars.js';
16
+ import * as Selection from '../runtime/Selection.js';
17
+ import * as Token from './Token.js';
18
+ export function create(options = {}) {
19
+ let input = record(options);
20
+ const variableMode = input.vars !== undefined;
21
+ const variableCatalog = variableMode && input.defaultVars !== undefined;
22
+ const variableMappings = VariableSets.mappings(input.mappings);
23
+ if (variableMode) {
24
+ if (input.theme !== undefined ||
25
+ input.themes !== undefined ||
26
+ input.defaultTheme !== undefined)
27
+ throw new InvalidError('Use vars without theme options.');
28
+ const normalize = (value) => {
29
+ const definition = value &&
30
+ (typeof value === 'object' || typeof value === 'function') &&
31
+ Object.getOwnPropertyDescriptor(value, Token.definition)?.value
32
+ ? value
33
+ : Vars.define(value);
34
+ const theme = VariableSets.theme(definition, variableMappings);
35
+ if (variableMappings === false)
36
+ return theme;
37
+ const metadata = theme[Token.definition];
38
+ const names = new Map();
39
+ for (const path of Object.keys(metadata.values)) {
40
+ const [category, ...parts] = path.split('.');
41
+ const targets = variableMappings?.[category] ??
42
+ Object.keys(Literal.rules).filter((property) => Token.accepts(category, property));
43
+ for (const property of targets) {
44
+ const key = `${property}:${parts.join('.')}`;
45
+ if (names.has(key) &&
46
+ (variableMappings?.[category] ||
47
+ variableMappings?.[names.get(key).split('.')[0]]))
48
+ throw new InvalidError(`Ambiguous variable token ${parts.join('.')} for ${property}.`);
49
+ names.set(key, path);
50
+ }
51
+ }
52
+ return theme;
53
+ };
54
+ const { vars, defaultVars, mappings: _mappings, ...rest } = input;
55
+ input = variableCatalog
56
+ ? {
57
+ ...rest,
58
+ defaultTheme: defaultVars,
59
+ themes: Object.fromEntries(Object.entries(record(vars)).map(([name, value]) => [
60
+ name,
61
+ normalize(value),
62
+ ])),
63
+ }
64
+ : { ...rest, theme: normalize(vars) };
65
+ }
66
+ else if (input.mappings !== undefined || input.defaultVars !== undefined) {
67
+ throw new InvalidError('mappings and defaultVars require vars.');
68
+ }
69
+ function finish(result) {
70
+ if (!variableMode)
71
+ return Object.freeze(result);
72
+ const theme = result.theme;
73
+ const catalog = result.themes;
74
+ const entries = () => catalog
75
+ ? Object.entries(catalog).map(([name, value]) => [name, value.className])
76
+ : [['default', theme.className]];
77
+ let select;
78
+ const vars = (options = {}) => (select ??= Selection.create(entries(), input.output === 'html', 'set', variableCatalog ? String(input.defaultTheme) : 'default'))(options);
79
+ return Object.freeze({
80
+ appearance: result.appearance,
81
+ script: result.script,
82
+ style: result.style,
83
+ vars: Object.freeze(Object.defineProperties(vars, Object.getOwnPropertyDescriptors(theme.tokens))),
84
+ variants: result.variants,
85
+ });
86
+ }
87
+ for (const key of Object.keys(input))
88
+ if (![
89
+ 'cssOutput',
90
+ 'id',
91
+ 'defaultLayer',
92
+ 'defaultTheme',
93
+ 'layers',
94
+ 'output',
95
+ 'shorthands',
96
+ 'storageKey',
97
+ 'theme',
98
+ 'themes',
99
+ ].includes(key))
100
+ throw new InvalidError(`Unknown configuration option: ${key}`);
101
+ if (input.storageKey !== undefined &&
102
+ (typeof input.storageKey !== 'string' || !input.storageKey))
103
+ throw new InvalidError('storageKey must be a nonempty string.');
104
+ // Validated above; the record type erases the literal narrowing.
105
+ const storageKey = input.storageKey;
106
+ if (input.output !== undefined &&
107
+ input.output !== 'html' &&
108
+ input.output !== 'react')
109
+ throw new InvalidError('output must be html or react.');
110
+ if (input.cssOutput !== undefined &&
111
+ input.cssOutput !== 'atomic' &&
112
+ input.cssOutput !== 'grouped')
113
+ throw new InvalidError('cssOutput must be atomic or grouped.');
114
+ if (input.theme !== undefined && input.themes !== undefined)
115
+ throw new InvalidError('Use either theme or themes, not both.');
116
+ if (input.defaultLayer !== undefined &&
117
+ typeof input.defaultLayer !== 'string')
118
+ throw new InvalidError('defaultLayer must be a CSS layer name.');
119
+ if (input.layers !== undefined || input.defaultLayer !== undefined) {
120
+ if (input.layers !== undefined && !Array.isArray(input.layers))
121
+ throw new InvalidError('layers must be an array.');
122
+ const layers = (input.layers ?? []);
123
+ const seen = new Set();
124
+ for (const layer of [
125
+ ...layers,
126
+ ...(input.defaultLayer === undefined ||
127
+ layers.includes(input.defaultLayer)
128
+ ? []
129
+ : [input.defaultLayer]),
130
+ ]) {
131
+ if (typeof layer !== 'string' ||
132
+ !/^(?:--|-?[_a-zA-Z])[\w-]*(?:\.(?:--|-?[_a-zA-Z])[\w-]*)*$/.test(layer) ||
133
+ layer
134
+ .split('.')
135
+ .some((part) => [
136
+ 'default',
137
+ 'inherit',
138
+ 'initial',
139
+ 'revert',
140
+ 'revert-layer',
141
+ 'unset',
142
+ ].includes(part.toLowerCase())))
143
+ throw new InvalidError('Layer names must be plain CSS identifiers, optionally dotted.');
144
+ if (seen.has(layer))
145
+ throw new InvalidError(`Duplicate layer: ${layer}`);
146
+ seen.add(layer);
147
+ }
148
+ }
149
+ const shorthands = (() => {
150
+ if (input.shorthands === undefined)
151
+ return undefined;
152
+ try {
153
+ return Shorthands.read(input.shorthands);
154
+ }
155
+ catch (error) {
156
+ throw new InvalidError(error.message);
157
+ }
158
+ })();
159
+ const contract = Object.freeze({
160
+ ...(variableMode ? { variableSet: true, mappings: variableMappings } : {}),
161
+ ...(input.defaultLayer !== undefined
162
+ ? { defaultLayer: input.defaultLayer }
163
+ : {}),
164
+ cssOutput: input.cssOutput ?? 'atomic',
165
+ ...(shorthands ? { shorthands } : {}),
166
+ ...(typeof input.id === 'string'
167
+ ? {
168
+ [Token.identity]: Identity.requireId(input.id, 'Config.create'),
169
+ [Token.complete]: true,
170
+ }
171
+ : {}),
172
+ });
173
+ function boundStyle(theme) {
174
+ return (styles, options = {}) => {
175
+ if (theme &&
176
+ Object.keys(theme[Token.definition].values).length &&
177
+ !contract[Token.identity])
178
+ Identity.requireId(undefined, 'Config.create');
179
+ return Authoring.create(styles, {
180
+ ...options,
181
+ theme,
182
+ output: input.output,
183
+ });
184
+ };
185
+ }
186
+ function boundVariants(definition, options = {}) {
187
+ return Authoring.variants(definition, {
188
+ ...options,
189
+ output: input.output,
190
+ });
191
+ }
192
+ function handle(theme, name) {
193
+ const original = Token.bind(theme, contract);
194
+ const className = () => `z_theme-${Identity.requireId(typeof input.id === 'string' ? input.id : undefined, 'Config.create')}-${name.replace(/[^a-zA-Z0-9-]/g, (character) => `_${character.charCodeAt(0).toString(16)}_`)}`;
195
+ const select = (options = {}) => {
196
+ const scheme = options.colorScheme;
197
+ const selection = scheme !== undefined && Object.hasOwn(Scheme.classes, scheme)
198
+ ? ` ${Scheme.classes[scheme]}`
199
+ : '';
200
+ const result = {
201
+ className: `${className()}${selection}`,
202
+ ...(scheme ? { style: { colorScheme: scheme } } : {}),
203
+ };
204
+ return input.output === 'html' ? Html.from(result) : result;
205
+ };
206
+ const descriptors = Object.getOwnPropertyDescriptors(original);
207
+ delete descriptors.className;
208
+ delete descriptors.style;
209
+ delete descriptors.variants;
210
+ Object.defineProperties(select, descriptors);
211
+ Object.defineProperty(select, 'className', {
212
+ get: className,
213
+ configurable: true,
214
+ });
215
+ Object.assign(select, {
216
+ style: boundStyle(original),
217
+ variants: boundVariants,
218
+ });
219
+ return select;
220
+ }
221
+ if (input.themes !== undefined) {
222
+ const catalog = record(input.themes);
223
+ if (typeof input.defaultTheme !== 'string' ||
224
+ !Object.hasOwn(catalog, input.defaultTheme))
225
+ throw new InvalidError('defaultTheme must name a theme in the catalog.');
226
+ const defaultTheme = input.defaultTheme;
227
+ const definitions = Object.fromEntries(Object.entries(catalog).map(([name, value]) => {
228
+ if (!name)
229
+ throw new InvalidError('Theme names must be nonempty.');
230
+ return [name, definition(value)];
231
+ }));
232
+ const base = definitions[input.defaultTheme];
233
+ const paths = Object.keys(base[Token.definition].values).sort();
234
+ function queries(theme) {
235
+ const data = theme[Token.definition].queries;
236
+ return JSON.stringify({
237
+ breakpoints: Object.keys(data?.breakpoints ?? {}).sort(),
238
+ containers: Object.keys(data?.containers ?? {}).sort(),
239
+ containerNames: [...(data?.containerNames ?? [])].sort(),
240
+ });
241
+ }
242
+ for (const [name, value] of Object.entries(definitions)) {
243
+ const candidate = Object.keys(value[Token.definition].values).sort();
244
+ if (queries(base) !== queries(value) ||
245
+ paths.length !== candidate.length ||
246
+ paths.some((path, index) => path !== candidate[index] ||
247
+ (variableMode &&
248
+ VariableSets.domain(base[Token.definition].values[path]) !==
249
+ VariableSets.domain(value[Token.definition].values[path]))))
250
+ throw new InvalidError(`Theme ${JSON.stringify(name)} must have the default theme's complete token paths and domains.`);
251
+ }
252
+ const bound = Object.fromEntries(Object.entries(definitions).map(([name, value]) => [
253
+ name,
254
+ handle(value, name),
255
+ ]));
256
+ const select = (options) => bound[options.theme](options);
257
+ Object.defineProperties(select, Object.getOwnPropertyDescriptors(bound));
258
+ const entries = () => Object.entries(bound).map(([name, value]) => [
259
+ name,
260
+ value.className,
261
+ ]);
262
+ // Class names require an identity, so the compiler's collection pass must
263
+ // not read them; root controls resolve their entries on first use.
264
+ const appearance = (() => {
265
+ let root;
266
+ const resolve = () => (root ??= Appearance.root(entries(), {
267
+ defaultVars: defaultTheme,
268
+ storageKey,
269
+ }));
270
+ return {
271
+ get: () => resolve().get(),
272
+ set: (selection) => resolve().set(selection),
273
+ };
274
+ })();
275
+ return finish({
276
+ appearance,
277
+ script: () => Appearance.create(entries(), { storageKey })(),
278
+ style: boundStyle(bound[input.defaultTheme]),
279
+ theme: bound[input.defaultTheme],
280
+ themes: Object.freeze(select),
281
+ variants: boundVariants,
282
+ });
283
+ }
284
+ if (input.defaultTheme !== undefined)
285
+ throw new InvalidError('defaultTheme requires a named themes catalog.');
286
+ if (input.theme !== undefined) {
287
+ const theme = handle(definition(input.theme), 'theme');
288
+ return finish({
289
+ appearance: Appearance.root([], { storageKey }),
290
+ script: Appearance.create([], { storageKey }),
291
+ style: boundStyle(theme),
292
+ theme,
293
+ variants: boundVariants,
294
+ });
295
+ }
296
+ const theme = shorthands || input.defaultLayer !== undefined
297
+ ? Token.bind(Theme.define({}), contract)
298
+ : undefined;
299
+ return finish({
300
+ appearance: Appearance.root([], { storageKey }),
301
+ script: Appearance.create([], { storageKey }),
302
+ style: boundStyle(theme),
303
+ variants: boundVariants,
304
+ });
305
+ }
306
+ function definition(value) {
307
+ try {
308
+ if (value &&
309
+ typeof value === 'object' &&
310
+ Object.getOwnPropertyDescriptor(value, Token.definition)?.value)
311
+ return value;
312
+ return Theme.define(record(value));
313
+ }
314
+ catch (error) {
315
+ if (error instanceof InvalidError)
316
+ throw error;
317
+ throw new InvalidError(error.message);
318
+ }
319
+ }
320
+ /** Invalid options or incompatible named themes. */
321
+ export class InvalidError extends Error {
322
+ /** Creates a configuration diagnostic without generating styles. */
323
+ constructor(message) {
324
+ super(message);
325
+ }
326
+ /** Stable namespaced error identifier. */
327
+ name = 'Config.InvalidError';
328
+ }
329
+ function record(value) {
330
+ if (!value ||
331
+ typeof value !== 'object' ||
332
+ Array.isArray(value) ||
333
+ ![null, Object.prototype].includes(Object.getPrototypeOf(value)))
334
+ throw new InvalidError('Expected a plain configuration record.');
335
+ const result = Object.create(null);
336
+ for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(value))) {
337
+ if (!('value' in descriptor))
338
+ throw new InvalidError('Configuration records cannot contain accessors.');
339
+ result[key] = descriptor.value;
340
+ }
341
+ return result;
342
+ }
343
+ //# sourceMappingURL=Configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/internal/Configuration.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,15 @@
2
2
  * Defines typed token contracts and compatible immutable theme overrides.
3
3
  * @module
4
4
  */
5
- import { style } from './styleFunction.js';
6
- import { variants } from './variants.js';
7
- import type * as Binding from './internal/Binding.js';
8
- import type * as Literal from './internal/Literal.js';
9
- import * as Query from './internal/Query.js';
10
- import * as Token from './internal/Token.js';
11
- import * as Typography from './internal/Typography.js';
12
- import type * as Value from './internal/Value.js';
13
- import type * as Style from './Style.js';
5
+ import { style } from '../styleFunction.js';
6
+ import { variants } from '../variants.js';
7
+ import type * as Binding from './Binding.js';
8
+ import type * as Literal from './Literal.js';
9
+ import * as Query from './Query.js';
10
+ import * as Token from './Token.js';
11
+ import * as Typography from './Typography.js';
12
+ import type * as Value from './Value.js';
13
+ import type * as Style from '../Style.js';
14
14
  /** Complete color-scheme pair or a shared color. */
15
15
  export type Color = Literal.Color | {
16
16
  readonly dark: Literal.Color;
@@ -43,7 +43,7 @@ export type Definition<tokens extends Tokens = Tokens, boundStyle extends (...ar
43
43
  /** Token-aware single-element recipe authoring. */
44
44
  readonly variants: boundVariants;
45
45
  /** Web variable references; source templates retain their identity and fallback. */
46
- readonly vars: Token.Variables<References<tokens>>;
46
+ readonly vars: Token.Vars<References<tokens>>;
47
47
  };
48
48
  /**
49
49
  * Overrides existing leaves while retaining the base theme's token identities.
@@ -90,7 +90,7 @@ type ReferenceTree<tree, group extends Token.Group | 'typography'> = tree extend
90
90
  readonly [key in keyof tree]: ReferenceTree<tree[key], group extends 'typography' ? key extends Typography.Property ? key : group : group>;
91
91
  };
92
92
  /** Supported scalar groups; composite presets and query metadata follow separately. */
93
- type Scalar<group> = group extends 'spacing' | 'borderRadius' | 'margin' | 'padding' ? Literal.Length : group extends 'fontFamily' | 'fontSize' | 'fontWeight' | 'letterSpacing' | 'lineHeight' ? Exclude<NonNullable<Literal.Properties[group]>, 'initial' | 'inherit' | 'unset' | 'revert' | 'revert-layer'> : group extends 'breakpoints' | 'containers' ? Query.Length : Color;
93
+ type Scalar<group> = group extends 'spacing' | 'borderRadius' | 'borderWidth' | 'margin' | 'padding' ? Literal.Length : group extends 'fontFamily' | 'fontSize' | 'fontWeight' | 'letterSpacing' | 'lineHeight' ? Exclude<NonNullable<Literal.Properties[group]>, 'initial' | 'inherit' | 'unset' | 'revert' | 'revert-layer'> : group extends 'breakpoints' | 'containers' ? Query.Length : Color;
94
94
  export type Tokens = {
95
95
  /** Colors available to background declarations. */
96
96
  readonly backgroundColor?: Palette<Color> | undefined;
@@ -98,6 +98,8 @@ export type Tokens = {
98
98
  readonly borderColor?: Palette<Color> | undefined;
99
99
  /** Nonnegative corner radii. */
100
100
  readonly borderRadius?: Palette<Literal.Length> | undefined;
101
+ /** Nonnegative widths for physical and logical border declarations. */
102
+ readonly borderWidth?: Palette<Exclude<Literal.Length, `${number}%`>> | undefined;
101
103
  /** Compile-time viewport width thresholds. */
102
104
  readonly breakpoints?: Readonly<Record<string, Query.Length>> | undefined;
103
105
  /** Shared colors available to every supported color property. */
@@ -139,12 +141,12 @@ type UniqueNames<names extends readonly string[], seen extends string = never> =
139
141
  ] ? name extends seen ? never : UniqueNames<rest, seen | name> : unknown;
140
142
  type ContainerName<name> = name extends string ? Lowercase<name> extends 'none' | 'and' | 'not' | 'or' | 'default' | 'inherit' | 'initial' | 'unset' | 'revert' | 'revert-layer' ? never : name : name;
141
143
  type ValidPalette<palette, group> = palette extends undefined ? undefined : {
142
- [key in keyof palette]: key extends `${string}!${string}` ? never : group extends 'typography' ? key extends Typography.Property ? never : ValidTree<palette[key], group> : ValidTree<palette[key], group>;
144
+ [key in keyof palette]: key extends `${string}!${string}` ? never : group extends 'typography' ? key extends Typography.Property | `@${string}` ? never : ValidTree<palette[key], group> : ValidTree<palette[key], group>;
143
145
  };
144
146
  type WeightDigits<text extends string, digits extends unknown[] = []> = text extends '' ? digits extends [] ? false : true : digits['length'] extends 3 ? false : text extends `${infer first}${infer rest}` ? first extends '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' ? WeightDigits<rest, [...digits, unknown]> : false : false;
145
147
  type Weight<value> = value extends number ? number extends value ? value : `${value}` extends '1000' ? value : `${value}` extends `${infer whole}.${string}` ? whole extends '0' ? never : WeightDigits<whole> extends true ? value : never : `${value}` extends '0' ? never : WeightDigits<`${value}`> extends true ? value : never : value;
146
148
  type ValidTree<tree, group> = tree extends string | number ? group extends 'typography' ? never : tree extends Scalar<group> ? group extends 'breakpoints' | 'containers' ? tree extends `-${string}` ? never : Literal.Checked<tree> : group extends keyof Literal.Properties ? Literal.Checked<tree> & Value.Checked<Record<group, tree>>[group] & (group extends 'fontWeight' ? Weight<tree> : unknown) & (tree extends string ? Lowercase<tree> extends 'inherit' | 'initial' | 'unset' | 'revert' | 'revert-layer' ? never : unknown : unknown) : Literal.Checked<tree> : never : Extract<keyof tree, group extends 'color' | 'backgroundColor' | 'borderColor' | 'textColor' ? 'dark' | 'light' : never> extends never ? {
147
- [key in keyof tree]: key extends `${string}!${string}` ? never : group extends 'typography' ? key extends Typography.Property ? tree[key] extends string | number ? ValidTree<tree[key], key> : never : ValidTree<tree[key], group> : ValidTree<tree[key], group>;
149
+ [key in keyof tree]: key extends `${string}!${string}` ? never : group extends 'typography' ? key extends `@${string}` ? key extends Typography.Condition ? ValidTree<tree[key], group> & Record<Exclude<keyof tree[key], Typography.Property | Typography.Condition>, never> : never : key extends Typography.Property ? tree[key] extends string | number ? ValidTree<tree[key], key> : never : ValidTree<tree[key], group> : ValidTree<tree[key], group>;
148
150
  } : group extends 'color' | 'backgroundColor' | 'borderColor' | 'textColor' ? {
149
151
  readonly dark: Literal.Color & Literal.Checked<tree extends {
150
152
  dark: infer value;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../src/internal/Theme.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@
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';
11
- import * as Typography from './internal/Typography.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';
12
13
  /**
13
14
  * Defines scalar tokens and typography sets without defaults or environment access.
14
15
  * Colors currently use the supported literal color grammar; spacing and radius
@@ -37,7 +38,7 @@ export function extend(theme, overrides) {
37
38
  ?.value;
38
39
  if (!data)
39
40
  throw new InvalidError([], 'Expected a theme definition.');
40
- return build(overrides, data.contract, data.values, data.queries);
41
+ return build(overrides, data.contract, data.values, data.queries, undefined, data.paths);
41
42
  }
42
43
  /** Invalid token data with an unambiguous authored path. */
43
44
  export class InvalidError extends Error {
@@ -51,17 +52,21 @@ export class InvalidError extends Error {
51
52
  /** Group and nested keys identifying the failure. */
52
53
  path;
53
54
  }
54
- function build(input, contract, base, baseQueries, scope) {
55
+ function build(input, contract, base, baseQueries, scope, basePaths) {
55
56
  const values = Object.assign(Object.create(null), base);
56
57
  const queries = {
57
58
  breakpoints: Object.assign(Object.create(null), baseQueries?.breakpoints),
58
59
  containerNames: baseQueries?.containerNames ?? [],
59
60
  containers: Object.assign(Object.create(null), baseQueries?.containers),
60
61
  };
62
+ const paths = { ...basePaths };
63
+ const conditions = [];
61
64
  let hasQueries = !!baseQueries;
62
65
  const active = new Set();
63
66
  function visit(value, group, path) {
64
67
  const key = path.join('.');
68
+ if (path.some((part) => part.startsWith('@')))
69
+ paths[key] = Object.freeze([...path]);
65
70
  const scalar = typeof value === 'string' || typeof value === 'number';
66
71
  if (group === 'typography' && scalar)
67
72
  throw new InvalidError(path, 'Expected a typography set or a nested set group.');
@@ -96,6 +101,16 @@ function build(input, contract, base, baseQueries, scope) {
96
101
  active.add(value);
97
102
  for (const [name, child] of entries) {
98
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.');
99
114
  if (base &&
100
115
  !Object.keys(base).some((key) => key === next.join('.') || key.startsWith(`${next.join('.')}.`)))
101
116
  throw new InvalidError(next, 'Extensions cannot add token paths.');
@@ -156,6 +171,7 @@ function build(input, contract, base, baseQueries, scope) {
156
171
  'backgroundColor',
157
172
  'borderColor',
158
173
  'borderRadius',
174
+ 'borderWidth',
159
175
  'color',
160
176
  'margin',
161
177
  'padding',
@@ -179,14 +195,23 @@ function build(input, contract, base, baseQueries, scope) {
179
195
  throw new InvalidError([group], 'Token palettes cannot be empty.');
180
196
  for (const [name, value] of entries) {
181
197
  if (group === 'typography' &&
182
- Typography.properties.includes(name))
198
+ (Typography.properties.includes(name) ||
199
+ name.startsWith('@')))
183
200
  throw new InvalidError([group, name], 'Typography properties require a named set.');
184
201
  visit(value, group, [group, name]);
185
202
  }
186
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
+ }
211
+ }
187
212
  const tokens = Object.create(null);
188
213
  for (const [path, value] of Object.entries(values)) {
189
- const parts = path.split('.');
214
+ const parts = paths[path] ?? path.split('.');
190
215
  let tree = tokens;
191
216
  for (const part of parts.slice(0, -1))
192
217
  tree = (tree[part] ??= Object.create(null));
@@ -229,6 +254,7 @@ function build(input, contract, base, baseQueries, scope) {
229
254
  }, Token.definition, {
230
255
  value: Object.freeze({
231
256
  contract,
257
+ ...(Object.keys(paths).length ? { paths: Object.freeze(paths) } : {}),
232
258
  values: Object.freeze(values),
233
259
  ...(hasQueries
234
260
  ? {
@@ -262,7 +288,8 @@ function record(value, path) {
262
288
  throw new InvalidError([...path, key], 'Token keys cannot contain !; it is reserved for declaration importance.');
263
289
  if (typeof key !== 'string' ||
264
290
  !key ||
265
- key.includes('.') ||
291
+ (key.includes('.') &&
292
+ !(path[0] === 'typography' && Typography.condition(key))) ||
266
293
  !descriptor.enumerable ||
267
294
  !('value' in descriptor))
268
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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"}