@czap/vite 0.1.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/LICENSE +21 -0
- package/README.md +19 -0
- package/dist/css-quantize.d.ts +53 -0
- package/dist/css-quantize.d.ts.map +1 -0
- package/dist/css-quantize.js +247 -0
- package/dist/css-quantize.js.map +1 -0
- package/dist/environments.d.ts +36 -0
- package/dist/environments.d.ts.map +1 -0
- package/dist/environments.js +67 -0
- package/dist/environments.js.map +1 -0
- package/dist/hmr.d.ts +37 -0
- package/dist/hmr.d.ts.map +1 -0
- package/dist/hmr.js +84 -0
- package/dist/hmr.js.map +1 -0
- package/dist/html-transform.d.ts +19 -0
- package/dist/html-transform.d.ts.map +1 -0
- package/dist/html-transform.js +54 -0
- package/dist/html-transform.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/normalize-css-eol.d.ts +7 -0
- package/dist/normalize-css-eol.d.ts.map +1 -0
- package/dist/normalize-css-eol.js +9 -0
- package/dist/normalize-css-eol.js.map +1 -0
- package/dist/plugin.d.ts +48 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +404 -0
- package/dist/plugin.js.map +1 -0
- package/dist/primitive-resolve.d.ts +56 -0
- package/dist/primitive-resolve.d.ts.map +1 -0
- package/dist/primitive-resolve.js +71 -0
- package/dist/primitive-resolve.js.map +1 -0
- package/dist/resolve-fs.d.ts +13 -0
- package/dist/resolve-fs.d.ts.map +1 -0
- package/dist/resolve-fs.js +80 -0
- package/dist/resolve-fs.js.map +1 -0
- package/dist/resolve-utils.d.ts +20 -0
- package/dist/resolve-utils.d.ts.map +1 -0
- package/dist/resolve-utils.js +45 -0
- package/dist/resolve-utils.js.map +1 -0
- package/dist/style-transform.d.ts +49 -0
- package/dist/style-transform.d.ts.map +1 -0
- package/dist/style-transform.js +122 -0
- package/dist/style-transform.js.map +1 -0
- package/dist/theme-transform.d.ts +44 -0
- package/dist/theme-transform.d.ts.map +1 -0
- package/dist/theme-transform.js +85 -0
- package/dist/theme-transform.js.map +1 -0
- package/dist/token-transform.d.ts +42 -0
- package/dist/token-transform.d.ts.map +1 -0
- package/dist/token-transform.js +84 -0
- package/dist/token-transform.js.map +1 -0
- package/dist/virtual-modules.d.ts +55 -0
- package/dist/virtual-modules.d.ts.map +1 -0
- package/dist/virtual-modules.js +141 -0
- package/dist/virtual-modules.js.map +1 -0
- package/dist/wasm-resolve.d.ts +25 -0
- package/dist/wasm-resolve.d.ts.map +1 -0
- package/dist/wasm-resolve.js +36 -0
- package/dist/wasm-resolve.js.map +1 -0
- package/package.json +63 -0
- package/src/css-quantize.ts +294 -0
- package/src/environments.ts +98 -0
- package/src/hmr.ts +121 -0
- package/src/html-transform.ts +61 -0
- package/src/index.ts +71 -0
- package/src/normalize-css-eol.ts +8 -0
- package/src/plugin.ts +492 -0
- package/src/primitive-resolve.ts +106 -0
- package/src/resolve-fs.ts +82 -0
- package/src/resolve-utils.ts +54 -0
- package/src/style-transform.ts +157 -0
- package/src/theme-transform.ts +119 -0
- package/src/token-transform.ts +117 -0
- package/src/virtual-modules.ts +160 -0
- package/src/wasm-resolve.ts +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic primitive resolver -- replaces boundary-resolve,
|
|
3
|
+
* token-resolve, theme-resolve, and style-resolve with a single
|
|
4
|
+
* parameterised implementation.
|
|
5
|
+
*
|
|
6
|
+
* Resolution order for each kind:
|
|
7
|
+
*
|
|
8
|
+
* 1. `userDir/kinds.ts` (if `userDir` provided)
|
|
9
|
+
* 2. `userDir/*.kinds.ts` (if `userDir` provided)
|
|
10
|
+
* 3. `fromFile`'s dir / `kinds.ts`
|
|
11
|
+
* 4. `fromFile`'s dir / `*.kinds.ts`
|
|
12
|
+
* 5. `projectRoot/kinds.ts`
|
|
13
|
+
* 6. `projectRoot/*.kinds.ts`
|
|
14
|
+
* 7. `null`
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
import type { Boundary, Token, Theme, Style } from '@czap/core';
|
|
19
|
+
import type { PrimitiveKind } from '@czap/core';
|
|
20
|
+
export type { PrimitiveKind };
|
|
21
|
+
/**
|
|
22
|
+
* Map a {@link PrimitiveKind} to the structural type of the primitive
|
|
23
|
+
* it resolves (`Boundary.Shape`, `Token.Shape`, ...).
|
|
24
|
+
*/
|
|
25
|
+
export type PrimitiveShape<K extends PrimitiveKind> = K extends 'boundary' ? Boundary.Shape : K extends 'token' ? Token.Shape : K extends 'theme' ? Theme.Shape : Style.Shape;
|
|
26
|
+
/**
|
|
27
|
+
* A successful primitive resolution: the loaded primitive plus the
|
|
28
|
+
* absolute path of the module it came from (surfaced in diagnostics).
|
|
29
|
+
*/
|
|
30
|
+
export interface PrimitiveResolution<K extends PrimitiveKind> {
|
|
31
|
+
readonly primitive: PrimitiveShape<K>;
|
|
32
|
+
readonly source: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Per-`PrimitiveKind` metadata used by {@link resolvePrimitive}:
|
|
36
|
+
* canonical filename, wildcard suffix, and the exported tag name the
|
|
37
|
+
* module is expected to decorate its primitives with.
|
|
38
|
+
*/
|
|
39
|
+
export declare const KIND_META: Record<PrimitiveKind, {
|
|
40
|
+
file: string;
|
|
41
|
+
suffix: string;
|
|
42
|
+
tag: string;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Resolve a named primitive (boundary / token / theme / style) by
|
|
46
|
+
* walking the convention-based search order. Returns `null` when no
|
|
47
|
+
* module exports a matching named value.
|
|
48
|
+
*
|
|
49
|
+
* @param kind - Primitive kind to resolve.
|
|
50
|
+
* @param name - Named export to look up.
|
|
51
|
+
* @param fromFile - Path of the file that triggered the lookup.
|
|
52
|
+
* @param projectRoot - Vite project root (search fallback).
|
|
53
|
+
* @param userDir - Optional override directory (searched first).
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolvePrimitive<K extends PrimitiveKind>(kind: K, name: string, fromFile: string, projectRoot: string, userDir?: string): Promise<PrimitiveResolution<K> | null>;
|
|
56
|
+
//# sourceMappingURL=primitive-resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive-resolve.d.ts","sourceRoot":"","sources":["../src/primitive-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,aAAa,IAChD,CAAC,SAAS,UAAU,GAAG,QAAQ,CAAC,KAAK,GACrC,CAAC,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAC/B,CAAC,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAC/B,KAAK,CAAC,KAAK,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,aAAa;IAC1D,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAK1F,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,aAAa,EAC5D,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CA+BxC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic primitive resolver -- replaces boundary-resolve,
|
|
3
|
+
* token-resolve, theme-resolve, and style-resolve with a single
|
|
4
|
+
* parameterised implementation.
|
|
5
|
+
*
|
|
6
|
+
* Resolution order for each kind:
|
|
7
|
+
*
|
|
8
|
+
* 1. `userDir/kinds.ts` (if `userDir` provided)
|
|
9
|
+
* 2. `userDir/*.kinds.ts` (if `userDir` provided)
|
|
10
|
+
* 3. `fromFile`'s dir / `kinds.ts`
|
|
11
|
+
* 4. `fromFile`'s dir / `*.kinds.ts`
|
|
12
|
+
* 5. `projectRoot/kinds.ts`
|
|
13
|
+
* 6. `projectRoot/*.kinds.ts`
|
|
14
|
+
* 7. `null`
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
import * as path from 'node:path';
|
|
19
|
+
import { fileExists, findConventionFiles } from './resolve-fs.js';
|
|
20
|
+
import { tryImportNamed } from './resolve-utils.js';
|
|
21
|
+
/**
|
|
22
|
+
* Per-`PrimitiveKind` metadata used by {@link resolvePrimitive}:
|
|
23
|
+
* canonical filename, wildcard suffix, and the exported tag name the
|
|
24
|
+
* module is expected to decorate its primitives with.
|
|
25
|
+
*/
|
|
26
|
+
export const KIND_META = {
|
|
27
|
+
boundary: { file: 'boundaries.ts', suffix: '.boundaries.ts', tag: 'BoundaryDef' },
|
|
28
|
+
token: { file: 'tokens.ts', suffix: '.tokens.ts', tag: 'TokenDef' },
|
|
29
|
+
theme: { file: 'themes.ts', suffix: '.themes.ts', tag: 'ThemeDef' },
|
|
30
|
+
style: { file: 'styles.ts', suffix: '.styles.ts', tag: 'StyleDef' },
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Resolve a named primitive (boundary / token / theme / style) by
|
|
34
|
+
* walking the convention-based search order. Returns `null` when no
|
|
35
|
+
* module exports a matching named value.
|
|
36
|
+
*
|
|
37
|
+
* @param kind - Primitive kind to resolve.
|
|
38
|
+
* @param name - Named export to look up.
|
|
39
|
+
* @param fromFile - Path of the file that triggered the lookup.
|
|
40
|
+
* @param projectRoot - Vite project root (search fallback).
|
|
41
|
+
* @param userDir - Optional override directory (searched first).
|
|
42
|
+
*/
|
|
43
|
+
export async function resolvePrimitive(kind, name, fromFile, projectRoot, userDir) {
|
|
44
|
+
const { file, suffix, tag } = KIND_META[kind];
|
|
45
|
+
const diagnosticSource = `czap/vite.${kind}-resolve`;
|
|
46
|
+
const sourceDir = path.dirname(fromFile);
|
|
47
|
+
const searchDirs = [];
|
|
48
|
+
if (userDir)
|
|
49
|
+
searchDirs.push(userDir);
|
|
50
|
+
if (sourceDir !== projectRoot)
|
|
51
|
+
searchDirs.push(sourceDir);
|
|
52
|
+
searchDirs.push(projectRoot);
|
|
53
|
+
for (const dir of searchDirs) {
|
|
54
|
+
// Try direct convention file: boundaries.ts / tokens.ts / etc.
|
|
55
|
+
const directFile = path.join(dir, file);
|
|
56
|
+
if (fileExists(directFile, diagnosticSource)) {
|
|
57
|
+
const result = await tryImportNamed(directFile, name, tag, diagnosticSource, kind);
|
|
58
|
+
if (result !== undefined)
|
|
59
|
+
return { primitive: result, source: directFile };
|
|
60
|
+
}
|
|
61
|
+
// Try wildcard files: *.boundaries.ts / *.tokens.ts / etc.
|
|
62
|
+
const wildcardFiles = findConventionFiles(dir, suffix, diagnosticSource);
|
|
63
|
+
for (const wildcardFile of wildcardFiles) {
|
|
64
|
+
const result = await tryImportNamed(wildcardFile, name, tag, diagnosticSource, kind);
|
|
65
|
+
if (result !== undefined)
|
|
66
|
+
return { primitive: result, source: wildcardFile };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=primitive-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive-resolve.js","sourceRoot":"","sources":["../src/primitive-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuBpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAyE;IAC7F,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,EAAE;IACjF,KAAK,EAAK,EAAE,IAAI,EAAE,WAAW,EAAM,MAAM,EAAE,YAAY,EAAM,GAAG,EAAE,UAAU,EAAK;IACjF,KAAK,EAAK,EAAE,IAAI,EAAE,WAAW,EAAM,MAAM,EAAE,YAAY,EAAM,GAAG,EAAE,UAAU,EAAK;IACjF,KAAK,EAAK,EAAE,IAAI,EAAE,WAAW,EAAM,MAAM,EAAE,YAAY,EAAM,GAAG,EAAE,UAAU,EAAK;CAClF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAO,EACP,IAAY,EACZ,QAAgB,EAChB,WAAmB,EACnB,OAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,aAAa,IAAI,UAAU,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,SAAS,KAAK,WAAW;QAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,+DAA+D;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAC9C,CAAC;YACF,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC7E,CAAC;QAED,2DAA2D;QAC3D,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACzE,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAChD,CAAC;YACF,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return `true` when `filePath` points at a regular file. Missing paths
|
|
3
|
+
* return `false`; other filesystem errors are logged via
|
|
4
|
+
* `Diagnostics.warn` and re-thrown.
|
|
5
|
+
*/
|
|
6
|
+
export declare function fileExists(filePath: string, source: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* List files in `dir` whose names end with `suffix` (e.g.
|
|
9
|
+
* `.boundaries.ts`). Missing directories return `[]`; other errors are
|
|
10
|
+
* logged and re-thrown.
|
|
11
|
+
*/
|
|
12
|
+
export declare function findConventionFiles(dir: string, suffix: string, source: string): readonly string[];
|
|
13
|
+
//# sourceMappingURL=resolve-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-fs.d.ts","sourceRoot":"","sources":["../src/resolve-fs.ts"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAoBpE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAyBlG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem helpers for convention-based primitive resolution.
|
|
3
|
+
*
|
|
4
|
+
* Wraps `fs.statSync` / `fs.readdirSync` so missing files / directories
|
|
5
|
+
* are reported as `false` / `[]` instead of exceptions, while unexpected
|
|
6
|
+
* errors are routed through `Diagnostics.warn` and re-thrown.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { Diagnostics } from '@czap/core';
|
|
11
|
+
import * as fs from 'node:fs';
|
|
12
|
+
import * as path from 'node:path';
|
|
13
|
+
function isMissingFilesystemError(error) {
|
|
14
|
+
/* v8 ignore next — Node's fs APIs always throw objects (Error subclasses); the
|
|
15
|
+
non-object/null guards are defense-in-depth for a narrowed `unknown` and are
|
|
16
|
+
unreachable in practice without a host patching the fs module to throw primitives. */
|
|
17
|
+
if (typeof error !== 'object' || error === null || !('code' in error))
|
|
18
|
+
return false;
|
|
19
|
+
const code = error.code;
|
|
20
|
+
return code === 'ENOENT' || code === 'ENOTDIR';
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Return `true` when `filePath` points at a regular file. Missing paths
|
|
24
|
+
* return `false`; other filesystem errors are logged via
|
|
25
|
+
* `Diagnostics.warn` and re-thrown.
|
|
26
|
+
*/
|
|
27
|
+
export function fileExists(filePath, source) {
|
|
28
|
+
let exists = false;
|
|
29
|
+
let missing = false;
|
|
30
|
+
try {
|
|
31
|
+
exists = fs.statSync(filePath).isFile();
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (isMissingFilesystemError(error)) {
|
|
35
|
+
missing = true;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
Diagnostics.warn({
|
|
39
|
+
source,
|
|
40
|
+
code: 'filesystem-stat-failed',
|
|
41
|
+
message: `Failed to stat "${filePath}" while resolving a convention module.`,
|
|
42
|
+
cause: error,
|
|
43
|
+
});
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return missing ? false : exists;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* List files in `dir` whose names end with `suffix` (e.g.
|
|
51
|
+
* `.boundaries.ts`). Missing directories return `[]`; other errors are
|
|
52
|
+
* logged and re-thrown.
|
|
53
|
+
*/
|
|
54
|
+
export function findConventionFiles(dir, suffix, source) {
|
|
55
|
+
let entries = [];
|
|
56
|
+
let missing = false;
|
|
57
|
+
try {
|
|
58
|
+
entries = fs.readdirSync(dir, { encoding: 'utf8' });
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (isMissingFilesystemError(error)) {
|
|
62
|
+
missing = true;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
Diagnostics.warn({
|
|
66
|
+
source,
|
|
67
|
+
code: 'filesystem-readdir-failed',
|
|
68
|
+
message: `Failed to read "${dir}" while resolving "${suffix}" convention modules.`,
|
|
69
|
+
cause: error,
|
|
70
|
+
detail: { suffix },
|
|
71
|
+
});
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (missing) {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
return entries.filter((entry) => entry.endsWith(suffix)).map((entry) => path.join(dir, entry));
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=resolve-fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-fs.js","sourceRoot":"","sources":["../src/resolve-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,SAAS,wBAAwB,CAAC,KAAc;IAC9C;;4FAEwF;IACxF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpF,MAAM,IAAI,GAAI,KAAiB,CAAC,IAAI,CAAC;IACrC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,MAAc;IACzD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM;gBACN,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,mBAAmB,QAAQ,wCAAwC;gBAC5E,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,MAAc,EAAE,MAAc;IAC7E,IAAI,OAAO,GAAsB,EAAE,CAAC;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM;gBACN,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,mBAAmB,GAAG,sBAAsB,MAAM,uBAAuB;gBAClF,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,EAAE,MAAM,EAAE;aACnB,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACjH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for convention-based resolve modules.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Attempt to dynamically import a module and extract a named export
|
|
6
|
+
* whose `_tag` matches `expectedTag`.
|
|
7
|
+
*
|
|
8
|
+
* @param modulePath - Absolute path to the module file.
|
|
9
|
+
* @param exportName - The named export to look up.
|
|
10
|
+
* @param expectedTag - The `_tag` value that identifies a valid export
|
|
11
|
+
* (e.g. `'BoundaryDef'`).
|
|
12
|
+
* @param diagnosticSource - The source string used in `Diagnostics`
|
|
13
|
+
* warnings (e.g. `'czap/vite.boundary-resolve'`).
|
|
14
|
+
* @param diagnosticNoun - Human-readable noun for the warning message
|
|
15
|
+
* (e.g. `'boundary'`).
|
|
16
|
+
* @returns The matched export cast to `T`, or `undefined` if not found
|
|
17
|
+
* or tagged incorrectly.
|
|
18
|
+
*/
|
|
19
|
+
export declare function tryImportNamed<T>(modulePath: string, exportName: string, expectedTag: string, diagnosticSource: string, diagnosticNoun: string): Promise<T | undefined>;
|
|
20
|
+
//# sourceMappingURL=resolve-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-utils.d.ts","sourceRoot":"","sources":["../src/resolve-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAqBxB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for convention-based resolve modules.
|
|
3
|
+
*/
|
|
4
|
+
import { Diagnostics } from '@czap/core';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Generic dynamic import helper
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
/**
|
|
10
|
+
* Attempt to dynamically import a module and extract a named export
|
|
11
|
+
* whose `_tag` matches `expectedTag`.
|
|
12
|
+
*
|
|
13
|
+
* @param modulePath - Absolute path to the module file.
|
|
14
|
+
* @param exportName - The named export to look up.
|
|
15
|
+
* @param expectedTag - The `_tag` value that identifies a valid export
|
|
16
|
+
* (e.g. `'BoundaryDef'`).
|
|
17
|
+
* @param diagnosticSource - The source string used in `Diagnostics`
|
|
18
|
+
* warnings (e.g. `'czap/vite.boundary-resolve'`).
|
|
19
|
+
* @param diagnosticNoun - Human-readable noun for the warning message
|
|
20
|
+
* (e.g. `'boundary'`).
|
|
21
|
+
* @returns The matched export cast to `T`, or `undefined` if not found
|
|
22
|
+
* or tagged incorrectly.
|
|
23
|
+
*/
|
|
24
|
+
export async function tryImportNamed(modulePath, exportName, expectedTag, diagnosticSource, diagnosticNoun) {
|
|
25
|
+
let imported = null;
|
|
26
|
+
try {
|
|
27
|
+
imported = (await import(/* @vite-ignore */ pathToFileURL(modulePath).href));
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
Diagnostics.warn({
|
|
31
|
+
source: diagnosticSource,
|
|
32
|
+
code: 'import-failed',
|
|
33
|
+
message: `Failed to import "${modulePath}" for ${diagnosticNoun} "${exportName}".`,
|
|
34
|
+
cause: err,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const exported = imported?.[exportName];
|
|
38
|
+
if (exported && typeof exported === 'object' && '_tag' in exported && exported._tag === expectedTag) {
|
|
39
|
+
// Runtime `_tag` guard validates the caller-specified shape; T is the caller's
|
|
40
|
+
// type for the tag. This is the single containment cast at the import boundary.
|
|
41
|
+
return exported;
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=resolve-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-utils.js","sourceRoot":"","sources":["../src/resolve-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB,EAClB,UAAkB,EAClB,WAAmB,EACnB,gBAAwB,EACxB,cAAsB;IAEtB,IAAI,QAAQ,GAAmC,IAAI,CAAC;IACpD,IAAI,CAAC;QACH,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAA4B,CAAC;IAC1G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,IAAI,CAAC;YACf,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,qBAAqB,UAAU,SAAS,cAAc,KAAK,UAAU,IAAI;YAClF,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACpG,+EAA+E;QAC/E,gFAAgF;QAChF,OAAO,QAAa,CAAC;IACvB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@style` CSS block parser and compiler.
|
|
3
|
+
*
|
|
4
|
+
* Parses custom `@style name { state { prop: value; } }` blocks from
|
|
5
|
+
* CSS source and compiles them into scoped CSS with `@layer`,
|
|
6
|
+
* `@scope`, and `@starting-style` rules using resolved `StyleDef`
|
|
7
|
+
* definitions.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { Style } from '@czap/core';
|
|
12
|
+
/**
|
|
13
|
+
* Single parsed `@style` block: the style name being referenced, its
|
|
14
|
+
* per-state CSS property overrides, and provenance.
|
|
15
|
+
*/
|
|
16
|
+
export interface StyleBlock {
|
|
17
|
+
/** Named style (resolved against exported `StyleDef` values). */
|
|
18
|
+
readonly styleName: string;
|
|
19
|
+
/** `{ stateName: { cssProp: value } }` mapping. */
|
|
20
|
+
readonly states: Record<string, Record<string, string>>;
|
|
21
|
+
/** Absolute source file path. */
|
|
22
|
+
readonly sourceFile: string;
|
|
23
|
+
/** 1-based line where the block begins. */
|
|
24
|
+
readonly line: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parse every `@style` block from CSS source text.
|
|
28
|
+
*
|
|
29
|
+
* Grammar:
|
|
30
|
+
*
|
|
31
|
+
* ```css
|
|
32
|
+
* @style name {
|
|
33
|
+
* stateName {
|
|
34
|
+
* property: value;
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* Follows the same nested-brace pattern as `@quantize` blocks.
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseStyleBlocks(css: string, sourceFile: string): readonly StyleBlock[];
|
|
42
|
+
/**
|
|
43
|
+
* Compile a parsed {@link StyleBlock} plus a resolved `StyleDef` into
|
|
44
|
+
* scoped CSS with `@layer`, `@scope`, and `@starting-style` rules.
|
|
45
|
+
* Delegates to the canonical `StyleCSSCompiler` to avoid duplicating
|
|
46
|
+
* style-to-CSS logic.
|
|
47
|
+
*/
|
|
48
|
+
export declare function compileStyleBlock(block: StyleBlock, style: Style.Shape): string;
|
|
49
|
+
//# sourceMappingURL=style-transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-transform.d.ts","sourceRoot":"","sources":["../src/style-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAQxC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,iCAAiC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CA6EvF;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAc/E"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@style` CSS block parser and compiler.
|
|
3
|
+
*
|
|
4
|
+
* Parses custom `@style name { state { prop: value; } }` blocks from
|
|
5
|
+
* CSS source and compiles them into scoped CSS with `@layer`,
|
|
6
|
+
* `@scope`, and `@starting-style` rules using resolved `StyleDef`
|
|
7
|
+
* definitions.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { StyleCSSCompiler } from '@czap/compiler';
|
|
12
|
+
import { normalizeCssLineEndings } from './normalize-css-eol.js';
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Parser
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
/**
|
|
17
|
+
* Parse every `@style` block from CSS source text.
|
|
18
|
+
*
|
|
19
|
+
* Grammar:
|
|
20
|
+
*
|
|
21
|
+
* ```css
|
|
22
|
+
* @style name {
|
|
23
|
+
* stateName {
|
|
24
|
+
* property: value;
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* Follows the same nested-brace pattern as `@quantize` blocks.
|
|
30
|
+
*/
|
|
31
|
+
export function parseStyleBlocks(css, sourceFile) {
|
|
32
|
+
const blocks = [];
|
|
33
|
+
const lines = normalizeCssLineEndings(css).split('\n');
|
|
34
|
+
let i = 0;
|
|
35
|
+
while (i < lines.length) {
|
|
36
|
+
const line = lines[i];
|
|
37
|
+
const atMatch = line.match(/^\s*@style\s+([a-zA-Z_][a-zA-Z0-9_-]*)\s*\{/);
|
|
38
|
+
if (atMatch) {
|
|
39
|
+
const styleName = atMatch[1];
|
|
40
|
+
const blockStartLine = i + 1; // 1-indexed
|
|
41
|
+
const states = {};
|
|
42
|
+
i++; // advance past @style line
|
|
43
|
+
let braceDepth = 1;
|
|
44
|
+
while (i < lines.length && braceDepth > 0) {
|
|
45
|
+
const currentLine = lines[i];
|
|
46
|
+
const trimmed = currentLine.trim();
|
|
47
|
+
if (braceDepth === 1) {
|
|
48
|
+
// Look for state name opening
|
|
49
|
+
const stateMatch = trimmed.match(/^([a-zA-Z_][a-zA-Z0-9_-]*)\s*\{/);
|
|
50
|
+
if (stateMatch) {
|
|
51
|
+
const stateName = stateMatch[1];
|
|
52
|
+
const props = {};
|
|
53
|
+
i++; // advance past state name line
|
|
54
|
+
let stateDepth = 0;
|
|
55
|
+
while (i < lines.length) {
|
|
56
|
+
const propLine = lines[i].trim();
|
|
57
|
+
for (const ch of propLine) {
|
|
58
|
+
if (ch === '{')
|
|
59
|
+
stateDepth++;
|
|
60
|
+
else if (ch === '}')
|
|
61
|
+
stateDepth--;
|
|
62
|
+
}
|
|
63
|
+
if (stateDepth < 0) {
|
|
64
|
+
i++;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
const propMatch = propLine.match(/^([a-zA-Z-][a-zA-Z0-9-]*)\s*:\s*(.+?)\s*;?\s*$/);
|
|
68
|
+
if (propMatch) {
|
|
69
|
+
props[propMatch[1]] = propMatch[2].replace(/;$/, '').trim();
|
|
70
|
+
}
|
|
71
|
+
i++;
|
|
72
|
+
}
|
|
73
|
+
states[stateName] = props;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
// Closing brace for @style block
|
|
77
|
+
if (trimmed === '}') {
|
|
78
|
+
braceDepth--;
|
|
79
|
+
i++;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Track nested braces for robustness
|
|
84
|
+
for (const ch of trimmed) {
|
|
85
|
+
if (ch === '{')
|
|
86
|
+
braceDepth++;
|
|
87
|
+
if (ch === '}')
|
|
88
|
+
braceDepth--;
|
|
89
|
+
}
|
|
90
|
+
i++;
|
|
91
|
+
}
|
|
92
|
+
blocks.push({ styleName, states, sourceFile, line: blockStartLine });
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
i++;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return blocks;
|
|
99
|
+
}
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// Compiler (delegates to @czap/compiler StyleCSSCompiler)
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
/**
|
|
104
|
+
* Compile a parsed {@link StyleBlock} plus a resolved `StyleDef` into
|
|
105
|
+
* scoped CSS with `@layer`, `@scope`, and `@starting-style` rules.
|
|
106
|
+
* Delegates to the canonical `StyleCSSCompiler` to avoid duplicating
|
|
107
|
+
* style-to-CSS logic.
|
|
108
|
+
*/
|
|
109
|
+
export function compileStyleBlock(block, style) {
|
|
110
|
+
const result = StyleCSSCompiler.compile(style, block.styleName);
|
|
111
|
+
const parts = [result.layers, result.startingStyle].filter((part) => part.length > 0);
|
|
112
|
+
for (const [stateName, props] of Object.entries(block.states)) {
|
|
113
|
+
if (Object.keys(props).length > 0) {
|
|
114
|
+
const declarations = Object.entries(props)
|
|
115
|
+
.map(([prop, value]) => ` ${prop}: ${value};`)
|
|
116
|
+
.join('\n');
|
|
117
|
+
parts.push(`/* state: ${stateName} */\n.${block.styleName}[data-state="${stateName}"] {\n${declarations}\n}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return parts.join('\n\n');
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=style-transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-transform.js","sourceRoot":"","sources":["../src/style-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAqBjE,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,UAAkB;IAC9D,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAE1E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;YAC1C,MAAM,MAAM,GAA2C,EAAE,CAAC;YAE1D,CAAC,EAAE,CAAC,CAAC,2BAA2B;YAChC,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;gBAEnC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBACrB,8BAA8B;oBAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBACpE,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;wBACjC,MAAM,KAAK,GAA2B,EAAE,CAAC;wBACzC,CAAC,EAAE,CAAC,CAAC,+BAA+B;wBAEpC,IAAI,UAAU,GAAG,CAAC,CAAC;wBACnB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;4BACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;4BAElC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gCAC1B,IAAI,EAAE,KAAK,GAAG;oCAAE,UAAU,EAAE,CAAC;qCACxB,IAAI,EAAE,KAAK,GAAG;oCAAE,UAAU,EAAE,CAAC;4BACpC,CAAC;4BAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gCACnB,CAAC,EAAE,CAAC;gCACJ,MAAM;4BACR,CAAC;4BAED,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;4BACnF,IAAI,SAAS,EAAE,CAAC;gCACd,KAAK,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;4BAChE,CAAC;4BACD,CAAC,EAAE,CAAC;wBACN,CAAC;wBAED,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;wBAC1B,SAAS;oBACX,CAAC;oBAED,iCAAiC;oBACjC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;wBACpB,UAAU,EAAE,CAAC;wBACb,CAAC,EAAE,CAAC;wBACJ,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,qCAAqC;gBACrC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;oBACzB,IAAI,EAAE,KAAK,GAAG;wBAAE,UAAU,EAAE,CAAC;oBAC7B,IAAI,EAAE,KAAK,GAAG;wBAAE,UAAU,EAAE,CAAC;gBAC/B,CAAC;gBACD,CAAC,EAAE,CAAC;YACN,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiB,EAAE,KAAkB;IACrE,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtG,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC;iBAC9C,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,SAAS,KAAK,CAAC,SAAS,gBAAgB,SAAS,SAAS,YAAY,KAAK,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@theme` CSS block parser and compiler.
|
|
3
|
+
*
|
|
4
|
+
* Parses custom `@theme name { token: value; ... }` blocks from CSS
|
|
5
|
+
* source and compiles them into `html[data-theme]` selector blocks
|
|
6
|
+
* plus transition declarations using resolved `ThemeDef` definitions.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import type { Theme } from '@czap/core';
|
|
11
|
+
/**
|
|
12
|
+
* Parsed `@theme` block: the theme to apply and any inline token
|
|
13
|
+
* overrides declared on the block itself.
|
|
14
|
+
*/
|
|
15
|
+
export interface ThemeBlock {
|
|
16
|
+
/** Named theme (resolved against exported `ThemeDef` values). */
|
|
17
|
+
readonly themeName: string;
|
|
18
|
+
/** Inline token overrides (`{ tokenName: value }`). */
|
|
19
|
+
readonly declarations: Record<string, string>;
|
|
20
|
+
/** Absolute source file path. */
|
|
21
|
+
readonly sourceFile: string;
|
|
22
|
+
/** 1-based line where the block begins. */
|
|
23
|
+
readonly line: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parse every `@theme` block from CSS source text.
|
|
27
|
+
*
|
|
28
|
+
* Grammar:
|
|
29
|
+
*
|
|
30
|
+
* ```css
|
|
31
|
+
* @theme name {
|
|
32
|
+
* tokenName: value;
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseThemeBlocks(css: string, sourceFile: string): readonly ThemeBlock[];
|
|
37
|
+
/**
|
|
38
|
+
* Compile a parsed {@link ThemeBlock} plus a resolved `ThemeDef` into
|
|
39
|
+
* `html[data-theme]` selector blocks and transition declarations.
|
|
40
|
+
* Delegates to the canonical `ThemeCSSCompiler` to avoid duplicating
|
|
41
|
+
* theme-to-CSS logic.
|
|
42
|
+
*/
|
|
43
|
+
export declare function compileThemeBlock(block: ThemeBlock, theme: Theme.Shape): string;
|
|
44
|
+
//# sourceMappingURL=theme-transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-transform.d.ts","sourceRoot":"","sources":["../src/theme-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAQxC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,iCAAiC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAuCvF;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAmB/E"}
|