chaincss 1.13.3 → 2.0.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/CHANGELOG.md +81 -0
- package/LICENSE +2 -3
- package/README.md +238 -105
- package/dist/cli/commands/build.d.ts +3 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/compile.d.ts +3 -0
- package/dist/cli/commands/compile.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +5 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/timeline.d.ts +2 -0
- package/dist/cli/commands/timeline.d.ts.map +1 -0
- package/dist/cli/commands/watch.d.ts +6 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +5960 -0
- package/dist/cli/types.d.ts +51 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/utils/config-loader.d.ts +8 -0
- package/dist/cli/utils/config-loader.d.ts.map +1 -0
- package/dist/cli/utils/file-utils.d.ts +9 -0
- package/dist/cli/utils/file-utils.d.ts.map +1 -0
- package/dist/cli/utils/logger.d.ts +17 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/compiler/atomic-optimizer.d.ts +76 -0
- package/dist/compiler/atomic-optimizer.d.ts.map +1 -0
- package/dist/compiler/btt.d.ts +138 -0
- package/dist/compiler/btt.d.ts.map +1 -0
- package/dist/compiler/cache-manager.d.ts +20 -0
- package/dist/compiler/cache-manager.d.ts.map +1 -0
- package/dist/compiler/commonProps.d.ts +2 -0
- package/dist/compiler/commonProps.d.ts.map +1 -0
- package/dist/compiler/index.d.ts +12 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +5177 -0
- package/dist/compiler/prefixer.d.ts +42 -0
- package/dist/compiler/prefixer.d.ts.map +1 -0
- package/dist/compiler/theme-contract.d.ts +61 -0
- package/dist/compiler/theme-contract.d.ts.map +1 -0
- package/dist/compiler/tokens.d.ts +52 -0
- package/dist/compiler/tokens.d.ts.map +1 -0
- package/dist/compiler/types.d.ts +57 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/core/compiler.d.ts +32 -0
- package/dist/core/compiler.d.ts.map +1 -0
- package/dist/core/constants.d.ts +129 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/types.d.ts +88 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/utils.d.ts +37 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5667 -0
- package/dist/plugins/vite.d.ts +11 -0
- package/dist/plugins/vite.d.ts.map +1 -0
- package/dist/plugins/vite.js +25839 -0
- package/dist/plugins/webpack.d.ts +45 -0
- package/dist/plugins/webpack.d.ts.map +1 -0
- package/dist/plugins/webpack.js +107 -0
- package/dist/runtime/hmr.d.ts +3 -0
- package/dist/runtime/hmr.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +15 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +552 -0
- package/dist/runtime/injector.d.ts +85 -0
- package/dist/runtime/injector.d.ts.map +1 -0
- package/dist/runtime/react.d.ts +54 -0
- package/dist/runtime/react.d.ts.map +1 -0
- package/dist/runtime/react.js +270 -0
- package/dist/runtime/types.d.ts +45 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/utils.d.ts +62 -0
- package/dist/runtime/utils.d.ts.map +1 -0
- package/dist/runtime/vue.d.ts +52 -0
- package/dist/runtime/vue.d.ts.map +1 -0
- package/dist/runtime/vue.js +232 -0
- package/package.json +90 -119
- package/browser/commonProps.js +0 -14
- package/browser/index.js +0 -3
- package/browser/react-hooks.js +0 -162
- package/browser/rtt.js +0 -400
- package/browser/vue-composables.js +0 -200
- package/node/atomic-optimizer.js +0 -526
- package/node/btt.js +0 -1009
- package/node/cache-manager.js +0 -56
- package/node/chaincss.js +0 -642
- package/node/index.js +0 -2
- package/node/loaders/chaincss-loader.js +0 -62
- package/node/plugins/next-plugin.js +0 -120
- package/node/plugins/vite-plugin.js +0 -383
- package/node/plugins/webpack-plugin.js +0 -41
- package/node/prefixer.js +0 -237
- package/node/strVal.js +0 -92
- package/node/theme-validator.js +0 -32
- package/shared/theme-contract.js +0 -98
- package/shared/tokens.cjs +0 -256
- package/shared/tokens.mjs +0 -320
- package/types.d.ts +0 -325
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface PrefixerConfig {
|
|
2
|
+
browsers?: string[];
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
mode?: 'auto' | 'full' | 'lightweight';
|
|
5
|
+
sourceMap?: boolean;
|
|
6
|
+
sourceMapInline?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface PrefixerResult {
|
|
9
|
+
css: string;
|
|
10
|
+
map: string | null;
|
|
11
|
+
}
|
|
12
|
+
export interface ProcessOptionsWithPaths {
|
|
13
|
+
from?: string;
|
|
14
|
+
to?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface CaniuseFeature {
|
|
17
|
+
stats: Record<string, Record<string, string>>;
|
|
18
|
+
}
|
|
19
|
+
export declare class ChainCSSPrefixer {
|
|
20
|
+
config: Required<PrefixerConfig>;
|
|
21
|
+
hasBuiltInDeps: boolean;
|
|
22
|
+
hasAutoprefixer: boolean;
|
|
23
|
+
prefixerMode: 'auto' | 'full' | 'lightweight';
|
|
24
|
+
caniuseData: Record<string, CaniuseFeature> | null;
|
|
25
|
+
commonProperties: string[];
|
|
26
|
+
specialValues: Record<string, string[]>;
|
|
27
|
+
browserPrefixMap: Record<string, string>;
|
|
28
|
+
targetBrowsers: string[] | null;
|
|
29
|
+
constructor(config?: PrefixerConfig);
|
|
30
|
+
determineMode(): Promise<'auto' | 'full' | 'lightweight'>;
|
|
31
|
+
process(cssString: string, options?: ProcessOptionsWithPaths): Promise<PrefixerResult>;
|
|
32
|
+
private processWithAutoprefixer;
|
|
33
|
+
private processWithBuiltIn;
|
|
34
|
+
private createBuiltInPlugin;
|
|
35
|
+
private processBuiltInDeclaration;
|
|
36
|
+
private addPrefixesFromCaniuse;
|
|
37
|
+
private addSpecialValuePrefixes;
|
|
38
|
+
private findFeature;
|
|
39
|
+
private getCommonProperties;
|
|
40
|
+
}
|
|
41
|
+
export { ChainCSSPrefixer as default };
|
|
42
|
+
//# sourceMappingURL=prefixer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefixer.d.ts","sourceRoot":"","sources":["../../src/compiler/prefixer.ts"],"names":[],"mappings":"AA2EA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/C;AAGD,qBAAa,gBAAgB;IAC3B,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IAC9C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC;IACnD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBAEpB,MAAM,GAAE,cAAmB;IA4BjC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IAoBzD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,cAAc,CAAC;YAyBlF,uBAAuB;YA8BvB,kBAAkB;IAkChC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,mBAAmB;CAmB5B;AAGD,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Contract System for ChainCSS
|
|
3
|
+
* Validates that themes match the expected shape
|
|
4
|
+
*/
|
|
5
|
+
export interface ThemeContract {
|
|
6
|
+
[key: string]: ThemeContract | string;
|
|
7
|
+
}
|
|
8
|
+
export interface ThemeTokens {
|
|
9
|
+
[key: string]: string | ThemeTokens;
|
|
10
|
+
}
|
|
11
|
+
export interface TokensStructure {
|
|
12
|
+
colors: Record<string, string | Record<string, string>>;
|
|
13
|
+
spacing: Record<string, string>;
|
|
14
|
+
typography: {
|
|
15
|
+
fontFamily: Record<string, string>;
|
|
16
|
+
fontSize: Record<string, string>;
|
|
17
|
+
fontWeight: Record<string, string>;
|
|
18
|
+
lineHeight: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
breakpoints: Record<string, string>;
|
|
21
|
+
zIndex: Record<string, string>;
|
|
22
|
+
shadows: Record<string, string>;
|
|
23
|
+
borderRadius: Record<string, string>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Theme class with getter method
|
|
27
|
+
*/
|
|
28
|
+
export declare class Theme {
|
|
29
|
+
private tokens;
|
|
30
|
+
constructor(tokens: ThemeTokens);
|
|
31
|
+
get(path: string): string | undefined;
|
|
32
|
+
toObject(): ThemeTokens;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a theme contract that defines the expected shape of themes
|
|
36
|
+
* @param contractShape - The contract object defining required token paths
|
|
37
|
+
* @returns Proxy contract with validation methods
|
|
38
|
+
*/
|
|
39
|
+
export declare function createThemeContract(contractShape: ThemeContract): ThemeContract & {
|
|
40
|
+
__isContract: boolean;
|
|
41
|
+
__validate: (theme: ThemeTokens) => boolean;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Validate that a theme matches the contract
|
|
45
|
+
* @param contract - The contract to validate against
|
|
46
|
+
* @param theme - The theme to validate
|
|
47
|
+
* @param path - Current path for error messages
|
|
48
|
+
* @returns true if valid, throws error otherwise
|
|
49
|
+
*/
|
|
50
|
+
export declare function validateTheme(contract: ThemeContract, theme?: ThemeTokens, path?: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Create an actual theme from a contract and values
|
|
53
|
+
* @param contract - The contract defining the shape
|
|
54
|
+
* @param themeValues - The actual theme values
|
|
55
|
+
* @returns Theme object with getter method
|
|
56
|
+
*/
|
|
57
|
+
export declare function createTheme(contract: ThemeContract | (ThemeContract & {
|
|
58
|
+
__isContract: boolean;
|
|
59
|
+
__validate: (theme: ThemeTokens) => boolean;
|
|
60
|
+
}), themeValues: ThemeTokens): Theme;
|
|
61
|
+
//# sourceMappingURL=theme-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-contract.d.ts","sourceRoot":"","sources":["../../src/compiler/theme-contract.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,CAAC;IACF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAI/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUrC,QAAQ,IAAI,WAAW;CAGxB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,GAAG;IACjF,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;CAC7C,CAeA;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,aAAa,EACvB,KAAK,GAAE,WAAgB,EACvB,IAAI,GAAE,MAAW,GAChB,OAAO,CA8CT;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,aAAa,GAAG,CAAC,aAAa,GAAG;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAA;CAAE,CAAC,EAClH,WAAW,EAAE,WAAW,GACvB,KAAK,CAmCP"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export interface TokenColors {
|
|
2
|
+
[key: string]: string | Record<string, string>;
|
|
3
|
+
}
|
|
4
|
+
export interface TokenSpacing {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TokenTypography {
|
|
8
|
+
fontFamily: Record<string, string>;
|
|
9
|
+
fontSize: Record<string, string>;
|
|
10
|
+
fontWeight: Record<string, string>;
|
|
11
|
+
lineHeight: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
export interface TokenBreakpoints {
|
|
14
|
+
[key: string]: string;
|
|
15
|
+
}
|
|
16
|
+
export interface TokenZIndex {
|
|
17
|
+
[key: string]: string;
|
|
18
|
+
}
|
|
19
|
+
export interface TokenShadows {
|
|
20
|
+
[key: string]: string;
|
|
21
|
+
}
|
|
22
|
+
export interface TokenBorderRadius {
|
|
23
|
+
[key: string]: string;
|
|
24
|
+
}
|
|
25
|
+
export interface TokensStructure {
|
|
26
|
+
colors: TokenColors;
|
|
27
|
+
spacing: TokenSpacing;
|
|
28
|
+
typography: TokenTypography;
|
|
29
|
+
breakpoints: TokenBreakpoints;
|
|
30
|
+
zIndex: TokenZIndex;
|
|
31
|
+
shadows: TokenShadows;
|
|
32
|
+
borderRadius: TokenBorderRadius;
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
}
|
|
35
|
+
export type FlattenedTokens = Record<string, string>;
|
|
36
|
+
export declare class DesignTokens {
|
|
37
|
+
tokens: TokensStructure;
|
|
38
|
+
flattened: FlattenedTokens;
|
|
39
|
+
constructor(tokens?: Partial<TokensStructure>);
|
|
40
|
+
deepFreeze<T extends object>(obj: T): T;
|
|
41
|
+
flattenTokens(obj: Record<string, any>, prefix?: string): FlattenedTokens;
|
|
42
|
+
get(path: string, defaultValue?: string): string;
|
|
43
|
+
toCSSVariables(prefix?: string): string;
|
|
44
|
+
createTheme(name: string, overrides: Record<string, string>): DesignTokens;
|
|
45
|
+
expandTokens(flattened: FlattenedTokens): TokensStructure;
|
|
46
|
+
}
|
|
47
|
+
export declare const defaultTokens: TokensStructure;
|
|
48
|
+
export declare const tokens: DesignTokens;
|
|
49
|
+
export declare function createTokens(customTokens: Partial<TokensStructure>): DesignTokens;
|
|
50
|
+
export declare function responsive(values: Record<string, string> | string): string;
|
|
51
|
+
export { DesignTokens as default };
|
|
52
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/compiler/tokens.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,iBAAiB,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,qBAAa,YAAY;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,eAAe,CAAC;gBAEf,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAqBjD,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAWvC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAE,MAAW,GAAG,eAAe;IAgB7E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;IAKpD,cAAc,CAAC,MAAM,GAAE,MAAgB,GAAG,MAAM;IAahD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY;IAa1E,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,eAAe;CAmB1D;AAGD,eAAO,MAAM,aAAa,EAAE,eAyI3B,CAAC;AAGF,eAAO,MAAM,MAAM,cAAkC,CAAC;AAGtD,wBAAgB,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,YAAY,CAEjF;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAQ1E;AAGD,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal types for the ChainCSS compiler
|
|
3
|
+
* Not exported to users
|
|
4
|
+
*/
|
|
5
|
+
export interface AtomicClass {
|
|
6
|
+
className: string;
|
|
7
|
+
prop: string;
|
|
8
|
+
value: string;
|
|
9
|
+
usageCount: number;
|
|
10
|
+
}
|
|
11
|
+
export interface AtomicOptimizerStats {
|
|
12
|
+
totalStyles: number;
|
|
13
|
+
atomicStyles: number;
|
|
14
|
+
standardStyles: number;
|
|
15
|
+
uniqueProperties: number;
|
|
16
|
+
savings: string;
|
|
17
|
+
}
|
|
18
|
+
export interface AtomicOptimizerOptions {
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
threshold: number;
|
|
21
|
+
naming: 'hash' | 'readable';
|
|
22
|
+
cache: boolean;
|
|
23
|
+
cachePath: string;
|
|
24
|
+
minify: boolean;
|
|
25
|
+
mode: 'standard' | 'atomic' | 'hybrid';
|
|
26
|
+
outputStrategy: 'component-first' | 'utility-first';
|
|
27
|
+
alwaysAtomic: string[];
|
|
28
|
+
neverAtomic: string[];
|
|
29
|
+
preserveSelectors: boolean;
|
|
30
|
+
verbose: boolean;
|
|
31
|
+
frameworkOutput?: {
|
|
32
|
+
react: boolean;
|
|
33
|
+
vue: boolean;
|
|
34
|
+
vanilla: boolean;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export interface PrefixerOptions {
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
mode: 'auto' | 'full' | 'lightweight';
|
|
40
|
+
browsers: string[];
|
|
41
|
+
sourceMap: boolean;
|
|
42
|
+
sourceMapInline: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface CacheData {
|
|
45
|
+
version: string;
|
|
46
|
+
timestamp: number;
|
|
47
|
+
atomicClasses: [string, AtomicClass][];
|
|
48
|
+
componentClassMap: [string, any][];
|
|
49
|
+
stats: AtomicOptimizerStats;
|
|
50
|
+
config: {
|
|
51
|
+
threshold: number;
|
|
52
|
+
naming: string;
|
|
53
|
+
mode: string;
|
|
54
|
+
outputStrategy: string;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compiler/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,cAAc,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;IACvC,iBAAiB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ChainCSSConfig, CompileResult, StyleDefinition } from './types.js';
|
|
2
|
+
export declare class ChainCSSCompiler {
|
|
3
|
+
private config;
|
|
4
|
+
private atomicOptimizer;
|
|
5
|
+
private prefixer;
|
|
6
|
+
private styleCache;
|
|
7
|
+
private classMap;
|
|
8
|
+
constructor(config?: ChainCSSConfig);
|
|
9
|
+
private initOptimizer;
|
|
10
|
+
private initPrefixer;
|
|
11
|
+
private generateCSS;
|
|
12
|
+
compileStyle(styleId: string, styleDef: StyleDefinition): CompileResult;
|
|
13
|
+
compileRecipe(recipeId: string, recipeFn: any): CompileResult;
|
|
14
|
+
compileFile(filePath: string): Record<string, CompileResult>;
|
|
15
|
+
generateTypeScriptTypes(results: Record<string, CompileResult>, outputPath: string): void;
|
|
16
|
+
generateJavaScriptModule(results: Record<string, CompileResult>, outputPath: string): void;
|
|
17
|
+
generateCSSFile(results: Record<string, CompileResult>, outputPath: string): void;
|
|
18
|
+
compile(inputFile: string, outputDir: string): Promise<{
|
|
19
|
+
cssFile: string;
|
|
20
|
+
jsFile: string;
|
|
21
|
+
typesFile: string;
|
|
22
|
+
results: Record<string, CompileResult>;
|
|
23
|
+
}>;
|
|
24
|
+
compileComponents(components: string[]): Promise<void>;
|
|
25
|
+
private importModule;
|
|
26
|
+
private hash;
|
|
27
|
+
watch(inputFile: string, outputDir: string): Promise<void>;
|
|
28
|
+
getStats(): any;
|
|
29
|
+
clearCache(): void;
|
|
30
|
+
}
|
|
31
|
+
export declare function compileChainCSS(inputFile: string, outputDir: string, config?: ChainCSSConfig): Promise<ReturnType<ChainCSSCompiler['compile']>>;
|
|
32
|
+
//# sourceMappingURL=compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/core/compiler.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAgB9F,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,MAAM,GAAE,cAAmB;IAwBvC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,aAAa;IAgCvE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,aAAa;IAmC7D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAuC5D,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAgBzF,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAuB1F,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ3E,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACxC,CAAC;IAqBI,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA0F9C,YAAY;IAiB1B,OAAO,CAAC,IAAI;IASN,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhE,QAAQ,IAAI,GAAG;IAKf,UAAU,IAAI,IAAI;CAKnB;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAGlD"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChainCSS Constants
|
|
3
|
+
* Shared constants used across the codebase
|
|
4
|
+
*/
|
|
5
|
+
export declare const VERSION = "2.0.0";
|
|
6
|
+
export declare const NEVER_ATOMIC_PROPERTIES: string[];
|
|
7
|
+
export declare const ALWAYS_ATOMIC_PROPERTIES: string[];
|
|
8
|
+
export declare const DEFAULT_BROWSERS: string[];
|
|
9
|
+
export declare const SUPPORTED_EXTENSIONS: string[];
|
|
10
|
+
export declare const DEFAULT_CSS_FILENAME = "styles.css";
|
|
11
|
+
export declare const DEFAULT_CLASS_MAP_FILENAME = "class-map.json";
|
|
12
|
+
export declare const DEFAULT_TYPES_FILENAME = "classes.d.ts";
|
|
13
|
+
export declare const DEFAULT_CACHE_PATH = "./.chaincss-cache";
|
|
14
|
+
export declare const CACHE_VERSION = "2.0.0";
|
|
15
|
+
export declare const DEFAULT_ATOMIC_THRESHOLD = 3;
|
|
16
|
+
export declare const MIN_ATOMIC_THRESHOLD = 2;
|
|
17
|
+
export declare const MAX_ATOMIC_THRESHOLD = 10;
|
|
18
|
+
export declare const NAMING_SCHEMES: readonly ["hash", "readable"];
|
|
19
|
+
export type NamingScheme = typeof NAMING_SCHEMES[number];
|
|
20
|
+
export declare const ATOMIC_MODES: readonly ["standard", "atomic", "hybrid"];
|
|
21
|
+
export type AtomicMode = typeof ATOMIC_MODES[number];
|
|
22
|
+
export declare const OUTPUT_STRATEGIES: readonly ["component-first", "utility-first"];
|
|
23
|
+
export type OutputStrategy = typeof OUTPUT_STRATEGIES[number];
|
|
24
|
+
export declare const PREFIXER_MODES: readonly ["auto", "full", "lightweight"];
|
|
25
|
+
export type PrefixerMode = typeof PREFIXER_MODES[number];
|
|
26
|
+
export declare const EXIT_CODES: {
|
|
27
|
+
readonly SUCCESS: 0;
|
|
28
|
+
readonly ERROR: 1;
|
|
29
|
+
readonly INVALID_ARGS: 2;
|
|
30
|
+
readonly FILE_NOT_FOUND: 3;
|
|
31
|
+
readonly COMPILE_ERROR: 4;
|
|
32
|
+
};
|
|
33
|
+
export declare const LOG_LEVELS: {
|
|
34
|
+
readonly DEBUG: 0;
|
|
35
|
+
readonly INFO: 1;
|
|
36
|
+
readonly SUCCESS: 2;
|
|
37
|
+
readonly WARN: 3;
|
|
38
|
+
readonly ERROR: 4;
|
|
39
|
+
readonly SILENT: 5;
|
|
40
|
+
};
|
|
41
|
+
export declare const PATTERNS: {
|
|
42
|
+
CSS_PROPERTY: RegExp;
|
|
43
|
+
SELECTOR: RegExp;
|
|
44
|
+
MEDIA_QUERY: RegExp;
|
|
45
|
+
KEYFRAMES: RegExp;
|
|
46
|
+
TOKEN_REFERENCE: RegExp;
|
|
47
|
+
HOVER_STATE: RegExp;
|
|
48
|
+
PSEUDO_CLASS: RegExp;
|
|
49
|
+
};
|
|
50
|
+
export declare const ERROR_MESSAGES: {
|
|
51
|
+
FILE_NOT_FOUND: (file: string) => string;
|
|
52
|
+
INVALID_CONFIG: (error: string) => string;
|
|
53
|
+
COMPILE_FAILED: (file: string, error: string) => string;
|
|
54
|
+
INVALID_SELECTOR: (selector: string) => string;
|
|
55
|
+
INVALID_PROPERTY: (prop: string) => string;
|
|
56
|
+
NO_INPUT_FILES: string;
|
|
57
|
+
WATCH_FAILED: (error: string) => string;
|
|
58
|
+
};
|
|
59
|
+
export declare const SUCCESS_MESSAGES: {
|
|
60
|
+
COMPILE_SUCCESS: (count: number, time: number) => string;
|
|
61
|
+
INIT_SUCCESS: (configPath: string) => string;
|
|
62
|
+
WATCH_STARTED: string;
|
|
63
|
+
};
|
|
64
|
+
export declare const DEFAULT_BREAKPOINTS: {
|
|
65
|
+
sm: string;
|
|
66
|
+
md: string;
|
|
67
|
+
lg: string;
|
|
68
|
+
xl: string;
|
|
69
|
+
'2xl': string;
|
|
70
|
+
mobile: string;
|
|
71
|
+
tablet: string;
|
|
72
|
+
desktop: string;
|
|
73
|
+
};
|
|
74
|
+
export declare const DEFAULT_CONFIG: {
|
|
75
|
+
tokens: {
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
prefix: string;
|
|
78
|
+
};
|
|
79
|
+
atomic: {
|
|
80
|
+
enabled: boolean;
|
|
81
|
+
threshold: number;
|
|
82
|
+
naming: string;
|
|
83
|
+
cache: boolean;
|
|
84
|
+
cachePath: string;
|
|
85
|
+
minify: boolean;
|
|
86
|
+
mode: string;
|
|
87
|
+
outputStrategy: string;
|
|
88
|
+
alwaysAtomic: string[];
|
|
89
|
+
neverAtomic: string[];
|
|
90
|
+
verbose: boolean;
|
|
91
|
+
};
|
|
92
|
+
prefixer: {
|
|
93
|
+
enabled: boolean;
|
|
94
|
+
mode: PrefixerMode;
|
|
95
|
+
browsers: string[];
|
|
96
|
+
sourceMap: boolean;
|
|
97
|
+
sourceMapInline: boolean;
|
|
98
|
+
};
|
|
99
|
+
output: {
|
|
100
|
+
cssFile: string;
|
|
101
|
+
classMapFile: string;
|
|
102
|
+
typesFile: string;
|
|
103
|
+
minify: boolean;
|
|
104
|
+
generateGlobalCSS: boolean;
|
|
105
|
+
};
|
|
106
|
+
debug: boolean;
|
|
107
|
+
sourceComments: boolean;
|
|
108
|
+
timeline: boolean;
|
|
109
|
+
framework: "auto";
|
|
110
|
+
namespace: string;
|
|
111
|
+
verbose: boolean;
|
|
112
|
+
};
|
|
113
|
+
export declare const RUNTIME: {
|
|
114
|
+
STYLE_ID_PREFIX: string;
|
|
115
|
+
CLASS_NAME_PREFIX: string;
|
|
116
|
+
HASH_LENGTH: number;
|
|
117
|
+
MAX_CACHE_SIZE: number;
|
|
118
|
+
INJECTION_DELAY: number;
|
|
119
|
+
};
|
|
120
|
+
export declare const DEV: {
|
|
121
|
+
HOT_RELOAD_PORT: number;
|
|
122
|
+
DEBOUNCE_DELAY: number;
|
|
123
|
+
LOG_PREFIX: string;
|
|
124
|
+
};
|
|
125
|
+
export declare const PROD: {
|
|
126
|
+
COMPRESSION_LEVEL: number;
|
|
127
|
+
SOURCE_MAP_COMMENT: string;
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAGH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,eAAO,MAAM,uBAAuB,UAwBnC,CAAC;AAGF,eAAO,MAAM,wBAAwB,UAkCpC,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAM5B,CAAC;AAGF,eAAO,MAAM,oBAAoB,UAAsC,CAAC;AAGxE,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AAGrD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,aAAa,UAAU,CAAC;AAGrC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,cAAc,+BAAgC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAGzD,eAAO,MAAM,YAAY,2CAA4C,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAGrD,eAAO,MAAM,iBAAiB,+CAAgD,CAAC;AAC/E,MAAM,MAAM,cAAc,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAG9D,eAAO,MAAM,cAAc,0CAA2C,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAGzD,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAGX,eAAO,MAAM,QAAQ;;;;;;;;CAQpB,CAAC;AAGF,eAAO,MAAM,cAAc;2BACF,MAAM;4BACL,MAAM;2BACP,MAAM,SAAS,MAAM;iCACf,MAAM;6BACV,MAAM;;0BAET,MAAM;CAC7B,CAAC;AAGF,eAAO,MAAM,gBAAgB;6BACF,MAAM,QAAQ,MAAM;+BAClB,MAAM;;CAElC,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;CAS/B,CAAC;AAGF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;cAoBP,YAAY;;;;;;;;;;;;;;;;;;CAmB/B,CAAC;AAGF,eAAO,MAAM,OAAO;;;;;;CAMnB,CAAC;AAGF,eAAO,MAAM,GAAG;;;;CAIf,CAAC;AAGF,eAAO,MAAM,IAAI;;;CAGhB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ChainCSSCompiler, compileChainCSS } from './compiler.js';
|
|
2
|
+
export type { ChainCSSConfig, CompileResult, StyleDefinition } from './types.js';
|
|
3
|
+
export { hashString, kebabCase, generateClassName, formatCSS, deepMerge } from './utils.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core ChainCSS Types - Build-Time Only
|
|
3
|
+
* These types are for the compiler and never ship to browser
|
|
4
|
+
*/
|
|
5
|
+
export interface StyleDefinition {
|
|
6
|
+
selectors: string[];
|
|
7
|
+
hover?: Record<string, string | number>;
|
|
8
|
+
atRules?: AtRule[];
|
|
9
|
+
nestedRules?: NestedRule[];
|
|
10
|
+
themes?: ThemeBlock[];
|
|
11
|
+
[cssProperty: string]: any;
|
|
12
|
+
}
|
|
13
|
+
export interface AtRule {
|
|
14
|
+
type: 'media' | 'keyframes' | 'font-face' | 'supports' | 'container' | 'layer' | 'counter-style' | 'property';
|
|
15
|
+
query?: string;
|
|
16
|
+
condition?: string;
|
|
17
|
+
name?: string;
|
|
18
|
+
styles?: any;
|
|
19
|
+
steps?: Record<string, Record<string, string>>;
|
|
20
|
+
properties?: Record<string, string>;
|
|
21
|
+
descriptors?: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
export interface NestedRule {
|
|
24
|
+
selector: string;
|
|
25
|
+
styles: Record<string, string | number>;
|
|
26
|
+
}
|
|
27
|
+
export interface ThemeBlock {
|
|
28
|
+
name: string;
|
|
29
|
+
styles: StyleDefinition;
|
|
30
|
+
tokens: any;
|
|
31
|
+
fallback: any;
|
|
32
|
+
}
|
|
33
|
+
export interface AtomicClass {
|
|
34
|
+
className: string;
|
|
35
|
+
prop: string;
|
|
36
|
+
value: string;
|
|
37
|
+
usageCount: number;
|
|
38
|
+
}
|
|
39
|
+
export interface CompileResult {
|
|
40
|
+
css: string;
|
|
41
|
+
classMap: Record<string, string>;
|
|
42
|
+
atomicClasses: AtomicClass[];
|
|
43
|
+
stats: {
|
|
44
|
+
totalStyles: number;
|
|
45
|
+
atomicStyles: number;
|
|
46
|
+
uniqueProperties: number;
|
|
47
|
+
savings: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface ChainCSSConfig {
|
|
51
|
+
tokens?: {
|
|
52
|
+
enabled?: boolean;
|
|
53
|
+
prefix?: string;
|
|
54
|
+
};
|
|
55
|
+
atomic?: {
|
|
56
|
+
enabled?: boolean;
|
|
57
|
+
threshold?: number;
|
|
58
|
+
naming?: 'hash' | 'readable';
|
|
59
|
+
cache?: boolean;
|
|
60
|
+
cachePath?: string;
|
|
61
|
+
minify?: boolean;
|
|
62
|
+
mode?: 'standard' | 'atomic' | 'hybrid';
|
|
63
|
+
outputStrategy?: 'component-first' | 'utility-first';
|
|
64
|
+
alwaysAtomic?: string[];
|
|
65
|
+
neverAtomic?: string[];
|
|
66
|
+
verbose?: boolean;
|
|
67
|
+
};
|
|
68
|
+
prefixer?: {
|
|
69
|
+
enabled?: boolean;
|
|
70
|
+
mode?: 'auto' | 'full' | 'lightweight';
|
|
71
|
+
browsers?: string[];
|
|
72
|
+
sourceMap?: boolean;
|
|
73
|
+
};
|
|
74
|
+
output?: {
|
|
75
|
+
cssFile?: string;
|
|
76
|
+
classMapFile?: string;
|
|
77
|
+
typesFile?: string;
|
|
78
|
+
minify?: boolean;
|
|
79
|
+
generateGlobalCSS?: boolean;
|
|
80
|
+
};
|
|
81
|
+
timeline?: boolean;
|
|
82
|
+
sourceComments?: boolean;
|
|
83
|
+
debug?: boolean;
|
|
84
|
+
breakpoints?: Record<string, string>;
|
|
85
|
+
namespace?: string;
|
|
86
|
+
verbose?: boolean;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a hash for a string
|
|
3
|
+
*/
|
|
4
|
+
export declare function hashString(str: string, length?: number): string;
|
|
5
|
+
/**
|
|
6
|
+
* Convert camelCase to kebab-case
|
|
7
|
+
*/
|
|
8
|
+
export declare function kebabCase(str: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a unique class name
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateClassName(styleId: string, naming?: 'hash' | 'readable'): string;
|
|
13
|
+
/**
|
|
14
|
+
* Deep merge objects
|
|
15
|
+
*/
|
|
16
|
+
export declare function deepMerge<T extends Record<string, any>>(target: T, source: Partial<T>): T;
|
|
17
|
+
/**
|
|
18
|
+
* Ensure directory exists
|
|
19
|
+
*/
|
|
20
|
+
export declare function ensureDir(dir: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Write file with parent directory creation
|
|
23
|
+
*/
|
|
24
|
+
export declare function writeFile(filePath: string, content: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Format CSS (minify or beautify)
|
|
27
|
+
*/
|
|
28
|
+
export declare function formatCSS(css: string, minify?: boolean): string;
|
|
29
|
+
/**
|
|
30
|
+
* Get file extension
|
|
31
|
+
*/
|
|
32
|
+
export declare function getFileExtension(filePath: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Get base name without extension
|
|
35
|
+
*/
|
|
36
|
+
export declare function getBaseName(filePath: string): string;
|
|
37
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,UAAmB,GAAG,MAAM,CAM/F;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAWzF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAO3C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOjE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,MAAM,CAoBtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { ChainCSSCompiler, compileChainCSS } from './core/compiler.js';
|
|
2
|
+
export { $, recipe, createTokens, configureAtomic, tokens } from './compiler/btt.js';
|
|
3
|
+
export { AtomicOptimizer } from './compiler/atomic-optimizer.js';
|
|
4
|
+
export { ChainCSSPrefixer } from './compiler/prefixer.js';
|
|
5
|
+
export { DesignTokens, createTokens as createTokensUtil, responsive } from './compiler/tokens.js';
|
|
6
|
+
export { createThemeContract, validateTheme, createTheme, Theme } from './compiler/theme-contract.js';
|
|
7
|
+
export { CacheManager } from './compiler/cache-manager.js';
|
|
8
|
+
export type { StyleDefinition, AtRule, NestedRule, ThemeBlock } from './compiler/btt.js';
|
|
9
|
+
export type { AtomicClass, AtomicOptimizerOptions, AtomicOptimizerStats } from './compiler/atomic-optimizer.js';
|
|
10
|
+
export type { PrefixerConfig } from './compiler/prefixer.js';
|
|
11
|
+
export type { ThemeContract, ThemeTokens, TokensStructure } from './compiler/theme-contract.js';
|
|
12
|
+
export type { ChainCSSConfig, CompileResult } from './core/types.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,IAAI,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACtG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,YAAY,EACV,eAAe,EACf,MAAM,EACN,UAAU,EACV,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,cAAc,EACf,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,aAAa,EACb,WAAW,EACX,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,cAAc,EACd,aAAa,EACd,MAAM,iBAAiB,CAAC"}
|