unframer 2.6.6 → 2.7.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/README.md +9 -46
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +49 -44
- package/dist/cli.js.map +1 -1
- package/dist/css.js +1 -1
- package/dist/css.js.map +1 -1
- package/dist/exporter.d.ts +16 -4
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +144 -47
- package/dist/exporter.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +55 -19
- package/dist/framer.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +7 -0
- package/dist/utils.js.map +1 -1
- package/esm/cli.d.ts.map +1 -1
- package/esm/cli.js +49 -44
- package/esm/cli.js.map +1 -1
- package/esm/css.js +1 -1
- package/esm/css.js.map +1 -1
- package/esm/exporter.d.ts +16 -4
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +143 -48
- package/esm/exporter.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +55 -19
- package/esm/framer.js.map +1 -1
- package/esm/utils.d.ts +1 -0
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +6 -0
- package/esm/utils.js.map +1 -1
- package/package.json +7 -5
- package/src/cli.tsx +63 -57
- package/src/css.ts +1 -1
- package/src/exporter.ts +179 -55
- package/src/framer.js +72 -19
- package/src/utils.ts +9 -0
package/dist/utils.d.ts
CHANGED
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,4BAEhD;AAGD,eAAO,MAAM,MAAM;;;;CAUlB,CAAA"}
|
package/dist/utils.js
CHANGED
|
@@ -4,7 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.logger = void 0;
|
|
7
|
+
exports.terminalMarkdown = terminalMarkdown;
|
|
7
8
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
9
|
+
const marked_1 = require("marked");
|
|
10
|
+
const marked_terminal_1 = require("marked-terminal");
|
|
11
|
+
marked_1.marked.use((0, marked_terminal_1.markedTerminal)());
|
|
12
|
+
function terminalMarkdown(markdown) {
|
|
13
|
+
return (0, marked_1.marked)(markdown);
|
|
14
|
+
}
|
|
8
15
|
const prefix = '[unframer]';
|
|
9
16
|
exports.logger = {
|
|
10
17
|
log(...args) {
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAOA,4CAEC;AATD,4DAA6B;AAE7B,mCAA+B;AAC/B,qDAAgD;AAEhD,eAAM,CAAC,GAAG,CAAC,IAAA,gCAAc,GAAE,CAAC,CAAA;AAE5B,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,OAAO,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAAA;AACd,QAAA,MAAM,GAAG;IAClB,GAAG,CAAC,GAAG,IAAI;QACP,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IAChC,CAAC;IACD,KAAK,CAAC,GAAG,IAAI;QACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACtE,CAAC;IACD,KAAK,CAAC,GAAG,IAAI;QACT,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACtE,CAAC;CACJ,CAAA"}
|
package/esm/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,GAAG,mBAAkB,CAAA"}
|
package/esm/cli.js
CHANGED
|
@@ -7,74 +7,78 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { bundle } from './exporter.js';
|
|
11
|
-
import JSON from 'json5';
|
|
12
10
|
import { setMaxListeners } from 'events';
|
|
13
|
-
import
|
|
14
|
-
import
|
|
11
|
+
import JSON from 'json5';
|
|
12
|
+
import { bundle } from './exporter.js';
|
|
13
|
+
import { cac } from 'cac';
|
|
15
14
|
import findUp from 'find-up';
|
|
15
|
+
import fs from 'fs-extra';
|
|
16
16
|
import path, { basename } from 'path';
|
|
17
|
-
const configNames = ['unframer.config.json', 'unframer.json'];
|
|
18
|
-
import { cac } from 'cac';
|
|
19
17
|
import { logger } from './utils.js';
|
|
18
|
+
const configNames = ['unframer.config.json', 'unframer.json'];
|
|
20
19
|
export const cli = cac('unframer');
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
let defaultOutDir = 'framer';
|
|
21
|
+
function nameToFolder(name) {
|
|
22
|
+
return name
|
|
23
|
+
.replace(/[^a-zA-Z0-9]/g, '-') // Replace non-alphanumeric with dash
|
|
24
|
+
.replace(/-+/g, '-') // Replace multiple dashes with single dash
|
|
25
|
+
.replace(/^-|-$/g, '') // Remove leading/trailing dashes
|
|
26
|
+
.toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
29
|
+
.option('--outDir <dir>', 'Output directory', { default: defaultOutDir })
|
|
30
|
+
.action(function main(projectId, options) {
|
|
24
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const outDir = options.outDir;
|
|
33
|
+
if (projectId) {
|
|
34
|
+
logger.log(`Fetching config for project ${projectId}`);
|
|
35
|
+
const response = yield fetch(new URL(`/api/plugins/reactExportPlugin/project/${projectId}`, process.env.UNFRAMER_SERVER_URL || 'https://unframer.co').toString());
|
|
36
|
+
if (!response.ok) {
|
|
37
|
+
console.error(`Failed to fetch Framer config`);
|
|
38
|
+
logger.error('Response: ' + (yield response.text()));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const data = yield response.json();
|
|
42
|
+
return processConfig({
|
|
43
|
+
config: {
|
|
44
|
+
outDir,
|
|
45
|
+
components: Object.fromEntries(data.components.map((c) => [
|
|
46
|
+
nameToFolder(c.name),
|
|
47
|
+
c.url,
|
|
48
|
+
])),
|
|
49
|
+
tokens: data.colorStyles,
|
|
50
|
+
},
|
|
51
|
+
watch: false,
|
|
52
|
+
configBasename: 'remote config',
|
|
53
|
+
signal: new AbortController().signal,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
25
56
|
fixOldUnframerPath();
|
|
26
57
|
const cwd = process.cwd();
|
|
27
|
-
const watch = process.argv.includes('--watch');
|
|
28
58
|
logger.log(`Looking for ${configNames.join(', ')} in ${cwd}`);
|
|
29
59
|
const configPath = yield findUp(configNames, { cwd });
|
|
30
60
|
if (!configPath) {
|
|
31
61
|
logger.log(`No ${configNames.join(', ')} found`);
|
|
32
62
|
return;
|
|
33
63
|
}
|
|
34
|
-
|
|
64
|
+
const configBasename = basename(configPath);
|
|
35
65
|
const configContent = fs.readFileSync(configPath, 'utf8');
|
|
36
66
|
if (!configContent) {
|
|
37
67
|
logger.log(`No ${configBasename} contents found`);
|
|
38
68
|
return;
|
|
39
69
|
}
|
|
40
|
-
|
|
70
|
+
const config = JSON.parse(configContent);
|
|
71
|
+
if (outDir !== defaultOutDir) {
|
|
72
|
+
config.outDir = outDir;
|
|
73
|
+
}
|
|
41
74
|
let controller = new AbortController();
|
|
42
75
|
setMaxListeners(0, controller.signal);
|
|
43
76
|
processConfig({
|
|
44
77
|
config,
|
|
45
|
-
watch,
|
|
78
|
+
watch: false,
|
|
46
79
|
signal: controller.signal,
|
|
47
80
|
configBasename,
|
|
48
81
|
});
|
|
49
|
-
if (!watch) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const watcher = chokidar.watch(configPath, {
|
|
53
|
-
persistent: true,
|
|
54
|
-
});
|
|
55
|
-
watcher.on('change', (path) => __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
logger.log(`${configBasename} changed`);
|
|
57
|
-
console.log();
|
|
58
|
-
controller.abort();
|
|
59
|
-
controller = new AbortController();
|
|
60
|
-
setMaxListeners(0, controller.signal);
|
|
61
|
-
const newConfig = safeJsonParse(fs.readFileSync(configPath, 'utf8'));
|
|
62
|
-
if (!newConfig) {
|
|
63
|
-
logger.log(`Invalid ${configBasename} file`);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const newNames = getNewNames(config, newConfig);
|
|
67
|
-
if (newNames.length) {
|
|
68
|
-
logger.log(`New components found: ${newNames.join(', ')}`);
|
|
69
|
-
yield processConfig({
|
|
70
|
-
config: Object.assign(Object.assign({}, newConfig), { components: pluck(newConfig.components, newNames) }),
|
|
71
|
-
watch,
|
|
72
|
-
configBasename,
|
|
73
|
-
// signal: controller.signal,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
config = newConfig;
|
|
77
|
-
}));
|
|
78
82
|
});
|
|
79
83
|
});
|
|
80
84
|
const defaultConfig = `{
|
|
@@ -96,6 +100,8 @@ function fixOldUnframerPath() {
|
|
|
96
100
|
}
|
|
97
101
|
return false;
|
|
98
102
|
}
|
|
103
|
+
const version = require('../package.json').version;
|
|
104
|
+
cli.version(version).help();
|
|
99
105
|
cli.command('init', 'Init the unframer.config.json config').action((options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
100
106
|
let fixed = fixOldUnframerPath();
|
|
101
107
|
if (fixed) {
|
|
@@ -105,8 +111,6 @@ cli.command('init', 'Init the unframer.config.json config').action((options) =>
|
|
|
105
111
|
const p = path.resolve(process.cwd(), 'unframer.config.json');
|
|
106
112
|
console.log(`${p} file created`);
|
|
107
113
|
}));
|
|
108
|
-
const version = require('../package.json').version;
|
|
109
|
-
cli.version(version).help();
|
|
110
114
|
function safeJsonParse(json) {
|
|
111
115
|
try {
|
|
112
116
|
return JSON.parse(json);
|
|
@@ -147,6 +151,7 @@ function processConfig(_a) {
|
|
|
147
151
|
breakpoints,
|
|
148
152
|
cwd: installDir,
|
|
149
153
|
watch,
|
|
154
|
+
tokens: config.tokens,
|
|
150
155
|
signal,
|
|
151
156
|
});
|
|
152
157
|
}
|
package/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
|
package/esm/css.js
CHANGED
package/esm/css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","sourceRoot":"","sources":["../src/css.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../src/css.ts"],"names":[],"mappings":"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"}
|
package/esm/exporter.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { PropertyControls } from './framer';
|
|
2
2
|
import { ComponentFontBundle } from './css.js';
|
|
3
|
-
export
|
|
3
|
+
export type StyleToken = {
|
|
4
|
+
id: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
lightColor: string;
|
|
7
|
+
darkColor: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function bundle({ cwd: out, watch, components, tokens, breakpoints, signal, }: {
|
|
4
10
|
cwd?: string | undefined;
|
|
5
11
|
watch?: boolean | undefined;
|
|
6
12
|
components?: Record<string, string> | undefined;
|
|
13
|
+
tokens?: StyleToken[] | undefined;
|
|
7
14
|
breakpoints?: {
|
|
8
15
|
readonly base: 0;
|
|
9
16
|
readonly sm: 320;
|
|
@@ -21,7 +28,12 @@ export declare function bundle({ cwd: out, watch, components, breakpoints, signa
|
|
|
21
28
|
componentName: string;
|
|
22
29
|
propertyControls: PropertyControls<any, any> | undefined;
|
|
23
30
|
}[];
|
|
24
|
-
}>;
|
|
31
|
+
} | undefined>;
|
|
32
|
+
export declare function getDarkModeSelector(opts: {
|
|
33
|
+
darkModeType?: 'class' | 'media';
|
|
34
|
+
content: string;
|
|
35
|
+
}): string;
|
|
36
|
+
export declare function getStyleTokensCss(tokens: StyleToken[], darkModeType?: 'class' | 'media'): string;
|
|
25
37
|
export declare function findRelativeLinks(text: string): number[];
|
|
26
38
|
export declare function extractPropControlsSafe(text: any, name: any): Promise<PropertyControls<any, any> | undefined>;
|
|
27
39
|
export declare function extractPropControlsUnsafe(filename: any, name: any): Promise<{
|
|
@@ -30,12 +42,12 @@ export declare function extractPropControlsUnsafe(filename: any, name: any): Pro
|
|
|
30
42
|
}>;
|
|
31
43
|
export declare function propControlsToType(controls: PropertyControls, fileName: any): string;
|
|
32
44
|
export declare function parsePropertyControls(code: string): string | null;
|
|
33
|
-
type
|
|
45
|
+
type ExtractedTokenInfo = {
|
|
34
46
|
tokenName: string;
|
|
35
47
|
metadata?: Record<string, any>;
|
|
36
48
|
defaultValue: string;
|
|
37
49
|
};
|
|
38
|
-
export declare function extractTokenInfo(code: string):
|
|
50
|
+
export declare function extractTokenInfo(code: string): ExtractedTokenInfo[];
|
|
39
51
|
export declare function componentCamelCase(str: string): string;
|
|
40
52
|
export {};
|
|
41
53
|
//# sourceMappingURL=exporter.d.ts.map
|
package/esm/exporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AASA,OAAO,EAIH,gBAAgB,EAEnB,MAAM,UAAU,CAAA;AAKjB,OAAO,EAEH,mBAAmB,EAKtB,MAAM,UAAU,CAAA;AAiBjB,wBAAsB,MAAM,CAAC,EACzB,GAAG,EAAE,GAAQ,EACb,KAAa,EACb,UAAyC,EACzC,WAAmC,EACnC,MAA6C,GAChD
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AASA,OAAO,EAIH,gBAAgB,EAEnB,MAAM,UAAU,CAAA;AAKjB,OAAO,EAEH,mBAAmB,EAKtB,MAAM,UAAU,CAAA;AAiBjB,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAsB,MAAM,CAAC,EACzB,GAAG,EAAE,GAAQ,EACb,KAAa,EACb,UAAyC,EACzC,MAA2B,EAC3B,WAAmC,EACnC,MAA6C,GAChD;;;;;;;;;;;;;;CAAA;;;;;;;;eAkWA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACtC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;CAClB,UAaA;AAED,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,UAAU,EAAE,EACpB,YAAY,GAAE,OAAO,GAAG,OAAiB,UA6B5C;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,YAY7C;AAED,wBAAsB,uBAAuB,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,mDAmCvD;AAmGD,wBAAsB,yBAAyB,CAC3C,QAAQ,KAAA,EACR,IAAI,KAAA,GACL,OAAO,CAAC;IACP,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAChC,CAAC,CA2BD;AAWD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,KAAA,UA6FtE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,iBAqCjD;AAED,KAAK,kBAAkB,GAAG;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE9B,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE,CA2DnE;AASD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAU7C"}
|
package/esm/exporter.js
CHANGED
|
@@ -18,7 +18,7 @@ import path from 'path';
|
|
|
18
18
|
import { exec } from 'child_process';
|
|
19
19
|
import { breakpointsStyles, getFontsStyles, groupBy, logFontsUsage, } from './css.js';
|
|
20
20
|
import dedent from 'dedent';
|
|
21
|
-
import { logger } from './utils.js';
|
|
21
|
+
import { logger, terminalMarkdown } from './utils.js';
|
|
22
22
|
import { esbuildPluginBundleDependencies, resolveRedirect, externalPackages, } from './esbuild';
|
|
23
23
|
function validateUrl(url) {
|
|
24
24
|
try {
|
|
@@ -29,7 +29,7 @@ function validateUrl(url) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
export function bundle(_a) {
|
|
32
|
-
return __awaiter(this, arguments, void 0, function* ({ cwd: out = '', watch = false, components = {}, breakpoints = {}, signal = undefined, }) {
|
|
32
|
+
return __awaiter(this, arguments, void 0, function* ({ cwd: out = '', watch = false, components = {}, tokens = [], breakpoints = {}, signal = undefined, }) {
|
|
33
33
|
out || (out = path.resolve(process.cwd(), 'example'));
|
|
34
34
|
out = path.resolve(out);
|
|
35
35
|
try {
|
|
@@ -112,6 +112,7 @@ export function bundle(_a) {
|
|
|
112
112
|
.catch(() => null);
|
|
113
113
|
let codeNew = `// @ts-nocheck\n` +
|
|
114
114
|
`/* eslint-disable */\n` +
|
|
115
|
+
'/* This file was generated by Unframer, do not edit manually */\n' +
|
|
115
116
|
dprint.format(resultPathAbs, file.text, {
|
|
116
117
|
lineWidth: 140,
|
|
117
118
|
quoteStyle: 'alwaysSingle',
|
|
@@ -135,7 +136,10 @@ export function bundle(_a) {
|
|
|
135
136
|
const sema = new Sema(10);
|
|
136
137
|
const packageJson = path.resolve(out, 'package.json');
|
|
137
138
|
fs.writeFileSync(packageJson, JSON.stringify({ type: 'module' }), 'utf-8');
|
|
138
|
-
|
|
139
|
+
if (!(result === null || result === void 0 ? void 0 : result.outputFiles)) {
|
|
140
|
+
throw new Error('Failed to generate result');
|
|
141
|
+
}
|
|
142
|
+
const propControlsData = yield Promise.all(result === null || result === void 0 ? void 0 : result.outputFiles.map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
139
143
|
try {
|
|
140
144
|
yield sema.acquire();
|
|
141
145
|
const name = path.basename(file.path).replace(/\.js$/, '');
|
|
@@ -164,7 +168,10 @@ export function bundle(_a) {
|
|
|
164
168
|
sema.release();
|
|
165
169
|
}
|
|
166
170
|
}))).finally(() => fs.rmSync(packageJson));
|
|
167
|
-
const cssString = '/* This
|
|
171
|
+
const cssString = '/* This file was generated by Unframer, do not edit manually */\n' +
|
|
172
|
+
'/* This css file has all the necessary styles to run all your components */\n' +
|
|
173
|
+
'\n' +
|
|
174
|
+
getStyleTokensCss(tokens) +
|
|
168
175
|
breakpointsStyles(breakpoints) +
|
|
169
176
|
'\n\n' +
|
|
170
177
|
combinedCSSRules
|
|
@@ -196,10 +203,12 @@ export function bundle(_a) {
|
|
|
196
203
|
if (watch) {
|
|
197
204
|
logger.log('waiting for components or config changes');
|
|
198
205
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
206
|
+
if (!(tokens === null || tokens === void 0 ? void 0 : tokens.length)) {
|
|
207
|
+
const tokensCss = "/* This css file contains your color variables, sometimes these get desynced when updated in Framer so it's good that you copy and paste this snippet into your app css */\n" +
|
|
208
|
+
'/* Bug: https://www.framer.community/c/bugs/color-style-unlinks-when-copying-component-between-projects-resulting-in-potential-value-discrepancy */\n' +
|
|
209
|
+
getTokensCss({ out, result });
|
|
210
|
+
fs.writeFileSync(path.resolve(out, 'tokens.css'), tokensCss, 'utf-8');
|
|
211
|
+
}
|
|
203
212
|
const res = {
|
|
204
213
|
components: Object.entries(components).map(([name, v]) => {
|
|
205
214
|
const propControls = propControlsData.find((x) => (x === null || x === void 0 ? void 0 : x.name) === name);
|
|
@@ -218,50 +227,135 @@ export function bundle(_a) {
|
|
|
218
227
|
if (!watch) {
|
|
219
228
|
const result = yield rebuild();
|
|
220
229
|
yield buildContext.dispose();
|
|
230
|
+
console.log(terminalMarkdown(dedent `
|
|
231
|
+
# How to use the Framer components
|
|
232
|
+
|
|
233
|
+
The components are exported to the \`framer\` directory (or the directory you specified in the config).
|
|
234
|
+
Each component has a \`.Responsive\` variant that allows you to specify different variants for different breakpoints.
|
|
235
|
+
The breakpoints are:
|
|
236
|
+
- base: 0-319px
|
|
237
|
+
- sm: 320-767px
|
|
238
|
+
- md: 768-959px
|
|
239
|
+
- lg: 960-1199px
|
|
240
|
+
- xl: 1200-1535px
|
|
241
|
+
- 2xl: 1536px+
|
|
242
|
+
|
|
243
|
+
You can import the components like this:
|
|
244
|
+
|
|
245
|
+
\`\`\`tsx
|
|
246
|
+
import './framer/styles.css'
|
|
247
|
+
import Logos from './framer/logos'
|
|
248
|
+
|
|
249
|
+
export default function App() {
|
|
250
|
+
return (
|
|
251
|
+
<div>
|
|
252
|
+
<Logos.Responsive
|
|
253
|
+
variants={{
|
|
254
|
+
lg: 'Desktop',
|
|
255
|
+
md: 'Tablet',
|
|
256
|
+
base: 'Mobile',
|
|
257
|
+
}}
|
|
258
|
+
/>
|
|
259
|
+
</div>
|
|
260
|
+
);
|
|
261
|
+
};
|
|
262
|
+
\`\`\`
|
|
263
|
+
|
|
264
|
+
It's very important to import the \`styles.css\` file to include the necessary styles for the components.
|
|
265
|
+
|
|
266
|
+
You can also use the components without the responsive wrapper:
|
|
267
|
+
|
|
268
|
+
\`\`\`tsx
|
|
269
|
+
import './framer/styles.css'
|
|
270
|
+
import Logos from './framer/logos'
|
|
271
|
+
|
|
272
|
+
export default function App() {
|
|
273
|
+
return (
|
|
274
|
+
<div>
|
|
275
|
+
<Logos variant="Desktop" />
|
|
276
|
+
</div>
|
|
277
|
+
);
|
|
278
|
+
};
|
|
279
|
+
\`\`\`
|
|
280
|
+
`));
|
|
221
281
|
return result;
|
|
222
282
|
}
|
|
223
|
-
// when user press ctrl+c dispose
|
|
224
|
-
process.on('SIGINT', () =>
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
})
|
|
228
|
-
process.on('SIGABRT', () =>
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
})
|
|
236
|
-
const res =
|
|
237
|
-
/**
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
const getResolvedUrls = () =>
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
|
|
283
|
+
// // when user press ctrl+c dispose
|
|
284
|
+
// process.on('SIGINT', async () => {
|
|
285
|
+
// await buildContext.cancel()
|
|
286
|
+
// buildContext.dispose()
|
|
287
|
+
// })
|
|
288
|
+
// process.on('SIGABRT', async () => {
|
|
289
|
+
// await buildContext.cancel()
|
|
290
|
+
// buildContext.dispose()
|
|
291
|
+
// })
|
|
292
|
+
// signal?.addEventListener('abort', async () => {
|
|
293
|
+
// await buildContext.cancel()
|
|
294
|
+
// buildContext.dispose()
|
|
295
|
+
// })
|
|
296
|
+
// const res = await rebuild()
|
|
297
|
+
// /**
|
|
298
|
+
// * Get resolved URLs for all components and also wait for 1 second if it took less time than that
|
|
299
|
+
// */
|
|
300
|
+
// const getResolvedUrls = () =>
|
|
301
|
+
// Promise.all([
|
|
302
|
+
// ...Object.values(components).map((u) => {
|
|
303
|
+
// const url = new URL(u)
|
|
304
|
+
// url.searchParams.set('ts', Date.now().toString())
|
|
305
|
+
// return resolveRedirect({ url: url.toString(), signal })
|
|
306
|
+
// }),
|
|
307
|
+
// new Promise((res) => setTimeout(res, 5000)),
|
|
308
|
+
// ])
|
|
309
|
+
// let prevUrls = await getResolvedUrls()
|
|
310
|
+
// while (!signal?.aborted) {
|
|
311
|
+
// const urls = await getResolvedUrls()
|
|
312
|
+
// const changed = urls
|
|
313
|
+
// .map((x, i) => (x !== prevUrls[i] ? i : null))
|
|
314
|
+
// .filter(Boolean)
|
|
315
|
+
// if (!changed?.length) {
|
|
316
|
+
// continue
|
|
317
|
+
// }
|
|
318
|
+
// const changedNames = Object.keys(components).filter((_, i) =>
|
|
319
|
+
// changed.includes(i),
|
|
320
|
+
// )
|
|
321
|
+
// logger.log(`found new component URLs for ${changedNames.join(', ')}`)
|
|
322
|
+
// prevUrls = urls
|
|
323
|
+
// await rebuild()
|
|
324
|
+
// }
|
|
325
|
+
// return res
|
|
263
326
|
});
|
|
264
327
|
}
|
|
328
|
+
export function getDarkModeSelector(opts) {
|
|
329
|
+
const { darkModeType = 'class', content } = opts;
|
|
330
|
+
if (darkModeType === 'media') {
|
|
331
|
+
return ('@media (prefers-color-scheme: dark) {\n' +
|
|
332
|
+
' :root {\n' +
|
|
333
|
+
content +
|
|
334
|
+
'\n' +
|
|
335
|
+
' }\n' +
|
|
336
|
+
'}');
|
|
337
|
+
}
|
|
338
|
+
return '.dark:root {\n' + content + '\n' + '}';
|
|
339
|
+
}
|
|
340
|
+
export function getStyleTokensCss(tokens, darkModeType = 'class') {
|
|
341
|
+
if (!(tokens === null || tokens === void 0 ? void 0 : tokens.length)) {
|
|
342
|
+
return '';
|
|
343
|
+
}
|
|
344
|
+
const lightTokens = tokens
|
|
345
|
+
.map((token) => ' --token-' + token.id + ': ' + token.lightColor + ';')
|
|
346
|
+
.join('\n');
|
|
347
|
+
const darkTokens = tokens
|
|
348
|
+
.map((token) => ' --token-' + token.id + ': ' + token.darkColor + ';')
|
|
349
|
+
.join('\n');
|
|
350
|
+
return (':root {\n' +
|
|
351
|
+
lightTokens +
|
|
352
|
+
'\n' +
|
|
353
|
+
'}\n\n' +
|
|
354
|
+
getDarkModeSelector({
|
|
355
|
+
darkModeType,
|
|
356
|
+
content: darkTokens,
|
|
357
|
+
}));
|
|
358
|
+
}
|
|
265
359
|
function decapitalize(str) {
|
|
266
360
|
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
267
361
|
}
|
|
@@ -485,6 +579,7 @@ export function propControlsToType(controls, fileName) {
|
|
|
485
579
|
.map((line) => ` ${line}`)
|
|
486
580
|
.join('\n') + '\n';
|
|
487
581
|
let t = '';
|
|
582
|
+
t += '/* This file was generated by Unframer, do not edit manually */\n';
|
|
488
583
|
t += 'import * as React from "react"\n\n';
|
|
489
584
|
t += 'import { UnframerBreakpoint } from "unframer"\n\n';
|
|
490
585
|
t += `export interface Props {\n${defaultPropsTypes}${types}\n}\n\n`;
|