@clickhouse/click-ui 0.0.234-sc-deprecation.7 → 0.0.234-sc-deprecation.9
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/README.md +26 -152
- package/bin/commands/init.js +20 -38
- package/dist/click-ui.bundled.es.js +5566 -5520
- package/dist/click-ui.bundled.umd.js +44 -24
- package/dist/click-ui.es.js +5566 -5520
- package/dist/click-ui.umd.js +44 -24
- package/dist/components/Link/linkStyles.d.ts +3 -3
- package/dist/config/core.d.ts +53 -0
- package/dist/config/core.d.ts.map +1 -0
- package/dist/config/core.js +188 -0
- package/dist/config/core.js.map +1 -0
- package/dist/config/index.d.ts +51 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +53 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/next.d.ts +8 -0
- package/dist/config/next.d.ts.map +1 -0
- package/dist/config/next.js +72 -0
- package/dist/config/next.js.map +1 -0
- package/dist/config/rollup.d.ts +8 -0
- package/dist/config/rollup.d.ts.map +1 -0
- package/dist/config/rollup.js +85 -0
- package/dist/config/rollup.js.map +1 -0
- package/dist/config/types.d.ts +37 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +5 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/vite.d.ts +8 -0
- package/dist/config/vite.d.ts.map +1 -0
- package/dist/config/vite.js +76 -0
- package/dist/config/vite.js.map +1 -0
- package/dist/config/webpack.d.ts +8 -0
- package/dist/config/webpack.d.ts.map +1 -0
- package/dist/config/webpack.js +87 -0
- package/dist/config/webpack.js.map +1 -0
- package/dist/theme/ClickUIProvider/ServerClickUIProvider.d.ts +3 -4
- package/dist/theme/index.d.ts +2 -2
- package/dist/theme/types.d.ts +3 -5
- package/dist/theme/utils/css-generator.d.ts +12 -0
- package/dist/theme/utils.d.ts +7 -0
- package/package.json +30 -3
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* <Link className={linkClasses({ size: 'md', weight: 'semibold' })}>My Link</Link>
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
export type TextSize =
|
|
27
|
-
export type TextWeight =
|
|
26
|
+
export type TextSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
27
|
+
export type TextWeight = "normal" | "medium" | "semibold" | "bold";
|
|
28
28
|
/**
|
|
29
29
|
* Props for styled-components wrapper
|
|
30
30
|
* @deprecated Use LinkStyleProps with linkClasses instead
|
|
@@ -92,7 +92,7 @@ export declare const linkStyles: (props?: StyledLinkProps) => string;
|
|
|
92
92
|
* </Link>
|
|
93
93
|
* ```
|
|
94
94
|
*/
|
|
95
|
-
export declare
|
|
95
|
+
export declare const linkClasses: ({ size, weight, className }?: LinkStyleProps) => string;
|
|
96
96
|
/**
|
|
97
97
|
* CSS class name constants for granular control
|
|
98
98
|
*
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared core logic for Click UI bundler plugins
|
|
3
|
+
* This core is used by all bundler-specific wrappers (Vite, Webpack, Rollup, Next.js)
|
|
4
|
+
*/
|
|
5
|
+
import type { PluginOptions, LoadedConfig, BundlerAlias, BundlerDefines } from './types';
|
|
6
|
+
export declare class ClickUIConfigCore {
|
|
7
|
+
private options;
|
|
8
|
+
private cachedConfig;
|
|
9
|
+
constructor(options?: PluginOptions);
|
|
10
|
+
/**
|
|
11
|
+
* Auto-discover config file in project root
|
|
12
|
+
* Tries multiple file extensions in order of preference
|
|
13
|
+
*/
|
|
14
|
+
findConfigFile(root: string): string | null;
|
|
15
|
+
/**
|
|
16
|
+
* Load and parse config file
|
|
17
|
+
*/
|
|
18
|
+
loadConfig(configFile: string): Promise<any>;
|
|
19
|
+
/**
|
|
20
|
+
* Generate CSS variables from theme config
|
|
21
|
+
*/
|
|
22
|
+
generateCSS(config: any): string;
|
|
23
|
+
/**
|
|
24
|
+
* Recursively generate CSS variables from nested config object
|
|
25
|
+
*/
|
|
26
|
+
private generateVariables;
|
|
27
|
+
/**
|
|
28
|
+
* Create bundler alias configuration
|
|
29
|
+
*/
|
|
30
|
+
createAlias(configFile: string): BundlerAlias;
|
|
31
|
+
/**
|
|
32
|
+
* Create define/globals for build-time injection
|
|
33
|
+
*/
|
|
34
|
+
createDefines(config: any): BundlerDefines;
|
|
35
|
+
/**
|
|
36
|
+
* Main initialization method used by all bundlers
|
|
37
|
+
* Returns everything needed for bundler-specific implementation
|
|
38
|
+
*/
|
|
39
|
+
initialize(root: string): Promise<LoadedConfig>;
|
|
40
|
+
/**
|
|
41
|
+
* Clear cache (useful for watch mode)
|
|
42
|
+
*/
|
|
43
|
+
clearCache(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get verbose flag
|
|
46
|
+
*/
|
|
47
|
+
isVerbose(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Get CSS output filename
|
|
50
|
+
*/
|
|
51
|
+
getCSSOutputFilename(): string;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../config/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAA6B;gBAErC,OAAO,GAAE,aAAkB;IAIvC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA0C3C;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBlD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAqChC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAM7C;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc;IAO1C;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCrD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,oBAAoB,IAAI,MAAM;CAG/B"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared core logic for Click UI bundler plugins
|
|
3
|
+
* This core is used by all bundler-specific wrappers (Vite, Webpack, Rollup, Next.js)
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
export class ClickUIConfigCore {
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
this.cachedConfig = null;
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Auto-discover config file in project root
|
|
14
|
+
* Tries multiple file extensions in order of preference
|
|
15
|
+
*/
|
|
16
|
+
findConfigFile(root) {
|
|
17
|
+
// If user specified a custom path, use it
|
|
18
|
+
if (this.options.configPath) {
|
|
19
|
+
const fullPath = path.resolve(root, this.options.configPath);
|
|
20
|
+
if (fs.existsSync(fullPath)) {
|
|
21
|
+
return fullPath;
|
|
22
|
+
}
|
|
23
|
+
if (this.options.verbose) {
|
|
24
|
+
console.warn(`⚠️ Config file not found at: ${this.options.configPath}`);
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
// Skip discovery if requested
|
|
29
|
+
if (this.options.skipConfigDiscovery) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
// Auto-discover config file
|
|
33
|
+
const possibleFiles = [
|
|
34
|
+
'click-ui.config.ts',
|
|
35
|
+
'click-ui.config.mts',
|
|
36
|
+
'click-ui.config.cts',
|
|
37
|
+
'click-ui.config.js',
|
|
38
|
+
'click-ui.config.mjs',
|
|
39
|
+
'click-ui.config.cjs',
|
|
40
|
+
];
|
|
41
|
+
for (const file of possibleFiles) {
|
|
42
|
+
const fullPath = path.resolve(root, file);
|
|
43
|
+
if (fs.existsSync(fullPath)) {
|
|
44
|
+
if (this.options.verbose) {
|
|
45
|
+
console.log(`✅ Found config file: ${file}`);
|
|
46
|
+
}
|
|
47
|
+
return fullPath;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Load and parse config file
|
|
54
|
+
*/
|
|
55
|
+
async loadConfig(configFile) {
|
|
56
|
+
try {
|
|
57
|
+
// Use cache-busting for hot reload support
|
|
58
|
+
const imported = await import(configFile + '?t=' + Date.now());
|
|
59
|
+
const config = imported.default || imported;
|
|
60
|
+
if (this.options.verbose) {
|
|
61
|
+
console.log('📦 Loaded config:', JSON.stringify(config, null, 2));
|
|
62
|
+
}
|
|
63
|
+
return config;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.warn(`⚠️ Failed to load config from ${configFile}:`, error);
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Generate CSS variables from theme config
|
|
72
|
+
*/
|
|
73
|
+
generateCSS(config) {
|
|
74
|
+
if (!config || Object.keys(config).length === 0) {
|
|
75
|
+
return '';
|
|
76
|
+
}
|
|
77
|
+
const prefix = config.cssPrefix || '--click';
|
|
78
|
+
let css = '';
|
|
79
|
+
// Generate light theme CSS (theme config is the light mode theme)
|
|
80
|
+
if (config.theme) {
|
|
81
|
+
const lightVars = this.generateVariables(config.theme, prefix);
|
|
82
|
+
if (lightVars) {
|
|
83
|
+
css += `/* Light Theme */\n`;
|
|
84
|
+
css += `@media (prefers-color-scheme: light) {\n :root {\n${lightVars} }\n}\n\n`;
|
|
85
|
+
css += `:root[data-theme="light"] {\n${lightVars}}\n\n`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Generate dark theme CSS (theme + dark overrides)
|
|
89
|
+
// If dark is not defined, theme values are used for dark mode too
|
|
90
|
+
if (config.theme || config.dark) {
|
|
91
|
+
const darkVars = this.generateVariables({ ...config.theme, ...config.dark }, prefix);
|
|
92
|
+
if (darkVars) {
|
|
93
|
+
css += `/* Dark Theme */\n`;
|
|
94
|
+
css += `@media (prefers-color-scheme: dark) {\n :root {\n${darkVars} }\n}\n\n`;
|
|
95
|
+
css += `:root[data-theme="dark"] {\n${darkVars}}\n`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return css;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Recursively generate CSS variables from nested config object
|
|
102
|
+
*/
|
|
103
|
+
generateVariables(obj, prefix, path = []) {
|
|
104
|
+
let vars = '';
|
|
105
|
+
if (!obj || typeof obj !== 'object') {
|
|
106
|
+
return vars;
|
|
107
|
+
}
|
|
108
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
109
|
+
if (value === null || value === undefined) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
113
|
+
const varName = `${prefix}-${[...path, key].join('-')}`;
|
|
114
|
+
vars += ` ${varName}: ${value};\n`;
|
|
115
|
+
}
|
|
116
|
+
else if (typeof value === 'object' && !Array.isArray(value)) {
|
|
117
|
+
vars += this.generateVariables(value, prefix, [...path, key]);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return vars;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Create bundler alias configuration
|
|
124
|
+
*/
|
|
125
|
+
createAlias(configFile) {
|
|
126
|
+
return {
|
|
127
|
+
'click-ui-config': configFile,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create define/globals for build-time injection
|
|
132
|
+
*/
|
|
133
|
+
createDefines(config) {
|
|
134
|
+
return {
|
|
135
|
+
'__CLICK_UI_CONFIG__': JSON.stringify(config || {}),
|
|
136
|
+
'__CLICK_UI_PREFIX__': JSON.stringify(config?.cssPrefix || '--click'),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Main initialization method used by all bundlers
|
|
141
|
+
* Returns everything needed for bundler-specific implementation
|
|
142
|
+
*/
|
|
143
|
+
async initialize(root) {
|
|
144
|
+
// Return cached config if available
|
|
145
|
+
if (this.cachedConfig) {
|
|
146
|
+
return this.cachedConfig;
|
|
147
|
+
}
|
|
148
|
+
const configFile = this.findConfigFile(root);
|
|
149
|
+
if (!configFile) {
|
|
150
|
+
if (!this.options.skipConfigDiscovery) {
|
|
151
|
+
console.log('ℹ️ No click-ui config found, using defaults');
|
|
152
|
+
}
|
|
153
|
+
this.cachedConfig = {
|
|
154
|
+
configFile: null,
|
|
155
|
+
config: {},
|
|
156
|
+
cssVariables: '',
|
|
157
|
+
};
|
|
158
|
+
return this.cachedConfig;
|
|
159
|
+
}
|
|
160
|
+
const config = await this.loadConfig(configFile);
|
|
161
|
+
const cssVariables = this.generateCSS(config);
|
|
162
|
+
this.cachedConfig = {
|
|
163
|
+
configFile,
|
|
164
|
+
config,
|
|
165
|
+
cssVariables,
|
|
166
|
+
};
|
|
167
|
+
return this.cachedConfig;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Clear cache (useful for watch mode)
|
|
171
|
+
*/
|
|
172
|
+
clearCache() {
|
|
173
|
+
this.cachedConfig = null;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Get verbose flag
|
|
177
|
+
*/
|
|
178
|
+
isVerbose() {
|
|
179
|
+
return this.options.verbose || false;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get CSS output filename
|
|
183
|
+
*/
|
|
184
|
+
getCSSOutputFilename() {
|
|
185
|
+
return this.options.cssOutput || 'theme-vars.css';
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../config/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Click UI Bundler Plugins
|
|
3
|
+
*
|
|
4
|
+
* Universal configuration plugins for Vite, Webpack, Rollup, and Next.js
|
|
5
|
+
*
|
|
6
|
+
* @example Vite
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { clickUIConfig } from '@clickhouse/click-ui/config';
|
|
9
|
+
* // or
|
|
10
|
+
* import { viteClickUIConfig } from '@clickhouse/click-ui/config';
|
|
11
|
+
*
|
|
12
|
+
* export default defineConfig({
|
|
13
|
+
* plugins: [clickUIConfig()],
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @example Webpack
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { webpackClickUIConfig } from '@clickhouse/click-ui/config';
|
|
20
|
+
*
|
|
21
|
+
* module.exports = {
|
|
22
|
+
* plugins: [webpackClickUIConfig()],
|
|
23
|
+
* };
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example Rollup
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { rollupClickUIConfig } from '@clickhouse/click-ui/config';
|
|
29
|
+
*
|
|
30
|
+
* export default {
|
|
31
|
+
* plugins: [rollupClickUIConfig()],
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example Next.js
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { nextClickUIConfig } from '@clickhouse/click-ui/config';
|
|
38
|
+
*
|
|
39
|
+
* export default nextClickUIConfig()({
|
|
40
|
+
* // your next config
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export { clickUIConfig as viteClickUIConfig } from './vite';
|
|
45
|
+
export { clickUIConfig as webpackClickUIConfig } from './webpack';
|
|
46
|
+
export { clickUIConfig as rollupClickUIConfig } from './rollup';
|
|
47
|
+
export { clickUIConfig as nextClickUIConfig } from './next';
|
|
48
|
+
export { clickUIConfig } from './vite';
|
|
49
|
+
export type { PluginOptions, LoadedConfig, BundlerAlias, BundlerDefines } from './types';
|
|
50
|
+
export { ClickUIConfigCore } from './core';
|
|
51
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,aAAa,IAAI,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Click UI Bundler Plugins
|
|
3
|
+
*
|
|
4
|
+
* Universal configuration plugins for Vite, Webpack, Rollup, and Next.js
|
|
5
|
+
*
|
|
6
|
+
* @example Vite
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { clickUIConfig } from '@clickhouse/click-ui/config';
|
|
9
|
+
* // or
|
|
10
|
+
* import { viteClickUIConfig } from '@clickhouse/click-ui/config';
|
|
11
|
+
*
|
|
12
|
+
* export default defineConfig({
|
|
13
|
+
* plugins: [clickUIConfig()],
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @example Webpack
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { webpackClickUIConfig } from '@clickhouse/click-ui/config';
|
|
20
|
+
*
|
|
21
|
+
* module.exports = {
|
|
22
|
+
* plugins: [webpackClickUIConfig()],
|
|
23
|
+
* };
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example Rollup
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { rollupClickUIConfig } from '@clickhouse/click-ui/config';
|
|
29
|
+
*
|
|
30
|
+
* export default {
|
|
31
|
+
* plugins: [rollupClickUIConfig()],
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example Next.js
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { nextClickUIConfig } from '@clickhouse/click-ui/config';
|
|
38
|
+
*
|
|
39
|
+
* export default nextClickUIConfig()({
|
|
40
|
+
* // your next config
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
// Export bundler-specific plugins
|
|
45
|
+
export { clickUIConfig as viteClickUIConfig } from './vite';
|
|
46
|
+
export { clickUIConfig as webpackClickUIConfig } from './webpack';
|
|
47
|
+
export { clickUIConfig as rollupClickUIConfig } from './rollup';
|
|
48
|
+
export { clickUIConfig as nextClickUIConfig } from './next';
|
|
49
|
+
// Export default (Vite) for convenience
|
|
50
|
+
export { clickUIConfig } from './vite';
|
|
51
|
+
// Export core for advanced usage
|
|
52
|
+
export { ClickUIConfigCore } from './core';
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,kCAAkC;AAClC,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,aAAa,IAAI,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE5D,wCAAwC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAKvC,iCAAiC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next.js plugin for Click UI configuration
|
|
3
|
+
* Uses shared core for config discovery and CSS generation
|
|
4
|
+
*/
|
|
5
|
+
import type { NextConfig } from 'next';
|
|
6
|
+
import type { PluginOptions } from './types';
|
|
7
|
+
export declare function clickUIConfig(options?: PluginOptions): (nextConfig?: NextConfig) => NextConfig;
|
|
8
|
+
//# sourceMappingURL=next.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../config/next.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAkB,iBACnC,UAAU,KAAQ,UAAU,CA8EjD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next.js plugin for Click UI configuration
|
|
3
|
+
* Uses shared core for config discovery and CSS generation
|
|
4
|
+
*/
|
|
5
|
+
import { ClickUIConfigCore } from './core';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
export function clickUIConfig(options = {}) {
|
|
9
|
+
return (nextConfig = {}) => {
|
|
10
|
+
const core = new ClickUIConfigCore(options);
|
|
11
|
+
return {
|
|
12
|
+
...nextConfig,
|
|
13
|
+
// Extend webpack configuration
|
|
14
|
+
webpack(config, context) {
|
|
15
|
+
const { isServer, dev, dir } = context;
|
|
16
|
+
const root = dir || process.cwd();
|
|
17
|
+
// Initialize Click UI config
|
|
18
|
+
(async () => {
|
|
19
|
+
try {
|
|
20
|
+
const result = await core.initialize(root);
|
|
21
|
+
const loadedConfig = result.config;
|
|
22
|
+
const cssVariables = result.cssVariables;
|
|
23
|
+
// Add webpack alias for 'click-ui-config'
|
|
24
|
+
if (result.configFile) {
|
|
25
|
+
if (!config.resolve.alias) {
|
|
26
|
+
config.resolve.alias = {};
|
|
27
|
+
}
|
|
28
|
+
const alias = core.createAlias(result.configFile);
|
|
29
|
+
Object.assign(config.resolve.alias, alias);
|
|
30
|
+
if (core.isVerbose()) {
|
|
31
|
+
console.log('✅ Added Next.js webpack alias for click-ui-config');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Add webpack DefinePlugin for global constants
|
|
35
|
+
const webpack = await import('webpack');
|
|
36
|
+
const defines = core.createDefines(loadedConfig);
|
|
37
|
+
config.plugins = config.plugins || [];
|
|
38
|
+
config.plugins.push(new webpack.DefinePlugin(defines));
|
|
39
|
+
// Write CSS file to public directory (Next.js specific)
|
|
40
|
+
if (!isServer && cssVariables && cssVariables.length > 0) {
|
|
41
|
+
const publicDir = path.join(root, 'public');
|
|
42
|
+
const cssFilePath = path.join(publicDir, core.getCSSOutputFilename());
|
|
43
|
+
// Ensure public directory exists
|
|
44
|
+
if (!fs.existsSync(publicDir)) {
|
|
45
|
+
fs.mkdirSync(publicDir, { recursive: true });
|
|
46
|
+
}
|
|
47
|
+
// Write CSS file
|
|
48
|
+
fs.writeFileSync(cssFilePath, cssVariables, 'utf-8');
|
|
49
|
+
if (core.isVerbose()) {
|
|
50
|
+
console.log(`✅ Generated ${core.getCSSOutputFilename()} in public/`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error('❌ Failed to initialize Click UI config:', error);
|
|
56
|
+
}
|
|
57
|
+
})();
|
|
58
|
+
// Call original webpack config if it exists
|
|
59
|
+
if (typeof nextConfig.webpack === 'function') {
|
|
60
|
+
return nextConfig.webpack(config, context);
|
|
61
|
+
}
|
|
62
|
+
return config;
|
|
63
|
+
},
|
|
64
|
+
// Add env variables for build-time access
|
|
65
|
+
env: {
|
|
66
|
+
...nextConfig.env,
|
|
67
|
+
CLICK_UI_CONFIG_LOADED: 'true',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=next.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../config/next.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rollup plugin for Click UI configuration
|
|
3
|
+
* Uses shared core for config discovery and CSS generation
|
|
4
|
+
*/
|
|
5
|
+
import type { Plugin } from 'rollup';
|
|
6
|
+
import type { PluginOptions } from './types';
|
|
7
|
+
export declare function clickUIConfig(options?: PluginOptions): Plugin;
|
|
8
|
+
//# sourceMappingURL=rollup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../config/rollup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CA2FjE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rollup plugin for Click UI configuration
|
|
3
|
+
* Uses shared core for config discovery and CSS generation
|
|
4
|
+
*/
|
|
5
|
+
import { ClickUIConfigCore } from './core';
|
|
6
|
+
export function clickUIConfig(options = {}) {
|
|
7
|
+
const core = new ClickUIConfigCore(options);
|
|
8
|
+
let loadedConfig = null;
|
|
9
|
+
let cssVariables = '';
|
|
10
|
+
let resolvedRoot;
|
|
11
|
+
return {
|
|
12
|
+
name: 'click-ui-config',
|
|
13
|
+
// Build start hook - initialize config
|
|
14
|
+
async buildStart() {
|
|
15
|
+
try {
|
|
16
|
+
resolvedRoot = process.cwd();
|
|
17
|
+
const result = await core.initialize(resolvedRoot);
|
|
18
|
+
loadedConfig = result.config;
|
|
19
|
+
cssVariables = result.cssVariables;
|
|
20
|
+
// Watch config file for changes
|
|
21
|
+
if (result.configFile) {
|
|
22
|
+
this.addWatchFile(result.configFile);
|
|
23
|
+
}
|
|
24
|
+
if (core.isVerbose()) {
|
|
25
|
+
console.log('✅ Click UI config loaded for Rollup');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
console.error('❌ Failed to initialize Click UI config:', error);
|
|
30
|
+
loadedConfig = {};
|
|
31
|
+
cssVariables = '';
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
// Transform hook - replace config imports with actual config
|
|
35
|
+
resolveId(id) {
|
|
36
|
+
if (id === 'click-ui-config') {
|
|
37
|
+
const configFile = core.findConfigFile(resolvedRoot);
|
|
38
|
+
if (configFile) {
|
|
39
|
+
return configFile;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
},
|
|
44
|
+
// Transform code to inject defines
|
|
45
|
+
transform(code, id) {
|
|
46
|
+
// Skip non-JS/TS files
|
|
47
|
+
if (!id.match(/\.(js|ts|jsx|tsx|mjs|cjs)$/)) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
// Replace global constants
|
|
51
|
+
const defines = core.createDefines(loadedConfig);
|
|
52
|
+
let transformedCode = code;
|
|
53
|
+
let hasReplacement = false;
|
|
54
|
+
Object.entries(defines).forEach(([key, value]) => {
|
|
55
|
+
const regex = new RegExp(`\\b${key}\\b`, 'g');
|
|
56
|
+
if (regex.test(transformedCode)) {
|
|
57
|
+
transformedCode = transformedCode.replace(regex, value);
|
|
58
|
+
hasReplacement = true;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
if (hasReplacement) {
|
|
62
|
+
return {
|
|
63
|
+
code: transformedCode,
|
|
64
|
+
map: null,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
},
|
|
69
|
+
// Generate bundle hook - emit CSS file
|
|
70
|
+
generateBundle() {
|
|
71
|
+
if (cssVariables && cssVariables.length > 0) {
|
|
72
|
+
const filename = core.getCSSOutputFilename();
|
|
73
|
+
this.emitFile({
|
|
74
|
+
type: 'asset',
|
|
75
|
+
fileName: filename,
|
|
76
|
+
source: cssVariables,
|
|
77
|
+
});
|
|
78
|
+
if (core.isVerbose()) {
|
|
79
|
+
console.log(`✅ Generated ${filename}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=rollup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../config/rollup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for Click UI bundler plugins
|
|
3
|
+
*/
|
|
4
|
+
export interface PluginOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Path to config file (relative to project root)
|
|
7
|
+
* @default 'click-ui.config.ts'
|
|
8
|
+
*/
|
|
9
|
+
configPath?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Custom CSS output filename
|
|
12
|
+
* @default 'theme-vars.css'
|
|
13
|
+
*/
|
|
14
|
+
cssOutput?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Enable verbose logging
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
verbose?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Skip config file discovery (use defaults)
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
skipConfigDiscovery?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface LoadedConfig {
|
|
27
|
+
configFile: string | null;
|
|
28
|
+
config: any;
|
|
29
|
+
cssVariables: string;
|
|
30
|
+
}
|
|
31
|
+
export interface BundlerAlias {
|
|
32
|
+
[key: string]: string;
|
|
33
|
+
}
|
|
34
|
+
export interface BundlerDefines {
|
|
35
|
+
[key: string]: string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../config/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite plugin for Click UI configuration
|
|
3
|
+
* Uses shared core for config discovery and CSS generation
|
|
4
|
+
*/
|
|
5
|
+
import type { Plugin } from 'vite';
|
|
6
|
+
import type { PluginOptions } from './types';
|
|
7
|
+
export declare function clickUIConfig(options?: PluginOptions): Plugin;
|
|
8
|
+
//# sourceMappingURL=vite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../config/vite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAiFjE"}
|