@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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -0
  3. package/dist/css-quantize.d.ts +53 -0
  4. package/dist/css-quantize.d.ts.map +1 -0
  5. package/dist/css-quantize.js +247 -0
  6. package/dist/css-quantize.js.map +1 -0
  7. package/dist/environments.d.ts +36 -0
  8. package/dist/environments.d.ts.map +1 -0
  9. package/dist/environments.js +67 -0
  10. package/dist/environments.js.map +1 -0
  11. package/dist/hmr.d.ts +37 -0
  12. package/dist/hmr.d.ts.map +1 -0
  13. package/dist/hmr.js +84 -0
  14. package/dist/hmr.js.map +1 -0
  15. package/dist/html-transform.d.ts +19 -0
  16. package/dist/html-transform.d.ts.map +1 -0
  17. package/dist/html-transform.js +54 -0
  18. package/dist/html-transform.js.map +1 -0
  19. package/dist/index.d.ts +51 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +43 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/normalize-css-eol.d.ts +7 -0
  24. package/dist/normalize-css-eol.d.ts.map +1 -0
  25. package/dist/normalize-css-eol.js +9 -0
  26. package/dist/normalize-css-eol.js.map +1 -0
  27. package/dist/plugin.d.ts +48 -0
  28. package/dist/plugin.d.ts.map +1 -0
  29. package/dist/plugin.js +404 -0
  30. package/dist/plugin.js.map +1 -0
  31. package/dist/primitive-resolve.d.ts +56 -0
  32. package/dist/primitive-resolve.d.ts.map +1 -0
  33. package/dist/primitive-resolve.js +71 -0
  34. package/dist/primitive-resolve.js.map +1 -0
  35. package/dist/resolve-fs.d.ts +13 -0
  36. package/dist/resolve-fs.d.ts.map +1 -0
  37. package/dist/resolve-fs.js +80 -0
  38. package/dist/resolve-fs.js.map +1 -0
  39. package/dist/resolve-utils.d.ts +20 -0
  40. package/dist/resolve-utils.d.ts.map +1 -0
  41. package/dist/resolve-utils.js +45 -0
  42. package/dist/resolve-utils.js.map +1 -0
  43. package/dist/style-transform.d.ts +49 -0
  44. package/dist/style-transform.d.ts.map +1 -0
  45. package/dist/style-transform.js +122 -0
  46. package/dist/style-transform.js.map +1 -0
  47. package/dist/theme-transform.d.ts +44 -0
  48. package/dist/theme-transform.d.ts.map +1 -0
  49. package/dist/theme-transform.js +85 -0
  50. package/dist/theme-transform.js.map +1 -0
  51. package/dist/token-transform.d.ts +42 -0
  52. package/dist/token-transform.d.ts.map +1 -0
  53. package/dist/token-transform.js +84 -0
  54. package/dist/token-transform.js.map +1 -0
  55. package/dist/virtual-modules.d.ts +55 -0
  56. package/dist/virtual-modules.d.ts.map +1 -0
  57. package/dist/virtual-modules.js +141 -0
  58. package/dist/virtual-modules.js.map +1 -0
  59. package/dist/wasm-resolve.d.ts +25 -0
  60. package/dist/wasm-resolve.d.ts.map +1 -0
  61. package/dist/wasm-resolve.js +36 -0
  62. package/dist/wasm-resolve.js.map +1 -0
  63. package/package.json +63 -0
  64. package/src/css-quantize.ts +294 -0
  65. package/src/environments.ts +98 -0
  66. package/src/hmr.ts +121 -0
  67. package/src/html-transform.ts +61 -0
  68. package/src/index.ts +71 -0
  69. package/src/normalize-css-eol.ts +8 -0
  70. package/src/plugin.ts +492 -0
  71. package/src/primitive-resolve.ts +106 -0
  72. package/src/resolve-fs.ts +82 -0
  73. package/src/resolve-utils.ts +54 -0
  74. package/src/style-transform.ts +157 -0
  75. package/src/theme-transform.ts +119 -0
  76. package/src/token-transform.ts +117 -0
  77. package/src/virtual-modules.ts +160 -0
  78. 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":"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"}
@@ -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"}