@hozu/css 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { type BuildResult, classCandidates } from '@hozu/core/ir';
2
+ import type { ClassStyle } from '@hozu/validator';
3
+ import { type DesignTokens } from './tokens.ts';
2
4
  export interface CompiledStyles {
3
5
  css: string;
4
6
  href: string;
@@ -7,12 +9,16 @@ export interface CompiledStyles {
7
9
  files: string[];
8
10
  candidates: Set<string>;
9
11
  unknown: Map<string, string | null>;
12
+ classes: Map<string, ClassStyle>;
13
+ tokens: DesignTokens | null;
10
14
  }
11
15
  export { classCandidates };
12
16
  export declare function selectorClasses(css: string): Set<string>;
17
+ export declare const stylesSource: (build: BuildResult) => string;
13
18
  export declare function compileStyles(build: BuildResult, { minify, base }?: {
14
19
  minify?: boolean;
15
20
  base?: string;
16
21
  }): Promise<CompiledStyles>;
17
22
  export { type FontMetrics, fallbackFace, fontMetrics } from './fonts.ts';
23
+ export { type DesignTokens, designTokens } from './tokens.ts';
18
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,eAAe,EAAU,MAAM,eAAe,CAAA;AAKzE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CACpC;AAID,OAAO,EAAE,eAAe,EAAE,CAAA;AAU1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAKxD;AAkBD,wBAAsB,aAAa,CACjC,KAAK,EAAE,WAAW,EAClB,EAAE,MAAa,EAAE,IAAoB,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAChF,OAAO,CAAC,cAAc,CAAC,CAyDzB;AAED,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,eAAe,EAAyB,MAAM,eAAe,CAAA;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,EAAE,KAAK,YAAY,EAAiC,MAAM,aAAa,CAAA;AAE9E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IACnC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAChC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;CAC5B;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAU1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAKxD;AAaD,eAAO,MAAM,YAAY,UAAW,WAAW,WAK9C,CAAA;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,WAAW,EAClB,EAAE,MAAa,EAAE,IAAoB,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAChF,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAED,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
- import { createRequire } from 'node:module';
3
2
  import { extname, resolve } from 'node:path';
4
- import { classCandidates, sha256 } from '@hozu/core/ir';
3
+ import { classCandidates, sha256, styledClasses } from '@hozu/core/ir';
5
4
  import { closest } from '@hozu/validator';
6
5
  import { __unstable__loadDesignSystem, compile, optimize } from '@tailwindcss/node';
7
6
  import { withFallbacks } from './fonts.js';
8
- const require = createRequire(import.meta.url);
7
+ import { classStyles, resolveCss } from './properties.js';
8
+ import { defaultDesignSystem, tokensOf } from './tokens.js';
9
9
  export { classCandidates };
10
10
  const markers = /^(group|peer)(\/[\w-]+)?$/;
11
11
  const motion = /-(enter-from|enter-active|enter-to|leave-from|leave-active|leave-to|move)$/;
@@ -24,13 +24,14 @@ const foldDivisions = (css) => css.replace(/calc\((-?\d*\.?\d+)\s*\/\s*(-?\d*\.?
24
24
  const x = Number(a) / Number(b);
25
25
  return Number.isFinite(x) ? String(Number(x.toFixed(5))).replace(/^0\./, '.') : all;
26
26
  });
27
- const resolveCss = async (id) => id === 'tailwindcss' || id.startsWith('tailwindcss/')
28
- ? require.resolve(id === 'tailwindcss' ? 'tailwindcss/index.css' : id)
29
- : undefined;
27
+ export const stylesSource = (build) => {
28
+ const { entry, kits, features } = build.bindings.styles;
29
+ return [entry ?? 'tailwindcss', ...Object.values(kits), ...Object.values(features).flat()]
30
+ .map((file) => `@import ${JSON.stringify(file)};`)
31
+ .join('\n');
32
+ };
30
33
  export async function compileStyles(build, { minify = true, base = process.cwd() } = {}) {
31
- const { entry, features } = build.bindings.styles;
32
- const imports = [entry ?? 'tailwindcss', ...Object.values(features).flat()];
33
- const source = [transitions, ...imports.map((file) => `@import ${JSON.stringify(file)};`)].join('\n');
34
+ const source = [transitions, stylesSource(build)].join('\n');
34
35
  const files = new Set();
35
36
  const compiler = await compile(source, {
36
37
  base,
@@ -68,9 +69,11 @@ export async function compileStyles(build, { minify = true, base = process.cwd()
68
69
  if (m && motions.get(c.slice(0, m.index)) === 7)
69
70
  unknown.set(c, null);
70
71
  }
72
+ const styled = [...styledClasses(build.ir, build.bindings.components)].filter((c) => !unknown.has(c) && !markers.test(c) && !motion.test(c));
73
+ const { styles: classes, ds: loaded } = await classStyles(source, base, styled.sort(), raw);
71
74
  const typos = missing.filter((c) => !motion.test(c));
72
75
  if (typos.length) {
73
- const ds = await __unstable__loadDesignSystem(source, { base });
76
+ const ds = loaded ?? (await __unstable__loadDesignSystem(source, { base }));
74
77
  const vocabulary = [...new Set([...ds.getClassList().map(([name]) => name), ...known])];
75
78
  for (const c of typos) {
76
79
  const cut = c.lastIndexOf(':');
@@ -87,7 +90,10 @@ export async function compileStyles(build, { minify = true, base = process.cwd()
87
90
  files: [...files],
88
91
  candidates,
89
92
  unknown,
93
+ classes,
94
+ tokens: loaded ? tokensOf(loaded, await defaultDesignSystem(base)) : null,
90
95
  };
91
96
  }
92
97
  export { fallbackFace, fontMetrics } from './fonts.js';
98
+ export { designTokens } from './tokens.js';
93
99
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type ClassStyle } from '@hozu/validator';
2
+ export declare const resolveCss: (id: string) => Promise<string | undefined>;
3
+ export interface DesignSystem {
4
+ theme: {
5
+ values: Map<string, {
6
+ value: string;
7
+ }>;
8
+ };
9
+ utilities: {
10
+ keys(kind: 'static' | 'functional'): Iterable<string>;
11
+ has(name: string, kind: 'static' | 'functional'): boolean;
12
+ };
13
+ candidatesToCss(classes: string[]): (string | null)[];
14
+ getClassOrder(classes: string[]): [string, bigint | null][];
15
+ getClassList(): [string, unknown][];
16
+ }
17
+ /** One Tailwind design system for the project's stylesheets, resolved as compileStyles resolves them. */
18
+ export declare function loadDesignSystem(source: string, base: string): Promise<DesignSystem>;
19
+ export declare function classStyles(source: string, base: string, classes: string[], raw: string, designSystem?: boolean): Promise<{
20
+ styles: Map<string, ClassStyle>;
21
+ ds: DesignSystem | null;
22
+ }>;
23
+ //# sourceMappingURL=properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAA2B,MAAM,iBAAiB,CAAA;AAK1E,eAAO,MAAM,UAAU,OAAc,MAAM,gCAG5B,CAAA;AAEf,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE;QAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;IACjD,SAAS,EAAE;QACT,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QACrD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAA;KAC1D,CAAA;IACD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;IACrD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;IAC3D,YAAY,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACpC;AAaD,yGAAyG;AACzG,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAY1F;AA0LD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,MAAM,EACX,YAAY,UAAO,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAAC,CA+BvE"}
@@ -0,0 +1,263 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ import { readFile } from 'node:fs/promises';
10
+ import { createRequire } from 'node:module';
11
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
12
+ import { pathToFileURL } from 'node:url';
13
+ import { classVariant, important } from '@hozu/validator';
14
+ import { compile, loadModule } from '@tailwindcss/node';
15
+ const require = createRequire(import.meta.url);
16
+ export const resolveCss = async (id) => id === 'tailwindcss' || id.startsWith('tailwindcss/')
17
+ ? require.resolve(id === 'tailwindcss' ? 'tailwindcss/index.css' : id)
18
+ : undefined;
19
+ let core = null;
20
+ const stylesheetPath = async (id, base) => {
21
+ const own = await resolveCss(id);
22
+ if (own)
23
+ return own;
24
+ if (id.startsWith('.') || isAbsolute(id))
25
+ return resolve(base, id);
26
+ return createRequire(join(base, 'index.js')).resolve(id);
27
+ };
28
+ /** One Tailwind design system for the project's stylesheets, resolved as compileStyles resolves them. */
29
+ export async function loadDesignSystem(source, base) {
30
+ core ??= import(__rewriteRelativeImportExtension(pathToFileURL(require.resolve('tailwindcss')).href)).then((m) => m.__unstable__loadDesignSystem ? m : m.default);
31
+ return (await core).__unstable__loadDesignSystem(source, {
32
+ base,
33
+ loadStylesheet: async (id, from) => {
34
+ const path = await stylesheetPath(id, from);
35
+ return { path, base: dirname(path), content: await readFile(path, 'utf8') };
36
+ },
37
+ loadModule: (id, from) => loadModule(id, from, () => { }),
38
+ });
39
+ }
40
+ function rules(css) {
41
+ const out = [];
42
+ const stack = [];
43
+ const decls = [];
44
+ let text = '';
45
+ let quote = '';
46
+ const flush = () => {
47
+ const d = text.trim();
48
+ text = '';
49
+ const colon = d.indexOf(':');
50
+ if (colon > 0 && decls.length)
51
+ decls[decls.length - 1].push([d.slice(0, colon).trim(), d.slice(colon + 1).trim()]);
52
+ };
53
+ const emit = () => {
54
+ const own = decls[decls.length - 1];
55
+ if (!own?.length)
56
+ return;
57
+ const depth = stack.findLastIndex((p) => !p.startsWith('@'));
58
+ if (depth >= 0)
59
+ out.push({
60
+ selector: stack[depth],
61
+ context: stack.filter((_, i) => i !== depth),
62
+ declarations: [...own],
63
+ });
64
+ own.length = 0;
65
+ };
66
+ const body = css.replace(/\/\*[\s\S]*?\*\//g, '');
67
+ for (let i = 0; i < body.length; i++) {
68
+ const ch = body[i];
69
+ if (quote) {
70
+ text += ch;
71
+ if (ch === '\\')
72
+ text += body[++i] ?? '';
73
+ else if (ch === quote)
74
+ quote = '';
75
+ }
76
+ else if (ch === '"' || ch === "'") {
77
+ quote = ch;
78
+ text += ch;
79
+ }
80
+ else if (ch === '{') {
81
+ emit();
82
+ stack.push(text.trim());
83
+ decls.push([]);
84
+ text = '';
85
+ }
86
+ else if (ch === ';')
87
+ flush();
88
+ else if (ch === '}') {
89
+ flush();
90
+ emit();
91
+ stack.pop();
92
+ decls.pop();
93
+ }
94
+ else
95
+ text += ch;
96
+ }
97
+ return out;
98
+ }
99
+ const unescapeCss = (id) => id.replace(/\\([0-9a-fA-F]{1,6}\s?|.)/g, (_, e) => /^[0-9a-fA-F]/.test(e) && e.trim().length > 1 ? String.fromCodePoint(Number.parseInt(e, 16)) : e);
100
+ const classToken = /\.(-?(?:\\[^\n]|[A-Za-z_\u0080-￿])(?:\\[^\n]|[\w\u0080-￿-])*)/g;
101
+ const classStart = new RegExp(`^${classToken.source}`);
102
+ const splitList = (selector) => {
103
+ const parts = [];
104
+ let depth = 0;
105
+ let start = 0;
106
+ for (let i = 0; i < selector.length; i++) {
107
+ const ch = selector[i];
108
+ if (ch === '(' || ch === '[')
109
+ depth++;
110
+ else if (ch === ')' || ch === ']')
111
+ depth--;
112
+ else if (ch === ',' && depth === 0) {
113
+ parts.push(selector.slice(start, i));
114
+ start = i + 1;
115
+ }
116
+ }
117
+ parts.push(selector.slice(start));
118
+ return parts.map((p) => p.trim());
119
+ };
120
+ /** Where a selector puts the class: '' for the element itself, else the descendant part (`> :not(:last-child)`). */
121
+ function targetOf(selector, name) {
122
+ for (const m of selector.matchAll(classToken)) {
123
+ if (unescapeCss(m[1]) !== name)
124
+ continue;
125
+ const end = m.index + m[0].length;
126
+ let depth = 0;
127
+ let i = end;
128
+ for (; i < selector.length; i++) {
129
+ const ch = selector[i];
130
+ if (ch === '(' || ch === '[')
131
+ depth++;
132
+ else if (ch === ')' || ch === ']') {
133
+ if (depth === 0)
134
+ break;
135
+ depth--;
136
+ }
137
+ else if (depth === 0 && /[\s>+~]/.test(ch))
138
+ break;
139
+ }
140
+ let close = i;
141
+ let d = 0;
142
+ for (; close < selector.length; close++) {
143
+ const ch = selector[close];
144
+ if (ch === '(' || ch === '[')
145
+ d++;
146
+ else if (ch === ')' || ch === ']') {
147
+ if (d === 0)
148
+ break;
149
+ d--;
150
+ }
151
+ }
152
+ return {
153
+ before: selector.slice(0, m.index),
154
+ attached: selector.slice(end, i),
155
+ target: selector.slice(i, close).trim(),
156
+ };
157
+ }
158
+ return null;
159
+ }
160
+ const keyOf = (target, property) => (target ? `${target} ${property}` : property);
161
+ function propertiesOf(css, name) {
162
+ const props = {};
163
+ for (const rule of rules(css)) {
164
+ if (rule.context.some((c) => c.startsWith('@keyframes') || c.startsWith('@property')))
165
+ continue;
166
+ for (const selector of splitList(rule.selector)) {
167
+ const where = targetOf(selector, name);
168
+ if (!where)
169
+ continue;
170
+ for (const [p, v] of rule.declarations)
171
+ if (!p.startsWith('--'))
172
+ props[keyOf(where.target, p)] = v.replace(/\s*!important$/, '');
173
+ break;
174
+ }
175
+ }
176
+ return props;
177
+ }
178
+ /** Plain rules of the project's stylesheets: `.name` alone or with a descendant part, outside any condition. */
179
+ function customProperties(css, names) {
180
+ const out = new Map();
181
+ let at = 0;
182
+ for (const rule of rules(css)) {
183
+ at++;
184
+ if (rule.context.some((c) => !c.startsWith('@layer')))
185
+ continue;
186
+ for (const selector of splitList(rule.selector)) {
187
+ const first = classStart.exec(selector);
188
+ if (!first)
189
+ continue;
190
+ const name = unescapeCss(first[1]);
191
+ if (!names.has(name))
192
+ continue;
193
+ const where = targetOf(selector, name);
194
+ if (!where || where.before || where.attached)
195
+ continue;
196
+ const entry = out.get(name) ?? { properties: {}, layered: rule.context.length > 0, at };
197
+ for (const [p, v] of rule.declarations)
198
+ if (!p.startsWith('--'))
199
+ entry.properties[keyOf(where.target, p)] = v.replace(/\s*!important$/, '');
200
+ out.set(name, entry);
201
+ }
202
+ }
203
+ return out;
204
+ }
205
+ const utilityBlock = (css) => {
206
+ const at = css.indexOf('@layer utilities {');
207
+ if (at < 0)
208
+ return '';
209
+ let depth = 0;
210
+ for (let i = at; i < css.length; i++) {
211
+ if (css[i] === '{')
212
+ depth++;
213
+ else if (css[i] === '}' && --depth === 0)
214
+ return css.slice(at, i + 1);
215
+ }
216
+ return css.slice(at);
217
+ };
218
+ /** The baseline's route (bench/ui/baseline.ts): one compiler per class. Used when the design system cannot load. */
219
+ async function perClass(source, base, classes) {
220
+ const css = [];
221
+ for (const c of classes) {
222
+ const compiler = await compile(source, { base, customCssResolver: resolveCss, onDependency: () => { } });
223
+ css.push(utilityBlock(compiler.build([c])) || null);
224
+ }
225
+ return css;
226
+ }
227
+ export async function classStyles(source, base, classes, raw, designSystem = true) {
228
+ let ds = null;
229
+ try {
230
+ if (designSystem)
231
+ ds = await loadDesignSystem(source, base);
232
+ }
233
+ catch { }
234
+ const css = ds ? ds.candidatesToCss(classes) : await perClass(source, base, classes);
235
+ const utilities = classes.filter((_, i) => css[i]);
236
+ const rank = new Map();
237
+ const ordered = ds
238
+ ? ds
239
+ .getClassOrder(utilities)
240
+ .sort(([, a], [, b]) => (a === null ? -1 : b === null ? 1 : a < b ? -1 : a > b ? 1 : 0))
241
+ .map(([c]) => c)
242
+ : [...utilities].sort();
243
+ ordered.forEach((c, i) => rank.set(c, i));
244
+ const custom = customProperties(raw, new Set(classes.filter((_, i) => !css[i])));
245
+ const styles = new Map();
246
+ classes.forEach((c, i) => {
247
+ const own = css[i];
248
+ const plain = custom.get(c);
249
+ if (!own && !plain)
250
+ return;
251
+ const properties = own ? propertiesOf(own, c) : plain.properties;
252
+ if (!Object.keys(properties).length)
253
+ return;
254
+ styles.set(c, {
255
+ variant: classVariant(c),
256
+ important: important(c),
257
+ properties,
258
+ order: own ? rank.get(c) : (plain.layered ? -1e6 : 1e6) + plain.at,
259
+ });
260
+ });
261
+ return { styles, ds };
262
+ }
263
+ //# sourceMappingURL=properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type DesignSystem } from './properties.ts';
2
+ export interface DesignTokens {
3
+ theme: string[];
4
+ utilities: string[];
5
+ functional: string[];
6
+ }
7
+ export declare function tokensOf(ds: DesignSystem, plain: DesignSystem): DesignTokens;
8
+ export declare const defaultDesignSystem: (base: string) => Promise<DesignSystem>;
9
+ /** The `@theme` keys and `@utility` names the project's stylesheets add to Tailwind's defaults. */
10
+ export declare function designTokens(source: string, base: string): Promise<DesignTokens>;
11
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,iBAAiB,CAAA;AAErE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAID,wBAAgB,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAQ5E;AAED,eAAO,MAAM,mBAAmB,SAAU,MAAM,0BACiB,CAAA;AAEjE,mGAAmG;AACnG,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGtF"}
package/dist/tokens.js ADDED
@@ -0,0 +1,17 @@
1
+ import { loadDesignSystem } from './properties.js';
2
+ let defaults = null;
3
+ export function tokensOf(ds, plain) {
4
+ const added = (kind) => [...ds.utilities.keys(kind)].filter((k) => !plain.utilities.has(k, kind)).sort();
5
+ return {
6
+ theme: [...ds.theme.values.keys()].filter((k) => !plain.theme.values.has(k)).sort(),
7
+ utilities: added('static'),
8
+ functional: added('functional'),
9
+ };
10
+ }
11
+ export const defaultDesignSystem = (base) => (defaults ??= loadDesignSystem('@import "tailwindcss";', base));
12
+ /** The `@theme` keys and `@utility` names the project's stylesheets add to Tailwind's defaults. */
13
+ export async function designTokens(source, base) {
14
+ const [ds, plain] = await Promise.all([loadDesignSystem(source, base), defaultDesignSystem(base)]);
15
+ return tokensOf(ds, plain);
16
+ }
17
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAQrE,IAAI,QAAQ,GAAiC,IAAI,CAAA;AAEjD,MAAM,UAAU,QAAQ,CAAC,EAAgB,EAAE,KAAmB;IAC5D,MAAM,KAAK,GAAG,CAAC,IAA6B,EAAE,EAAE,CAC9C,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAClF,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACnF,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC1B,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC;KAChC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,CAAC,QAAQ,KAAK,gBAAgB,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAA;AAEjE,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,IAAY;IAC7D,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hozu/css",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Tailwind CSS v4 for Hozu, compiled from the classes the IR declares",
5
5
  "keywords": [
6
6
  "hozu",
@@ -41,8 +41,8 @@
41
41
  "dependencies": {
42
42
  "@tailwindcss/node": "4.3.3",
43
43
  "tailwindcss": "4.3.3",
44
- "@hozu/core": "0.8.0",
45
- "@hozu/validator": "0.8.0"
44
+ "@hozu/core": "0.9.0",
45
+ "@hozu/validator": "0.9.0"
46
46
  },
47
47
  "sideEffects": false
48
48
  }